/* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ exports.id = "vendor-chunks/next"; exports.ids = ["vendor-chunks/next"]; exports.modules = { /***/ "(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/build/templates/helpers.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param module the module to hoist the name from\n * @param name the name to hoist\n * @returns the value on the module (or promised module)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hoist\", ({\n enumerable: true,\n get: function() {\n return hoist;\n }\n}));\nfunction hoist(module, name) {\n // If the name is available in the module, return it.\n if (name in module) {\n return module[name];\n }\n // If a property called `then` exists, assume it's a promise and\n // return a promise that resolves to the name.\n if ('then' in module && typeof module.then === 'function') {\n return module.then((mod)=>hoist(mod, name));\n }\n // If we're trying to hoise the default export, and the module is a function,\n // return the module itself.\n if (typeof module === 'function' && name === 'default') {\n return module;\n }\n // Otherwise, return undefined.\n return undefined;\n}\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseUNBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIb2lzdHMgYSBuYW1lIGZyb20gYSBtb2R1bGUgb3IgcHJvbWlzZWQgbW9kdWxlLlxuICpcbiAqIEBwYXJhbSBtb2R1bGUgdGhlIG1vZHVsZSB0byBob2lzdCB0aGUgbmFtZSBmcm9tXG4gKiBAcGFyYW0gbmFtZSB0aGUgbmFtZSB0byBob2lzdFxuICogQHJldHVybnMgdGhlIHZhbHVlIG9uIHRoZSBtb2R1bGUgKG9yIHByb21pc2VkIG1vZHVsZSlcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImhvaXN0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBob2lzdDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGhvaXN0KG1vZHVsZSwgbmFtZSkge1xuICAgIC8vIElmIHRoZSBuYW1lIGlzIGF2YWlsYWJsZSBpbiB0aGUgbW9kdWxlLCByZXR1cm4gaXQuXG4gICAgaWYgKG5hbWUgaW4gbW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGVbbmFtZV07XG4gICAgfVxuICAgIC8vIElmIGEgcHJvcGVydHkgY2FsbGVkIGB0aGVuYCBleGlzdHMsIGFzc3VtZSBpdCdzIGEgcHJvbWlzZSBhbmRcbiAgICAvLyByZXR1cm4gYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5hbWUuXG4gICAgaWYgKCd0aGVuJyBpbiBtb2R1bGUgJiYgdHlwZW9mIG1vZHVsZS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGUudGhlbigobW9kKT0+aG9pc3QobW9kLCBuYW1lKSk7XG4gICAgfVxuICAgIC8vIElmIHdlJ3JlIHRyeWluZyB0byBob2lzZSB0aGUgZGVmYXVsdCBleHBvcnQsIGFuZCB0aGUgbW9kdWxlIGlzIGEgZnVuY3Rpb24sXG4gICAgLy8gcmV0dXJuIHRoZSBtb2R1bGUgaXRzZWxmLlxuICAgIGlmICh0eXBlb2YgbW9kdWxlID09PSAnZnVuY3Rpb24nICYmIG5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIHJldHVybiB1bmRlZmluZWQuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/redirect-status-code.js ***! \**************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7OztzREFBWUE7OztlQUFBQTs7O0FBQUwsSUFBS0EscUJBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLGtCQUFBQTs7OztXQUFBQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFJlZGlyZWN0U3RhdHVzQ29kZSB7XG4gIFNlZU90aGVyID0gMzAzLFxuICBUZW1wb3JhcnlSZWRpcmVjdCA9IDMwNyxcbiAgUGVybWFuZW50UmVkaXJlY3QgPSAzMDgsXG59XG4iXSwibmFtZXMiOlsiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js ***! \************************************************************************/ /***/ ((module) => { "use strict"; eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\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 __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGtDQUFrQztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLDRGQUE0RjtBQUN6SDtBQUNBO0FBQ0E7QUFDQSxvREFBb0Qsa0JBQWtCLGFBQWE7O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsT0FBTztBQUM1QyxtRUFBbUUsZ0ZBQWdGO0FBQ25KLGdFQUFnRSxTQUFTO0FBQ3pFLDJDQUEyQyxTQUFTO0FBQ3BEO0FBQ0E7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBLGlEQUFpRCxXQUFXO0FBQzVEO0FBQ0EseUJBQXlCLE9BQU8sR0FBRyxxREFBcUQ7QUFDeEYsK0NBQStDLGNBQWMsRUFBRSxjQUFjLEdBQUc7QUFDaEY7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0QkFBNEI7QUFDaEQscUJBQXFCLGdCQUFnQjtBQUNyQyx1Q0FBdUMsd0JBQXdCO0FBQy9EO0FBQ0EscUJBQXFCLG1DQUFtQztBQUN4RCxtQkFBbUIsY0FBYztBQUNqQyxxQkFBcUIsbUNBQW1DO0FBQ3hELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyxhQUFhO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGFBQWE7QUFDakM7QUFDQTtBQUNBLDRFQUE0RTtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEVBQTBFO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsaURBQWlEO0FBQzlFO0FBQ0E7QUFDQSxvREFBb0QsT0FBTyxHQUFHLDRCQUE0QixXQUFXO0FBQ3JHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDRFQUE0RTtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtGQUFrRjtBQUN4RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw0RUFBNEU7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msd0JBQXdCO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrRkFBa0Y7QUFDeEY7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1FQUFtRTtBQUN6RjtBQUNBO0FBQ0EsOEJBQThCLGlEQUFpRDtBQUMvRTtBQUNBO0FBQ0EsbUVBQW1FO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxxQkFBcUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxDQU1MIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBfX2dldE93blByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19leHBvcnQgPSAodGFyZ2V0LCBhbGwpID0+IHtcbiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpXG4gICAgX19kZWZQcm9wKHRhcmdldCwgbmFtZSwgeyBnZXQ6IGFsbFtuYW1lXSwgZW51bWVyYWJsZTogdHJ1ZSB9KTtcbn07XG52YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4ge1xuICBpZiAoZnJvbSAmJiB0eXBlb2YgZnJvbSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgZnJvbSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKVxuICAgICAgaWYgKCFfX2hhc093blByb3AuY2FsbCh0bywga2V5KSAmJiBrZXkgIT09IGV4Y2VwdClcbiAgICAgICAgX19kZWZQcm9wKHRvLCBrZXksIHsgZ2V0OiAoKSA9PiBmcm9tW2tleV0sIGVudW1lcmFibGU6ICEoZGVzYyA9IF9fZ2V0T3duUHJvcERlc2MoZnJvbSwga2V5KSkgfHwgZGVzYy5lbnVtZXJhYmxlIH0pO1xuICB9XG4gIHJldHVybiB0bztcbn07XG52YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KSwgbW9kKTtcblxuLy8gc3JjL2luZGV4LnRzXG52YXIgc3JjX2V4cG9ydHMgPSB7fTtcbl9fZXhwb3J0KHNyY19leHBvcnRzLCB7XG4gIFJlcXVlc3RDb29raWVzOiAoKSA9PiBSZXF1ZXN0Q29va2llcyxcbiAgUmVzcG9uc2VDb29raWVzOiAoKSA9PiBSZXNwb25zZUNvb2tpZXMsXG4gIHBhcnNlQ29va2llOiAoKSA9PiBwYXJzZUNvb2tpZSxcbiAgcGFyc2VTZXRDb29raWU6ICgpID0+IHBhcnNlU2V0Q29va2llLFxuICBzdHJpbmdpZnlDb29raWU6ICgpID0+IHN0cmluZ2lmeUNvb2tpZVxufSk7XG5tb2R1bGUuZXhwb3J0cyA9IF9fdG9Db21tb25KUyhzcmNfZXhwb3J0cyk7XG5cbi8vIHNyYy9zZXJpYWxpemUudHNcbmZ1bmN0aW9uIHN0cmluZ2lmeUNvb2tpZShjKSB7XG4gIHZhciBfYTtcbiAgY29uc3QgYXR0cnMgPSBbXG4gICAgXCJwYXRoXCIgaW4gYyAmJiBjLnBhdGggJiYgYFBhdGg9JHtjLnBhdGh9YCxcbiAgICBcImV4cGlyZXNcIiBpbiBjICYmIChjLmV4cGlyZXMgfHwgYy5leHBpcmVzID09PSAwKSAmJiBgRXhwaXJlcz0keyh0eXBlb2YgYy5leHBpcmVzID09PSBcIm51bWJlclwiID8gbmV3IERhdGUoYy5leHBpcmVzKSA6IGMuZXhwaXJlcykudG9VVENTdHJpbmcoKX1gLFxuICAgIFwibWF4QWdlXCIgaW4gYyAmJiB0eXBlb2YgYy5tYXhBZ2UgPT09IFwibnVtYmVyXCIgJiYgYE1heC1BZ2U9JHtjLm1heEFnZX1gLFxuICAgIFwiZG9tYWluXCIgaW4gYyAmJiBjLmRvbWFpbiAmJiBgRG9tYWluPSR7Yy5kb21haW59YCxcbiAgICBcInNlY3VyZVwiIGluIGMgJiYgYy5zZWN1cmUgJiYgXCJTZWN1cmVcIixcbiAgICBcImh0dHBPbmx5XCIgaW4gYyAmJiBjLmh0dHBPbmx5ICYmIFwiSHR0cE9ubHlcIixcbiAgICBcInNhbWVTaXRlXCIgaW4gYyAmJiBjLnNhbWVTaXRlICYmIGBTYW1lU2l0ZT0ke2Muc2FtZVNpdGV9YCxcbiAgICBcInBhcnRpdGlvbmVkXCIgaW4gYyAmJiBjLnBhcnRpdGlvbmVkICYmIFwiUGFydGl0aW9uZWRcIixcbiAgICBcInByaW9yaXR5XCIgaW4gYyAmJiBjLnByaW9yaXR5ICYmIGBQcmlvcml0eT0ke2MucHJpb3JpdHl9YFxuICBdLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3Qgc3RyaW5naWZpZWQgPSBgJHtjLm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KChfYSA9IGMudmFsdWUpICE9IG51bGwgPyBfYSA6IFwiXCIpfWA7XG4gIHJldHVybiBhdHRycy5sZW5ndGggPT09IDAgPyBzdHJpbmdpZmllZCA6IGAke3N0cmluZ2lmaWVkfTsgJHthdHRycy5qb2luKFwiOyBcIil9YDtcbn1cbmZ1bmN0aW9uIHBhcnNlQ29va2llKGNvb2tpZSkge1xuICBjb25zdCBtYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICBmb3IgKGNvbnN0IHBhaXIgb2YgY29va2llLnNwbGl0KC87ICovKSkge1xuICAgIGlmICghcGFpcilcbiAgICAgIGNvbnRpbnVlO1xuICAgIGNvbnN0IHNwbGl0QXQgPSBwYWlyLmluZGV4T2YoXCI9XCIpO1xuICAgIGlmIChzcGxpdEF0ID09PSAtMSkge1xuICAgICAgbWFwLnNldChwYWlyLCBcInRydWVcIik7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgW2tleSwgdmFsdWVdID0gW3BhaXIuc2xpY2UoMCwgc3BsaXRBdCksIHBhaXIuc2xpY2Uoc3BsaXRBdCArIDEpXTtcbiAgICB0cnkge1xuICAgICAgbWFwLnNldChrZXksIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiBcInRydWVcIikpO1xuICAgIH0gY2F0Y2gge1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWFwO1xufVxuZnVuY3Rpb24gcGFyc2VTZXRDb29raWUoc2V0Q29va2llKSB7XG4gIGlmICghc2V0Q29va2llKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICBjb25zdCBbW25hbWUsIHZhbHVlXSwgLi4uYXR0cmlidXRlc10gPSBwYXJzZUNvb2tpZShzZXRDb29raWUpO1xuICBjb25zdCB7XG4gICAgZG9tYWluLFxuICAgIGV4cGlyZXMsXG4gICAgaHR0cG9ubHksXG4gICAgbWF4YWdlLFxuICAgIHBhdGgsXG4gICAgc2FtZXNpdGUsXG4gICAgc2VjdXJlLFxuICAgIHBhcnRpdGlvbmVkLFxuICAgIHByaW9yaXR5XG4gIH0gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgYXR0cmlidXRlcy5tYXAoKFtrZXksIHZhbHVlMl0pID0+IFtcbiAgICAgIGtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLy0vZywgXCJcIiksXG4gICAgICB2YWx1ZTJcbiAgICBdKVxuICApO1xuICBjb25zdCBjb29raWUgPSB7XG4gICAgbmFtZSxcbiAgICB2YWx1ZTogZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKSxcbiAgICBkb21haW4sXG4gICAgLi4uZXhwaXJlcyAmJiB7IGV4cGlyZXM6IG5ldyBEYXRlKGV4cGlyZXMpIH0sXG4gICAgLi4uaHR0cG9ubHkgJiYgeyBodHRwT25seTogdHJ1ZSB9LFxuICAgIC4uLnR5cGVvZiBtYXhhZ2UgPT09IFwic3RyaW5nXCIgJiYgeyBtYXhBZ2U6IE51bWJlcihtYXhhZ2UpIH0sXG4gICAgcGF0aCxcbiAgICAuLi5zYW1lc2l0ZSAmJiB7IHNhbWVTaXRlOiBwYXJzZVNhbWVTaXRlKHNhbWVzaXRlKSB9LFxuICAgIC4uLnNlY3VyZSAmJiB7IHNlY3VyZTogdHJ1ZSB9LFxuICAgIC4uLnByaW9yaXR5ICYmIHsgcHJpb3JpdHk6IHBhcnNlUHJpb3JpdHkocHJpb3JpdHkpIH0sXG4gICAgLi4ucGFydGl0aW9uZWQgJiYgeyBwYXJ0aXRpb25lZDogdHJ1ZSB9XG4gIH07XG4gIHJldHVybiBjb21wYWN0KGNvb2tpZSk7XG59XG5mdW5jdGlvbiBjb21wYWN0KHQpIHtcbiAgY29uc3QgbmV3VCA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiB0KSB7XG4gICAgaWYgKHRba2V5XSkge1xuICAgICAgbmV3VFtrZXldID0gdFtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3VDtcbn1cbnZhciBTQU1FX1NJVEUgPSBbXCJzdHJpY3RcIiwgXCJsYXhcIiwgXCJub25lXCJdO1xuZnVuY3Rpb24gcGFyc2VTYW1lU2l0ZShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBTQU1FX1NJVEUuaW5jbHVkZXMoc3RyaW5nKSA/IHN0cmluZyA6IHZvaWQgMDtcbn1cbnZhciBQUklPUklUWSA9IFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5mdW5jdGlvbiBwYXJzZVByaW9yaXR5KHN0cmluZykge1xuICBzdHJpbmcgPSBzdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIFBSSU9SSVRZLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG5mdW5jdGlvbiBzcGxpdENvb2tpZXNTdHJpbmcoY29va2llc1N0cmluZykge1xuICBpZiAoIWNvb2tpZXNTdHJpbmcpXG4gICAgcmV0dXJuIFtdO1xuICB2YXIgY29va2llc1N0cmluZ3MgPSBbXTtcbiAgdmFyIHBvcyA9IDA7XG4gIHZhciBzdGFydDtcbiAgdmFyIGNoO1xuICB2YXIgbGFzdENvbW1hO1xuICB2YXIgbmV4dFN0YXJ0O1xuICB2YXIgY29va2llc1NlcGFyYXRvckZvdW5kO1xuICBmdW5jdGlvbiBza2lwV2hpdGVzcGFjZSgpIHtcbiAgICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgL1xccy8udGVzdChjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpKSkge1xuICAgICAgcG9zICs9IDE7XG4gICAgfVxuICAgIHJldHVybiBwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aDtcbiAgfVxuICBmdW5jdGlvbiBub3RTcGVjaWFsQ2hhcigpIHtcbiAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgcmV0dXJuIGNoICE9PSBcIj1cIiAmJiBjaCAhPT0gXCI7XCIgJiYgY2ggIT09IFwiLFwiO1xuICB9XG4gIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgIHN0YXJ0ID0gcG9zO1xuICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IGZhbHNlO1xuICAgIHdoaWxlIChza2lwV2hpdGVzcGFjZSgpKSB7XG4gICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICBpZiAoY2ggPT09IFwiLFwiKSB7XG4gICAgICAgIGxhc3RDb21tYSA9IHBvcztcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIHNraXBXaGl0ZXNwYWNlKCk7XG4gICAgICAgIG5leHRTdGFydCA9IHBvcztcbiAgICAgICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIG5vdFNwZWNpYWxDaGFyKCkpIHtcbiAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgY29va2llc1N0cmluZy5jaGFyQXQocG9zKSA9PT0gXCI9XCIpIHtcbiAgICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSB0cnVlO1xuICAgICAgICAgIHBvcyA9IG5leHRTdGFydDtcbiAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBsYXN0Q29tbWEpKTtcbiAgICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwb3MgPSBsYXN0Q29tbWEgKyAxO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3MgKz0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFjb29raWVzU2VwYXJhdG9yRm91bmQgfHwgcG9zID49IGNvb2tpZXNTdHJpbmcubGVuZ3RoKSB7XG4gICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBjb29raWVzU3RyaW5nLmxlbmd0aCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY29va2llc1N0cmluZ3M7XG59XG5cbi8vIHNyYy9yZXF1ZXN0LWNvb2tpZXMudHNcbnZhciBSZXF1ZXN0Q29va2llcyA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IocmVxdWVzdEhlYWRlcnMpIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5fcGFyc2VkID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLl9oZWFkZXJzID0gcmVxdWVzdEhlYWRlcnM7XG4gICAgY29uc3QgaGVhZGVyID0gcmVxdWVzdEhlYWRlcnMuZ2V0KFwiY29va2llXCIpO1xuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQ29va2llKGhlYWRlcik7XG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgcGFyc2VkKSB7XG4gICAgICAgIHRoaXMuX3BhcnNlZC5zZXQobmFtZSwgeyBuYW1lLCB2YWx1ZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZFtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgY29va2llcyByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnRcbiAgICovXG4gIGdldCBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuc2l6ZTtcbiAgfVxuICBnZXQoLi4uYXJncykge1xuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5nZXQobmFtZSk7XG4gIH1cbiAgZ2V0QWxsKC4uLmFyZ3MpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgYWxsID0gQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQpO1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBhbGwubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoW25dKSA9PiBuID09PSBuYW1lKS5tYXAoKFtfLCB2YWx1ZV0pID0+IHZhbHVlKTtcbiAgfVxuICBoYXMobmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuaGFzKG5hbWUpO1xuICB9XG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlXSA9IGFyZ3MubGVuZ3RoID09PSAxID8gW2FyZ3NbMF0ubmFtZSwgYXJnc1swXS52YWx1ZV0gOiBhcmdzO1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBtYXAuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlMl0pID0+IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZTIpKS5qb2luKFwiOyBcIilcbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIGNvb2tpZXMgbWF0Y2hpbmcgdGhlIHBhc3NlZCBuYW1lIG9yIG5hbWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgZGVsZXRlKG5hbWVzKSB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIGNvbnN0IHJlc3VsdCA9ICFBcnJheS5pc0FycmF5KG5hbWVzKSA/IG1hcC5kZWxldGUobmFtZXMpIDogbmFtZXMubWFwKChuYW1lKSA9PiBtYXAuZGVsZXRlKG5hbWUpKTtcbiAgICB0aGlzLl9oZWFkZXJzLnNldChcbiAgICAgIFwiY29va2llXCIsXG4gICAgICBBcnJheS5mcm9tKG1hcCkubWFwKChbXywgdmFsdWVdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUpKS5qb2luKFwiOyBcIilcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgdGhlIGNvb2tpZXMgaW4gdGhlIGNvb2tpZXMgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICBjbGVhcigpIHtcbiAgICB0aGlzLmRlbGV0ZShBcnJheS5mcm9tKHRoaXMuX3BhcnNlZC5rZXlzKCkpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRm9ybWF0IHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0IGFzIGEgc3RyaW5nIGZvciBsb2dnaW5nXG4gICAqL1xuICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgcmV0dXJuIGBSZXF1ZXN0Q29va2llcyAke0pTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyh0aGlzLl9wYXJzZWQpKX1gO1xuICB9XG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fcGFyc2VkLnZhbHVlcygpXS5tYXAoKHYpID0+IGAke3YubmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQodi52YWx1ZSl9YCkuam9pbihcIjsgXCIpO1xuICB9XG59O1xuXG4vLyBzcmMvcmVzcG9uc2UtY29va2llcy50c1xudmFyIFJlc3BvbnNlQ29va2llcyA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IocmVzcG9uc2VIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlc3BvbnNlSGVhZGVycztcbiAgICBjb25zdCBzZXRDb29raWUgPSAoX2MgPSAoX2IgPSAoX2EgPSByZXNwb25zZUhlYWRlcnMuZ2V0U2V0Q29va2llKSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2FsbChyZXNwb25zZUhlYWRlcnMpKSAhPSBudWxsID8gX2IgOiByZXNwb25zZUhlYWRlcnMuZ2V0KFwic2V0LWNvb2tpZVwiKSkgIT0gbnVsbCA/IF9jIDogW107XG4gICAgY29uc3QgY29va2llU3RyaW5ncyA9IEFycmF5LmlzQXJyYXkoc2V0Q29va2llKSA/IHNldENvb2tpZSA6IHNwbGl0Q29va2llc1N0cmluZyhzZXRDb29raWUpO1xuICAgIGZvciAoY29uc3QgY29va2llU3RyaW5nIG9mIGNvb2tpZVN0cmluZ3MpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlU2V0Q29va2llKGNvb2tpZVN0cmluZyk7XG4gICAgICBpZiAocGFyc2VkKVxuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KHBhcnNlZC5uYW1lLCBwYXJzZWQpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1nZXQgQ29va2llU3RvcmUjZ2V0fSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5nZXQoa2V5KTtcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1nZXRBbGwgQ29va2llU3RvcmUjZ2V0QWxsfSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgZ2V0QWxsKC4uLmFyZ3MpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgYWxsID0gQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQudmFsdWVzKCkpO1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBhbGw7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IChfYSA9IGFyZ3NbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfYS5uYW1lO1xuICAgIHJldHVybiBhbGwuZmlsdGVyKChjKSA9PiBjLm5hbWUgPT09IGtleSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1zZXQgQ29va2llU3RvcmUjc2V0fSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgc2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbbmFtZSwgdmFsdWUsIGNvb2tpZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWUsIGFyZ3NbMF1dIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCBub3JtYWxpemVDb29raWUoeyBuYW1lLCB2YWx1ZSwgLi4uY29va2llIH0pKTtcbiAgICByZXBsYWNlKG1hcCwgdGhpcy5faGVhZGVycyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZGVsZXRlIENvb2tpZVN0b3JlI2RlbGV0ZX0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGRlbGV0ZSguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIG9wdGlvbnNdID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBbYXJnc1swXV0gOiBbYXJnc1swXS5uYW1lLCBhcmdzWzBdXTtcbiAgICByZXR1cm4gdGhpcy5zZXQoeyAuLi5vcHRpb25zLCBuYW1lLCB2YWx1ZTogXCJcIiwgZXhwaXJlczogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKDApIH0pO1xuICB9XG4gIFtTeW1ib2wuZm9yKFwiZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tXCIpXSgpIHtcbiAgICByZXR1cm4gYFJlc3BvbnNlQ29va2llcyAke0pTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyh0aGlzLl9wYXJzZWQpKX1gO1xuICB9XG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fcGFyc2VkLnZhbHVlcygpXS5tYXAoc3RyaW5naWZ5Q29va2llKS5qb2luKFwiOyBcIik7XG4gIH1cbn07XG5mdW5jdGlvbiByZXBsYWNlKGJhZywgaGVhZGVycykge1xuICBoZWFkZXJzLmRlbGV0ZShcInNldC1jb29raWVcIik7XG4gIGZvciAoY29uc3QgWywgdmFsdWVdIG9mIGJhZykge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzdHJpbmdpZnlDb29raWUodmFsdWUpO1xuICAgIGhlYWRlcnMuYXBwZW5kKFwic2V0LWNvb2tpZVwiLCBzZXJpYWxpemVkKTtcbiAgfVxufVxuZnVuY3Rpb24gbm9ybWFsaXplQ29va2llKGNvb2tpZSA9IHsgbmFtZTogXCJcIiwgdmFsdWU6IFwiXCIgfSkge1xuICBpZiAodHlwZW9mIGNvb2tpZS5leHBpcmVzID09PSBcIm51bWJlclwiKSB7XG4gICAgY29va2llLmV4cGlyZXMgPSBuZXcgRGF0ZShjb29raWUuZXhwaXJlcyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5tYXhBZ2UpIHtcbiAgICBjb29raWUuZXhwaXJlcyA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBjb29raWUubWF4QWdlICogMWUzKTtcbiAgfVxuICBpZiAoY29va2llLnBhdGggPT09IG51bGwgfHwgY29va2llLnBhdGggPT09IHZvaWQgMCkge1xuICAgIGNvb2tpZS5wYXRoID0gXCIvXCI7XG4gIH1cbiAgcmV0dXJuIGNvb2tpZTtcbn1cbi8vIEFubm90YXRlIHRoZSBDb21tb25KUyBleHBvcnQgbmFtZXMgZm9yIEVTTSBpbXBvcnQgaW4gbm9kZTpcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICBSZXF1ZXN0Q29va2llcyxcbiAgUmVzcG9uc2VDb29raWVzLFxuICBwYXJzZUNvb2tpZSxcbiAgcGFyc2VTZXRDb29raWUsXG4gIHN0cmluZ2lmeUNvb2tpZVxufSk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/compiled/@opentelemetry/api/index.js ***! \*********************************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(en.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPLGNBQWMsc0NBQXNDLFdBQVcsRUFBRSxvQkFBb0IsZUFBZSxlQUFlLGVBQWUsa0JBQWtCLGlDQUFpQyxpQkFBaUIsZUFBZSxxQkFBcUIsb0JBQW9CLDhCQUE4QixzQkFBc0IsMkJBQTJCLHFEQUFxRCxTQUFTLDBDQUEwQyxpQkFBaUIsa0RBQWtELFVBQVUsMkNBQTJDLHFCQUFxQiw0QkFBNEIsVUFBVSxvQ0FBb0MsZ0RBQWdELHdCQUF3QixlQUFlLHNDQUFzQyxXQUFXLEVBQUUsaUJBQWlCLGNBQWMsZUFBZSxlQUFlLGVBQWUsZUFBZSxjQUFjLGNBQWMsc0JBQXNCLHNCQUFzQixnQ0FBZ0MsYUFBYSxtQkFBbUIsYUFBYSxzQkFBc0IsNkJBQTZCLElBQUksVUFBVSxVQUFVLHdKQUF3SixvREFBb0QsYUFBYSx3QkFBd0IsR0FBRyxZQUFZLGdDQUFnQyxrR0FBa0csa0NBQWtDLHFGQUFxRixrREFBa0QsRUFBRSxHQUFHLG9FQUFvRSxFQUFFLEdBQUcsNkNBQTZDLHNCQUFzQixlQUFlLDZCQUE2Qix3REFBd0QsK0JBQStCLDJCQUEyQix5QkFBeUIseUJBQXlCLDJCQUEyQixrQkFBa0Isb0JBQW9CLDJCQUEyQix1QkFBdUIsa0JBQWtCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxvQkFBb0IsZUFBZSxlQUFlLGVBQWUsa0JBQWtCLGlCQUFpQixlQUFlLHFCQUFxQixvQkFBb0IsOEJBQThCLHNCQUFzQiwwQkFBMEIscURBQXFELG1CQUFtQixnREFBZ0QsZ0JBQWdCLCtDQUErQyxVQUFVLGdEQUFnRCx3QkFBd0IsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLHdCQUF3QixlQUFlLGVBQWUsZUFBZSxlQUFlLGVBQWUsZUFBZSxzQkFBc0Isb0NBQW9DLHFCQUFxQixjQUFjLG1DQUFtQyw2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LCtCQUErQixFQUFFLGdDQUFnQyxtQ0FBbUMsK0JBQStCLGtCQUFrQixFQUFFLGlDQUFpQyxnQ0FBZ0MsK0JBQStCLGVBQWUsRUFBRSxpQ0FBaUMsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsdUNBQXVDLCtCQUErQixzQkFBc0IsRUFBRSxpQ0FBaUMsaUNBQWlDLCtCQUErQixnQkFBZ0IsRUFBRSxjQUFjLHlGQUF5RixJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17NDkxOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQ29udGV4dEFQST12b2lkIDA7Y29uc3Qgbj1yKDIyMyk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cImNvbnRleHRcIjtjb25zdCBjPW5ldyBuLk5vb3BDb250ZXh0TWFuYWdlcjtjbGFzcyBDb250ZXh0QVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IENvbnRleHRBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbENvbnRleHRNYW5hZ2VyKGUpe3JldHVybigwLGEucmVnaXN0ZXJHbG9iYWwpKGksZSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9YWN0aXZlKCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYWN0aXZlKCl9d2l0aChlLHQsciwuLi5uKXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS53aXRoKGUsdCxyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5iaW5kKGUsdCl9X2dldENvbnRleHRNYW5hZ2VyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxjfWRpc2FibGUoKXt0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmRpc2FibGUoKTsoMCxhLnVucmVnaXN0ZXJHbG9iYWwpKGksby5EaWFnQVBJLmluc3RhbmNlKCkpfX10LkNvbnRleHRBUEk9Q29udGV4dEFQSX0sOTMwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0FQST12b2lkIDA7Y29uc3Qgbj1yKDU2KTtjb25zdCBhPXIoOTEyKTtjb25zdCBvPXIoOTU3KTtjb25zdCBpPXIoMTcyKTtjb25zdCBjPVwiZGlhZ1wiO2NsYXNzIERpYWdBUEl7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiBfbG9nUHJveHkoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0IHI9KDAsaS5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtpZighcilyZXR1cm47cmV0dXJuIHJbZV0oLi4udCl9fWNvbnN0IGU9dGhpcztjb25zdCBzZXRMb2dnZXI9KHQscj17bG9nTGV2ZWw6by5EaWFnTG9nTGV2ZWwuSU5GT30pPT57dmFyIG4sYyxzO2lmKHQ9PT1lKXtjb25zdCB0PW5ldyBFcnJvcihcIkNhbm5vdCB1c2UgZGlhZyBhcyB0aGUgbG9nZ2VyIGZvciBpdHNlbGYuIFBsZWFzZSB1c2UgYSBEaWFnTG9nZ2VyIGltcGxlbWVudGF0aW9uIGxpa2UgQ29uc29sZURpYWdMb2dnZXIgb3IgYSBjdXN0b20gaW1wbGVtZW50YXRpb25cIik7ZS5lcnJvcigobj10LnN0YWNrKSE9PW51bGwmJm4hPT12b2lkIDA/bjp0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pZih0eXBlb2Ygcj09PVwibnVtYmVyXCIpe3I9e2xvZ0xldmVsOnJ9fWNvbnN0IHU9KDAsaS5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtjb25zdCBsPSgwLGEuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyKSgoYz1yLmxvZ0xldmVsKSE9PW51bGwmJmMhPT12b2lkIDA/YzpvLkRpYWdMb2dMZXZlbC5JTkZPLHQpO2lmKHUmJiFyLnN1cHByZXNzT3ZlcnJpZGVNZXNzYWdlKXtjb25zdCBlPShzPShuZXcgRXJyb3IpLnN0YWNrKSE9PW51bGwmJnMhPT12b2lkIDA/czpcIjxmYWlsZWQgdG8gZ2VuZXJhdGUgc3RhY2t0cmFjZT5cIjt1Lndhcm4oYEN1cnJlbnQgbG9nZ2VyIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZnJvbSAke2V9YCk7bC53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIG92ZXJ3cml0ZSBvbmUgYWxyZWFkeSByZWdpc3RlcmVkIGZyb20gJHtlfWApfXJldHVybigwLGkucmVnaXN0ZXJHbG9iYWwpKFwiZGlhZ1wiLGwsZSx0cnVlKX07ZS5zZXRMb2dnZXI9c2V0TG9nZ2VyO2UuZGlzYWJsZT0oKT0+eygwLGkudW5yZWdpc3Rlckdsb2JhbCkoYyxlKX07ZS5jcmVhdGVDb21wb25lbnRMb2dnZXI9ZT0+bmV3IG4uRGlhZ0NvbXBvbmVudExvZ2dlcihlKTtlLnZlcmJvc2U9X2xvZ1Byb3h5KFwidmVyYm9zZVwiKTtlLmRlYnVnPV9sb2dQcm94eShcImRlYnVnXCIpO2UuaW5mbz1fbG9nUHJveHkoXCJpbmZvXCIpO2Uud2Fybj1fbG9nUHJveHkoXCJ3YXJuXCIpO2UuZXJyb3I9X2xvZ1Byb3h5KFwiZXJyb3JcIil9c3RhdGljIGluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgRGlhZ0FQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9fXQuRGlhZ0FQST1EaWFnQVBJfSw2NTM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5NZXRyaWNzQVBJPXZvaWQgMDtjb25zdCBuPXIoNjYwKTtjb25zdCBhPXIoMTcyKTtjb25zdCBvPXIoOTMwKTtjb25zdCBpPVwibWV0cmljc1wiO2NsYXNzIE1ldHJpY3NBUEl7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgTWV0cmljc0FQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsTWV0ZXJQcm92aWRlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWdldE1ldGVyUHJvdmlkZXIoKXtyZXR1cm4oMCxhLmdldEdsb2JhbCkoaSl8fG4uTk9PUF9NRVRFUl9QUk9WSURFUn1nZXRNZXRlcihlLHQscil7cmV0dXJuIHRoaXMuZ2V0TWV0ZXJQcm92aWRlcigpLmdldE1ldGVyKGUsdCxyKX1kaXNhYmxlKCl7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5NZXRyaWNzQVBJPU1ldHJpY3NBUEl9LDE4MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3BhZ2F0aW9uQVBJPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjb25zdCBhPXIoODc0KTtjb25zdCBvPXIoMTk0KTtjb25zdCBpPXIoMjc3KTtjb25zdCBjPXIoMzY5KTtjb25zdCBzPXIoOTMwKTtjb25zdCB1PVwicHJvcGFnYXRpb25cIjtjb25zdCBsPW5ldyBhLk5vb3BUZXh0TWFwUHJvcGFnYXRvcjtjbGFzcyBQcm9wYWdhdGlvbkFQSXtjb25zdHJ1Y3Rvcigpe3RoaXMuY3JlYXRlQmFnZ2FnZT1jLmNyZWF0ZUJhZ2dhZ2U7dGhpcy5nZXRCYWdnYWdlPWkuZ2V0QmFnZ2FnZTt0aGlzLmdldEFjdGl2ZUJhZ2dhZ2U9aS5nZXRBY3RpdmVCYWdnYWdlO3RoaXMuc2V0QmFnZ2FnZT1pLnNldEJhZ2dhZ2U7dGhpcy5kZWxldGVCYWdnYWdlPWkuZGVsZXRlQmFnZ2FnZX1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBQcm9wYWdhdGlvbkFQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsUHJvcGFnYXRvcihlKXtyZXR1cm4oMCxuLnJlZ2lzdGVyR2xvYmFsKSh1LGUscy5EaWFnQVBJLmluc3RhbmNlKCkpfWluamVjdChlLHQscj1vLmRlZmF1bHRUZXh0TWFwU2V0dGVyKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmluamVjdChlLHQscil9ZXh0cmFjdChlLHQscj1vLmRlZmF1bHRUZXh0TWFwR2V0dGVyKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmV4dHJhY3QoZSx0LHIpfWZpZWxkcygpe3JldHVybiB0aGlzLl9nZXRHbG9iYWxQcm9wYWdhdG9yKCkuZmllbGRzKCl9ZGlzYWJsZSgpeygwLG4udW5yZWdpc3Rlckdsb2JhbCkodSxzLkRpYWdBUEkuaW5zdGFuY2UoKSl9X2dldEdsb2JhbFByb3BhZ2F0b3IoKXtyZXR1cm4oMCxuLmdldEdsb2JhbCkodSl8fGx9fXQuUHJvcGFnYXRpb25BUEk9UHJvcGFnYXRpb25BUEl9LDk5NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlQVBJPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjb25zdCBhPXIoODQ2KTtjb25zdCBvPXIoMTM5KTtjb25zdCBpPXIoNjA3KTtjb25zdCBjPXIoOTMwKTtjb25zdCBzPVwidHJhY2VcIjtjbGFzcyBUcmFjZUFQSXtjb25zdHJ1Y3Rvcigpe3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcjt0aGlzLndyYXBTcGFuQ29udGV4dD1vLndyYXBTcGFuQ29udGV4dDt0aGlzLmlzU3BhbkNvbnRleHRWYWxpZD1vLmlzU3BhbkNvbnRleHRWYWxpZDt0aGlzLmRlbGV0ZVNwYW49aS5kZWxldGVTcGFuO3RoaXMuZ2V0U3Bhbj1pLmdldFNwYW47dGhpcy5nZXRBY3RpdmVTcGFuPWkuZ2V0QWN0aXZlU3Bhbjt0aGlzLmdldFNwYW5Db250ZXh0PWkuZ2V0U3BhbkNvbnRleHQ7dGhpcy5zZXRTcGFuPWkuc2V0U3Bhbjt0aGlzLnNldFNwYW5Db250ZXh0PWkuc2V0U3BhbkNvbnRleHR9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgVHJhY2VBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFRyYWNlclByb3ZpZGVyKGUpe2NvbnN0IHQ9KDAsbi5yZWdpc3Rlckdsb2JhbCkocyx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLGMuRGlhZ0FQSS5pbnN0YW5jZSgpKTtpZih0KXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLnNldERlbGVnYXRlKGUpfXJldHVybiB0fWdldFRyYWNlclByb3ZpZGVyKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHMpfHx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyfWdldFRyYWNlcihlLHQpe3JldHVybiB0aGlzLmdldFRyYWNlclByb3ZpZGVyKCkuZ2V0VHJhY2VyKGUsdCl9ZGlzYWJsZSgpeygwLG4udW5yZWdpc3Rlckdsb2JhbCkocyxjLkRpYWdBUEkuaW5zdGFuY2UoKSk7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcj1uZXcgYS5Qcm94eVRyYWNlclByb3ZpZGVyfX10LlRyYWNlQVBJPVRyYWNlQVBJfSwyNzc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWxldGVCYWdnYWdlPXQuc2V0QmFnZ2FnZT10LmdldEFjdGl2ZUJhZ2dhZ2U9dC5nZXRCYWdnYWdlPXZvaWQgMDtjb25zdCBuPXIoNDkxKTtjb25zdCBhPXIoNzgwKTtjb25zdCBvPSgwLGEuY3JlYXRlQ29udGV4dEtleSkoXCJPcGVuVGVsZW1ldHJ5IEJhZ2dhZ2UgS2V5XCIpO2Z1bmN0aW9uIGdldEJhZ2dhZ2UoZSl7cmV0dXJuIGUuZ2V0VmFsdWUobyl8fHVuZGVmaW5lZH10LmdldEJhZ2dhZ2U9Z2V0QmFnZ2FnZTtmdW5jdGlvbiBnZXRBY3RpdmVCYWdnYWdlKCl7cmV0dXJuIGdldEJhZ2dhZ2Uobi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfXQuZ2V0QWN0aXZlQmFnZ2FnZT1nZXRBY3RpdmVCYWdnYWdlO2Z1bmN0aW9uIHNldEJhZ2dhZ2UoZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShvLHQpfXQuc2V0QmFnZ2FnZT1zZXRCYWdnYWdlO2Z1bmN0aW9uIGRlbGV0ZUJhZ2dhZ2UoZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUobyl9dC5kZWxldGVCYWdnYWdlPWRlbGV0ZUJhZ2dhZ2V9LDk5MzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5CYWdnYWdlSW1wbD12b2lkIDA7Y2xhc3MgQmFnZ2FnZUltcGx7Y29uc3RydWN0b3IoZSl7dGhpcy5fZW50cmllcz1lP25ldyBNYXAoZSk6bmV3IE1hcH1nZXRFbnRyeShlKXtjb25zdCB0PXRoaXMuX2VudHJpZXMuZ2V0KGUpO2lmKCF0KXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBPYmplY3QuYXNzaWduKHt9LHQpfWdldEFsbEVudHJpZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9lbnRyaWVzLmVudHJpZXMoKSkubWFwKCgoW2UsdF0pPT5bZSx0XSkpfXNldEVudHJ5KGUsdCl7Y29uc3Qgcj1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7ci5fZW50cmllcy5zZXQoZSx0KTtyZXR1cm4gcn1yZW1vdmVFbnRyeShlKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTt0Ll9lbnRyaWVzLmRlbGV0ZShlKTtyZXR1cm4gdH1yZW1vdmVFbnRyaWVzKC4uLmUpe2NvbnN0IHQ9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO2Zvcihjb25zdCByIG9mIGUpe3QuX2VudHJpZXMuZGVsZXRlKHIpfXJldHVybiB0fWNsZWFyKCl7cmV0dXJuIG5ldyBCYWdnYWdlSW1wbH19dC5CYWdnYWdlSW1wbD1CYWdnYWdlSW1wbH0sODMwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sPXZvaWQgMDt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sPVN5bWJvbChcIkJhZ2dhZ2VFbnRyeU1ldGFkYXRhXCIpfSwzNjk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9dC5jcmVhdGVCYWdnYWdlPXZvaWQgMDtjb25zdCBuPXIoOTMwKTtjb25zdCBhPXIoOTkzKTtjb25zdCBvPXIoODMwKTtjb25zdCBpPW4uRGlhZ0FQSS5pbnN0YW5jZSgpO2Z1bmN0aW9uIGNyZWF0ZUJhZ2dhZ2UoZT17fSl7cmV0dXJuIG5ldyBhLkJhZ2dhZ2VJbXBsKG5ldyBNYXAoT2JqZWN0LmVudHJpZXMoZSkpKX10LmNyZWF0ZUJhZ2dhZ2U9Y3JlYXRlQmFnZ2FnZTtmdW5jdGlvbiBiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmcoZSl7aWYodHlwZW9mIGUhPT1cInN0cmluZ1wiKXtpLmVycm9yKGBDYW5ub3QgY3JlYXRlIGJhZ2dhZ2UgbWV0YWRhdGEgZnJvbSB1bmtub3duIHR5cGU6ICR7dHlwZW9mIGV9YCk7ZT1cIlwifXJldHVybntfX1RZUEVfXzpvLmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sLHRvU3RyaW5nKCl7cmV0dXJuIGV9fX10LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZz1iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmd9LDY3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY29udGV4dD12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7dC5jb250ZXh0PW4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpfSwyMjM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wQ29udGV4dE1hbmFnZXI9dm9pZCAwO2NvbnN0IG49cig3ODApO2NsYXNzIE5vb3BDb250ZXh0TWFuYWdlcnthY3RpdmUoKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9d2l0aChlLHQsciwuLi5uKXtyZXR1cm4gdC5jYWxsKHIsLi4ubil9YmluZChlLHQpe3JldHVybiB0fWVuYWJsZSgpe3JldHVybiB0aGlzfWRpc2FibGUoKXtyZXR1cm4gdGhpc319dC5Ob29wQ29udGV4dE1hbmFnZXI9Tm9vcENvbnRleHRNYW5hZ2VyfSw3ODA6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUk9PVF9DT05URVhUPXQuY3JlYXRlQ29udGV4dEtleT12b2lkIDA7ZnVuY3Rpb24gY3JlYXRlQ29udGV4dEtleShlKXtyZXR1cm4gU3ltYm9sLmZvcihlKX10LmNyZWF0ZUNvbnRleHRLZXk9Y3JlYXRlQ29udGV4dEtleTtjbGFzcyBCYXNlQ29udGV4dHtjb25zdHJ1Y3RvcihlKXtjb25zdCB0PXRoaXM7dC5fY3VycmVudENvbnRleHQ9ZT9uZXcgTWFwKGUpOm5ldyBNYXA7dC5nZXRWYWx1ZT1lPT50Ll9jdXJyZW50Q29udGV4dC5nZXQoZSk7dC5zZXRWYWx1ZT0oZSxyKT0+e2NvbnN0IG49bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtuLl9jdXJyZW50Q29udGV4dC5zZXQoZSxyKTtyZXR1cm4gbn07dC5kZWxldGVWYWx1ZT1lPT57Y29uc3Qgcj1uZXcgQmFzZUNvbnRleHQodC5fY3VycmVudENvbnRleHQpO3IuX2N1cnJlbnRDb250ZXh0LmRlbGV0ZShlKTtyZXR1cm4gcn19fXQuUk9PVF9DT05URVhUPW5ldyBCYXNlQ29udGV4dH0sNTA2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGlhZz12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7dC5kaWFnPW4uRGlhZ0FQSS5pbnN0YW5jZSgpfSw1NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdDb21wb25lbnRMb2dnZXI9dm9pZCAwO2NvbnN0IG49cigxNzIpO2NsYXNzIERpYWdDb21wb25lbnRMb2dnZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5fbmFtZXNwYWNlPWUubmFtZXNwYWNlfHxcIkRpYWdDb21wb25lbnRMb2dnZXJcIn1kZWJ1ZyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJkZWJ1Z1wiLHRoaXMuX25hbWVzcGFjZSxlKX1lcnJvciguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJlcnJvclwiLHRoaXMuX25hbWVzcGFjZSxlKX1pbmZvKC4uLmUpe3JldHVybiBsb2dQcm94eShcImluZm9cIix0aGlzLl9uYW1lc3BhY2UsZSl9d2FybiguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJ3YXJuXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXZlcmJvc2UoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwidmVyYm9zZVwiLHRoaXMuX25hbWVzcGFjZSxlKX19dC5EaWFnQ29tcG9uZW50TG9nZ2VyPURpYWdDb21wb25lbnRMb2dnZXI7ZnVuY3Rpb24gbG9nUHJveHkoZSx0LHIpe2NvbnN0IGE9KDAsbi5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtpZighYSl7cmV0dXJufXIudW5zaGlmdCh0KTtyZXR1cm4gYVtlXSguLi5yKX19LDk3MjooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29uc29sZUxvZ2dlcj12b2lkIDA7Y29uc3Qgcj1be246XCJlcnJvclwiLGM6XCJlcnJvclwifSx7bjpcIndhcm5cIixjOlwid2FyblwifSx7bjpcImluZm9cIixjOlwiaW5mb1wifSx7bjpcImRlYnVnXCIsYzpcImRlYnVnXCJ9LHtuOlwidmVyYm9zZVwiLGM6XCJ0cmFjZVwifV07Y2xhc3MgRGlhZ0NvbnNvbGVMb2dnZXJ7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiBfY29uc29sZUZ1bmMoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2lmKGNvbnNvbGUpe2xldCByPWNvbnNvbGVbZV07aWYodHlwZW9mIHIhPT1cImZ1bmN0aW9uXCIpe3I9Y29uc29sZS5sb2d9aWYodHlwZW9mIHI9PT1cImZ1bmN0aW9uXCIpe3JldHVybiByLmFwcGx5KGNvbnNvbGUsdCl9fX19Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspe3RoaXNbcltlXS5uXT1fY29uc29sZUZ1bmMocltlXS5jKX19fXQuRGlhZ0NvbnNvbGVMb2dnZXI9RGlhZ0NvbnNvbGVMb2dnZXJ9LDkxMjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj12b2lkIDA7Y29uc3Qgbj1yKDk1Nyk7ZnVuY3Rpb24gY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyKGUsdCl7aWYoZTxuLkRpYWdMb2dMZXZlbC5OT05FKXtlPW4uRGlhZ0xvZ0xldmVsLk5PTkV9ZWxzZSBpZihlPm4uRGlhZ0xvZ0xldmVsLkFMTCl7ZT1uLkRpYWdMb2dMZXZlbC5BTEx9dD10fHx7fTtmdW5jdGlvbiBfZmlsdGVyRnVuYyhyLG4pe2NvbnN0IGE9dFtyXTtpZih0eXBlb2YgYT09PVwiZnVuY3Rpb25cIiYmZT49bil7cmV0dXJuIGEuYmluZCh0KX1yZXR1cm4gZnVuY3Rpb24oKXt9fXJldHVybntlcnJvcjpfZmlsdGVyRnVuYyhcImVycm9yXCIsbi5EaWFnTG9nTGV2ZWwuRVJST1IpLHdhcm46X2ZpbHRlckZ1bmMoXCJ3YXJuXCIsbi5EaWFnTG9nTGV2ZWwuV0FSTiksaW5mbzpfZmlsdGVyRnVuYyhcImluZm9cIixuLkRpYWdMb2dMZXZlbC5JTkZPKSxkZWJ1ZzpfZmlsdGVyRnVuYyhcImRlYnVnXCIsbi5EaWFnTG9nTGV2ZWwuREVCVUcpLHZlcmJvc2U6X2ZpbHRlckZ1bmMoXCJ2ZXJib3NlXCIsbi5EaWFnTG9nTGV2ZWwuVkVSQk9TRSl9fXQuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyPWNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcn0sOTU3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdMb2dMZXZlbD12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiRVJST1JcIl09MzBdPVwiRVJST1JcIjtlW2VbXCJXQVJOXCJdPTUwXT1cIldBUk5cIjtlW2VbXCJJTkZPXCJdPTYwXT1cIklORk9cIjtlW2VbXCJERUJVR1wiXT03MF09XCJERUJVR1wiO2VbZVtcIlZFUkJPU0VcIl09ODBdPVwiVkVSQk9TRVwiO2VbZVtcIkFMTFwiXT05OTk5XT1cIkFMTFwifSkocj10LkRpYWdMb2dMZXZlbHx8KHQuRGlhZ0xvZ0xldmVsPXt9KSl9LDE3MjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnVucmVnaXN0ZXJHbG9iYWw9dC5nZXRHbG9iYWw9dC5yZWdpc3Rlckdsb2JhbD12b2lkIDA7Y29uc3Qgbj1yKDIwMCk7Y29uc3QgYT1yKDUyMSk7Y29uc3Qgbz1yKDEzMCk7Y29uc3QgaT1hLlZFUlNJT04uc3BsaXQoXCIuXCIpWzBdO2NvbnN0IGM9U3ltYm9sLmZvcihgb3BlbnRlbGVtZXRyeS5qcy5hcGkuJHtpfWApO2NvbnN0IHM9bi5fZ2xvYmFsVGhpcztmdW5jdGlvbiByZWdpc3Rlckdsb2JhbChlLHQscixuPWZhbHNlKXt2YXIgbztjb25zdCBpPXNbY109KG89c1tjXSkhPT1udWxsJiZvIT09dm9pZCAwP286e3ZlcnNpb246YS5WRVJTSU9OfTtpZighbiYmaVtlXSl7Y29uc3QgdD1uZXcgRXJyb3IoYEBvcGVudGVsZW1ldHJ5L2FwaTogQXR0ZW1wdGVkIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gb2YgQVBJOiAke2V9YCk7ci5lcnJvcih0LnN0YWNrfHx0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pZihpLnZlcnNpb24hPT1hLlZFUlNJT04pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IFJlZ2lzdHJhdGlvbiBvZiB2ZXJzaW9uIHYke2kudmVyc2lvbn0gZm9yICR7ZX0gZG9lcyBub3QgbWF0Y2ggcHJldmlvdXNseSByZWdpc3RlcmVkIEFQSSB2JHthLlZFUlNJT059YCk7ci5lcnJvcih0LnN0YWNrfHx0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pW2VdPXQ7ci5kZWJ1ZyhgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RlcmVkIGEgZ2xvYmFsIGZvciAke2V9IHYke2EuVkVSU0lPTn0uYCk7cmV0dXJuIHRydWV9dC5yZWdpc3Rlckdsb2JhbD1yZWdpc3Rlckdsb2JhbDtmdW5jdGlvbiBnZXRHbG9iYWwoZSl7dmFyIHQscjtjb25zdCBuPSh0PXNbY10pPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC52ZXJzaW9uO2lmKCFufHwhKDAsby5pc0NvbXBhdGlibGUpKG4pKXtyZXR1cm59cmV0dXJuKHI9c1tjXSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyW2VdfXQuZ2V0R2xvYmFsPWdldEdsb2JhbDtmdW5jdGlvbiB1bnJlZ2lzdGVyR2xvYmFsKGUsdCl7dC5kZWJ1ZyhgQG9wZW50ZWxlbWV0cnkvYXBpOiBVbnJlZ2lzdGVyaW5nIGEgZ2xvYmFsIGZvciAke2V9IHYke2EuVkVSU0lPTn0uYCk7Y29uc3Qgcj1zW2NdO2lmKHIpe2RlbGV0ZSByW2VdfX10LnVucmVnaXN0ZXJHbG9iYWw9dW5yZWdpc3Rlckdsb2JhbH0sMTMwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuaXNDb21wYXRpYmxlPXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9dm9pZCAwO2NvbnN0IG49cig1MjEpO2NvbnN0IGE9L14oXFxkKylcXC4oXFxkKylcXC4oXFxkKykoLSguKykpPyQvO2Z1bmN0aW9uIF9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrKGUpe2NvbnN0IHQ9bmV3IFNldChbZV0pO2NvbnN0IHI9bmV3IFNldDtjb25zdCBuPWUubWF0Y2goYSk7aWYoIW4pe3JldHVybigpPT5mYWxzZX1jb25zdCBvPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKG8ucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uIGlzRXhhY3RtYXRjaCh0KXtyZXR1cm4gdD09PWV9fWZ1bmN0aW9uIF9yZWplY3QoZSl7ci5hZGQoZSk7cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIF9hY2NlcHQoZSl7dC5hZGQoZSk7cmV0dXJuIHRydWV9cmV0dXJuIGZ1bmN0aW9uIGlzQ29tcGF0aWJsZShlKXtpZih0LmhhcyhlKSl7cmV0dXJuIHRydWV9aWYoci5oYXMoZSkpe3JldHVybiBmYWxzZX1jb25zdCBuPWUubWF0Y2goYSk7aWYoIW4pe3JldHVybiBfcmVqZWN0KGUpfWNvbnN0IGk9e21ham9yOituWzFdLG1pbm9yOituWzJdLHBhdGNoOituWzNdLHByZXJlbGVhc2U6bls0XX07aWYoaS5wcmVyZWxlYXNlIT1udWxsKXtyZXR1cm4gX3JlamVjdChlKX1pZihvLm1ham9yIT09aS5tYWpvcil7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvcj09PTApe2lmKG8ubWlub3I9PT1pLm1pbm9yJiZvLnBhdGNoPD1pLnBhdGNoKXtyZXR1cm4gX2FjY2VwdChlKX1yZXR1cm4gX3JlamVjdChlKX1pZihvLm1pbm9yPD1pLm1pbm9yKXtyZXR1cm4gX2FjY2VwdChlKX1yZXR1cm4gX3JlamVjdChlKX19dC5fbWFrZUNvbXBhdGliaWxpdHlDaGVjaz1fbWFrZUNvbXBhdGliaWxpdHlDaGVjazt0LmlzQ29tcGF0aWJsZT1fbWFrZUNvbXBhdGliaWxpdHlDaGVjayhuLlZFUlNJT04pfSw4ODY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5tZXRyaWNzPXZvaWQgMDtjb25zdCBuPXIoNjUzKTt0Lm1ldHJpY3M9bi5NZXRyaWNzQVBJLmdldEluc3RhbmNlKCl9LDkwMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WYWx1ZVR5cGU9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRcIl09MF09XCJJTlRcIjtlW2VbXCJET1VCTEVcIl09MV09XCJET1VCTEVcIn0pKHI9dC5WYWx1ZVR5cGV8fCh0LlZhbHVlVHlwZT17fSkpfSwxMDI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlTm9vcE1ldGVyPXQuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9dC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDPXQuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9ISVNUT0dSQU1fTUVUUklDPXQuTk9PUF9DT1VOVEVSX01FVFJJQz10Lk5PT1BfTUVURVI9dC5Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM9dC5Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljPXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVNZXRyaWM9dC5Ob29wSGlzdG9ncmFtTWV0cmljPXQuTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM9dC5Ob29wQ291bnRlck1ldHJpYz10Lk5vb3BNZXRyaWM9dC5Ob29wTWV0ZXI9dm9pZCAwO2NsYXNzIE5vb3BNZXRlcntjb25zdHJ1Y3Rvcigpe31jcmVhdGVIaXN0b2dyYW0oZSxyKXtyZXR1cm4gdC5OT09QX0hJU1RPR1JBTV9NRVRSSUN9Y3JlYXRlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfQ09VTlRFUl9NRVRSSUN9Y3JlYXRlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlR2F1Z2UoZSxyKXtyZXR1cm4gdC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVDb3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVVcERvd25Db3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9YWRkQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2soZSx0KXt9cmVtb3ZlQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2soZSl7fX10Lk5vb3BNZXRlcj1Ob29wTWV0ZXI7Y2xhc3MgTm9vcE1ldHJpY3t9dC5Ob29wTWV0cmljPU5vb3BNZXRyaWM7Y2xhc3MgTm9vcENvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wQ291bnRlck1ldHJpYz1Ob29wQ291bnRlck1ldHJpYztjbGFzcyBOb29wVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BNZXRyaWN7YWRkKGUsdCl7fX10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPU5vb3BVcERvd25Db3VudGVyTWV0cmljO2NsYXNzIE5vb3BIaXN0b2dyYW1NZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje3JlY29yZChlLHQpe319dC5Ob29wSGlzdG9ncmFtTWV0cmljPU5vb3BIaXN0b2dyYW1NZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVNZXRyaWN7YWRkQ2FsbGJhY2soZSl7fXJlbW92ZUNhbGxiYWNrKGUpe319dC5Ob29wT2JzZXJ2YWJsZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZU1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM9Tm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljPU5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYzt0Lk5PT1BfTUVURVI9bmV3IE5vb3BNZXRlcjt0Lk5PT1BfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BDb3VudGVyTWV0cmljO3QuTk9PUF9ISVNUT0dSQU1fTUVUUklDPW5ldyBOb29wSGlzdG9ncmFtTWV0cmljO3QuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDPW5ldyBOb29wVXBEb3duQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljO3QuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPW5ldyBOb29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7ZnVuY3Rpb24gY3JlYXRlTm9vcE1ldGVyKCl7cmV0dXJuIHQuTk9PUF9NRVRFUn10LmNyZWF0ZU5vb3BNZXRlcj1jcmVhdGVOb29wTWV0ZXJ9LDY2MDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5PT1BfTUVURVJfUFJPVklERVI9dC5Ob29wTWV0ZXJQcm92aWRlcj12b2lkIDA7Y29uc3Qgbj1yKDEwMik7Y2xhc3MgTm9vcE1ldGVyUHJvdmlkZXJ7Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiBuLk5PT1BfTUVURVJ9fXQuTm9vcE1ldGVyUHJvdmlkZXI9Tm9vcE1ldGVyUHJvdmlkZXI7dC5OT09QX01FVEVSX1BST1ZJREVSPW5ldyBOb29wTWV0ZXJQcm92aWRlcn0sMjAwOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfTpmdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtlW25dPXRbcl19KTt2YXIgYT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gZSlpZihyIT09XCJkZWZhdWx0XCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSluKHQsZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTthKHIoNDYpLHQpfSw2NTE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuX2dsb2JhbFRoaXM9dm9pZCAwO3QuX2dsb2JhbFRoaXM9dHlwZW9mIGdsb2JhbFRoaXM9PT1cIm9iamVjdFwiP2dsb2JhbFRoaXM6Z2xvYmFsfSw0NjpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDY1MSksdCl9LDkzOTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnByb3BhZ2F0aW9uPXZvaWQgMDtjb25zdCBuPXIoMTgxKTt0LnByb3BhZ2F0aW9uPW4uUHJvcGFnYXRpb25BUEkuZ2V0SW5zdGFuY2UoKX0sODc0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj12b2lkIDA7Y2xhc3MgTm9vcFRleHRNYXBQcm9wYWdhdG9ye2luamVjdChlLHQpe31leHRyYWN0KGUsdCl7cmV0dXJuIGV9ZmllbGRzKCl7cmV0dXJuW119fXQuTm9vcFRleHRNYXBQcm9wYWdhdG9yPU5vb3BUZXh0TWFwUHJvcGFnYXRvcn0sMTk0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRlZmF1bHRUZXh0TWFwU2V0dGVyPXQuZGVmYXVsdFRleHRNYXBHZXR0ZXI9dm9pZCAwO3QuZGVmYXVsdFRleHRNYXBHZXR0ZXI9e2dldChlLHQpe2lmKGU9PW51bGwpe3JldHVybiB1bmRlZmluZWR9cmV0dXJuIGVbdF19LGtleXMoZSl7aWYoZT09bnVsbCl7cmV0dXJuW119cmV0dXJuIE9iamVjdC5rZXlzKGUpfX07dC5kZWZhdWx0VGV4dE1hcFNldHRlcj17c2V0KGUsdCxyKXtpZihlPT1udWxsKXtyZXR1cm59ZVt0XT1yfX19LDg0NTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnRyYWNlPXZvaWQgMDtjb25zdCBuPXIoOTk3KTt0LnRyYWNlPW4uVHJhY2VBUEkuZ2V0SW5zdGFuY2UoKX0sNDAzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9uUmVjb3JkaW5nU3Bhbj12b2lkIDA7Y29uc3Qgbj1yKDQ3Nik7Y2xhc3MgTm9uUmVjb3JkaW5nU3Bhbntjb25zdHJ1Y3RvcihlPW4uSU5WQUxJRF9TUEFOX0NPTlRFWFQpe3RoaXMuX3NwYW5Db250ZXh0PWV9c3BhbkNvbnRleHQoKXtyZXR1cm4gdGhpcy5fc3BhbkNvbnRleHR9c2V0QXR0cmlidXRlKGUsdCl7cmV0dXJuIHRoaXN9c2V0QXR0cmlidXRlcyhlKXtyZXR1cm4gdGhpc31hZGRFdmVudChlLHQpe3JldHVybiB0aGlzfXNldFN0YXR1cyhlKXtyZXR1cm4gdGhpc311cGRhdGVOYW1lKGUpe3JldHVybiB0aGlzfWVuZChlKXt9aXNSZWNvcmRpbmcoKXtyZXR1cm4gZmFsc2V9cmVjb3JkRXhjZXB0aW9uKGUsdCl7fX10Lk5vblJlY29yZGluZ1NwYW49Tm9uUmVjb3JkaW5nU3Bhbn0sNjE0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDYwNyk7Y29uc3Qgbz1yKDQwMyk7Y29uc3QgaT1yKDEzOSk7Y29uc3QgYz1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKTtjbGFzcyBOb29wVHJhY2Vye3N0YXJ0U3BhbihlLHQscj1jLmFjdGl2ZSgpKXtjb25zdCBuPUJvb2xlYW4odD09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQucm9vdCk7aWYobil7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW59Y29uc3Qgcz1yJiYoMCxhLmdldFNwYW5Db250ZXh0KShyKTtpZihpc1NwYW5Db250ZXh0KHMpJiYoMCxpLmlzU3BhbkNvbnRleHRWYWxpZCkocykpe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFuKHMpfWVsc2V7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW59fXN0YXJ0QWN0aXZlU3BhbihlLHQscixuKXtsZXQgbztsZXQgaTtsZXQgcztpZihhcmd1bWVudHMubGVuZ3RoPDIpe3JldHVybn1lbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGg9PT0yKXtzPXR9ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Myl7bz10O3M9cn1lbHNle289dDtpPXI7cz1ufWNvbnN0IHU9aSE9PW51bGwmJmkhPT12b2lkIDA/aTpjLmFjdGl2ZSgpO2NvbnN0IGw9dGhpcy5zdGFydFNwYW4oZSxvLHUpO2NvbnN0IGc9KDAsYS5zZXRTcGFuKSh1LGwpO3JldHVybiBjLndpdGgoZyxzLHVuZGVmaW5lZCxsKX19dC5Ob29wVHJhY2VyPU5vb3BUcmFjZXI7ZnVuY3Rpb24gaXNTcGFuQ29udGV4dChlKXtyZXR1cm4gdHlwZW9mIGU9PT1cIm9iamVjdFwiJiZ0eXBlb2YgZVtcInNwYW5JZFwiXT09PVwic3RyaW5nXCImJnR5cGVvZiBlW1widHJhY2VJZFwiXT09PVwic3RyaW5nXCImJnR5cGVvZiBlW1widHJhY2VGbGFnc1wiXT09PVwibnVtYmVyXCJ9fSwxMjQ6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVHJhY2VyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cig2MTQpO2NsYXNzIE5vb3BUcmFjZXJQcm92aWRlcntnZXRUcmFjZXIoZSx0LHIpe3JldHVybiBuZXcgbi5Ob29wVHJhY2VyfX10Lk5vb3BUcmFjZXJQcm92aWRlcj1Ob29wVHJhY2VyUHJvdmlkZXJ9LDEyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3h5VHJhY2VyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjb25zdCBhPW5ldyBuLk5vb3BUcmFjZXI7Y2xhc3MgUHJveHlUcmFjZXJ7Y29uc3RydWN0b3IoZSx0LHIsbil7dGhpcy5fcHJvdmlkZXI9ZTt0aGlzLm5hbWU9dDt0aGlzLnZlcnNpb249cjt0aGlzLm9wdGlvbnM9bn1zdGFydFNwYW4oZSx0LHIpe3JldHVybiB0aGlzLl9nZXRUcmFjZXIoKS5zdGFydFNwYW4oZSx0LHIpfXN0YXJ0QWN0aXZlU3BhbihlLHQscixuKXtjb25zdCBhPXRoaXMuX2dldFRyYWNlcigpO3JldHVybiBSZWZsZWN0LmFwcGx5KGEuc3RhcnRBY3RpdmVTcGFuLGEsYXJndW1lbnRzKX1fZ2V0VHJhY2VyKCl7aWYodGhpcy5fZGVsZWdhdGUpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZX1jb25zdCBlPXRoaXMuX3Byb3ZpZGVyLmdldERlbGVnYXRlVHJhY2VyKHRoaXMubmFtZSx0aGlzLnZlcnNpb24sdGhpcy5vcHRpb25zKTtpZighZSl7cmV0dXJuIGF9dGhpcy5fZGVsZWdhdGU9ZTtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9fXQuUHJveHlUcmFjZXI9UHJveHlUcmFjZXJ9LDg0NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3h5VHJhY2VyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMjUpO2NvbnN0IGE9cigxMjQpO2NvbnN0IG89bmV3IGEuTm9vcFRyYWNlclByb3ZpZGVyO2NsYXNzIFByb3h5VHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXt2YXIgYTtyZXR1cm4oYT10aGlzLmdldERlbGVnYXRlVHJhY2VyKGUsdCxyKSkhPT1udWxsJiZhIT09dm9pZCAwP2E6bmV3IG4uUHJveHlUcmFjZXIodGhpcyxlLHQscil9Z2V0RGVsZWdhdGUoKXt2YXIgZTtyZXR1cm4oZT10aGlzLl9kZWxlZ2F0ZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6b31zZXREZWxlZ2F0ZShlKXt0aGlzLl9kZWxlZ2F0ZT1lfWdldERlbGVnYXRlVHJhY2VyKGUsdCxyKXt2YXIgbjtyZXR1cm4obj10aGlzLl9kZWxlZ2F0ZSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmdldFRyYWNlcihlLHQscil9fXQuUHJveHlUcmFjZXJQcm92aWRlcj1Qcm94eVRyYWNlclByb3ZpZGVyfSw5OTY6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU2FtcGxpbmdEZWNpc2lvbj12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PVF9SRUNPUkRcIl09MF09XCJOT1RfUkVDT1JEXCI7ZVtlW1wiUkVDT1JEXCJdPTFdPVwiUkVDT1JEXCI7ZVtlW1wiUkVDT1JEX0FORF9TQU1QTEVEXCJdPTJdPVwiUkVDT1JEX0FORF9TQU1QTEVEXCJ9KShyPXQuU2FtcGxpbmdEZWNpc2lvbnx8KHQuU2FtcGxpbmdEZWNpc2lvbj17fSkpfSw2MDc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5nZXRTcGFuQ29udGV4dD10LnNldFNwYW5Db250ZXh0PXQuZGVsZXRlU3Bhbj10LnNldFNwYW49dC5nZXRBY3RpdmVTcGFuPXQuZ2V0U3Bhbj12b2lkIDA7Y29uc3Qgbj1yKDc4MCk7Y29uc3QgYT1yKDQwMyk7Y29uc3Qgbz1yKDQ5MSk7Y29uc3QgaT0oMCxuLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBDb250ZXh0IEtleSBTUEFOXCIpO2Z1bmN0aW9uIGdldFNwYW4oZSl7cmV0dXJuIGUuZ2V0VmFsdWUoaSl8fHVuZGVmaW5lZH10LmdldFNwYW49Z2V0U3BhbjtmdW5jdGlvbiBnZXRBY3RpdmVTcGFuKCl7cmV0dXJuIGdldFNwYW4oby5Db250ZXh0QVBJLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfXQuZ2V0QWN0aXZlU3Bhbj1nZXRBY3RpdmVTcGFuO2Z1bmN0aW9uIHNldFNwYW4oZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShpLHQpfXQuc2V0U3Bhbj1zZXRTcGFuO2Z1bmN0aW9uIGRlbGV0ZVNwYW4oZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUoaSl9dC5kZWxldGVTcGFuPWRlbGV0ZVNwYW47ZnVuY3Rpb24gc2V0U3BhbkNvbnRleHQoZSx0KXtyZXR1cm4gc2V0U3BhbihlLG5ldyBhLk5vblJlY29yZGluZ1NwYW4odCkpfXQuc2V0U3BhbkNvbnRleHQ9c2V0U3BhbkNvbnRleHQ7ZnVuY3Rpb24gZ2V0U3BhbkNvbnRleHQoZSl7dmFyIHQ7cmV0dXJuKHQ9Z2V0U3BhbihlKSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnNwYW5Db250ZXh0KCl9dC5nZXRTcGFuQ29udGV4dD1nZXRTcGFuQ29udGV4dH0sMzI1OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VTdGF0ZUltcGw9dm9pZCAwO2NvbnN0IG49cig1NjQpO2NvbnN0IGE9MzI7Y29uc3Qgbz01MTI7Y29uc3QgaT1cIixcIjtjb25zdCBjPVwiPVwiO2NsYXNzIFRyYWNlU3RhdGVJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2ludGVybmFsU3RhdGU9bmV3IE1hcDtpZihlKXRoaXMuX3BhcnNlKGUpfXNldChlLHQpe2NvbnN0IHI9dGhpcy5fY2xvbmUoKTtpZihyLl9pbnRlcm5hbFN0YXRlLmhhcyhlKSl7ci5faW50ZXJuYWxTdGF0ZS5kZWxldGUoZSl9ci5faW50ZXJuYWxTdGF0ZS5zZXQoZSx0KTtyZXR1cm4gcn11bnNldChlKXtjb25zdCB0PXRoaXMuX2Nsb25lKCk7dC5faW50ZXJuYWxTdGF0ZS5kZWxldGUoZSk7cmV0dXJuIHR9Z2V0KGUpe3JldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlLmdldChlKX1zZXJpYWxpemUoKXtyZXR1cm4gdGhpcy5fa2V5cygpLnJlZHVjZSgoKGUsdCk9PntlLnB1c2godCtjK3RoaXMuZ2V0KHQpKTtyZXR1cm4gZX0pLFtdKS5qb2luKGkpfV9wYXJzZShlKXtpZihlLmxlbmd0aD5vKXJldHVybjt0aGlzLl9pbnRlcm5hbFN0YXRlPWUuc3BsaXQoaSkucmV2ZXJzZSgpLnJlZHVjZSgoKGUsdCk9Pntjb25zdCByPXQudHJpbSgpO2NvbnN0IGE9ci5pbmRleE9mKGMpO2lmKGEhPT0tMSl7Y29uc3Qgbz1yLnNsaWNlKDAsYSk7Y29uc3QgaT1yLnNsaWNlKGErMSx0Lmxlbmd0aCk7aWYoKDAsbi52YWxpZGF0ZUtleSkobykmJigwLG4udmFsaWRhdGVWYWx1ZSkoaSkpe2Uuc2V0KG8saSl9ZWxzZXt9fXJldHVybiBlfSksbmV3IE1hcCk7aWYodGhpcy5faW50ZXJuYWxTdGF0ZS5zaXplPmEpe3RoaXMuX2ludGVybmFsU3RhdGU9bmV3IE1hcChBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUuZW50cmllcygpKS5yZXZlcnNlKCkuc2xpY2UoMCxhKSl9fV9rZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5rZXlzKCkpLnJldmVyc2UoKX1fY2xvbmUoKXtjb25zdCBlPW5ldyBUcmFjZVN0YXRlSW1wbDtlLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAodGhpcy5faW50ZXJuYWxTdGF0ZSk7cmV0dXJuIGV9fXQuVHJhY2VTdGF0ZUltcGw9VHJhY2VTdGF0ZUltcGx9LDU2NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC52YWxpZGF0ZVZhbHVlPXQudmFsaWRhdGVLZXk9dm9pZCAwO2NvbnN0IHI9XCJbXzAtOWEtei0qL11cIjtjb25zdCBuPWBbYS16XSR7cn17MCwyNTV9YDtjb25zdCBhPWBbYS16MC05XSR7cn17MCwyNDB9QFthLXpdJHtyfXswLDEzfWA7Y29uc3Qgbz1uZXcgUmVnRXhwKGBeKD86JHtufXwke2F9KSRgKTtjb25zdCBpPS9eWyAtfl17MCwyNTV9WyEtfl0kLztjb25zdCBjPS8sfD0vO2Z1bmN0aW9uIHZhbGlkYXRlS2V5KGUpe3JldHVybiBvLnRlc3QoZSl9dC52YWxpZGF0ZUtleT12YWxpZGF0ZUtleTtmdW5jdGlvbiB2YWxpZGF0ZVZhbHVlKGUpe3JldHVybiBpLnRlc3QoZSkmJiFjLnRlc3QoZSl9dC52YWxpZGF0ZVZhbHVlPXZhbGlkYXRlVmFsdWV9LDk4OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlVHJhY2VTdGF0ZT12b2lkIDA7Y29uc3Qgbj1yKDMyNSk7ZnVuY3Rpb24gY3JlYXRlVHJhY2VTdGF0ZShlKXtyZXR1cm4gbmV3IG4uVHJhY2VTdGF0ZUltcGwoZSl9dC5jcmVhdGVUcmFjZVN0YXRlPWNyZWF0ZVRyYWNlU3RhdGV9LDQ3NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LklOVkFMSURfU1BBTl9DT05URVhUPXQuSU5WQUxJRF9UUkFDRUlEPXQuSU5WQUxJRF9TUEFOSUQ9dm9pZCAwO2NvbnN0IG49cig0NzUpO3QuSU5WQUxJRF9TUEFOSUQ9XCIwMDAwMDAwMDAwMDAwMDAwXCI7dC5JTlZBTElEX1RSQUNFSUQ9XCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9e3RyYWNlSWQ6dC5JTlZBTElEX1RSQUNFSUQsc3BhbklkOnQuSU5WQUxJRF9TUEFOSUQsdHJhY2VGbGFnczpuLlRyYWNlRmxhZ3MuTk9ORX19LDM1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuS2luZD12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIklOVEVSTkFMXCJdPTBdPVwiSU5URVJOQUxcIjtlW2VbXCJTRVJWRVJcIl09MV09XCJTRVJWRVJcIjtlW2VbXCJDTElFTlRcIl09Ml09XCJDTElFTlRcIjtlW2VbXCJQUk9EVUNFUlwiXT0zXT1cIlBST0RVQ0VSXCI7ZVtlW1wiQ09OU1VNRVJcIl09NF09XCJDT05TVU1FUlwifSkocj10LlNwYW5LaW5kfHwodC5TcGFuS2luZD17fSkpfSwxMzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC53cmFwU3BhbkNvbnRleHQ9dC5pc1NwYW5Db250ZXh0VmFsaWQ9dC5pc1ZhbGlkU3BhbklkPXQuaXNWYWxpZFRyYWNlSWQ9dm9pZCAwO2NvbnN0IG49cig0NzYpO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89L14oWzAtOWEtZl17MzJ9KSQvaTtjb25zdCBpPS9eWzAtOWEtZl17MTZ9JC9pO2Z1bmN0aW9uIGlzVmFsaWRUcmFjZUlkKGUpe3JldHVybiBvLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfVFJBQ0VJRH10LmlzVmFsaWRUcmFjZUlkPWlzVmFsaWRUcmFjZUlkO2Z1bmN0aW9uIGlzVmFsaWRTcGFuSWQoZSl7cmV0dXJuIGkudGVzdChlKSYmZSE9PW4uSU5WQUxJRF9TUEFOSUR9dC5pc1ZhbGlkU3BhbklkPWlzVmFsaWRTcGFuSWQ7ZnVuY3Rpb24gaXNTcGFuQ29udGV4dFZhbGlkKGUpe3JldHVybiBpc1ZhbGlkVHJhY2VJZChlLnRyYWNlSWQpJiZpc1ZhbGlkU3BhbklkKGUuc3BhbklkKX10LmlzU3BhbkNvbnRleHRWYWxpZD1pc1NwYW5Db250ZXh0VmFsaWQ7ZnVuY3Rpb24gd3JhcFNwYW5Db250ZXh0KGUpe3JldHVybiBuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKGUpfXQud3JhcFNwYW5Db250ZXh0PXdyYXBTcGFuQ29udGV4dH0sODQ3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNwYW5TdGF0dXNDb2RlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiVU5TRVRcIl09MF09XCJVTlNFVFwiO2VbZVtcIk9LXCJdPTFdPVwiT0tcIjtlW2VbXCJFUlJPUlwiXT0yXT1cIkVSUk9SXCJ9KShyPXQuU3BhblN0YXR1c0NvZGV8fCh0LlNwYW5TdGF0dXNDb2RlPXt9KSl9LDQ3NTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUZsYWdzPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiTk9ORVwiXT0wXT1cIk5PTkVcIjtlW2VbXCJTQU1QTEVEXCJdPTFdPVwiU0FNUExFRFwifSkocj10LlRyYWNlRmxhZ3N8fCh0LlRyYWNlRmxhZ3M9e30pKX0sNTIxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlZFUlNJT049dm9pZCAwO3QuVkVSU0lPTj1cIjEuNi4wXCJ9fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHIpe3ZhciBuPXRbcl07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgYT10W3JdPXtleHBvcnRzOnt9fTt2YXIgbz10cnVlO3RyeXtlW3JdLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO289ZmFsc2V9ZmluYWxseXtpZihvKWRlbGV0ZSB0W3JdfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciByPXt9OygoKT0+e3ZhciBlPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTtlLnRyYWNlPWUucHJvcGFnYXRpb249ZS5tZXRyaWNzPWUuZGlhZz1lLmNvbnRleHQ9ZS5JTlZBTElEX1NQQU5fQ09OVEVYVD1lLklOVkFMSURfVFJBQ0VJRD1lLklOVkFMSURfU1BBTklEPWUuaXNWYWxpZFNwYW5JZD1lLmlzVmFsaWRUcmFjZUlkPWUuaXNTcGFuQ29udGV4dFZhbGlkPWUuY3JlYXRlVHJhY2VTdGF0ZT1lLlRyYWNlRmxhZ3M9ZS5TcGFuU3RhdHVzQ29kZT1lLlNwYW5LaW5kPWUuU2FtcGxpbmdEZWNpc2lvbj1lLlByb3h5VHJhY2VyUHJvdmlkZXI9ZS5Qcm94eVRyYWNlcj1lLmRlZmF1bHRUZXh0TWFwU2V0dGVyPWUuZGVmYXVsdFRleHRNYXBHZXR0ZXI9ZS5WYWx1ZVR5cGU9ZS5jcmVhdGVOb29wTWV0ZXI9ZS5EaWFnTG9nTGV2ZWw9ZS5EaWFnQ29uc29sZUxvZ2dlcj1lLlJPT1RfQ09OVEVYVD1lLmNyZWF0ZUNvbnRleHRLZXk9ZS5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9dm9pZCAwO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oMzY5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfX0pO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oNzgwKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZUNvbnRleHRLZXlcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmNyZWF0ZUNvbnRleHRLZXl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJST09UX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBuLlJPT1RfQ09OVEVYVH19KTt2YXIgYT1fX25jY3dwY2tfcmVxdWlyZV9fKDk3Mik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJEaWFnQ29uc29sZUxvZ2dlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuRGlhZ0NvbnNvbGVMb2dnZXJ9fSk7dmFyIG89X19uY2N3cGNrX3JlcXVpcmVfXyg5NTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0xvZ0xldmVsXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5EaWFnTG9nTGV2ZWx9fSk7dmFyIGk9X19uY2N3cGNrX3JlcXVpcmVfXygxMDIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlTm9vcE1ldGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaS5jcmVhdGVOb29wTWV0ZXJ9fSk7dmFyIGM9X19uY2N3cGNrX3JlcXVpcmVfXyg5MDEpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVmFsdWVUeXBlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5WYWx1ZVR5cGV9fSk7dmFyIHM9X19uY2N3cGNrX3JlcXVpcmVfXygxOTQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFRleHRNYXBHZXR0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHRUZXh0TWFwR2V0dGVyfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFRleHRNYXBTZXR0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHRUZXh0TWFwU2V0dGVyfX0pO3ZhciB1PV9fbmNjd3Bja19yZXF1aXJlX18oMTI1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlByb3h5VHJhY2VyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdS5Qcm94eVRyYWNlcn19KTt2YXIgbD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclByb3ZpZGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5Qcm94eVRyYWNlclByb3ZpZGVyfX0pO3ZhciBnPV9fbmNjd3Bja19yZXF1aXJlX18oOTk2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNhbXBsaW5nRGVjaXNpb25cIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBnLlNhbXBsaW5nRGVjaXNpb259fSk7dmFyIHA9X19uY2N3cGNrX3JlcXVpcmVfXygzNTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiU3BhbktpbmRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBwLlNwYW5LaW5kfX0pO3ZhciBkPV9fbmNjd3Bja19yZXF1aXJlX18oODQ3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5TdGF0dXNDb2RlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZC5TcGFuU3RhdHVzQ29kZX19KTt2YXIgXz1fX25jY3dwY2tfcmVxdWlyZV9fKDQ3NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJUcmFjZUZsYWdzXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXy5UcmFjZUZsYWdzfX0pO3ZhciBmPV9fbmNjd3Bja19yZXF1aXJlX18oOTgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlVHJhY2VTdGF0ZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGYuY3JlYXRlVHJhY2VTdGF0ZX19KTt2YXIgYj1fX25jY3dwY2tfcmVxdWlyZV9fKDEzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1NwYW5Db250ZXh0VmFsaWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzU3BhbkNvbnRleHRWYWxpZH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzVmFsaWRUcmFjZUlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkVHJhY2VJZH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzVmFsaWRTcGFuSWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzVmFsaWRTcGFuSWR9fSk7dmFyIHY9X19uY2N3cGNrX3JlcXVpcmVfXyg0NzYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOSURcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTklEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9UUkFDRUlEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1RSQUNFSUR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJJTlZBTElEX1NQQU5fQ09OVEVYVFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9TUEFOX0NPTlRFWFR9fSk7Y29uc3QgTz1fX25jY3dwY2tfcmVxdWlyZV9fKDY3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNvbnRleHRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBPLmNvbnRleHR9fSk7Y29uc3QgUD1fX25jY3dwY2tfcmVxdWlyZV9fKDUwNik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkaWFnXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUC5kaWFnfX0pO2NvbnN0IE49X19uY2N3cGNrX3JlcXVpcmVfXyg4ODYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwibWV0cmljc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4ubWV0cmljc319KTtjb25zdCBTPV9fbmNjd3Bja19yZXF1aXJlX18oOTM5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3BhZ2F0aW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUy5wcm9wYWdhdGlvbn19KTtjb25zdCBDPV9fbmNjd3Bja19yZXF1aXJlX18oODQ1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInRyYWNlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQy50cmFjZX19KTtlW1wiZGVmYXVsdFwiXT17Y29udGV4dDpPLmNvbnRleHQsZGlhZzpQLmRpYWcsbWV0cmljczpOLm1ldHJpY3MscHJvcGFnYXRpb246Uy5wcm9wYWdhdGlvbix0cmFjZTpDLnRyYWNlfX0pKCk7bW9kdWxlLmV4cG9ydHM9cn0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/compiled/fresh/index.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/compiled/fresh/index.js ***! \********************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_ { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Batcher\", ({\n enumerable: true,\n get: function() {\n return Batcher;\n }\n}));\nconst _detachedpromise = __webpack_require__(/*! ./detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nclass Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn(cacheKey, Promise.resolve);\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = new _detachedpromise.DetachedPromise();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn(cacheKey, resolve);\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2JhdGNoZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRix5QkFBeUIsbUJBQU8sQ0FBQyw2RkFBb0I7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyQkFBMkI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvYmF0Y2hlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkJhdGNoZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJhdGNoZXI7XG4gICAgfVxufSk7XG5jb25zdCBfZGV0YWNoZWRwcm9taXNlID0gcmVxdWlyZShcIi4vZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNsYXNzIEJhdGNoZXIge1xuICAgIGNvbnN0cnVjdG9yKGNhY2hlS2V5Rm4sIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB0byBzY2hlZHVsZSB0aGUgd3JhcHBlZCBmdW5jdGlvbiB0byBiZVxuICAgICAqIGV4ZWN1dGVkLiBUaGlzIGRlZmF1bHRzIHRvIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICogaW1tZWRpYXRlbHkuXG4gICAgICovIHNjaGVkdWxlckZuID0gKGZuKT0+Zm4oKSl7XG4gICAgICAgIHRoaXMuY2FjaGVLZXlGbiA9IGNhY2hlS2V5Rm47XG4gICAgICAgIHRoaXMuc2NoZWR1bGVyRm4gPSBzY2hlZHVsZXJGbjtcbiAgICAgICAgdGhpcy5wZW5kaW5nID0gbmV3IE1hcCgpO1xuICAgIH1cbiAgICBzdGF0aWMgY3JlYXRlKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBCYXRjaGVyKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMuY2FjaGVLZXlGbiwgb3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5zY2hlZHVsZXJGbik7XG4gICAgfVxuICAgIC8qKlxuICAgKiBXcmFwcyBhIGZ1bmN0aW9uIGluIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmUgcmVzb2x2ZWQgb3IgcmVqZWN0ZWQgb25seSBvbmNlXG4gICAqIGZvciBhIGdpdmVuIGtleS4gVGhpcyB3aWxsIGFsbG93IG11bHRpcGxlIGNhbGxzIHRvIHRoZSBmdW5jdGlvbiB0byBiZVxuICAgKiBtYWRlLCBidXQgb25seSBvbmUgd2lsbCBiZSBleGVjdXRlZCBhdCBhIHRpbWUuIFRoZSByZXN1bHQgb2YgdGhlIGZpcnN0XG4gICAqIGNhbGwgd2lsbCBiZSByZXR1cm5lZCB0byBhbGwgY2FsbGVycy5cbiAgICpcbiAgICogQHBhcmFtIGtleSB0aGUga2V5IHRvIHVzZSBmb3IgdGhlIGNhY2hlXG4gICAqIEBwYXJhbSBmbiB0aGUgZnVuY3Rpb24gdG8gd3JhcFxuICAgKiBAcmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvblxuICAgKi8gYXN5bmMgYmF0Y2goa2V5LCBmbikge1xuICAgICAgICBjb25zdCBjYWNoZUtleSA9IHRoaXMuY2FjaGVLZXlGbiA/IGF3YWl0IHRoaXMuY2FjaGVLZXlGbihrZXkpIDoga2V5O1xuICAgICAgICBpZiAoY2FjaGVLZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmbihjYWNoZUtleSwgUHJvbWlzZS5yZXNvbHZlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwZW5kaW5nID0gdGhpcy5wZW5kaW5nLmdldChjYWNoZUtleSk7XG4gICAgICAgIGlmIChwZW5kaW5nKSByZXR1cm4gcGVuZGluZztcbiAgICAgICAgY29uc3QgeyBwcm9taXNlLCByZXNvbHZlLCByZWplY3QgfSA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICB0aGlzLnBlbmRpbmcuc2V0KGNhY2hlS2V5LCBwcm9taXNlKTtcbiAgICAgICAgdGhpcy5zY2hlZHVsZXJGbihhc3luYyAoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbihjYWNoZUtleSwgcmVzb2x2ZSk7XG4gICAgICAgICAgICAgICAgLy8gUmVzb2x2aW5nIGEgcHJvbWlzZSBtdWx0aXBsZSB0aW1lcyBpcyBhIG5vLW9wLCBzbyB3ZSBjYW4gc2FmZWx5XG4gICAgICAgICAgICAgICAgLy8gcmVzb2x2ZSBhbGwgcGVuZGluZyBwcm9taXNlcyB3aXRoIHRoZSBzYW1lIHJlc3VsdC5cbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmcuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmF0Y2hlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/batcher.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/lib/constants.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/lib/constants.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n HTML_CONTENT_TYPE_HEADER: function() {\n return HTML_CONTENT_TYPE_HEADER;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n JSON_CONTENT_TYPE_HEADER: function() {\n return JSON_CONTENT_TYPE_HEADER;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() {\n return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n TEXT_PLAIN_CONTENT_TYPE_HEADER: function() {\n return TEXT_PLAIN_CONTENT_TYPE_HEADER;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain';\nconst HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8';\nconst JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8';\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\nconst PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate';\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated';\nconst RSC_PREFETCH_SUFFIX = '.prefetch.rsc';\nconst RSC_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\nconst NEXT_DATA_SUFFIX = '.json';\nconst NEXT_META_SUFFIX = '.meta';\nconst NEXT_BODY_SUFFIX = '.body';\nconst NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\nconst PAGES_DIR_ALIAS = 'private-next-pages';\nconst DOT_NEXT_ALIAS = 'private-dot-next';\nconst ROOT_DIR_ALIAS = 'private-next-root-dir';\nconst APP_DIR_ALIAS = 'private-next-app-dir';\nconst RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy';\nconst RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate';\nconst RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import';\nconst RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption';\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper';\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?';\nconst GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?';\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\\n' + 'Please use `revalidate` instead.';\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n 'app',\n 'pages',\n 'components',\n 'lib',\n 'src'\n];\nconst SERVER_RUNTIME = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs'\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */ reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */ edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__'\n};\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0F5REw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSw2Q0FBNkM7QUFDN0Msb0RBQW9EO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxvQkFBb0I7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQUNUSU9OX1NVRkZJWDogbnVsbCxcbiAgICBBUFBfRElSX0FMSUFTOiBudWxsLFxuICAgIENBQ0hFX09ORV9ZRUFSOiBudWxsLFxuICAgIERPVF9ORVhUX0FMSUFTOiBudWxsLFxuICAgIEVTTElOVF9ERUZBVUxUX0RJUlM6IG51bGwsXG4gICAgR1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBudWxsLFxuICAgIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjogbnVsbCxcbiAgICBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBudWxsLFxuICAgIEhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUjogbnVsbCxcbiAgICBJTkZJTklURV9DQUNIRTogbnVsbCxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogbnVsbCxcbiAgICBKU09OX0NPTlRFTlRfVFlQRV9IRUFERVI6IG51bGwsXG4gICAgTUFUQ0hFRF9QQVRIX0hFQURFUjogbnVsbCxcbiAgICBNSURETEVXQVJFX0ZJTEVOQU1FOiBudWxsLFxuICAgIE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQOiBudWxsLFxuICAgIE5FWFRfQk9EWV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQ6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUjogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEg6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9UQUdTX0hFQURFUjogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVM6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSDogbnVsbCxcbiAgICBORVhUX0RBVEFfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg6IG51bGwsXG4gICAgTkVYVF9NRVRBX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDogbnVsbCxcbiAgICBORVhUX1JFU1VNRV9IRUFERVI6IG51bGwsXG4gICAgTk9OX1NUQU5EQVJEX05PREVfRU5WOiBudWxsLFxuICAgIFBBR0VTX0RJUl9BTElBUzogbnVsbCxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVI6IG51bGwsXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSOiBudWxsLFxuICAgIFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVDogbnVsbCxcbiAgICBST09UX0RJUl9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX1BST1hZX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVM6IG51bGwsXG4gICAgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVM6IG51bGwsXG4gICAgUlNDX1BSRUZFVENIX1NVRkZJWDogbnVsbCxcbiAgICBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWDogbnVsbCxcbiAgICBSU0NfU0VHTUVOVF9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NVRkZJWDogbnVsbCxcbiAgICBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDogbnVsbCxcbiAgICBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUOiBudWxsLFxuICAgIFNFUlZFUl9SVU5USU1FOiBudWxsLFxuICAgIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I6IG51bGwsXG4gICAgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUOiBudWxsLFxuICAgIFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUjogbnVsbCxcbiAgICBURVhUX1BMQUlOX0NPTlRFTlRfVFlQRV9IRUFERVI6IG51bGwsXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IG51bGwsXG4gICAgV0VCUEFDS19MQVlFUlM6IG51bGwsXG4gICAgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFDVElPTl9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQUNUSU9OX1NVRkZJWDtcbiAgICB9LFxuICAgIEFQUF9ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQVBQX0RJUl9BTElBUztcbiAgICB9LFxuICAgIENBQ0hFX09ORV9ZRUFSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIENBQ0hFX09ORV9ZRUFSO1xuICAgIH0sXG4gICAgRE9UX05FWFRfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRE9UX05FWFRfQUxJQVM7XG4gICAgfSxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEVTTElOVF9ERUZBVUxUX0RJUlM7XG4gICAgfSxcbiAgICBHU1BfTk9fUkVUVVJORURfVkFMVUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gR1NQX05PX1JFVFVSTkVEX1ZBTFVFO1xuICAgIH0sXG4gICAgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjtcbiAgICB9LFxuICAgIEdTU1BfTk9fUkVUVVJORURfVkFMVUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gR1NTUF9OT19SRVRVUk5FRF9WQUxVRTtcbiAgICB9LFxuICAgIEhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVI7XG4gICAgfSxcbiAgICBJTkZJTklURV9DQUNIRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTkZJTklURV9DQUNIRTtcbiAgICB9LFxuICAgIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FO1xuICAgIH0sXG4gICAgSlNPTl9DT05URU5UX1RZUEVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEpTT05fQ09OVEVOVF9UWVBFX0hFQURFUjtcbiAgICB9LFxuICAgIE1BVENIRURfUEFUSF9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUFUQ0hFRF9QQVRIX0hFQURFUjtcbiAgICB9LFxuICAgIE1JRERMRVdBUkVfRklMRU5BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUlERExFV0FSRV9GSUxFTkFNRTtcbiAgICB9LFxuICAgIE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQO1xuICAgIH0sXG4gICAgTkVYVF9CT0RZX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0JPRFlfU1VGRklYO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQ7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEg7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1RBR1NfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIO1xuICAgIH0sXG4gICAgTkVYVF9EQVRBX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0RBVEFfU1VGRklYO1xuICAgIH0sXG4gICAgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYO1xuICAgIH0sXG4gICAgTkVYVF9NRVRBX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX01FVEFfU1VGRklYO1xuICAgIH0sXG4gICAgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVg7XG4gICAgfSxcbiAgICBORVhUX1JFU1VNRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9SRVNVTUVfSEVBREVSO1xuICAgIH0sXG4gICAgTk9OX1NUQU5EQVJEX05PREVfRU5WOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5PTl9TVEFOREFSRF9OT0RFX0VOVjtcbiAgICB9LFxuICAgIFBBR0VTX0RJUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQQUdFU19ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSO1xuICAgIH0sXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjtcbiAgICB9LFxuICAgIFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBST09UX0RJUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBST09UX0RJUl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX1BST1hZX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQ0FDSEVfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQ0FDSEVfV1JBUFBFUl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19EWU5BTUlDX0lNUE9SVF9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19EWU5BTUlDX0lNUE9SVF9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX01PRF9SRUZfUFJPWFlfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfUFJFRkVUQ0hfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19QUkVGRVRDSF9TVUZGSVg7XG4gICAgfSxcbiAgICBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TRUdNRU5UX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfU0VHTUVOVF9TVUZGSVg7XG4gICAgfSxcbiAgICBSU0NfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TVUZGSVg7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgU0VSVkVSX1JVTlRJTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1JVTlRJTUU7XG4gICAgfSxcbiAgICBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I7XG4gICAgfSxcbiAgICBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUjtcbiAgICB9LFxuICAgIFRFWFRfUExBSU5fQ09OVEVOVF9UWVBFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBURVhUX1BMQUlOX0NPTlRFTlRfVFlQRV9IRUFERVI7XG4gICAgfSxcbiAgICBVTlNUQUJMRV9SRVZBTElEQVRFX1JFTkFNRV9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBVTlNUQUJMRV9SRVZBTElEQVRFX1JFTkFNRV9FUlJPUjtcbiAgICB9LFxuICAgIFdFQlBBQ0tfTEFZRVJTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFdFQlBBQ0tfTEFZRVJTO1xuICAgIH0sXG4gICAgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUztcbiAgICB9XG59KTtcbmNvbnN0IFRFWFRfUExBSU5fQ09OVEVOVF9UWVBFX0hFQURFUiA9ICd0ZXh0L3BsYWluJztcbmNvbnN0IEhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUiA9ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnO1xuY29uc3QgSlNPTl9DT05URU5UX1RZUEVfSEVBREVSID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnO1xuY29uc3QgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggPSAnbnh0UCc7XG5jb25zdCBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYID0gJ254dEknO1xuY29uc3QgTUFUQ0hFRF9QQVRIX0hFQURFUiA9ICd4LW1hdGNoZWQtcGF0aCc7XG5jb25zdCBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIgPSAneC1wcmVyZW5kZXItcmV2YWxpZGF0ZSc7XG5jb25zdCBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIgPSAneC1wcmVyZW5kZXItcmV2YWxpZGF0ZS1pZi1nZW5lcmF0ZWQnO1xuY29uc3QgUlNDX1BSRUZFVENIX1NVRkZJWCA9ICcucHJlZmV0Y2gucnNjJztcbmNvbnN0IFJTQ19TRUdNRU5UU19ESVJfU1VGRklYID0gJy5zZWdtZW50cyc7XG5jb25zdCBSU0NfU0VHTUVOVF9TVUZGSVggPSAnLnNlZ21lbnQucnNjJztcbmNvbnN0IFJTQ19TVUZGSVggPSAnLnJzYyc7XG5jb25zdCBBQ1RJT05fU1VGRklYID0gJy5hY3Rpb24nO1xuY29uc3QgTkVYVF9EQVRBX1NVRkZJWCA9ICcuanNvbic7XG5jb25zdCBORVhUX01FVEFfU1VGRklYID0gJy5tZXRhJztcbmNvbnN0IE5FWFRfQk9EWV9TVUZGSVggPSAnLmJvZHknO1xuY29uc3QgTkVYVF9DQUNIRV9UQUdTX0hFQURFUiA9ICd4LW5leHQtY2FjaGUtdGFncyc7XG5jb25zdCBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSID0gJ3gtbmV4dC1yZXZhbGlkYXRlZC10YWdzJztcbmNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSID0gJ3gtbmV4dC1yZXZhbGlkYXRlLXRhZy10b2tlbic7XG5jb25zdCBORVhUX1JFU1VNRV9IRUFERVIgPSAnbmV4dC1yZXN1bWUnO1xuY29uc3QgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TID0gMTI4O1xuY29uc3QgTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSCA9IDI1NjtcbmNvbnN0IE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSCA9IDEwMjQ7XG5jb25zdCBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRCA9ICdfTl9UXyc7XG5jb25zdCBDQUNIRV9PTkVfWUVBUiA9IDMxNTM2MDAwO1xuY29uc3QgSU5GSU5JVEVfQ0FDSEUgPSAweGZmZmZmZmZlO1xuY29uc3QgTUlERExFV0FSRV9GSUxFTkFNRSA9ICdtaWRkbGV3YXJlJztcbmNvbnN0IE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQID0gYCg/OnNyYy8pPyR7TUlERExFV0FSRV9GSUxFTkFNRX1gO1xuY29uc3QgSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUUgPSAnaW5zdHJ1bWVudGF0aW9uJztcbmNvbnN0IFBBR0VTX0RJUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcGFnZXMnO1xuY29uc3QgRE9UX05FWFRfQUxJQVMgPSAncHJpdmF0ZS1kb3QtbmV4dCc7XG5jb25zdCBST09UX0RJUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcm9vdC1kaXInO1xuY29uc3QgQVBQX0RJUl9BTElBUyA9ICdwcml2YXRlLW5leHQtYXBwLWRpcic7XG5jb25zdCBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLW1vZC1yZWYtcHJveHknO1xuY29uc3QgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi12YWxpZGF0ZSc7XG5jb25zdCBSU0NfQUNUSU9OX1BST1hZX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2Mtc2VydmVyLXJlZmVyZW5jZSc7XG5jb25zdCBSU0NfQ0FDSEVfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWNhY2hlLXdyYXBwZXInO1xuY29uc3QgUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy10cmFjay1keW5hbWljLWltcG9ydCc7XG5jb25zdCBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tZW5jcnlwdGlvbic7XG5jb25zdCBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWNsaWVudC13cmFwcGVyJztcbmNvbnN0IFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVCA9IGBZb3UgY2FuIG5vdCBoYXZlIGEgJ19uZXh0JyBmb2xkZXIgaW5zaWRlIG9mIHlvdXIgcHVibGljIGZvbGRlci4gVGhpcyBjb25mbGljdHMgd2l0aCB0aGUgaW50ZXJuYWwgJy9fbmV4dCcgcm91dGUuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3B1YmxpYy1uZXh0LWZvbGRlci1jb25mbGljdGA7XG5jb25zdCBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldEluaXRpYWxQcm9wcyB3aXRoIGdldFN0YXRpY1Byb3BzLiBUbyB1c2UgU1NHLCBwbGVhc2UgcmVtb3ZlIHlvdXIgZ2V0SW5pdGlhbFByb3BzYDtcbmNvbnN0IFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0SW5pdGlhbFByb3BzIHdpdGggZ2V0U2VydmVyU2lkZVByb3BzLiBQbGVhc2UgcmVtb3ZlIGdldEluaXRpYWxQcm9wcy5gO1xuY29uc3QgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0U3RhdGljUHJvcHMgb3IgZ2V0U3RhdGljUGF0aHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFRvIHVzZSBTU0csIHBsZWFzZSByZW1vdmUgZ2V0U2VydmVyU2lkZVByb3BzYDtcbmNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUiA9IGBjYW4gbm90IGhhdmUgZ2V0SW5pdGlhbFByb3BzL2dldFNlcnZlclNpZGVQcm9wcywgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvNDA0LWdldC1pbml0aWFsLXByb3BzYDtcbmNvbnN0IFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1IgPSBgcGFnZXMgd2l0aCBcXGBnZXRTZXJ2ZXJTaWRlUHJvcHNcXGAgY2FuIG5vdCBiZSBleHBvcnRlZC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9nc3NwLWV4cG9ydGA7XG5jb25zdCBHU1BfTk9fUkVUVVJORURfVkFMVUUgPSAnWW91ciBgZ2V0U3RhdGljUHJvcHNgIGZ1bmN0aW9uIGRpZCBub3QgcmV0dXJuIGFuIG9iamVjdC4gRGlkIHlvdSBmb3JnZXQgdG8gYWRkIGEgYHJldHVybmA/JztcbmNvbnN0IEdTU1BfTk9fUkVUVVJORURfVkFMVUUgPSAnWW91ciBgZ2V0U2VydmVyU2lkZVByb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gPyc7XG5jb25zdCBVTlNUQUJMRV9SRVZBTElEQVRFX1JFTkFNRV9FUlJPUiA9ICdUaGUgYHVuc3RhYmxlX3JldmFsaWRhdGVgIHByb3BlcnR5IGlzIGF2YWlsYWJsZSBmb3IgZ2VuZXJhbCB1c2UuXFxuJyArICdQbGVhc2UgdXNlIGByZXZhbGlkYXRlYCBpbnN0ZWFkLic7XG5jb25zdCBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1IgPSBgY2FuIG5vdCBiZSBhdHRhY2hlZCB0byBhIHBhZ2UncyBjb21wb25lbnQgYW5kIG11c3QgYmUgZXhwb3J0ZWQgZnJvbSB0aGUgcGFnZS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9nc3NwLWNvbXBvbmVudC1tZW1iZXJgO1xuY29uc3QgTk9OX1NUQU5EQVJEX05PREVfRU5WID0gYFlvdSBhcmUgdXNpbmcgYSBub24tc3RhbmRhcmQgXCJOT0RFX0VOVlwiIHZhbHVlIGluIHlvdXIgZW52aXJvbm1lbnQuIFRoaXMgY3JlYXRlcyBpbmNvbnNpc3RlbmNpZXMgaW4gdGhlIHByb2plY3QgYW5kIGlzIHN0cm9uZ2x5IGFkdmlzZWQgYWdhaW5zdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9ub24tc3RhbmRhcmQtbm9kZS1lbnZgO1xuY29uc3QgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUiA9IGBQYWdlcyB3aXRoIFxcYGZhbGxiYWNrXFxgIGVuYWJsZWQgaW4gXFxgZ2V0U3RhdGljUGF0aHNcXGAgY2FuIG5vdCBiZSBleHBvcnRlZC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zc2ctZmFsbGJhY2stdHJ1ZS1leHBvcnRgO1xuY29uc3QgRVNMSU5UX0RFRkFVTFRfRElSUyA9IFtcbiAgICAnYXBwJyxcbiAgICAncGFnZXMnLFxuICAgICdjb21wb25lbnRzJyxcbiAgICAnbGliJyxcbiAgICAnc3JjJ1xuXTtcbmNvbnN0IFNFUlZFUl9SVU5USU1FID0ge1xuICAgIGVkZ2U6ICdlZGdlJyxcbiAgICBleHBlcmltZW50YWxFZGdlOiAnZXhwZXJpbWVudGFsLWVkZ2UnLFxuICAgIG5vZGVqczogJ25vZGVqcydcbn07XG4vKipcbiAqIFRoZSBuYW1lcyBvZiB0aGUgd2VicGFjayBsYXllcnMuIFRoZXNlIGxheWVycyBhcmUgdGhlIHByaW1pdGl2ZXMgZm9yIHRoZVxuICogd2VicGFjayBjaHVua3MuXG4gKi8gY29uc3QgV0VCUEFDS19MQVlFUlNfTkFNRVMgPSB7XG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIHNoYXJlZCBjb2RlIGJldHdlZW4gdGhlIGNsaWVudCBhbmQgc2VydmVyIGJ1bmRsZXMuXG4gICAqLyBzaGFyZWQ6ICdzaGFyZWQnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHNlcnZlci1vbmx5IHJ1bnRpbWUgYW5kIHBpY2tpbmcgdXAgYHJlYWN0LXNlcnZlcmAgZXhwb3J0IGNvbmRpdGlvbnMuXG4gICAqIEluY2x1ZGluZyBhcHAgcm91dGVyIFJTQyBwYWdlcyBhbmQgYXBwIHJvdXRlciBjdXN0b20gcm91dGVzIGFuZCBtZXRhZGF0YSByb3V0ZXMuXG4gICAqLyByZWFjdFNlcnZlckNvbXBvbmVudHM6ICdyc2MnLFxuICAgIC8qKlxuICAgKiBTZXJ2ZXIgU2lkZSBSZW5kZXJpbmcgbGF5ZXIgZm9yIGFwcCAoc3NyKS5cbiAgICovIHNlcnZlclNpZGVSZW5kZXJpbmc6ICdzc3InLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBhY3Rpb25zLlxuICAgKi8gYWN0aW9uQnJvd3NlcjogJ2FjdGlvbi1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIE5vZGUuanMgYnVuZGxlIGxheWVyIGZvciB0aGUgQVBJIHJvdXRlcy5cbiAgICovIGFwaU5vZGU6ICdhcGktbm9kZScsXG4gICAgLyoqXG4gICAqIFRoZSBFZGdlIExpdGUgYnVuZGxlIGxheWVyIGZvciB0aGUgQVBJIHJvdXRlcy5cbiAgICovIGFwaUVkZ2U6ICdhcGktZWRnZScsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIG1pZGRsZXdhcmUgY29kZS5cbiAgICovIG1pZGRsZXdhcmU6ICdtaWRkbGV3YXJlJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgaW5zdHJ1bWVudGF0aW9uIGhvb2tzLlxuICAgKi8gaW5zdHJ1bWVudDogJ2luc3RydW1lbnQnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIGFzc2V0cyBvbiB0aGUgZWRnZS5cbiAgICovIGVkZ2VBc3NldDogJ2VkZ2UtYXNzZXQnLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBBcHAgZGlyZWN0b3J5LlxuICAgKi8gYXBwUGFnZXNCcm93c2VyOiAnYXBwLXBhZ2VzLWJyb3dzZXInLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBQYWdlcyBkaXJlY3RvcnkuXG4gICAqLyBwYWdlc0RpckJyb3dzZXI6ICdwYWdlcy1kaXItYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBFZGdlIExpdGUgYnVuZGxlIGxheWVyIGZvciBQYWdlcyBkaXJlY3RvcnkuXG4gICAqLyBwYWdlc0RpckVkZ2U6ICdwYWdlcy1kaXItZWRnZScsXG4gICAgLyoqXG4gICAqIFRoZSBOb2RlLmpzIGJ1bmRsZSBsYXllciBmb3IgUGFnZXMgZGlyZWN0b3J5LlxuICAgKi8gcGFnZXNEaXJOb2RlOiAncGFnZXMtZGlyLW5vZGUnXG59O1xuY29uc3QgV0VCUEFDS19MQVlFUlMgPSB7XG4gICAgLi4uV0VCUEFDS19MQVlFUlNfTkFNRVMsXG4gICAgR1JPVVA6IHtcbiAgICAgICAgYnVpbHRpblJlYWN0OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyXG4gICAgICAgIF0sXG4gICAgICAgIHNlcnZlck9ubHk6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5pbnN0cnVtZW50LFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMubWlkZGxld2FyZVxuICAgICAgICBdLFxuICAgICAgICBuZXV0cmFsVGFyZ2V0OiBbXG4gICAgICAgICAgICAvLyBwYWdlcyBhcGlcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwaU5vZGUsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcGlFZGdlXG4gICAgICAgIF0sXG4gICAgICAgIGNsaWVudE9ubHk6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNlcnZlclNpZGVSZW5kZXJpbmcsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBQYWdlc0Jyb3dzZXJcbiAgICAgICAgXSxcbiAgICAgICAgYnVuZGxlZDogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNlcnZlclNpZGVSZW5kZXJpbmcsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBQYWdlc0Jyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zaGFyZWQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5pbnN0cnVtZW50LFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMubWlkZGxld2FyZVxuICAgICAgICBdLFxuICAgICAgICBhcHBQYWdlczogW1xuICAgICAgICAgICAgLy8gYXBwIHJvdXRlciBwYWdlcyBhbmQgbGF5b3V0c1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXJcbiAgICAgICAgXVxuICAgIH1cbn07XG5jb25zdCBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVMgPSB7XG4gICAgZWRnZVNTUkVudHJ5OiAnX19uZXh0X2VkZ2Vfc3NyX2VudHJ5X18nLFxuICAgIG1ldGFkYXRhOiAnX19uZXh0X21ldGFkYXRhX18nLFxuICAgIG1ldGFkYXRhUm91dGU6ICdfX25leHRfbWV0YWRhdGFfcm91dGVfXycsXG4gICAgbWV0YWRhdGFJbWFnZU1ldGE6ICdfX25leHRfbWV0YWRhdGFfaW1hZ2VfbWV0YV9fJ1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/constants.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/lib/detached-promise.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * A `Promise.withResolvers` implementation that exposes the `resolve` and\n * `reject` functions on a `Promise`.\n *\n * @see https://tc39.es/proposal-promise-with-resolvers/\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DetachedPromise\", ({\n enumerable: true,\n get: function() {\n return DetachedPromise;\n }\n}));\nclass DetachedPromise {\n constructor(){\n let resolve;\n let reject;\n // Create the promise and assign the resolvers to the object.\n this.promise = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n // We know that resolvers is defined because the Promise constructor runs\n // synchronously.\n this.resolve = resolve;\n this.reject = reject;\n }\n}\n\n//# sourceMappingURL=detached-promise.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2RldGFjaGVkLXByb21pc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLG1EQUFrRDtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2RldGFjaGVkLXByb21pc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGBQcm9taXNlLndpdGhSZXNvbHZlcnNgIGltcGxlbWVudGF0aW9uIHRoYXQgZXhwb3NlcyB0aGUgYHJlc29sdmVgIGFuZFxuICogYHJlamVjdGAgZnVuY3Rpb25zIG9uIGEgYFByb21pc2VgLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXByb21pc2Utd2l0aC1yZXNvbHZlcnMvXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEZXRhY2hlZFByb21pc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIERldGFjaGVkUHJvbWlzZTtcbiAgICB9XG59KTtcbmNsYXNzIERldGFjaGVkUHJvbWlzZSB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgbGV0IHJlc29sdmU7XG4gICAgICAgIGxldCByZWplY3Q7XG4gICAgICAgIC8vIENyZWF0ZSB0aGUgcHJvbWlzZSBhbmQgYXNzaWduIHRoZSByZXNvbHZlcnMgdG8gdGhlIG9iamVjdC5cbiAgICAgICAgdGhpcy5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlcywgcmVqKT0+e1xuICAgICAgICAgICAgcmVzb2x2ZSA9IHJlcztcbiAgICAgICAgICAgIHJlamVjdCA9IHJlajtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFdlIGtub3cgdGhhdCByZXNvbHZlcnMgaXMgZGVmaW5lZCBiZWNhdXNlIHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIHJ1bnNcbiAgICAgICAgLy8gc3luY2hyb25vdXNseS5cbiAgICAgICAgdGhpcy5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgdGhpcy5yZWplY3QgPSByZWplY3Q7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZXRhY2hlZC1wcm9taXNlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/lib/is-error.js": /*!************************************************!*\ !*** ./node_modules/next/dist/lib/is-error.js ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHVCQUF1QixtQkFBTyxDQUFDLDhHQUErQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLElBQXNDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaXMtZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBkZWZhdWx0OiBudWxsLFxuICAgIGdldFByb3BlckVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIC8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGEgTmV4dEVycm9yLlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBwcmludCBhIG1vcmUgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZSB3aXRoIHByb3BlcnRpZXMgbGlrZSBgY29kZWAgJiBgZGlnZXN0YC5cbiAqLyBkZWZhdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRXJyb3I7XG4gICAgfSxcbiAgICBnZXRQcm9wZXJFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRQcm9wZXJFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IF9pc3BsYWlub2JqZWN0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0XCIpO1xuZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmICduYW1lJyBpbiBlcnIgJiYgJ21lc3NhZ2UnIGluIGVycjtcbn1cbmZ1bmN0aW9uIHNhZmVTdHJpbmdpZnkob2JqKSB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBXZWFrU2V0KCk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgKF9rZXksIHZhbHVlKT0+e1xuICAgICAgICAvLyBJZiB2YWx1ZSBpcyBhbiBvYmplY3QgYW5kIGFscmVhZHkgc2VlbiwgcmVwbGFjZSB3aXRoIFwiW0NpcmN1bGFyXVwiXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbQ2lyY3VsYXJdJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlZW4uYWRkKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRQcm9wZXJFcnJvcihlcnIpIHtcbiAgICBpZiAoaXNFcnJvcihlcnIpKSB7XG4gICAgICAgIHJldHVybiBlcnI7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBwcm92aWRlIGJldHRlciBlcnJvciBmb3IgY2FzZSB3aGVyZSBgdGhyb3cgdW5kZWZpbmVkYFxuICAgICAgICAvLyBpcyBjYWxsZWQgaW4gZGV2ZWxvcG1lbnRcbiAgICAgICAgaWYgKHR5cGVvZiBlcnIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignQW4gdW5kZWZpbmVkIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU5OFwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVyciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0EgbnVsbCBlcnJvciB3YXMgdGhyb3duLCAnICsgJ3NlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3RocmV3LXVuZGVmaW5lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMzM2XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcigoMCwgX2lzcGxhaW5vYmplY3QuaXNQbGFpbk9iamVjdCkoZXJyKSA/IHNhZmVTdHJpbmdpZnkoZXJyKSA6IGVyciArICcnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUzOTRcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/is-error.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/lib/pretty-bytes.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/*\nMIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return prettyBytes;\n }\n}));\nconst UNITS = [\n 'B',\n 'kB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n 'EB',\n 'ZB',\n 'YB'\n];\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/ const toLocaleString = (number, locale)=>{\n let result = number;\n if (typeof locale === 'string') {\n result = number.toLocaleString(locale);\n } else if (locale === true) {\n result = number.toLocaleString();\n }\n return result;\n};\nfunction prettyBytes(number, options) {\n if (!Number.isFinite(number)) {\n throw Object.defineProperty(new TypeError(`Expected a finite number, got ${typeof number}: ${number}`), \"__NEXT_ERROR_CODE\", {\n value: \"E572\",\n enumerable: false,\n configurable: true\n });\n }\n options = Object.assign({}, options);\n if (options.signed && number === 0) {\n return ' 0 B';\n }\n const isNegative = number < 0;\n const prefix = isNegative ? '-' : options.signed ? '+' : '';\n if (isNegative) {\n number = -number;\n }\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale);\n return prefix + numberString + ' B';\n }\n const exponent = Math.min(Math.floor(Math.log10(number) / 3), UNITS.length - 1);\n number = Number((number / Math.pow(1000, exponent)).toPrecision(3));\n const numberString = toLocaleString(number, options.locale);\n const unit = UNITS[exponent];\n return prefix + numberString + ' ' + unit;\n}\n\n//# sourceMappingURL=pretty-bytes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3ByZXR0eS1ieXRlcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EsR0FBZ0I7QUFDaEIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRkFBbUYsY0FBYyxJQUFJLE9BQU87QUFDNUc7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9wcmV0dHktYnl0ZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgU2luZHJlIFNvcmh1cyA8c2luZHJlc29yaHVzQGdtYWlsLmNvbT4gKHNpbmRyZXNvcmh1cy5jb20pXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHJldHR5Qnl0ZXM7XG4gICAgfVxufSk7XG5jb25zdCBVTklUUyA9IFtcbiAgICAnQicsXG4gICAgJ2tCJyxcbiAgICAnTUInLFxuICAgICdHQicsXG4gICAgJ1RCJyxcbiAgICAnUEInLFxuICAgICdFQicsXG4gICAgJ1pCJyxcbiAgICAnWUInXG5dO1xuLypcbkZvcm1hdHMgdGhlIGdpdmVuIG51bWJlciB1c2luZyBgTnVtYmVyI3RvTG9jYWxlU3RyaW5nYC5cbi0gSWYgbG9jYWxlIGlzIGEgc3RyaW5nLCB0aGUgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgYSBsb2NhbGUta2V5IChmb3IgZXhhbXBsZTogYGRlYCkuXG4tIElmIGxvY2FsZSBpcyB0cnVlLCB0aGUgc3lzdGVtIGRlZmF1bHQgbG9jYWxlIGlzIHVzZWQgZm9yIHRyYW5zbGF0aW9uLlxuLSBJZiBubyB2YWx1ZSBmb3IgbG9jYWxlIGlzIHNwZWNpZmllZCwgdGhlIG51bWJlciBpcyByZXR1cm5lZCB1bm1vZGlmaWVkLlxuKi8gY29uc3QgdG9Mb2NhbGVTdHJpbmcgPSAobnVtYmVyLCBsb2NhbGUpPT57XG4gICAgbGV0IHJlc3VsdCA9IG51bWJlcjtcbiAgICBpZiAodHlwZW9mIGxvY2FsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gbnVtYmVyLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSk7XG4gICAgfSBlbHNlIGlmIChsb2NhbGUgPT09IHRydWUpIHtcbiAgICAgICAgcmVzdWx0ID0gbnVtYmVyLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuZnVuY3Rpb24gcHJldHR5Qnl0ZXMobnVtYmVyLCBvcHRpb25zKSB7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUobnVtYmVyKSkge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyLCBnb3QgJHt0eXBlb2YgbnVtYmVyfTogJHtudW1iZXJ9YCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTU3MlwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKTtcbiAgICBpZiAob3B0aW9ucy5zaWduZWQgJiYgbnVtYmVyID09PSAwKSB7XG4gICAgICAgIHJldHVybiAnIDAgQic7XG4gICAgfVxuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSBudW1iZXIgPCAwO1xuICAgIGNvbnN0IHByZWZpeCA9IGlzTmVnYXRpdmUgPyAnLScgOiBvcHRpb25zLnNpZ25lZCA/ICcrJyA6ICcnO1xuICAgIGlmIChpc05lZ2F0aXZlKSB7XG4gICAgICAgIG51bWJlciA9IC1udW1iZXI7XG4gICAgfVxuICAgIGlmIChudW1iZXIgPCAxKSB7XG4gICAgICAgIGNvbnN0IG51bWJlclN0cmluZyA9IHRvTG9jYWxlU3RyaW5nKG51bWJlciwgb3B0aW9ucy5sb2NhbGUpO1xuICAgICAgICByZXR1cm4gcHJlZml4ICsgbnVtYmVyU3RyaW5nICsgJyBCJztcbiAgICB9XG4gICAgY29uc3QgZXhwb25lbnQgPSBNYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nMTAobnVtYmVyKSAvIDMpLCBVTklUUy5sZW5ndGggLSAxKTtcbiAgICBudW1iZXIgPSBOdW1iZXIoKG51bWJlciAvIE1hdGgucG93KDEwMDAsIGV4cG9uZW50KSkudG9QcmVjaXNpb24oMykpO1xuICAgIGNvbnN0IG51bWJlclN0cmluZyA9IHRvTG9jYWxlU3RyaW5nKG51bWJlciwgb3B0aW9ucy5sb2NhbGUpO1xuICAgIGNvbnN0IHVuaXQgPSBVTklUU1tleHBvbmVudF07XG4gICAgcmV0dXJuIHByZWZpeCArIG51bWJlclN0cmluZyArICcgJyArIHVuaXQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZXR0eS1ieXRlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/lib/redirect-status.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n allowedStatusCodes: function() {\n return allowedStatusCodes;\n },\n getRedirectStatus: function() {\n return getRedirectStatus;\n },\n modifyRouteRegex: function() {\n return modifyRouteRegex;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ../client/components/redirect-status-code */ \"(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst allowedStatusCodes = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction getRedirectStatus(route) {\n return route.statusCode || (route.permanent ? _redirectstatuscode.RedirectStatusCode.PermanentRedirect : _redirectstatuscode.RedirectStatusCode.TemporaryRedirect);\n}\nfunction modifyRouteRegex(regex, restrictedPaths) {\n if (restrictedPaths) {\n regex = regex.replace(/\\^/, `^(?!${restrictedPaths.map((path)=>path.replace(/\\//g, '\\\\/')).join('|')})`);\n }\n regex = regex.replace(/\\$$/, '(?:\\\\/)?$');\n return regex;\n}\n\n//# sourceMappingURL=redirect-status.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3JlZGlyZWN0LXN0YXR1cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDRCQUE0QixtQkFBTyxDQUFDLHNJQUEyQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsa0VBQWtFO0FBQzdHO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3JlZGlyZWN0LXN0YXR1cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGFsbG93ZWRTdGF0dXNDb2RlczogbnVsbCxcbiAgICBnZXRSZWRpcmVjdFN0YXR1czogbnVsbCxcbiAgICBtb2RpZnlSb3V0ZVJlZ2V4OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGFsbG93ZWRTdGF0dXNDb2RlczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhbGxvd2VkU3RhdHVzQ29kZXM7XG4gICAgfSxcbiAgICBnZXRSZWRpcmVjdFN0YXR1czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRSZWRpcmVjdFN0YXR1cztcbiAgICB9LFxuICAgIG1vZGlmeVJvdXRlUmVnZXg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbW9kaWZ5Um91dGVSZWdleDtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWRpcmVjdHN0YXR1c2NvZGUgPSByZXF1aXJlKFwiLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGVcIik7XG5jb25zdCBhbGxvd2VkU3RhdHVzQ29kZXMgPSBuZXcgU2V0KFtcbiAgICAzMDEsXG4gICAgMzAyLFxuICAgIDMwMyxcbiAgICAzMDcsXG4gICAgMzA4XG5dKTtcbmZ1bmN0aW9uIGdldFJlZGlyZWN0U3RhdHVzKHJvdXRlKSB7XG4gICAgcmV0dXJuIHJvdXRlLnN0YXR1c0NvZGUgfHwgKHJvdXRlLnBlcm1hbmVudCA/IF9yZWRpcmVjdHN0YXR1c2NvZGUuUmVkaXJlY3RTdGF0dXNDb2RlLlBlcm1hbmVudFJlZGlyZWN0IDogX3JlZGlyZWN0c3RhdHVzY29kZS5SZWRpcmVjdFN0YXR1c0NvZGUuVGVtcG9yYXJ5UmVkaXJlY3QpO1xufVxuZnVuY3Rpb24gbW9kaWZ5Um91dGVSZWdleChyZWdleCwgcmVzdHJpY3RlZFBhdGhzKSB7XG4gICAgaWYgKHJlc3RyaWN0ZWRQYXRocykge1xuICAgICAgICByZWdleCA9IHJlZ2V4LnJlcGxhY2UoL1xcXi8sIGBeKD8hJHtyZXN0cmljdGVkUGF0aHMubWFwKChwYXRoKT0+cGF0aC5yZXBsYWNlKC9cXC8vZywgJ1xcXFwvJykpLmpvaW4oJ3wnKX0pYCk7XG4gICAgfVxuICAgIHJlZ2V4ID0gcmVnZXgucmVwbGFjZSgvXFwkJC8sICcoPzpcXFxcLyk/JCcpO1xuICAgIHJldHVybiByZWdleDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVkaXJlY3Qtc3RhdHVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/lib/scheduler.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3NjaGVkdWxlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FLTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsUUFBUSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3NjaGVkdWxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGF0TGVhc3RPbmVUYXNrOiBudWxsLFxuICAgIHNjaGVkdWxlSW1tZWRpYXRlOiBudWxsLFxuICAgIHNjaGVkdWxlT25OZXh0VGljazogbnVsbCxcbiAgICB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzazogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBhdExlYXN0T25lVGFzazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhdExlYXN0T25lVGFzaztcbiAgICB9LFxuICAgIHNjaGVkdWxlSW1tZWRpYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVkdWxlSW1tZWRpYXRlO1xuICAgIH0sXG4gICAgc2NoZWR1bGVPbk5leHRUaWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVkdWxlT25OZXh0VGljaztcbiAgICB9LFxuICAgIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrO1xuICAgIH1cbn0pO1xuY29uc3Qgc2NoZWR1bGVPbk5leHRUaWNrID0gKGNiKT0+e1xuICAgIC8vIFdlIHVzZSBQcm9taXNlLnJlc29sdmUoKS50aGVuKCkgaGVyZSBzbyB0aGF0IHRoZSBvcGVyYXRpb24gaXMgc2NoZWR1bGVkIGF0XG4gICAgLy8gdGhlIGVuZCBvZiB0aGUgcHJvbWlzZSBqb2IgcXVldWUsIHdlIHRoZW4gYWRkIGl0IHRvIHRoZSBuZXh0IHByb2Nlc3MgdGlja1xuICAgIC8vIHRvIGVuc3VyZSBpdCdzIGV2YWx1YXRlZCBhZnRlcndhcmRzLlxuICAgIC8vXG4gICAgLy8gVGhpcyB3YXMgaW5zcGlyZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEYXRhTG9hZGVyIGludGVyZmFjZTogaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwvZGF0YWxvYWRlci9ibG9iL2QzMzZiZDE1MjgyNjY0ZTBiZTRiNGE2NTdjYjc5NmYwOWJhZmJjNmIvc3JjL2luZGV4LmpzI0wyMTMtTDI1NVxuICAgIC8vXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2IsIDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhjYik7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5jb25zdCBzY2hlZHVsZUltbWVkaWF0ZSA9IChjYik9PntcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICAgICAgc2V0VGltZW91dChjYiwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc2V0SW1tZWRpYXRlKGNiKTtcbiAgICB9XG59O1xuZnVuY3Rpb24gYXRMZWFzdE9uZVRhc2soKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKT0+c2NoZWR1bGVJbW1lZGlhdGUocmVzb2x2ZSkpO1xufVxuZnVuY3Rpb24gd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2soKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocik9PnNldFRpbWVvdXQociwgMCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocik9PnNldEltbWVkaWF0ZShyKSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY2hlZHVsZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/pages/_app.js": /*!**********************************************!*\ !*** ./node_modules/next/dist/pages/_app.js ***! \**********************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return App;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */ async function appGetInitialProps(param) {\n let { Component, ctx } = param;\n const pageProps = await (0, _utils.loadGetInitialProps)(Component, ctx);\n return {\n pageProps\n };\n}\nclass App extends _react.default.Component {\n render() {\n const { Component, pageProps } = this.props;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...pageProps\n });\n }\n}\nApp.origGetInitialProps = appGetInitialProps;\nApp.getInitialProps = appGetInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_app.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2FwcC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBaUNxQkE7Ozs7OzRFQWpDSDttQ0FXa0I7QUFVcEM7OztDQUdDLEdBQ0QsZUFBZUMsbUJBQW1CLEtBR3JCO0lBSHFCLE1BQ2hDQyxTQUFTLEVBQ1RDLEdBQUcsRUFDUSxHQUhxQjtJQUloQyxNQUFNQyxZQUFZLE1BQU1DLENBQUFBLEdBQUFBLE9BQUFBLG1CQUFBQSxFQUFvQkgsV0FBV0M7SUFDdkQsT0FBTztRQUFFQztJQUFVO0FBQ3JCO0FBRWUsTUFBTUosWUFBc0NNLE9BQUFBLE9BQUssQ0FBQ0osU0FBUztJQU94RUssU0FBUztRQUNQLE1BQU0sRUFBRUwsU0FBUyxFQUFFRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUNJLEtBQUs7UUFFM0MsT0FBTyxXQUFQLEdBQU8scUJBQUNOLFdBQUFBO1lBQVcsR0FBR0UsU0FBUzs7SUFDakM7QUFDRjtBQVpxQkosSUFJWlMsbUJBQUFBLEdBQXNCUjtBQUpWRCxJQUtaVSxlQUFBQSxHQUFrQlQiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9zcmMvcGFnZXMvX2FwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcENvbnRleHRUeXBlLFxuICBBcHBJbml0aWFsUHJvcHMsXG4gIEFwcFByb3BzVHlwZSxcbiAgTmV4dFdlYlZpdGFsc01ldHJpYyxcbiAgQXBwVHlwZSxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcbmltcG9ydCB0eXBlIHsgUm91dGVyIH0gZnJvbSAnLi4vY2xpZW50L3JvdXRlcidcblxuaW1wb3J0IHsgbG9hZEdldEluaXRpYWxQcm9wcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5cbmV4cG9ydCB0eXBlIHsgQXBwSW5pdGlhbFByb3BzLCBBcHBUeXBlIH1cblxuZXhwb3J0IHR5cGUgeyBOZXh0V2ViVml0YWxzTWV0cmljIH1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dCA9IEFwcENvbnRleHRUeXBlPFJvdXRlcj5cblxuZXhwb3J0IHR5cGUgQXBwUHJvcHM8UCA9IGFueT4gPSBBcHBQcm9wc1R5cGU8Um91dGVyLCBQPlxuXG4vKipcbiAqIGBBcHBgIGNvbXBvbmVudCBpcyB1c2VkIGZvciBpbml0aWFsaXplIG9mIHBhZ2VzLiBJdCBhbGxvd3MgZm9yIG92ZXJ3cml0aW5nIGFuZCBmdWxsIGNvbnRyb2wgb2YgdGhlIGBwYWdlYCBpbml0aWFsaXphdGlvbi5cbiAqIFRoaXMgYWxsb3dzIGZvciBrZWVwaW5nIHN0YXRlIGJldHdlZW4gbmF2aWdhdGlvbiwgY3VzdG9tIGVycm9yIGhhbmRsaW5nLCBpbmplY3RpbmcgYWRkaXRpb25hbCBkYXRhLlxuICovXG5hc3luYyBmdW5jdGlvbiBhcHBHZXRJbml0aWFsUHJvcHMoe1xuICBDb21wb25lbnQsXG4gIGN0eCxcbn06IEFwcENvbnRleHQpOiBQcm9taXNlPEFwcEluaXRpYWxQcm9wcz4ge1xuICBjb25zdCBwYWdlUHJvcHMgPSBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwgY3R4KVxuICByZXR1cm4geyBwYWdlUHJvcHMgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcHA8UCA9IGFueSwgQ1AgPSB7fSwgUyA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgUCAmIEFwcFByb3BzPENQPixcbiAgU1xuPiB7XG4gIHN0YXRpYyBvcmlnR2V0SW5pdGlhbFByb3BzID0gYXBwR2V0SW5pdGlhbFByb3BzXG4gIHN0YXRpYyBnZXRJbml0aWFsUHJvcHMgPSBhcHBHZXRJbml0aWFsUHJvcHNcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9ID0gdGhpcy5wcm9wcyBhcyBBcHBQcm9wczxDUD5cblxuICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJBcHAiLCJhcHBHZXRJbml0aWFsUHJvcHMiLCJDb21wb25lbnQiLCJjdHgiLCJwYWdlUHJvcHMiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwiUmVhY3QiLCJyZW5kZXIiLCJwcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJnZXRJbml0aWFsUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/pages/_app.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/pages/_document.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/pages/_document.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/// \n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Head: function() {\n return Head;\n },\n Html: function() {\n return Html;\n },\n Main: function() {\n return Main;\n },\n NextScript: function() {\n return NextScript;\n },\n /**\n * `Document` component handles the initial `document` markup and renders only on the server side.\n * Commonly used for implementing server side rendering for `css-in-js` libraries.\n */ default: function() {\n return Document;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"react\"));\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\");\nconst _getpagefiles = __webpack_require__(/*! ../server/get-page-files */ \"(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js\");\nconst _htmlescape = __webpack_require__(/*! ../server/htmlescape */ \"(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../lib/is-error */ \"(pages-dir-node)/./node_modules/next/dist/lib/is-error.js\"));\nconst _htmlcontextsharedruntime = __webpack_require__(/*! ../shared/lib/html-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\");\nconst _encodeuripath = __webpack_require__(/*! ../shared/lib/encode-uri-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js\");\nconst _tracer = __webpack_require__(/*! ../server/lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _utils = __webpack_require__(/*! ../server/lib/trace/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\n/** Set of pages that have triggered a large data warning on production mode. */ const largePageDataWarnings = new Set();\nfunction getDocumentFiles(buildManifest, pathname, inAmpMode) {\n const sharedFiles = (0, _getpagefiles.getPageFiles)(buildManifest, '/_app');\n const pageFiles = true && inAmpMode ? [] : (0, _getpagefiles.getPageFiles)(buildManifest, pathname);\n return {\n sharedFiles,\n pageFiles,\n allFiles: [\n ...new Set([\n ...sharedFiles,\n ...pageFiles\n ])\n ]\n };\n}\nfunction getPolyfillScripts(context, props) {\n // polyfills.js has to be rendered as nomodule without async\n // It also has to be the first script to load\n const { assetPrefix, buildManifest, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map((polyfill)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n defer: !disableOptimizedLoading,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin,\n noModule: true,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(polyfill)}${assetQueryString}`\n }, polyfill));\n}\nfunction hasComponentProps(child) {\n return !!child && !!child.props;\n}\nfunction AmpStyles({ styles }) {\n if (!styles) return null;\n // try to parse styles from fragment for backwards compat\n const curStyles = Array.isArray(styles) ? styles : [];\n if (styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement\n Array.isArray(styles.props.children)) {\n const hasStyles = (el)=>{\n var _el_props_dangerouslySetInnerHTML, _el_props;\n return el == null ? void 0 : (_el_props = el.props) == null ? void 0 : (_el_props_dangerouslySetInnerHTML = _el_props.dangerouslySetInnerHTML) == null ? void 0 : _el_props_dangerouslySetInnerHTML.__html;\n };\n // @ts-ignore Property 'props' does not exist on type ReactElement\n styles.props.children.forEach((child)=>{\n if (Array.isArray(child)) {\n child.forEach((el)=>hasStyles(el) && curStyles.push(el));\n } else if (hasStyles(child)) {\n curStyles.push(child);\n }\n });\n }\n /* Add custom styles before AMP styles to prevent accidental overrides */ return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-custom\": \"\",\n dangerouslySetInnerHTML: {\n __html: curStyles.map((style)=>style.props.dangerouslySetInnerHTML.__html).join('').replace(/\\/\\*# sourceMappingURL=.*\\*\\//g, '').replace(/\\/\\*@ sourceURL=.*?\\*\\//g, '')\n }\n });\n}\nfunction getDynamicChunks(context, props, files) {\n const { dynamicImports, assetPrefix, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js') || files.allFiles.includes(file)) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getScripts(context, props, files) {\n var _buildManifest_lowPriorityFiles;\n const { assetPrefix, buildManifest, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n const normalScripts = files.allFiles.filter((file)=>file.endsWith('.js'));\n const lowPriorityScripts = (_buildManifest_lowPriorityFiles = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest_lowPriorityFiles.filter((file)=>file.endsWith('.js'));\n return [\n ...normalScripts,\n ...lowPriorityScripts\n ].map((file)=>{\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getPreNextWorkerScripts(context, props) {\n const { assetPrefix, scriptLoader, crossOrigin, nextScriptWorkers } = context;\n // disable `nextScriptWorkers` in edge runtime\n if (!nextScriptWorkers || \"nodejs\" === 'edge') return null;\n try {\n // @ts-expect-error: Prevent webpack from processing this require\n let { partytownSnippet } = require('@builder.io/partytown/integration');\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n // Check to see if the user has defined their own Partytown configuration\n const userDefinedConfig = children.find((child)=>{\n var _child_props_dangerouslySetInnerHTML, _child_props;\n return hasComponentProps(child) && (child == null ? void 0 : (_child_props = child.props) == null ? void 0 : (_child_props_dangerouslySetInnerHTML = _child_props.dangerouslySetInnerHTML) == null ? void 0 : _child_props_dangerouslySetInnerHTML.__html.length) && 'data-partytown-config' in child.props;\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !userDefinedConfig && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown-config\": \"\",\n dangerouslySetInnerHTML: {\n __html: `\n partytown = {\n lib: \"${assetPrefix}/_next/static/~partytown/\"\n };\n `\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown\": \"\",\n dangerouslySetInnerHTML: {\n __html: partytownSnippet()\n }\n }),\n (scriptLoader.worker || []).map((file, index)=>{\n const { strategy, src, children: scriptChildren, dangerouslySetInnerHTML, ...scriptProps } = file;\n let srcProps = {};\n if (src) {\n // Use external src if provided\n srcProps.src = src;\n } else if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n // Embed inline script if provided with dangerouslySetInnerHTML\n srcProps.dangerouslySetInnerHTML = {\n __html: dangerouslySetInnerHTML.__html\n };\n } else if (scriptChildren) {\n // Embed inline script if provided with children\n srcProps.dangerouslySetInnerHTML = {\n __html: typeof scriptChildren === 'string' ? scriptChildren : Array.isArray(scriptChildren) ? scriptChildren.join('') : ''\n };\n } else {\n throw Object.defineProperty(new Error('Invalid usage of next/script. Did you forget to include a src attribute or an inline script? https://nextjs.org/docs/messages/invalid-script'), \"__NEXT_ERROR_CODE\", {\n value: \"E82\",\n enumerable: false,\n configurable: true\n });\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...srcProps,\n ...scriptProps,\n type: \"text/partytown\",\n key: src || index,\n nonce: props.nonce,\n \"data-nscript\": \"worker\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n })\n ]\n });\n } catch (err) {\n if ((0, _iserror.default)(err) && err.code !== 'MODULE_NOT_FOUND') {\n console.warn(`Warning: ${err.message}`);\n }\n return null;\n }\n}\nfunction getPreNextScripts(context, props) {\n const { scriptLoader, disableOptimizedLoading, crossOrigin } = context;\n const webWorkerScripts = getPreNextWorkerScripts(context, props);\n const beforeInteractiveScripts = (scriptLoader.beforeInteractive || []).filter((script)=>script.src).map((file, index)=>{\n const { strategy, ...scriptProps } = file;\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n key: scriptProps.src || index,\n defer: scriptProps.defer ?? !disableOptimizedLoading,\n nonce: scriptProps.nonce || props.nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n webWorkerScripts,\n beforeInteractiveScripts\n ]\n });\n}\nfunction getHeadHTMLProps(props) {\n const { crossOrigin, nonce, ...restProps } = props;\n // This assignment is necessary for additional type checking to avoid unsupported attributes in \n const headProps = restProps;\n return headProps;\n}\nfunction getAmpPath(ampPath, asPath) {\n return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`;\n}\nfunction getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix = '') {\n if (!nextFontManifest) {\n return {\n preconnect: null,\n preload: null\n };\n }\n const appFontsEntry = nextFontManifest.pages['/_app'];\n const pageFontsEntry = nextFontManifest.pages[dangerousAsPath];\n const preloadedFontFiles = Array.from(new Set([\n ...appFontsEntry ?? [],\n ...pageFontsEntry ?? []\n ]));\n // If no font files should preload but there's an entry for the path, add a preconnect tag.\n const preconnectToSelf = !!(preloadedFontFiles.length === 0 && (appFontsEntry || pageFontsEntry));\n return {\n preconnect: preconnectToSelf ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n \"data-next-font\": nextFontManifest.pagesUsingSizeAdjust ? 'size-adjust' : '',\n rel: \"preconnect\",\n href: \"/\",\n crossOrigin: \"anonymous\"\n }) : null,\n preload: preloadedFontFiles ? preloadedFontFiles.map((fontFile)=>{\n const ext = /\\.(woff|woff2|eot|ttf|otf)$/.exec(fontFile)[1];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFile)}`,\n as: \"font\",\n type: `font/${ext}`,\n crossOrigin: \"anonymous\",\n \"data-next-font\": fontFile.includes('-s') ? 'size-adjust' : ''\n }, fontFile);\n }) : null\n };\n}\nclass Head extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getCssLinks(files) {\n const { assetPrefix, assetQueryString, dynamicImports, dynamicCssManifest, crossOrigin, optimizeCss } = this.context;\n const cssFiles = files.allFiles.filter((f)=>f.endsWith('.css'));\n const sharedFiles = new Set(files.sharedFiles);\n // Unmanaged files are CSS files that will be handled directly by the\n // webpack runtime (`mini-css-extract-plugin`).\n let unmanagedFiles = new Set([]);\n let localDynamicCssFiles = Array.from(new Set(dynamicImports.filter((file)=>file.endsWith('.css'))));\n if (localDynamicCssFiles.length) {\n const existing = new Set(cssFiles);\n localDynamicCssFiles = localDynamicCssFiles.filter((f)=>!(existing.has(f) || sharedFiles.has(f)));\n unmanagedFiles = new Set(localDynamicCssFiles);\n cssFiles.push(...localDynamicCssFiles);\n }\n let cssLinkElements = [];\n cssFiles.forEach((file)=>{\n const isSharedFile = sharedFiles.has(file);\n const isUnmanagedFile = unmanagedFiles.has(file);\n const isFileInDynamicCssManifest = dynamicCssManifest.has(file);\n if (!optimizeCss) {\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"style\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, `${file}-preload`));\n }\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"stylesheet\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-n-g\": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined,\n \"data-n-p\": isSharedFile || isUnmanagedFile || isFileInDynamicCssManifest ? undefined : ''\n }, file));\n });\n return cssLinkElements.length === 0 ? null : cssLinkElements;\n }\n getPreloadDynamicChunks() {\n const { dynamicImports, assetPrefix, assetQueryString, crossOrigin } = this.context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js')) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file);\n }) // Filter out nulled scripts\n .filter(Boolean);\n }\n getPreloadMainLinks(files) {\n const { assetPrefix, assetQueryString, scriptLoader, crossOrigin } = this.context;\n const preloadFiles = files.allFiles.filter((file)=>{\n return file.endsWith('.js');\n });\n return [\n ...(scriptLoader.beforeInteractive || []).map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: file.src,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file.src)),\n ...preloadFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file))\n ];\n }\n getBeforeInteractiveInlineScripts() {\n const { scriptLoader } = this.context;\n const { nonce, crossOrigin } = this.props;\n return (scriptLoader.beforeInteractive || []).filter((script)=>!script.src && (script.dangerouslySetInnerHTML || script.children)).map((file, index)=>{\n const { strategy, children, dangerouslySetInnerHTML, src, ...scriptProps } = file;\n let html = '';\n if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n html = dangerouslySetInnerHTML.__html;\n } else if (children) {\n html = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n dangerouslySetInnerHTML: {\n __html: html\n },\n key: scriptProps.id || index,\n nonce: nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: crossOrigin || undefined\n });\n });\n }\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n render() {\n const { styles, ampPath, inAmpMode, hybridAmp, canonicalBase, __NEXT_DATA__, dangerousAsPath, headTags, unstable_runtimeJS, unstable_JsPreload, disableOptimizedLoading, optimizeCss, assetPrefix, nextFontManifest } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;\n this.context.docComponentsRendered.Head = true;\n let { head } = this.context;\n let cssPreloads = [];\n let otherHeadElements = [];\n if (head) {\n head.forEach((child)=>{\n if (child && child.type === 'link' && child.props['rel'] === 'preload' && child.props['as'] === 'style') {\n cssPreloads.push(child);\n } else {\n if (child) {\n otherHeadElements.push(/*#__PURE__*/ _react.default.cloneElement(child, {\n 'data-next-head': ''\n }));\n }\n }\n });\n head = cssPreloads.concat(otherHeadElements);\n }\n let children = _react.default.Children.toArray(this.props.children).filter(Boolean);\n // show a warning if Head contains (only in development)\n if (true) {\n children = _react.default.Children.map(children, (child)=>{\n var _child_props;\n const isReactHelmet = child == null ? void 0 : (_child_props = child.props) == null ? void 0 : _child_props['data-react-helmet'];\n if (!isReactHelmet) {\n var _child_props1;\n if ((child == null ? void 0 : child.type) === 'title') {\n console.warn(\"Warning: <title> should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-title\");\n } else if ((child == null ? void 0 : child.type) === 'meta' && (child == null ? void 0 : (_child_props1 = child.props) == null ? void 0 : _child_props1.name) === 'viewport') {\n console.warn(\"Warning: viewport meta tags should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-viewport-meta\");\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n if (this.props.crossOrigin) console.warn('Warning: `Head` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n let hasAmphtmlRel = false;\n let hasCanonicalRel = false;\n // show warning and remove conflicting amp head tags\n head = _react.default.Children.map(head || [], (child)=>{\n if (!child) return child;\n const { type, props } = child;\n if ( true && inAmpMode) {\n let badProp = '';\n if (type === 'meta' && props.name === 'viewport') {\n badProp = 'name=\"viewport\"';\n } else if (type === 'link' && props.rel === 'canonical') {\n hasCanonicalRel = true;\n } else if (type === 'script') {\n // only block if\n // 1. it has a src and isn't pointing to ampproject's CDN\n // 2. it is using dangerouslySetInnerHTML without a type or\n // a type of text/javascript\n if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) {\n badProp = '<script';\n Object.keys(props).forEach((prop)=>{\n badProp += ` ${prop}=\"${props[prop]}\"`;\n });\n badProp += '/>';\n }\n }\n if (badProp) {\n console.warn(`Found conflicting amp tag \"${child.type}\" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`);\n return null;\n }\n } else {\n // non-amp mode\n if (type === 'link' && props.rel === 'amphtml') {\n hasAmphtmlRel = true;\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n const nextFontLinkTags = getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix);\n const tracingMetadata = (0, _utils.getTracedMetadata)((0, _tracer.getTracer)().getTracePropagationData(), this.context.experimentalClientTraceMetadata);\n const traceMetaTags = (tracingMetadata || []).map(({ key, value }, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: key,\n content: value\n }, `next-trace-data-${index}`));\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"head\", {\n ...getHeadHTMLProps(this.props),\n children: [\n this.context.isDevelopment && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n dangerouslySetInnerHTML: {\n __html: `body{display:none}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `body{display:block}`\n }\n })\n })\n ]\n }),\n head,\n children,\n nextFontLinkTags.preconnect,\n nextFontLinkTags.preload,\n true && inAmpMode && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width,minimum-scale=1,initial-scale=1\"\n }),\n !hasCanonicalRel && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"canonical\",\n href: canonicalBase + (__webpack_require__(/*! ../server/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/utils.js\").cleanAmpPath)(dangerousAsPath)\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n as: \"script\",\n href: \"https://cdn.ampproject.org/v0.js\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(AmpStyles, {\n styles: styles\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}`\n }\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: true,\n src: \"https://cdn.ampproject.org/v0.js\"\n })\n ]\n }),\n !( true && inAmpMode) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !hasAmphtmlRel && hybridAmp && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"amphtml\",\n href: canonicalBase + getAmpPath(ampPath, dangerousAsPath)\n }),\n this.getBeforeInteractiveInlineScripts(),\n !optimizeCss && this.getCssLinks(files),\n !optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files),\n optimizeCss && this.getCssLinks(files),\n optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n this.context.isDevelopment && // this element is used to mount development styles so the\n // ordering matches production\n // (by default, style-loader injects at the bottom of <head />)\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n id: \"__next_css__DO_NOT_USE__\"\n }),\n traceMetaTags,\n styles || null\n ]\n }),\n /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, {}, ...headTags || [])\n ]\n });\n }\n}\nfunction handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props) {\n var _children_find_props, _children_find, _children_find_props1, _children_find1;\n if (!props.children) return;\n const scriptLoaderItems = [];\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n const headChildren = (_children_find = children.find((child)=>child.type === Head)) == null ? void 0 : (_children_find_props = _children_find.props) == null ? void 0 : _children_find_props.children;\n const bodyChildren = (_children_find1 = children.find((child)=>child.type === 'body')) == null ? void 0 : (_children_find_props1 = _children_find1.props) == null ? void 0 : _children_find_props1.children;\n // Scripts with beforeInteractive can be placed inside Head or <body> so children of both needs to be traversed\n const combinedChildren = [\n ...Array.isArray(headChildren) ? headChildren : [\n headChildren\n ],\n ...Array.isArray(bodyChildren) ? bodyChildren : [\n bodyChildren\n ]\n ];\n _react.default.Children.forEach(combinedChildren, (child)=>{\n var _child_type;\n if (!child) return;\n // When using the `next/script` component, register it in script loader.\n if ((_child_type = child.type) == null ? void 0 : _child_type.__nextScript) {\n if (child.props.strategy === 'beforeInteractive') {\n scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([\n {\n ...child.props\n }\n ]);\n return;\n } else if ([\n 'lazyOnload',\n 'afterInteractive',\n 'worker'\n ].includes(child.props.strategy)) {\n scriptLoaderItems.push(child.props);\n return;\n } else if (typeof child.props.strategy === 'undefined') {\n scriptLoaderItems.push({\n ...child.props,\n strategy: 'afterInteractive'\n });\n return;\n }\n }\n });\n __NEXT_DATA__.scriptLoader = scriptLoaderItems;\n}\nclass NextScript extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n static getInlineScriptSource(context) {\n const { __NEXT_DATA__, largePageDataBytes } = context;\n try {\n const data = JSON.stringify(__NEXT_DATA__);\n if (largePageDataWarnings.has(__NEXT_DATA__.page)) {\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n }\n const bytes = false ? 0 : Buffer.from(data).byteLength;\n const prettyBytes = (__webpack_require__(/*! ../lib/pretty-bytes */ \"(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js\")[\"default\"]);\n if (largePageDataBytes && bytes > largePageDataBytes) {\n if (false) {}\n console.warn(`Warning: data for page \"${__NEXT_DATA__.page}\"${__NEXT_DATA__.page === context.dangerousAsPath ? '' : ` (path \"${context.dangerousAsPath}\")`} is ${prettyBytes(bytes)} which exceeds the threshold of ${prettyBytes(largePageDataBytes)}, this amount of data can reduce performance.\\nSee more info here: https://nextjs.org/docs/messages/large-page-data`);\n }\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.message.indexOf('circular structure') !== -1) {\n throw Object.defineProperty(new Error(`Circular structure in \"getInitialProps\" result of page \"${__NEXT_DATA__.page}\". https://nextjs.org/docs/messages/circular-structure`), \"__NEXT_ERROR_CODE\", {\n value: \"E490\",\n enumerable: false,\n configurable: true\n });\n }\n throw err;\n }\n }\n render() {\n const { assetPrefix, inAmpMode, buildManifest, unstable_runtimeJS, docComponentsRendered, assetQueryString, disableOptimizedLoading, crossOrigin } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n docComponentsRendered.NextScript = true;\n if ( true && inAmpMode) {\n if (false) {}\n const ampDevFiles = [\n ...buildManifest.devFiles,\n ...buildManifest.polyfillFiles,\n ...buildManifest.ampDevFiles\n ];\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n },\n \"data-ampdevmode\": true\n }),\n ampDevFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-ampdevmode\": true\n }, file))\n ]\n });\n }\n if (true) {\n if (this.props.crossOrigin) console.warn('Warning: `NextScript` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file)) : null,\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n }\n }),\n disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files)\n ]\n });\n }\n}\nfunction Html(props) {\n const { inAmpMode, docComponentsRendered, locale, scriptLoader, __NEXT_DATA__ } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Html = true;\n handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"html\", {\n ...props,\n lang: props.lang || locale || undefined,\n amp: true && inAmpMode ? '' : undefined,\n \"data-ampdevmode\": true && inAmpMode && \"development\" !== 'production' ? '' : undefined\n });\n}\nfunction Main() {\n const { docComponentsRendered } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Main = true;\n // @ts-ignore\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"next-js-internal-body-render-target\", {});\n}\nclass Document extends _react.default.Component {\n /**\n * `getInitialProps` hook returns the context object with the addition of `renderPage`.\n * `renderPage` callback executes `React` rendering logic synchronously to support server-rendering wrappers\n */ static getInitialProps(ctx) {\n return ctx.defaultGetInitialProps(ctx);\n }\n render() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n nonce: this.props.nonce\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {\n nonce: this.props.nonce\n })\n ]\n })\n ]\n });\n }\n}\n// Add a special property to the built-in `Document` component so later we can\n// identify if a user customized `Document` is used or not.\nconst InternalFunctionDocument = function InternalFunctionDocument() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {})\n ]\n })\n ]\n });\n};\nDocument[_constants.NEXT_BUILTIN_DOCUMENT] = InternalFunctionDocument; //# sourceMappingURL=_document.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2RvY3VtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBLDZDQUE2Qzs7Ozs7Ozs7Ozs7OztJQXVhaENBLElBQUk7ZUFBSkE7O0lBcXNCR0MsSUFBSTtlQUFKQTs7SUFpQ0FDLElBQUk7ZUFBSkE7O0lBL01IQyxVQUFVO2VBQVZBOztJQXNOYjs7O0NBR0MsR0FDRCxPQXNCQztlQXRCb0JDOzs7OzJFQXRwQ1c7dUNBQ007MENBV1Q7d0NBRVE7NEVBQ2pCO3NEQUtiOzJDQUV1QjtvQ0FFSjttQ0FDUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QmxDLDhFQUE4RSxHQUM5RSxNQUFNQyx3QkFBd0IsSUFBSUM7QUFFbEMsU0FBU0MsaUJBQ1BDLGFBQTRCLEVBQzVCQyxRQUFnQixFQUNoQkMsU0FBa0I7SUFFbEIsTUFBTUMsY0FBaUNDLENBQUFBLEdBQUFBLGNBQUFBLFlBQVksRUFBQ0osZUFBZTtJQUNuRSxNQUFNSyxZQUNKQyxLQUFtQyxJQUFJSixZQUNuQyxFQUFFLEdBQ0ZFLENBQUFBLEdBQUFBLGNBQUFBLFlBQUFBLEVBQWFKLGVBQWVDO0lBRWxDLE9BQU87UUFDTEU7UUFDQUU7UUFDQUksVUFBVTtlQUFJLElBQUlYLElBQUk7bUJBQUlLO21CQUFnQkU7YUFBVTtTQUFFO0lBQ3hEO0FBQ0Y7QUFFQSxTQUFTSyxtQkFBbUJDLE9BQWtCLEVBQUVDLEtBQWtCO0lBQ2hFLDREQUE0RDtJQUM1RCw2Q0FBNkM7SUFDN0MsTUFBTSxFQUNKQyxXQUFXLEVBQ1hiLGFBQWEsRUFDYmMsZ0JBQWdCLEVBQ2hCQyx1QkFBdUIsRUFDdkJDLFdBQVcsRUFDWixHQUFHTDtJQUVKLE9BQU9YLGNBQWNpQixhQUFhLENBQy9CQyxNQUFNLENBQ0wsQ0FBQ0MsV0FBYUEsU0FBU0MsUUFBUSxDQUFDLFVBQVUsQ0FBQ0QsU0FBU0MsUUFBUSxDQUFDLGVBRTlEQyxHQUFH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Q0FDQyxxQkFBQ2pPLE1BQUFBLENBQUFBO3NDQUNELHFCQUFDQyxZQUFBQTs0QkFBVzZCLE9BQU8sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUs7Ozs7OztJQUkzQztBQUNGO0FBRUEsOEVBQThFO0FBQzlFLDJEQUEyRDtBQUMzRCxNQUFNb00sMkJBQ0osU0FBU0E7SUFDUCxxQkFDRSxzQkFBQ25PLE1BQUFBOzswQkFDQyxxQkFBQ0QsTUFBQUEsQ0FBQUE7MEJBQ0Qsc0JBQUNtTyxRQUFBQTs7a0NBQ0MscUJBQUNqTyxNQUFBQSxDQUFBQTtrQ0FDRCxxQkFBQ0MsWUFBQUEsQ0FBQUE7Ozs7O0FBSVQ7QUFDQUMsUUFBZ0IsQ0FBQ2lPLFdBQUFBLHFCQUFxQixDQUFDLEdBQUdEIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvc3JjL3BhZ2VzL19kb2N1bWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ3ZWJwYWNrL21vZHVsZS5kLnRzXCIgLz5cblxuaW1wb3J0IFJlYWN0LCB7IHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBORVhUX0JVSUxUSU5fRE9DVU1FTlQgfSBmcm9tICcuLi9zaGFyZWQvbGliL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHtcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wcyxcbiAgRG9jdW1lbnRUeXBlLFxuICBORVhUX0RBVEEsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFNjcmlwdFByb3BzIH0gZnJvbSAnLi4vY2xpZW50L3NjcmlwdCdcbmltcG9ydCB0eXBlIHsgTmV4dEZvbnRNYW5pZmVzdCB9IGZyb20gJy4uL2J1aWxkL3dlYnBhY2svcGx1Z2lucy9uZXh0LWZvbnQtbWFuaWZlc3QtcGx1Z2luJ1xuXG5pbXBvcnQgeyBnZXRQYWdlRmlsZXMgfSBmcm9tICcuLi9zZXJ2ZXIvZ2V0LXBhZ2UtZmlsZXMnXG5pbXBvcnQgdHlwZSB7IEJ1aWxkTWFuaWZlc3QgfSBmcm9tICcuLi9zZXJ2ZXIvZ2V0LXBhZ2UtZmlsZXMnXG5pbXBvcnQgeyBodG1sRXNjYXBlSnNvblN0cmluZyB9IGZyb20gJy4uL3NlcnZlci9odG1sZXNjYXBlJ1xuaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi4vbGliL2lzLWVycm9yJ1xuXG5pbXBvcnQge1xuICBIdG1sQ29udGV4dCxcbiAgdXNlSHRtbENvbnRleHQsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBIdG1sUHJvcHMgfSBmcm9tICcuLi9zaGFyZWQvbGliL2h0bWwtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGVuY29kZVVSSVBhdGggfSBmcm9tICcuLi9zaGFyZWQvbGliL2VuY29kZS11cmktcGF0aCdcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9kZWVwLXJlYWRvbmx5J1xuaW1wb3J0IHsgZ2V0VHJhY2VyIH0gZnJvbSAnLi4vc2VydmVyL2xpYi90cmFjZS90cmFjZXInXG5pbXBvcnQgeyBnZXRUcmFjZWRNZXRhZGF0YSB9IGZyb20gJy4uL3NlcnZlci9saWIvdHJhY2UvdXRpbHMnXG5cbmV4cG9ydCB0eXBlIHsgRG9jdW1lbnRDb250ZXh0LCBEb2N1bWVudEluaXRpYWxQcm9wcywgRG9jdW1lbnRQcm9wcyB9XG5cbmV4cG9ydCB0eXBlIE9yaWdpblByb3BzID0ge1xuICBub25jZT86IHN0cmluZ1xuICBjcm9zc09yaWdpbj86ICdhbm9ueW1vdXMnIHwgJ3VzZS1jcmVkZW50aWFscycgfCAnJyB8IHVuZGVmaW5lZFxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxufVxuXG50eXBlIERvY3VtZW50RmlsZXMgPSB7XG4gIHNoYXJlZEZpbGVzOiByZWFkb25seSBzdHJpbmdbXVxuICBwYWdlRmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGFsbEZpbGVzOiByZWFkb25seSBzdHJpbmdbXVxufVxuXG50eXBlIEhlYWRIVE1MUHJvcHMgPSBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTEhlYWRFbGVtZW50PixcbiAgSFRNTEhlYWRFbGVtZW50XG4+XG5cbnR5cGUgSGVhZFByb3BzID0gT3JpZ2luUHJvcHMgJiBIZWFkSFRNTFByb3BzXG5cbi8qKiBTZXQgb2YgcGFnZXMgdGhhdCBoYXZlIHRyaWdnZXJlZCBhIGxhcmdlIGRhdGEgd2FybmluZyBvbiBwcm9kdWN0aW9uIG1vZGUuICovXG5jb25zdCBsYXJnZVBhZ2VEYXRhV2FybmluZ3MgPSBuZXcgU2V0PHN0cmluZz4oKVxuXG5mdW5jdGlvbiBnZXREb2N1bWVudEZpbGVzKFxuICBidWlsZE1hbmlmZXN0OiBCdWlsZE1hbmlmZXN0LFxuICBwYXRobmFtZTogc3RyaW5nLFxuICBpbkFtcE1vZGU6IGJvb2xlYW5cbik6IERvY3VtZW50RmlsZXMge1xuICBjb25zdCBzaGFyZWRGaWxlczogcmVhZG9ubHkgc3RyaW5nW10gPSBnZXRQYWdlRmlsZXMoYnVpbGRNYW5pZmVzdCwgJy9fYXBwJylcbiAgY29uc3QgcGFnZUZpbGVzOiByZWFkb25seSBzdHJpbmdbXSA9XG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgICA/IFtdXG4gICAgICA6IGdldFBhZ2VGaWxlcyhidWlsZE1hbmlmZXN0LCBwYXRobmFtZSlcblxuICByZXR1cm4ge1xuICAgIHNoYXJlZEZpbGVzLFxuICAgIHBhZ2VGaWxlcyxcbiAgICBhbGxGaWxlczogWy4uLm5ldyBTZXQoWy4uLnNoYXJlZEZpbGVzLCAuLi5wYWdlRmlsZXNdKV0sXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UG9seWZpbGxTY3JpcHRzKGNvbnRleHQ6IEh0bWxQcm9wcywgcHJvcHM6IE9yaWdpblByb3BzKSB7XG4gIC8vIHBvbHlmaWxscy5qcyBoYXMgdG8gYmUgcmVuZGVyZWQgYXMgbm9tb2R1bGUgd2l0aG91dCBhc3luY1xuICAvLyBJdCBhbHNvIGhhcyB0byBiZSB0aGUgZmlyc3Qgc2NyaXB0IHRvIGxvYWRcbiAgY29uc3Qge1xuICAgIGFzc2V0UHJlZml4LFxuICAgIGJ1aWxkTWFuaWZlc3QsXG4gICAgYXNzZXRRdWVyeVN0cmluZyxcbiAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICBjcm9zc09yaWdpbixcbiAgfSA9IGNvbnRleHRcblxuICByZXR1cm4gYnVpbGRNYW5pZmVzdC5wb2x5ZmlsbEZpbGVzXG4gICAgLmZpbHRlcihcbiAgICAgIChwb2x5ZmlsbCkgPT4gcG9seWZpbGwuZW5kc1dpdGgoJy5qcycpICYmICFwb2x5ZmlsbC5lbmRzV2l0aCgnLm1vZHVsZS5qcycpXG4gICAgKVxuICAgIC5tYXAoKHBvbHlmaWxsKSA9PiAoXG4gICAgICA8c2NyaXB0XG4gICAgICAgIGtleT17cG9seWZpbGx9XG4gICAgICAgIGRlZmVyPXshZGlzYWJsZU9wdGltaXplZExvYWRpbmd9XG4gICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICBub01vZHVsZT17dHJ1ZX1cbiAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgIHBvbHlmaWxsXG4gICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAvPlxuICAgICkpXG59XG5cbmZ1bmN0aW9uIGhhc0NvbXBvbmVudFByb3BzKGNoaWxkOiBhbnkpOiBjaGlsZCBpcyBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PiB7XG4gIHJldHVybiAhIWNoaWxkICYmICEhY2hpbGQucHJvcHNcbn1cblxuZnVuY3Rpb24gQW1wU3R5bGVzKHtcbiAgc3R5bGVzLFxufToge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT5cbn0pIHtcbiAgaWYgKCFzdHlsZXMpIHJldHVybiBudWxsXG5cbiAgLy8gdHJ5IHRvIHBhcnNlIHN0eWxlcyBmcm9tIGZyYWdtZW50IGZvciBiYWNrd2FyZHMgY29tcGF0XG4gIGNvbnN0IGN1clN0eWxlczogUmVhY3QuUmVhY3RFbGVtZW50PGFueT5bXSA9IEFycmF5LmlzQXJyYXkoc3R5bGVzKVxuICAgID8gKHN0eWxlcyBhcyBSZWFjdC5SZWFjdEVsZW1lbnRbXSlcbiAgICA6IFtdXG4gIGlmIChcbiAgICAvLyBAdHMtaWdub3JlIFByb3BlcnR5ICdwcm9wcycgZG9lcyBub3QgZXhpc3Qgb24gdHlwZSBSZWFjdEVsZW1lbnRcbiAgICBzdHlsZXMucHJvcHMgJiZcbiAgICAvLyBAdHMtaWdub3JlIFByb3BlcnR5ICdwcm9wcycgZG9lcyBub3QgZXhpc3Qgb24gdHlwZSBSZWFjdEVsZW1lbnRcbiAgICBBcnJheS5pc0FycmF5KHN0eWxlcy5wcm9wcy5jaGlsZHJlbilcbiAgKSB7XG4gICAgY29uc3QgaGFzU3R5bGVzID0gKGVsOiBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PikgPT5cbiAgICAgIGVsPy5wcm9wcz8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw/Ll9faHRtbFxuICAgIC8vIEB0cy1pZ25vcmUgUHJvcGVydHkgJ3Byb3BzJyBkb2VzIG5vdCBleGlzdCBvbiB0eXBlIFJlYWN0RWxlbWVudFxuICAgIHN0eWxlcy5wcm9wcy5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZCkpIHtcbiAgICAgICAgY2hpbGQuZm9yRWFjaCgoZWwpID0+IGhhc1N0eWxlcyhlbCkgJiYgY3VyU3R5bGVzLnB1c2goZWwpKVxuICAgICAgfSBlbHNlIGlmIChoYXNTdHlsZXMoY2hpbGQpKSB7XG4gICAgICAgIGN1clN0eWxlcy5wdXNoKGNoaWxkKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKiBBZGQgY3VzdG9tIHN0eWxlcyBiZWZvcmUgQU1QIHN0eWxlcyB0byBwcmV2ZW50IGFjY2lkZW50YWwgb3ZlcnJpZGVzICovXG4gIHJldHVybiAoXG4gICAgPHN0eWxlXG4gICAgICBhbXAtY3VzdG9tPVwiXCJcbiAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgIF9faHRtbDogY3VyU3R5bGVzXG4gICAgICAgICAgLm1hcCgoc3R5bGUpID0+IHN0eWxlLnByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbClcbiAgICAgICAgICAuam9pbignJylcbiAgICAgICAgICAucmVwbGFjZSgvXFwvXFwqIyBzb3VyY2VNYXBwaW5nVVJMPS4qXFwqXFwvL2csICcnKVxuICAgICAgICAgIC5yZXBsYWNlKC9cXC9cXCpAIHNvdXJjZVVSTD0uKj9cXCpcXC8vZywgJycpLFxuICAgICAgfX1cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIGdldER5bmFtaWNDaHVua3MoXG4gIGNvbnRleHQ6IEh0bWxQcm9wcyxcbiAgcHJvcHM6IE9yaWdpblByb3BzLFxuICBmaWxlczogRG9jdW1lbnRGaWxlc1xuKSB7XG4gIGNvbnN0IHtcbiAgICBkeW5hbWljSW1wb3J0cyxcbiAgICBhc3NldFByZWZpeCxcbiAgICBpc0RldmVsb3BtZW50LFxuICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgY3Jvc3NPcmlnaW4sXG4gIH0gPSBjb250ZXh0XG5cbiAgcmV0dXJuIGR5bmFtaWNJbXBvcnRzLm1hcCgoZmlsZSkgPT4ge1xuICAgIGlmICghZmlsZS5lbmRzV2l0aCgnLmpzJykgfHwgZmlsZXMuYWxsRmlsZXMuaW5jbHVkZXMoZmlsZSkpIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNjcmlwdFxuICAgICAgICBhc3luYz17IWlzRGV2ZWxvcG1lbnQgJiYgZGlzYWJsZU9wdGltaXplZExvYWRpbmd9XG4gICAgICAgIGRlZmVyPXshZGlzYWJsZU9wdGltaXplZExvYWRpbmd9XG4gICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKGZpbGUpfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgIGNyb3NzT3JpZ2luPXtwcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgIC8+XG4gICAgKVxuICB9KVxufVxuXG5mdW5jdGlvbiBnZXRTY3JpcHRzKFxuICBjb250ZXh0OiBIdG1sUHJvcHMsXG4gIHByb3BzOiBPcmlnaW5Qcm9wcyxcbiAgZmlsZXM6IERvY3VtZW50RmlsZXNcbikge1xuICBjb25zdCB7XG4gICAgYXNzZXRQcmVmaXgsXG4gICAgYnVpbGRNYW5pZmVzdCxcbiAgICBpc0RldmVsb3BtZW50LFxuICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgY3Jvc3NPcmlnaW4sXG4gIH0gPSBjb250ZXh0XG5cbiAgY29uc3Qgbm9ybWFsU2NyaXB0cyA9IGZpbGVzLmFsbEZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5lbmRzV2l0aCgnLmpzJykpXG4gIGNvbnN0IGxvd1ByaW9yaXR5U2NyaXB0cyA9IGJ1aWxkTWFuaWZlc3QubG93UHJpb3JpdHlGaWxlcz8uZmlsdGVyKChmaWxlKSA9PlxuICAgIGZpbGUuZW5kc1dpdGgoJy5qcycpXG4gIClcblxuICByZXR1cm4gWy4uLm5vcm1hbFNjcmlwdHMsIC4uLmxvd1ByaW9yaXR5U2NyaXB0c10ubWFwKChmaWxlKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxzY3JpcHRcbiAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICBzcmM9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoZmlsZSl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgYXN5bmM9eyFpc0RldmVsb3BtZW50ICYmIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBkZWZlcj17IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBjcm9zc09yaWdpbj17cHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAvPlxuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0UHJlTmV4dFdvcmtlclNjcmlwdHMoY29udGV4dDogSHRtbFByb3BzLCBwcm9wczogT3JpZ2luUHJvcHMpIHtcbiAgY29uc3QgeyBhc3NldFByZWZpeCwgc2NyaXB0TG9hZGVyLCBjcm9zc09yaWdpbiwgbmV4dFNjcmlwdFdvcmtlcnMgfSA9IGNvbnRleHRcblxuICAvLyBkaXNhYmxlIGBuZXh0U2NyaXB0V29ya2Vyc2AgaW4gZWRnZSBydW50aW1lXG4gIGlmICghbmV4dFNjcmlwdFdvcmtlcnMgfHwgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHJldHVybiBudWxsXG5cbiAgdHJ5IHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBQcmV2ZW50IHdlYnBhY2sgZnJvbSBwcm9jZXNzaW5nIHRoaXMgcmVxdWlyZVxuICAgIGxldCB7IHBhcnR5dG93blNuaXBwZXQgfSA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKFxuICAgICAgJ0BidWlsZGVyLmlvL3BhcnR5dG93bi9pbnRlZ3JhdGlvbichXG4gICAgKVxuXG4gICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5pc0FycmF5KHByb3BzLmNoaWxkcmVuKVxuICAgICAgPyBwcm9wcy5jaGlsZHJlblxuICAgICAgOiBbcHJvcHMuY2hpbGRyZW5dXG5cbiAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIHVzZXIgaGFzIGRlZmluZWQgdGhlaXIgb3duIFBhcnR5dG93biBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgdXNlckRlZmluZWRDb25maWcgPSBjaGlsZHJlbi5maW5kKFxuICAgICAgKGNoaWxkKSA9PlxuICAgICAgICBoYXNDb21wb25lbnRQcm9wcyhjaGlsZCkgJiZcbiAgICAgICAgY2hpbGQ/LnByb3BzPy5kYW5nZXJvdXNseVNldElubmVySFRNTD8uX19odG1sLmxlbmd0aCAmJlxuICAgICAgICAnZGF0YS1wYXJ0eXRvd24tY29uZmlnJyBpbiBjaGlsZC5wcm9wc1xuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IXVzZXJEZWZpbmVkQ29uZmlnICYmIChcbiAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICBkYXRhLXBhcnR5dG93bi1jb25maWc9XCJcIlxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgX19odG1sOiBgXG4gICAgICAgICAgICBwYXJ0eXRvd24gPSB7XG4gICAgICAgICAgICAgIGxpYjogXCIke2Fzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvfnBhcnR5dG93bi9cIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICBgLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgZGF0YS1wYXJ0eXRvd249XCJcIlxuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICBfX2h0bWw6IHBhcnR5dG93blNuaXBwZXQoKSxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICB7KHNjcmlwdExvYWRlci53b3JrZXIgfHwgW10pLm1hcCgoZmlsZTogU2NyaXB0UHJvcHMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBzdHJhdGVneSxcbiAgICAgICAgICAgIHNyYyxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBzY3JpcHRDaGlsZHJlbixcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLFxuICAgICAgICAgICAgLi4uc2NyaXB0UHJvcHNcbiAgICAgICAgICB9ID0gZmlsZVxuXG4gICAgICAgICAgbGV0IHNyY1Byb3BzOiB7XG4gICAgICAgICAgICBzcmM/OiBzdHJpbmdcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPzogU2NyaXB0UHJvcHNbJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJ11cbiAgICAgICAgICB9ID0ge31cblxuICAgICAgICAgIGlmIChzcmMpIHtcbiAgICAgICAgICAgIC8vIFVzZSBleHRlcm5hbCBzcmMgaWYgcHJvdmlkZWRcbiAgICAgICAgICAgIHNyY1Byb3BzLnNyYyA9IHNyY1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTCAmJlxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBFbWJlZCBpbmxpbmUgc2NyaXB0IGlmIHByb3ZpZGVkIHdpdGggZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcbiAgICAgICAgICAgIHNyY1Byb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID0ge1xuICAgICAgICAgICAgICBfX2h0bWw6IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHNjcmlwdENoaWxkcmVuKSB7XG4gICAgICAgICAgICAvLyBFbWJlZCBpbmxpbmUgc2NyaXB0IGlmIHByb3ZpZGVkIHdpdGggY2hpbGRyZW5cbiAgICAgICAgICAgIHNyY1Byb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID0ge1xuICAgICAgICAgICAgICBfX2h0bWw6XG4gICAgICAgICAgICAgICAgdHlwZW9mIHNjcmlwdENoaWxkcmVuID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgICAgPyBzY3JpcHRDaGlsZHJlblxuICAgICAgICAgICAgICAgICAgOiBBcnJheS5pc0FycmF5KHNjcmlwdENoaWxkcmVuKVxuICAgICAgICAgICAgICAgICAgICA/IHNjcmlwdENoaWxkcmVuLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgICAgIDogJycsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ0ludmFsaWQgdXNhZ2Ugb2YgbmV4dC9zY3JpcHQuIERpZCB5b3UgZm9yZ2V0IHRvIGluY2x1ZGUgYSBzcmMgYXR0cmlidXRlIG9yIGFuIGlubGluZSBzY3JpcHQ/IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtc2NyaXB0J1xuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICAgIHsuLi5zcmNQcm9wc31cbiAgICAgICAgICAgICAgey4uLnNjcmlwdFByb3BzfVxuICAgICAgICAgICAgICB0eXBlPVwidGV4dC9wYXJ0eXRvd25cIlxuICAgICAgICAgICAgICBrZXk9e3NyYyB8fCBpbmRleH1cbiAgICAgICAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICAgICAgICBkYXRhLW5zY3JpcHQ9XCJ3b3JrZXJcIlxuICAgICAgICAgICAgICBjcm9zc09yaWdpbj17cHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAgICA8Lz5cbiAgICApXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChpc0Vycm9yKGVycikgJiYgZXJyLmNvZGUgIT09ICdNT0RVTEVfTk9UX0ZPVU5EJykge1xuICAgICAgY29uc29sZS53YXJuKGBXYXJuaW5nOiAke2Vyci5tZXNzYWdlfWApXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UHJlTmV4dFNjcmlwdHMoY29udGV4dDogSHRtbFByb3BzLCBwcm9wczogT3JpZ2luUHJvcHMpIHtcbiAgY29uc3QgeyBzY3JpcHRMb2FkZXIsIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLCBjcm9zc09yaWdpbiB9ID0gY29udGV4dFxuXG4gIGNvbnN0IHdlYldvcmtlclNjcmlwdHMgPSBnZXRQcmVOZXh0V29ya2VyU2NyaXB0cyhjb250ZXh0LCBwcm9wcylcblxuICBjb25zdCBiZWZvcmVJbnRlcmFjdGl2ZVNjcmlwdHMgPSAoc2NyaXB0TG9hZGVyLmJlZm9yZUludGVyYWN0aXZlIHx8IFtdKVxuICAgIC5maWx0ZXIoKHNjcmlwdCkgPT4gc2NyaXB0LnNyYylcbiAgICAubWFwKChmaWxlOiBTY3JpcHRQcm9wcywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgeyBzdHJhdGVneSwgLi4uc2NyaXB0UHJvcHMgfSA9IGZpbGVcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxzY3JpcHRcbiAgICAgICAgICB7Li4uc2NyaXB0UHJvcHN9XG4gICAgICAgICAga2V5PXtzY3JpcHRQcm9wcy5zcmMgfHwgaW5kZXh9XG4gICAgICAgICAgZGVmZXI9e3NjcmlwdFByb3BzLmRlZmVyID8/ICFkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgICBub25jZT17c2NyaXB0UHJvcHMubm9uY2UgfHwgcHJvcHMubm9uY2V9XG4gICAgICAgICAgZGF0YS1uc2NyaXB0PVwiYmVmb3JlSW50ZXJhY3RpdmVcIlxuICAgICAgICAgIGNyb3NzT3JpZ2luPXtwcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9KVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHt3ZWJXb3JrZXJTY3JpcHRzfVxuICAgICAge2JlZm9yZUludGVyYWN0aXZlU2NyaXB0c31cbiAgICA8Lz5cbiAgKVxufVxuXG5mdW5jdGlvbiBnZXRIZWFkSFRNTFByb3BzKHByb3BzOiBIZWFkUHJvcHMpIHtcbiAgY29uc3QgeyBjcm9zc09yaWdpbiwgbm9uY2UsIC4uLnJlc3RQcm9wcyB9ID0gcHJvcHNcblxuICAvLyBUaGlzIGFzc2lnbm1lbnQgaXMgbmVjZXNzYXJ5IGZvciBhZGRpdGlvbmFsIHR5cGUgY2hlY2tpbmcgdG8gYXZvaWQgdW5zdXBwb3J0ZWQgYXR0cmlidXRlcyBpbiA8aGVhZD5cbiAgY29uc3QgaGVhZFByb3BzOiBIZWFkSFRNTFByb3BzICYge1xuICAgIFtQIGluIEV4Y2x1ZGU8a2V5b2YgSGVhZFByb3BzLCBrZXlvZiBIZWFkSFRNTFByb3BzPl0/OiBuZXZlclxuICB9ID0gcmVzdFByb3BzXG5cbiAgcmV0dXJuIGhlYWRQcm9wc1xufVxuXG5mdW5jdGlvbiBnZXRBbXBQYXRoKGFtcFBhdGg6IHN0cmluZywgYXNQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYW1wUGF0aCB8fCBgJHthc1BhdGh9JHthc1BhdGguaW5jbHVkZXMoJz8nKSA/ICcmJyA6ICc/J31hbXA9MWBcbn1cblxuZnVuY3Rpb24gZ2V0TmV4dEZvbnRMaW5rVGFncyhcbiAgbmV4dEZvbnRNYW5pZmVzdDogRGVlcFJlYWRvbmx5PE5leHRGb250TWFuaWZlc3Q+IHwgdW5kZWZpbmVkLFxuICBkYW5nZXJvdXNBc1BhdGg6IHN0cmluZyxcbiAgYXNzZXRQcmVmaXg6IHN0cmluZyA9ICcnXG4pIHtcbiAgaWYgKCFuZXh0Rm9udE1hbmlmZXN0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByZWNvbm5lY3Q6IG51bGwsXG4gICAgICBwcmVsb2FkOiBudWxsLFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFwcEZvbnRzRW50cnkgPSBuZXh0Rm9udE1hbmlmZXN0LnBhZ2VzWycvX2FwcCddXG4gIGNvbnN0IHBhZ2VGb250c0VudHJ5ID0gbmV4dEZvbnRNYW5pZmVzdC5wYWdlc1tkYW5nZXJvdXNBc1BhdGhdXG5cbiAgY29uc3QgcHJlbG9hZGVkRm9udEZpbGVzID0gQXJyYXkuZnJvbShcbiAgICBuZXcgU2V0KFsuLi4oYXBwRm9udHNFbnRyeSA/PyBbXSksIC4uLihwYWdlRm9udHNFbnRyeSA/PyBbXSldKVxuICApXG5cbiAgLy8gSWYgbm8gZm9udCBmaWxlcyBzaG91bGQgcHJlbG9hZCBidXQgdGhlcmUncyBhbiBlbnRyeSBmb3IgdGhlIHBhdGgsIGFkZCBhIHByZWNvbm5lY3QgdGFnLlxuICBjb25zdCBwcmVjb25uZWN0VG9TZWxmID0gISEoXG4gICAgcHJlbG9hZGVkRm9udEZpbGVzLmxlbmd0aCA9PT0gMCAmJlxuICAgIChhcHBGb250c0VudHJ5IHx8IHBhZ2VGb250c0VudHJ5KVxuICApXG5cbiAgcmV0dXJuIHtcbiAgICBwcmVjb25uZWN0OiBwcmVjb25uZWN0VG9TZWxmID8gKFxuICAgICAgPGxpbmtcbiAgICAgICAgZGF0YS1uZXh0LWZvbnQ9e1xuICAgICAgICAgIG5leHRGb250TWFuaWZlc3QucGFnZXNVc2luZ1NpemVBZGp1c3QgPyAnc2l6ZS1hZGp1c3QnIDogJydcbiAgICAgICAgfVxuICAgICAgICByZWw9XCJwcmVjb25uZWN0XCJcbiAgICAgICAgaHJlZj1cIi9cIlxuICAgICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICAvPlxuICAgICkgOiBudWxsLFxuICAgIHByZWxvYWQ6IHByZWxvYWRlZEZvbnRGaWxlc1xuICAgICAgPyBwcmVsb2FkZWRGb250RmlsZXMubWFwKChmb250RmlsZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4dCA9IC9cXC4od29mZnx3b2ZmMnxlb3R8dHRmfG90ZikkLy5leGVjKGZvbnRGaWxlKSFbMV1cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGxpbmtcbiAgICAgICAgICAgICAga2V5PXtmb250RmlsZX1cbiAgICAgICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgICAgIGhyZWY9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoZm9udEZpbGUpfWB9XG4gICAgICAgICAgICAgIGFzPVwiZm9udFwiXG4gICAgICAgICAgICAgIHR5cGU9e2Bmb250LyR7ZXh0fWB9XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWZvbnQ9e2ZvbnRGaWxlLmluY2x1ZGVzKCctcycpID8gJ3NpemUtYWRqdXN0JyA6ICcnfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICA6IG51bGwsXG4gIH1cbn1cblxuLy8gVXNlIGBSZWFjdC5Db21wb25lbnRgIHRvIGF2b2lkIGVycm9ycyBmcm9tIHRoZSBSU0MgY2hlY2tzIGJlY2F1c2Vcbi8vIGl0IGNhbid0IGJlIGltcG9ydGVkIGRpcmVjdGx5IGluIFNlcnZlciBDb21wb25lbnRzOlxuLy9cbi8vICAgaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnXG4vL1xuLy8gTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC80MDY4NlxuZXhwb3J0IGNsYXNzIEhlYWQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SGVhZFByb3BzPiB7XG4gIHN0YXRpYyBjb250ZXh0VHlwZSA9IEh0bWxDb250ZXh0XG5cbiAgY29udGV4dCE6IEh0bWxQcm9wc1xuXG4gIGdldENzc0xpbmtzKGZpbGVzOiBEb2N1bWVudEZpbGVzKTogSlNYLkVsZW1lbnRbXSB8IG51bGwge1xuICAgIGNvbnN0IHtcbiAgICAgIGFzc2V0UHJlZml4LFxuICAgICAgYXNzZXRRdWVyeVN0cmluZyxcbiAgICAgIGR5bmFtaWNJbXBvcnRzLFxuICAgICAgZHluYW1pY0Nzc01hbmlmZXN0LFxuICAgICAgY3Jvc3NPcmlnaW4sXG4gICAgICBvcHRpbWl6ZUNzcyxcbiAgICB9ID0gdGhpcy5jb250ZXh0XG4gICAgY29uc3QgY3NzRmlsZXMgPSBmaWxlcy5hbGxGaWxlcy5maWx0ZXIoKGYpID0+IGYuZW5kc1dpdGgoJy5jc3MnKSlcbiAgICBjb25zdCBzaGFyZWRGaWxlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KGZpbGVzLnNoYXJlZEZpbGVzKVxuXG4gICAgLy8gVW5tYW5hZ2VkIGZpbGVzIGFyZSBDU1MgZmlsZXMgdGhhdCB3aWxsIGJlIGhhbmRsZWQgZGlyZWN0bHkgYnkgdGhlXG4gICAgLy8gd2VicGFjayBydW50aW1lIChgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5gKS5cbiAgICBsZXQgdW5tYW5hZ2VkRmlsZXM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXSlcbiAgICBsZXQgbG9jYWxEeW5hbWljQ3NzRmlsZXMgPSBBcnJheS5mcm9tKFxuICAgICAgbmV3IFNldChkeW5hbWljSW1wb3J0cy5maWx0ZXIoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJy5jc3MnKSkpXG4gICAgKVxuICAgIGlmIChsb2NhbER5bmFtaWNDc3NGaWxlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gbmV3IFNldChjc3NGaWxlcylcbiAgICAgIGxvY2FsRHluYW1pY0Nzc0ZpbGVzID0gbG9jYWxEeW5hbWljQ3NzRmlsZXMuZmlsdGVyKFxuICAgICAgICAoZikgPT4gIShleGlzdGluZy5oYXMoZikgfHwgc2hhcmVkRmlsZXMuaGFzKGYpKVxuICAgICAgKVxuICAgICAgdW5tYW5hZ2VkRmlsZXMgPSBuZXcgU2V0KGxvY2FsRHluYW1pY0Nzc0ZpbGVzKVxuICAgICAgY3NzRmlsZXMucHVzaCguLi5sb2NhbER5bmFtaWNDc3NGaWxlcylcbiAgICB9XG5cbiAgICBsZXQgY3NzTGlua0VsZW1lbnRzOiBKU1guRWxlbWVudFtdID0gW11cbiAgICBjc3NGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICBjb25zdCBpc1NoYXJlZEZpbGUgPSBzaGFyZWRGaWxlcy5oYXMoZmlsZSlcbiAgICAgIGNvbnN0IGlzVW5tYW5hZ2VkRmlsZSA9IHVubWFuYWdlZEZpbGVzLmhhcyhmaWxlKVxuICAgICAgY29uc3QgaXNGaWxlSW5EeW5hbWljQ3NzTWFuaWZlc3QgPSBkeW5hbWljQ3NzTWFuaWZlc3QuaGFzKGZpbGUpXG5cbiAgICAgIGlmICghb3B0aW1pemVDc3MpIHtcbiAgICAgICAgY3NzTGlua0VsZW1lbnRzLnB1c2goXG4gICAgICAgICAgPGxpbmtcbiAgICAgICAgICAgIGtleT17YCR7ZmlsZX0tcHJlbG9hZGB9XG4gICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgICAgaHJlZj17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICAgIGFzPVwic3R5bGVcIlxuICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgLz5cbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBjc3NMaW5rRWxlbWVudHMucHVzaChcbiAgICAgICAgPGxpbmtcbiAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgcmVsPVwic3R5bGVzaGVldFwiXG4gICAgICAgICAgaHJlZj17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgIGRhdGEtbi1nPXtpc1VubWFuYWdlZEZpbGUgPyB1bmRlZmluZWQgOiBpc1NoYXJlZEZpbGUgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLW4tcD17XG4gICAgICAgICAgICBpc1NoYXJlZEZpbGUgfHwgaXNVbm1hbmFnZWRGaWxlIHx8IGlzRmlsZUluRHluYW1pY0Nzc01hbmlmZXN0XG4gICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgIDogJydcbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfSlcblxuICAgIHJldHVybiBjc3NMaW5rRWxlbWVudHMubGVuZ3RoID09PSAwID8gbnVsbCA6IGNzc0xpbmtFbGVtZW50c1xuICB9XG5cbiAgZ2V0UHJlbG9hZER5bmFtaWNDaHVua3MoKSB7XG4gICAgY29uc3QgeyBkeW5hbWljSW1wb3J0cywgYXNzZXRQcmVmaXgsIGFzc2V0UXVlcnlTdHJpbmcsIGNyb3NzT3JpZ2luIH0gPVxuICAgICAgdGhpcy5jb250ZXh0XG5cbiAgICByZXR1cm4gKFxuICAgICAgZHluYW1pY0ltcG9ydHNcbiAgICAgICAgLm1hcCgoZmlsZSkgPT4ge1xuICAgICAgICAgIGlmICghZmlsZS5lbmRzV2l0aCgnLmpzJykpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgICAgIGhyZWY9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICAgICAgICBhcz1cInNjcmlwdFwiXG4gICAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgICAvLyBGaWx0ZXIgb3V0IG51bGxlZCBzY3JpcHRzXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICApXG4gIH1cblxuICBnZXRQcmVsb2FkTWFpbkxpbmtzKGZpbGVzOiBEb2N1bWVudEZpbGVzKTogSlNYLkVsZW1lbnRbXSB8IG51bGwge1xuICAgIGNvbnN0IHsgYXNzZXRQcmVmaXgsIGFzc2V0UXVlcnlTdHJpbmcsIHNjcmlwdExvYWRlciwgY3Jvc3NPcmlnaW4gfSA9XG4gICAgICB0aGlzLmNvbnRleHRcbiAgICBjb25zdCBwcmVsb2FkRmlsZXMgPSBmaWxlcy5hbGxGaWxlcy5maWx0ZXIoKGZpbGU6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGZpbGUuZW5kc1dpdGgoJy5qcycpXG4gICAgfSlcblxuICAgIHJldHVybiBbXG4gICAgICAuLi4oc2NyaXB0TG9hZGVyLmJlZm9yZUludGVyYWN0aXZlIHx8IFtdKS5tYXAoKGZpbGUpID0+IChcbiAgICAgICAgPGxpbmtcbiAgICAgICAgICBrZXk9e2ZpbGUuc3JjfVxuICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgIGhyZWY9e2ZpbGUuc3JjfVxuICAgICAgICAgIGFzPVwic2NyaXB0XCJcbiAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgLz5cbiAgICAgICkpLFxuICAgICAgLi4ucHJlbG9hZEZpbGVzLm1hcCgoZmlsZTogc3RyaW5nKSA9PiAoXG4gICAgICAgIDxsaW5rXG4gICAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgIGhyZWY9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgICBmaWxlXG4gICAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICBhcz1cInNjcmlwdFwiXG4gICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgIC8+XG4gICAgICApKSxcbiAgICBdXG4gIH1cblxuICBnZXRCZWZvcmVJbnRlcmFjdGl2ZUlubGluZVNjcmlwdHMoKSB7XG4gICAgY29uc3QgeyBzY3JpcHRMb2FkZXIgfSA9IHRoaXMuY29udGV4dFxuICAgIGNvbnN0IHsgbm9uY2UsIGNyb3NzT3JpZ2luIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSB8fCBbXSlcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChzY3JpcHQpID0+XG4gICAgICAgICAgIXNjcmlwdC5zcmMgJiYgKHNjcmlwdC5kYW5nZXJvdXNseVNldElubmVySFRNTCB8fCBzY3JpcHQuY2hpbGRyZW4pXG4gICAgICApXG4gICAgICAubWFwKChmaWxlOiBTY3JpcHRQcm9wcywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgc3RyYXRlZ3ksXG4gICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwsXG4gICAgICAgICAgc3JjLFxuICAgICAgICAgIC4uLnNjcmlwdFByb3BzXG4gICAgICAgIH0gPSBmaWxlXG4gICAgICAgIGxldCBodG1sOiBOb25OdWxsYWJsZTxcbiAgICAgICAgICBTY3JpcHRQcm9wc1snZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnXVxuICAgICAgICA+WydfX2h0bWwnXSA9ICcnXG5cbiAgICAgICAgaWYgKGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCkge1xuICAgICAgICAgIGh0bWwgPSBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWxcbiAgICAgICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgIGh0bWwgPVxuICAgICAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICA/IGNoaWxkcmVuXG4gICAgICAgICAgICAgIDogQXJyYXkuaXNBcnJheShjaGlsZHJlbilcbiAgICAgICAgICAgICAgICA/IGNoaWxkcmVuLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICB7Li4uc2NyaXB0UHJvcHN9XG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGh0bWwgfX1cbiAgICAgICAgICAgIGtleT17c2NyaXB0UHJvcHMuaWQgfHwgaW5kZXh9XG4gICAgICAgICAgICBub25jZT17bm9uY2V9XG4gICAgICAgICAgICBkYXRhLW5zY3JpcHQ9XCJiZWZvcmVJbnRlcmFjdGl2ZVwiXG4gICAgICAgICAgICBjcm9zc09yaWdpbj17XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luIHx8XG4gICAgICAgICAgICAgIChwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOIGFzIHR5cGVvZiBjcm9zc09yaWdpbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9KVxuICB9XG5cbiAgZ2V0RHluYW1pY0NodW5rcyhmaWxlczogRG9jdW1lbnRGaWxlcykge1xuICAgIHJldHVybiBnZXREeW5hbWljQ2h1bmtzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcywgZmlsZXMpXG4gIH1cblxuICBnZXRQcmVOZXh0U2NyaXB0cygpIHtcbiAgICByZXR1cm4gZ2V0UHJlTmV4dFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzKVxuICB9XG5cbiAgZ2V0U2NyaXB0cyhmaWxlczogRG9jdW1lbnRGaWxlcykge1xuICAgIHJldHVybiBnZXRTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcywgZmlsZXMpXG4gIH1cblxuICBnZXRQb2x5ZmlsbFNjcmlwdHMoKSB7XG4gICAgcmV0dXJuIGdldFBvbHlmaWxsU2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgc3R5bGVzLFxuICAgICAgYW1wUGF0aCxcbiAgICAgIGluQW1wTW9kZSxcbiAgICAgIGh5YnJpZEFtcCxcbiAgICAgIGNhbm9uaWNhbEJhc2UsXG4gICAgICBfX05FWFRfREFUQV9fLFxuICAgICAgZGFuZ2Vyb3VzQXNQYXRoLFxuICAgICAgaGVhZFRhZ3MsXG4gICAgICB1bnN0YWJsZV9ydW50aW1lSlMsXG4gICAgICB1bnN0YWJsZV9Kc1ByZWxvYWQsXG4gICAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICAgIG9wdGltaXplQ3NzLFxuICAgICAgYXNzZXRQcmVmaXgsXG4gICAgICBuZXh0Rm9udE1hbmlmZXN0LFxuICAgIH0gPSB0aGlzLmNvbnRleHRcblxuICAgIGNvbnN0IGRpc2FibGVSdW50aW1lSlMgPSB1bnN0YWJsZV9ydW50aW1lSlMgPT09IGZhbHNlXG4gICAgY29uc3QgZGlzYWJsZUpzUHJlbG9hZCA9XG4gICAgICB1bnN0YWJsZV9Kc1ByZWxvYWQgPT09IGZhbHNlIHx8ICFkaXNhYmxlT3B0aW1pemVkTG9hZGluZ1xuXG4gICAgdGhpcy5jb250ZXh0LmRvY0NvbXBvbmVudHNSZW5kZXJlZC5IZWFkID0gdHJ1ZVxuXG4gICAgbGV0IHsgaGVhZCB9ID0gdGhpcy5jb250ZXh0XG4gICAgbGV0IGNzc1ByZWxvYWRzOiBBcnJheTxKU1guRWxlbWVudD4gPSBbXVxuICAgIGxldCBvdGhlckhlYWRFbGVtZW50czogQXJyYXk8SlNYLkVsZW1lbnQ+ID0gW11cbiAgICBpZiAoaGVhZCkge1xuICAgICAgaGVhZC5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hpbGQgJiZcbiAgICAgICAgICBjaGlsZC50eXBlID09PSAnbGluaycgJiZcbiAgICAgICAgICBjaGlsZC5wcm9wc1sncmVsJ10gPT09ICdwcmVsb2FkJyAmJlxuICAgICAgICAgIGNoaWxkLnByb3BzWydhcyddID09PSAnc3R5bGUnXG4gICAgICAgICkge1xuICAgICAgICAgIGNzc1ByZWxvYWRzLnB1c2goY2hpbGQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGNoaWxkKSB7XG4gICAgICAgICAgICBvdGhlckhlYWRFbGVtZW50cy5wdXNoKFxuICAgICAgICAgICAgICBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHsgJ2RhdGEtbmV4dC1oZWFkJzogJycgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBoZWFkID0gY3NzUHJlbG9hZHMuY29uY2F0KG90aGVySGVhZEVsZW1lbnRzKVxuICAgIH1cbiAgICBsZXQgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVtdID0gUmVhY3QuQ2hpbGRyZW4udG9BcnJheShcbiAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICApLmZpbHRlcihCb29sZWFuKVxuICAgIC8vIHNob3cgYSB3YXJuaW5nIGlmIEhlYWQgY29udGFpbnMgPHRpdGxlPiAob25seSBpbiBkZXZlbG9wbWVudClcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY2hpbGRyZW4gPSBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGlzUmVhY3RIZWxtZXQgPSBjaGlsZD8ucHJvcHM/LlsnZGF0YS1yZWFjdC1oZWxtZXQnXVxuICAgICAgICBpZiAoIWlzUmVhY3RIZWxtZXQpIHtcbiAgICAgICAgICBpZiAoY2hpbGQ/LnR5cGUgPT09ICd0aXRsZScpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgXCJXYXJuaW5nOiA8dGl0bGU+IHNob3VsZCBub3QgYmUgdXNlZCBpbiBfZG9jdW1lbnQuanMncyA8SGVhZD4uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLWRvY3VtZW50LXRpdGxlXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgY2hpbGQ/LnR5cGUgPT09ICdtZXRhJyAmJlxuICAgICAgICAgICAgY2hpbGQ/LnByb3BzPy5uYW1lID09PSAndmlld3BvcnQnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIFwiV2FybmluZzogdmlld3BvcnQgbWV0YSB0YWdzIHNob3VsZCBub3QgYmUgdXNlZCBpbiBfZG9jdW1lbnQuanMncyA8SGVhZD4uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLWRvY3VtZW50LXZpZXdwb3J0LW1ldGFcIlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hpbGRcbiAgICAgICAgLy8gQHR5cGVzL3JlYWN0IGJ1Zy4gUmV0dXJuZWQgdmFsdWUgZnJvbSAubWFwIHdpbGwgbm90IGJlIGBudWxsYCBpZiB5b3UgcGFzcyBpbiBgW251bGxdYFxuICAgICAgfSkhXG4gICAgICBpZiAodGhpcy5wcm9wcy5jcm9zc09yaWdpbilcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdXYXJuaW5nOiBgSGVhZGAgYXR0cmlidXRlIGBjcm9zc09yaWdpbmAgaXMgZGVwcmVjYXRlZC4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZG9jLWNyb3Nzb3JpZ2luLWRlcHJlY2F0ZWQnXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBsZXQgaGFzQW1waHRtbFJlbCA9IGZhbHNlXG4gICAgbGV0IGhhc0Nhbm9uaWNhbFJlbCA9IGZhbHNlXG5cbiAgICAvLyBzaG93IHdhcm5pbmcgYW5kIHJlbW92ZSBjb25mbGljdGluZyBhbXAgaGVhZCB0YWdzXG4gICAgaGVhZCA9IFJlYWN0LkNoaWxkcmVuLm1hcChoZWFkIHx8IFtdLCAoY2hpbGQpID0+IHtcbiAgICAgIGlmICghY2hpbGQpIHJldHVybiBjaGlsZFxuICAgICAgY29uc3QgeyB0eXBlLCBwcm9wcyB9ID0gY2hpbGRcbiAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGUpIHtcbiAgICAgICAgbGV0IGJhZFByb3A6IHN0cmluZyA9ICcnXG5cbiAgICAgICAgaWYgKHR5cGUgPT09ICdtZXRhJyAmJiBwcm9wcy5uYW1lID09PSAndmlld3BvcnQnKSB7XG4gICAgICAgICAgYmFkUHJvcCA9ICduYW1lPVwidmlld3BvcnRcIidcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbGluaycgJiYgcHJvcHMucmVsID09PSAnY2Fub25pY2FsJykge1xuICAgICAgICAgIGhhc0Nhbm9uaWNhbFJlbCA9IHRydWVcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2NyaXB0Jykge1xuICAgICAgICAgIC8vIG9ubHkgYmxvY2sgaWZcbiAgICAgICAgICAvLyAxLiBpdCBoYXMgYSBzcmMgYW5kIGlzbid0IHBvaW50aW5nIHRvIGFtcHByb2plY3QncyBDRE5cbiAgICAgICAgICAvLyAyLiBpdCBpcyB1c2luZyBkYW5nZXJvdXNseVNldElubmVySFRNTCB3aXRob3V0IGEgdHlwZSBvclxuICAgICAgICAgIC8vIGEgdHlwZSBvZiB0ZXh0L2phdmFzY3JpcHRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAocHJvcHMuc3JjICYmIHByb3BzLnNyYy5pbmRleE9mKCdhbXBwcm9qZWN0JykgPCAtMSkgfHxcbiAgICAgICAgICAgIChwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAmJlxuICAgICAgICAgICAgICAoIXByb3BzLnR5cGUgfHwgcHJvcHMudHlwZSA9PT0gJ3RleHQvamF2YXNjcmlwdCcpKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgYmFkUHJvcCA9ICc8c2NyaXB0J1xuICAgICAgICAgICAgT2JqZWN0LmtleXMocHJvcHMpLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICAgICAgYmFkUHJvcCArPSBgICR7cHJvcH09XCIke3Byb3BzW3Byb3BdfVwiYFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJhZFByb3AgKz0gJy8+J1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChiYWRQcm9wKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYEZvdW5kIGNvbmZsaWN0aW5nIGFtcCB0YWcgXCIke2NoaWxkLnR5cGV9XCIgd2l0aCBjb25mbGljdGluZyBwcm9wICR7YmFkUHJvcH0gaW4gJHtfX05FWFRfREFUQV9fLnBhZ2V9LiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9jb25mbGljdGluZy1hbXAtdGFnYFxuICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBub24tYW1wIG1vZGVcbiAgICAgICAgaWYgKHR5cGUgPT09ICdsaW5rJyAmJiBwcm9wcy5yZWwgPT09ICdhbXBodG1sJykge1xuICAgICAgICAgIGhhc0FtcGh0bWxSZWwgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjaGlsZFxuICAgICAgLy8gQHR5cGVzL3JlYWN0IGJ1Zy4gUmV0dXJuZWQgdmFsdWUgZnJvbSAubWFwIHdpbGwgbm90IGJlIGBudWxsYCBpZiB5b3UgcGFzcyBpbiBgW251bGxdYFxuICAgIH0pIVxuXG4gICAgY29uc3QgZmlsZXM6IERvY3VtZW50RmlsZXMgPSBnZXREb2N1bWVudEZpbGVzKFxuICAgICAgdGhpcy5jb250ZXh0LmJ1aWxkTWFuaWZlc3QsXG4gICAgICB0aGlzLmNvbnRleHQuX19ORVhUX0RBVEFfXy5wYWdlLFxuICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgKVxuXG4gICAgY29uc3QgbmV4dEZvbnRMaW5rVGFncyA9IGdldE5leHRGb250TGlua1RhZ3MoXG4gICAgICBuZXh0Rm9udE1hbmlmZXN0LFxuICAgICAgZGFuZ2Vyb3VzQXNQYXRoLFxuICAgICAgYXNzZXRQcmVmaXhcbiAgICApXG5cbiAgICBjb25zdCB0cmFjaW5nTWV0YWRhdGEgPSBnZXRUcmFjZWRNZXRhZGF0YShcbiAgICAgIGdldFRyYWNlcigpLmdldFRyYWNlUHJvcGFnYXRpb25EYXRhKCksXG4gICAgICB0aGlzLmNvbnRleHQuZXhwZXJpbWVudGFsQ2xpZW50VHJhY2VNZXRhZGF0YVxuICAgIClcblxuICAgIGNvbnN0IHRyYWNlTWV0YVRhZ3MgPSAodHJhY2luZ01ldGFkYXRhIHx8IFtdKS5tYXAoXG4gICAgICAoeyBrZXksIHZhbHVlIH0sIGluZGV4KSA9PiAoXG4gICAgICAgIDxtZXRhIGtleT17YG5leHQtdHJhY2UtZGF0YS0ke2luZGV4fWB9IG5hbWU9e2tleX0gY29udGVudD17dmFsdWV9IC8+XG4gICAgICApXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxoZWFkIHsuLi5nZXRIZWFkSFRNTFByb3BzKHRoaXMucHJvcHMpfT5cbiAgICAgICAge3RoaXMuY29udGV4dC5pc0RldmVsb3BtZW50ICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1oaWRlLWZvdWNcbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlPXtcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGVcbiAgICAgICAgICAgICAgICAgID8gJ3RydWUnXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtkaXNwbGF5Om5vbmV9YCxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bm9zY3JpcHRcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWhpZGUtZm91Y1xuICAgICAgICAgICAgICBkYXRhLWFtcGRldm1vZGU9e1xuICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgICAgICAgICAgICAgICAgPyAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7ZGlzcGxheTpibG9ja31gLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25vc2NyaXB0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7aGVhZH1cblxuICAgICAgICB7Y2hpbGRyZW59XG5cbiAgICAgICAge25leHRGb250TGlua1RhZ3MucHJlY29ubmVjdH1cbiAgICAgICAge25leHRGb250TGlua1RhZ3MucHJlbG9hZH1cblxuICAgICAgICB7cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPG1ldGFcbiAgICAgICAgICAgICAgbmFtZT1cInZpZXdwb3J0XCJcbiAgICAgICAgICAgICAgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7IWhhc0Nhbm9uaWNhbFJlbCAmJiAoXG4gICAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgICAgcmVsPVwiY2Fub25pY2FsXCJcbiAgICAgICAgICAgICAgICBocmVmPXtcbiAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbEJhc2UgK1xuICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlKCcuLi9zZXJ2ZXIvdXRpbHMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zZXJ2ZXIvdXRpbHMnKVxuICAgICAgICAgICAgICAgICAgKS5jbGVhbkFtcFBhdGgoZGFuZ2Vyb3VzQXNQYXRoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7LyogaHR0cHM6Ly93d3cuYW1wcHJvamVjdC5vcmcvZG9jcy9mdW5kYW1lbnRhbHMvb3B0aW1pemVfYW1wI29wdGltaXplLXRoZS1hbXAtcnVudGltZS1sb2FkaW5nICovfVxuICAgICAgICAgICAgPGxpbmtcbiAgICAgICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgICAgIGFzPVwic2NyaXB0XCJcbiAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vY2RuLmFtcHByb2plY3Qub3JnL3YwLmpzXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8QW1wU3R5bGVzIHN0eWxlcz17c3R5bGVzfSAvPlxuICAgICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICAgIGFtcC1ib2lsZXJwbGF0ZT1cIlwiXG4gICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgX19odG1sOiBgYm9keXstd2Via2l0LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tb3otYW5pbWF0aW9uOi1hbXAtc3RhcnQgOHMgc3RlcHMoMSxlbmQpIDBzIDEgbm9ybWFsIGJvdGg7LW1zLWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoO2FuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RofUAtd2Via2l0LWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1ALW1vei1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tcy1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1vLWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1Aa2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fWAsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG5vc2NyaXB0PlxuICAgICAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgICAgICBhbXAtYm9pbGVycGxhdGU9XCJcIlxuICAgICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5ey13ZWJraXQtYW5pbWF0aW9uOm5vbmU7LW1vei1hbmltYXRpb246bm9uZTstbXMtYW5pbWF0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9YCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9ub3NjcmlwdD5cbiAgICAgICAgICAgIDxzY3JpcHQgYXN5bmMgc3JjPVwiaHR0cHM6Ly9jZG4uYW1wcHJvamVjdC5vcmcvdjAuanNcIiAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7IShwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGUpICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFoYXNBbXBodG1sUmVsICYmIGh5YnJpZEFtcCAmJiAoXG4gICAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgICAgcmVsPVwiYW1waHRtbFwiXG4gICAgICAgICAgICAgICAgaHJlZj17Y2Fub25pY2FsQmFzZSArIGdldEFtcFBhdGgoYW1wUGF0aCwgZGFuZ2Vyb3VzQXNQYXRoKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7dGhpcy5nZXRCZWZvcmVJbnRlcmFjdGl2ZUlubGluZVNjcmlwdHMoKX1cbiAgICAgICAgICAgIHshb3B0aW1pemVDc3MgJiYgdGhpcy5nZXRDc3NMaW5rcyhmaWxlcyl9XG4gICAgICAgICAgICB7IW9wdGltaXplQ3NzICYmIDxub3NjcmlwdCBkYXRhLW4tY3NzPXt0aGlzLnByb3BzLm5vbmNlID8/ICcnfSAvPn1cblxuICAgICAgICAgICAgeyFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgICAgICFkaXNhYmxlSnNQcmVsb2FkICYmXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UHJlbG9hZER5bmFtaWNDaHVua3MoKX1cbiAgICAgICAgICAgIHshZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZUpzUHJlbG9hZCAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFByZWxvYWRNYWluTGlua3MoZmlsZXMpfVxuXG4gICAgICAgICAgICB7IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UG9seWZpbGxTY3JpcHRzKCl9XG5cbiAgICAgICAgICAgIHshZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRQcmVOZXh0U2NyaXB0cygpfVxuICAgICAgICAgICAgeyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICB0aGlzLmdldER5bmFtaWNDaHVua3MoZmlsZXMpfVxuICAgICAgICAgICAgeyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFNjcmlwdHMoZmlsZXMpfVxuXG4gICAgICAgICAgICB7b3B0aW1pemVDc3MgJiYgdGhpcy5nZXRDc3NMaW5rcyhmaWxlcyl9XG4gICAgICAgICAgICB7b3B0aW1pemVDc3MgJiYgPG5vc2NyaXB0IGRhdGEtbi1jc3M9e3RoaXMucHJvcHMubm9uY2UgPz8gJyd9IC8+fVxuICAgICAgICAgICAge3RoaXMuY29udGV4dC5pc0RldmVsb3BtZW50ICYmIChcbiAgICAgICAgICAgICAgLy8gdGhpcyBlbGVtZW50IGlzIHVzZWQgdG8gbW91bnQgZGV2ZWxvcG1lbnQgc3R5bGVzIHNvIHRoZVxuICAgICAgICAgICAgICAvLyBvcmRlcmluZyBtYXRjaGVzIHByb2R1Y3Rpb25cbiAgICAgICAgICAgICAgLy8gKGJ5IGRlZmF1bHQsIHN0eWxlLWxvYWRlciBpbmplY3RzIGF0IHRoZSBib3R0b20gb2YgPGhlYWQgLz4pXG4gICAgICAgICAgICAgIDxub3NjcmlwdCBpZD1cIl9fbmV4dF9jc3NfX0RPX05PVF9VU0VfX1wiIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3RyYWNlTWV0YVRhZ3N9XG4gICAgICAgICAgICB7c3R5bGVzIHx8IG51bGx9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIHtSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCB7fSwgLi4uKGhlYWRUYWdzIHx8IFtdKSl9XG4gICAgICA8L2hlYWQ+XG4gICAgKVxuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZURvY3VtZW50U2NyaXB0TG9hZGVySXRlbXMoXG4gIHNjcmlwdExvYWRlcjogeyBiZWZvcmVJbnRlcmFjdGl2ZT86IGFueVtdIH0sXG4gIF9fTkVYVF9EQVRBX186IE5FWFRfREFUQSxcbiAgcHJvcHM6IGFueVxuKTogdm9pZCB7XG4gIGlmICghcHJvcHMuY2hpbGRyZW4pIHJldHVyblxuXG4gIGNvbnN0IHNjcmlwdExvYWRlckl0ZW1zOiBTY3JpcHRQcm9wc1tdID0gW11cblxuICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmlzQXJyYXkocHJvcHMuY2hpbGRyZW4pXG4gICAgPyBwcm9wcy5jaGlsZHJlblxuICAgIDogW3Byb3BzLmNoaWxkcmVuXVxuXG4gIGNvbnN0IGhlYWRDaGlsZHJlbiA9IGNoaWxkcmVuLmZpbmQoXG4gICAgKGNoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQpID0+IGNoaWxkLnR5cGUgPT09IEhlYWRcbiAgKT8ucHJvcHM/LmNoaWxkcmVuXG4gIGNvbnN0IGJvZHlDaGlsZHJlbiA9IGNoaWxkcmVuLmZpbmQoXG4gICAgKGNoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQpID0+IGNoaWxkLnR5cGUgPT09ICdib2R5J1xuICApPy5wcm9wcz8uY2hpbGRyZW5cblxuICAvLyBTY3JpcHRzIHdpdGggYmVmb3JlSW50ZXJhY3RpdmUgY2FuIGJlIHBsYWNlZCBpbnNpZGUgSGVhZCBvciA8Ym9keT4gc28gY2hpbGRyZW4gb2YgYm90aCBuZWVkcyB0byBiZSB0cmF2ZXJzZWRcbiAgY29uc3QgY29tYmluZWRDaGlsZHJlbiA9IFtcbiAgICAuLi4oQXJyYXkuaXNBcnJheShoZWFkQ2hpbGRyZW4pID8gaGVhZENoaWxkcmVuIDogW2hlYWRDaGlsZHJlbl0pLFxuICAgIC4uLihBcnJheS5pc0FycmF5KGJvZHlDaGlsZHJlbikgPyBib2R5Q2hpbGRyZW4gOiBbYm9keUNoaWxkcmVuXSksXG4gIF1cblxuICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNvbWJpbmVkQ2hpbGRyZW4sIChjaGlsZDogYW55KSA9PiB7XG4gICAgaWYgKCFjaGlsZCkgcmV0dXJuXG5cbiAgICAvLyBXaGVuIHVzaW5nIHRoZSBgbmV4dC9zY3JpcHRgIGNvbXBvbmVudCwgcmVnaXN0ZXIgaXQgaW4gc2NyaXB0IGxvYWRlci5cbiAgICBpZiAoY2hpbGQudHlwZT8uX19uZXh0U2NyaXB0KSB7XG4gICAgICBpZiAoY2hpbGQucHJvcHMuc3RyYXRlZ3kgPT09ICdiZWZvcmVJbnRlcmFjdGl2ZScpIHtcbiAgICAgICAgc2NyaXB0TG9hZGVyLmJlZm9yZUludGVyYWN0aXZlID0gKFxuICAgICAgICAgIHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSB8fCBbXVxuICAgICAgICApLmNvbmNhdChbXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBbJ2xhenlPbmxvYWQnLCAnYWZ0ZXJJbnRlcmFjdGl2ZScsICd3b3JrZXInXS5pbmNsdWRlcyhcbiAgICAgICAgICBjaGlsZC5wcm9wcy5zdHJhdGVneVxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgc2NyaXB0TG9hZGVySXRlbXMucHVzaChjaGlsZC5wcm9wcylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjaGlsZC5wcm9wcy5zdHJhdGVneSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgc2NyaXB0TG9hZGVySXRlbXMucHVzaCh7IC4uLmNoaWxkLnByb3BzLCBzdHJhdGVneTogJ2FmdGVySW50ZXJhY3RpdmUnIH0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICBfX05FWFRfREFUQV9fLnNjcmlwdExvYWRlciA9IHNjcmlwdExvYWRlckl0ZW1zXG59XG5cbmV4cG9ydCBjbGFzcyBOZXh0U2NyaXB0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PE9yaWdpblByb3BzPiB7XG4gIHN0YXRpYyBjb250ZXh0VHlwZSA9IEh0bWxDb250ZXh0XG5cbiAgY29udGV4dCE6IEh0bWxQcm9wc1xuXG4gIGdldER5bmFtaWNDaHVua3MoZmlsZXM6IERvY3VtZW50RmlsZXMpIHtcbiAgICByZXR1cm4gZ2V0RHluYW1pY0NodW5rcyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMsIGZpbGVzKVxuICB9XG5cbiAgZ2V0UHJlTmV4dFNjcmlwdHMoKSB7XG4gICAgcmV0dXJuIGdldFByZU5leHRTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIGdldFNjcmlwdHMoZmlsZXM6IERvY3VtZW50RmlsZXMpIHtcbiAgICByZXR1cm4gZ2V0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMsIGZpbGVzKVxuICB9XG5cbiAgZ2V0UG9seWZpbGxTY3JpcHRzKCkge1xuICAgIHJldHVybiBnZXRQb2x5ZmlsbFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzKVxuICB9XG5cbiAgc3RhdGljIGdldElubGluZVNjcmlwdFNvdXJjZShjb250ZXh0OiBSZWFkb25seTxIdG1sUHJvcHM+KTogc3RyaW5nIHtcbiAgICBjb25zdCB7IF9fTkVYVF9EQVRBX18sIGxhcmdlUGFnZURhdGFCeXRlcyB9ID0gY29udGV4dFxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkoX19ORVhUX0RBVEFfXylcblxuICAgICAgaWYgKGxhcmdlUGFnZURhdGFXYXJuaW5ncy5oYXMoX19ORVhUX0RBVEFfXy5wYWdlKSkge1xuICAgICAgICByZXR1cm4gaHRtbEVzY2FwZUpzb25TdHJpbmcoZGF0YSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgYnl0ZXMgPVxuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJ1xuICAgICAgICAgID8gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGRhdGEpLmJ1ZmZlci5ieXRlTGVuZ3RoXG4gICAgICAgICAgOiBCdWZmZXIuZnJvbShkYXRhKS5ieXRlTGVuZ3RoXG4gICAgICBjb25zdCBwcmV0dHlCeXRlcyA9IChcbiAgICAgICAgcmVxdWlyZSgnLi4vbGliL3ByZXR0eS1ieXRlcycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL2xpYi9wcmV0dHktYnl0ZXMnKVxuICAgICAgKS5kZWZhdWx0XG5cbiAgICAgIGlmIChsYXJnZVBhZ2VEYXRhQnl0ZXMgJiYgYnl0ZXMgPiBsYXJnZVBhZ2VEYXRhQnl0ZXMpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBsYXJnZVBhZ2VEYXRhV2FybmluZ3MuYWRkKF9fTkVYVF9EQVRBX18ucGFnZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgV2FybmluZzogZGF0YSBmb3IgcGFnZSBcIiR7X19ORVhUX0RBVEFfXy5wYWdlfVwiJHtcbiAgICAgICAgICAgIF9fTkVYVF9EQVRBX18ucGFnZSA9PT0gY29udGV4dC5kYW5nZXJvdXNBc1BhdGhcbiAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICA6IGAgKHBhdGggXCIke2NvbnRleHQuZGFuZ2Vyb3VzQXNQYXRofVwiKWBcbiAgICAgICAgICB9IGlzICR7cHJldHR5Qnl0ZXMoXG4gICAgICAgICAgICBieXRlc1xuICAgICAgICAgICl9IHdoaWNoIGV4Y2VlZHMgdGhlIHRocmVzaG9sZCBvZiAke3ByZXR0eUJ5dGVzKFxuICAgICAgICAgICAgbGFyZ2VQYWdlRGF0YUJ5dGVzXG4gICAgICAgICAgKX0sIHRoaXMgYW1vdW50IG9mIGRhdGEgY2FuIHJlZHVjZSBwZXJmb3JtYW5jZS5cXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xhcmdlLXBhZ2UtZGF0YWBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaHRtbEVzY2FwZUpzb25TdHJpbmcoZGF0YSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChpc0Vycm9yKGVycikgJiYgZXJyLm1lc3NhZ2UuaW5kZXhPZignY2lyY3VsYXIgc3RydWN0dXJlJykgIT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2lyY3VsYXIgc3RydWN0dXJlIGluIFwiZ2V0SW5pdGlhbFByb3BzXCIgcmVzdWx0IG9mIHBhZ2UgXCIke19fTkVYVF9EQVRBX18ucGFnZX1cIi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvY2lyY3VsYXItc3RydWN0dXJlYFxuICAgICAgICApXG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgYXNzZXRQcmVmaXgsXG4gICAgICBpbkFtcE1vZGUsXG4gICAgICBidWlsZE1hbmlmZXN0LFxuICAgICAgdW5zdGFibGVfcnVudGltZUpTLFxuICAgICAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLFxuICAgICAgYXNzZXRRdWVyeVN0cmluZyxcbiAgICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgICAgY3Jvc3NPcmlnaW4sXG4gICAgfSA9IHRoaXMuY29udGV4dFxuICAgIGNvbnN0IGRpc2FibGVSdW50aW1lSlMgPSB1bnN0YWJsZV9ydW50aW1lSlMgPT09IGZhbHNlXG5cbiAgICBkb2NDb21wb25lbnRzUmVuZGVyZWQuTmV4dFNjcmlwdCA9IHRydWVcblxuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGUpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgICBjb25zdCBhbXBEZXZGaWxlcyA9IFtcbiAgICAgICAgLi4uYnVpbGRNYW5pZmVzdC5kZXZGaWxlcyxcbiAgICAgICAgLi4uYnVpbGRNYW5pZmVzdC5wb2x5ZmlsbEZpbGVzLFxuICAgICAgICAuLi5idWlsZE1hbmlmZXN0LmFtcERldkZpbGVzLFxuICAgICAgXVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIHtkaXNhYmxlUnVudGltZUpTID8gbnVsbCA6IChcbiAgICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgICAgaWQ9XCJfX05FWFRfREFUQV9fXCJcbiAgICAgICAgICAgICAgdHlwZT1cImFwcGxpY2F0aW9uL2pzb25cIlxuICAgICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgX19odG1sOiBOZXh0U2NyaXB0LmdldElubGluZVNjcmlwdFNvdXJjZSh0aGlzLmNvbnRleHQpLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBkYXRhLWFtcGRldm1vZGVcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7YW1wRGV2RmlsZXMubWFwKChmaWxlKSA9PiAoXG4gICAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgICBkYXRhLWFtcGRldm1vZGVcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5jcm9zc09yaWdpbilcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdXYXJuaW5nOiBgTmV4dFNjcmlwdGAgYXR0cmlidXRlIGBjcm9zc09yaWdpbmAgaXMgZGVwcmVjYXRlZC4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZG9jLWNyb3Nzb3JpZ2luLWRlcHJlY2F0ZWQnXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlczogRG9jdW1lbnRGaWxlcyA9IGdldERvY3VtZW50RmlsZXMoXG4gICAgICB0aGlzLmNvbnRleHQuYnVpbGRNYW5pZmVzdCxcbiAgICAgIHRoaXMuY29udGV4dC5fX05FWFRfREFUQV9fLnBhZ2UsXG4gICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGVcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFkaXNhYmxlUnVudGltZUpTICYmIGJ1aWxkTWFuaWZlc3QuZGV2RmlsZXNcbiAgICAgICAgICA/IGJ1aWxkTWFuaWZlc3QuZGV2RmlsZXMubWFwKChmaWxlOiBzdHJpbmcpID0+IChcbiAgICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgICAgICAgICBzcmM9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpXG4gICAgICAgICAgOiBudWxsfVxuICAgICAgICB7ZGlzYWJsZVJ1bnRpbWVKUyA/IG51bGwgOiAoXG4gICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgaWQ9XCJfX05FWFRfREFUQV9fXCJcbiAgICAgICAgICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICBfX2h0bWw6IE5leHRTY3JpcHQuZ2V0SW5saW5lU2NyaXB0U291cmNlKHRoaXMuY29udGV4dCksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgdGhpcy5nZXRQb2x5ZmlsbFNjcmlwdHMoKX1cbiAgICAgICAge2Rpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICB0aGlzLmdldFByZU5leHRTY3JpcHRzKCl9XG4gICAgICAgIHtkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgdGhpcy5nZXREeW5hbWljQ2h1bmtzKGZpbGVzKX1cbiAgICAgICAge2Rpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmICFkaXNhYmxlUnVudGltZUpTICYmIHRoaXMuZ2V0U2NyaXB0cyhmaWxlcyl9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEh0bWwoXG4gIHByb3BzOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICBSZWFjdC5IdG1sSFRNTEF0dHJpYnV0ZXM8SFRNTEh0bWxFbGVtZW50PixcbiAgICBIVE1MSHRtbEVsZW1lbnRcbiAgPlxuKSB7XG4gIGNvbnN0IHtcbiAgICBpbkFtcE1vZGUsXG4gICAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLFxuICAgIGxvY2FsZSxcbiAgICBzY3JpcHRMb2FkZXIsXG4gICAgX19ORVhUX0RBVEFfXyxcbiAgfSA9IHVzZUh0bWxDb250ZXh0KClcblxuICBkb2NDb21wb25lbnRzUmVuZGVyZWQuSHRtbCA9IHRydWVcbiAgaGFuZGxlRG9jdW1lbnRTY3JpcHRMb2FkZXJJdGVtcyhzY3JpcHRMb2FkZXIsIF9fTkVYVF9EQVRBX18sIHByb3BzKVxuXG4gIHJldHVybiAoXG4gICAgPGh0bWxcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIGxhbmc9e3Byb3BzLmxhbmcgfHwgbG9jYWxlIHx8IHVuZGVmaW5lZH1cbiAgICAgIGFtcD17cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlID8gJycgOiB1bmRlZmluZWR9XG4gICAgICBkYXRhLWFtcGRldm1vZGU9e1xuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJlxuICAgICAgICBpbkFtcE1vZGUgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJ1xuICAgICAgICAgID8gJydcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1haW4oKSB7XG4gIGNvbnN0IHsgZG9jQ29tcG9uZW50c1JlbmRlcmVkIH0gPSB1c2VIdG1sQ29udGV4dCgpXG4gIGRvY0NvbXBvbmVudHNSZW5kZXJlZC5NYWluID0gdHJ1ZVxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiA8bmV4dC1qcy1pbnRlcm5hbC1ib2R5LXJlbmRlci10YXJnZXQgLz5cbn1cblxuLyoqXG4gKiBgRG9jdW1lbnRgIGNvbXBvbmVudCBoYW5kbGVzIHRoZSBpbml0aWFsIGBkb2N1bWVudGAgbWFya3VwIGFuZCByZW5kZXJzIG9ubHkgb24gdGhlIHNlcnZlciBzaWRlLlxuICogQ29tbW9ubHkgdXNlZCBmb3IgaW1wbGVtZW50aW5nIHNlcnZlciBzaWRlIHJlbmRlcmluZyBmb3IgYGNzcy1pbi1qc2AgbGlicmFyaWVzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEb2N1bWVudDxQID0ge30+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxuICBEb2N1bWVudFByb3BzICYgUFxuPiB7XG4gIC8qKlxuICAgKiBgZ2V0SW5pdGlhbFByb3BzYCBob29rIHJldHVybnMgdGhlIGNvbnRleHQgb2JqZWN0IHdpdGggdGhlIGFkZGl0aW9uIG9mIGByZW5kZXJQYWdlYC5cbiAgICogYHJlbmRlclBhZ2VgIGNhbGxiYWNrIGV4ZWN1dGVzIGBSZWFjdGAgcmVuZGVyaW5nIGxvZ2ljIHN5bmNocm9ub3VzbHkgdG8gc3VwcG9ydCBzZXJ2ZXItcmVuZGVyaW5nIHdyYXBwZXJzXG4gICAqL1xuICBzdGF0aWMgZ2V0SW5pdGlhbFByb3BzKGN0eDogRG9jdW1lbnRDb250ZXh0KTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz4ge1xuICAgIHJldHVybiBjdHguZGVmYXVsdEdldEluaXRpYWxQcm9wcyhjdHgpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxIdG1sPlxuICAgICAgICA8SGVhZCBub25jZT17dGhpcy5wcm9wcy5ub25jZX0gLz5cbiAgICAgICAgPGJvZHk+XG4gICAgICAgICAgPE1haW4gLz5cbiAgICAgICAgICA8TmV4dFNjcmlwdCBub25jZT17dGhpcy5wcm9wcy5ub25jZX0gLz5cbiAgICAgICAgPC9ib2R5PlxuICAgICAgPC9IdG1sPlxuICAgIClcbiAgfVxufVxuXG4vLyBBZGQgYSBzcGVjaWFsIHByb3BlcnR5IHRvIHRoZSBidWlsdC1pbiBgRG9jdW1lbnRgIGNvbXBvbmVudCBzbyBsYXRlciB3ZSBjYW5cbi8vIGlkZW50aWZ5IGlmIGEgdXNlciBjdXN0b21pemVkIGBEb2N1bWVudGAgaXMgdXNlZCBvciBub3QuXG5jb25zdCBJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnQ6IERvY3VtZW50VHlwZSA9XG4gIGZ1bmN0aW9uIEludGVybmFsRnVuY3Rpb25Eb2N1bWVudCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEh0bWw+XG4gICAgICAgIDxIZWFkIC8+XG4gICAgICAgIDxib2R5PlxuICAgICAgICAgIDxNYWluIC8+XG4gICAgICAgICAgPE5leHRTY3JpcHQgLz5cbiAgICAgICAgPC9ib2R5PlxuICAgICAgPC9IdG1sPlxuICAgIClcbiAgfVxuOyhEb2N1bWVudCBhcyBhbnkpW05FWFRfQlVJTFRJTl9ET0NVTUVOVF0gPSBJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnRcbiJdLCJuYW1lcyI6WyJIZWFkIiwiSHRtbCIsIk1haW4iLCJOZXh0U2NyaXB0IiwiRG9jdW1lbnQiLCJsYXJnZVBhZ2VEYXRhV2FybmluZ3MiLCJTZXQiLCJnZXREb2N1bWVudEZpbGVzIiwiYnVpbGRNYW5pZmVzdCIsInBhdGhuYW1lIiwiaW5BbXBNb2RlIiwic2hhcmVkRmlsZXMiLCJnZXRQYWdlRmlsZXMiLCJwYWdlRmlsZXMiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwiYWxsRmlsZXMiLCJnZXRQb2x5ZmlsbFNjcmlwdHMiLCJjb250ZXh0IiwicHJvcHMiLCJhc3NldFByZWZpeCIsImFzc2V0UXVlcnlTdHJpbmciLCJkaXNhYmxlT3B0aW1pemVkTG9hZGluZyIsImNyb3NzT3JpZ2luIiwicG9seWZpbGxGaWxlcyIsImZpbHRlciIsInBvbHlmaWxsIiwiZW5kc1dpdGgiLCJtYXAiLCJzY3JpcHQiLCJkZWZlciIsIm5vbmNlIiwibm9Nb2R1bGUiLCJzcmMiLCJlbmNvZGVVUklQYXRoIiwiaGFzQ29tcG9uZW50UHJvcHMiLCJjaGlsZCIsIkFtcFN0eWxlcyIsInN0eWxlcyIsImN1clN0eWxlcyIsIkFycmF5IiwiaXNBcnJheSIsImNoaWxkcmVuIiwiaGFzU3R5bGVzIiwiZWwiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImZvckVhY2giLCJwdXNoIiwic3R5bGUiLCJhbXAtY3VzdG9tIiwiam9pbiIsInJlcGxhY2UiLCJnZXREeW5hbWljQ2h1bmtzIiwiZmlsZXMiLCJkeW5hbWljSW1wb3J0cyIsImlzRGV2ZWxvcG1lbnQiLCJmaWxlIiwiaW5jbHVkZXMiLCJhc3luYyIsImdldFNjcmlwdHMiLCJub3JtYWxTY3JpcHRzIiwibG93UHJpb3JpdHlTY3JpcHRzIiwibG93UHJpb3JpdHlGaWxlcyIsImdldFByZU5leHRXb3JrZXJTY3JpcHRzIiwic2NyaXB0TG9hZGVyIiwibmV4dFNjcmlwdFdvcmtlcnMiLCJwYXJ0eXRvd25TbmlwcGV0IiwiX19ub25fd2VicGFja19yZXF1aXJlX18iLCJ1c2VyRGVmaW5lZENvbmZpZyIsImZpbmQiLCJsZW5ndGgiLCJkYXRhLXBhcnR5dG93bi1jb25maWciLCJkYXRhLXBhcnR5dG93biIsIndvcmtlciIsImluZGV4Iiwic3RyYXRlZ3kiLCJzY3JpcHRDaGlsZHJlbiIsInNjcmlwdFByb3BzIiwic3JjUHJvcHMiLCJFcnJvciIsInR5cGUiLCJrZXkiLCJkYXRhLW5zY3JpcHQiLCJlcnIiLCJpc0Vycm9yIiwiY29kZSIsImNvbnNvbGUiLCJ3YXJuIiwibWVzc2FnZSIsImdldFByZU5leHRTY3JpcHRzIiwid2ViV29ya2VyU2NyaXB0cyIsImJlZm9yZUludGVyYWN0aXZlU2NyaXB0cyIsImJlZm9yZUludGVyYWN0aXZlIiwiZ2V0SGVhZEhUTUxQcm9wcyIsInJlc3RQcm9wcyIsImhlYWRQcm9wcyIsImdldEFtcFBhdGgiLCJhbXBQYXRoIiwiYXNQYXRoIiwiZ2V0TmV4dEZvbnRMaW5rVGFncyIsIm5leHRGb250TWFuaWZlc3QiLCJkYW5nZXJvdXNBc1BhdGgiLCJwcmVjb25uZWN0IiwicHJlbG9hZCIsImFwcEZvbnRzRW50cnkiLCJwYWdlcyIsInBhZ2VGb250c0VudHJ5IiwicHJlbG9hZGVkRm9udEZpbGVzIiwiZnJvbSIsInByZWNvbm5lY3RUb1NlbGYiLCJsaW5rIiwiZGF0YS1uZXh0LWZvbnQiLCJwYWdlc1VzaW5nU2l6ZUFkanVzdCIsInJlbCIsImhyZWYiLCJmb250RmlsZSIsImV4dCIsImV4ZWMiLCJhcyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29udGV4dFR5cGUiLCJIdG1sQ29udGV4dCIsImdldENzc0xpbmtzIiwiZHluYW1pY0Nzc01hbmlmZXN0Iiwib3B0aW1pemVDc3MiLCJjc3NGaWxlcyIsImYiLCJ1bm1hbmFnZWRGaWxlcyIsImxvY2FsRHluYW1pY0Nzc0ZpbGVzIiwiZXhpc3RpbmciLCJoYXMiLCJjc3NMaW5rRWxlbWVudHMiLCJpc1NoYXJlZEZpbGUiLCJpc1VubWFuYWdlZEZpbGUiLCJpc0ZpbGVJbkR5bmFtaWNDc3NNYW5pZmVzdCIsImRhdGEtbi1nIiwidW5kZWZpbmVkIiwiZGF0YS1uLXAiLCJnZXRQcmVsb2FkRHluYW1pY0NodW5rcyIsIkJvb2xlYW4iLCJnZXRQcmVsb2FkTWFpbkxpbmtzIiwicHJlbG9hZEZpbGVzIiwiZ2V0QmVmb3JlSW50ZXJhY3RpdmVJbmxpbmVTY3JpcHRzIiwiaHRtbCIsImlkIiwiX19ORVhUX0NST1NTX09SSUdJTiIsInJlbmRlciIsImh5YnJpZEFtcCIsImNhbm9uaWNhbEJhc2UiLCJfX05FWFRfREFUQV9fIiwiaGVhZFRhZ3MiLCJ1bnN0YWJsZV9ydW50aW1lSlMiLCJ1bnN0YWJsZV9Kc1ByZWxvYWQiLCJkaXNhYmxlUnVudGltZUpTIiwiZGlzYWJsZUpzUHJlbG9hZCIsImRvY0NvbXBvbmVudHNSZW5kZXJlZCIsImhlYWQiLCJjc3NQcmVsb2FkcyIsIm90aGVySGVhZEVsZW1lbnRzIiwiY2xvbmVFbGVtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiTk9ERV9FTlYiLCJpc1JlYWN0SGVsbWV0IiwibmFtZSIsImhhc0FtcGh0bWxSZWwiLCJoYXNDYW5vbmljYWxSZWwiLCJiYWRQcm9wIiwiaW5kZXhPZiIsIk9iamVjdCIsImtleXMiLCJwcm9wIiwicGFnZSIsIm5leHRGb250TGlua1RhZ3MiLCJ0cmFjaW5nTWV0YWRhdGEiLCJnZXRUcmFjZWRNZXRhZGF0YSIsImdldFRyYWNlciIsImdldFRyYWNlUHJvcGFnYXRpb25EYXRhIiwiZXhwZXJpbWVudGFsQ2xpZW50VHJhY2VNZXRhZGF0YSIsInRyYWNlTWV0YVRhZ3MiLCJ2YWx1ZSIsIm1ldGEiLCJjb250ZW50IiwiZGF0YS1uZXh0LWhpZGUtZm91YyIsImRhdGEtYW1wZGV2bW9kZSIsIm5vc2NyaXB0IiwicmVxdWlyZSIsImNsZWFuQW1wUGF0aCIsImFtcC1ib2lsZXJwbGF0ZSIsImRhdGEtbi1jc3MiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJoYW5kbGVEb2N1bWVudFNjcmlwdExvYWRlckl0ZW1zIiwic2NyaXB0TG9hZGVySXRlbXMiLCJoZWFkQ2hpbGRyZW4iLCJib2R5Q2hpbGRyZW4iLCJjb21iaW5lZENoaWxkcmVuIiwiX19uZXh0U2NyaXB0IiwiZ2V0SW5saW5lU2NyaXB0U291cmNlIiwibGFyZ2VQYWdlRGF0YUJ5dGVzIiwiZGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJodG1sRXNjYXBlSnNvblN0cmluZyIsImJ5dGVzIiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiLCJidWZmZXIiLCJieXRlTGVuZ3RoIiwiQnVmZmVyIiwicHJldHR5Qnl0ZXMiLCJkZWZhdWx0IiwiYWRkIiwiYW1wRGV2RmlsZXMiLCJkZXZGaWxlcyIsImxvY2FsZSIsInVzZUh0bWxDb250ZXh0IiwibGFuZyIsImFtcCIsIm5leHQtanMtaW50ZXJuYWwtYm9keS1yZW5kZXItdGFyZ2V0IiwiZ2V0SW5pdGlhbFByb3BzIiwiY3R4IiwiZGVmYXVsdEdldEluaXRpYWxQcm9wcyIsImJvZHkiLCJJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnQiLCJORVhUX0JVSUxUSU5fRE9DVU1FTlQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/pages/_document.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/pages/_error.js": /*!************************************************!*\ !*** ./node_modules/next/dist/pages/_error.js ***! \************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { req, res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n let hostname;\n if (false) {} else if (req) {\n const { getRequestMeta } = __webpack_require__(/*! ../server/request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\n const initUrl = getRequestMeta(req, 'initURL');\n if (initUrl) {\n const url = new URL(initUrl);\n hostname = url.hostname;\n }\n }\n return {\n statusCode,\n hostname\n };\n}\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"Application error: a client-side exception has occurred\",\n ' ',\n Boolean(this.props.hostname) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"while loading \",\n this.props.hostname\n ]\n }),\n ' ',\n \"(see the browser console for more information)\"\n ]\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7ZUFnRnFCQTs7Ozs7NEVBaEZIOzJFQUNEO0FBR2pCLE1BQU1DLGNBQTBDO0lBQzlDLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7QUFDUDtBQVNBLFNBQVNDLGlCQUFpQixLQUlSO0lBSlEsTUFDeEJDLEdBQUcsRUFDSEMsR0FBRyxFQUNIQyxHQUFHLEVBQ2EsR0FKUTtJQUt4QixNQUFNQyxhQUNKRixPQUFPQSxJQUFJRSxVQUFVLEdBQUdGLElBQUlFLFVBQVUsR0FBR0QsTUFBTUEsSUFBSUMsVUFBVSxHQUFJO0lBRW5FLElBQUlDO0lBRUosSUFBSSxLQUE2QixFQUFFLEVBRWxDLE1BQU0sSUFBSUosS0FBSztRQUNkLE1BQU0sRUFBRU8sY0FBYyxFQUFFLEdBQ3RCQyxtQkFBT0EsQ0FBQyxnR0FBd0I7UUFFbEMsTUFBTUMsVUFBVUYsZUFBZVAsS0FBSztRQUNwQyxJQUFJUyxTQUFTO1lBQ1gsTUFBTUMsTUFBTSxJQUFJQyxJQUFJRjtZQUNwQkwsV0FBV00sSUFBSU4sUUFBUTtRQUN6QjtJQUNGO0lBRUEsT0FBTztRQUFFRDtRQUFZQztJQUFTO0FBQ2hDO0FBRUEsTUFBTVEsU0FBOEM7SUFDbERDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUNBQyxNQUFNO1FBQ0pDLFlBQVk7SUFDZDtJQUNBQyxJQUFJO1FBQ0ZOLFNBQVM7UUFDVE8sUUFBUTtRQUNSQyxjQUFjO1FBQ2RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO0lBQ2pCO0lBQ0FDLElBQUk7UUFDRkgsVUFBVTtRQUNWQyxZQUFZO1FBQ1pMLFlBQVk7SUFDZDtJQUNBUSxNQUFNO1FBQ0piLFNBQVM7SUFDWDtBQUNGO0FBS2UsTUFBTXBCLGNBQXNCa0MsT0FBQUEsT0FBSyxDQUFDQyxTQUFTO0lBTXhEQyxTQUFTO1FBQ1AsTUFBTSxFQUFFOUIsVUFBVSxFQUFFK0IsZUFBZSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUNDLEtBQUs7UUFDdEQsTUFBTUMsUUFDSixJQUFJLENBQUNELEtBQUssQ0FBQ0MsS0FBSyxJQUNoQnRDLFdBQVcsQ0FBQ0ssV0FBVyxJQUN2QjtRQUVGLHFCQUNFLHNCQUFDa0MsT0FBQUE7WUFBSUMsT0FBTzFCLE9BQU9DLEtBQUs7OzhCQUN0QixxQkFBQzBCLE1BQUFBLE9BQUk7OEJBQ0gsbUNBQUNILFNBQUFBO2tDQUNFakMsYUFDTUEsYUFBVyxPQUFJaUMsUUFDbEI7Ozs4QkFHUixzQkFBQ0MsT0FBQUE7b0JBQUlDLE9BQU8xQixPQUFPUyxJQUFJOztzQ0FDckIscUJBQUNpQixTQUFBQTs0QkFDQ0UseUJBQXlCO2dDQUN2Qjs7Ozs7Ozs7Ozs7Ozs7OztlQWdCQyxHQUNEQyxRQUFTLG1HQUNQUCxDQUFBQSxlQUNJLG9JQUNBLEdBQUM7NEJBRVQ7O3dCQUdEL0IsYUFBQUEsV0FBQUEsR0FDQyxxQkFBQ29CLE1BQUFBOzRCQUFHbUIsV0FBVTs0QkFBZ0JKLE9BQU8xQixPQUFPVyxFQUFFO3NDQUMzQ3BCOzZCQUVEO3NDQUNKLHFCQUFDa0MsT0FBQUE7NEJBQUlDLE9BQU8xQixPQUFPa0IsSUFBSTtzQ0FDckIsb0NBQUNELE1BQUFBO2dDQUFHUyxPQUFPMUIsT0FBT2lCLEVBQUU7O29DQUNqQixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsS0FBSyxJQUFJakMsYUFDbkJpQyxRQUVBLFdBRkFBLEdBRUE7OzRDQUFFOzRDQUN3RDs0Q0FDdkRPLFFBQVEsSUFBSSxDQUFDUixLQUFLLENBQUMvQixRQUFRLEtBQzFCLFdBRDBCLEdBQzFCOztvREFBRTtvREFBZSxJQUFJLENBQUMrQixLQUFLLENBQUMvQixRQUFROzs7NENBQ25DOzRDQUFJOzs7b0NBR1Q7Ozs7Ozs7O0lBT2Q7QUFDRjtBQTNFcUJQLE1BQ1orQyxXQUFBQSxHQUFjO0FBREYvQyxNQUdaZ0QsZUFBQUEsR0FBa0I5QztBQUhORixNQUlaaUQsbUJBQUFBLEdBQXNCL0MiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9zcmMvcGFnZXMvX2Vycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgSGVhZCBmcm9tICcuLi9zaGFyZWQvbGliL2hlYWQnXG5pbXBvcnQgdHlwZSB7IE5leHRQYWdlQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5cbmNvbnN0IHN0YXR1c0NvZGVzOiB7IFtjb2RlOiBudW1iZXJdOiBzdHJpbmcgfSA9IHtcbiAgNDAwOiAnQmFkIFJlcXVlc3QnLFxuICA0MDQ6ICdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyxcbiAgNDA1OiAnTWV0aG9kIE5vdCBBbGxvd2VkJyxcbiAgNTAwOiAnSW50ZXJuYWwgU2VydmVyIEVycm9yJyxcbn1cblxuZXhwb3J0IHR5cGUgRXJyb3JQcm9wcyA9IHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyXG4gIGhvc3RuYW1lPzogc3RyaW5nXG4gIHRpdGxlPzogc3RyaW5nXG4gIHdpdGhEYXJrTW9kZT86IGJvb2xlYW5cbn1cblxuZnVuY3Rpb24gX2dldEluaXRpYWxQcm9wcyh7XG4gIHJlcSxcbiAgcmVzLFxuICBlcnIsXG59OiBOZXh0UGFnZUNvbnRleHQpOiBQcm9taXNlPEVycm9yUHJvcHM+IHwgRXJyb3JQcm9wcyB7XG4gIGNvbnN0IHN0YXR1c0NvZGUgPVxuICAgIHJlcyAmJiByZXMuc3RhdHVzQ29kZSA/IHJlcy5zdGF0dXNDb2RlIDogZXJyID8gZXJyLnN0YXR1c0NvZGUhIDogNDA0XG5cbiAgbGV0IGhvc3RuYW1lXG5cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWVcbiAgfSBlbHNlIGlmIChyZXEpIHtcbiAgICBjb25zdCB7IGdldFJlcXVlc3RNZXRhIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vc2VydmVyL3JlcXVlc3QtbWV0YScpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL3NlcnZlci9yZXF1ZXN0LW1ldGEnKVxuXG4gICAgY29uc3QgaW5pdFVybCA9IGdldFJlcXVlc3RNZXRhKHJlcSwgJ2luaXRVUkwnKVxuICAgIGlmIChpbml0VXJsKSB7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGluaXRVcmwpXG4gICAgICBob3N0bmFtZSA9IHVybC5ob3N0bmFtZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHN0YXR1c0NvZGUsIGhvc3RuYW1lIH1cbn1cblxuY29uc3Qgc3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCBSZWFjdC5DU1NQcm9wZXJ0aWVzPiA9IHtcbiAgZXJyb3I6IHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvYmxvYi9tYWluL21vZGVybi1ub3JtYWxpemUuY3NzI0wzOC1MNTJcbiAgICBmb250RmFtaWx5OlxuICAgICAgJ3N5c3RlbS11aSxcIlNlZ29lIFVJXCIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCInLFxuICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIH0sXG4gIGRlc2M6IHtcbiAgICBsaW5lSGVpZ2h0OiAnNDhweCcsXG4gIH0sXG4gIGgxOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgbWFyZ2luOiAnMCAyMHB4IDAgMCcsXG4gICAgcGFkZGluZ1JpZ2h0OiAyMyxcbiAgICBmb250U2l6ZTogMjQsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICB9LFxuICBoMjoge1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBmb250V2VpZ2h0OiA0MDAsXG4gICAgbGluZUhlaWdodDogJzI4cHgnLFxuICB9LFxuICB3cmFwOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gIH0sXG59XG5cbi8qKlxuICogYEVycm9yYCBjb21wb25lbnQgdXNlZCBmb3IgaGFuZGxpbmcgZXJyb3JzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFcnJvcjxQID0ge30+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFAgJiBFcnJvclByb3BzPiB7XG4gIHN0YXRpYyBkaXNwbGF5TmFtZSA9ICdFcnJvclBhZ2UnXG5cbiAgc3RhdGljIGdldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHNcbiAgc3RhdGljIG9yaWdHZXRJbml0aWFsUHJvcHMgPSBfZ2V0SW5pdGlhbFByb3BzXG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgc3RhdHVzQ29kZSwgd2l0aERhcmtNb2RlID0gdHJ1ZSB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHRpdGxlID1cbiAgICAgIHRoaXMucHJvcHMudGl0bGUgfHxcbiAgICAgIHN0YXR1c0NvZGVzW3N0YXR1c0NvZGVdIHx8XG4gICAgICAnQW4gdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQnXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmVycm9yfT5cbiAgICAgICAgPEhlYWQ+XG4gICAgICAgICAgPHRpdGxlPlxuICAgICAgICAgICAge3N0YXR1c0NvZGVcbiAgICAgICAgICAgICAgPyBgJHtzdGF0dXNDb2RlfTogJHt0aXRsZX1gXG4gICAgICAgICAgICAgIDogJ0FwcGxpY2F0aW9uIGVycm9yOiBhIGNsaWVudC1zaWRlIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQnfVxuICAgICAgICAgIDwvdGl0bGU+XG4gICAgICAgIDwvSGVhZD5cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmRlc2N9PlxuICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgLyogQ1NTIG1pbmlmaWVkIGZyb21cbiAgICAgICAgICAgICAgICBib2R5IHsgbWFyZ2luOiAwOyBjb2xvcjogIzAwMDsgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgLjMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICR7XG4gICAgICAgICAgICAgICAgICB3aXRoRGFya01vZGVcbiAgICAgICAgICAgICAgICAgICAgPyBgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgICAgICAgICAgYm9keSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiAjMDAwOyB9XG4gICAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjMpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1gXG4gICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5e2NvbG9yOiMwMDA7YmFja2dyb3VuZDojZmZmO21hcmdpbjowfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwuMyl9JHtcbiAgICAgICAgICAgICAgICB3aXRoRGFya01vZGVcbiAgICAgICAgICAgICAgICAgID8gJ0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwMH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpfX0nXG4gICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuXG4gICAgICAgICAge3N0YXR1c0NvZGUgPyAoXG4gICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwibmV4dC1lcnJvci1oMVwiIHN0eWxlPXtzdHlsZXMuaDF9PlxuICAgICAgICAgICAgICB7c3RhdHVzQ29kZX1cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLndyYXB9PlxuICAgICAgICAgICAgPGgyIHN0eWxlPXtzdHlsZXMuaDJ9PlxuICAgICAgICAgICAgICB7dGhpcy5wcm9wcy50aXRsZSB8fCBzdGF0dXNDb2RlID8gKFxuICAgICAgICAgICAgICAgIHRpdGxlXG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uIGVycm9yOiBhIGNsaWVudC1zaWRlIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWR7JyAnfVxuICAgICAgICAgICAgICAgICAge0Jvb2xlYW4odGhpcy5wcm9wcy5ob3N0bmFtZSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8PndoaWxlIGxvYWRpbmcge3RoaXMucHJvcHMuaG9zdG5hbWV9PC8+XG4gICAgICAgICAgICAgICAgICApfXsnICd9XG4gICAgICAgICAgICAgICAgICAoc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24pXG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIC5cbiAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iXSwibmFtZXMiOlsiRXJyb3IiLCJzdGF0dXNDb2RlcyIsIl9nZXRJbml0aWFsUHJvcHMiLCJyZXEiLCJyZXMiLCJlcnIiLCJzdGF0dXNDb2RlIiwiaG9zdG5hbWUiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImdldFJlcXVlc3RNZXRhIiwicmVxdWlyZSIsImluaXRVcmwiLCJ1cmwiLCJVUkwiLCJzdHlsZXMiLCJlcnJvciIsImZvbnRGYW1pbHkiLCJoZWlnaHQiLCJ0ZXh0QWxpZ24iLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImRlc2MiLCJsaW5lSGVpZ2h0IiwiaDEiLCJtYXJnaW4iLCJwYWRkaW5nUmlnaHQiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwiaDIiLCJ3cmFwIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJ3aXRoRGFya01vZGUiLCJwcm9wcyIsInRpdGxlIiwiZGl2Iiwic3R5bGUiLCJIZWFkIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJjbGFzc05hbWUiLCJCb29sZWFuIiwiZGlzcGxheU5hbWUiLCJnZXRJbml0aWFsUHJvcHMiLCJvcmlnR2V0SW5pdGlhbFByb3BzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/pages/_error.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/interop-default.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Interop between \"export default\" and \"module.exports\".\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9pbnRlcm9wLWRlZmF1bHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlcm9wIGJldHdlZW4gXCJleHBvcnQgZGVmYXVsdFwiIGFuZCBcIm1vZHVsZS5leHBvcnRzXCIuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpbnRlcm9wRGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW50ZXJvcERlZmF1bHQ7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpbnRlcm9wRGVmYXVsdChtb2QpIHtcbiAgICByZXR1cm4gbW9kLmRlZmF1bHQgfHwgbW9kO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnRlcm9wLWRlZmF1bHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/server/base-http/helpers.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isNodeNextRequest: function() {\n return isNodeNextRequest;\n },\n isNodeNextResponse: function() {\n return isNodeNextResponse;\n },\n isWebNextRequest: function() {\n return isWebNextRequest;\n },\n isWebNextResponse: function() {\n return isWebNextResponse;\n }\n});\nconst isWebNextRequest = (req)=>\"nodejs\" === 'edge';\nconst isWebNextResponse = (res)=>\"nodejs\" === 'edge';\nconst isNodeNextRequest = (req)=>\"nodejs\" !== 'edge';\nconst isNodeNextResponse = (res)=>\"nodejs\" !== 'edge';\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Jhc2UtaHR0cC9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxnQ0FBZ0MsUUFBd0I7QUFDeEQsaUNBQWlDLFFBQXdCO0FBQ3pELGlDQUFpQyxRQUF3QjtBQUN6RCxrQ0FBa0MsUUFBd0I7O0FBRTFEIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Jhc2UtaHR0cC9oZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNOb2RlTmV4dFJlcXVlc3Q6IG51bGwsXG4gICAgaXNOb2RlTmV4dFJlc3BvbnNlOiBudWxsLFxuICAgIGlzV2ViTmV4dFJlcXVlc3Q6IG51bGwsXG4gICAgaXNXZWJOZXh0UmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNOb2RlTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNOb2RlTmV4dFJlcXVlc3Q7XG4gICAgfSxcbiAgICBpc05vZGVOZXh0UmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNOb2RlTmV4dFJlc3BvbnNlO1xuICAgIH0sXG4gICAgaXNXZWJOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1dlYk5leHRSZXF1ZXN0O1xuICAgIH0sXG4gICAgaXNXZWJOZXh0UmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNXZWJOZXh0UmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBpc1dlYk5leHRSZXF1ZXN0ID0gKHJlcSk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnO1xuY29uc3QgaXNXZWJOZXh0UmVzcG9uc2UgPSAocmVzKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSc7XG5jb25zdCBpc05vZGVOZXh0UmVxdWVzdCA9IChyZXEpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJztcbmNvbnN0IGlzTm9kZU5leHRSZXNwb25zZSA9IChyZXMpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/server/client-component-renderer-logger.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0;\nlet clientComponentLoadTimes = 0;\nlet clientComponentLoadCount = 0;\nfunction wrapClientComponentLoader(ComponentMod) {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__;\n }\n return {\n require: (...args)=>{\n const startTime = performance.now();\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime;\n }\n try {\n clientComponentLoadCount += 1;\n return ComponentMod.__next_app__.require(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\n },\n loadChunk: (...args)=>{\n const startTime = performance.now();\n const result = ComponentMod.__next_app__.loadChunk(...args);\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(()=>{\n clientComponentLoadTimes += performance.now() - startTime;\n });\n return result;\n }\n };\n}\nfunction getClientComponentLoaderMetrics(options = {}) {\n const metrics = clientComponentLoadStart === 0 ? undefined : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount\n };\n if (options.reset) {\n clientComponentLoadStart = 0;\n clientComponentLoadTimes = 0;\n clientComponentLoadCount = 0;\n }\n return metrics;\n}\n\n//# sourceMappingURL=client-component-renderer-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvY2xpZW50LWNvbXBvbmVudC1yZW5kZXJlci1sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzOiBudWxsLFxuICAgIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXI6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzO1xuICAgIH0sXG4gICAgd3JhcENsaWVudENvbXBvbmVudExvYWRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyO1xuICAgIH1cbn0pO1xuLy8gQ29tYmluZWQgbG9hZCB0aW1lcyBmb3IgbG9hZGluZyBjbGllbnQgY29tcG9uZW50c1xubGV0IGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9IDA7XG5sZXQgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzID0gMDtcbmxldCBjbGllbnRDb21wb25lbnRMb2FkQ291bnQgPSAwO1xuZnVuY3Rpb24gd3JhcENsaWVudENvbXBvbmVudExvYWRlcihDb21wb25lbnRNb2QpIHtcbiAgICBpZiAoISgncGVyZm9ybWFuY2UnIGluIGdsb2JhbFRoaXMpKSB7XG4gICAgICAgIHJldHVybiBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICByZXF1aXJlOiAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICAgICAgaWYgKGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9IHN0YXJ0VGltZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZENvdW50ICs9IDE7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbXBvbmVudE1vZC5fX25leHRfYXBwX18ucmVxdWlyZSguLi5hcmdzKTtcbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgKz0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRDaHVuazogKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IENvbXBvbmVudE1vZC5fX25leHRfYXBwX18ubG9hZENodW5rKC4uLmFyZ3MpO1xuICAgICAgICAgICAgLy8gQXZvaWQgd3JhcHBpbmcgYGxvYWRDaHVua2AncyByZXN1bHQgaW4gYW4gZXh0cmEgcHJvbWlzZSBpbiBjYXNlIHNvbWV0aGluZyBsaWtlIFJlYWN0IGRlcGVuZHMgb24gaXRzIGlkZW50aXR5LlxuICAgICAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGtub3cgd2hlbiBpdCdzIHNldHRsZWQuXG4gICAgICAgICAgICByZXN1bHQuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyArPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgIH07XG59XG5mdW5jdGlvbiBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzKG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IG1ldHJpY3MgPSBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPT09IDAgPyB1bmRlZmluZWQgOiB7XG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRTdGFydCxcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzLFxuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkQ291bnRcbiAgICB9O1xuICAgIGlmIChvcHRpb25zLnJlc2V0KSB7XG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9IDA7XG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyA9IDA7XG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRDb3VudCA9IDA7XG4gICAgfVxuICAgIHJldHVybiBtZXRyaWNzO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/server/get-page-files.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getPageFiles\", ({\n enumerable: true,\n get: function() {\n return getPageFiles;\n }\n}));\nconst _denormalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/denormalize-page-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\");\nconst _normalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/normalize-page-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\");\nfunction getPageFiles(buildManifest, page) {\n const normalizedPage = (0, _denormalizepagepath.denormalizePagePath)((0, _normalizepagepath.normalizePagePath)(page));\n let files = buildManifest.pages[normalizedPage];\n if (!files) {\n console.warn(`Could not find files for ${normalizedPage} in .next/build-manifest.json`);\n return [];\n }\n return files;\n}\n\n//# sourceMappingURL=get-page-files.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2dldC1wYWdlLWZpbGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkJBQTZCLG1CQUFPLENBQUMsOElBQStDO0FBQ3BGLDJCQUEyQixtQkFBTyxDQUFDLDBJQUE2QztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCxnQkFBZ0I7QUFDakU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvZ2V0LXBhZ2UtZmlsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRQYWdlRmlsZXNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhZ2VGaWxlcztcbiAgICB9XG59KTtcbmNvbnN0IF9kZW5vcm1hbGl6ZXBhZ2VwYXRoID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aFwiKTtcbmNvbnN0IF9ub3JtYWxpemVwYWdlcGF0aCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGFnZS1wYXRoXCIpO1xuZnVuY3Rpb24gZ2V0UGFnZUZpbGVzKGJ1aWxkTWFuaWZlc3QsIHBhZ2UpIHtcbiAgICBjb25zdCBub3JtYWxpemVkUGFnZSA9ICgwLCBfZGVub3JtYWxpemVwYWdlcGF0aC5kZW5vcm1hbGl6ZVBhZ2VQYXRoKSgoMCwgX25vcm1hbGl6ZXBhZ2VwYXRoLm5vcm1hbGl6ZVBhZ2VQYXRoKShwYWdlKSk7XG4gICAgbGV0IGZpbGVzID0gYnVpbGRNYW5pZmVzdC5wYWdlc1tub3JtYWxpemVkUGFnZV07XG4gICAgaWYgKCFmaWxlcykge1xuICAgICAgICBjb25zb2xlLndhcm4oYENvdWxkIG5vdCBmaW5kIGZpbGVzIGZvciAke25vcm1hbGl6ZWRQYWdlfSBpbiAubmV4dC9idWlsZC1tYW5pZmVzdC5qc29uYCk7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGVzO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtcGFnZS1maWxlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js": /*!*****************************************************!*\ !*** ./node_modules/next/dist/server/htmlescape.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ESCAPE_REGEX: function() {\n return ESCAPE_REGEX;\n },\n htmlEscapeJsonString: function() {\n return htmlEscapeJsonString;\n }\n});\nconst ESCAPE_LOOKUP = {\n '&': '\\\\u0026',\n '>': '\\\\u003e',\n '<': '\\\\u003c',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction htmlEscapeJsonString(str) {\n return str.replace(ESCAPE_REGEX, (match)=>ESCAPE_LOOKUP[match]);\n}\n\n//# sourceMappingURL=htmlescape.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2h0bWxlc2NhcGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvaHRtbGVzY2FwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIHV0aWxpdHkgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3plcnRvc2gvaHRtbGVzY2FwZVxuLy8gTGljZW5zZTogaHR0cHM6Ly9naXRodWIuY29tL3plcnRvc2gvaHRtbGVzY2FwZS9ibG9iLzA1MjdjYTcxNTZhNTI0ZDI1NjEwMWJiMzEwYTlmOTcwZjYzMDc4YWQvTElDRU5TRVxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBFU0NBUEVfUkVHRVg6IG51bGwsXG4gICAgaHRtbEVzY2FwZUpzb25TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgRVNDQVBFX1JFR0VYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEVTQ0FQRV9SRUdFWDtcbiAgICB9LFxuICAgIGh0bWxFc2NhcGVKc29uU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxFc2NhcGVKc29uU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgRVNDQVBFX0xPT0tVUCA9IHtcbiAgICAnJic6ICdcXFxcdTAwMjYnLFxuICAgICc+JzogJ1xcXFx1MDAzZScsXG4gICAgJzwnOiAnXFxcXHUwMDNjJyxcbiAgICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuICAgICdcXHUyMDI5JzogJ1xcXFx1MjAyOSdcbn07XG5jb25zdCBFU0NBUEVfUkVHRVggPSAvWyY+PFxcdTIwMjhcXHUyMDI5XS9nO1xuZnVuY3Rpb24gaHRtbEVzY2FwZUpzb25TdHJpbmcoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKEVTQ0FQRV9SRUdFWCwgKG1hdGNoKT0+RVNDQVBFX0xPT0tVUFttYXRjaF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sZXNjYXBlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/server/instrumentation/utils.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRevalidateReason\", ({\n enumerable: true,\n get: function() {\n return getRevalidateReason;\n }\n}));\nfunction getRevalidateReason(params) {\n if (params.isOnDemandRevalidate) {\n return 'on-demand';\n }\n if (params.isRevalidate) {\n return 'stale';\n }\n return undefined;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2luc3RydW1lbnRhdGlvbi91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHVEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9pbnN0cnVtZW50YXRpb24vdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRSZXZhbGlkYXRlUmVhc29uXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRSZXZhbGlkYXRlUmVhc29uO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0UmV2YWxpZGF0ZVJlYXNvbihwYXJhbXMpIHtcbiAgICBpZiAocGFyYW1zLmlzT25EZW1hbmRSZXZhbGlkYXRlKSB7XG4gICAgICAgIHJldHVybiAnb24tZGVtYW5kJztcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5pc1JldmFsaWRhdGUpIHtcbiAgICAgICAgcmV0dXJuICdzdGFsZSc7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/server/lib/cache-control.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCacheControlHeader\", ({\n enumerable: true,\n get: function() {\n return getCacheControlHeader;\n }\n}));\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction getCacheControlHeader({ revalidate, expire }) {\n const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - revalidate}` : '';\n if (revalidate === 0) {\n return 'private, no-cache, no-store, max-age=0, must-revalidate';\n } else if (typeof revalidate === 'number') {\n return `s-maxage=${revalidate}${swrHeader}`;\n }\n return `s-maxage=${_constants.CACHE_ONE_YEAR}${swrHeader}`;\n}\n\n//# sourceMappingURL=cache-control.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9jYWNoZS1jb250cm9sLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseURBQXdEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELGlDQUFpQyxvQkFBb0I7QUFDckQsa0lBQWtJLG9CQUFvQjtBQUN0SjtBQUNBO0FBQ0EsTUFBTTtBQUNOLDJCQUEyQixXQUFXLEVBQUUsVUFBVTtBQUNsRDtBQUNBLHVCQUF1QiwwQkFBMEIsRUFBRSxVQUFVO0FBQzdEOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9jYWNoZS1jb250cm9sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0Q2FjaGVDb250cm9sSGVhZGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRDYWNoZUNvbnRyb2xIZWFkZXI7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiBnZXRDYWNoZUNvbnRyb2xIZWFkZXIoeyByZXZhbGlkYXRlLCBleHBpcmUgfSkge1xuICAgIGNvbnN0IHN3ckhlYWRlciA9IHR5cGVvZiByZXZhbGlkYXRlID09PSAnbnVtYmVyJyAmJiBleHBpcmUgIT09IHVuZGVmaW5lZCAmJiByZXZhbGlkYXRlIDwgZXhwaXJlID8gYCwgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZT0ke2V4cGlyZSAtIHJldmFsaWRhdGV9YCA6ICcnO1xuICAgIGlmIChyZXZhbGlkYXRlID09PSAwKSB7XG4gICAgICAgIHJldHVybiAncHJpdmF0ZSwgbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZSc7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmV2YWxpZGF0ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIGBzLW1heGFnZT0ke3JldmFsaWRhdGV9JHtzd3JIZWFkZXJ9YDtcbiAgICB9XG4gICAgcmV0dXJuIGBzLW1heGFnZT0ke19jb25zdGFudHMuQ0FDSEVfT05FX1lFQVJ9JHtzd3JIZWFkZXJ9YDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2FjaGUtY29udHJvbC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/server/lib/etag.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fnv1a52: function() {\n return fnv1a52;\n },\n generateETag: function() {\n return generateETag;\n }\n});\nconst fnv1a52 = (str)=>{\n const len = str.length;\n let i = 0, t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n while(i < len){\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = t3 + (t2 >>> 16) & 65535;\n v2 = t2 & 65535;\n }\n return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4);\n};\nconst generateETag = (payload, weak = false)=>{\n const prefix = weak ? 'W/\"' : '\"';\n return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"';\n};\n\n//# sourceMappingURL=etag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9ldGFnLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9ldGFnLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRk5WLTFhIEhhc2ggaW1wbGVtZW50YXRpb25cbiAqIEBhdXRob3IgVHJhdmlzIFdlYmIgKHRqd2ViYikgPG1lQHRyYXZpc3dlYmIuY29tPlxuICpcbiAqIFBvcnRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS90andlYmIvZm52LXBsdXMvYmxvYi9tYXN0ZXIvaW5kZXguanNcbiAqXG4gKiBTaW1wbGlmaWVkLCBvcHRpbWl6ZWQgYW5kIGFkZCBtb2RpZmllZCBmb3IgNTIgYml0LCB3aGljaCBwcm92aWRlcyBhIGxhcmdlciBoYXNoIHNwYWNlXG4gKiBhbmQgc3RpbGwgbWFraW5nIHVzZSBvZiBKYXZhc2NyaXB0J3MgNTMtYml0IGludGVnZXIgc3BhY2UuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmbnYxYTUyOiBudWxsLFxuICAgIGdlbmVyYXRlRVRhZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmbnYxYTUyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZudjFhNTI7XG4gICAgfSxcbiAgICBnZW5lcmF0ZUVUYWc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdGVFVGFnO1xuICAgIH1cbn0pO1xuY29uc3QgZm52MWE1MiA9IChzdHIpPT57XG4gICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aDtcbiAgICBsZXQgaSA9IDAsIHQwID0gMCwgdjAgPSAweDIzMjUsIHQxID0gMCwgdjEgPSAweDg0MjIsIHQyID0gMCwgdjIgPSAweDljZTQsIHQzID0gMCwgdjMgPSAweGNiZjI7XG4gICAgd2hpbGUoaSA8IGxlbil7XG4gICAgICAgIHYwIF49IHN0ci5jaGFyQ29kZUF0KGkrKyk7XG4gICAgICAgIHQwID0gdjAgKiA0MzU7XG4gICAgICAgIHQxID0gdjEgKiA0MzU7XG4gICAgICAgIHQyID0gdjIgKiA0MzU7XG4gICAgICAgIHQzID0gdjMgKiA0MzU7XG4gICAgICAgIHQyICs9IHYwIDw8IDg7XG4gICAgICAgIHQzICs9IHYxIDw8IDg7XG4gICAgICAgIHQxICs9IHQwID4+PiAxNjtcbiAgICAgICAgdjAgPSB0MCAmIDY1NTM1O1xuICAgICAgICB0MiArPSB0MSA+Pj4gMTY7XG4gICAgICAgIHYxID0gdDEgJiA2NTUzNTtcbiAgICAgICAgdjMgPSB0MyArICh0MiA+Pj4gMTYpICYgNjU1MzU7XG4gICAgICAgIHYyID0gdDIgJiA2NTUzNTtcbiAgICB9XG4gICAgcmV0dXJuICh2MyAmIDE1KSAqIDI4MTQ3NDk3NjcxMDY1NiArIHYyICogNDI5NDk2NzI5NiArIHYxICogNjU1MzYgKyAodjAgXiB2MyA+PiA0KTtcbn07XG5jb25zdCBnZW5lcmF0ZUVUYWcgPSAocGF5bG9hZCwgd2VhayA9IGZhbHNlKT0+e1xuICAgIGNvbnN0IHByZWZpeCA9IHdlYWsgPyAnVy9cIicgOiAnXCInO1xuICAgIHJldHVybiBwcmVmaXggKyBmbnYxYTUyKHBheWxvYWQpLnRvU3RyaW5nKDM2KSArIHBheWxvYWQubGVuZ3RoLnRvU3RyaW5nKDM2KSArICdcIic7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ldGFnLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/server/lib/trace/constants.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQTRDO0FBQzVDLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FlTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHlCQUF5QjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHlCQUF5QjtBQUMxQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHNCQUFzQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsaUJBQWlCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0JBQW9CO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLENBQUMsaUJBQWlCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLENBQUMsZUFBZTtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdDQUFnQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsMEJBQTBCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRhaW5zIHByZWRlZmluZWQgY29uc3RhbnRzIGZvciB0aGUgdHJhY2Ugc3BhbiBuYW1lIGluIG5leHQvc2VydmVyLlxuICpcbiAqIEN1cnJlbnRseSwgbmV4dC9zZXJ2ZXIvdHJhY2VyIGlzIGludGVybmFsIGltcGxlbWVudGF0aW9uIG9ubHkgZm9yIHRyYWNraW5nXG4gKiBuZXh0LmpzJ3MgaW1wbGVtZW50YXRpb24gb25seSB3aXRoIGtub3duIHNwYW4gbmFtZXMgZGVmaW5lZCBoZXJlLlxuICoqLyAvLyBlc2xpbnQgdHlwZXNjcmlwdCBoYXMgYSBidWcgd2l0aCBUUyBlbnVtc1xuLyogZXNsaW50LWRpc2FibGUgbm8tc2hhZG93ICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQXBwUmVuZGVyU3BhbjogbnVsbCxcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuOiBudWxsLFxuICAgIEJhc2VTZXJ2ZXJTcGFuOiBudWxsLFxuICAgIExvYWRDb21wb25lbnRzU3BhbjogbnVsbCxcbiAgICBMb2dTcGFuQWxsb3dMaXN0OiBudWxsLFxuICAgIE1pZGRsZXdhcmVTcGFuOiBudWxsLFxuICAgIE5leHROb2RlU2VydmVyU3BhbjogbnVsbCxcbiAgICBOZXh0U2VydmVyU3BhbjogbnVsbCxcbiAgICBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q6IG51bGwsXG4gICAgTm9kZVNwYW46IG51bGwsXG4gICAgUmVuZGVyU3BhbjogbnVsbCxcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuOiBudWxsLFxuICAgIFJvdXRlclNwYW46IG51bGwsXG4gICAgU3RhcnRTZXJ2ZXJTcGFuOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFwcFJlbmRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwUmVuZGVyU3BhbjtcbiAgICB9LFxuICAgIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjtcbiAgICB9LFxuICAgIEJhc2VTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJhc2VTZXJ2ZXJTcGFuO1xuICAgIH0sXG4gICAgTG9hZENvbXBvbmVudHNTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIExvYWRDb21wb25lbnRzU3BhbjtcbiAgICB9LFxuICAgIExvZ1NwYW5BbGxvd0xpc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTG9nU3BhbkFsbG93TGlzdDtcbiAgICB9LFxuICAgIE1pZGRsZXdhcmVTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1pZGRsZXdhcmVTcGFuO1xuICAgIH0sXG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHROb2RlU2VydmVyU3BhbjtcbiAgICB9LFxuICAgIE5leHRTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRTZXJ2ZXJTcGFuO1xuICAgIH0sXG4gICAgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDtcbiAgICB9LFxuICAgIE5vZGVTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5vZGVTcGFuO1xuICAgIH0sXG4gICAgUmVuZGVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW5kZXJTcGFuO1xuICAgIH0sXG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNvbHZlTWV0YWRhdGFTcGFuO1xuICAgIH0sXG4gICAgUm91dGVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSb3V0ZXJTcGFuO1xuICAgIH0sXG4gICAgU3RhcnRTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFN0YXJ0U2VydmVyU3BhbjtcbiAgICB9XG59KTtcbnZhciBCYXNlU2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQmFzZVNlcnZlclNwYW4pIHtcbiAgICBCYXNlU2VydmVyU3BhbltcImhhbmRsZVJlcXVlc3RcIl0gPSBcIkJhc2VTZXJ2ZXIuaGFuZGxlUmVxdWVzdFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicnVuXCJdID0gXCJCYXNlU2VydmVyLnJ1blwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicGlwZVwiXSA9IFwiQmFzZVNlcnZlci5waXBlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJnZXRTdGF0aWNIVE1MXCJdID0gXCJCYXNlU2VydmVyLmdldFN0YXRpY0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50c1wiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9SZXNwb25zZVwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9IVE1MXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yVG9IVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyNDA0XCI7XG4gICAgcmV0dXJuIEJhc2VTZXJ2ZXJTcGFuO1xufShCYXNlU2VydmVyU3BhbiB8fCB7fSk7XG52YXIgTG9hZENvbXBvbmVudHNTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihMb2FkQ29tcG9uZW50c1NwYW4pIHtcbiAgICBMb2FkQ29tcG9uZW50c1NwYW5bXCJsb2FkRGVmYXVsdEVycm9yQ29tcG9uZW50c1wiXSA9IFwiTG9hZENvbXBvbmVudHMubG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIjtcbiAgICBMb2FkQ29tcG9uZW50c1NwYW5bXCJsb2FkQ29tcG9uZW50c1wiXSA9IFwiTG9hZENvbXBvbmVudHMubG9hZENvbXBvbmVudHNcIjtcbiAgICByZXR1cm4gTG9hZENvbXBvbmVudHNTcGFuO1xufShMb2FkQ29tcG9uZW50c1NwYW4gfHwge30pO1xudmFyIE5leHRTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOZXh0U2VydmVyU3Bhbikge1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0UmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFNlcnZlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFNlcnZlclJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFNlcnZlclJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJjcmVhdGVTZXJ2ZXJcIl0gPSBcImNyZWF0ZVNlcnZlci5jcmVhdGVTZXJ2ZXJcIjtcbiAgICByZXR1cm4gTmV4dFNlcnZlclNwYW47XG59KE5leHRTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBOZXh0Tm9kZVNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5leHROb2RlU2VydmVyU3Bhbikge1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNvbXByZXNzaW9uXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jb21wcmVzc2lvblwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEJ1aWxkSWRcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldEJ1aWxkSWRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjcmVhdGVDb21wb25lbnRUcmVlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldExheW91dE9yUGFnZU1vZHVsZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVTdGF0aWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlU3RhdGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVGc1N0YXRpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVGc1N0YXRpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlUHVibGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZVB1YmxpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlSW1hZ2VSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlSW1hZ2VSb3V0ZXMucm91dGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJzZW5kUmVuZGVyUmVzdWx0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5zZW5kUmVuZGVyUmVzdWx0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicHJveHlSZXF1ZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5wcm94eVJlcXVlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJydW5BcGlcIl0gPSBcIk5leHROb2RlU2VydmVyLnJ1bkFwaVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVySFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVySFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImltYWdlT3B0aW1pemVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5pbWFnZU9wdGltaXplclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFBhZ2VQYXRoXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRQYWdlUGF0aFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFJvdXRlc01hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRSb3V0ZXNNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImZpbmRQYWdlQ29tcG9uZW50c1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0Rm9udE1hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRGb250TWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJDb21wb25lbnRNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0U2VydmVyQ29tcG9uZW50TWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0UmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJUb0hUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlclRvSFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJFcnJvclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9IVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlcjQwNFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyNDA0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wic3RhcnRSZXNwb25zZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuc3RhcnRSZXNwb25zZVwiO1xuICAgIC8vIG5lc3RlZCBpbm5lciBzcGFuLCBkb2VzIG5vdCByZXF1aXJlIHBhcmVudCBzY29wZSBuYW1lXG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicm91dGVcIl0gPSBcInJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wib25Qcm94eVJlcVwiXSA9IFwib25Qcm94eVJlcVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImFwaVJlc29sdmVyXCJdID0gXCJhcGlSZXNvbHZlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImludGVybmFsRmV0Y2hcIl0gPSBcImludGVybmFsRmV0Y2hcIjtcbiAgICByZXR1cm4gTmV4dE5vZGVTZXJ2ZXJTcGFuO1xufShOZXh0Tm9kZVNlcnZlclNwYW4gfHwge30pO1xudmFyIFN0YXJ0U2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oU3RhcnRTZXJ2ZXJTcGFuKSB7XG4gICAgU3RhcnRTZXJ2ZXJTcGFuW1wic3RhcnRTZXJ2ZXJcIl0gPSBcInN0YXJ0U2VydmVyLnN0YXJ0U2VydmVyXCI7XG4gICAgcmV0dXJuIFN0YXJ0U2VydmVyU3Bhbjtcbn0oU3RhcnRTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBSZW5kZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSZW5kZXJTcGFuKSB7XG4gICAgUmVuZGVyU3BhbltcImdldFNlcnZlclNpZGVQcm9wc1wiXSA9IFwiUmVuZGVyLmdldFNlcnZlclNpZGVQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJnZXRTdGF0aWNQcm9wc1wiXSA9IFwiUmVuZGVyLmdldFN0YXRpY1Byb3BzXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlclRvU3RyaW5nXCJdID0gXCJSZW5kZXIucmVuZGVyVG9TdHJpbmdcIjtcbiAgICBSZW5kZXJTcGFuW1wicmVuZGVyRG9jdW1lbnRcIl0gPSBcIlJlbmRlci5yZW5kZXJEb2N1bWVudFwiO1xuICAgIFJlbmRlclNwYW5bXCJjcmVhdGVCb2R5UmVzdWx0XCJdID0gXCJSZW5kZXIuY3JlYXRlQm9keVJlc3VsdFwiO1xuICAgIHJldHVybiBSZW5kZXJTcGFuO1xufShSZW5kZXJTcGFuIHx8IHt9KTtcbnZhciBBcHBSZW5kZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihBcHBSZW5kZXJTcGFuKSB7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvU3RyaW5nXCJdID0gXCJBcHBSZW5kZXIucmVuZGVyVG9TdHJpbmdcIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wicmVuZGVyVG9SZWFkYWJsZVN0cmVhbVwiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvUmVhZGFibGVTdHJlYW1cIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wiZ2V0Qm9keVJlc3VsdFwiXSA9IFwiQXBwUmVuZGVyLmdldEJvZHlSZXN1bHRcIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wiZmV0Y2hcIl0gPSBcIkFwcFJlbmRlci5mZXRjaFwiO1xuICAgIHJldHVybiBBcHBSZW5kZXJTcGFuO1xufShBcHBSZW5kZXJTcGFuIHx8IHt9KTtcbnZhciBSb3V0ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSb3V0ZXJTcGFuKSB7XG4gICAgUm91dGVyU3BhbltcImV4ZWN1dGVSb3V0ZVwiXSA9IFwiUm91dGVyLmV4ZWN1dGVSb3V0ZVwiO1xuICAgIHJldHVybiBSb3V0ZXJTcGFuO1xufShSb3V0ZXJTcGFuIHx8IHt9KTtcbnZhciBOb2RlU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTm9kZVNwYW4pIHtcbiAgICBOb2RlU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIk5vZGUucnVuSGFuZGxlclwiO1xuICAgIHJldHVybiBOb2RlU3Bhbjtcbn0oTm9kZVNwYW4gfHwge30pO1xudmFyIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4pIHtcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuW1wicnVuSGFuZGxlclwiXSA9IFwiQXBwUm91dGVSb3V0ZUhhbmRsZXJzLnJ1bkhhbmRsZXJcIjtcbiAgICByZXR1cm4gQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3Bhbjtcbn0oQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbiB8fCB7fSk7XG52YXIgUmVzb2x2ZU1ldGFkYXRhU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUmVzb2x2ZU1ldGFkYXRhU3Bhbikge1xuICAgIFJlc29sdmVNZXRhZGF0YVNwYW5bXCJnZW5lcmF0ZU1ldGFkYXRhXCJdID0gXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiO1xuICAgIFJlc29sdmVNZXRhZGF0YVNwYW5bXCJnZW5lcmF0ZVZpZXdwb3J0XCJdID0gXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVWaWV3cG9ydFwiO1xuICAgIHJldHVybiBSZXNvbHZlTWV0YWRhdGFTcGFuO1xufShSZXNvbHZlTWV0YWRhdGFTcGFuIHx8IHt9KTtcbnZhciBNaWRkbGV3YXJlU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTWlkZGxld2FyZVNwYW4pIHtcbiAgICBNaWRkbGV3YXJlU3BhbltcImV4ZWN1dGVcIl0gPSBcIk1pZGRsZXdhcmUuZXhlY3V0ZVwiO1xuICAgIHJldHVybiBNaWRkbGV3YXJlU3Bhbjtcbn0oTWlkZGxld2FyZVNwYW4gfHwge30pO1xuY29uc3QgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0ID0gW1xuICAgIFwiTWlkZGxld2FyZS5leGVjdXRlXCIsXG4gICAgXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIixcbiAgICBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIixcbiAgICBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiLFxuICAgIFwiQXBwUmVuZGVyLmZldGNoXCIsXG4gICAgXCJBcHBSZW5kZXIuZ2V0Qm9keVJlc3VsdFwiLFxuICAgIFwiUmVuZGVyLnJlbmRlckRvY3VtZW50XCIsXG4gICAgXCJOb2RlLnJ1bkhhbmRsZXJcIixcbiAgICBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCIsXG4gICAgXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNyZWF0ZUNvbXBvbmVudFRyZWVcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5zdGFydFJlc3BvbnNlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jbGllbnRDb21wb25lbnRMb2FkaW5nXCJcbl07XG5jb25zdCBMb2dTcGFuQWxsb3dMaXN0ID0gW1xuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jbGllbnRDb21wb25lbnRMb2FkaW5nXCJcbl07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/server/lib/trace/tracer.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = __webpack_require__(/*! ./constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _isthenable = __webpack_require__(/*! ../../../shared/lib/is-thenable */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js\");\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (false) {} else {\n try {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n } catch (err) {\n api = __webpack_require__(/*! next/dist/compiled/@opentelemetry/api */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n span.setAttribute('error.type', error.name);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId');\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer('next.js', '0.0.1');\n }\n getContext() {\n return context;\n }\n getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === 'function' ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if ((0, _isthenable.isThenable)(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== '1') {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsNEZBQWE7QUFDeEMsb0JBQW9CLG1CQUFPLENBQUMsNEdBQWlDO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNGO0FBQ0EsY0FBYyxtQkFBTyxDQUFDLDBHQUFvQjtBQUMxQyxNQUFNO0FBQ04sY0FBYyxtQkFBTyxDQUFDLDZIQUF1QztBQUM3RDtBQUNBO0FBQ0EsUUFBUSxzRUFBc0U7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGNBQWM7QUFDOUI7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUNBQXlDLFFBQVEsb0ZBQW9GO0FBQ3BMO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0EsdUdBQXVHO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4RUFBOEU7QUFDOUU7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL3RyYWNlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEJ1YmJsZWRFcnJvcjogbnVsbCxcbiAgICBTcGFuS2luZDogbnVsbCxcbiAgICBTcGFuU3RhdHVzQ29kZTogbnVsbCxcbiAgICBnZXRUcmFjZXI6IG51bGwsXG4gICAgaXNCdWJibGVkRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQnViYmxlZEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJ1YmJsZWRFcnJvcjtcbiAgICB9LFxuICAgIFNwYW5LaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNwYW5LaW5kO1xuICAgIH0sXG4gICAgU3BhblN0YXR1c0NvZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU3BhblN0YXR1c0NvZGU7XG4gICAgfSxcbiAgICBnZXRUcmFjZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0VHJhY2VyO1xuICAgIH0sXG4gICAgaXNCdWJibGVkRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNCdWJibGVkRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4vY29uc3RhbnRzXCIpO1xuY29uc3QgX2lzdGhlbmFibGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9pcy10aGVuYWJsZVwiKTtcbmxldCBhcGk7XG4vLyB3ZSB3YW50IHRvIGFsbG93IHVzZXJzIHRvIHVzZSB0aGVpciBvd24gdmVyc2lvbiBvZiBAb3BlbnRlbGVtZXRyeS9hcGkgaWYgdGhleVxuLy8gd2FudCB0bywgc28gd2UgdHJ5IHRvIHJlcXVpcmUgaXQgZmlyc3QsIGFuZCBpZiBpdCBmYWlscyB3ZSBmYWxsIGJhY2sgdG8gdGhlXG4vLyB2ZXJzaW9uIHRoYXQgaXMgYnVuZGxlZCB3aXRoIE5leHQuanNcbi8vIHRoaXMgaXMgYmVjYXVzZSBAb3BlbnRlbGVtZXRyeS9hcGkgaGFzIHRvIGJlIHN5bmNlZCB3aXRoIHRoZSB2ZXJzaW9uIG9mXG4vLyBAb3BlbnRlbGVtZXRyeS90cmFjaW5nIHRoYXQgaXMgdXNlZCwgYW5kIHdlIGRvbid0IHdhbnQgdG8gZm9yY2UgdXNlcnMgdG8gdXNlXG4vLyB0aGUgdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzLlxuLy8gdGhlIEFQSSBpcyB+c3RhYmxlLCBzbyB0aGlzIHNob3VsZCBiZSBmaW5lXG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBhcGkgPSByZXF1aXJlKCdAb3BlbnRlbGVtZXRyeS9hcGknKTtcbn0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgICAgYXBpID0gcmVxdWlyZSgnQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGknKTtcbiAgICB9XG59XG5jb25zdCB7IGNvbnRleHQsIHByb3BhZ2F0aW9uLCB0cmFjZSwgU3BhblN0YXR1c0NvZGUsIFNwYW5LaW5kLCBST09UX0NPTlRFWFQgfSA9IGFwaTtcbmNsYXNzIEJ1YmJsZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihidWJibGUsIHJlc3VsdCl7XG4gICAgICAgIHN1cGVyKCksIHRoaXMuYnViYmxlID0gYnViYmxlLCB0aGlzLnJlc3VsdCA9IHJlc3VsdDtcbiAgICB9XG59XG5mdW5jdGlvbiBpc0J1YmJsZWRFcnJvcihlcnJvcikge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnIHx8IGVycm9yID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgQnViYmxlZEVycm9yO1xufVxuY29uc3QgY2xvc2VTcGFuV2l0aEVycm9yID0gKHNwYW4sIGVycm9yKT0+e1xuICAgIGlmIChpc0J1YmJsZWRFcnJvcihlcnJvcikgJiYgZXJyb3IuYnViYmxlKSB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCduZXh0LmJ1YmJsZScsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IpO1xuICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2Vycm9yLnR5cGUnLCBlcnJvci5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgICBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yID09IG51bGwgPyB2b2lkIDAgOiBlcnJvci5tZXNzYWdlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzcGFuLmVuZCgpO1xufTtcbi8qKiB3ZSB1c2UgdGhpcyBtYXAgdG8gcHJvcGFnYXRlIGF0dHJpYnV0ZXMgZnJvbSBuZXN0ZWQgc3BhbnMgdG8gdGhlIHRvcCBzcGFuICovIGNvbnN0IHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlID0gbmV3IE1hcCgpO1xuY29uc3Qgcm9vdFNwYW5JZEtleSA9IGFwaS5jcmVhdGVDb250ZXh0S2V5KCduZXh0LnJvb3RTcGFuSWQnKTtcbmxldCBsYXN0U3BhbklkID0gMDtcbmNvbnN0IGdldFNwYW5JZCA9ICgpPT5sYXN0U3BhbklkKys7XG5jb25zdCBjbGllbnRUcmFjZURhdGFTZXR0ZXIgPSB7XG4gICAgc2V0IChjYXJyaWVyLCBrZXksIHZhbHVlKSB7XG4gICAgICAgIGNhcnJpZXIucHVzaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICB9XG59O1xuY2xhc3MgTmV4dFRyYWNlckltcGwge1xuICAgIC8qKlxuICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIHRvIHRoZSB0cmFjZSB3aXRoIGNvbmZpZ3VyZWQgbmFtZS5cbiAgICogU2luY2Ugd3JhcCAvIHRyYWNlIGNhbiBiZSBkZWZpbmVkIGluIGFueSBwbGFjZSBwcmlvciB0byBhY3R1YWwgdHJhY2Ugc3Vic2NyaWJlciBpbml0aWFsaXphdGlvbixcbiAgICogVGhpcyBzaG91bGQgYmUgbGF6aWx5IGV2YWx1YXRlZC5cbiAgICovIGdldFRyYWNlckluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0VHJhY2VyKCduZXh0LmpzJywgJzAuMC4xJyk7XG4gICAgfVxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgIH1cbiAgICBnZXRUcmFjZVByb3BhZ2F0aW9uRGF0YSgpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBbXTtcbiAgICAgICAgcHJvcGFnYXRpb24uaW5qZWN0KGFjdGl2ZUNvbnRleHQsIGVudHJpZXMsIGNsaWVudFRyYWNlRGF0YVNldHRlcik7XG4gICAgICAgIHJldHVybiBlbnRyaWVzO1xuICAgIH1cbiAgICBnZXRBY3RpdmVTY29wZVNwYW4oKSB7XG4gICAgICAgIHJldHVybiB0cmFjZS5nZXRTcGFuKGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQuYWN0aXZlKCkpO1xuICAgIH1cbiAgICB3aXRoUHJvcGFnYXRlZENvbnRleHQoY2FycmllciwgZm4sIGdldHRlcikge1xuICAgICAgICBjb25zdCBhY3RpdmVDb250ZXh0ID0gY29udGV4dC5hY3RpdmUoKTtcbiAgICAgICAgaWYgKHRyYWNlLmdldFNwYW5Db250ZXh0KGFjdGl2ZUNvbnRleHQpKSB7XG4gICAgICAgICAgICAvLyBBY3RpdmUgc3BhbiBpcyBhbHJlYWR5IHNldCwgdG9vIGxhdGUgdG8gcHJvcGFnYXRlLlxuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVtb3RlQ29udGV4dCA9IHByb3BhZ2F0aW9uLmV4dHJhY3QoYWN0aXZlQ29udGV4dCwgY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQud2l0aChyZW1vdGVDb250ZXh0LCBmbik7XG4gICAgfVxuICAgIHRyYWNlKC4uLmFyZ3MpIHtcbiAgICAgICAgdmFyIF90cmFjZV9nZXRTcGFuQ29udGV4dDtcbiAgICAgICAgY29uc3QgW3R5cGUsIGZuT3JPcHRpb25zLCBmbk9yRW1wdHldID0gYXJncztcbiAgICAgICAgLy8gY29lcmNlIG9wdGlvbnMgZm9ybSBvdmVybG9hZFxuICAgICAgICBjb25zdCB7IGZuLCBvcHRpb25zIH0gPSB0eXBlb2YgZm5Pck9wdGlvbnMgPT09ICdmdW5jdGlvbicgPyB7XG4gICAgICAgICAgICBmbjogZm5Pck9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zOiB7fVxuICAgICAgICB9IDoge1xuICAgICAgICAgICAgZm46IGZuT3JFbXB0eSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAuLi5mbk9yT3B0aW9uc1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzcGFuTmFtZSA9IG9wdGlvbnMuc3Bhbk5hbWUgPz8gdHlwZTtcbiAgICAgICAgaWYgKCFfY29uc3RhbnRzLk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyh0eXBlKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gJzEnIHx8IG9wdGlvbnMuaGlkZVNwYW4pIHtcbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRyeWluZyB0byBnZXQgYWN0aXZlIHNjb3BlZCBzcGFuIHRvIGFzc2lnbiBwYXJlbnQuIElmIG9wdGlvbiBzcGVjaWZpZXMgcGFyZW50IHNwYW4gbWFudWFsbHksIHdpbGwgdHJ5IHRvIHVzZSBpdC5cbiAgICAgICAgbGV0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgbGV0IGlzUm9vdFNwYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFzcGFuQ29udGV4dCkge1xuICAgICAgICAgICAgc3BhbkNvbnRleHQgPSAoY29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogY29udGV4dC5hY3RpdmUoKSkgPz8gUk9PVF9DT05URVhUO1xuICAgICAgICAgICAgaXNSb290U3BhbiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoKF90cmFjZV9nZXRTcGFuQ29udGV4dCA9IHRyYWNlLmdldFNwYW5Db250ZXh0KHNwYW5Db250ZXh0KSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90cmFjZV9nZXRTcGFuQ29udGV4dC5pc1JlbW90ZSkge1xuICAgICAgICAgICAgaXNSb290U3BhbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3BhbklkID0gZ2V0U3BhbklkKCk7XG4gICAgICAgIG9wdGlvbnMuYXR0cmlidXRlcyA9IHtcbiAgICAgICAgICAgICduZXh0LnNwYW5fbmFtZSc6IHNwYW5OYW1lLFxuICAgICAgICAgICAgJ25leHQuc3Bhbl90eXBlJzogdHlwZSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXR0cmlidXRlc1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY29udGV4dC53aXRoKHNwYW5Db250ZXh0LnNldFZhbHVlKHJvb3RTcGFuSWRLZXksIHNwYW5JZCksICgpPT50aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRBY3RpdmVTcGFuKHNwYW5OYW1lLCBvcHRpb25zLCAoc3Bhbik9PntcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSAncGVyZm9ybWFuY2UnIGluIGdsb2JhbFRoaXMgJiYgJ21lYXN1cmUnIGluIHBlcmZvcm1hbmNlID8gZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZS5ub3coKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBjb25zdCBvbkNsZWFudXAgPSAoKT0+e1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5kZWxldGUoc3BhbklkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYICYmIF9jb25zdGFudHMuTG9nU3BhbkFsbG93TGlzdC5pbmNsdWRlcyh0eXBlIHx8ICcnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZShgJHtwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYfTpuZXh0LSR7KHR5cGUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJykucmVwbGFjZSgvW0EtWl0vZywgKG1hdGNoKT0+Jy0nICsgbWF0Y2gudG9Mb3dlckNhc2UoKSl9YCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBwZXJmb3JtYW5jZS5ub3coKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChpc1Jvb3RTcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLnNldChzcGFuSWQsIG5ldyBNYXAoT2JqZWN0LmVudHJpZXMob3B0aW9ucy5hdHRyaWJ1dGVzID8/IHt9KSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuKHNwYW4sIChlcnIpPT5jbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4oc3Bhbik7XG4gICAgICAgICAgICAgICAgICAgIGlmICgoMCwgX2lzdGhlbmFibGUuaXNUaGVuYWJsZSkocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBlcnJvciBtYWtlIHN1cmUgaXQgdGhyb3dzXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgdG8gcGFzcyBkb3duIHRoZSBwcm9taXNlIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBjb3VsZCBiZSByZWFjdCBzdHJlYW0gcmVzcG9uc2Ugd2l0aCBlcnJvciB7IGVycm9yLCBzdHJlYW0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkob25DbGVhbnVwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIHdyYXAoLi4uYXJncykge1xuICAgICAgICBjb25zdCB0cmFjZXIgPSB0aGlzO1xuICAgICAgICBjb25zdCBbbmFtZSwgb3B0aW9ucywgZm5dID0gYXJncy5sZW5ndGggPT09IDMgPyBhcmdzIDogW1xuICAgICAgICAgICAgYXJnc1swXSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgYXJnc1sxXVxuICAgICAgICBdO1xuICAgICAgICBpZiAoIV9jb25zdGFudHMuTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0LmluY2x1ZGVzKG5hbWUpICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9WRVJCT1NFICE9PSAnMScpIHtcbiAgICAgICAgICAgIHJldHVybiBmbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgb3B0aW9uc09iaiA9IG9wdGlvbnM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPYmogPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uc09iaiA9IG9wdGlvbnNPYmouYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhc3RBcmdJZCA9IGFyZ3VtZW50cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgY29uc3QgY2IgPSBhcmd1bWVudHNbbGFzdEFyZ0lkXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY29wZUJvdW5kQ2IgPSB0cmFjZXIuZ2V0Q29udGV4dCgpLmJpbmQoY29udGV4dC5hY3RpdmUoKSwgY2IpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKF9zcGFuLCBkb25lKT0+e1xuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbbGFzdEFyZ0lkXSA9IGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9PSBudWxsID8gdm9pZCAwIDogZG9uZShlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlQm91bmRDYi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlci50cmFjZShuYW1lLCBvcHRpb25zT2JqLCAoKT0+Zm4uYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN0YXJ0U3BhbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2VySW5zdGFuY2UoKS5zdGFydFNwYW4odHlwZSwgb3B0aW9ucywgc3BhbkNvbnRleHQpO1xuICAgIH1cbiAgICBnZXRTcGFuQ29udGV4dChwYXJlbnRTcGFuKSB7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gcGFyZW50U3BhbiA/IHRyYWNlLnNldFNwYW4oY29udGV4dC5hY3RpdmUoKSwgcGFyZW50U3BhbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBzcGFuQ29udGV4dDtcbiAgICB9XG4gICAgZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzKCkge1xuICAgICAgICBjb25zdCBzcGFuSWQgPSBjb250ZXh0LmFjdGl2ZSgpLmdldFZhbHVlKHJvb3RTcGFuSWRLZXkpO1xuICAgICAgICByZXR1cm4gcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZ2V0KHNwYW5JZCk7XG4gICAgfVxuICAgIHNldFJvb3RTcGFuQXR0cmlidXRlKGtleSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3Qgc3BhbklkID0gY29udGV4dC5hY3RpdmUoKS5nZXRWYWx1ZShyb290U3BhbklkS2V5KTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmdldChzcGFuSWQpO1xuICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgYXR0cmlidXRlcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5jb25zdCBnZXRUcmFjZXIgPSAoKCk9PntcbiAgICBjb25zdCB0cmFjZXIgPSBuZXcgTmV4dFRyYWNlckltcGwoKTtcbiAgICByZXR1cm4gKCk9PnRyYWNlcjtcbn0pKCk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyYWNlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/server/lib/trace/utils.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getTracedMetadata\", ({\n enumerable: true,\n get: function() {\n return getTracedMetadata;\n }\n}));\nfunction getTracedMetadata(traceData, clientTraceMetadata) {\n if (!clientTraceMetadata) return undefined;\n return traceData.filter(({ key })=>clientTraceMetadata.includes(key));\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHFEQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQSwrQkFBK0IsS0FBSztBQUNwQzs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRUcmFjZWRNZXRhZGF0YVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0VHJhY2VkTWV0YWRhdGE7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBnZXRUcmFjZWRNZXRhZGF0YSh0cmFjZURhdGEsIGNsaWVudFRyYWNlTWV0YWRhdGEpIHtcbiAgICBpZiAoIWNsaWVudFRyYWNlTWV0YWRhdGEpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRyYWNlRGF0YS5maWx0ZXIoKHsga2V5IH0pPT5jbGllbnRUcmFjZU1ldGFkYXRhLmluY2x1ZGVzKGtleSkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/pipe-readable.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isAbortError: function() {\n return isAbortError;\n },\n pipeToNodeResponse: function() {\n return pipeToNodeResponse;\n }\n});\nconst _nextrequest = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\");\nconst _detachedpromise = __webpack_require__(/*! ../lib/detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _tracer = __webpack_require__(/*! ./lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ./lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _clientcomponentrendererlogger = __webpack_require__(/*! ./client-component-renderer-logger */ \"(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js\");\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.ResponseAbortedName;\n}\nfunction createWriterFromResponse(res, waitUntilForEnd) {\n let started = false;\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new _detachedpromise.DetachedPromise();\n function onDrain() {\n drained.resolve();\n }\n res.on('drain', onDrain);\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', ()=>{\n res.off('drain', onDrain);\n drained.resolve();\n });\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new _detachedpromise.DetachedPromise();\n res.once('finish', ()=>{\n finished.resolve();\n });\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk)=>{\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true;\n if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\n }\n try {\n const ok = res.write(chunk);\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush();\n }\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise;\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new _detachedpromise.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw Object.defineProperty(new Error('failed to write chunk to response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E321\",\n enumerable: false,\n configurable: true\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nasync function pipeToNodeResponse(readable, res, waitUntilForEnd) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = (0, _nextrequest.createAbortController)(res);\n const writer = createWriterFromResponse(res, waitUntilForEnd);\n await readable.pipeTo(writer, {\n signal: controller.signal\n });\n } catch (err) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return;\n throw Object.defineProperty(new Error('failed to pipe response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E180\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3BpcGUtcmVhZGFibGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscUJBQXFCLG1CQUFPLENBQUMsZ0pBQTRDO0FBQ3pFLHlCQUF5QixtQkFBTyxDQUFDLGtHQUF5QjtBQUMxRCxnQkFBZ0IsbUJBQU8sQ0FBQyxnR0FBb0I7QUFDNUMsbUJBQW1CLG1CQUFPLENBQUMsc0dBQXVCO0FBQ2xELHVDQUF1QyxtQkFBTyxDQUFDLGdJQUFvQztBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5Q0FBeUM7QUFDeEY7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQkFBcUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3BpcGUtcmVhZGFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0Fib3J0RXJyb3I6IG51bGwsXG4gICAgcGlwZVRvTm9kZVJlc3BvbnNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzQWJvcnRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Fib3J0RXJyb3I7XG4gICAgfSxcbiAgICBwaXBlVG9Ob2RlUmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGlwZVRvTm9kZVJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX25leHRyZXF1ZXN0ID0gcmVxdWlyZShcIi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL25leHQtcmVxdWVzdFwiKTtcbmNvbnN0IF9kZXRhY2hlZHByb21pc2UgPSByZXF1aXJlKFwiLi4vbGliL2RldGFjaGVkLXByb21pc2VcIik7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4vbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi9saWIvdHJhY2UvY29uc3RhbnRzXCIpO1xuY29uc3QgX2NsaWVudGNvbXBvbmVudHJlbmRlcmVybG9nZ2VyID0gcmVxdWlyZShcIi4vY2xpZW50LWNvbXBvbmVudC1yZW5kZXJlci1sb2dnZXJcIik7XG5mdW5jdGlvbiBpc0Fib3J0RXJyb3IoZSkge1xuICAgIHJldHVybiAoZSA9PSBudWxsID8gdm9pZCAwIDogZS5uYW1lKSA9PT0gJ0Fib3J0RXJyb3InIHx8IChlID09IG51bGwgPyB2b2lkIDAgOiBlLm5hbWUpID09PSBfbmV4dHJlcXVlc3QuUmVzcG9uc2VBYm9ydGVkTmFtZTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVdyaXRlckZyb21SZXNwb25zZShyZXMsIHdhaXRVbnRpbEZvckVuZCkge1xuICAgIGxldCBzdGFydGVkID0gZmFsc2U7XG4gICAgLy8gQ3JlYXRlIGEgcHJvbWlzZSB0aGF0IHdpbGwgcmVzb2x2ZSBvbmNlIHRoZSByZXNwb25zZSBoYXMgZHJhaW5lZC4gU2VlXG4gICAgLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9zdHJlYW0uaHRtbCNzdHJlYW1fZXZlbnRfZHJhaW5cbiAgICBsZXQgZHJhaW5lZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgIGZ1bmN0aW9uIG9uRHJhaW4oKSB7XG4gICAgICAgIGRyYWluZWQucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXMub24oJ2RyYWluJywgb25EcmFpbik7XG4gICAgLy8gSWYgdGhlIGZpbmlzaCBldmVudCBmaXJlcywgaXQgbWVhbnMgd2Ugc2hvdWxkbid0IGJsb2NrIGFuZCB3YWl0IGZvciB0aGVcbiAgICAvLyBkcmFpbiBldmVudC5cbiAgICByZXMub25jZSgnY2xvc2UnLCAoKT0+e1xuICAgICAgICByZXMub2ZmKCdkcmFpbicsIG9uRHJhaW4pO1xuICAgICAgICBkcmFpbmVkLnJlc29sdmUoKTtcbiAgICB9KTtcbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIG9uY2UgdGhlIHJlc3BvbnNlIGhhcyBmaW5pc2hlZC4gU2VlXG4gICAgLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9odHRwLmh0bWwjZXZlbnQtZmluaXNoXzFcbiAgICBjb25zdCBmaW5pc2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgIHJlcy5vbmNlKCdmaW5pc2gnLCAoKT0+e1xuICAgICAgICBmaW5pc2hlZC5yZXNvbHZlKCk7XG4gICAgfSk7XG4gICAgLy8gQ3JlYXRlIGEgd3JpdGFibGUgc3RyZWFtIHRoYXQgd2lsbCB3cml0ZSB0byB0aGUgcmVzcG9uc2UuXG4gICAgcmV0dXJuIG5ldyBXcml0YWJsZVN0cmVhbSh7XG4gICAgICAgIHdyaXRlOiBhc3luYyAoY2h1bmspPT57XG4gICAgICAgICAgICAvLyBZb3UnZCB0aGluayB3ZSdkIHdhbnQgdG8gdXNlIGBzdGFydGAgaW5zdGVhZCBvZiBwbGFjaW5nIHRoaXMgaW4gYHdyaXRlYFxuICAgICAgICAgICAgLy8gYnV0IHRoaXMgZW5zdXJlcyB0aGF0IHdlIGRvbid0IGFjdHVhbGx5IGZsdXNoIHRoZSBoZWFkZXJzIHVudGlsIHdlJ3ZlXG4gICAgICAgICAgICAvLyBzdGFydGVkIHdyaXRpbmcgY2h1bmtzLlxuICAgICAgICAgICAgaWYgKCFzdGFydGVkKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKCdwZXJmb3JtYW5jZScgaW4gZ2xvYmFsVGhpcyAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1ldHJpY3MgPSAoMCwgX2NsaWVudGNvbXBvbmVudHJlbmRlcmVybG9nZ2VyLmdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3MpKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRyaWNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKGAke3Byb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVh9Om5leHQtY2xpZW50LWNvbXBvbmVudC1sb2FkaW5nYCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBtZXRyaWNzLmNsaWVudENvbXBvbmVudExvYWRTdGFydCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IG1ldHJpY3MuY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ICsgbWV0cmljcy5jbGllbnRDb21wb25lbnRMb2FkVGltZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlcy5mbHVzaEhlYWRlcnMoKTtcbiAgICAgICAgICAgICAgICAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoX2NvbnN0YW50cy5OZXh0Tm9kZVNlcnZlclNwYW4uc3RhcnRSZXNwb25zZSwge1xuICAgICAgICAgICAgICAgICAgICBzcGFuTmFtZTogJ3N0YXJ0IHJlc3BvbnNlJ1xuICAgICAgICAgICAgICAgIH0sICgpPT51bmRlZmluZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvayA9IHJlcy53cml0ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgLy8gQWRkZWQgYnkgdGhlIGBjb21wcmVzc2lvbmAgbWlkZGxld2FyZSwgdGhpcyBpcyBhIGZ1bmN0aW9uIHRoYXQgd2lsbFxuICAgICAgICAgICAgICAgIC8vIGZsdXNoIHRoZSBwYXJ0aWFsbHktY29tcHJlc3NlZCByZXNwb25zZSB0byB0aGUgY2xpZW50LlxuICAgICAgICAgICAgICAgIGlmICgnZmx1c2gnIGluIHJlcyAmJiB0eXBlb2YgcmVzLmZsdXNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5mbHVzaCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgd3JpdGUgcmV0dXJucyBmYWxzZSwgaXQgbWVhbnMgdGhlcmUncyBzb21lIGJhY2twcmVzc3VyZSwgc29cbiAgICAgICAgICAgICAgICAvLyB3YWl0IHVudGlsIGl0J3Mgc3RyZWFtZWQgYmVmb3JlIGNvbnRpbnVpbmcuXG4gICAgICAgICAgICAgICAgaWYgKCFvaykge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBkcmFpbmVkLnByb21pc2U7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBkcmFpbmVkIHByb21pc2Ugc28gdGhhdCB3ZSBjYW4gd2FpdCBmb3IgdGhlIG5leHQgZHJhaW4gZXZlbnQuXG4gICAgICAgICAgICAgICAgICAgIGRyYWluZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignZmFpbGVkIHRvIHdyaXRlIGNodW5rIHRvIHJlc3BvbnNlJywge1xuICAgICAgICAgICAgICAgICAgICBjYXVzZTogZXJyXG4gICAgICAgICAgICAgICAgfSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMzIxXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYWJvcnQ6IChlcnIpPT57XG4gICAgICAgICAgICBpZiAocmVzLndyaXRhYmxlRmluaXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIHJlcy5kZXN0cm95KGVycik7XG4gICAgICAgIH0sXG4gICAgICAgIGNsb3NlOiBhc3luYyAoKT0+e1xuICAgICAgICAgICAgLy8gaWYgYSB3YWl0VW50aWwgcHJvbWlzZSB3YXMgcGFzc2VkLCB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZVxuICAgICAgICAgICAgLy8gZW5kaW5nIHRoZSByZXNwb25zZS5cbiAgICAgICAgICAgIGlmICh3YWl0VW50aWxGb3JFbmQpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB3YWl0VW50aWxGb3JFbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVzLndyaXRhYmxlRmluaXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICAgIHJldHVybiBmaW5pc2hlZC5wcm9taXNlO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBwaXBlVG9Ob2RlUmVzcG9uc2UocmVhZGFibGUsIHJlcywgd2FpdFVudGlsRm9yRW5kKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGhhcyBhbHJlYWR5IGVycm9yZWQsIHRoZW4ganVzdCByZXR1cm4gbm93LlxuICAgICAgICBjb25zdCB7IGVycm9yZWQsIGRlc3Ryb3llZCB9ID0gcmVzO1xuICAgICAgICBpZiAoZXJyb3JlZCB8fCBkZXN0cm95ZWQpIHJldHVybjtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IEFib3J0Q29udHJvbGxlciBzbyB0aGF0IHdlIGNhbiBhYm9ydCB0aGUgcmVhZGFibGUgaWYgdGhlXG4gICAgICAgIC8vIGNsaWVudCBkaXNjb25uZWN0cy5cbiAgICAgICAgY29uc3QgY29udHJvbGxlciA9ICgwLCBfbmV4dHJlcXVlc3QuY3JlYXRlQWJvcnRDb250cm9sbGVyKShyZXMpO1xuICAgICAgICBjb25zdCB3cml0ZXIgPSBjcmVhdGVXcml0ZXJGcm9tUmVzcG9uc2UocmVzLCB3YWl0VW50aWxGb3JFbmQpO1xuICAgICAgICBhd2FpdCByZWFkYWJsZS5waXBlVG8od3JpdGVyLCB7XG4gICAgICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsXG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBJZiB0aGlzIGlzbid0IHJlbGF0ZWQgdG8gYW4gYWJvcnQgZXJyb3IsIHJlLXRocm93IGl0LlxuICAgICAgICBpZiAoaXNBYm9ydEVycm9yKGVycikpIHJldHVybjtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignZmFpbGVkIHRvIHBpcGUgcmVzcG9uc2UnLCB7XG4gICAgICAgICAgICBjYXVzZTogZXJyXG4gICAgICAgIH0pLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkUxODBcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGlwZS1yZWFkYWJsZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/render-result.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/render-result.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderResult;\n }\n}));\nconst _nodewebstreamshelper = __webpack_require__(/*! ./stream-utils/node-web-streams-helper */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _invarianterror = __webpack_require__(/*! ../shared/lib/invariant-error */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nclass RenderResult {\n static #_ = /**\n * A render result that represents an empty response. This is used to\n * represent a response that was not found or was already sent.\n */ this.EMPTY = new RenderResult(null, {\n metadata: {},\n contentType: null\n });\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @param contentType the content type of the response\n * @returns a new RenderResult instance\n */ static fromStatic(value, contentType) {\n return new RenderResult(value, {\n metadata: {},\n contentType\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== 'string';\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n // If the response is null, return an empty string. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return '';\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new _invarianterror.InvariantError('dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E732\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns a readable stream of the response.\n */ get readable() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n if (typeof this.response === 'string') {\n return (0, _nodewebstreamshelper.streamFromString)(this.response);\n }\n if (Buffer.isBuffer(this.response)) {\n return (0, _nodewebstreamshelper.streamFromBuffer)(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0, _nodewebstreamshelper.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Coerces the response to an array of streams. This will convert the response\n * to an array of streams if it is not already one.\n *\n * @returns An array of streams\n */ coerce() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return [];\n }\n if (typeof this.response === 'string') {\n return [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n return this.response;\n } else if (Buffer.isBuffer(this.response)) {\n return [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n return [\n this.response\n ];\n }\n }\n /**\n * Unshifts a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the start of the array. When this response is piped, all of the streams\n * will be piped one after the other.\n *\n * @param readable The new stream to unshift\n */ unshift(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the start of the array.\n this.response.unshift(readable);\n }\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ push(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the end of the array.\n this.response.push(readable);\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if ((0, _pipereadable.isAbortError)(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err);\n return;\n }\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err;\n }\n }\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */ async pipeToNodeResponse(res) {\n await (0, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n}\n\n//# sourceMappingURL=render-result.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlbmRlci1yZXN1bHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw4QkFBOEIsbUJBQU8sQ0FBQyx3SUFBd0M7QUFDOUUsc0JBQXNCLG1CQUFPLENBQUMsMEZBQWlCO0FBQy9DLHdCQUF3QixtQkFBTyxDQUFDLDhHQUErQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQSxTQUFTO0FBQ1Q7QUFDQSw0QkFBNEIsa0NBQWtDO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlbmRlci1yZXN1bHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW5kZXJSZXN1bHQ7XG4gICAgfVxufSk7XG5jb25zdCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIgPSByZXF1aXJlKFwiLi9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXJcIik7XG5jb25zdCBfcGlwZXJlYWRhYmxlID0gcmVxdWlyZShcIi4vcGlwZS1yZWFkYWJsZVwiKTtcbmNvbnN0IF9pbnZhcmlhbnRlcnJvciA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvclwiKTtcbmNsYXNzIFJlbmRlclJlc3VsdCB7XG4gICAgc3RhdGljICNfID0gLyoqXG4gICAqIEEgcmVuZGVyIHJlc3VsdCB0aGF0IHJlcHJlc2VudHMgYW4gZW1wdHkgcmVzcG9uc2UuIFRoaXMgaXMgdXNlZCB0b1xuICAgKiByZXByZXNlbnQgYSByZXNwb25zZSB0aGF0IHdhcyBub3QgZm91bmQgb3Igd2FzIGFscmVhZHkgc2VudC5cbiAgICovIHRoaXMuRU1QVFkgPSBuZXcgUmVuZGVyUmVzdWx0KG51bGwsIHtcbiAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICBjb250ZW50VHlwZTogbnVsbFxuICAgIH0pO1xuICAgIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFJlbmRlclJlc3VsdCBpbnN0YW5jZSBmcm9tIGEgc3RhdGljIHJlc3BvbnNlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIHN0YXRpYyByZXNwb25zZSB2YWx1ZVxuICAgKiBAcGFyYW0gY29udGVudFR5cGUgdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgcmVzcG9uc2VcbiAgICogQHJldHVybnMgYSBuZXcgUmVuZGVyUmVzdWx0IGluc3RhbmNlXG4gICAqLyBzdGF0aWMgZnJvbVN0YXRpYyh2YWx1ZSwgY29udGVudFR5cGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJSZXN1bHQodmFsdWUsIHtcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihyZXNwb25zZSwgeyBjb250ZW50VHlwZSwgd2FpdFVudGlsLCBtZXRhZGF0YSB9KXtcbiAgICAgICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgICAgICB0aGlzLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGU7XG4gICAgICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICAgICAgdGhpcy53YWl0VW50aWwgPSB3YWl0VW50aWw7XG4gICAgfVxuICAgIGFzc2lnbk1ldGFkYXRhKG1ldGFkYXRhKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZXRhZGF0YSwgbWV0YWRhdGEpO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSByZXNwb25zZSBpcyBudWxsLiBJdCBjYW4gYmUgbnVsbCBpZiB0aGUgcmVzcG9uc2Ugd2FzXG4gICAqIG5vdCBmb3VuZCBvciB3YXMgYWxyZWFkeSBzZW50LlxuICAgKi8gZ2V0IGlzTnVsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2UgPT09IG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSByZXNwb25zZSBpcyBhIHN0cmluZy4gSXQgY2FuIGJlIGEgc3RyaW5nIGlmIHRoZSBwYWdlXG4gICAqIHdhcyBwcmVyZW5kZXJlZC4gSWYgaXQncyBub3QsIHRoZW4gaXQgd2FzIGdlbmVyYXRlZCBkeW5hbWljYWxseS5cbiAgICovIGdldCBpc0R5bmFtaWMoKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5yZXNwb25zZSAhPT0gJ3N0cmluZyc7XG4gICAgfVxuICAgIHRvVW5jaHVua2VkU3RyaW5nKHN0cmVhbSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IHN0cmluZy4gVGhpcyBiZWhhdmlvciBpc1xuICAgICAgICAgICAgLy8gaW50ZW50aW9uYWwgYXMgd2UncmUgbm93IHByb3ZpZGluZyB0aGUgYFJlbmRlclJlc3VsdC5FTVBUWWAgdmFsdWUuXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignZHluYW1pYyByZXNwb25zZXMgY2Fubm90IGJlIHVuY2h1bmtlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzMyXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvU3RyaW5nKSh0aGlzLnJlYWRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgYSByZWFkYWJsZSBzdHJlYW0gb2YgdGhlIHJlc3BvbnNlLlxuICAgKi8gZ2V0IHJlYWRhYmxlKCkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBzdHJlYW0uIFRoaXMgYmVoYXZpb3IgaXNcbiAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgICAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21TdHJpbmcpKHRoaXMucmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21CdWZmZXIpKHRoaXMucmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBhbiBhcnJheSBvZiBzdHJlYW1zLCB0aGVuIGNoYWluIHRoZW0gdG9nZXRoZXIuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5jaGFpblN0cmVhbXMpKC4uLnRoaXMucmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICAgIH1cbiAgICAvKipcbiAgICogQ29lcmNlcyB0aGUgcmVzcG9uc2UgdG8gYW4gYXJyYXkgb2Ygc3RyZWFtcy4gVGhpcyB3aWxsIGNvbnZlcnQgdGhlIHJlc3BvbnNlXG4gICAqIHRvIGFuIGFycmF5IG9mIHN0cmVhbXMgaWYgaXQgaXMgbm90IGFscmVhZHkgb25lLlxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJlYW1zXG4gICAqLyBjb2VyY2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IHN0cmVhbS4gVGhpcyBiZWhhdmlvciBpc1xuICAgICAgICAgICAgLy8gaW50ZW50aW9uYWwgYXMgd2UncmUgbm93IHByb3ZpZGluZyB0aGUgYFJlbmRlclJlc3VsdC5FTVBUWWAgdmFsdWUuXG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21TdHJpbmcpKHRoaXMucmVzcG9uc2UpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICAgICAgICB9IGVsc2UgaWYgKEJ1ZmZlci5pc0J1ZmZlcih0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21CdWZmZXIpKHRoaXMucmVzcG9uc2UpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgKiBVbnNoaWZ0cyBhIG5ldyBzdHJlYW0gdG8gdGhlIHJlc3BvbnNlLiBUaGlzIHdpbGwgY29udmVydCB0aGUgcmVzcG9uc2UgdG8gYW5cbiAgICogYXJyYXkgb2Ygc3RyZWFtcyBpZiBpdCBpcyBub3QgYWxyZWFkeSBvbmUgYW5kIHdpbGwgYWRkIHRoZSBuZXcgc3RyZWFtIHRvXG4gICAqIHRoZSBzdGFydCBvZiB0aGUgYXJyYXkuIFdoZW4gdGhpcyByZXNwb25zZSBpcyBwaXBlZCwgYWxsIG9mIHRoZSBzdHJlYW1zXG4gICAqIHdpbGwgYmUgcGlwZWQgb25lIGFmdGVyIHRoZSBvdGhlci5cbiAgICpcbiAgICogQHBhcmFtIHJlYWRhYmxlIFRoZSBuZXcgc3RyZWFtIHRvIHVuc2hpZnRcbiAgICovIHVuc2hpZnQocmVhZGFibGUpIHtcbiAgICAgICAgLy8gQ29lcmNlIHRoZSByZXNwb25zZSB0byBhbiBhcnJheSBvZiBzdHJlYW1zLlxuICAgICAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy5jb2VyY2UoKTtcbiAgICAgICAgLy8gQWRkIHRoZSBuZXcgc3RyZWFtIHRvIHRoZSBzdGFydCBvZiB0aGUgYXJyYXkuXG4gICAgICAgIHRoaXMucmVzcG9uc2UudW5zaGlmdChyZWFkYWJsZSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDaGFpbnMgYSBuZXcgc3RyZWFtIHRvIHRoZSByZXNwb25zZS4gVGhpcyB3aWxsIGNvbnZlcnQgdGhlIHJlc3BvbnNlIHRvIGFuXG4gICAqIGFycmF5IG9mIHN0cmVhbXMgaWYgaXQgaXMgbm90IGFscmVhZHkgb25lIGFuZCB3aWxsIGFkZCB0aGUgbmV3IHN0cmVhbSB0b1xuICAgKiB0aGUgZW5kLiBXaGVuIHRoaXMgcmVzcG9uc2UgaXMgcGlwZWQsIGFsbCBvZiB0aGUgc3RyZWFtcyB3aWxsIGJlIHBpcGVkXG4gICAqIG9uZSBhZnRlciB0aGUgb3RoZXIuXG4gICAqXG4gICAqIEBwYXJhbSByZWFkYWJsZSBUaGUgbmV3IHN0cmVhbSB0byBjaGFpblxuICAgKi8gcHVzaChyZWFkYWJsZSkge1xuICAgICAgICAvLyBDb2VyY2UgdGhlIHJlc3BvbnNlIHRvIGFuIGFycmF5IG9mIHN0cmVhbXMuXG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSB0aGlzLmNvZXJjZSgpO1xuICAgICAgICAvLyBBZGQgdGhlIG5ldyBzdHJlYW0gdG8gdGhlIGVuZCBvZiB0aGUgYXJyYXkuXG4gICAgICAgIHRoaXMucmVzcG9uc2UucHVzaChyZWFkYWJsZSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQaXBlcyB0aGUgcmVzcG9uc2UgdG8gYSB3cml0YWJsZSBzdHJlYW0uIFRoaXMgd2lsbCBjbG9zZS9jYW5jZWwgdGhlXG4gICAqIHdyaXRhYmxlIHN0cmVhbSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC4gSWYgdGhpcyBkb2Vzbid0IHRocm93LCB0aGVuXG4gICAqIHRoZSB3cml0YWJsZSBzdHJlYW0gd2lsbCBiZSBjbG9zZWQgb3IgYWJvcnRlZC5cbiAgICpcbiAgICogQHBhcmFtIHdyaXRhYmxlIFdyaXRhYmxlIHN0cmVhbSB0byBwaXBlIHRoZSByZXNwb25zZSB0b1xuICAgKi8gYXN5bmMgcGlwZVRvKHdyaXRhYmxlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlYWRhYmxlLnBpcGVUbyh3cml0YWJsZSwge1xuICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gY2xvc2UgdGhlIHdyaXRhYmxlIHN0cmVhbSBvdXJzZWx2ZXMgc28gdGhhdCB3ZSBjYW4gd2FpdFxuICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgd2FpdFVudGlsIHByb21pc2UgdG8gcmVzb2x2ZSBiZWZvcmUgY2xvc2luZyBpdC4gSWYgYW4gZXJyb3JcbiAgICAgICAgICAgICAgICAvLyBpcyBlbmNvdW50ZXJlZCwgd2UnbGwgYWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBpZiB3ZSBzd2FsbG93ZWQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZXJyb3IuXG4gICAgICAgICAgICAgICAgcHJldmVudENsb3NlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgd2FpdFVudGlsIHByb21pc2UsIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlXG4gICAgICAgICAgICAvLyBjbG9zaW5nIHRoZSB3cml0YWJsZSBzdHJlYW0uXG4gICAgICAgICAgICBpZiAodGhpcy53YWl0VW50aWwpIGF3YWl0IHRoaXMud2FpdFVudGlsO1xuICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIHdyaXRhYmxlIHN0cmVhbS5cbiAgICAgICAgICAgIGF3YWl0IHdyaXRhYmxlLmNsb3NlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhbiBhYm9ydCBlcnJvciwgd2Ugc2hvdWxkIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gKGFzIHdlXG4gICAgICAgICAgICAvLyB0b29rIG93bmVyc2hpcCBvZiBpdCB3aGVuIHdlIHN0YXJ0ZWQgcGlwaW5nKS4gV2UgZG9uJ3QgbmVlZCB0byByZS10aHJvd1xuICAgICAgICAgICAgLy8gYmVjYXVzZSB3ZSBoYW5kbGVkIHRoZSBlcnJvci5cbiAgICAgICAgICAgIGlmICgoMCwgX3BpcGVyZWFkYWJsZS5pc0Fib3J0RXJyb3IpKGVycikpIHtcbiAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIGlmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkLlxuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRhYmxlLmFib3J0KGVycik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV2UncmUgbm90IGFib3J0aW5nIHRoZSB3cml0ZXIgaGVyZSBhcyB3aGVuIHRoaXMgbWV0aG9kIHRocm93cyBpdCdzIG5vdFxuICAgICAgICAgICAgLy8gY2xlYXIgYXMgdG8gaG93IHNvIHRoZSBjYWxsZXIgc2hvdWxkIGFzc3VtZSBpdCdzIHRoZWlyIHJlc3BvbnNpYmlsaXR5XG4gICAgICAgICAgICAvLyB0byBjbGVhbiB1cCB0aGUgd3JpdGVyLlxuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgKiBQaXBlcyB0aGUgcmVzcG9uc2UgdG8gYSBub2RlIHJlc3BvbnNlLiBUaGlzIHdpbGwgY2xvc2UvY2FuY2VsIHRoZSBub2RlXG4gICAqIHJlc3BvbnNlIGlmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzXG4gICAqLyBhc3luYyBwaXBlVG9Ob2RlUmVzcG9uc2UocmVzKSB7XG4gICAgICAgIGF3YWl0ICgwLCBfcGlwZXJlYWRhYmxlLnBpcGVUb05vZGVSZXNwb25zZSkodGhpcy5yZWFkYWJsZSwgcmVzLCB0aGlzLndhaXRVbnRpbCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZW5kZXItcmVzdWx0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/render-result.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/request-meta.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/request-meta.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/* eslint-disable no-redeclare */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\nconst NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta');\nfunction getRequestMeta(req, key) {\n const meta = req[NEXT_REQUEST_META] || {};\n return typeof key === 'string' ? meta[key] : meta;\n}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QtbWV0YS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxrQ0FBK0M7QUFDL0MsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QtbWV0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZWRlY2xhcmUgKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBORVhUX1JFUVVFU1RfTUVUQTogbnVsbCxcbiAgICBhZGRSZXF1ZXN0TWV0YTogbnVsbCxcbiAgICBnZXRSZXF1ZXN0TWV0YTogbnVsbCxcbiAgICByZW1vdmVSZXF1ZXN0TWV0YTogbnVsbCxcbiAgICBzZXRSZXF1ZXN0TWV0YTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBORVhUX1JFUVVFU1RfTUVUQTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1JFUVVFU1RfTUVUQTtcbiAgICB9LFxuICAgIGFkZFJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFkZFJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgZ2V0UmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICByZW1vdmVSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZW1vdmVSZXF1ZXN0TWV0YTtcbiAgICB9LFxuICAgIHNldFJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhO1xuICAgIH1cbn0pO1xuY29uc3QgTkVYVF9SRVFVRVNUX01FVEEgPSBTeW1ib2wuZm9yKCdOZXh0SW50ZXJuYWxSZXF1ZXN0TWV0YScpO1xuZnVuY3Rpb24gZ2V0UmVxdWVzdE1ldGEocmVxLCBrZXkpIHtcbiAgICBjb25zdCBtZXRhID0gcmVxW05FWFRfUkVRVUVTVF9NRVRBXSB8fCB7fTtcbiAgICByZXR1cm4gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBtZXRhW2tleV0gOiBtZXRhO1xufVxuZnVuY3Rpb24gc2V0UmVxdWVzdE1ldGEocmVxLCBtZXRhKSB7XG4gICAgcmVxW05FWFRfUkVRVUVTVF9NRVRBXSA9IG1ldGE7XG4gICAgcmV0dXJuIG1ldGE7XG59XG5mdW5jdGlvbiBhZGRSZXF1ZXN0TWV0YShyZXF1ZXN0LCBrZXksIHZhbHVlKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldFJlcXVlc3RNZXRhKHJlcXVlc3QpO1xuICAgIG1ldGFba2V5XSA9IHZhbHVlO1xuICAgIHJldHVybiBzZXRSZXF1ZXN0TWV0YShyZXF1ZXN0LCBtZXRhKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZVJlcXVlc3RNZXRhKHJlcXVlc3QsIGtleSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRSZXF1ZXN0TWV0YShyZXF1ZXN0KTtcbiAgICBkZWxldGUgbWV0YVtrZXldO1xuICAgIHJldHVybiBzZXRSZXF1ZXN0TWV0YShyZXF1ZXN0LCBtZXRhKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1tZXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return ResponseCache;\n }\n}));\n0 && 0;\nconst _batcher = __webpack_require__(/*! ../../lib/batcher */ \"(pages-dir-node)/./node_modules/next/dist/lib/batcher.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\");\n_export_star(__webpack_require__(/*! ./types */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\nclass ResponseCache {\n constructor(minimal_mode){\n this.batcher = _batcher.Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: _scheduler.scheduleOnNextTick\n });\n this.minimal_mode = minimal_mode;\n }\n async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, waitUntil } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, (cacheKey, resolve)=>{\n const prom = (async ()=>{\n var _this_previousCacheItem;\n // We keep the previous cache entry around to leverage when the\n // incremental cache is disabled in minimal mode.\n if (this.minimal_mode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === cacheKey && this.previousCacheItem.expiresAt > Date.now()) {\n return this.previousCacheItem.entry;\n }\n // Coerce the kindHint into a given kind for the incremental cache.\n const kind = (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind);\n let resolved = false;\n let cachedResponse = null;\n try {\n cachedResponse = !this.minimal_mode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n resolve(cachedResponse);\n resolved = true;\n if (!cachedResponse.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need\n // to update it yet.\n return null;\n }\n }\n const cacheEntry = await responseGenerator({\n hasResolved: resolved,\n previousCacheEntry: cachedResponse,\n isRevalidating: true\n });\n // If the cache entry couldn't be generated, we don't want to cache\n // the result.\n if (!cacheEntry) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n const resolveValue = await (0, _utils.fromResponseCacheEntry)({\n ...cacheEntry,\n isMiss: !cachedResponse\n });\n if (!resolveValue) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n // For on-demand revalidate wait to resolve until cache is set.\n // Otherwise resolve now.\n if (!isOnDemandRevalidate && !resolved) {\n resolve(resolveValue);\n resolved = true;\n }\n // We want to persist the result only if it has a cache control value\n // defined.\n if (resolveValue.cacheControl) {\n if (this.minimal_mode) {\n this.previousCacheItem = {\n key: cacheKey,\n entry: resolveValue,\n expiresAt: Date.now() + 1000\n };\n } else {\n await incrementalCache.set(key, resolveValue.value, {\n cacheControl: resolveValue.cacheControl,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (cachedResponse == null ? void 0 : cachedResponse.cacheControl) {\n const newRevalidate = Math.min(Math.max(cachedResponse.cacheControl.revalidate || 3, 3), 30);\n const newExpire = cachedResponse.cacheControl.expire === undefined ? undefined : Math.max(newRevalidate + 3, cachedResponse.cacheControl.expire);\n await incrementalCache.set(key, cachedResponse.value, {\n cacheControl: {\n revalidate: newRevalidate,\n expire: newExpire\n },\n isRoutePPREnabled,\n isFallback\n });\n }\n // While revalidating in the background we can't reject as we already\n // resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err;\n }\n })();\n // we need to ensure background revalidates are\n // passed to waitUntil\n if (waitUntil) {\n waitUntil(prom);\n }\n return prom;\n });\n return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsS0FBSyxDQUE0QjtBQUNqQyxpQkFBaUIsbUJBQU8sQ0FBQyxtRkFBbUI7QUFDNUMsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELGVBQWUsbUJBQU8sQ0FBQyx5RkFBUztBQUNoQyxhQUFhLG1CQUFPLENBQUMseUZBQVM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQiwyQkFBMkIsTUFBTSxJQUFJLEdBQUcsaUNBQWlDO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGdCQUFnQiwyR0FBMkc7QUFDM0g7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGUvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUNhY2hlO1xuICAgIH1cbn0pO1xuMCAmJiBfX2V4cG9ydChyZXF1aXJlKFwiLi90eXBlc1wiKSk7XG5jb25zdCBfYmF0Y2hlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvYmF0Y2hlclwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuX2V4cG9ydF9zdGFyKHJlcXVpcmUoXCIuL3R5cGVzXCIpLCBleHBvcnRzKTtcbmZ1bmN0aW9uIF9leHBvcnRfc3Rhcihmcm9tLCB0bykge1xuICAgIE9iamVjdC5rZXlzKGZyb20pLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgICAgICBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0bywgaykpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0bywgaywge1xuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb21ba107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZnJvbTtcbn1cbmNsYXNzIFJlc3BvbnNlQ2FjaGUge1xuICAgIGNvbnN0cnVjdG9yKG1pbmltYWxfbW9kZSl7XG4gICAgICAgIHRoaXMuYmF0Y2hlciA9IF9iYXRjaGVyLkJhdGNoZXIuY3JlYXRlKHtcbiAgICAgICAgICAgIC8vIEVuc3VyZSBvbi1kZW1hbmQgcmV2YWxpZGF0ZSBkb2Vzbid0IGJsb2NrIG5vcm1hbCByZXF1ZXN0cywgaXQgc2hvdWxkIGJlXG4gICAgICAgICAgICAvLyBzYWZlIHRvIHJ1biBhbiBvbi1kZW1hbmQgcmV2YWxpZGF0ZSBmb3IgdGhlIHNhbWUga2V5IGFzIGEgbm9ybWFsIHJlcXVlc3QuXG4gICAgICAgICAgICBjYWNoZUtleUZuOiAoeyBrZXksIGlzT25EZW1hbmRSZXZhbGlkYXRlIH0pPT5gJHtrZXl9LSR7aXNPbkRlbWFuZFJldmFsaWRhdGUgPyAnMScgOiAnMCd9YCxcbiAgICAgICAgICAgIC8vIFdlIHdhaXQgdG8gZG8gYW55IGFzeW5jIHdvcmsgdW50aWwgYWZ0ZXIgd2UndmUgYWRkZWQgb3VyIHByb21pc2UgdG9cbiAgICAgICAgICAgIC8vIGBwZW5kaW5nUmVzcG9uc2VzYCB0byBlbnN1cmUgdGhhdCBhbnkgYW55IG90aGVyIGNhbGxzIHdpbGwgcmV1c2UgdGhlXG4gICAgICAgICAgICAvLyBzYW1lIHByb21pc2UgdW50aWwgd2UndmUgZnVsbHkgZmluaXNoZWQgb3VyIHdvcmsuXG4gICAgICAgICAgICBzY2hlZHVsZXJGbjogX3NjaGVkdWxlci5zY2hlZHVsZU9uTmV4dFRpY2tcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWluaW1hbF9tb2RlID0gbWluaW1hbF9tb2RlO1xuICAgIH1cbiAgICBhc3luYyBnZXQoa2V5LCByZXNwb25zZUdlbmVyYXRvciwgY29udGV4dCkge1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBrZXkgZm9yIHRoZSBjYWNoZSwgd2UgY2FuJ3QgcG9zc2libHkgbG9vayB0aGlzIHVwIGluIHRoZVxuICAgICAgICAvLyBjYWNoZSBzbyBqdXN0IHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSByZXNwb25zZSBnZW5lcmF0b3IuXG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgICAgIGhhc1Jlc29sdmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwcmV2aW91c0NhY2hlRW50cnk6IG51bGxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgaW5jcmVtZW50YWxDYWNoZSwgaXNPbkRlbWFuZFJldmFsaWRhdGUgPSBmYWxzZSwgaXNGYWxsYmFjayA9IGZhbHNlLCBpc1JvdXRlUFBSRW5hYmxlZCA9IGZhbHNlLCB3YWl0VW50aWwgfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5iYXRjaGVyLmJhdGNoKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlXG4gICAgICAgIH0sIChjYWNoZUtleSwgcmVzb2x2ZSk9PntcbiAgICAgICAgICAgIGNvbnN0IHByb20gPSAoYXN5bmMgKCk9PntcbiAgICAgICAgICAgICAgICB2YXIgX3RoaXNfcHJldmlvdXNDYWNoZUl0ZW07XG4gICAgICAgICAgICAgICAgLy8gV2Uga2VlcCB0aGUgcHJldmlvdXMgY2FjaGUgZW50cnkgYXJvdW5kIHRvIGxldmVyYWdlIHdoZW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaW5jcmVtZW50YWwgY2FjaGUgaXMgZGlzYWJsZWQgaW4gbWluaW1hbCBtb2RlLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSAmJiAoKF90aGlzX3ByZXZpb3VzQ2FjaGVJdGVtID0gdGhpcy5wcmV2aW91c0NhY2hlSXRlbSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX3ByZXZpb3VzQ2FjaGVJdGVtLmtleSkgPT09IGNhY2hlS2V5ICYmIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0uZXhwaXJlc0F0ID4gRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcmV2aW91c0NhY2hlSXRlbS5lbnRyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQ29lcmNlIHRoZSBraW5kSGludCBpbnRvIGEgZ2l2ZW4ga2luZCBmb3IgdGhlIGluY3JlbWVudGFsIGNhY2hlLlxuICAgICAgICAgICAgICAgIGNvbnN0IGtpbmQgPSAoMCwgX3V0aWxzLnJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQpKGNvbnRleHQucm91dGVLaW5kKTtcbiAgICAgICAgICAgICAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBsZXQgY2FjaGVkUmVzcG9uc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlZFJlc3BvbnNlID0gIXRoaXMubWluaW1hbF9tb2RlID8gYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5nZXQoa2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQ6IGNvbnRleHQuaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlZFJlc3BvbnNlICYmICFpc09uRGVtYW5kUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjYWNoZWRSZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlZFJlc3BvbnNlLmlzU3RhbGUgfHwgY29udGV4dC5pc1ByZWZldGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGNhY2hlZCB2YWx1ZSBpcyBzdGlsbCB2YWxpZCwgc28gd2UgZG9uJ3QgbmVlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHVwZGF0ZSBpdCB5ZXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FjaGVFbnRyeSA9IGF3YWl0IHJlc3BvbnNlR2VuZXJhdG9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc1Jlc29sdmVkOiByZXNvbHZlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ2FjaGVFbnRyeTogY2FjaGVkUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGluZzogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNhY2hlIGVudHJ5IGNvdWxkbid0IGJlIGdlbmVyYXRlZCwgd2UgZG9uJ3Qgd2FudCB0byBjYWNoZVxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmVzdWx0LlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuc2V0IHRoZSBwcmV2aW91cyBjYWNoZSBpdGVtIGlmIGl0IHdhcyBzZXQuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUpIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlVmFsdWUgPSBhd2FpdCAoMCwgX3V0aWxzLmZyb21SZXNwb25zZUNhY2hlRW50cnkpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNhY2hlRW50cnksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc01pc3M6ICFjYWNoZWRSZXNwb25zZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvbHZlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuc2V0IHRoZSBwcmV2aW91cyBjYWNoZSBpdGVtIGlmIGl0IHdhcyBzZXQuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUpIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGb3Igb24tZGVtYW5kIHJldmFsaWRhdGUgd2FpdCB0byByZXNvbHZlIHVudGlsIGNhY2hlIGlzIHNldC5cbiAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHJlc29sdmUgbm93LlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzT25EZW1hbmRSZXZhbGlkYXRlICYmICFyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNvbHZlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gcGVyc2lzdCB0aGUgcmVzdWx0IG9ubHkgaWYgaXQgaGFzIGEgY2FjaGUgY29udHJvbCB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAvLyBkZWZpbmVkLlxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZVZhbHVlLmNhY2hlQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBjYWNoZUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnk6IHJlc29sdmVWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgMTAwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuc2V0KGtleSwgcmVzb2x2ZVZhbHVlLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDogcmVzb2x2ZVZhbHVlLmNhY2hlQ29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIGEgcGF0aCBpcyBlcnJvcmluZyB3ZSBhdXRvbWF0aWNhbGx5IHJlLXNldCB0aGUgZXhpc3RpbmcgY2FjaGVcbiAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBuZXcgcmV2YWxpZGF0ZSBhbmQgZXhwaXJlIHRpbWVzIHRvIHByZXZlbnQgbm9uLXN0b3AgcmV0cnlpbmcuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNwb25zZSA9PSBudWxsID8gdm9pZCAwIDogY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSZXZhbGlkYXRlID0gTWF0aC5taW4oTWF0aC5tYXgoY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sLnJldmFsaWRhdGUgfHwgMywgMyksIDMwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0V4cGlyZSA9IGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbC5leHBpcmUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IE1hdGgubWF4KG5ld1JldmFsaWRhdGUgKyAzLCBjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wuZXhwaXJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuc2V0KGtleSwgY2FjaGVkUmVzcG9uc2UudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogbmV3UmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiBuZXdFeHBpcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoaWxlIHJldmFsaWRhdGluZyBpbiB0aGUgYmFja2dyb3VuZCB3ZSBjYW4ndCByZWplY3QgYXMgd2UgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAvLyByZXNvbHZlZCB0aGUgY2FjaGUgZW50cnkgc28gbG9nIHRoZSBlcnJvciBoZXJlLlxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmVuJ3QgcmVzb2x2ZWQgeWV0LCBzbyBsZXQncyB0aHJvdyB0byBpbmRpY2F0ZSBhbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGVuc3VyZSBiYWNrZ3JvdW5kIHJldmFsaWRhdGVzIGFyZVxuICAgICAgICAgICAgLy8gcGFzc2VkIHRvIHdhaXRVbnRpbFxuICAgICAgICAgICAgaWYgKHdhaXRVbnRpbCkge1xuICAgICAgICAgICAgICAgIHdhaXRVbnRpbChwcm9tKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMudG9SZXNwb25zZUNhY2hlRW50cnkpKHJlc3BvbnNlKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/types.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n CachedRouteKind: function() {\n return CachedRouteKind;\n },\n IncrementalCacheKind: function() {\n return IncrementalCacheKind;\n }\n});\nvar CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) {\n CachedRouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n CachedRouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n CachedRouteKind[\"PAGES\"] = \"PAGES\";\n CachedRouteKind[\"FETCH\"] = \"FETCH\";\n CachedRouteKind[\"REDIRECT\"] = \"REDIRECT\";\n CachedRouteKind[\"IMAGE\"] = \"IMAGE\";\n return CachedRouteKind;\n}({});\nvar IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) {\n IncrementalCacheKind[\"APP_PAGE\"] = \"APP_PAGE\";\n IncrementalCacheKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n IncrementalCacheKind[\"PAGES\"] = \"PAGES\";\n IncrementalCacheKind[\"FETCH\"] = \"FETCH\";\n IncrementalCacheKind[\"IMAGE\"] = \"IMAGE\";\n return IncrementalCacheKind;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3R5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS90eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIENhY2hlZFJvdXRlS2luZDogbnVsbCxcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBDYWNoZWRSb3V0ZUtpbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQ2FjaGVkUm91dGVLaW5kO1xuICAgIH0sXG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSW5jcmVtZW50YWxDYWNoZUtpbmQ7XG4gICAgfVxufSk7XG52YXIgQ2FjaGVkUm91dGVLaW5kID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihDYWNoZWRSb3V0ZUtpbmQpIHtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIlBBR0VTXCJdID0gXCJQQUdFU1wiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIkZFVENIXCJdID0gXCJGRVRDSFwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIlJFRElSRUNUXCJdID0gXCJSRURJUkVDVFwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIklNQUdFXCJdID0gXCJJTUFHRVwiO1xuICAgIHJldHVybiBDYWNoZWRSb3V0ZUtpbmQ7XG59KHt9KTtcbnZhciBJbmNyZW1lbnRhbENhY2hlS2luZCA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oSW5jcmVtZW50YWxDYWNoZUtpbmQpIHtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIlBBR0VTXCJdID0gXCJQQUdFU1wiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiRkVUQ0hcIl0gPSBcIkZFVENIXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gSW5jcmVtZW50YWxDYWNoZUtpbmQ7XG59KHt9KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHlwZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/utils.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromResponseCacheEntry: function() {\n return fromResponseCacheEntry;\n },\n routeKindToIncrementalCacheKind: function() {\n return routeKindToIncrementalCacheKind;\n },\n toResponseCacheEntry: function() {\n return toResponseCacheEntry;\n }\n});\nconst _types = __webpack_require__(/*! ./types */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../render-result */ \"(pages-dir-node)/./node_modules/next/dist/server/render-result.js\"));\nconst _routekind = __webpack_require__(/*! ../route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nasync function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nasync function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nfunction routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case _routekind.RouteKind.PAGES:\n return _types.IncrementalCacheKind.PAGES;\n case _routekind.RouteKind.APP_PAGE:\n return _types.IncrementalCacheKind.APP_PAGE;\n case _routekind.RouteKind.IMAGE:\n return _types.IncrementalCacheKind.IMAGE;\n case _routekind.RouteKind.APP_ROUTE:\n return _types.IncrementalCacheKind.APP_ROUTE;\n case _routekind.RouteKind.PAGES_API:\n // Pages Router API routes are not cached in the incremental cache.\n throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E64\",\n enumerable: false,\n configurable: true\n });\n default:\n return routeKind;\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZUFBZSxtQkFBTyxDQUFDLHlGQUFTO0FBQ2hDLDZEQUE2RCxtQkFBTyxDQUFDLDJGQUFrQjtBQUN2RixtQkFBbUIsbUJBQU8sQ0FBQyxxRkFBZTtBQUMxQyxtQkFBbUIsbUJBQU8sQ0FBQyx1RkFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFLFVBQVU7QUFDckY7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeTogbnVsbCxcbiAgICByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kOiBudWxsLFxuICAgIHRvUmVzcG9uc2VDYWNoZUVudHJ5OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGZyb21SZXNwb25zZUNhY2hlRW50cnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeTtcbiAgICB9LFxuICAgIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZDtcbiAgICB9LFxuICAgIHRvUmVzcG9uc2VDYWNoZUVudHJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRvUmVzcG9uc2VDYWNoZUVudHJ5O1xuICAgIH1cbn0pO1xuY29uc3QgX3R5cGVzID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG5jb25zdCBfcmVuZGVycmVzdWx0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uL3JlbmRlci1yZXN1bHRcIikpO1xuY29uc3QgX3JvdXRla2luZCA9IHJlcXVpcmUoXCIuLi9yb3V0ZS1raW5kXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5KGNhY2hlRW50cnkpIHtcbiAgICB2YXIgX2NhY2hlRW50cnlfdmFsdWUsIF9jYWNoZUVudHJ5X3ZhbHVlMTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jYWNoZUVudHJ5LFxuICAgICAgICB2YWx1ZTogKChfY2FjaGVFbnRyeV92YWx1ZSA9IGNhY2hlRW50cnkudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfY2FjaGVFbnRyeV92YWx1ZS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICBodG1sOiBhd2FpdCBjYWNoZUVudHJ5LnZhbHVlLmh0bWwudG9VbmNodW5rZWRTdHJpbmcodHJ1ZSksXG4gICAgICAgICAgICBwYWdlRGF0YTogY2FjaGVFbnRyeS52YWx1ZS5wYWdlRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IGNhY2hlRW50cnkudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogY2FjaGVFbnRyeS52YWx1ZS5zdGF0dXNcbiAgICAgICAgfSA6ICgoX2NhY2hlRW50cnlfdmFsdWUxID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlMS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICBodG1sOiBhd2FpdCBjYWNoZUVudHJ5LnZhbHVlLmh0bWwudG9VbmNodW5rZWRTdHJpbmcodHJ1ZSksXG4gICAgICAgICAgICBwb3N0cG9uZWQ6IGNhY2hlRW50cnkudmFsdWUucG9zdHBvbmVkLFxuICAgICAgICAgICAgcnNjRGF0YTogY2FjaGVFbnRyeS52YWx1ZS5yc2NEYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogY2FjaGVFbnRyeS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiBjYWNoZUVudHJ5LnZhbHVlLnN0YXR1cyxcbiAgICAgICAgICAgIHNlZ21lbnREYXRhOiBjYWNoZUVudHJ5LnZhbHVlLnNlZ21lbnREYXRhXG4gICAgICAgIH0gOiBjYWNoZUVudHJ5LnZhbHVlXG4gICAgfTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHRvUmVzcG9uc2VDYWNoZUVudHJ5KHJlc3BvbnNlKSB7XG4gICAgdmFyIF9yZXNwb25zZV92YWx1ZSwgX3Jlc3BvbnNlX3ZhbHVlMTtcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBpc01pc3M6IHJlc3BvbnNlLmlzTWlzcyxcbiAgICAgICAgaXNTdGFsZTogcmVzcG9uc2UuaXNTdGFsZSxcbiAgICAgICAgY2FjaGVDb250cm9sOiByZXNwb25zZS5jYWNoZUNvbnRyb2wsXG4gICAgICAgIHZhbHVlOiAoKF9yZXNwb25zZV92YWx1ZSA9IHJlc3BvbnNlLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3BvbnNlX3ZhbHVlLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgIGh0bWw6IF9yZW5kZXJyZXN1bHQuZGVmYXVsdC5mcm9tU3RhdGljKHJlc3BvbnNlLnZhbHVlLmh0bWwsIF9jb25zdGFudHMuSFRNTF9DT05URU5UX1RZUEVfSEVBREVSKSxcbiAgICAgICAgICAgIHBhZ2VEYXRhOiByZXNwb25zZS52YWx1ZS5wYWdlRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnZhbHVlLnN0YXR1c1xuICAgICAgICB9IDogKChfcmVzcG9uc2VfdmFsdWUxID0gcmVzcG9uc2UudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzcG9uc2VfdmFsdWUxLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgIGh0bWw6IF9yZW5kZXJyZXN1bHQuZGVmYXVsdC5mcm9tU3RhdGljKHJlc3BvbnNlLnZhbHVlLmh0bWwsIF9jb25zdGFudHMuSFRNTF9DT05URU5UX1RZUEVfSEVBREVSKSxcbiAgICAgICAgICAgIHJzY0RhdGE6IHJlc3BvbnNlLnZhbHVlLnJzY0RhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICBwb3N0cG9uZWQ6IHJlc3BvbnNlLnZhbHVlLnBvc3Rwb25lZCxcbiAgICAgICAgICAgIHNlZ21lbnREYXRhOiByZXNwb25zZS52YWx1ZS5zZWdtZW50RGF0YVxuICAgICAgICB9IDogcmVzcG9uc2UudmFsdWVcbiAgICB9O1xufVxuZnVuY3Rpb24gcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZChyb3V0ZUtpbmQpIHtcbiAgICBzd2l0Y2gocm91dGVLaW5kKXtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5QQUdFUzpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuUEFHRVM7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuQVBQX1BBR0U6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLkFQUF9QQUdFO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLklNQUdFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5JTUFHRTtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5BUFBfUk9VVEU6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLkFQUF9ST1VURTtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5QQUdFU19BUEk6XG4gICAgICAgICAgICAvLyBQYWdlcyBSb3V0ZXIgQVBJIHJvdXRlcyBhcmUgbm90IGNhY2hlZCBpbiB0aGUgaW5jcmVtZW50YWwgY2FjaGUuXG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBVbmV4cGVjdGVkIHJvdXRlIGtpbmQgJHtyb3V0ZUtpbmR9YCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU2NFwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gcm91dGVLaW5kO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/route-kind.js": /*!*****************************************************!*\ !*** ./node_modules/next/dist/server/route-kind.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw2Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsSUFBSSxFQUFFLEdBQUc7QUFDakM7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLElBQUksRUFBRSxHQUFHO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUta2luZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJvdXRlS2luZFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUm91dGVLaW5kO1xuICAgIH1cbn0pO1xudmFyIFJvdXRlS2luZCA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUm91dGVLaW5kKSB7XG4gICAgLyoqXG4gICAqIGBQQUdFU2AgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBwYWdlcy9gLlxuICAgKi8gUm91dGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgLyoqXG4gICAqIGBQQUdFU19BUElgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICovIFJvdXRlS2luZFtcIlBBR0VTX0FQSVwiXSA9IFwiUEFHRVNfQVBJXCI7XG4gICAgLyoqXG4gICAqIGBBUFBfUEFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcGFnZS57aix0fXN7LHh9YC5cbiAgICovIFJvdXRlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIC8qKlxuICAgKiBgQVBQX1JPVVRFYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcm91dGUue2osdH1zeyx4fWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xuICAgIC8qKlxuICAgKiBgSU1BR0VgIHJlcHJlc2VudHMgYWxsIHRoZSBpbWFnZXMgdGhhdCBhcmUgZ2VuZXJhdGVkIGJ5IGBuZXh0L2ltYWdlYC5cbiAgICovIFJvdXRlS2luZFtcIklNQUdFXCJdID0gXCJJTUFHRVwiO1xuICAgIHJldHVybiBSb3V0ZUtpbmQ7XG59KHt9KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUta2luZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/module.compiled.js ***! \******************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nif (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/pages.runtime.dev.js */ \"next/dist/compiled/next-server/pages.runtime.dev.js\");\n }\n } else {}\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLElBQXNDO0FBQzlDLFlBQVksS0FBcUIsRUFBRSxFQUUxQixDQUFDO0FBQ1YsWUFBWSxzSkFBK0U7QUFDM0Y7QUFDQSxNQUFNLEtBQUssRUFNTjtBQUNMOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmpzJyk7XG59IGVsc2Uge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9wYWdlcy10dXJiby5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLXR1cmJvLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/pages-handler.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/pages-handler.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHandler\", ({\n enumerable: true,\n get: function() {\n return getHandler;\n }\n}));\nconst _routekind = __webpack_require__(/*! ../../route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\nconst _constants = __webpack_require__(/*! ../../lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _tracer = __webpack_require__(/*! ../../lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _formaturl = __webpack_require__(/*! ../../../shared/lib/router/utils/format-url */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _requestmeta = __webpack_require__(/*! ../../request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\nconst _interopdefault = __webpack_require__(/*! ../../app-render/interop-default */ \"(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\");\nconst _utils = __webpack_require__(/*! ../../instrumentation/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js\");\nconst _normalizedatapath = __webpack_require__(/*! ../../../shared/lib/page-path/normalize-data-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js\");\nconst _responsecache = __webpack_require__(/*! ../../response-cache */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js\");\nconst _cachecontrol = __webpack_require__(/*! ../../lib/cache-control */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\");\nconst _utils1 = __webpack_require__(/*! ../../../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _redirectstatus = __webpack_require__(/*! ../../../lib/redirect-status */ \"(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js\");\nconst _constants1 = __webpack_require__(/*! ../../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nconst _path = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! path */ \"path\"));\nconst _sendpayload = __webpack_require__(/*! ../../send-payload */ \"(pages-dir-node)/./node_modules/next/dist/server/send-payload.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../render-result */ \"(pages-dir-node)/./node_modules/next/dist/server/render-result.js\"));\nconst _utils2 = __webpack_require__(/*! ../../response-cache/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\");\nconst _nofallbackerrorexternal = __webpack_require__(/*! ../../../shared/lib/no-fallback-error.external */ \"../../../shared/lib/no-fallback-error.external\");\nconst _redirectstatuscode = __webpack_require__(/*! ../../../client/components/redirect-status-code */ \"(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _isbot = __webpack_require__(/*! ../../../shared/lib/router/utils/is-bot */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _addpathprefix = __webpack_require__(/*! ../../../shared/lib/router/utils/add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../../../shared/lib/router/utils/remove-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst getHandler = ({ srcPage: originalSrcPage, config, userland, routeModule, isFallbackError, getStaticPaths, getStaticProps, getServerSideProps })=>{\n return async function handler(req, res, ctx) {\n var _serverFilesManifest_config_experimental, _serverFilesManifest_config;\n let srcPage = originalSrcPage;\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (false) {} else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = false;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return;\n }\n const { buildId, query, params, parsedUrl, originalQuery, originalPathname, buildManifest, fallbackBuildManifest, nextFontManifest, serverFilesManifest, reactLoadableManifest, prerenderManifest, isDraftMode, isOnDemandRevalidate, revalidateOnlyGenerated, locale, locales, defaultLocale, routerServerContext, nextConfig, resolvedPathname } = prepareResult;\n const isExperimentalCompile = serverFilesManifest == null ? void 0 : (_serverFilesManifest_config = serverFilesManifest.config) == null ? void 0 : (_serverFilesManifest_config_experimental = _serverFilesManifest_config.experimental) == null ? void 0 : _serverFilesManifest_config_experimental.isExperimentalCompile;\n const hasServerProps = Boolean(getServerSideProps);\n const hasStaticProps = Boolean(getStaticProps);\n const hasStaticPaths = Boolean(getStaticPaths);\n const hasGetInitialProps = Boolean((userland.default || userland).getInitialProps);\n const isAmp = query.amp && (config == null ? void 0 : config.amp);\n let cacheKey = null;\n let isIsrFallback = false;\n let isNextDataRequest = prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps);\n const is404Page = srcPage === '/404';\n const is500Page = srcPage === '/500';\n const isErrorPage = srcPage === '/_error';\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${(srcPage === '/' || resolvedPathname === '/') && locale ? '' : resolvedPathname}${isAmp ? '.amp' : ''}`;\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}${isAmp ? '.amp' : ''}`;\n }\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = (0, _removetrailingslash.removeTrailingSlash)(locale ? (0, _addpathprefix.addPathPrefix)(resolvedPathname, `/${locale}`) : resolvedPathname);\n const isPrerendered = Boolean(prerenderManifest.routes[decodedPathname]) || prerenderManifest.notFoundRoutes.includes(decodedPathname);\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n throw new _nofallbackerrorexternal.NoFallbackError();\n }\n if (typeof prerenderInfo.fallback === 'string' && !isPrerendered && !isNextDataRequest) {\n isIsrFallback = true;\n }\n }\n }\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (isIsrFallback && (0, _isbot.isBot)(req.headers['user-agent'] || '') || (0, _requestmeta.getRequestMeta)(req, 'minimalMode')) {\n isIsrFallback = false;\n }\n const tracer = (0, _tracer.getTracer)();\n const activeSpan = tracer.getActiveScopeSpan();\n try {\n const method = req.method || 'GET';\n const resolvedUrl = (0, _formaturl.formatUrl)({\n pathname: nextConfig.trailingSlash ? parsedUrl.pathname : (0, _removetrailingslash.removeTrailingSlash)(parsedUrl.pathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery\n });\n const publicRuntimeConfig = (routerServerContext == null ? void 0 : routerServerContext.publicRuntimeConfig) || nextConfig.publicRuntimeConfig;\n const handleResponse = async (span)=>{\n const responseGenerator = async ({ previousCacheEntry })=>{\n var _previousCacheEntry_value;\n const doRender = async ()=>{\n try {\n var _nextConfig_i18n, _nextConfig_experimental_amp, _nextConfig_experimental_amp1;\n return await routeModule.render(req, res, {\n query: hasStaticProps && !isExperimentalCompile ? {\n ...params,\n ...isAmp ? {\n amp: query.amp\n } : {}\n } : {\n ...query,\n ...params\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: (0, _requestmeta.getRequestMeta)(req, 'developmentNotFoundSourcePage')\n },\n sharedContext: {\n buildId,\n customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined,\n deploymentId: false\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: (0, _interopdefault.interopDefault)(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError ? fallbackBuildManifest : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers),\n domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains,\n crossOrigin: nextConfig.crossOrigin,\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n canonicalBase: nextConfig.amp.canonicalBase || '',\n ampOptimizerConfig: (_nextConfig_experimental_amp = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp.optimizer,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n // Only the `publicRuntimeConfig` key is exposed to the client side\n // It'll be rendered as part of __NEXT_DATA__ on the client side\n runtimeConfig: Object.keys(publicRuntimeConfig).length > 0 ? publicRuntimeConfig : undefined,\n isExperimentalCompile,\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n },\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps),\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath: hasServerProps || hasGetInitialProps ? (0, _formaturl.formatUrl)({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest ? (0, _normalizedatapath.normalizeDataPath)(originalPathname) : originalPathname,\n query: originalQuery\n }) : resolvedUrl,\n isOnDemandRevalidate,\n ErrorDebug: (0, _requestmeta.getRequestMeta)(req, 'PagesErrorDebug'),\n err: (0, _requestmeta.getRequestMeta)(req, 'invokeError'),\n dev: routeModule.isDev,\n // needed for experimental.optimizeCss feature\n distDir: _path.default.join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir, routeModule.distDir),\n ampSkipValidation: (_nextConfig_experimental_amp1 = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp1.skipValidation,\n ampValidator: (0, _requestmeta.getRequestMeta)(req, 'ampValidator')\n }\n }).then((renderResult)=>{\n const { metadata } = renderResult;\n let cacheControl = metadata.cacheControl;\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl\n };\n }\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: _responsecache.CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData\n },\n cacheControl\n };\n }\n return {\n value: {\n kind: _responsecache.CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode\n },\n cacheControl\n };\n }).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== _constants.BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0, _utils.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n throw err;\n }\n };\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false;\n }\n if (isIsrFallback) {\n const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{\n if (!routeModule.isDev) {\n return (0, _utils2.toResponseCacheEntry)(previousFallbackCacheEntry);\n }\n return doRender();\n }, {\n routeKind: _routekind.RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest),\n waitUntil: ctx.waitUntil\n });\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n fallbackResponse.isMiss = true;\n return fallbackResponse;\n }\n }\n if (!(0, _requestmeta.getRequestMeta)(req, 'minimalMode') && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === _responsecache.CachedRouteKind.PAGES) {\n return {\n value: {\n kind: _responsecache.CachedRouteKind.PAGES,\n html: new _renderresult.default(Buffer.from(previousCacheEntry.value.html), {\n contentType: _constants1.HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n }\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n },\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n };\n }\n return doRender();\n };\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: _routekind.RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest\n });\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !(result == null ? void 0 : result.isMiss)) {\n isIsrFallback = false;\n }\n // response is finished is no cache entry\n if (!result) {\n return;\n }\n if (hasStaticProps && !(0, _requestmeta.getRequestMeta)(req, 'minimalMode')) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : result.isMiss ? 'MISS' : result.isStale ? 'STALE' : 'HIT');\n }\n let cacheControl;\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (is404Page) {\n const notFoundRevalidate = (0, _requestmeta.getRequestMeta)(req, 'notFoundRevalidate');\n cacheControl = {\n revalidate: typeof notFoundRevalidate === 'undefined' ? 0 : notFoundRevalidate,\n expire: undefined\n };\n } else if (is500Page) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n var _result_cacheControl;\n if (result.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: ((_result_cacheControl = result.cacheControl) == null ? void 0 : _result_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: _constants1.CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n // notFound: true case\n if (!result.value) {\n var _result_cacheControl1;\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n (0, _requestmeta.addRequestMeta)(req, 'notFoundRevalidate', (_result_cacheControl1 = result.cacheControl) == null ? void 0 : _result_cacheControl1.revalidate);\n res.statusCode = 404;\n if (isNextDataRequest) {\n res.end('{\"notFound\":true}');\n return;\n }\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return;\n }\n if (result.value.kind === _responsecache.CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n res.setHeader('content-type', _constants1.JSON_CONTENT_TYPE_HEADER);\n res.end(JSON.stringify(result.value.props));\n return;\n } else {\n const handleRedirect = (pageData)=>{\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH\n };\n const statusCode = (0, _redirectstatus.getRedirectStatus)(redirect);\n const { basePath } = nextConfig;\n if (basePath && redirect.basePath !== false && redirect.destination.startsWith('/')) {\n redirect.destination = `${basePath}${redirect.destination}`;\n }\n if (redirect.destination.startsWith('/')) {\n redirect.destination = (0, _utils1.normalizeRepeatedSlashes)(redirect.destination);\n }\n res.statusCode = statusCode;\n res.setHeader('Location', redirect.destination);\n if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`);\n }\n res.end(redirect.destination);\n };\n await handleRedirect(result.value.props);\n return null;\n }\n }\n if (result.value.kind !== _responsecache.CachedRouteKind.PAGES) {\n throw Object.defineProperty(new Error(`Invariant: received non-pages cache entry in pages handler`), \"__NEXT_ERROR_CODE\", {\n value: \"E695\",\n enumerable: false,\n configurable: true\n });\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if ((0, _requestmeta.getRequestMeta)(req, 'customErrorRender') || isErrorPage && (0, _requestmeta.getRequestMeta)(req, 'minimalMode') && res.statusCode === 500) {\n return null;\n }\n await (0, _sendpayload.sendRenderResult)({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result: isNextDataRequest && !isErrorPage && !is500Page ? new _renderresult.default(Buffer.from(JSON.stringify(result.value.pageData)), {\n contentType: _constants1.JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata\n }) : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse();\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(_constants.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: _tracer.SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof _nofallbackerrorexternal.NoFallbackError)) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0, _utils.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n throw err;\n }\n };\n};\n\n//# sourceMappingURL=pages-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvcGFnZXMtaGFuZGxlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDhDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG1CQUFtQixtQkFBTyxDQUFDLHdGQUFrQjtBQUM3QyxtQkFBbUIsbUJBQU8sQ0FBQywwR0FBMkI7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMsb0dBQXdCO0FBQ2hELG1CQUFtQixtQkFBTyxDQUFDLG9JQUE2QztBQUN4RSxxQkFBcUIsbUJBQU8sQ0FBQyw0RkFBb0I7QUFDakQsd0JBQXdCLG1CQUFPLENBQUMsd0hBQWtDO0FBQ2xFLGVBQWUsbUJBQU8sQ0FBQyw4R0FBNkI7QUFDcEQsMkJBQTJCLG1CQUFPLENBQUMsZ0pBQW1EO0FBQ3RGLHVCQUF1QixtQkFBTyxDQUFDLHNHQUFzQjtBQUNyRCxzQkFBc0IsbUJBQU8sQ0FBQyxzR0FBeUI7QUFDdkQsZ0JBQWdCLG1CQUFPLENBQUMsZ0dBQTJCO0FBQ25ELHdCQUF3QixtQkFBTyxDQUFDLHNHQUE4QjtBQUM5RCxvQkFBb0IsbUJBQU8sQ0FBQywwRkFBd0I7QUFDcEQscURBQXFELG1CQUFPLENBQUMsa0JBQU07QUFDbkUscUJBQXFCLG1CQUFPLENBQUMsNEZBQW9CO0FBQ2pELDZEQUE2RCxtQkFBTyxDQUFDLDhGQUFxQjtBQUMxRixnQkFBZ0IsbUJBQU8sQ0FBQyw0R0FBNEI7QUFDcEQsaUNBQWlDLG1CQUFPLENBQUMsc0dBQWdEO0FBQ3pGLDRCQUE0QixtQkFBTyxDQUFDLDRJQUFpRDtBQUNyRixlQUFlLG1CQUFPLENBQUMsNEhBQXlDO0FBQ2hFLHVCQUF1QixtQkFBTyxDQUFDLDhJQUFrRDtBQUNqRiw2QkFBNkIsbUJBQU8sQ0FBQywwSkFBd0Q7QUFDN0Y7QUFDQTtBQUNBO0FB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LDREQUE0RCxNQUFNLHFCQUFxQjtBQUN2RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxxQ0FBcUMsUUFBUSxFQUFFLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9wYWdlcy9wYWdlcy1oYW5kbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0SGFuZGxlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0SGFuZGxlcjtcbiAgICB9XG59KTtcbmNvbnN0IF9yb3V0ZWtpbmQgPSByZXF1aXJlKFwiLi4vLi4vcm91dGUta2luZFwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL3RyYWNlL2NvbnN0YW50c1wiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9mb3JtYXR1cmwgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybFwiKTtcbmNvbnN0IF9yZXF1ZXN0bWV0YSA9IHJlcXVpcmUoXCIuLi8uLi9yZXF1ZXN0LW1ldGFcIik7XG5jb25zdCBfaW50ZXJvcGRlZmF1bHQgPSByZXF1aXJlKFwiLi4vLi4vYXBwLXJlbmRlci9pbnRlcm9wLWRlZmF1bHRcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vLi4vaW5zdHJ1bWVudGF0aW9uL3V0aWxzXCIpO1xuY29uc3QgX25vcm1hbGl6ZWRhdGFwYXRoID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1kYXRhLXBhdGhcIik7XG5jb25zdCBfcmVzcG9uc2VjYWNoZSA9IHJlcXVpcmUoXCIuLi8uLi9yZXNwb25zZS1jYWNoZVwiKTtcbmNvbnN0IF9jYWNoZWNvbnRyb2wgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NhY2hlLWNvbnRyb2xcIik7XG5jb25zdCBfdXRpbHMxID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvdXRpbHNcIik7XG5jb25zdCBfcmVkaXJlY3RzdGF0dXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vbGliL3JlZGlyZWN0LXN0YXR1c1wiKTtcbmNvbnN0IF9jb25zdGFudHMxID0gcmVxdWlyZShcIi4uLy4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5jb25zdCBfcGF0aCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJwYXRoXCIpKTtcbmNvbnN0IF9zZW5kcGF5bG9hZCA9IHJlcXVpcmUoXCIuLi8uLi9zZW5kLXBheWxvYWRcIik7XG5jb25zdCBfcmVuZGVycmVzdWx0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uLy4uL3JlbmRlci1yZXN1bHRcIikpO1xuY29uc3QgX3V0aWxzMiA9IHJlcXVpcmUoXCIuLi8uLi9yZXNwb25zZS1jYWNoZS91dGlsc1wiKTtcbmNvbnN0IF9ub2ZhbGxiYWNrZXJyb3JleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL25vLWZhbGxiYWNrLWVycm9yLmV4dGVybmFsXCIpO1xuY29uc3QgX3JlZGlyZWN0c3RhdHVzY29kZSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZVwiKTtcbmNvbnN0IF9pc2JvdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3RcIik7XG5jb25zdCBfYWRkcGF0aHByZWZpeCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtcGF0aC1wcmVmaXhcIik7XG5jb25zdCBfcmVtb3ZldHJhaWxpbmdzbGFzaCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2hcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IGdldEhhbmRsZXIgPSAoeyBzcmNQYWdlOiBvcmlnaW5hbFNyY1BhZ2UsIGNvbmZpZywgdXNlcmxhbmQsIHJvdXRlTW9kdWxlLCBpc0ZhbGxiYWNrRXJyb3IsIGdldFN0YXRpY1BhdGhzLCBnZXRTdGF0aWNQcm9wcywgZ2V0U2VydmVyU2lkZVByb3BzIH0pPT57XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIocmVxLCByZXMsIGN0eCkge1xuICAgICAgICB2YXIgX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnX2V4cGVyaW1lbnRhbCwgX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnO1xuICAgICAgICBsZXQgc3JjUGFnZSA9IG9yaWdpbmFsU3JjUGFnZTtcbiAgICAgICAgLy8gdHVyYm9wYWNrIGRvZXNuJ3Qgbm9ybWFsaXplIGAvaW5kZXhgIGluIHRoZSBwYWdlIG5hbWVcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0byB0byBwcm9jZXNzIGR5bmFtaWMgcm91dGVzIHByb3Blcmx5XG4gICAgICAgIC8vIFRPRE86IGZpeCB0dXJib3BhY2sgcHJvdmlkaW5nIGRpZmZlcmluZyB2YWx1ZSBmcm9tIHdlYnBhY2tcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgc3JjUGFnZSA9IHNyY1BhZ2UucmVwbGFjZSgvXFwvaW5kZXgkLywgJycpIHx8ICcvJztcbiAgICAgICAgfSBlbHNlIGlmIChzcmNQYWdlID09PSAnL2luZGV4Jykge1xuICAgICAgICAgICAgLy8gd2UgYWx3YXlzIG5vcm1hbGl6ZSAvaW5kZXggc3BlY2lmaWNhbGx5XG4gICAgICAgICAgICBzcmNQYWdlID0gJy8nO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG11bHRpWm9uZURyYWZ0TW9kZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9NVUxUSV9aT05FX0RSQUZUX01PREU7XG4gICAgICAgIGNvbnN0IHByZXBhcmVSZXN1bHQgPSBhd2FpdCByb3V0ZU1vZHVsZS5wcmVwYXJlKHJlcSwgcmVzLCB7XG4gICAgICAgICAgICBzcmNQYWdlLFxuICAgICAgICAgICAgbXVsdGlab25lRHJhZnRNb2RlXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXByZXBhcmVSZXN1bHQpIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAwO1xuICAgICAgICAgICAgcmVzLmVuZCgnQmFkIFJlcXVlc3QnKTtcbiAgICAgICAgICAgIGN0eC53YWl0VW50aWwgPT0gbnVsbCA/IHZvaWQgMCA6IGN0eC53YWl0VW50aWwuY2FsbChjdHgsIFByb21pc2UucmVzb2x2ZSgpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGJ1aWxkSWQsIHF1ZXJ5LCBwYXJhbXMsIHBhcnNlZFVybCwgb3JpZ2luYWxRdWVyeSwgb3JpZ2luYWxQYXRobmFtZSwgYnVpbGRNYW5pZmVzdCwgZmFsbGJhY2tCdWlsZE1hbmlmZXN0LCBuZXh0Rm9udE1hbmlmZXN0LCBzZXJ2ZXJGaWxlc01hbmlmZXN0LCByZWFjdExvYWRhYmxlTWFuaWZlc3QsIHByZXJlbmRlck1hbmlmZXN0LCBpc0RyYWZ0TW9kZSwgaXNPbkRlbWFuZFJldmFsaWRhdGUsIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkLCBsb2NhbGUsIGxvY2FsZXMsIGRlZmF1bHRMb2NhbGUsIHJvdXRlclNlcnZlckNvbnRleHQsIG5leHRDb25maWcsIHJlc29sdmVkUGF0aG5hbWUgfSA9IHByZXBhcmVSZXN1bHQ7XG4gICAgICAgIGNvbnN0IGlzRXhwZXJpbWVudGFsQ29tcGlsZSA9IHNlcnZlckZpbGVzTWFuaWZlc3QgPT0gbnVsbCA/IHZvaWQgMCA6IChfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWcgPSBzZXJ2ZXJGaWxlc01hbmlmZXN0LmNvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWdfZXhwZXJpbWVudGFsID0gX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnLmV4cGVyaW1lbnRhbCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZ19leHBlcmltZW50YWwuaXNFeHBlcmltZW50YWxDb21waWxlO1xuICAgICAgICBjb25zdCBoYXNTZXJ2ZXJQcm9wcyA9IEJvb2xlYW4oZ2V0U2VydmVyU2lkZVByb3BzKTtcbiAgICAgICAgY29uc3QgaGFzU3RhdGljUHJvcHMgPSBCb29sZWFuKGdldFN0YXRpY1Byb3BzKTtcbiAgICAgICAgY29uc3QgaGFzU3RhdGljUGF0aHMgPSBCb29sZWFuKGdldFN0YXRpY1BhdGhzKTtcbiAgICAgICAgY29uc3QgaGFzR2V0SW5pdGlhbFByb3BzID0gQm9vbGVhbigodXNlcmxhbmQuZGVmYXVsdCB8fCB1c2VybGFuZCkuZ2V0SW5pdGlhbFByb3BzKTtcbiAgICAgICAgY29uc3QgaXNBbXAgPSBxdWVyeS5hbXAgJiYgKGNvbmZpZyA9PSBudWxsID8gdm9pZCAwIDogY29uZmlnLmFtcCk7XG4gICAgICAgIGxldCBjYWNoZUtleSA9IG51bGw7XG4gICAgICAgIGxldCBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgICAgIGxldCBpc05leHREYXRhUmVxdWVzdCA9IHByZXBhcmVSZXN1bHQuaXNOZXh0RGF0YVJlcXVlc3QgJiYgKGhhc1N0YXRpY1Byb3BzIHx8IGhhc1NlcnZlclByb3BzKTtcbiAgICAgICAgY29uc3QgaXM0MDRQYWdlID0gc3JjUGFnZSA9PT0gJy80MDQnO1xuICAgICAgICBjb25zdCBpczUwMFBhZ2UgPSBzcmNQYWdlID09PSAnLzUwMCc7XG4gICAgICAgIGNvbnN0IGlzRXJyb3JQYWdlID0gc3JjUGFnZSA9PT0gJy9fZXJyb3InO1xuICAgICAgICBpZiAoIXJvdXRlTW9kdWxlLmlzRGV2ICYmICFpc0RyYWZ0TW9kZSAmJiBoYXNTdGF0aWNQcm9wcykge1xuICAgICAgICAgICAgY2FjaGVLZXkgPSBgJHtsb2NhbGUgPyBgLyR7bG9jYWxlfWAgOiAnJ30keyhzcmNQYWdlID09PSAnLycgfHwgcmVzb2x2ZWRQYXRobmFtZSA9PT0gJy8nKSAmJiBsb2NhbGUgPyAnJyA6IHJlc29sdmVkUGF0aG5hbWV9JHtpc0FtcCA/ICcuYW1wJyA6ICcnfWA7XG4gICAgICAgICAgICBpZiAoaXM0MDRQYWdlIHx8IGlzNTAwUGFnZSB8fCBpc0Vycm9yUGFnZSkge1xuICAgICAgICAgICAgICAgIGNhY2hlS2V5ID0gYCR7bG9jYWxlID8gYC8ke2xvY2FsZX1gIDogJyd9JHtzcmNQYWdlfSR7aXNBbXAgPyAnLmFtcCcgOiAnJ31gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZW5zdXJlIC9pbmRleCBhbmQgLyBpcyBub3JtYWxpemVkIHRvIG9uZSBrZXlcbiAgICAgICAgICAgIGNhY2hlS2V5ID0gY2FjaGVLZXkgPT09ICcvaW5kZXgnID8gJy8nIDogY2FjaGVLZXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc1N0YXRpY1BhdGhzICYmICFpc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgY29uc3QgZGVjb2RlZFBhdGhuYW1lID0gKDAsIF9yZW1vdmV0cmFpbGluZ3NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2gpKGxvY2FsZSA/ICgwLCBfYWRkcGF0aHByZWZpeC5hZGRQYXRoUHJlZml4KShyZXNvbHZlZFBhdGhuYW1lLCBgLyR7bG9jYWxlfWApIDogcmVzb2x2ZWRQYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBpc1ByZXJlbmRlcmVkID0gQm9vbGVhbihwcmVyZW5kZXJNYW5pZmVzdC5yb3V0ZXNbZGVjb2RlZFBhdGhuYW1lXSkgfHwgcHJlcmVuZGVyTWFuaWZlc3Qubm90Rm91bmRSb3V0ZXMuaW5jbHVkZXMoZGVjb2RlZFBhdGhuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXJlbmRlckluZm8gPSBwcmVyZW5kZXJNYW5pZmVzdC5keW5hbWljUm91dGVzW3NyY1BhZ2VdO1xuICAgICAgICAgICAgaWYgKHByZXJlbmRlckluZm8pIHtcbiAgICAgICAgICAgICAgICBpZiAocHJlcmVuZGVySW5mby5mYWxsYmFjayA9PT0gZmFsc2UgJiYgIWlzUHJlcmVuZGVyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IF9ub2ZhbGxiYWNrZXJyb3JleHRlcm5hbC5Ob0ZhbGxiYWNrRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcmVyZW5kZXJJbmZvLmZhbGxiYWNrID09PSAnc3RyaW5nJyAmJiAhaXNQcmVyZW5kZXJlZCAmJiAhaXNOZXh0RGF0YVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNJc3JGYWxsYmFjayA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gc2VydmluZyBhIGJvdCByZXF1ZXN0LCB3ZSB3YW50IHRvIHNlcnZlIGEgYmxvY2tpbmcgcmVuZGVyIGFuZCBub3RcbiAgICAgICAgLy8gdGhlIHByZXJlbmRlcmVkIHBhZ2UuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBjb3JyZWN0IGNvbnRlbnQgaXMgc2VydmVkXG4gICAgICAgIC8vIHRvIHRoZSBib3QgaW4gdGhlIGhlYWQuXG4gICAgICAgIGlmIChpc0lzckZhbGxiYWNrICYmICgwLCBfaXNib3QuaXNCb3QpKHJlcS5oZWFkZXJzWyd1c2VyLWFnZW50J10gfHwgJycpIHx8ICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcSwgJ21pbmltYWxNb2RlJykpIHtcbiAgICAgICAgICAgIGlzSXNyRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0cmFjZXIgPSAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVNwYW4gPSB0cmFjZXIuZ2V0QWN0aXZlU2NvcGVTcGFuKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBtZXRob2QgPSByZXEubWV0aG9kIHx8ICdHRVQnO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRVcmwgPSAoMCwgX2Zvcm1hdHVybC5mb3JtYXRVcmwpKHtcbiAgICAgICAgICAgICAgICBwYXRobmFtZTogbmV4dENvbmZpZy50cmFpbGluZ1NsYXNoID8gcGFyc2VkVXJsLnBhdGhuYW1lIDogKDAsIF9yZW1vdmV0cmFpbGluZ3NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2gpKHBhcnNlZFVybC5wYXRobmFtZSB8fCAnLycpLFxuICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0byBvbmx5IGFkZCBxdWVyeSB2YWx1ZXMgZnJvbSBvcmlnaW5hbCBVUkxcbiAgICAgICAgICAgICAgICBxdWVyeTogaGFzU3RhdGljUHJvcHMgPyB7fSA6IG9yaWdpbmFsUXVlcnlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgcHVibGljUnVudGltZUNvbmZpZyA9IChyb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnB1YmxpY1J1bnRpbWVDb25maWcpIHx8IG5leHRDb25maWcucHVibGljUnVudGltZUNvbmZpZztcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZVJlc3BvbnNlID0gYXN5bmMgKHNwYW4pPT57XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VHZW5lcmF0b3IgPSBhc3luYyAoeyBwcmV2aW91c0NhY2hlRW50cnkgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9wcmV2aW91c0NhY2hlRW50cnlfdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvUmVuZGVyID0gYXN5bmMgKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9uZXh0Q29uZmlnX2kxOG4sIF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAsIF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCByb3V0ZU1vZHVsZS5yZW5kZXIocmVxLCByZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IGhhc1N0YXRpY1Byb3BzICYmICFpc0V4cGVyaW1lbnRhbENvbXBpbGUgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5pc0FtcCA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbXA6IHF1ZXJ5LmFtcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSA6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnBhcmFtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IHNyY1BhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRHJhZnRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFjazogaXNJc3JGYWxsYmFjayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50Tm90Rm91bmRTb3VyY2VQYWdlOiAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdkZXZlbG9wbWVudE5vdEZvdW5kU291cmNlUGFnZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZENvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21TZXJ2ZXI6IEJvb2xlYW4ocm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5pc0N1c3RvbVNlcnZlcikgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwbG95bWVudElkOiBwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSURcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyT3B0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVNb2R1bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUNvbmZpZzogY29uZmlnIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiAoMCwgX2ludGVyb3BkZWZhdWx0LmludGVyb3BEZWZhdWx0KSh1c2VybGFuZCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnRNb2Q6IHVzZXJsYW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTdGF0aWNQYXRocyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlcnZlclNpZGVQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzRHluYW1pY1Jlc3BvbnNlOiAhaGFzU3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZE1hbmlmZXN0OiBpc0ZhbGxiYWNrRXJyb3IgPyBmYWxsYmFja0J1aWxkTWFuaWZlc3QgOiBidWlsZE1hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEZvbnRNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWN0TG9hZGFibGVNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0UHJlZml4OiBuZXh0Q29uZmlnLmFzc2V0UHJlZml4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld1Byb3BzOiBwcmVyZW5kZXJNYW5pZmVzdC5wcmV2aWV3LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzOiBuZXh0Q29uZmlnLmltYWdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDb25maWdPdXRwdXQ6IG5leHRDb25maWcub3V0cHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemVDc3M6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwub3B0aW1pemVDc3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFNjcmlwdFdvcmtlcnM6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwubmV4dFNjcmlwdFdvcmtlcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluTG9jYWxlczogKF9uZXh0Q29uZmlnX2kxOG4gPSBuZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfbmV4dENvbmZpZ19pMThuLmRvbWFpbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogbmV4dENvbmZpZy5jcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpWm9uZURyYWZ0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBuZXh0Q29uZmlnLmJhc2VQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsQmFzZTogbmV4dENvbmZpZy5hbXAuY2Fub25pY2FsQmFzZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcE9wdGltaXplckNvbmZpZzogKF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAgPSBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5hbXApID09IG51bGwgPyB2b2lkIDAgOiBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wLm9wdGltaXplcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5kaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcmdlUGFnZURhdGFCeXRlczogbmV4dENvbmZpZy5leHBlcmltZW50YWwubGFyZ2VQYWdlRGF0YUJ5dGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT25seSB0aGUgYHB1YmxpY1J1bnRpbWVDb25maWdgIGtleSBpcyBleHBvc2VkIHRvIHRoZSBjbGllbnQgc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSXQnbGwgYmUgcmVuZGVyZWQgYXMgcGFydCBvZiBfX05FWFRfREFUQV9fIG9uIHRoZSBjbGllbnQgc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVudGltZUNvbmZpZzogT2JqZWN0LmtleXMocHVibGljUnVudGltZUNvbmZpZykubGVuZ3RoID4gMCA/IHB1YmxpY1J1bnRpbWVDb25maWcgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0V4cGVyaW1lbnRhbENvbXBpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlcmltZW50YWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRUcmFjZU1ldGFkYXRhOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5jbGllbnRUcmFjZU1ldGFkYXRhIHx8IFtdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc3JTdGF0dXM6IHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQuc2V0SXNyU3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXh0RGF0YVJlcXVlc3Q6IGlzTmV4dERhdGFSZXF1ZXN0ICYmIChoYXNTZXJ2ZXJQcm9wcyB8fCBoYXNTdGF0aWNQcm9wcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlZFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvciBnZXRTZXJ2ZXJTaWRlUHJvcHMgYW5kIGdldEluaXRpYWxQcm9wcyB3ZSBuZWVkIHRvIGVuc3VyZSB3ZSB1c2UgdGhlIG9yaWdpbmFsIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG5vdCB0aGUgcmVzb2x2ZWQgVVJMIHRvIHByZXZlbnQgYSBoeWRyYXRpb24gbWlzbWF0Y2ggb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzUGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRBc1BhdGg6IGhhc1NlcnZlclByb3BzIHx8IGhhc0dldEluaXRpYWxQcm9wcyA/ICgwLCBfZm9ybWF0dXJsLmZvcm1hdFVybCkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIHVzZSB0aGUgb3JpZ2luYWwgVVJMIHBhdGhuYW1lIGxlc3MgdGhlIF9uZXh0L2RhdGEgcHJlZml4IGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJlc2VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBpc05leHREYXRhUmVxdWVzdCA/ICgwLCBfbm9ybWFsaXplZGF0YXBhdGgubm9ybWFsaXplRGF0YVBhdGgpKG9yaWdpbmFsUGF0aG5hbWUpIDogb3JpZ2luYWxQYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogb3JpZ2luYWxRdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgOiByZXNvbHZlZFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JEZWJ1ZzogKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnUGFnZXNFcnJvckRlYnVnJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnI6ICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcSwgJ2ludm9rZUVycm9yJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXY6IHJvdXRlTW9kdWxlLmlzRGV2LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVlZGVkIGZvciBleHBlcmltZW50YWwub3B0aW1pemVDc3MgZmVhdHVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdERpcjogX3BhdGguZGVmYXVsdC5qb2luKC8qIHR1cmJvcGFja0lnbm9yZTogdHJ1ZSAqLyBwcm9jZXNzLmN3ZCgpLCByb3V0ZU1vZHVsZS5yZWxhdGl2ZVByb2plY3REaXIsIHJvdXRlTW9kdWxlLmRpc3REaXIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1wU2tpcFZhbGlkYXRpb246IChfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wMSA9IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmFtcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAxLnNraXBWYWxpZGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1wVmFsaWRhdG9yOiAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdhbXBWYWxpZGF0b3InKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbigocmVuZGVyUmVzdWx0KT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG1ldGFkYXRhIH0gPSByZW5kZXJSZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjYWNoZUNvbnRyb2wgPSBtZXRhZGF0YS5jYWNoZUNvbnRyb2w7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnaXNOb3RGb3VuZCcgaW4gbWV0YWRhdGEgJiYgbWV0YWRhdGEuaXNOb3RGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGBpc1JlZGlyZWN0YC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGFkYXRhLmlzUmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogX3Jlc3BvbnNlY2FjaGUuQ2FjaGVkUm91dGVLaW5kLlJFRElSRUNULFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczogbWV0YWRhdGEucGFnZURhdGEgPz8gbWV0YWRhdGEuZmxpZ2h0RGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sOiByZW5kZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURhdGE6IHJlbmRlclJlc3VsdC5tZXRhZGF0YS5wYWdlRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiByZW5kZXJSZXN1bHQubWV0YWRhdGEuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlbmRlclJlc3VsdC5tZXRhZGF0YS5zdGF0dXNDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNwYW4pIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwLnN0YXR1c19jb2RlJzogcmVzLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5yc2MnOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdFNwYW5BdHRyaWJ1dGVzID0gdHJhY2VyLmdldFJvb3RTcGFuQXR0cmlidXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBnZXQgYXR0cmlidXRlcywgcHJvYmFibHkgT1RFTCBpcyBub3QgZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJvb3RTcGFuQXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnNwYW5fdHlwZScpICE9PSBfY29uc3RhbnRzLkJhc2VTZXJ2ZXJTcGFuLmhhbmRsZVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCByb290IHNwYW4gdHlwZSAnJHtyb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnNwYW5fdHlwZScpfScuIFBsZWFzZSByZXBvcnQgdGhpcyBOZXh0LmpzIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qc2ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gcm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5yb3V0ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm91dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBgJHttZXRob2R9ICR7cm91dGV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25leHQucm91dGUnOiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5yb3V0ZSc6IHJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXh0LnNwYW5fbmFtZSc6IG5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi51cGRhdGVOYW1lKG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi51cGRhdGVOYW1lKGAke21ldGhvZH0gJHtyZXEudXJsfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGlzIGEgYmFja2dyb3VuZCByZXZhbGlkYXRlIHdlIG5lZWQgdG8gcmVwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlcXVlc3QgZXJyb3IgaGVyZSBhcyBpdCB3b24ndCBiZSBidWJibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzQ2FjaGVFbnRyeSA9PSBudWxsID8gdm9pZCAwIDogcHJldmlvdXNDYWNoZUVudHJ5LmlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcm91dGVNb2R1bGUub25SZXF1ZXN0RXJyb3IocmVxLCBlcnIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlcktpbmQ6ICdQYWdlcyBSb3V0ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVQYXRoOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVUeXBlOiAncmVuZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVSZWFzb246ICgwLCBfdXRpbHMuZ2V0UmV2YWxpZGF0ZVJlYXNvbikoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmV2YWxpZGF0ZTogaGFzU3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHJvdXRlclNlcnZlckNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3ZlIGFscmVhZHkgZ2VuZXJhdGVkIHRoaXMgcGFnZSB3ZSBubyBsb25nZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VydmUgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXNyRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNJc3JGYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tSZXNwb25zZSA9IGF3YWl0IHJvdXRlTW9kdWxlLmdldFJlc3BvbnNlQ2FjaGUocmVxKS5nZXQocm91dGVNb2R1bGUuaXNEZXYgPyBudWxsIDogbG9jYWxlID8gYC8ke2xvY2FsZX0ke3NyY1BhZ2V9YCA6IHNyY1BhZ2UsIGFzeW5jICh7IHByZXZpb3VzQ2FjaGVFbnRyeTogcHJldmlvdXNGYWxsYmFja0NhY2hlRW50cnkgPSBudWxsIH0pPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyb3V0ZU1vZHVsZS5pc0Rldikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF91dGlsczIudG9SZXNwb25zZUNhY2hlRW50cnkpKHByZXZpb3VzRmFsbGJhY2tDYWNoZUVudHJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvUmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVLaW5kOiBfcm91dGVraW5kLlJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50YWxDYWNoZTogYXdhaXQgcm91dGVNb2R1bGUuZ2V0SW5jcmVtZW50YWxDYWNoZShyZXEsIG5leHRDb25maWcsIHByZXJlbmRlck1hbmlmZXN0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0VW50aWw6IGN0eC53YWl0VW50aWxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGNhY2hlIGNvbnRyb2wgZnJvbSB0aGUgcmVzcG9uc2UgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXNlZCBpbiB0aGUgc3Vycm91bmRpbmcgY2FjaGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZhbGxiYWNrUmVzcG9uc2UuY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrUmVzcG9uc2UuaXNNaXNzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsbGJhY2tSZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoISgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcSwgJ21pbmltYWxNb2RlJykgJiYgaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQgJiYgIXByZXZpb3VzQ2FjaGVFbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbi1kZW1hbmQgcmV2YWxpZGF0ZSBhbHdheXMgc2V0cyB0aGlzIGhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcigneC1uZXh0anMtY2FjaGUnLCAnUkVWQUxJREFURUQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5lbmQoJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0lzckZhbGxiYWNrICYmIChwcmV2aW91c0NhY2hlRW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IChfcHJldmlvdXNDYWNoZUVudHJ5X3ZhbHVlID0gcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3ByZXZpb3VzQ2FjaGVFbnRyeV92YWx1ZS5raW5kKSA9PT0gX3Jlc3BvbnNlY2FjaGUuQ2FjaGVkUm91dGVLaW5kLlBBR0VTKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogbmV3IF9yZW5kZXJyZXN1bHQuZGVmYXVsdChCdWZmZXIuZnJvbShwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuaHRtbCksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBfY29uc3RhbnRzMS5IVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9SZW5kZXIoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJvdXRlTW9kdWxlLmhhbmRsZVJlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVLaW5kOiBfcm91dGVraW5kLlJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkLFxuICAgICAgICAgICAgICAgICAgICB3YWl0VW50aWw6IGN0eC53YWl0VW50aWwsXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlR2VuZXJhdG9yOiByZXNwb25zZUdlbmVyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgcHJlcmVuZGVyTWFuaWZlc3RcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyBpZiB3ZSBnb3QgYSBjYWNoZSBoaXQgdGhpcyB3YXNuJ3QgYW4gSVNSIGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgLy8gYnV0IGl0IHdhc24ndCBnZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkIHNvIGlzbid0IGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIHByZXJlbmRlci1tYW5pZmVzdFxuICAgICAgICAgICAgICAgIGlmIChpc0lzckZhbGxiYWNrICYmICEocmVzdWx0ID09IG51bGwgPyB2b2lkIDAgOiByZXN1bHQuaXNNaXNzKSkge1xuICAgICAgICAgICAgICAgICAgICBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHJlc3BvbnNlIGlzIGZpbmlzaGVkIGlzIG5vIGNhY2hlIGVudHJ5XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaGFzU3RhdGljUHJvcHMgJiYgISgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcSwgJ21pbmltYWxNb2RlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcigneC1uZXh0anMtY2FjaGUnLCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA/ICdSRVZBTElEQVRFRCcgOiByZXN1bHQuaXNNaXNzID8gJ01JU1MnIDogcmVzdWx0LmlzU3RhbGUgPyAnU1RBTEUnIDogJ0hJVCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgIGlmICghaGFzU3RhdGljUHJvcHMgfHwgaXNJc3JGYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlcy5nZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzNDA0UGFnZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3RGb3VuZFJldmFsaWRhdGUgPSAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdub3RGb3VuZFJldmFsaWRhdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogdHlwZW9mIG5vdEZvdW5kUmV2YWxpZGF0ZSA9PT0gJ3VuZGVmaW5lZCcgPyAwIDogbm90Rm91bmRSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzNTAwUGFnZSkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5jYWNoZUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNhY2hlIGVudHJ5IGhhcyBhIGNhY2hlIGNvbnRyb2wgd2l0aCBhIHJldmFsaWRhdGUgdmFsdWUgdGhhdCdzXG4gICAgICAgICAgICAgICAgICAgIC8vIGEgbnVtYmVyLCB1c2UgaXQuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9yZXN1bHRfY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhbGlkIHJldmFsaWRhdGUgY29uZmlndXJhdGlvbiBwcm92aWRlZDogJHtyZXN1bHQuY2FjaGVDb250cm9sLnJldmFsaWRhdGV9IDwgMWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTIyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiByZXN1bHQuY2FjaGVDb250cm9sLnJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiAoKF9yZXN1bHRfY2FjaGVDb250cm9sID0gcmVzdWx0LmNhY2hlQ29udHJvbCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXN1bHRfY2FjaGVDb250cm9sLmV4cGlyZSkgPz8gbmV4dENvbmZpZy5leHBpcmVUaW1lXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV2YWxpZGF0ZTogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBfY29uc3RhbnRzMS5DQUNIRV9PTkVfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBJZiBjYWNoZSBjb250cm9sIGlzIGFscmVhZHkgc2V0IG9uIHRoZSByZXNwb25zZSB3ZSBkb24ndFxuICAgICAgICAgICAgICAgIC8vIG92ZXJyaWRlIGl0IHRvIGFsbG93IHVzZXJzIHRvIGN1c3RvbWl6ZSBpdCB2aWEgbmV4dC5jb25maWdcbiAgICAgICAgICAgICAgICBpZiAoY2FjaGVDb250cm9sICYmICFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICgwLCBfY2FjaGVjb250cm9sLmdldENhY2hlQ29udHJvbEhlYWRlcikoY2FjaGVDb250cm9sKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIG5vdEZvdW5kOiB0cnVlIGNhc2VcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3Jlc3VsdF9jYWNoZUNvbnRyb2wxO1xuICAgICAgICAgICAgICAgICAgICAvLyBhZGQgcmV2YWxpZGF0ZSBtZXRhZGF0YSBiZWZvcmUgcmVuZGVyaW5nIDQwNCBwYWdlXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGlzIGFzIHNvdXJjZSBvZiB0cnV0aCBmb3IgdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIGNhY2hlLWNvbnRyb2wgaGVhZGVyIGluc3RlYWQgb2Ygd2hhdCB0aGUgNDA0IHBhZ2UgcmV0dXJuc1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHJldmFsaWRhdGUgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9yZXF1ZXN0bWV0YS5hZGRSZXF1ZXN0TWV0YSkocmVxLCAnbm90Rm91bmRSZXZhbGlkYXRlJywgKF9yZXN1bHRfY2FjaGVDb250cm9sMSA9IHJlc3VsdC5jYWNoZUNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzdWx0X2NhY2hlQ29udHJvbDEucmV2YWxpZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOZXh0RGF0YVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5lbmQoJ3tcIm5vdEZvdW5kXCI6dHJ1ZX0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBzaG91bGQgcm91dGUtbW9kdWxlIGl0c2VsZiBoYW5kbGUgcmVuZGVyaW5nIHRoZSA0MDRcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQucmVuZGVyNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCByb3V0ZXJTZXJ2ZXJDb250ZXh0LnJlbmRlcjQwNChyZXEsIHJlcywgcGFyc2VkVXJsLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlLmtpbmQgPT09IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5SRURJUkVDVCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOZXh0RGF0YVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ2NvbnRlbnQtdHlwZScsIF9jb25zdGFudHMxLkpTT05fQ09OVEVOVF9UWVBFX0hFQURFUik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKEpTT04uc3RyaW5naWZ5KHJlc3VsdC52YWx1ZS5wcm9wcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlUmVkaXJlY3QgPSAocGFnZURhdGEpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVkaXJlY3QgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBwYWdlRGF0YS5wYWdlUHJvcHMuX19OX1JFRElSRUNULFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBwYWdlRGF0YS5wYWdlUHJvcHMuX19OX1JFRElSRUNUX1NUQVRVUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVBhdGg6IHBhZ2VEYXRhLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gKDAsIF9yZWRpcmVjdHN0YXR1cy5nZXRSZWRpcmVjdFN0YXR1cykocmVkaXJlY3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgYmFzZVBhdGggfSA9IG5leHRDb25maWc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VQYXRoICYmIHJlZGlyZWN0LmJhc2VQYXRoICE9PSBmYWxzZSAmJiByZWRpcmVjdC5kZXN0aW5hdGlvbi5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3QuZGVzdGluYXRpb24gPSBgJHtiYXNlUGF0aH0ke3JlZGlyZWN0LmRlc3RpbmF0aW9ufWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdC5kZXN0aW5hdGlvbi5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3QuZGVzdGluYXRpb24gPSAoMCwgX3V0aWxzMS5ub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMpKHJlZGlyZWN0LmRlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0xvY2F0aW9uJywgcmVkaXJlY3QuZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXNDb2RlID09PSBfcmVkaXJlY3RzdGF0dXNjb2RlLlJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdSZWZyZXNoJywgYDA7dXJsPSR7cmVkaXJlY3QuZGVzdGluYXRpb259YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5lbmQocmVkaXJlY3QuZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGhhbmRsZVJlZGlyZWN0KHJlc3VsdC52YWx1ZS5wcm9wcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlLmtpbmQgIT09IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5QQUdFUykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhcmlhbnQ6IHJlY2VpdmVkIG5vbi1wYWdlcyBjYWNoZSBlbnRyeSBpbiBwYWdlcyBoYW5kbGVyYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTY5NVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEluIGRldiwgd2Ugc2hvdWxkIG5vdCBjYWNoZSBwYWdlcyBmb3IgYW55IHJlYXNvbi5cbiAgICAgICAgICAgICAgICBpZiAocm91dGVNb2R1bGUuaXNEZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICduby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIERyYWZ0IG1vZGUgc2hvdWxkIG5ldmVyIGJlIGNhY2hlZFxuICAgICAgICAgICAgICAgIGlmIChpc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ3ByaXZhdGUsIG5vLWNhY2hlLCBuby1zdG9yZSwgbWF4LWFnZT0wLCBtdXN0LXJldmFsaWRhdGUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gd2hlbiBpbnZva2luZyBfZXJyb3IgYmVmb3JlIHBhZ2VzLzUwMCB3ZSBkb24ndCBhY3R1YWxseVxuICAgICAgICAgICAgICAgIC8vIHNlbmQgdGhlIF9lcnJvciByZXNwb25zZVxuICAgICAgICAgICAgICAgIGlmICgoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdjdXN0b21FcnJvclJlbmRlcicpIHx8IGlzRXJyb3JQYWdlICYmICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcSwgJ21pbmltYWxNb2RlJykgJiYgcmVzLnN0YXR1c0NvZGUgPT09IDUwMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXdhaXQgKDAsIF9zZW5kcGF5bG9hZC5zZW5kUmVuZGVyUmVzdWx0KSh7XG4gICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgcmVuZGVyaW5nIHRoZSBlcnJvciBwYWdlIGl0J3Mgbm90IGEgZGF0YSByZXF1ZXN0XG4gICAgICAgICAgICAgICAgICAgIC8vIGFueW1vcmVcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBpc05leHREYXRhUmVxdWVzdCAmJiAhaXNFcnJvclBhZ2UgJiYgIWlzNTAwUGFnZSA/IG5ldyBfcmVuZGVycmVzdWx0LmRlZmF1bHQoQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkocmVzdWx0LnZhbHVlLnBhZ2VEYXRhKSksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBfY29uc3RhbnRzMS5KU09OX0NPTlRFTlRfVFlQRV9IRUFERVIsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YTogcmVzdWx0LnZhbHVlLmh0bWwubWV0YWRhdGFcbiAgICAgICAgICAgICAgICAgICAgfSkgOiByZXN1bHQudmFsdWUuaHRtbCxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVFdGFnczogbmV4dENvbmZpZy5nZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgICAgICBwb3dlcmVkQnlIZWFkZXI6IG5leHRDb25maWcucG93ZXJlZEJ5SGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHJvdXRlTW9kdWxlLmlzRGV2ID8gdW5kZWZpbmVkIDogY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gVE9ETzogYWN0aXZlU3BhbiBjb2RlIHBhdGggaXMgZm9yIHdoZW4gd3JhcHBlZCBieVxuICAgICAgICAgICAgLy8gbmV4dC1zZXJ2ZXIgY2FuIGJlIHJlbW92ZWQgd2hlbiB0aGlzIGlzIG5vIGxvbmdlciB1c2VkXG4gICAgICAgICAgICBpZiAoYWN0aXZlU3Bhbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IGhhbmRsZVJlc3BvbnNlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRyYWNlci53aXRoUHJvcGFnYXRlZENvbnRleHQocmVxLmhlYWRlcnMsICgpPT50cmFjZXIudHJhY2UoX2NvbnN0YW50cy5CYXNlU2VydmVyU3Bhbi5oYW5kbGVSZXF1ZXN0LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuTmFtZTogYCR7bWV0aG9kfSAke3JlcS51cmx9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IF90cmFjZXIuU3BhbktpbmQuU0VSVkVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwLm1ldGhvZCc6IG1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC50YXJnZXQnOiByZXEudXJsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIGhhbmRsZVJlc3BvbnNlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKCEoZXJyIGluc3RhbmNlb2YgX25vZmFsbGJhY2tlcnJvcmV4dGVybmFsLk5vRmFsbGJhY2tFcnJvcikpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCByb3V0ZU1vZHVsZS5vblJlcXVlc3RFcnJvcihyZXEsIGVyciwge1xuICAgICAgICAgICAgICAgICAgICByb3V0ZXJLaW5kOiAnUGFnZXMgUm91dGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVQYXRoOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZVR5cGU6ICdyZW5kZXInLFxuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlUmVhc29uOiAoMCwgX3V0aWxzLmdldFJldmFsaWRhdGVSZWFzb24pKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUmV2YWxpZGF0ZTogaGFzU3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0sIHJvdXRlclNlcnZlckNvbnRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcmV0aHJvdyBzbyB0aGF0IHdlIGNhbiBoYW5kbGUgc2VydmluZyBlcnJvciBwYWdlXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9O1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtaGFuZGxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/pages-handler.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js": /*!********************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js ***! \********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.AmpContext;\n\n//# sourceMappingURL=amp-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvYW1wLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix5TEFBaUY7O0FBRWpGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvYW1wLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkFtcENvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFtcC1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js ***! \*****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HeadManagerContext;\n\n//# sourceMappingURL=head-manager-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixpTUFBeUY7O0FBRXpGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkhlYWRNYW5hZ2VyQ29udGV4dDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVhZC1tYW5hZ2VyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js": /*!*********************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js ***! \*********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HtmlContext;\n\n//# sourceMappingURL=html-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvaHRtbC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMExBQWtGOztBQUVsRiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2h0bWwtY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSHRtbENvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0bWwtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/send-payload.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/send-payload.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n sendEtagResponse: function() {\n return sendEtagResponse;\n },\n sendRenderResult: function() {\n return sendRenderResult;\n }\n});\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _etag = __webpack_require__(/*! ./lib/etag */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js\");\nconst _fresh = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/fresh */ \"(pages-dir-node)/./node_modules/next/dist/compiled/fresh/index.js\"));\nconst _cachecontrol = __webpack_require__(/*! ./lib/cache-control */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\");\nconst _constants = __webpack_require__(/*! ../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction sendEtagResponse(req, res, etag) {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */ res.setHeader('ETag', etag);\n }\n if ((0, _fresh.default)(req.headers, {\n etag\n })) {\n res.statusCode = 304;\n res.end();\n return true;\n }\n return false;\n}\nasync function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl }) {\n if ((0, _utils.isResSent)(res)) {\n return;\n }\n if (poweredByHeader && result.contentType === _constants.HTML_CONTENT_TYPE_HEADER) {\n res.setHeader('X-Powered-By', 'Next.js');\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString();\n if (generateEtags && payload !== null) {\n const etag = (0, _etag.generateETag)(payload);\n if (sendEtagResponse(req, res, etag)) {\n return;\n }\n }\n if (!res.getHeader('Content-Type') && result.contentType) {\n res.setHeader('Content-Type', result.contentType);\n }\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload));\n }\n if (req.method === 'HEAD') {\n res.end(null);\n return;\n }\n if (payload !== null) {\n res.end(payload);\n return;\n }\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res);\n}\n\n//# sourceMappingURL=send-payload.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcGF5bG9hZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsMEZBQXFCO0FBQzVDLGNBQWMsbUJBQU8sQ0FBQyxnRkFBWTtBQUNsQyxzREFBc0QsbUJBQU8sQ0FBQyxtR0FBMEI7QUFDeEYsc0JBQXNCLG1CQUFPLENBQUMsa0dBQXFCO0FBQ25ELG1CQUFtQixtQkFBTyxDQUFDLG9GQUFrQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsZ0VBQWdFO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvc2VuZC1wYXlsb2FkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgc2VuZEV0YWdSZXNwb25zZTogbnVsbCxcbiAgICBzZW5kUmVuZGVyUmVzdWx0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHNlbmRFdGFnUmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VuZEV0YWdSZXNwb25zZTtcbiAgICB9LFxuICAgIHNlbmRSZW5kZXJSZXN1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VuZFJlbmRlclJlc3VsdDtcbiAgICB9XG59KTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xuY29uc3QgX2V0YWcgPSByZXF1aXJlKFwiLi9saWIvZXRhZ1wiKTtcbmNvbnN0IF9mcmVzaCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvZnJlc2hcIikpO1xuY29uc3QgX2NhY2hlY29udHJvbCA9IHJlcXVpcmUoXCIuL2xpYi9jYWNoZS1jb250cm9sXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBzZW5kRXRhZ1Jlc3BvbnNlKHJlcSwgcmVzLCBldGFnKSB7XG4gICAgaWYgKGV0YWcpIHtcbiAgICAgICAgLyoqXG4gICAgICogVGhlIHNlcnZlciBnZW5lcmF0aW5nIGEgMzA0IHJlc3BvbnNlIE1VU1QgZ2VuZXJhdGUgYW55IG9mIHRoZVxuICAgICAqIGZvbGxvd2luZyBoZWFkZXIgZmllbGRzIHRoYXQgd291bGQgaGF2ZSBiZWVuIHNlbnQgaW4gYSAyMDAgKE9LKVxuICAgICAqIHJlc3BvbnNlIHRvIHRoZSBzYW1lIHJlcXVlc3Q6IENhY2hlLUNvbnRyb2wsIENvbnRlbnQtTG9jYXRpb24sIERhdGUsXG4gICAgICogRVRhZywgRXhwaXJlcywgYW5kIFZhcnkuIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMyI3NlY3Rpb24tNC4xXG4gICAgICovIHJlcy5zZXRIZWFkZXIoJ0VUYWcnLCBldGFnKTtcbiAgICB9XG4gICAgaWYgKCgwLCBfZnJlc2guZGVmYXVsdCkocmVxLmhlYWRlcnMsIHtcbiAgICAgICAgZXRhZ1xuICAgIH0pKSB7XG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMzA0O1xuICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5hc3luYyBmdW5jdGlvbiBzZW5kUmVuZGVyUmVzdWx0KHsgcmVxLCByZXMsIHJlc3VsdCwgZ2VuZXJhdGVFdGFncywgcG93ZXJlZEJ5SGVhZGVyLCBjYWNoZUNvbnRyb2wgfSkge1xuICAgIGlmICgoMCwgX3V0aWxzLmlzUmVzU2VudCkocmVzKSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChwb3dlcmVkQnlIZWFkZXIgJiYgcmVzdWx0LmNvbnRlbnRUeXBlID09PSBfY29uc3RhbnRzLkhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUikge1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdYLVBvd2VyZWQtQnknLCAnTmV4dC5qcycpO1xuICAgIH1cbiAgICAvLyBJZiBjYWNoZSBjb250cm9sIGlzIGFscmVhZHkgc2V0IG9uIHRoZSByZXNwb25zZSB3ZSBkb24ndFxuICAgIC8vIG92ZXJyaWRlIGl0IHRvIGFsbG93IHVzZXJzIHRvIGN1c3RvbWl6ZSBpdCB2aWEgbmV4dC5jb25maWdcbiAgICBpZiAoY2FjaGVDb250cm9sICYmICFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICgwLCBfY2FjaGVjb250cm9sLmdldENhY2hlQ29udHJvbEhlYWRlcikoY2FjaGVDb250cm9sKSk7XG4gICAgfVxuICAgIGNvbnN0IHBheWxvYWQgPSByZXN1bHQuaXNEeW5hbWljID8gbnVsbCA6IHJlc3VsdC50b1VuY2h1bmtlZFN0cmluZygpO1xuICAgIGlmIChnZW5lcmF0ZUV0YWdzICYmIHBheWxvYWQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZXRhZyA9ICgwLCBfZXRhZy5nZW5lcmF0ZUVUYWcpKHBheWxvYWQpO1xuICAgICAgICBpZiAoc2VuZEV0YWdSZXNwb25zZShyZXEsIHJlcywgZXRhZykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJlcy5nZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScpICYmIHJlc3VsdC5jb250ZW50VHlwZSkge1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCByZXN1bHQuY29udGVudFR5cGUpO1xuICAgIH1cbiAgICBpZiAocGF5bG9hZCkge1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIEJ1ZmZlci5ieXRlTGVuZ3RoKHBheWxvYWQpKTtcbiAgICB9XG4gICAgaWYgKHJlcS5tZXRob2QgPT09ICdIRUFEJykge1xuICAgICAgICByZXMuZW5kKG51bGwpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChwYXlsb2FkICE9PSBudWxsKSB7XG4gICAgICAgIHJlcy5lbmQocGF5bG9hZCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gUGlwZSB0aGUgcmVuZGVyIHJlc3VsdCB0byB0aGUgcmVzcG9uc2UgYWZ0ZXIgd2UgZ2V0IGEgd3JpdGVyIGZvciBpdC5cbiAgICBhd2FpdCByZXN1bHQucGlwZVRvTm9kZVJlc3BvbnNlKHJlcyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlbmQtcGF5bG9hZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/send-payload.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/encoded-tags.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ENCODED_TAGS\", ({\n enumerable: true,\n get: function() {\n return ENCODED_TAGS;\n }\n}));\nconst ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as `<body className=''>`\n OPENING: {\n // <html\n HTML: new Uint8Array([\n 60,\n 104,\n 116,\n 109,\n 108\n ]),\n // <body\n BODY: new Uint8Array([\n 60,\n 98,\n 111,\n 100,\n 121\n ])\n },\n CLOSED: {\n // </head>\n HEAD: new Uint8Array([\n 60,\n 47,\n 104,\n 101,\n 97,\n 100,\n 62\n ]),\n // </body>\n BODY: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62\n ]),\n // </html>\n HTML: new Uint8Array([\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ]),\n // </body></html>\n BODY_AND_HTML: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62,\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ])\n },\n META: {\n // Only the match the prefix cause the suffix can be different wether it's xml compatible or not \">\" or \"/>\"\n // <meta name=\"«nxt-icon»\"\n // This is a special mark that will be replaced by the icon insertion script tag.\n ICON_MARK: new Uint8Array([\n 60,\n 109,\n 101,\n 116,\n 97,\n 32,\n 110,\n 97,\n 109,\n 101,\n 61,\n 34,\n 194,\n 171,\n 110,\n 120,\n 116,\n 45,\n 105,\n 99,\n 111,\n 110,\n 194,\n 187,\n 34\n ])\n }\n};\n\n//# sourceMappingURL=encoded-tags.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9lbmNvZGVkLXRhZ3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnREFBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9lbmNvZGVkLXRhZ3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJFTkNPREVEX1RBR1NcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEVOQ09ERURfVEFHUztcbiAgICB9XG59KTtcbmNvbnN0IEVOQ09ERURfVEFHUyA9IHtcbiAgICAvLyBvcGVuaW5nIHRhZ3MgZG8gbm90IGhhdmUgdGhlIGNsb3NpbmcgYD5gIHNpbmNlIHRoZXkgY2FuIGNvbnRhaW4gb3RoZXIgYXR0cmlidXRlcyBzdWNoIGFzIGA8Ym9keSBjbGFzc05hbWU9Jyc+YFxuICAgIE9QRU5JTkc6IHtcbiAgICAgICAgLy8gPGh0bWxcbiAgICAgICAgSFRNTDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDhcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDxib2R5XG4gICAgICAgIEJPRFk6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgOTgsXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAxMjFcbiAgICAgICAgXSlcbiAgICB9LFxuICAgIENMT1NFRDoge1xuICAgICAgICAvLyA8L2hlYWQ+XG4gICAgICAgIEhFQUQ6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICA5NyxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8L2JvZHk+XG4gICAgICAgIEJPRFk6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICA5OCxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDEyMSxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8L2h0bWw+XG4gICAgICAgIEhUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDgsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9ib2R5PjwvaHRtbD5cbiAgICAgICAgQk9EWV9BTkRfSFRNTDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMTIxLFxuICAgICAgICAgICAgNjIsXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4LFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSlcbiAgICB9LFxuICAgIE1FVEE6IHtcbiAgICAgICAgLy8gT25seSB0aGUgbWF0Y2ggdGhlIHByZWZpeCBjYXVzZSB0aGUgc3VmZml4IGNhbiBiZSBkaWZmZXJlbnQgd2V0aGVyIGl0J3MgeG1sIGNvbXBhdGlibGUgb3Igbm90IFwiPlwiIG9yIFwiLz5cIlxuICAgICAgICAvLyA8bWV0YSBuYW1lPVwiwqtueHQtaWNvbsK7XCJcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgbWFyayB0aGF0IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGljb24gaW5zZXJ0aW9uIHNjcmlwdCB0YWcuXG4gICAgICAgIElDT05fTUFSSzogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICA5NyxcbiAgICAgICAgICAgIDMyLFxuICAgICAgICAgICAgMTEwLFxuICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICA2MSxcbiAgICAgICAgICAgIDM0LFxuICAgICAgICAgICAgMTk0LFxuICAgICAgICAgICAgMTcxLFxuICAgICAgICAgICAgMTEwLFxuICAgICAgICAgICAgMTIwLFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgNDUsXG4gICAgICAgICAgICAxMDUsXG4gICAgICAgICAgICA5OSxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgIDE5NCxcbiAgICAgICAgICAgIDE4NyxcbiAgICAgICAgICAgIDM0XG4gICAgICAgIF0pXG4gICAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZW5jb2RlZC10YWdzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n chainStreams: function() {\n return chainStreams;\n },\n continueDynamicHTMLResume: function() {\n return continueDynamicHTMLResume;\n },\n continueDynamicPrerender: function() {\n return continueDynamicPrerender;\n },\n continueFizzStream: function() {\n return continueFizzStream;\n },\n continueStaticPrerender: function() {\n return continueStaticPrerender;\n },\n createBufferedTransformStream: function() {\n return createBufferedTransformStream;\n },\n createDocumentClosingStream: function() {\n return createDocumentClosingStream;\n },\n createRootLayoutValidatorStream: function() {\n return createRootLayoutValidatorStream;\n },\n renderToInitialFizzStream: function() {\n return renderToInitialFizzStream;\n },\n streamFromBuffer: function() {\n return streamFromBuffer;\n },\n streamFromString: function() {\n return streamFromString;\n },\n streamToBuffer: function() {\n return streamToBuffer;\n },\n streamToString: function() {\n return streamToString;\n }\n});\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _detachedpromise = __webpack_require__(/*! ../../lib/detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\");\nconst _encodedtags = __webpack_require__(/*! ./encoded-tags */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\nconst _uint8arrayhelpers = __webpack_require__(/*! ./uint8array-helpers */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\");\nconst _constants1 = __webpack_require__(/*! ../../shared/lib/errors/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nconst _outputexportprefetchencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/output-export-prefetch-encoding */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\");\nfunction voidCatch() {\n// this catcher is designed to be used with pipeTo where we expect the underlying\n// pipe implementation to forward errors but we don't want the pipeTo promise to reject\n// and be unhandled\n}\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder();\nfunction chainStreams(...streams) {\n // If we have no streams, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n if (streams.length === 0) {\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0];\n }\n const { readable, writable } = new TransformStream();\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, {\n preventClose: true\n });\n let i = 1;\n for(; i < streams.length - 1; i++){\n const nextStream = streams[i];\n promise = promise.then(()=>nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(voidCatch);\n return readable;\n}\nfunction streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nfunction streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToBuffer(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return Buffer.concat(chunks);\n}\nasync function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nfunction createBufferedTransformStream() {\n let bufferedChunks = [];\n let bufferByteLength = 0;\n let pending;\n const flush = (controller)=>{\n // If we already have a pending flush, then return early.\n if (pending) return;\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n // Combine the previous buffer with the new chunk.\n bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\n // Flush the buffer to the controller.\n flush(controller);\n },\n flush () {\n if (!pending) return;\n return pending.promise;\n }\n });\n}\nfunction createPrefetchCommentStream(isBuildTimePrerendering, buildId) {\n // Insert an extra comment at the beginning of the HTML document. This must\n // come after the DOCTYPE, which is inserted by React.\n //\n // The first chunk sent by React will contain the doctype. After that, we can\n // pass through the rest of the chunks as-is.\n let didTransformFirstChunk = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (isBuildTimePrerendering && !didTransformFirstChunk) {\n didTransformFirstChunk = true;\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n const chunkStr = decoder.decode(chunk, {\n stream: true\n });\n const updatedChunkStr = (0, _outputexportprefetchencoding.insertBuildIdComment)(chunkStr, buildId);\n controller.enqueue(encoder.encode(updatedChunkStr));\n return;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createMetadataTransformStream(insert) {\n let chunkIndex = -1;\n let isMarkRemoved = false;\n return new TransformStream({\n async transform (chunk, controller) {\n let iconMarkIndex = -1;\n let closedHeadIndex = -1;\n chunkIndex++;\n if (isMarkRemoved) {\n controller.enqueue(chunk);\n return;\n }\n let iconMarkLength = 0;\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.META.ICON_MARK);\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk);\n return;\n } else {\n // When we found the `<meta name=\"«nxt-icon»\"` tag prefix, we will remove it from the chunk.\n // Its close tag could either be `/>` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = _encodedtags.ENCODED_TAGS.META.ICON_MARK.length;\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2;\n } else {\n // The last char is `>`\n iconMarkLength++;\n }\n }\n }\n // Check if icon mark is inside <head> tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n if (iconMarkIndex !== -1) {\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength);\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex);\n chunk = replaced;\n } else {\n // The icon mark is after the head tag, replace and insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(encodedInsertion, iconMarkIndex);\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n }\n isMarkRemoved = true;\n }\n // If there's no icon mark located, it will be handled later when if present in the following chunks.\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex);\n // Set the rest of the chunk after the icon mark.\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n isMarkRemoved = true;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = <head><meta charset=\"utf-8\"></head>\n // insertion = <script>...</script>\n // output = <head><meta charset=\"utf-8\"> [ <script>...</script> ] </head>\n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: <head>...</head><body> [ resume content ] </body>\n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n }\n }\n });\n}\n// Suffix after main body content - scripts before </body>,\n// but wait for the major chunks to be enqueued.\nfunction createDeferredSuffixStream(suffix) {\n let flushed = false;\n let pending;\n const flush = (controller)=>{\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n controller.enqueue(encoder.encode(suffix));\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // If we've already flushed, we're done.\n if (flushed) return;\n // Schedule the flush to happen.\n flushed = true;\n flush(controller);\n },\n flush (controller) {\n if (pending) return pending.promise;\n if (flushed) return;\n // Flush now.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\nfunction createFlightDataInjectionTransformStream(stream, delayDataUntilFirstHtmlChunk) {\n let htmlStreamFinished = false;\n let pull = null;\n let donePulling = false;\n function startOrContinuePulling(controller) {\n if (!pull) {\n pull = startPulling(controller);\n }\n return pull;\n }\n async function startPulling(controller) {\n const reader = stream.getReader();\n if (delayDataUntilFirstHtmlChunk) {\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await (0, _scheduler.atLeastOneTask)();\n }\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n // We want to prioritize HTML over RSC data.\n // The SSR render is based on the same RSC stream, so when we get a new RSC chunk,\n // we're likely to produce an HTML chunk as well, so give it a chance to flush first.\n if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) {\n await (0, _scheduler.atLeastOneTask)();\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n start (controller) {\n if (!delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n flush (controller) {\n htmlStreamFinished = true;\n if (donePulling) {\n return;\n }\n return startOrContinuePulling(controller);\n }\n });\n}\nconst CLOSE_TAG = '</body></html>';\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `</body></html><script>...</script>` will be transformed to\n * `<script>...</script></body></html>`.\n */ function createMoveSuffixStream() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n if (index > -1) {\n foundSuffix = true;\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (chunk.length === _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (chunk.length > _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\n }\n } else {\n controller.enqueue(chunk);\n }\n },\n flush (controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY);\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nfunction createRootLayoutValidatorStream() {\n let foundHtml = false;\n let foundBody = false;\n return new TransformStream({\n async transform (chunk, controller) {\n // Peek into the streamed chunk to see if the tags are present.\n if (!foundHtml && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HTML) > -1) {\n foundHtml = true;\n }\n if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(`<html id=\"__next_error__\">\n <template\n data-next-error-message=\"Missing ${missingTags.map((c)=>`<${c}>`).join(missingTags.length > 1 ? ' and ' : '')} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\n data-next-error-digest=\"${_constants1.MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n ></template>\n `));\n }\n });\n}\nfunction chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nasync function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, isBuildTimePrerendering, buildId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n // If we're generating static HTML we need to wait for it to resolve before continuing.\n if (isStaticGeneration) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Add build id comment to start of the HTML document (in export mode)\n createPrefetchCommentStream(isBuildTimePrerendering, buildId),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createFlightDataInjectionTransformStream(inlinedDataStream, true) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId))// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, true))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { delayDataUntilFirstHtmlChunk, inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, delayDataUntilFirstHtmlChunk))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nfunction createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FjTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZ0JBQWdCLG1CQUFPLENBQUMsaUdBQXFCO0FBQzdDLG1CQUFtQixtQkFBTyxDQUFDLHVHQUF3QjtBQUNuRCx5QkFBeUIsbUJBQU8sQ0FBQyxxR0FBNEI7QUFDN0QsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELHFCQUFxQixtQkFBTyxDQUFDLHFHQUFnQjtBQUM3QywyQkFBMkIsbUJBQU8sQ0FBQyxpSEFBc0I7QUFDekQsb0JBQW9CLG1CQUFPLENBQUMsbUhBQW1DO0FBQy9ELHNDQUFzQyxtQkFBTyxDQUFDLDZLQUFnRTtBQUM5RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFVBQVUsd0JBQXdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGNBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiwyQkFBMkI7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EscUNBQXFDLHdDQUF3QztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCx5QkFBeUIsRUFBRSxpREFBaUQ7QUFDN0gsd0NBQXdDLG9DQUFvQztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsdUpBQXVKO0FBQ3pNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxrREFBa0Q7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRCx1R0FBdUc7QUFDaks7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxtR0FBbUc7QUFDNUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvc3RyZWFtLXV0aWxzL25vZGUtd2ViLXN0cmVhbXMtaGVscGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY2hhaW5TdHJlYW1zOiBudWxsLFxuICAgIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWU6IG51bGwsXG4gICAgY29udGludWVEeW5hbWljUHJlcmVuZGVyOiBudWxsLFxuICAgIGNvbnRpbnVlRml6elN0cmVhbTogbnVsbCxcbiAgICBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjogbnVsbCxcbiAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTogbnVsbCxcbiAgICBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW06IG51bGwsXG4gICAgY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbTogbnVsbCxcbiAgICByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtOiBudWxsLFxuICAgIHN0cmVhbUZyb21CdWZmZXI6IG51bGwsXG4gICAgc3RyZWFtRnJvbVN0cmluZzogbnVsbCxcbiAgICBzdHJlYW1Ub0J1ZmZlcjogbnVsbCxcbiAgICBzdHJlYW1Ub1N0cmluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjaGFpblN0cmVhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2hhaW5TdHJlYW1zO1xuICAgIH0sXG4gICAgY29udGludWVEeW5hbWljSFRNTFJlc3VtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lO1xuICAgIH0sXG4gICAgY29udGludWVEeW5hbWljUHJlcmVuZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjtcbiAgICB9LFxuICAgIGNvbnRpbnVlRml6elN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUZpenpTdHJlYW07XG4gICAgfSxcbiAgICBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjtcbiAgICB9LFxuICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtO1xuICAgIH0sXG4gICAgY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbTtcbiAgICB9LFxuICAgIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbTtcbiAgICB9LFxuICAgIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbTtcbiAgICB9LFxuICAgIHN0cmVhbUZyb21CdWZmZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtRnJvbUJ1ZmZlcjtcbiAgICB9LFxuICAgIHN0cmVhbUZyb21TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtRnJvbVN0cmluZztcbiAgICB9LFxuICAgIHN0cmVhbVRvQnVmZmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbVRvQnVmZmVyO1xuICAgIH0sXG4gICAgc3RyZWFtVG9TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtVG9TdHJpbmc7XG4gICAgfVxufSk7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfZGV0YWNoZWRwcm9taXNlID0gcmVxdWlyZShcIi4uLy4uL2xpYi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuY29uc3QgX2VuY29kZWR0YWdzID0gcmVxdWlyZShcIi4vZW5jb2RlZC10YWdzXCIpO1xuY29uc3QgX3VpbnQ4YXJyYXloZWxwZXJzID0gcmVxdWlyZShcIi4vdWludDhhcnJheS1oZWxwZXJzXCIpO1xuY29uc3QgX2NvbnN0YW50czEgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9lcnJvcnMvY29uc3RhbnRzXCIpO1xuY29uc3QgX291dHB1dGV4cG9ydHByZWZldGNoZW5jb2RpbmcgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL291dHB1dC1leHBvcnQtcHJlZmV0Y2gtZW5jb2RpbmdcIik7XG5mdW5jdGlvbiB2b2lkQ2F0Y2goKSB7XG4vLyB0aGlzIGNhdGNoZXIgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIHBpcGVUbyB3aGVyZSB3ZSBleHBlY3QgdGhlIHVuZGVybHlpbmdcbi8vIHBpcGUgaW1wbGVtZW50YXRpb24gdG8gZm9yd2FyZCBlcnJvcnMgYnV0IHdlIGRvbid0IHdhbnQgdGhlIHBpcGVUbyBwcm9taXNlIHRvIHJlamVjdFxuLy8gYW5kIGJlIHVuaGFuZGxlZFxufVxuLy8gV2UgY2FuIHNoYXJlIHRoZSBzYW1lIGVuY29kZXIgaW5zdGFuY2UgZXZlcnl3aGVyZVxuLy8gTm90YWJseSB3ZSBjYW5ub3QgZG8gdGhlIHNhbWUgZm9yIFRleHREZWNvZGVyIGJlY2F1c2UgaXQgaXMgc3RhdGVmdWxcbi8vIHdoZW4gaGFuZGxpbmcgc3RyZWFtaW5nIGRhdGFcbmNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbmZ1bmN0aW9uIGNoYWluU3RyZWFtcyguLi5zdHJlYW1zKSB7XG4gICAgLy8gSWYgd2UgaGF2ZSBubyBzdHJlYW1zLCByZXR1cm4gYW4gZW1wdHkgc3RyZWFtLiBUaGlzIGJlaGF2aW9yIGlzXG4gICAgLy8gaW50ZW50aW9uYWwgYXMgd2UncmUgbm93IHByb3ZpZGluZyB0aGUgYFJlbmRlclJlc3VsdC5FTVBUWWAgdmFsdWUuXG4gICAgaWYgKHN0cmVhbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBJZiB3ZSBvbmx5IGhhdmUgMSBzdHJlYW0gd2UgZmFzdCBwYXRoIGl0IGJ5IHJldHVybmluZyBqdXN0IHRoaXMgc3RyZWFtXG4gICAgaWYgKHN0cmVhbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW1zWzBdO1xuICAgIH1cbiAgICBjb25zdCB7IHJlYWRhYmxlLCB3cml0YWJsZSB9ID0gbmV3IFRyYW5zZm9ybVN0cmVhbSgpO1xuICAgIC8vIFdlIGFsd2F5cyBpbml0aWF0ZSBwaXBlVG8gaW1tZWRpYXRlbHkuIFdlIGtub3cgd2UgaGF2ZSBhdCBsZWFzdCAyIHN0cmVhbXNcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIGF2b2lkIGNsb3NpbmcgdGhlIHdyaXRhYmxlIHdoZW4gdGhpcyBvbmUgZmluaXNoZXMuXG4gICAgbGV0IHByb21pc2UgPSBzdHJlYW1zWzBdLnBpcGVUbyh3cml0YWJsZSwge1xuICAgICAgICBwcmV2ZW50Q2xvc2U6IHRydWVcbiAgICB9KTtcbiAgICBsZXQgaSA9IDE7XG4gICAgZm9yKDsgaSA8IHN0cmVhbXMubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICAgICAgY29uc3QgbmV4dFN0cmVhbSA9IHN0cmVhbXNbaV07XG4gICAgICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oKCk9Pm5leHRTdHJlYW0ucGlwZVRvKHdyaXRhYmxlLCB7XG4gICAgICAgICAgICAgICAgcHJldmVudENsb3NlOiB0cnVlXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIC8vIFdlIGNhbiBvbWl0IHRoZSBsZW5ndGggY2hlY2sgYmVjYXVzZSB3ZSBoYWx0ZWQgYmVmb3JlIHRoZSBsYXN0IHN0cmVhbSBhbmQgdGhlcmVcbiAgICAvLyBpcyBhdCBsZWFzdCB0d28gc3RyZWFtcyBzbyB0aGUgbGFzdFN0cmVhbSBoZXJlIHdpbGwgYWx3YXlzIGJlIGRlZmluZWRcbiAgICBjb25zdCBsYXN0U3RyZWFtID0gc3RyZWFtc1tpXTtcbiAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKCgpPT5sYXN0U3RyZWFtLnBpcGVUbyh3cml0YWJsZSkpO1xuICAgIC8vIENhdGNoIGFueSBlcnJvcnMgZnJvbSB0aGUgc3RyZWFtcyBhbmQgaWdub3JlIHRoZW0sIHRoZXkgd2lsbCBiZSBoYW5kbGVkXG4gICAgLy8gYnkgd2hhdGV2ZXIgaXMgY29uc3VtaW5nIHRoZSByZWFkYWJsZSBzdHJlYW0uXG4gICAgcHJvbWlzZS5jYXRjaCh2b2lkQ2F0Y2gpO1xuICAgIHJldHVybiByZWFkYWJsZTtcbn1cbmZ1bmN0aW9uIHN0cmVhbUZyb21TdHJpbmcoc3RyKSB7XG4gICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoc3RyKSk7XG4gICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHN0cmVhbUZyb21CdWZmZXIoY2h1bmspIHtcbiAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHN0cmVhbVRvQnVmZmVyKHN0cmVhbSkge1xuICAgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICBjb25zdCBjaHVua3MgPSBbXTtcbiAgICB3aGlsZSh0cnVlKXtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNodW5rcy5wdXNoKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoY2h1bmtzKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHN0cmVhbVRvU3RyaW5nKHN0cmVhbSwgc2lnbmFsKSB7XG4gICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnLCB7XG4gICAgICAgIGZhdGFsOiB0cnVlXG4gICAgfSk7XG4gICAgbGV0IHN0cmluZyA9ICcnO1xuICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2Ygc3RyZWFtKXtcbiAgICAgICAgaWYgKHNpZ25hbCA9PSBudWxsID8gdm9pZCAwIDogc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgc3RyaW5nICs9IGRlY29kZXIuZGVjb2RlKGNodW5rLCB7XG4gICAgICAgICAgICBzdHJlYW06IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0cmluZyArPSBkZWNvZGVyLmRlY29kZSgpO1xuICAgIHJldHVybiBzdHJpbmc7XG59XG5mdW5jdGlvbiBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpIHtcbiAgICBsZXQgYnVmZmVyZWRDaHVua3MgPSBbXTtcbiAgICBsZXQgYnVmZmVyQnl0ZUxlbmd0aCA9IDA7XG4gICAgbGV0IHBlbmRpbmc7XG4gICAgY29uc3QgZmx1c2ggPSAoY29udHJvbGxlcik9PntcbiAgICAgICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgcGVuZGluZyBmbHVzaCwgdGhlbiByZXR1cm4gZWFybHkuXG4gICAgICAgIGlmIChwZW5kaW5nKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGRldGFjaGVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgIHBlbmRpbmcgPSBkZXRhY2hlZDtcbiAgICAgICAgKDAsIF9zY2hlZHVsZXIuc2NoZWR1bGVJbW1lZGlhdGUpKCgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyQnl0ZUxlbmd0aCk7XG4gICAgICAgICAgICAgICAgbGV0IGNvcGllZEJ5dGVzID0gMDtcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYnVmZmVyZWRDaHVua3MubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBidWZmZXJlZENodW5rID0gYnVmZmVyZWRDaHVua3NbaV07XG4gICAgICAgICAgICAgICAgICAgIGNodW5rLnNldChidWZmZXJlZENodW5rLCBjb3BpZWRCeXRlcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvcGllZEJ5dGVzICs9IGJ1ZmZlcmVkQ2h1bmsuYnl0ZUxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2UganVzdCB3cm90ZSBhbGwgdGhlIGJ1ZmZlcmVkIGNodW5rcyBzbyB3ZSBuZWVkIHRvIHJlc2V0IHRoZSBidWZmZXJlZENodW5rcyBhcnJheVxuICAgICAgICAgICAgICAgIC8vIGFuZCBvdXIgYnVmZmVyQnl0ZUxlbmd0aCB0byBwcmVwYXJlIGZvciB0aGUgbmV4dCByb3VuZCBvZiBidWZmZXJlZCBjaHVua3NcbiAgICAgICAgICAgICAgICBidWZmZXJlZENodW5rcy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgIGJ1ZmZlckJ5dGVMZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZW5xdWV1aW5nIGl0IGNhbid0IGJlIGR1ZSB0byB0aGlzXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm1lcnMgZmF1bHQuIEl0J3MgbGlrZWx5IGR1ZSB0byB0aGUgY29udHJvbGxlciBiZWluZ1xuICAgICAgICAgICAgLy8gZXJyb3JlZCBkdWUgdG8gdGhlIHN0cmVhbSBiZWluZyBjYW5jZWxsZWQuXG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBDb21iaW5lIHRoZSBwcmV2aW91cyBidWZmZXIgd2l0aCB0aGUgbmV3IGNodW5rLlxuICAgICAgICAgICAgYnVmZmVyZWRDaHVua3MucHVzaChjaHVuayk7XG4gICAgICAgICAgICBidWZmZXJCeXRlTGVuZ3RoICs9IGNodW5rLmJ5dGVMZW5ndGg7XG4gICAgICAgICAgICAvLyBGbHVzaCB0aGUgYnVmZmVyIHRvIHRoZSBjb250cm9sbGVyLlxuICAgICAgICAgICAgZmx1c2goY29udHJvbGxlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoICgpIHtcbiAgICAgICAgICAgIGlmICghcGVuZGluZykgcmV0dXJuO1xuICAgICAgICAgICAgcmV0dXJuIHBlbmRpbmcucHJvbWlzZTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlZmV0Y2hDb21tZW50U3RyZWFtKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkKSB7XG4gICAgLy8gSW5zZXJ0IGFuIGV4dHJhIGNvbW1lbnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgSFRNTCBkb2N1bWVudC4gVGhpcyBtdXN0XG4gICAgLy8gY29tZSBhZnRlciB0aGUgRE9DVFlQRSwgd2hpY2ggaXMgaW5zZXJ0ZWQgYnkgUmVhY3QuXG4gICAgLy9cbiAgICAvLyBUaGUgZmlyc3QgY2h1bmsgc2VudCBieSBSZWFjdCB3aWxsIGNvbnRhaW4gdGhlIGRvY3R5cGUuIEFmdGVyIHRoYXQsIHdlIGNhblxuICAgIC8vIHBhc3MgdGhyb3VnaCB0aGUgcmVzdCBvZiB0aGUgY2h1bmtzIGFzLWlzLlxuICAgIGxldCBkaWRUcmFuc2Zvcm1GaXJzdENodW5rID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBpZiAoaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcgJiYgIWRpZFRyYW5zZm9ybUZpcnN0Q2h1bmspIHtcbiAgICAgICAgICAgICAgICBkaWRUcmFuc2Zvcm1GaXJzdENodW5rID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcsIHtcbiAgICAgICAgICAgICAgICAgICAgZmF0YWw6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVua1N0ciA9IGRlY29kZXIuZGVjb2RlKGNodW5rLCB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDaHVua1N0ciA9ICgwLCBfb3V0cHV0ZXhwb3J0cHJlZmV0Y2hlbmNvZGluZy5pbnNlcnRCdWlsZElkQ29tbWVudCkoY2h1bmtTdHIsIGJ1aWxkSWQpO1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZSh1cGRhdGVkQ2h1bmtTdHIpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtKHsgUmVhY3RET01TZXJ2ZXIsIGVsZW1lbnQsIHN0cmVhbU9wdGlvbnMgfSkge1xuICAgIHJldHVybiAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoX2NvbnN0YW50cy5BcHBSZW5kZXJTcGFuLnJlbmRlclRvUmVhZGFibGVTdHJlYW0sIGFzeW5jICgpPT5SZWFjdERPTVNlcnZlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtKGVsZW1lbnQsIHN0cmVhbU9wdGlvbnMpKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGluc2VydCkge1xuICAgIGxldCBjaHVua0luZGV4ID0gLTE7XG4gICAgbGV0IGlzTWFya1JlbW92ZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIGFzeW5jIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGxldCBpY29uTWFya0luZGV4ID0gLTE7XG4gICAgICAgICAgICBsZXQgY2xvc2VkSGVhZEluZGV4ID0gLTE7XG4gICAgICAgICAgICBjaHVua0luZGV4Kys7XG4gICAgICAgICAgICBpZiAoaXNNYXJrUmVtb3ZlZCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGljb25NYXJrTGVuZ3RoID0gMDtcbiAgICAgICAgICAgIC8vIE9ubHkgc2VhcmNoIGZvciB0aGUgY2xvc2VkIGhlYWQgdGFnIG9uY2VcbiAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGljb25NYXJrSW5kZXggPSAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5NRVRBLklDT05fTUFSSyk7XG4gICAgICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHdlIGZvdW5kIHRoZSBgPG1ldGEgbmFtZT1cIsKrbnh0LWljb27Cu1wiYCB0YWcgcHJlZml4LCB3ZSB3aWxsIHJlbW92ZSBpdCBmcm9tIHRoZSBjaHVuay5cbiAgICAgICAgICAgICAgICAgICAgLy8gSXRzIGNsb3NlIHRhZyBjb3VsZCBlaXRoZXIgYmUgYC8+YCBvciBgPmAsIGNoZWNraW5nIHRoZSBuZXh0IGNoYXIgdG8gZW5zdXJlIHdlIGNvdmVyIGJvdGggY2FzZXMuXG4gICAgICAgICAgICAgICAgICAgIGljb25NYXJrTGVuZ3RoID0gX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5NRVRBLklDT05fTUFSSy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIG5leHQgY2hhciBpcyAvLCB0aGlzIGlzIGZvciB4bWwgbW9kZS5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNodW5rW2ljb25NYXJrSW5kZXggKyBpY29uTWFya0xlbmd0aF0gPT09IDQ3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uTWFya0xlbmd0aCArPSAyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGxhc3QgY2hhciBpcyBgPmBcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25NYXJrTGVuZ3RoKys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBpY29uIG1hcmsgaXMgaW5zaWRlIDxoZWFkPiB0YWcgaW4gdGhlIGZpcnN0IGNodW5rLlxuICAgICAgICAgICAgaWYgKGNodW5rSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjbG9zZWRIZWFkSW5kZXggPSAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuSEVBRCk7XG4gICAgICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBtYXJrIGljb24gaXMgbG9jYXRlZCBpbiB0aGUgMXN0IGNodW5rIGJlZm9yZSB0aGUgaGVhZCB0YWcuXG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGluc2VydCB0aGUgc2NyaXB0IHRhZyBpbiB0aGlzIGNhc2UgYmVjYXVzZSBpdCdzIGluIHRoZSBoZWFkLlxuICAgICAgICAgICAgICAgICAgICAvLyBKdXN0IHJlbW92ZSB0aGUgaWNvbiBtYXJrIGZyb20gdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCA8IGNsb3NlZEhlYWRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVwbGFjZWQgPSBuZXcgVWludDhBcnJheShjaHVuay5sZW5ndGggLSBpY29uTWFya0xlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGljb24gbWFyayBmcm9tIHRoZSBjaHVuay5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheSgwLCBpY29uTWFya0luZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoKSwgaWNvbk1hcmtJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaHVuayA9IHJlcGxhY2VkO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGljb24gbWFyayBpcyBhZnRlciB0aGUgaGVhZCB0YWcsIHJlcGxhY2UgYW5kIGluc2VydCB0aGUgc2NyaXB0IHRhZyBhdCB0aGF0IHBvc2l0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uID0gYXdhaXQgaW5zZXJ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkSW5zZXJ0aW9uID0gZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbkxlbmd0aCA9IGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVwbGFjZWQgPSBuZXcgVWludDhBcnJheShjaHVuay5sZW5ndGggLSBpY29uTWFya0xlbmd0aCArIGluc2VydGlvbkxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoMCwgaWNvbk1hcmtJbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGVuY29kZWRJbnNlcnRpb24sIGljb25NYXJrSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KGljb25NYXJrSW5kZXggKyBpY29uTWFya0xlbmd0aCksIGljb25NYXJrSW5kZXggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmsgPSByZXBsYWNlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpc01hcmtSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIGljb24gbWFyayBsb2NhdGVkLCBpdCB3aWxsIGJlIGhhbmRsZWQgbGF0ZXIgd2hlbiBpZiBwcmVzZW50IGluIHRoZSBmb2xsb3dpbmcgY2h1bmtzLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBXaGVuIGl0J3MgYXBwZWFyZWQgaW4gdGhlIGZvbGxvd2luZyBjaHVua3MsIHdlJ2xsIG5lZWQgdG9cbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIG1hcmsgYW5kIHRoZW4gaW5zZXJ0IHRoZSBzY3JpcHQgdGFnIGF0IHRoYXQgcG9zaXRpb24uXG4gICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uID0gYXdhaXQgaW5zZXJ0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uTGVuZ3RoID0gZW5jb2RlZEluc2VydGlvbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgaWNvbiBtYXJrIHdpdGggdGhlIGhvaXN0IHNjcmlwdCBvciBlbXB0eSBzdHJpbmcuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVwbGFjZWQgPSBuZXcgVWludDhBcnJheShjaHVuay5sZW5ndGggLSBpY29uTWFya0xlbmd0aCArIGluc2VydGlvbkxlbmd0aCk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBjaHVuaywgYmVmb3JlIHRoZSBpY29uIG1hcmsuXG4gICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KDAsIGljb25NYXJrSW5kZXgpKTtcbiAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIGluc2VydGlvbiBhZnRlciB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChlbmNvZGVkSW5zZXJ0aW9uLCBpY29uTWFya0luZGV4KTtcbiAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHJlc3Qgb2YgdGhlIGNodW5rIGFmdGVyIHRoZSBpY29uIG1hcmsuXG4gICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KGljb25NYXJrSW5kZXggKyBpY29uTWFya0xlbmd0aCksIGljb25NYXJrSW5kZXggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgIGNodW5rID0gcmVwbGFjZWQ7XG4gICAgICAgICAgICAgICAgaXNNYXJrUmVtb3ZlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGluc2VydCkge1xuICAgIGxldCBpbnNlcnRlZCA9IGZhbHNlO1xuICAgIC8vIFdlIG5lZWQgdG8gdHJhY2sgaWYgdGhpcyB0cmFuc2Zvcm0gc2F3IGFueSBieXRlcyBiZWNhdXNlIGlmIGl0IGRpZG4ndFxuICAgIC8vIHdlIHdvbid0IHdhbnQgdG8gaW5zZXJ0IGFueSBzZXJ2ZXIgSFRNTCBhdCBhbGxcbiAgICBsZXQgaGFzQnl0ZXMgPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIGFzeW5jIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGhhc0J5dGVzID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgaWYgKGluc2VydGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGluc2VydGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkSW5zZXJ0aW9uID0gZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZWRJbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPIChARXRoYW4tQXJyb3dvb2QpOiBSZXBsYWNlIHRoZSBnZW5lcmljIGBpbmRleE9mVWludDhBcnJheWAgbWV0aG9kIHdpdGggc29tZXRoaW5nIGZpbmVseSB0dW5lZCBmb3IgdGhlIHN1YnNldCBvZiB0aGluZ3MgYWN0dWFsbHkgYmVpbmcgY2hlY2tlZCBmb3IuXG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuSEVBRCk7XG4gICAgICAgICAgICAgICAgLy8gSW4gZnVsbHkgc3RhdGljIHJlbmRlcmluZyBvciBub24gUFBSIHJlbmRlcmluZyBjYXNlczpcbiAgICAgICAgICAgICAgICAvLyBgL2hlYWQ+YCB3aWxsIGFsd2F5cyBiZSBmb3VuZCBpbiB0aGUgY2h1bmsgaW4gZmlyc3QgY2h1bmsgcmVuZGVyaW5nLlxuICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc2VydGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIHRvdGFsIGNvdW50IG9mIHRoZSBieXRlcyBpbiB0aGUgY2h1bmsgYW5kIHRoZSBpbnNlcnRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGUuZy5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNodW5rID0gPGhlYWQ+PG1ldGEgY2hhcnNldD1cInV0Zi04XCI+PC9oZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5zZXJ0aW9uID0gPHNjcmlwdD4uLi48L3NjcmlwdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dHB1dCA9IDxoZWFkPjxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiPiBbIDxzY3JpcHQ+Li4uPC9zY3JpcHQ+IF0gPC9oZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0ZWRIZWFkQ29udGVudCA9IG5ldyBVaW50OEFycmF5KGNodW5rLmxlbmd0aCArIGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgZmlyc3QgcGFydCBvZiB0aGUgY2h1bmssIGJlZm9yZSB0aGUgaGVhZCB0YWdcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkSGVhZENvbnRlbnQuc2V0KGNodW5rLnNsaWNlKDAsIGluZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHNlcnZlciBpbnNlcnRlZCBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZEhlYWRDb250ZW50LnNldChlbmNvZGVkSW5zZXJ0aW9uLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHJlc3Qgb2YgdGhlIGNodW5rXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZEhlYWRDb250ZW50LnNldChjaHVuay5zbGljZShpbmRleCksIGluZGV4ICsgZW5jb2RlZEluc2VydGlvbi5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGluc2VydGVkSGVhZENvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGhhcHBlbnMgaW4gUFBSIHJlbmRlcmluZyBkdXJpbmcgbmV4dCBzdGFydCwgd2hlbiB0aGUgcGFnZSBpcyBwYXJ0aWFsbHkgcmVuZGVyZWQuXG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIHBhZ2UgcmVzdW1lcywgdGhlIGhlYWQgdGFnIHdpbGwgYmUgZm91bmQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZXJlIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGluc2VydGlvbiBhbmQgY2h1bmsgdG8gdGhlIGN1cnJlbnQgc3RyZWFtLlxuICAgICAgICAgICAgICAgICAgICAvLyBlLmcuXG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUi1zdGF0aWM6IDxoZWFkPi4uLjwvaGVhZD48Ym9keT4gWyByZXN1bWUgY29udGVudCBdIDwvYm9keT5cbiAgICAgICAgICAgICAgICAgICAgLy8gUFBSLXJlc3VtZTogWyBpbnNlcnRpb24gXSBbIHJlc3QgY29udGVudCBdXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBhc3luYyBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gQ2hlY2sgYmVmb3JlIGNsb3NpbmcgaWYgdGhlcmUncyBhbnl0aGluZyByZW1haW5pbmcgdG8gaW5zZXJ0LlxuICAgICAgICAgICAgaWYgKGhhc0J5dGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uID0gYXdhaXQgaW5zZXJ0KCk7XG4gICAgICAgICAgICAgICAgaWYgKGluc2VydGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59XG4vLyBTdWZmaXggYWZ0ZXIgbWFpbiBib2R5IGNvbnRlbnQgLSBzY3JpcHRzIGJlZm9yZSA8L2JvZHk+LFxuLy8gYnV0IHdhaXQgZm9yIHRoZSBtYWpvciBjaHVua3MgdG8gYmUgZW5xdWV1ZWQuXG5mdW5jdGlvbiBjcmVhdGVEZWZlcnJlZFN1ZmZpeFN0cmVhbShzdWZmaXgpIHtcbiAgICBsZXQgZmx1c2hlZCA9IGZhbHNlO1xuICAgIGxldCBwZW5kaW5nO1xuICAgIGNvbnN0IGZsdXNoID0gKGNvbnRyb2xsZXIpPT57XG4gICAgICAgIGNvbnN0IGRldGFjaGVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgIHBlbmRpbmcgPSBkZXRhY2hlZDtcbiAgICAgICAgKDAsIF9zY2hlZHVsZXIuc2NoZWR1bGVJbW1lZGlhdGUpKCgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdWZmaXgpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBlbnF1ZXVpbmcgaXQgY2FuJ3QgYmUgZHVlIHRvIHRoaXNcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybWVycyBmYXVsdC4gSXQncyBsaWtlbHkgZHVlIHRvIHRoZSBjb250cm9sbGVyIGJlaW5nXG4gICAgICAgICAgICAvLyBlcnJvcmVkIGR1ZSB0byB0aGUgc3RyZWFtIGJlaW5nIGNhbmNlbGxlZC5cbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZsdXNoZWQsIHdlJ3JlIGRvbmUuXG4gICAgICAgICAgICBpZiAoZmx1c2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIGZsdXNoIHRvIGhhcHBlbi5cbiAgICAgICAgICAgIGZsdXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgZmx1c2goY29udHJvbGxlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuIHBlbmRpbmcucHJvbWlzZTtcbiAgICAgICAgICAgIGlmIChmbHVzaGVkKSByZXR1cm47XG4gICAgICAgICAgICAvLyBGbHVzaCBub3cuXG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoc3VmZml4KSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZsaWdodERhdGFJbmplY3Rpb25UcmFuc2Zvcm1TdHJlYW0oc3RyZWFtLCBkZWxheURhdGFVbnRpbEZpcnN0SHRtbENodW5rKSB7XG4gICAgbGV0IGh0bWxTdHJlYW1GaW5pc2hlZCA9IGZhbHNlO1xuICAgIGxldCBwdWxsID0gbnVsbDtcbiAgICBsZXQgZG9uZVB1bGxpbmcgPSBmYWxzZTtcbiAgICBmdW5jdGlvbiBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgaWYgKCFwdWxsKSB7XG4gICAgICAgICAgICBwdWxsID0gc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwdWxsO1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiBzdGFydFB1bGxpbmcoY29udHJvbGxlcikge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gICAgICAgIGlmIChkZWxheURhdGFVbnRpbEZpcnN0SHRtbENodW5rKSB7XG4gICAgICAgICAgICAvLyBOT1RFOiBzdHJlYW1pbmcgZmx1c2hcbiAgICAgICAgICAgIC8vIFdlIGFyZSBidWZmZXJpbmcgaGVyZSBmb3IgdGhlIGlubGluZWQgZGF0YSBzdHJlYW0gYmVjYXVzZSB0aGVcbiAgICAgICAgICAgIC8vIFwic2hlbGxcIiBzdHJlYW0gbWlnaHQgYmUgY2h1bmtlbml6ZWQgYWdhaW4gYnkgdGhlIHVuZGVybHlpbmcgc3RyZWFtXG4gICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiwgZS5nLiB3aXRoIGEgc3BlY2lmaWMgaGlnaC13YXRlciBtYXJrLiBUbyBlbnN1cmUgaXQnc1xuICAgICAgICAgICAgLy8gdGhlIHNhZmUgdGltaW5nIHRvIHBpcGUgdGhlIGRhdGEgc3RyZWFtLCB0aGlzIGV4dHJhIHRpY2sgaXNcbiAgICAgICAgICAgIC8vIG5lY2Vzc2FyeS5cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IHN0YXJ0IHJlYWRpbmcgdW50aWwgd2UndmUgbGVmdCB0aGUgY3VycmVudCBUYXNrIHRvIGVuc3VyZVxuICAgICAgICAgICAgLy8gdGhhdCBpdCdzIGluc2VydGVkIGFmdGVyIGZsdXNoaW5nIHRoZSBzaGVsbC4gTm90ZSB0aGF0IHRoaXMgaW1wbGVtZW50YXRpb25cbiAgICAgICAgICAgIC8vIG1pZ2h0IGdldCBzdGFsZSBpZiBpbXBsIGRldGFpbHMgb2YgRml6eiBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgICAgIGF3YWl0ICgwLCBfc2NoZWR1bGVyLmF0TGVhc3RPbmVUYXNrKSgpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3aGlsZSh0cnVlKXtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICAgICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbmVQdWxsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHByaW9yaXRpemUgSFRNTCBvdmVyIFJTQyBkYXRhLlxuICAgICAgICAgICAgICAgIC8vIFRoZSBTU1IgcmVuZGVyIGlzIGJhc2VkIG9uIHRoZSBzYW1lIFJTQyBzdHJlYW0sIHNvIHdoZW4gd2UgZ2V0IGEgbmV3IFJTQyBjaHVuayxcbiAgICAgICAgICAgICAgICAvLyB3ZSdyZSBsaWtlbHkgdG8gcHJvZHVjZSBhbiBIVE1MIGNodW5rIGFzIHdlbGwsIHNvIGdpdmUgaXQgYSBjaGFuY2UgdG8gZmx1c2ggZmlyc3QuXG4gICAgICAgICAgICAgICAgaWYgKCFkZWxheURhdGFVbnRpbEZpcnN0SHRtbENodW5rICYmICFodG1sU3RyZWFtRmluaXNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgKDAsIF9zY2hlZHVsZXIuYXRMZWFzdE9uZVRhc2spKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmICghZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykge1xuICAgICAgICAgICAgICAgIHN0YXJ0T3JDb250aW51ZVB1bGxpbmcoY29udHJvbGxlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAvLyBTdGFydCB0aGUgc3RyZWFtaW5nIGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gc3RhcnRlZCB5ZXQuXG4gICAgICAgICAgICBpZiAoZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykge1xuICAgICAgICAgICAgICAgIHN0YXJ0T3JDb250aW51ZVB1bGxpbmcoY29udHJvbGxlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBodG1sU3RyZWFtRmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGRvbmVQdWxsaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0YXJ0T3JDb250aW51ZVB1bGxpbmcoY29udHJvbGxlcik7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmNvbnN0IENMT1NFX1RBRyA9ICc8L2JvZHk+PC9odG1sPic7XG4vKipcbiAqIFRoaXMgdHJhbnNmb3JtIHN0cmVhbSBtb3ZlcyB0aGUgc3VmZml4IHRvIHRoZSBlbmQgb2YgdGhlIHN0cmVhbSwgc28gcmVzdWx0c1xuICogbGlrZSBgPC9ib2R5PjwvaHRtbD48c2NyaXB0Pi4uLjwvc2NyaXB0PmAgd2lsbCBiZSB0cmFuc2Zvcm1lZCB0b1xuICogYDxzY3JpcHQ+Li4uPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD5gLlxuICovIGZ1bmN0aW9uIGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSB7XG4gICAgbGV0IGZvdW5kU3VmZml4ID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBpZiAoZm91bmRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmb3VuZFN1ZmZpeCA9IHRydWU7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHdob2xlIGNodW5rIGlzIHRoZSBzdWZmaXgsIHRoZW4gZG9uJ3Qgd3JpdGUgYW55dGhpbmcsIGl0IHdpbGxcbiAgICAgICAgICAgICAgICAvLyBiZSB3cml0dGVuIGluIHRoZSBmbHVzaC5cbiAgICAgICAgICAgICAgICBpZiAoY2h1bmsubGVuZ3RoID09PSBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFdyaXRlIG91dCB0aGUgcGFydCBiZWZvcmUgdGhlIHN1ZmZpeC5cbiAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmUgPSBjaHVuay5zbGljZSgwLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGJlZm9yZSk7XG4gICAgICAgICAgICAgICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHN1ZmZpeCBpcyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjaHVuaywgd2UgbmVlZFxuICAgICAgICAgICAgICAgIC8vIHRvIHNwbGl0IHRoZSBjaHVuayBpbnRvIHR3byBwYXJ0cy5cbiAgICAgICAgICAgICAgICBpZiAoY2h1bmsubGVuZ3RoID4gX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTC5sZW5ndGggKyBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIHBhcnQgYWZ0ZXIgdGhlIHN1ZmZpeC5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSBjaHVuay5zbGljZShpbmRleCArIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGFmdGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBFdmVuIGlmIHdlIGRpZG4ndCBmaW5kIHRoZSBzdWZmaXgsIHRoZSBIVE1MIGlzIG5vdCB2YWxpZCBpZiB3ZSBkb24ndFxuICAgICAgICAgICAgLy8gYWRkIGl0LCBzbyBpbnNlcnQgaXQgYXQgdGhlIGVuZC5cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlU3RyaXBEb2N1bWVudENsb3NpbmdUYWdzVHJhbnNmb3JtKCkge1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gV2UgcmVseSBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGNodW5rcyB3aWxsIG5ldmVyIGJyZWFrIGFjcm9zcyBhIGNvZGUgdW5pdC5cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgcmVhc29uYWJsZSBiZWNhdXNlIHdlIGN1cnJlbnRseSBjb25jYXQgYWxsIG9mIFJlYWN0J3Mgb3V0cHV0IGZyb20gYSBzaW5nbGVcbiAgICAgICAgICAgIC8vIGZsdXNoIGludG8gb25lIGNodW5rIGJlZm9yZSBzdHJlYW1pbmcgaXQgZm9yd2FyZCB3aGljaCBtZWFucyB0aGUgY2h1bmsgd2lsbCByZXByZXNlbnRcbiAgICAgICAgICAgIC8vIGEgc2luZ2xlIGNvaGVyZW50IHV0Zi04IHN0cmluZy4gVGhpcyBpcyBub3Qgc2FmZSB0byB1c2UgaWYgd2UgY2hhbmdlIG91ciBzdHJlYW1pbmcgdG8gbm9cbiAgICAgICAgICAgIC8vIGxvbmdlciBkbyB0aGlzIGxhcmdlIGJ1ZmZlcmVkIGNodW5rXG4gICAgICAgICAgICBpZiAoKDAsIF91aW50OGFycmF5aGVscGVycy5pc0VxdWl2YWxlbnRVaW50OEFycmF5cykoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwpIHx8ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaXNFcXVpdmFsZW50VWludDhBcnJheXMpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZKSB8fCAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuSFRNTCkpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGUgZW50aXJlIGNodW5rIGlzIHRoZSBjbG9zaW5nIHRhZ3M7IHJldHVybiB3aXRob3V0IGVucXVldWVpbmcgYW55dGhpbmcuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV2UgYXNzdW1lIHRoZXNlIHRhZ3Mgd2lsbCBnbyBhdCB0b2dldGhlciBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCBhbmQgdGhhdFxuICAgICAgICAgICAgLy8gdGhleSB3b24ndCBhcHBlYXIgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuIFRoaXMgaXMgbm90IHJlYWxseSBhIHNhZmUgYXNzdW1wdGlvblxuICAgICAgICAgICAgLy8gYnV0IHVudGlsIHdlIHJldmFtcCBvdXIgc3RyZWFtaW5nIGluZnJhIHRoaXMgaXMgYSBwZXJmb3JtYW50IHdheSB0byBzdHJpbmcgdGhlIHRhZ3NcbiAgICAgICAgICAgIGNodW5rID0gKDAsIF91aW50OGFycmF5aGVscGVycy5yZW1vdmVGcm9tVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFkpO1xuICAgICAgICAgICAgY2h1bmsgPSAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLnJlbW92ZUZyb21VaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuSFRNTCk7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtKCkge1xuICAgIGxldCBmb3VuZEh0bWwgPSBmYWxzZTtcbiAgICBsZXQgZm91bmRCb2R5ID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBQZWVrIGludG8gdGhlIHN0cmVhbWVkIGNodW5rIHRvIHNlZSBpZiB0aGUgdGFncyBhcmUgcHJlc2VudC5cbiAgICAgICAgICAgIGlmICghZm91bmRIdG1sICYmICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk9QRU5JTkcuSFRNTCkgPiAtMSkge1xuICAgICAgICAgICAgICAgIGZvdW5kSHRtbCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWZvdW5kQm9keSAmJiAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5PUEVOSU5HLkJPRFkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmb3VuZEJvZHkgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1pc3NpbmdUYWdzID0gW107XG4gICAgICAgICAgICBpZiAoIWZvdW5kSHRtbCkgbWlzc2luZ1RhZ3MucHVzaCgnaHRtbCcpO1xuICAgICAgICAgICAgaWYgKCFmb3VuZEJvZHkpIG1pc3NpbmdUYWdzLnB1c2goJ2JvZHknKTtcbiAgICAgICAgICAgIGlmICghbWlzc2luZ1RhZ3MubGVuZ3RoKSByZXR1cm47XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoYDxodG1sIGlkPVwiX19uZXh0X2Vycm9yX19cIj5cbiAgICAgICAgICAgIDx0ZW1wbGF0ZVxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3ItbWVzc2FnZT1cIk1pc3NpbmcgJHttaXNzaW5nVGFncy5tYXAoKGMpPT5gPCR7Y30+YCkuam9pbihtaXNzaW5nVGFncy5sZW5ndGggPiAxID8gJyBhbmQgJyA6ICcnKX0gdGFncyBpbiB0aGUgcm9vdCBsYXlvdXQuXFxuUmVhZCBtb3JlIGF0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pc3Npbmctcm9vdC1sYXlvdXQtdGFnc1wiXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1lcnJvci1kaWdlc3Q9XCIke19jb25zdGFudHMxLk1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SfVwiXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1lcnJvci1zdGFjaz1cIlwiXG4gICAgICAgICAgICA+PC90ZW1wbGF0ZT5cbiAgICAgICAgICBgKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNoYWluVHJhbnNmb3JtZXJzKHJlYWRhYmxlLCB0cmFuc2Zvcm1lcnMpIHtcbiAgICBsZXQgc3RyZWFtID0gcmVhZGFibGU7XG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm1lciBvZiB0cmFuc2Zvcm1lcnMpe1xuICAgICAgICBpZiAoIXRyYW5zZm9ybWVyKSBjb250aW51ZTtcbiAgICAgICAgc3RyZWFtID0gc3RyZWFtLnBpcGVUaHJvdWdoKHRyYW5zZm9ybWVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmVhbTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlRml6elN0cmVhbShyZW5kZXJTdHJlYW0sIHsgc3VmZml4LCBpbmxpbmVkRGF0YVN0cmVhbSwgaXNTdGF0aWNHZW5lcmF0aW9uLCBpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhLCB2YWxpZGF0ZVJvb3RMYXlvdXQgfSkge1xuICAgIC8vIFN1ZmZpeCBpdHNlbGYgbWlnaHQgY29udGFpbiBjbG9zZSB0YWdzIGF0IHRoZSBlbmQsIHNvIHdlIG5lZWQgdG8gc3BsaXQgaXQuXG4gICAgY29uc3Qgc3VmZml4VW5jbG9zZWQgPSBzdWZmaXggPyBzdWZmaXguc3BsaXQoQ0xPU0VfVEFHLCAxKVswXSA6IG51bGw7XG4gICAgLy8gSWYgd2UncmUgZ2VuZXJhdGluZyBzdGF0aWMgSFRNTCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlIGNvbnRpbnVpbmcuXG4gICAgaWYgKGlzU3RhdGljR2VuZXJhdGlvbikge1xuICAgICAgICBhd2FpdCByZW5kZXJTdHJlYW0uYWxsUmVhZHk7XG4gICAgfVxuICAgIHJldHVybiBjaGFpblRyYW5zZm9ybWVycyhyZW5kZXJTdHJlYW0sIFtcbiAgICAgICAgLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAgICAgY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSxcbiAgICAgICAgLy8gQWRkIGJ1aWxkIGlkIGNvbW1lbnQgdG8gc3RhcnQgb2YgdGhlIEhUTUwgZG9jdW1lbnQgKGluIGV4cG9ydCBtb2RlKVxuICAgICAgICBjcmVhdGVQcmVmZXRjaENvbW1lbnRTdHJlYW0oaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQpLFxuICAgICAgICAvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAgICAgY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSksXG4gICAgICAgIC8vIEluc2VydCBzdWZmaXggY29udGVudFxuICAgICAgICBzdWZmaXhVbmNsb3NlZCAhPSBudWxsICYmIHN1ZmZpeFVuY2xvc2VkLmxlbmd0aCA+IDAgPyBjcmVhdGVEZWZlcnJlZFN1ZmZpeFN0cmVhbShzdWZmaXhVbmNsb3NlZCkgOiBudWxsLFxuICAgICAgICAvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgICAgIGlubGluZWREYXRhU3RyZWFtID8gY3JlYXRlRmxpZ2h0RGF0YUluamVjdGlvblRyYW5zZm9ybVN0cmVhbShpbmxpbmVkRGF0YVN0cmVhbSwgdHJ1ZSkgOiBudWxsLFxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgcm9vdCBsYXlvdXQgZm9yIG1pc3NpbmcgaHRtbCBvciBib2R5IHRhZ3NcbiAgICAgICAgdmFsaWRhdGVSb290TGF5b3V0ID8gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbSgpIDogbnVsbCxcbiAgICAgICAgLy8gQ2xvc2UgdGFncyBzaG91bGQgYWx3YXlzIGJlIGRlZmVycmVkIHRvIHRoZSBlbmRcbiAgICAgICAgY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpLFxuICAgICAgICAvLyBTcGVjaWFsIGhlYWQgaW5zZXJ0aW9uc1xuICAgICAgICAvLyBUT0RPLUFQUDogSW5zZXJ0IHNlcnZlciBzaWRlIGh0bWwgdG8gZW5kIG9mIGhlYWQgaW4gYXBwIGxheW91dCByZW5kZXJpbmcsIHRvIGF2b2lkXG4gICAgICAgIC8vIGh5ZHJhdGlvbiBlcnJvcnMuIFJlbW92ZSB0aGlzIG9uY2UgaXQncyByZWFkeSB0byBiZSBoYW5kbGVkIGJ5IHJlYWN0IGl0c2VsZi5cbiAgICAgICAgY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpXG4gICAgXSk7XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZUR5bmFtaWNQcmVyZW5kZXIocHJlcmVuZGVyU3RyZWFtLCB7IGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSB9KSB7XG4gICAgcmV0dXJuIHByZXJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLnBpcGVUaHJvdWdoKGNyZWF0ZVN0cmlwRG9jdW1lbnRDbG9zaW5nVGFnc1RyYW5zZm9ybSgpKS8vIEluc2VydCBnZW5lcmF0ZWQgdGFncyB0byBoZWFkXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSkvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVTdGF0aWNQcmVyZW5kZXIocHJlcmVuZGVyU3RyZWFtLCB7IGlubGluZWREYXRhU3RyZWFtLCBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEsIGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkIH0pIHtcbiAgICByZXR1cm4gcHJlcmVuZGVyU3RyZWFtLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSkvLyBBZGQgYnVpbGQgaWQgY29tbWVudCB0byBzdGFydCBvZiB0aGUgSFRNTCBkb2N1bWVudCAoaW4gZXhwb3J0IG1vZGUpXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZVByZWZldGNoQ29tbWVudFN0cmVhbShpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKS8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSkvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUZsaWdodERhdGFJbmplY3Rpb25UcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0sIHRydWUpKS8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSk7XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lKHJlbmRlclN0cmVhbSwgeyBkZWxheURhdGFVbnRpbEZpcnN0SHRtbENodW5rLCBpbmxpbmVkRGF0YVN0cmVhbSwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhIH0pIHtcbiAgICByZXR1cm4gcmVuZGVyU3RyZWFtLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSkvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkpLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpKS8vIEluc2VydCB0aGUgaW5saW5lZCBkYXRhIChGbGlnaHQgZGF0YSwgZm9ybSBzdGF0ZSwgZXRjLikgc3RyZWFtIGludG8gdGhlIEhUTUxcbiAgICAucGlwZVRocm91Z2goY3JlYXRlRmxpZ2h0RGF0YUluamVjdGlvblRyYW5zZm9ybVN0cmVhbShpbmxpbmVkRGF0YVN0cmVhbSwgZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykpLy8gQ2xvc2UgdGFncyBzaG91bGQgYWx3YXlzIGJlIGRlZmVycmVkIHRvIHRoZSBlbmRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbSgpIHtcbiAgICByZXR1cm4gc3RyZWFtRnJvbVN0cmluZyhDTE9TRV9UQUcpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/uint8array-helpers.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Find the starting index of Uint8Array `b` within Uint8Array `a`.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n indexOfUint8Array: function() {\n return indexOfUint8Array;\n },\n isEquivalentUint8Arrays: function() {\n return isEquivalentUint8Arrays;\n },\n removeFromUint8Array: function() {\n return removeFromUint8Array;\n }\n});\nfunction indexOfUint8Array(a, b) {\n if (b.length === 0) return 0;\n if (a.length === 0 || b.length > a.length) return -1;\n // start iterating through `a`\n for(let i = 0; i <= a.length - b.length; i++){\n let completeMatch = true;\n // from index `i`, iterate through `b` and check for mismatch\n for(let j = 0; j < b.length; j++){\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false;\n break;\n }\n }\n if (completeMatch) {\n return i;\n }\n }\n return -1;\n}\nfunction isEquivalentUint8Arrays(a, b) {\n if (a.length !== b.length) return false;\n for(let i = 0; i < a.length; i++){\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\nfunction removeFromUint8Array(a, b) {\n const tagIndex = indexOfUint8Array(a, b);\n if (tagIndex === 0) return a.subarray(b.length);\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length);\n removed.set(a.slice(0, tagIndex));\n removed.set(a.slice(tagIndex + b.length), tagIndex);\n return removed;\n } else {\n return a;\n }\n}\n\n//# sourceMappingURL=uint8array-helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy91aW50OGFycmF5LWhlbHBlcnMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDBCQUEwQjtBQUM3QztBQUNBO0FBQ0EsdUJBQXVCLGNBQWM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixjQUFjO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvc3RyZWFtLXV0aWxzL3VpbnQ4YXJyYXktaGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpbmQgdGhlIHN0YXJ0aW5nIGluZGV4IG9mIFVpbnQ4QXJyYXkgYGJgIHdpdGhpbiBVaW50OEFycmF5IGBhYC5cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGluZGV4T2ZVaW50OEFycmF5OiBudWxsLFxuICAgIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzOiBudWxsLFxuICAgIHJlbW92ZUZyb21VaW50OEFycmF5OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGluZGV4T2ZVaW50OEFycmF5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4T2ZVaW50OEFycmF5O1xuICAgIH0sXG4gICAgaXNFcXVpdmFsZW50VWludDhBcnJheXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNFcXVpdmFsZW50VWludDhBcnJheXM7XG4gICAgfSxcbiAgICByZW1vdmVGcm9tVWludDhBcnJheTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZW1vdmVGcm9tVWludDhBcnJheTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGluZGV4T2ZVaW50OEFycmF5KGEsIGIpIHtcbiAgICBpZiAoYi5sZW5ndGggPT09IDApIHJldHVybiAwO1xuICAgIGlmIChhLmxlbmd0aCA9PT0gMCB8fCBiLmxlbmd0aCA+IGEubGVuZ3RoKSByZXR1cm4gLTE7XG4gICAgLy8gc3RhcnQgaXRlcmF0aW5nIHRocm91Z2ggYGFgXG4gICAgZm9yKGxldCBpID0gMDsgaSA8PSBhLmxlbmd0aCAtIGIubGVuZ3RoOyBpKyspe1xuICAgICAgICBsZXQgY29tcGxldGVNYXRjaCA9IHRydWU7XG4gICAgICAgIC8vIGZyb20gaW5kZXggYGlgLCBpdGVyYXRlIHRocm91Z2ggYGJgIGFuZCBjaGVjayBmb3IgbWlzbWF0Y2hcbiAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspe1xuICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlcyBkbyBub3QgbWF0Y2gsIHRoZW4gdGhpcyBpc24ndCBhIGNvbXBsZXRlIG1hdGNoLCBleGl0IGBiYCBpdGVyYXRpb24gZWFybHkgYW5kIGl0ZXJhdGUgdG8gbmV4dCBpbmRleCBvZiBgYWAuXG4gICAgICAgICAgICBpZiAoYVtpICsgal0gIT09IGJbal0pIHtcbiAgICAgICAgICAgICAgICBjb21wbGV0ZU1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbXBsZXRlTWF0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn1cbmZ1bmN0aW9uIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKGEsIGIpIHtcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspe1xuICAgICAgICBpZiAoYVtpXSAhPT0gYltpXSkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUZyb21VaW50OEFycmF5KGEsIGIpIHtcbiAgICBjb25zdCB0YWdJbmRleCA9IGluZGV4T2ZVaW50OEFycmF5KGEsIGIpO1xuICAgIGlmICh0YWdJbmRleCA9PT0gMCkgcmV0dXJuIGEuc3ViYXJyYXkoYi5sZW5ndGgpO1xuICAgIGlmICh0YWdJbmRleCA+IC0xKSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBuZXcgVWludDhBcnJheShhLmxlbmd0aCAtIGIubGVuZ3RoKTtcbiAgICAgICAgcmVtb3ZlZC5zZXQoYS5zbGljZSgwLCB0YWdJbmRleCkpO1xuICAgICAgICByZW1vdmVkLnNldChhLnNsaWNlKHRhZ0luZGV4ICsgYi5sZW5ndGgpLCB0YWdJbmRleCk7XG4gICAgICAgIHJldHVybiByZW1vdmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dWludDhhcnJheS1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/utils.js": /*!************************************************!*\ !*** ./node_modules/next/dist/server/utils.js ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cleanAmpPath: function() {\n return cleanAmpPath;\n },\n debounce: function() {\n return debounce;\n },\n isBlockedPage: function() {\n return isBlockedPage;\n }\n});\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\");\nfunction isBlockedPage(page) {\n return _constants.BLOCKED_PAGES.includes(page);\n}\nfunction cleanAmpPath(pathname) {\n if (pathname.match(/\\?amp=(y|yes|true|1)/)) {\n pathname = pathname.replace(/\\?amp=(y|yes|true|1)&?/, '?');\n }\n if (pathname.match(/&=(y|yes|true|1)/)) {\n pathname = pathname.replace(/&=(y|yes|true|1)/, '');\n }\n pathname = pathname.replace(/\\?$/, '');\n return pathname;\n}\nfunction debounce(fn, ms, maxWait = Infinity) {\n let timeoutId;\n // The time the debouncing function was first called during this debounce queue.\n let startTime = 0;\n // The time the debouncing function was last called.\n let lastCall = 0;\n // The arguments and this context of the last call to the debouncing function.\n let args, context;\n // A helper used to that either invokes the debounced function, or\n // reschedules the timer if a more recent call was made.\n function run() {\n const now = Date.now();\n const diff = lastCall + ms - now;\n // If the diff is non-positive, then we've waited at least `ms`\n // milliseconds since the last call. Or if we've waited for longer than the\n // max wait time, we must call the debounced function.\n if (diff <= 0 || startTime + maxWait >= now) {\n // It's important to clear the timeout id before invoking the debounced\n // function, in case the function calls the debouncing function again.\n timeoutId = undefined;\n fn.apply(context, args);\n } else {\n // Else, a new call was made after the original timer was scheduled. We\n // didn't clear the timeout (doing so is very slow), so now we need to\n // reschedule the timer for the time difference.\n timeoutId = setTimeout(run, diff);\n }\n }\n return function(...passedArgs) {\n // The arguments and this context of the most recent call are saved so the\n // debounced function can be invoked with them later.\n args = passedArgs;\n context = this;\n // Instead of constantly clearing and scheduling a timer, we record the\n // time of the last call. If a second call comes in before the timer fires,\n // then we'll reschedule in the run function. Doing this is considerably\n // faster.\n lastCall = Date.now();\n // Only schedule a new timer if we're not currently waiting.\n if (timeoutId === undefined) {\n startTime = lastCall;\n timeoutId = setTimeout(run, ms);\n }\n };\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsa0dBQXlCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjbGVhbkFtcFBhdGg6IG51bGwsXG4gICAgZGVib3VuY2U6IG51bGwsXG4gICAgaXNCbG9ja2VkUGFnZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjbGVhbkFtcFBhdGg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2xlYW5BbXBQYXRoO1xuICAgIH0sXG4gICAgZGVib3VuY2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGVib3VuY2U7XG4gICAgfSxcbiAgICBpc0Jsb2NrZWRQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQmxvY2tlZFBhZ2U7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gaXNCbG9ja2VkUGFnZShwYWdlKSB7XG4gICAgcmV0dXJuIF9jb25zdGFudHMuQkxPQ0tFRF9QQUdFUy5pbmNsdWRlcyhwYWdlKTtcbn1cbmZ1bmN0aW9uIGNsZWFuQW1wUGF0aChwYXRobmFtZSkge1xuICAgIGlmIChwYXRobmFtZS5tYXRjaCgvXFw/YW1wPSh5fHllc3x0cnVlfDEpLykpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9cXD9hbXA9KHl8eWVzfHRydWV8MSkmPy8sICc/Jyk7XG4gICAgfVxuICAgIGlmIChwYXRobmFtZS5tYXRjaCgvJmFtcD0oeXx5ZXN8dHJ1ZXwxKS8pKSB7XG4gICAgICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvJmFtcD0oeXx5ZXN8dHJ1ZXwxKS8sICcnKTtcbiAgICB9XG4gICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9cXD8kLywgJycpO1xuICAgIHJldHVybiBwYXRobmFtZTtcbn1cbmZ1bmN0aW9uIGRlYm91bmNlKGZuLCBtcywgbWF4V2FpdCA9IEluZmluaXR5KSB7XG4gICAgbGV0IHRpbWVvdXRJZDtcbiAgICAvLyBUaGUgdGltZSB0aGUgZGVib3VuY2luZyBmdW5jdGlvbiB3YXMgZmlyc3QgY2FsbGVkIGR1cmluZyB0aGlzIGRlYm91bmNlIHF1ZXVlLlxuICAgIGxldCBzdGFydFRpbWUgPSAwO1xuICAgIC8vIFRoZSB0aW1lIHRoZSBkZWJvdW5jaW5nIGZ1bmN0aW9uIHdhcyBsYXN0IGNhbGxlZC5cbiAgICBsZXQgbGFzdENhbGwgPSAwO1xuICAgIC8vIFRoZSBhcmd1bWVudHMgYW5kIHRoaXMgY29udGV4dCBvZiB0aGUgbGFzdCBjYWxsIHRvIHRoZSBkZWJvdW5jaW5nIGZ1bmN0aW9uLlxuICAgIGxldCBhcmdzLCBjb250ZXh0O1xuICAgIC8vIEEgaGVscGVyIHVzZWQgdG8gdGhhdCBlaXRoZXIgaW52b2tlcyB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uLCBvclxuICAgIC8vIHJlc2NoZWR1bGVzIHRoZSB0aW1lciBpZiBhIG1vcmUgcmVjZW50IGNhbGwgd2FzIG1hZGUuXG4gICAgZnVuY3Rpb24gcnVuKCkge1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBkaWZmID0gbGFzdENhbGwgKyBtcyAtIG5vdztcbiAgICAgICAgLy8gSWYgdGhlIGRpZmYgaXMgbm9uLXBvc2l0aXZlLCB0aGVuIHdlJ3ZlIHdhaXRlZCBhdCBsZWFzdCBgbXNgXG4gICAgICAgIC8vIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCBjYWxsLiBPciBpZiB3ZSd2ZSB3YWl0ZWQgZm9yIGxvbmdlciB0aGFuIHRoZVxuICAgICAgICAvLyBtYXggd2FpdCB0aW1lLCB3ZSBtdXN0IGNhbGwgdGhlIGRlYm91bmNlZCBmdW5jdGlvbi5cbiAgICAgICAgaWYgKGRpZmYgPD0gMCB8fCBzdGFydFRpbWUgKyBtYXhXYWl0ID49IG5vdykge1xuICAgICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gY2xlYXIgdGhlIHRpbWVvdXQgaWQgYmVmb3JlIGludm9raW5nIHRoZSBkZWJvdW5jZWRcbiAgICAgICAgICAgIC8vIGZ1bmN0aW9uLCBpbiBjYXNlIHRoZSBmdW5jdGlvbiBjYWxscyB0aGUgZGVib3VuY2luZyBmdW5jdGlvbiBhZ2Fpbi5cbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGZuLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRWxzZSwgYSBuZXcgY2FsbCB3YXMgbWFkZSBhZnRlciB0aGUgb3JpZ2luYWwgdGltZXIgd2FzIHNjaGVkdWxlZC4gV2VcbiAgICAgICAgICAgIC8vIGRpZG4ndCBjbGVhciB0aGUgdGltZW91dCAoZG9pbmcgc28gaXMgdmVyeSBzbG93KSwgc28gbm93IHdlIG5lZWQgdG9cbiAgICAgICAgICAgIC8vIHJlc2NoZWR1bGUgdGhlIHRpbWVyIGZvciB0aGUgdGltZSBkaWZmZXJlbmNlLlxuICAgICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dChydW4sIGRpZmYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiguLi5wYXNzZWRBcmdzKSB7XG4gICAgICAgIC8vIFRoZSBhcmd1bWVudHMgYW5kIHRoaXMgY29udGV4dCBvZiB0aGUgbW9zdCByZWNlbnQgY2FsbCBhcmUgc2F2ZWQgc28gdGhlXG4gICAgICAgIC8vIGRlYm91bmNlZCBmdW5jdGlvbiBjYW4gYmUgaW52b2tlZCB3aXRoIHRoZW0gbGF0ZXIuXG4gICAgICAgIGFyZ3MgPSBwYXNzZWRBcmdzO1xuICAgICAgICBjb250ZXh0ID0gdGhpcztcbiAgICAgICAgLy8gSW5zdGVhZCBvZiBjb25zdGFudGx5IGNsZWFyaW5nIGFuZCBzY2hlZHVsaW5nIGEgdGltZXIsIHdlIHJlY29yZCB0aGVcbiAgICAgICAgLy8gdGltZSBvZiB0aGUgbGFzdCBjYWxsLiBJZiBhIHNlY29uZCBjYWxsIGNvbWVzIGluIGJlZm9yZSB0aGUgdGltZXIgZmlyZXMsXG4gICAgICAgIC8vIHRoZW4gd2UnbGwgcmVzY2hlZHVsZSBpbiB0aGUgcnVuIGZ1bmN0aW9uLiBEb2luZyB0aGlzIGlzIGNvbnNpZGVyYWJseVxuICAgICAgICAvLyBmYXN0ZXIuXG4gICAgICAgIGxhc3RDYWxsID0gRGF0ZS5ub3coKTtcbiAgICAgICAgLy8gT25seSBzY2hlZHVsZSBhIG5ldyB0aW1lciBpZiB3ZSdyZSBub3QgY3VycmVudGx5IHdhaXRpbmcuXG4gICAgICAgIGlmICh0aW1lb3V0SWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc3RhcnRUaW1lID0gbGFzdENhbGw7XG4gICAgICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KHJ1biwgbXMpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/utils.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/web/error.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/server/web/error.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esa0JBQWtCLE1BQU07QUFDeEIsaUNBQWlDLEtBQUs7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBQYWdlU2lnbmF0dXJlRXJyb3I6IG51bGwsXG4gICAgUmVtb3ZlZFBhZ2VFcnJvcjogbnVsbCxcbiAgICBSZW1vdmVkVUFFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBQYWdlU2lnbmF0dXJlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUGFnZVNpZ25hdHVyZUVycm9yO1xuICAgIH0sXG4gICAgUmVtb3ZlZFBhZ2VFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW1vdmVkUGFnZUVycm9yO1xuICAgIH0sXG4gICAgUmVtb3ZlZFVBRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVtb3ZlZFVBRXJyb3I7XG4gICAgfVxufSk7XG5jbGFzcyBQYWdlU2lnbmF0dXJlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoeyBwYWdlIH0pe1xuICAgICAgICBzdXBlcihgVGhlIG1pZGRsZXdhcmUgXCIke3BhZ2V9XCIgYWNjZXB0cyBhbiBhc3luYyBBUEkgZGlyZWN0bHkgd2l0aCB0aGUgZm9ybTpcbiAgXG4gIGV4cG9ydCBmdW5jdGlvbiBtaWRkbGV3YXJlKHJlcXVlc3QsIGV2ZW50KSB7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5yZWRpcmVjdCgnL25ldy1sb2NhdGlvbicpXG4gIH1cbiAgXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1uZXctc2lnbmF0dXJlXG4gIGApO1xuICAgIH1cbn1cbmNsYXNzIFJlbW92ZWRQYWdlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoYFRoZSByZXF1ZXN0LnBhZ2UgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgXFxgVVJMUGF0dGVyblxcYC5cbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXJlcXVlc3QtcGFnZVxuICBgKTtcbiAgICB9XG59XG5jbGFzcyBSZW1vdmVkVUFFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihgVGhlIHJlcXVlc3QudWEgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgXFxgdXNlckFnZW50XFxgIGZ1bmN0aW9uLlxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcGFyc2UtdXNlci1hZ2VudFxuICBgKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/error.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/web/next-url.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextURL\", ({\n enumerable: true,\n get: function() {\n return NextURL;\n }\n}));\nconst _detectdomainlocale = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _gethostname = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'));\n}\nconst Internal = Symbol('NextURLInternal');\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: ''\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !undefined,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? '';\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? '';\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale \"${locale}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E597\",\n enumerable: false,\n configurable: true\n });\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9uZXh0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLDRCQUE0QixtQkFBTyxDQUFDLHFJQUE0QztBQUNoRixnQ0FBZ0MsbUJBQU8sQ0FBQywrSkFBeUQ7QUFDakcscUJBQXFCLG1CQUFPLENBQUMsMkdBQStCO0FBQzVELDZCQUE2QixtQkFBTyxDQUFDLHlKQUFzRDtBQUMzRixxR0FBcUcsRUFBRTtBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFNBQThDO0FBQ3RFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVHQUF1RyxPQUFPO0FBQzlHO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsY0FBYyxJQUFJLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVU7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0VBQXNFLE1BQU07QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9uZXh0LXVybC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5leHRVUkxcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRVUkw7XG4gICAgfVxufSk7XG5jb25zdCBfZGV0ZWN0ZG9tYWlubG9jYWxlID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZVwiKTtcbmNvbnN0IF9mb3JtYXRuZXh0cGF0aG5hbWVpbmZvID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm9cIik7XG5jb25zdCBfZ2V0aG9zdG5hbWUgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWVcIik7XG5jb25zdCBfZ2V0bmV4dHBhdGhuYW1laW5mbyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbmV4dC1wYXRobmFtZS1pbmZvXCIpO1xuY29uc3QgUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FID0gLyg/IV5odHRwcz86XFwvXFwvKSgxMjcoPzpcXC4oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pKXszfXxcXFs6OjFcXF18bG9jYWxob3N0KS87XG5mdW5jdGlvbiBwYXJzZVVSTCh1cmwsIGJhc2UpIHtcbiAgICByZXR1cm4gbmV3IFVSTChTdHJpbmcodXJsKS5yZXBsYWNlKFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSwgJ2xvY2FsaG9zdCcpLCBiYXNlICYmIFN0cmluZyhiYXNlKS5yZXBsYWNlKFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSwgJ2xvY2FsaG9zdCcpKTtcbn1cbmNvbnN0IEludGVybmFsID0gU3ltYm9sKCdOZXh0VVJMSW50ZXJuYWwnKTtcbmNsYXNzIE5leHRVUkwge1xuICAgIGNvbnN0cnVjdG9yKGlucHV0LCBiYXNlT3JPcHRzLCBvcHRzKXtcbiAgICAgICAgbGV0IGJhc2U7XG4gICAgICAgIGxldCBvcHRpb25zO1xuICAgICAgICBpZiAodHlwZW9mIGJhc2VPck9wdHMgPT09ICdvYmplY3QnICYmICdwYXRobmFtZScgaW4gYmFzZU9yT3B0cyB8fCB0eXBlb2YgYmFzZU9yT3B0cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGJhc2UgPSBiYXNlT3JPcHRzO1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdHMgfHwge307XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0cyB8fCBiYXNlT3JPcHRzIHx8IHt9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdID0ge1xuICAgICAgICAgICAgdXJsOiBwYXJzZVVSTChpbnB1dCwgYmFzZSA/PyBvcHRpb25zLmJhc2UpLFxuICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgICAgIGJhc2VQYXRoOiAnJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmFuYWx5emUoKTtcbiAgICB9XG4gICAgYW5hbHl6ZSgpIHtcbiAgICAgICAgdmFyIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcsIF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZSwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxO1xuICAgICAgICBjb25zdCBpbmZvID0gKDAsIF9nZXRuZXh0cGF0aG5hbWVpbmZvLmdldE5leHRQYXRobmFtZUluZm8pKHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSwge1xuICAgICAgICAgICAgbmV4dENvbmZpZzogdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnLFxuICAgICAgICAgICAgcGFyc2VEYXRhOiAhcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSxcbiAgICAgICAgICAgIGkxOG5Qcm92aWRlcjogdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhvc3RuYW1lID0gKDAsIF9nZXRob3N0bmFtZS5nZXRIb3N0bmFtZSkodGhpc1tJbnRlcm5hbF0udXJsLCB0aGlzW0ludGVybmFsXS5vcHRpb25zLmhlYWRlcnMpO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGUgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlciA/IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyLmRldGVjdERvbWFpbkxvY2FsZShob3N0bmFtZSkgOiAoMCwgX2RldGVjdGRvbWFpbmxvY2FsZS5kZXRlY3REb21haW5Mb2NhbGUpKChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4gPSBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLmRvbWFpbnMsIGhvc3RuYW1lKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdExvY2FsZSA9ICgoX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlID0gdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlLmRlZmF1bHRMb2NhbGUpIHx8ICgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMSA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEgPSBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEuZGVmYXVsdExvY2FsZSk7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSA9IGluZm8ucGF0aG5hbWU7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGUgPSBkZWZhdWx0TG9jYWxlO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCA9IGluZm8uYmFzZVBhdGggPz8gJyc7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQgPSBpbmZvLmJ1aWxkSWQ7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmxvY2FsZSA9IGluZm8ubG9jYWxlID8/IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnRyYWlsaW5nU2xhc2ggPSBpbmZvLnRyYWlsaW5nU2xhc2g7XG4gICAgfVxuICAgIGZvcm1hdFBhdGhuYW1lKCkge1xuICAgICAgICByZXR1cm4gKDAsIF9mb3JtYXRuZXh0cGF0aG5hbWVpbmZvLmZvcm1hdE5leHRQYXRobmFtZUluZm8pKHtcbiAgICAgICAgICAgIGJhc2VQYXRoOiB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCxcbiAgICAgICAgICAgIGJ1aWxkSWQ6IHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQsXG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlOiAhdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5mb3JjZUxvY2FsZSA/IHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBsb2NhbGU6IHRoaXNbSW50ZXJuYWxdLmxvY2FsZSxcbiAgICAgICAgICAgIHBhdGhuYW1lOiB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUsXG4gICAgICAgICAgICB0cmFpbGluZ1NsYXNoOiB0aGlzW0ludGVybmFsXS50cmFpbGluZ1NsYXNoXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmb3JtYXRTZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoO1xuICAgIH1cbiAgICBnZXQgYnVpbGRJZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQ7XG4gICAgfVxuICAgIHNldCBidWlsZElkKGJ1aWxkSWQpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCA9IGJ1aWxkSWQ7XG4gICAgfVxuICAgIGdldCBsb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5sb2NhbGUgPz8gJyc7XG4gICAgfVxuICAgIHNldCBsb2NhbGUobG9jYWxlKSB7XG4gICAgICAgIHZhciBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnO1xuICAgICAgICBpZiAoIXRoaXNbSW50ZXJuYWxdLmxvY2FsZSB8fCAhKChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4gPSBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLmxvY2FsZXMuaW5jbHVkZXMobG9jYWxlKSkpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgVHlwZUVycm9yKGBUaGUgTmV4dFVSTCBjb25maWd1cmF0aW9uIGluY2x1ZGVzIG5vIGxvY2FsZSBcIiR7bG9jYWxlfVwiYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU1OTdcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmxvY2FsZSA9IGxvY2FsZTtcbiAgICB9XG4gICAgZ2V0IGRlZmF1bHRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlO1xuICAgIH1cbiAgICBnZXQgZG9tYWluTG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoUGFyYW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgZ2V0IGhvc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaG9zdDtcbiAgICB9XG4gICAgc2V0IGhvc3QodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhvc3QgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhvc3RuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhvc3RuYW1lO1xuICAgIH1cbiAgICBzZXQgaG9zdG5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhvc3RuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwb3J0KCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBvcnQ7XG4gICAgfVxuICAgIHNldCBwb3J0KHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wb3J0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwcm90b2NvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wcm90b2NvbDtcbiAgICB9XG4gICAgc2V0IHByb3RvY29sKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wcm90b2NvbCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaHJlZigpIHtcbiAgICAgICAgY29uc3QgcGF0aG5hbWUgPSB0aGlzLmZvcm1hdFBhdGhuYW1lKCk7XG4gICAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuZm9ybWF0U2VhcmNoKCk7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnByb3RvY29sfS8vJHt0aGlzLmhvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke3RoaXMuaGFzaH1gO1xuICAgIH1cbiAgICBzZXQgaHJlZih1cmwpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsID0gcGFyc2VVUkwodXJsKTtcbiAgICAgICAgdGhpcy5hbmFseXplKCk7XG4gICAgfVxuICAgIGdldCBvcmlnaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwub3JpZ2luO1xuICAgIH1cbiAgICBnZXQgcGF0aG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWU7XG4gICAgfVxuICAgIHNldCBwYXRobmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhhc2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaGFzaDtcbiAgICB9XG4gICAgc2V0IGhhc2godmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhhc2ggPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHNlYXJjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2g7XG4gICAgfVxuICAgIHNldCBzZWFyY2godmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcGFzc3dvcmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucGFzc3dvcmQ7XG4gICAgfVxuICAgIHNldCBwYXNzd29yZCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGFzc3dvcmQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHVzZXJuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnVzZXJuYW1lO1xuICAgIH1cbiAgICBzZXQgdXNlcm5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnVzZXJuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBiYXNlUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoO1xuICAgIH1cbiAgICBzZXQgYmFzZVBhdGgodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGggPSB2YWx1ZS5zdGFydHNXaXRoKCcvJykgPyB2YWx1ZSA6IGAvJHt2YWx1ZX1gO1xuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHJlZjtcbiAgICB9XG4gICAgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ocmVmO1xuICAgIH1cbiAgICBbU3ltYm9sLmZvcignZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tJyldKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaHJlZjogdGhpcy5ocmVmLFxuICAgICAgICAgICAgb3JpZ2luOiB0aGlzLm9yaWdpbixcbiAgICAgICAgICAgIHByb3RvY29sOiB0aGlzLnByb3RvY29sLFxuICAgICAgICAgICAgdXNlcm5hbWU6IHRoaXMudXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcbiAgICAgICAgICAgIGhvc3Q6IHRoaXMuaG9zdCxcbiAgICAgICAgICAgIGhvc3RuYW1lOiB0aGlzLmhvc3RuYW1lLFxuICAgICAgICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgICAgICAgcGF0aG5hbWU6IHRoaXMucGF0aG5hbWUsXG4gICAgICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoLFxuICAgICAgICAgICAgc2VhcmNoUGFyYW1zOiB0aGlzLnNlYXJjaFBhcmFtcyxcbiAgICAgICAgICAgIGhhc2g6IHRoaXMuaGFzaFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0VVJMKFN0cmluZyh0aGlzKSwgdGhpc1tJbnRlcm5hbF0ub3B0aW9ucyk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uZXh0LXVybC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js": /*!***********************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NextRequestAdapter: function() {\n return NextRequestAdapter;\n },\n ResponseAborted: function() {\n return ResponseAborted;\n },\n ResponseAbortedName: function() {\n return ResponseAbortedName;\n },\n createAbortController: function() {\n return createAbortController;\n },\n signalFromNodeResponse: function() {\n return signalFromNodeResponse;\n }\n});\nconst _requestmeta = __webpack_require__(/*! ../../../request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\nconst _utils = __webpack_require__(/*! ../../utils */ \"(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\");\nconst _request = __webpack_require__(/*! ../request */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _helpers = __webpack_require__(/*! ../../../base-http/helpers */ \"(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst ResponseAbortedName = 'ResponseAborted';\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\nfunction createAbortController(response) {\n const controller = new AbortController();\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once('close', ()=>{\n if (response.writableFinished) return;\n controller.abort(new ResponseAborted());\n });\n return controller;\n}\nfunction signalFromNodeResponse(response) {\n const { errored, destroyed } = response;\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted());\n }\n const { signal } = createAbortController(response);\n return signal;\n}\nclass NextRequestAdapter {\n static fromBaseNextRequest(request, signal) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n false) {} else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextRequest)(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), \"__NEXT_ERROR_CODE\", {\n value: \"E345\",\n enumerable: false,\n configurable: true\n });\n }\n }\n static fromNodeNextRequest(request, signal) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body;\n }\n let url;\n if (request.url.startsWith('http')) {\n url = new URL(request.url);\n } else {\n // Grab the full URL from the request metadata.\n const base = (0, _requestmeta.getRequestMeta)(request, 'initURL');\n if (!base || !base.startsWith('http')) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, 'http://n');\n } else {\n url = new URL(request.url, base);\n }\n }\n return new _request.NextRequest(url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\n });\n }\n static fromWebNextRequest(request) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD') {\n body = request.body;\n }\n return new _request.NextRequest(request.url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3QuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscUJBQXFCLG1CQUFPLENBQUMsK0ZBQXVCO0FBQ3BELGVBQWUsbUJBQU8sQ0FBQyxrRkFBYTtBQUNwQyxpQkFBaUIsbUJBQU8sQ0FBQyxrR0FBWTtBQUNyQyxpQkFBaUIsbUJBQU8sQ0FBQyx5R0FBNEI7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUE4RSxFQUFFLEVBRS9FLENBQUM7QUFDVjtBQUNBLFFBQVEsS0FBbUM7QUFDM0M7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRDtBQUNuRDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL25leHQtcmVxdWVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE5leHRSZXF1ZXN0QWRhcHRlcjogbnVsbCxcbiAgICBSZXNwb25zZUFib3J0ZWQ6IG51bGwsXG4gICAgUmVzcG9uc2VBYm9ydGVkTmFtZTogbnVsbCxcbiAgICBjcmVhdGVBYm9ydENvbnRyb2xsZXI6IG51bGwsXG4gICAgc2lnbmFsRnJvbU5vZGVSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBOZXh0UmVxdWVzdEFkYXB0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyO1xuICAgIH0sXG4gICAgUmVzcG9uc2VBYm9ydGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc3BvbnNlQWJvcnRlZDtcbiAgICB9LFxuICAgIFJlc3BvbnNlQWJvcnRlZE5hbWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2VBYm9ydGVkTmFtZTtcbiAgICB9LFxuICAgIGNyZWF0ZUFib3J0Q29udHJvbGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVBYm9ydENvbnRyb2xsZXI7XG4gICAgfSxcbiAgICBzaWduYWxGcm9tTm9kZVJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBfcmVxdWVzdG1ldGEgPSByZXF1aXJlKFwiLi4vLi4vLi4vcmVxdWVzdC1tZXRhXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xuY29uc3QgX3JlcXVlc3QgPSByZXF1aXJlKFwiLi4vcmVxdWVzdFwiKTtcbmNvbnN0IF9oZWxwZXJzID0gcmVxdWlyZShcIi4uLy4uLy4uL2Jhc2UtaHR0cC9oZWxwZXJzXCIpO1xuY29uc3QgUmVzcG9uc2VBYm9ydGVkTmFtZSA9ICdSZXNwb25zZUFib3J0ZWQnO1xuY2xhc3MgUmVzcG9uc2VBYm9ydGVkIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3Mpe1xuICAgICAgICBzdXBlciguLi5hcmdzKSwgdGhpcy5uYW1lID0gUmVzcG9uc2VBYm9ydGVkTmFtZTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVBYm9ydENvbnRyb2xsZXIocmVzcG9uc2UpIHtcbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIC8vIElmIGBmaW5pc2hgIGZpcmVzIGZpcnN0LCB0aGVuIGByZXMuZW5kKClgIGhhcyBiZWVuIGNhbGxlZCBhbmQgdGhlIGNsb3NlIGlzXG4gICAgLy8ganVzdCB1cyBmaW5pc2hpbmcgdGhlIHN0cmVhbSBvbiBvdXIgc2lkZS4gSWYgYGNsb3NlYCBmaXJlcyBmaXJzdCwgdGhlbiB3ZVxuICAgIC8vIGtub3cgdGhlIGNsaWVudCBkaXNjb25uZWN0ZWQgYmVmb3JlIHdlIGZpbmlzaGVkLlxuICAgIHJlc3BvbnNlLm9uY2UoJ2Nsb3NlJywgKCk9PntcbiAgICAgICAgaWYgKHJlc3BvbnNlLndyaXRhYmxlRmluaXNoZWQpIHJldHVybjtcbiAgICAgICAgY29udHJvbGxlci5hYm9ydChuZXcgUmVzcG9uc2VBYm9ydGVkKCkpO1xuICAgIH0pO1xuICAgIHJldHVybiBjb250cm9sbGVyO1xufVxuZnVuY3Rpb24gc2lnbmFsRnJvbU5vZGVSZXNwb25zZShyZXNwb25zZSkge1xuICAgIGNvbnN0IHsgZXJyb3JlZCwgZGVzdHJveWVkIH0gPSByZXNwb25zZTtcbiAgICBpZiAoZXJyb3JlZCB8fCBkZXN0cm95ZWQpIHtcbiAgICAgICAgcmV0dXJuIEFib3J0U2lnbmFsLmFib3J0KGVycm9yZWQgPz8gbmV3IFJlc3BvbnNlQWJvcnRlZCgpKTtcbiAgICB9XG4gICAgY29uc3QgeyBzaWduYWwgfSA9IGNyZWF0ZUFib3J0Q29udHJvbGxlcihyZXNwb25zZSk7XG4gICAgcmV0dXJuIHNpZ25hbDtcbn1cbmNsYXNzIE5leHRSZXF1ZXN0QWRhcHRlciB7XG4gICAgc3RhdGljIGZyb21CYXNlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKSB7XG4gICAgICAgIGlmICgvLyBUaGUgdHlwZSBjaGVjayBoZXJlIGVuc3VyZXMgdGhhdCBgcmVxYCBpcyBjb3JyZWN0bHkgdHlwZWQsIGFuZCB0aGVcbiAgICAgICAgLy8gZW52aXJvbm1lbnQgdmFyaWFibGUgY2hlY2sgcHJvdmlkZXMgZGVhZCBjb2RlIGVsaW1pbmF0aW9uLlxuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJyAmJiAoMCwgX2hlbHBlcnMuaXNXZWJOZXh0UmVxdWVzdCkocmVxdWVzdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOZXh0UmVxdWVzdEFkYXB0ZXIuZnJvbVdlYk5leHRSZXF1ZXN0KHJlcXVlc3QpO1xuICAgICAgICB9IGVsc2UgaWYgKC8vIFRoZSB0eXBlIGNoZWNrIGhlcmUgZW5zdXJlcyB0aGF0IGByZXFgIGlzIGNvcnJlY3RseSB0eXBlZCwgYW5kIHRoZVxuICAgICAgICAvLyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjaGVjayBwcm92aWRlcyBkZWFkIGNvZGUgZWxpbWluYXRpb24uXG4gICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmICgwLCBfaGVscGVycy5pc05vZGVOZXh0UmVxdWVzdCkocmVxdWVzdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOZXh0UmVxdWVzdEFkYXB0ZXIuZnJvbU5vZGVOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignSW52YXJpYW50OiBVbnN1cHBvcnRlZCBOZXh0UmVxdWVzdCB0eXBlJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzNDVcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tTm9kZU5leHRSZXF1ZXN0KHJlcXVlc3QsIHNpZ25hbCkge1xuICAgICAgICAvLyBIRUFEIGFuZCBHRVQgcmVxdWVzdHMgY2FuIG5vdCBoYXZlIGEgYm9keS5cbiAgICAgICAgbGV0IGJvZHkgPSBudWxsO1xuICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgIT09ICdHRVQnICYmIHJlcXVlc3QubWV0aG9kICE9PSAnSEVBRCcgJiYgcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhpcyBpcyBoYW5kbGVkIGJ5IHVuZGljaSwgd2hlbiBzdHJlYW1zL3dlYiBsYW5kIHVzZSBpdCBpbnN0ZWFkXG4gICAgICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIGxldCB1cmw7XG4gICAgICAgIGlmIChyZXF1ZXN0LnVybC5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwocmVxdWVzdC51cmwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gR3JhYiB0aGUgZnVsbCBVUkwgZnJvbSB0aGUgcmVxdWVzdCBtZXRhZGF0YS5cbiAgICAgICAgICAgIGNvbnN0IGJhc2UgPSAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXF1ZXN0LCAnaW5pdFVSTCcpO1xuICAgICAgICAgICAgaWYgKCFiYXNlIHx8ICFiYXNlLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgICAgIC8vIEJlY2F1c2UgdGhlIFVSTCBjb25zdHJ1Y3Rpb24gcmVsaWVzIG9uIHRoZSBmYWN0IHRoYXQgdGhlIFVSTCBwcm92aWRlZFxuICAgICAgICAgICAgICAgIC8vIGlzIGFic29sdXRlLCB3ZSBuZWVkIHRvIHByb3ZpZGUgYSBiYXNlIFVSTC4gV2UgY2FuJ3QgdXNlIHRoZSByZXF1ZXN0XG4gICAgICAgICAgICAgICAgLy8gVVJMIGJlY2F1c2UgaXQncyByZWxhdGl2ZSwgc28gd2UgdXNlIGEgZHVtbXkgVVJMIGluc3RlYWQuXG4gICAgICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCwgJ2h0dHA6Ly9uJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVybCA9IG5ldyBVUkwocmVxdWVzdC51cmwsIGJhc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgX3JlcXVlc3QuTmV4dFJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgICAgICAgICAgaGVhZGVyczogKDAsIF91dGlscy5mcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMpKHJlcXVlc3QuaGVhZGVycyksXG4gICAgICAgICAgICBkdXBsZXg6ICdoYWxmJyxcbiAgICAgICAgICAgIHNpZ25hbCxcbiAgICAgICAgICAgIC8vIGdlb1xuICAgICAgICAgICAgLy8gaXBcbiAgICAgICAgICAgIC8vIG5leHRDb25maWdcbiAgICAgICAgICAgIC8vIGJvZHkgY2FuIG5vdCBiZSBwYXNzZWQgaWYgcmVxdWVzdCB3YXMgYWJvcnRlZFxuICAgICAgICAgICAgLy8gb3Igd2UgZ2V0IGEgUmVxdWVzdCBib2R5IHdhcyBkaXN0dXJiZWQgZXJyb3JcbiAgICAgICAgICAgIC4uLnNpZ25hbC5hYm9ydGVkID8ge30gOiB7XG4gICAgICAgICAgICAgICAgYm9keVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIGZyb21XZWJOZXh0UmVxdWVzdChyZXF1ZXN0KSB7XG4gICAgICAgIC8vIEhFQUQgYW5kIEdFVCByZXF1ZXN0cyBjYW4gbm90IGhhdmUgYSBib2R5LlxuICAgICAgICBsZXQgYm9keSA9IG51bGw7XG4gICAgICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJykge1xuICAgICAgICAgICAgYm9keSA9IHJlcXVlc3QuYm9keTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IF9yZXF1ZXN0Lk5leHRSZXF1ZXN0KHJlcXVlc3QudXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgICAgICAgICAgaGVhZGVyczogKDAsIF91dGlscy5mcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMpKHJlcXVlc3QuaGVhZGVycyksXG4gICAgICAgICAgICBkdXBsZXg6ICdoYWxmJyxcbiAgICAgICAgICAgIHNpZ25hbDogcmVxdWVzdC5yZXF1ZXN0LnNpZ25hbCxcbiAgICAgICAgICAgIC8vIGdlb1xuICAgICAgICAgICAgLy8gaXBcbiAgICAgICAgICAgIC8vIG5leHRDb25maWdcbiAgICAgICAgICAgIC8vIGJvZHkgY2FuIG5vdCBiZSBwYXNzZWQgaWYgcmVxdWVzdCB3YXMgYWJvcnRlZFxuICAgICAgICAgICAgLy8gb3Igd2UgZ2V0IGEgUmVxdWVzdCBib2R5IHdhcyBkaXN0dXJiZWQgZXJyb3JcbiAgICAgICAgICAgIC4uLnJlcXVlc3QucmVxdWVzdC5zaWduYWwuYWJvcnRlZCA/IHt9IDoge1xuICAgICAgICAgICAgICAgIGJvZHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uZXh0LXJlcXVlc3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/cookies.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n\n//# sourceMappingURL=cookies.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsbUlBQTBDOztBQUVuRSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vY29va2llcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIFJlcXVlc3RDb29raWVzOiBudWxsLFxuICAgIFJlc3BvbnNlQ29va2llczogbnVsbCxcbiAgICBzdHJpbmdpZnlDb29raWU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUmVxdWVzdENvb2tpZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Nvb2tpZXMuUmVxdWVzdENvb2tpZXM7XG4gICAgfSxcbiAgICBSZXNwb25zZUNvb2tpZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Nvb2tpZXMuUmVzcG9uc2VDb29raWVzO1xuICAgIH0sXG4gICAgc3RyaW5naWZ5Q29va2llOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLnN0cmluZ2lmeUNvb2tpZTtcbiAgICB9XG59KTtcbmNvbnN0IF9jb29raWVzID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXNcIik7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvb2tpZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/request.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\");\nconst _error = __webpack_require__(/*! ../error */ \"(pages-dir-node)/./node_modules/next/dist/server/web/error.js\");\nconst _cookies = __webpack_require__(/*! ./cookies */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal request');\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== 'string' && 'url' in input ? input.url : String(input);\n (0, _utils.validateURL)(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (true) {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLHFGQUFhO0FBQ3RDLGVBQWUsbUJBQU8sQ0FBQywrRUFBVTtBQUNqQyxlQUFlLG1CQUFPLENBQUMsK0VBQVU7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsaUdBQVc7QUFDcEM7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQW1DO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsTUFBOEMsR0FBRyxDQUFHO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL3JlcXVlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBJTlRFUk5BTFM6IG51bGwsXG4gICAgTmV4dFJlcXVlc3Q6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSU5URVJOQUxTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElOVEVSTkFMUztcbiAgICB9LFxuICAgIE5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0O1xuICAgIH1cbn0pO1xuY29uc3QgX25leHR1cmwgPSByZXF1aXJlKFwiLi4vbmV4dC11cmxcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG5jb25zdCBfZXJyb3IgPSByZXF1aXJlKFwiLi4vZXJyb3JcIik7XG5jb25zdCBfY29va2llcyA9IHJlcXVpcmUoXCIuL2Nvb2tpZXNcIik7XG5jb25zdCBJTlRFUk5BTFMgPSBTeW1ib2woJ2ludGVybmFsIHJlcXVlc3QnKTtcbmNsYXNzIE5leHRSZXF1ZXN0IGV4dGVuZHMgUmVxdWVzdCB7XG4gICAgY29uc3RydWN0b3IoaW5wdXQsIGluaXQgPSB7fSl7XG4gICAgICAgIGNvbnN0IHVybCA9IHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgJ3VybCcgaW4gaW5wdXQgPyBpbnB1dC51cmwgOiBTdHJpbmcoaW5wdXQpO1xuICAgICAgICAoMCwgX3V0aWxzLnZhbGlkYXRlVVJMKSh1cmwpO1xuICAgICAgICAvLyBub2RlIFJlcXVlc3QgaW5zdGFuY2UgcmVxdWlyZXMgZHVwbGV4IG9wdGlvbiB3aGVuIGEgYm9keVxuICAgICAgICAvLyBpcyBwcmVzZW50IG9yIGl0IGVycm9ycywgd2UgZG9uJ3QgaGFuZGxlIHRoaXMgZm9yXG4gICAgICAgIC8vIFJlcXVlc3QgYmVpbmcgcGFzc2VkIGluIHNpbmNlIGl0IHdvdWxkIGhhdmUgYWxyZWFkeVxuICAgICAgICAvLyBlcnJvcmVkIGlmIHRoaXMgd2Fzbid0IGNvbmZpZ3VyZWRcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnKSB7XG4gICAgICAgICAgICBpZiAoaW5pdC5ib2R5ICYmIGluaXQuZHVwbGV4ICE9PSAnaGFsZicpIHtcbiAgICAgICAgICAgICAgICBpbml0LmR1cGxleCA9ICdoYWxmJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBSZXF1ZXN0KSBzdXBlcihpbnB1dCwgaW5pdCk7XG4gICAgICAgIGVsc2Ugc3VwZXIodXJsLCBpbml0KTtcbiAgICAgICAgY29uc3QgbmV4dFVybCA9IG5ldyBfbmV4dHVybC5OZXh0VVJMKHVybCwge1xuICAgICAgICAgICAgaGVhZGVyczogKDAsIF91dGlscy50b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKSh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgbmV4dENvbmZpZzogaW5pdC5uZXh0Q29uZmlnXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzW0lOVEVSTkFMU10gPSB7XG4gICAgICAgICAgICBjb29raWVzOiBuZXcgX2Nvb2tpZXMuUmVxdWVzdENvb2tpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIG5leHRVcmwsXG4gICAgICAgICAgICB1cmw6IHByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUgPyB1cmwgOiBuZXh0VXJsLnRvU3RyaW5nKClcbiAgICAgICAgfTtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoJ2VkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbScpXSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvb2tpZXM6IHRoaXMuY29va2llcyxcbiAgICAgICAgICAgIG5leHRVcmw6IHRoaXMubmV4dFVybCxcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICAvLyByZXN0IG9mIHByb3BzIGNvbWUgZnJvbSBSZXF1ZXN0XG4gICAgICAgICAgICBib2R5VXNlZDogdGhpcy5ib2R5VXNlZCxcbiAgICAgICAgICAgIGNhY2hlOiB0aGlzLmNhY2hlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHRoaXMuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogdGhpcy5kZXN0aW5hdGlvbixcbiAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgaW50ZWdyaXR5OiB0aGlzLmludGVncml0eSxcbiAgICAgICAgICAgIGtlZXBhbGl2ZTogdGhpcy5rZWVwYWxpdmUsXG4gICAgICAgICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgICAgICAgcmVkaXJlY3Q6IHRoaXMucmVkaXJlY3QsXG4gICAgICAgICAgICByZWZlcnJlcjogdGhpcy5yZWZlcnJlcixcbiAgICAgICAgICAgIHJlZmVycmVyUG9saWN5OiB0aGlzLnJlZmVycmVyUG9saWN5LFxuICAgICAgICAgICAgc2lnbmFsOiB0aGlzLnNpZ25hbFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgY29va2llcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS5jb29raWVzO1xuICAgIH1cbiAgICBnZXQgbmV4dFVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS5uZXh0VXJsO1xuICAgIH1cbiAgICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogYHBhZ2VgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGBVUkxQYXR0ZXJuYC5cbiAgICogUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXJlcXVlc3QtcGFnZVxuICAgKi8gZ2V0IHBhZ2UoKSB7XG4gICAgICAgIHRocm93IG5ldyBfZXJyb3IuUmVtb3ZlZFBhZ2VFcnJvcigpO1xuICAgIH1cbiAgICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogYHVhYCBoYXMgYmVlbiByZW1vdmVkIGluIGZhdm91ciBvZiBcXGB1c2VyQWdlbnRcXGAgZnVuY3Rpb24uXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1wYXJzZS11c2VyLWFnZW50XG4gICAqLyBnZXQgdWEoKSB7XG4gICAgICAgIHRocm93IG5ldyBfZXJyb3IuUmVtb3ZlZFVBRXJyb3IoKTtcbiAgICB9XG4gICAgZ2V0IHVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS51cmw7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/server/web/utils.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/server/web/utils.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === 'undefined') continue;\n if (typeof v === 'number') {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\nfunction splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== '=' && ch !== ';' && ch !== ',';\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\nfunction toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw Object.defineProperty(new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E61\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction normalizeNextQueryParam(key) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxtQkFBbUIsbUJBQU8sQ0FBQyx1RkFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtFQUErRTtBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIseURBQXlEO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixtRUFBbUUsWUFBWTtBQUMvRTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM6IG51bGwsXG4gICAgbm9ybWFsaXplTmV4dFF1ZXJ5UGFyYW06IG51bGwsXG4gICAgc3BsaXRDb29raWVzU3RyaW5nOiBudWxsLFxuICAgIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM6IG51bGwsXG4gICAgdmFsaWRhdGVVUkw6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycztcbiAgICB9LFxuICAgIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtO1xuICAgIH0sXG4gICAgc3BsaXRDb29raWVzU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNwbGl0Q29va2llc1N0cmluZztcbiAgICB9LFxuICAgIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycztcbiAgICB9LFxuICAgIHZhbGlkYXRlVVJMOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlVVJMO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKG5vZGVIZWFkZXJzKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7XG4gICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5vZGVIZWFkZXJzKSl7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICBdO1xuICAgICAgICBmb3IgKGxldCB2IG9mIHZhbHVlcyl7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICd1bmRlZmluZWQnKSBjb250aW51ZTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB2ID0gdi50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoa2V5LCB2KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbn1cbmZ1bmN0aW9uIHNwbGl0Q29va2llc1N0cmluZyhjb29raWVzU3RyaW5nKSB7XG4gICAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gICAgdmFyIHBvcyA9IDA7XG4gICAgdmFyIHN0YXJ0O1xuICAgIHZhciBjaDtcbiAgICB2YXIgbGFzdENvbW1hO1xuICAgIHZhciBuZXh0U3RhcnQ7XG4gICAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgICBmdW5jdGlvbiBza2lwV2hpdGVzcGFjZSgpIHtcbiAgICAgICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgL1xccy8udGVzdChjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpKSl7XG4gICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vdFNwZWNpYWxDaGFyKCkge1xuICAgICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICAgIHJldHVybiBjaCAhPT0gJz0nICYmIGNoICE9PSAnOycgJiYgY2ggIT09ICcsJztcbiAgICB9XG4gICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpe1xuICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gZmFsc2U7XG4gICAgICAgIHdoaWxlKHNraXBXaGl0ZXNwYWNlKCkpe1xuICAgICAgICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnLCcpIHtcbiAgICAgICAgICAgICAgICAvLyAnLCcgaXMgYSBjb29raWUgc2VwYXJhdG9yIGlmIHdlIGhhdmUgbGF0ZXIgZmlyc3QgJz0nLCBub3QgJzsnIG9yICcsJ1xuICAgICAgICAgICAgICAgIGxhc3RDb21tYSA9IHBvcztcbiAgICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgICAgICBza2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IHBvcztcbiAgICAgICAgICAgICAgICB3aGlsZShwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBub3RTcGVjaWFsQ2hhcigpKXtcbiAgICAgICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSBzcGVjaWFsIGNoYXJhY3RlclxuICAgICAgICAgICAgICAgIGlmIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpID09PSAnPScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgZm91bmQgY29va2llcyBzZXBhcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcG9zIGlzIGluc2lkZSB0aGUgbmV4dCBjb29raWUsIHNvIGJhY2sgdXAgYW5kIHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbmV4dFN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBsYXN0Q29tbWEpKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaW4gcGFyYW0gJywnIG9yIHBhcmFtIHNlcGFyYXRvciAnOycsXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGNvbnRpbnVlIGZyb20gdGhhdCBjb21tYVxuICAgICAgICAgICAgICAgICAgICBwb3MgPSBsYXN0Q29tbWEgKyAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjb29raWVzU2VwYXJhdG9yRm91bmQgfHwgcG9zID49IGNvb2tpZXNTdHJpbmcubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBjb29raWVzU3RyaW5nLmxlbmd0aCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb29raWVzU3RyaW5ncztcbn1cbmZ1bmN0aW9uIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMoaGVhZGVycykge1xuICAgIGNvbnN0IG5vZGVIZWFkZXJzID0ge307XG4gICAgY29uc3QgY29va2llcyA9IFtdO1xuICAgIGlmIChoZWFkZXJzKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhlYWRlcnMuZW50cmllcygpKXtcbiAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3NldC1jb29raWUnKSB7XG4gICAgICAgICAgICAgICAgLy8gV2UgbWF5IGhhdmUgZ290dGVuIGEgY29tbWEgam9pbmVkIHN0cmluZyBvZiBjb29raWVzLCBvciBtdWx0aXBsZVxuICAgICAgICAgICAgICAgIC8vIHNldC1jb29raWUgaGVhZGVycy4gV2UgbmVlZCB0byBtZXJnZSB0aGVtIGludG8gb25lIGhlYWRlciBhcnJheVxuICAgICAgICAgICAgICAgIC8vIHRvIHJlcHJlc2VudCBhbGwgdGhlIGNvb2tpZXMuXG4gICAgICAgICAgICAgICAgY29va2llcy5wdXNoKC4uLnNwbGl0Q29va2llc1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgIG5vZGVIZWFkZXJzW2tleV0gPSBjb29raWVzLmxlbmd0aCA9PT0gMSA/IGNvb2tpZXNbMF0gOiBjb29raWVzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlSGVhZGVyc1trZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5vZGVIZWFkZXJzO1xufVxuZnVuY3Rpb24gdmFsaWRhdGVVUkwodXJsKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhuZXcgVVJMKFN0cmluZyh1cmwpKSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgVVJMIGlzIG1hbGZvcm1lZCBcIiR7U3RyaW5nKHVybCl9XCIuIFBsZWFzZSB1c2Ugb25seSBhYnNvbHV0ZSBVUkxzIC0gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZWxhdGl2ZS11cmxzYCwge1xuICAgICAgICAgICAgY2F1c2U6IGVycm9yXG4gICAgICAgIH0pLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkU2MVwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuZnVuY3Rpb24gbm9ybWFsaXplTmV4dFF1ZXJ5UGFyYW0oa2V5KSB7XG4gICAgY29uc3QgcHJlZml4ZXMgPSBbXG4gICAgICAgIF9jb25zdGFudHMuTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgsXG4gICAgICAgIF9jb25zdGFudHMuTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWFxuICAgIF07XG4gICAgZm9yIChjb25zdCBwcmVmaXggb2YgcHJlZml4ZXMpe1xuICAgICAgICBpZiAoa2V5ICE9PSBwcmVmaXggJiYga2V5LnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgICAgICAgcmV0dXJuIGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/shared/lib/amp-mode.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9hbXAtbW9kZS5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsWUFBWTtJQUFBLE1BQzFCQyxXQUFXLEtBQUssRUFDaEJDLFNBQVMsS0FBSyxFQUNkQyxXQUFXLEtBQUssRUFDakIsR0FKMkIsbUJBSXhCLENBQUMsSUFKdUI7SUFLMUIsT0FBT0YsWUFBYUMsVUFBVUM7QUFDaEMiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2FtcC1tb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0luQW1wTW9kZSh7XG4gIGFtcEZpcnN0ID0gZmFsc2UsXG4gIGh5YnJpZCA9IGZhbHNlLFxuICBoYXNRdWVyeSA9IGZhbHNlLFxufSA9IHt9KTogYm9vbGVhbiB7XG4gIHJldHVybiBhbXBGaXJzdCB8fCAoaHlicmlkICYmIGhhc1F1ZXJ5KVxufVxuIl0sIm5hbWVzIjpbImlzSW5BbXBNb2RlIiwiYW1wRmlyc3QiLCJoeWJyaWQiLCJoYXNRdWVyeSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/constants.js ***! \********************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n AdapterOutputType: function() {\n return AdapterOutputType;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_BUILD_MANIFEST: function() {\n return TURBOPACK_CLIENT_BUILD_MANIFEST;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nvar AdapterOutputType = /*#__PURE__*/ function(AdapterOutputType) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ AdapterOutputType[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ AdapterOutputType[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ AdapterOutputType[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ AdapterOutputType[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `PRERENDER` represents an ISR enabled route that might\n * have a seeded cache entry or fallback generated during build\n */ AdapterOutputType[\"PRERENDER\"] = \"PRERENDER\";\n /**\n * `STATIC_FILE` represents a static file (ie /_next/static)\n */ AdapterOutputType[\"STATIC_FILE\"] = \"STATIC_FILE\";\n /**\n * `MIDDLEWARE` represents the middleware output if present\n */ AdapterOutputType[\"MIDDLEWARE\"] = \"MIDDLEWARE\";\n return AdapterOutputType;\n}({});\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst TURBOPACK_CLIENT_BUILD_MANIFEST = 'client-build-manifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBMEVhQSxrQkFBa0I7ZUFBbEJBOztJQWtEQUMsb0JBQW9CO2VBQXBCQTs7SUFyREFDLGtCQUFrQjtlQUFsQkE7O0lBQ0FDLHdCQUF3QjtlQUF4QkE7O0lBMUREQyxpQkFBaUI7ZUFBakJBOztJQXlGQ0MsMEJBQTBCO2VBQTFCQTs7SUFMQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUF4QkFDLGNBQWM7ZUFBZEE7O0lBMEJBQyx3QkFBd0I7ZUFBeEJBOztJQU9BQyx5QkFBeUI7ZUFBekJBOztJQU5BQyx3QkFBd0I7ZUFBeEJBOztJQTRCQUMsK0JBQStCO2VBQS9CQTs7SUFQQUMsZ0NBQWdDO2VBQWhDQTs7SUFDQUMsb0NBQW9DO2VBQXBDQTs7SUFVQUMscUNBQXFDO2VBQXJDQTs7SUFDQUMsNENBQTRDO2VBQTVDQTs7SUFQQUMseUNBQXlDO2VBQXpDQTs7SUFJQUMsbUNBQW1DO2VBQW5DQTs7SUE3RUFDLGdCQUFnQjtlQUFoQkE7O0lBL0NBQyxjQUFjO2VBQWRBOztJQXNGQUMsWUFBWTtlQUFaQTs7SUE0Q0FDLHVCQUF1QjtlQUF2QkE7O0lBVUFDLHVCQUF1QjtlQUF2QkE7O0lBTkFDLGtCQUFrQjtlQUFsQkE7O0lBbkRBQyw4QkFBOEI7ZUFBOUJBOztJQUxBQyx5QkFBeUI7ZUFBekJBOztJQWtDQUMsb0JBQW9CO2VBQXBCQTs7SUFtQkFDLG9CQUFvQjtlQUFwQkE7O0lBNkJBQywwQkFBMEI7ZUFBMUJBOztJQXZGQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUFIQUMseUJBQXlCO2VBQXpCQTs7SUFPQUMsZUFBZTtlQUFmQTs7SUFpQ0FDLG1DQUFtQztlQUFuQ0E7O0lBTEFDLHlCQUF5QjtlQUF6QkE7O0lBekJBQyxtQkFBbUI7ZUFBbkJBOztJQTJCQUMsa0NBQWtDO2VBQWxDQTs7SUE5R0pDLDBCQUEwQjtlQUExQkEsMEJBQUFBLE9BQTBCOztJQW9HdEJDLHFCQUFxQjtlQUFyQkE7O0lBekJBQyxrQkFBa0I7ZUFBbEJBOztJQVJBQyxjQUFjO2VBQWRBOztJQUhBQyx3QkFBd0I7ZUFBeEJBOztJQUhBQyxZQUFZO2VBQVpBOztJQUtBQyxVQUFVO2VBQVZBOztJQUpBQyxzQkFBc0I7ZUFBdEJBOztJQUNBQyx1QkFBdUI7ZUFBdkJBOztJQUVBQyxVQUFVO2VBQVZBOztJQWFBQyxrQkFBa0I7ZUFBbEJBOztJQVVBQyx1QkFBdUI7ZUFBdkJBOztJQVRBQyxlQUFlO2VBQWZBOztJQTRFQUMsZ0JBQWdCO2VBQWhCQTs7SUFsRUFDLGdCQUFnQjtlQUFoQkE7O0lBUkFDLHFCQUFxQjtlQUFyQkE7O0lBd0RBQyxlQUFlO2VBQWZBOztJQS9CQUMseUJBQXlCO2VBQXpCQTs7SUE4QkFDLGVBQWU7ZUFBZkE7O0lBY0FDLG1CQUFtQjtlQUFuQkE7O0lBbkRBQywwQkFBMEI7ZUFBMUJBOztJQXpCQUMsOEJBQThCO2VBQTlCQTs7SUE2R0FDLGtCQUFrQjtlQUFsQkE7O0lBaENBQyxvQkFBb0I7ZUFBcEJBOztJQWpFQUMsK0JBQStCO2VBQS9CQTs7SUFGQUMsb0NBQW9DO2VBQXBDQTs7SUFxRUFDLGdDQUFnQztlQUFoQ0E7O0lBOUZBQywwQkFBMEI7ZUFBMUJBOztJQUNBQyxnQ0FBZ0M7ZUFBaENBOztJQVFBQyxhQUFhO2VBQWJBOzs7OytGQXRFMEI7QUFNaEMsTUFBTS9DLGlCQUFpQjtJQUM1QmdELFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxZQUFZO0FBQ2Q7QUFJTyxJQUFLbEUsb0JBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLGlCQUFBQTtJQUNWOztHQUVDO0lBR0Q7O0dBRUM7SUFFRDs7O0dBR0M7SUFHRDs7O0dBR0M7SUFHRDs7O0dBR0M7SUFHRDs7R0FFQztJQUdEOztHQUVDO1dBbkNTQTs7QUF1Q0wsTUFBTWUsbUJBRVQ7SUFDRixDQUFDQyxlQUFlZ0QsTUFBTSxDQUFDLEVBQUU7SUFDekIsQ0FBQ2hELGVBQWVpRCxNQUFNLENBQUMsRUFBRTtJQUN6QixDQUFDakQsZUFBZWtELFVBQVUsQ0FBQyxFQUFFO0FBQy9CO0FBRU8sTUFBTUwsNkJBQTZCO0FBQ25DLE1BQU1DLG1DQUFvQyxLQUFFRCw2QkFBMkI7QUFDdkUsTUFBTXRCLGVBQWU7QUFDckIsTUFBTUUseUJBQXlCO0FBQy9CLE1BQU1DLDBCQUEwQjtBQUNoQyxNQUFNSiwyQkFBMkI7QUFDakMsTUFBTUssYUFBYTtBQUNuQixNQUFNSCxhQUFhO0FBQ25CLE1BQU1ILGlCQUFpQjtBQUN2QixNQUFNMEIsZ0JBQWdCO0FBQ3RCLE1BQU1qRSxxQkFBcUI7QUFDM0IsTUFBTUMsMkJBQTJCO0FBQ2pDLE1BQU1LLGlCQUFpQjtBQUN2QixNQUFNUixxQkFBcUI7QUFDM0IsTUFBTWdDLDRCQUE0QjtBQUNsQyxNQUFNMkIsaUNBQWlDO0FBQ3ZDLE1BQU1uQixxQkFBcUI7QUFDM0IsTUFBTVQsZ0JBQWdCO0FBQ3RCLE1BQU1ELGdCQUFnQjtBQUN0QixNQUFNa0IscUJBQXFCO0FBQzNCLE1BQU1FLGtCQUFrQjtBQUN4QixNQUFNakIsa0JBQWtCO0FBQ3hCLE1BQU1vQix3QkFBd0I7QUFDOUIsTUFBTTNCLDRCQUE0QjtBQUNsQyxNQUFNVSxzQkFBc0I7QUFDNUIsTUFBTTJCLHVDQUNYO0FBQ0ssTUFBTUQsa0NBQWtDO0FBQ3hDLE1BQU1yQyxpQ0FBaUM7QUFDdkMsTUFBTXdCLDBCQUEwQjtBQUNoQyxNQUFNRyxtQkFBbUI7QUFDekIsTUFBTS9CLGVBQWU7SUFDMUI7SUFDQTtJQUNBO0NBQ0Q7QUFDTSxNQUFNZCxnQkFBZ0I7QUFDdEIsTUFBTUQsZ0JBQWdCO0lBQUM7SUFBYztJQUFTO0NBQVU7QUFDeEQsTUFBTUcsMkJBQTJCO0FBQ2pDLE1BQU1FLDJCQUEyQjtBQUNqQyxNQUFNK0MsNkJBQTZCO0FBQ25DLE1BQU1uQix3QkFBd0I7QUFDOUIsTUFBTWxDLDZCQUE2QjtBQUduQyxNQUFNSyw0QkFBNEI7QUFFbEMsTUFBTTZDLDRCQUE0QjtBQUVsQyxNQUFNcEIsNEJBQTRCO0FBRWxDLE1BQU1FLHFDQUNYO0FBRUssTUFBTUgsc0NBQ1g7QUFFSyxNQUFNUCx1QkFBdUI7QUFHN0IsTUFBTWQsbUNBQW9DO0FBQzFDLE1BQU1DLHVDQUF3QyxLQUFFRCxtQ0FBaUM7QUFFakYsTUFBTVosdUJBQXVCO0FBRTdCLE1BQU1nQiw0Q0FBNkM7QUFFbkQsTUFBTUwsa0NBQW1DO0FBRXpDLE1BQU1NLHNDQUF1QztBQUU3QyxNQUFNSCx3Q0FBd0M7QUFDOUMsTUFBTUMsK0NBQStDdUQsT0FDMUR4RDtBQUVLLE1BQU1PLDBCQUEwQjtBQUNoQyxNQUFNTSx1QkFBdUI7QUFDN0IsTUFBTTRCLGtCQUFrQjtBQUN4QixNQUFNRixrQkFBa0I7QUFDeEIsTUFBTTlCLHFCQUFxQjtJQUNoQ2dELE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDZDtBQUNPLE1BQU1wRCwwQkFBMEI7SUFDckNpRCxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNbEIsc0JBQXNCO0lBQUM7Q0FBTztBQUNwQyxNQUFNSSx1QkFBdUI7QUFFN0IsTUFBTUcsbUNBQW1DO0FBRXpDLE1BQU1iLG1CQUFtQjtJQUM5QmlCLFFBQVE7SUFDUkMsUUFBUTtBQUNWO0FBTU8sTUFBTXhDLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTStCLHFCQUFxQixJQUFJZ0IsSUFBWTtJQUNoRC9EO0lBQ0FJO0lBQ0FMO0lBQ0FFO0NBQ0QiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgZnJvbSAnLi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldCdcblxuZXhwb3J0IHsgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgfVxuXG5leHBvcnQgdHlwZSBWYWx1ZU9mPFQ+ID0gUmVxdWlyZWQ8VD5ba2V5b2YgVF1cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX05BTUVTID0ge1xuICBjbGllbnQ6ICdjbGllbnQnLFxuICBzZXJ2ZXI6ICdzZXJ2ZXInLFxuICBlZGdlU2VydmVyOiAnZWRnZS1zZXJ2ZXInLFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBDb21waWxlck5hbWVWYWx1ZXMgPSBWYWx1ZU9mPHR5cGVvZiBDT01QSUxFUl9OQU1FUz5cblxuZXhwb3J0IGVudW0gQWRhcHRlck91dHB1dFR5cGUge1xuICAvKipcbiAgICogYFBBR0VTYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYHBhZ2VzL2AuXG4gICAqL1xuICBQQUdFUyA9ICdQQUdFUycsXG5cbiAgLyoqXG4gICAqIGBQQUdFU19BUElgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICovXG4gIFBBR0VTX0FQSSA9ICdQQUdFU19BUEknLFxuICAvKipcbiAgICogYEFQUF9QQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYGFwcC9gIHdpdGggdGhlXG4gICAqIGZpbGVuYW1lIG9mIGBwYWdlLntqLHR9c3sseH1gLlxuICAgKi9cbiAgQVBQX1BBR0UgPSAnQVBQX1BBR0UnLFxuXG4gIC8qKlxuICAgKiBgQVBQX1JPVVRFYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcm91dGUue2osdH1zeyx4fWAuXG4gICAqL1xuICBBUFBfUk9VVEUgPSAnQVBQX1JPVVRFJyxcblxuICAvKipcbiAgICogYFBSRVJFTkRFUmAgcmVwcmVzZW50cyBhbiBJU1IgZW5hYmxlZCByb3V0ZSB0aGF0IG1pZ2h0XG4gICAqIGhhdmUgYSBzZWVkZWQgY2FjaGUgZW50cnkgb3IgZmFsbGJhY2sgZ2VuZXJhdGVkIGR1cmluZyBidWlsZFxuICAgKi9cbiAgUFJFUkVOREVSID0gJ1BSRVJFTkRFUicsXG5cbiAgLyoqXG4gICAqIGBTVEFUSUNfRklMRWAgcmVwcmVzZW50cyBhIHN0YXRpYyBmaWxlIChpZSAvX25leHQvc3RhdGljKVxuICAgKi9cbiAgU1RBVElDX0ZJTEUgPSAnU1RBVElDX0ZJTEUnLFxuXG4gIC8qKlxuICAgKiBgTUlERExFV0FSRWAgcmVwcmVzZW50cyB0aGUgbWlkZGxld2FyZSBvdXRwdXQgaWYgcHJlc2VudFxuICAgKi9cbiAgTUlERExFV0FSRSA9ICdNSURETEVXQVJFJyxcbn1cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX0lOREVYRVM6IHtcbiAgW2NvbXBpbGVyS2V5IGluIENvbXBpbGVyTmFtZVZhbHVlc106IG51bWJlclxufSA9IHtcbiAgW0NPTVBJTEVSX05BTUVTLmNsaWVudF06IDAsXG4gIFtDT01QSUxFUl9OQU1FUy5zZXJ2ZXJdOiAxLFxuICBbQ09NUElMRVJfTkFNRVMuZWRnZVNlcnZlcl06IDIsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURSA9ICcvX25vdC1mb3VuZCdcbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSA9IGAke1VOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFfS9wYWdlYFxuZXhwb3J0IGNvbnN0IFBIQVNFX0VYUE9SVCA9ICdwaGFzZS1leHBvcnQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9CVUlMRCA9ICdwaGFzZS1wcm9kdWN0aW9uLWJ1aWxkJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX1BST0RVQ1RJT05fU0VSVkVSID0gJ3BoYXNlLXByb2R1Y3Rpb24tc2VydmVyJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiA9ICdwaGFzZS1kZXZlbG9wbWVudC1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfVEVTVCA9ICdwaGFzZS10ZXN0J1xuZXhwb3J0IGNvbnN0IFBIQVNFX0lORk8gPSAncGhhc2UtaW5mbydcbmV4cG9ydCBjb25zdCBQQUdFU19NQU5JRkVTVCA9ICdwYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFdFQlBBQ0tfU1RBVFMgPSAnd2VicGFjay1zdGF0cy5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIU19NQU5JRkVTVCA9ICdhcHAtcGF0aHMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfUEFUSF9ST1VURVNfTUFOSUZFU1QgPSAnYXBwLXBhdGgtcm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgQlVJTERfTUFOSUZFU1QgPSAnYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfQlVJTERfTUFOSUZFU1QgPSAnYXBwLWJ1aWxkLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCA9ICdmdW5jdGlvbnMtY29uZmlnLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUID0gJ3N1YnJlc291cmNlLWludGVncml0eS1tYW5pZmVzdCdcbmV4cG9ydCBjb25zdCBORVhUX0ZPTlRfTUFOSUZFU1QgPSAnbmV4dC1mb250LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVJLRVIgPSAnZXhwb3J0LW1hcmtlci5qc29uJ1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9ERVRBSUwgPSAnZXhwb3J0LWRldGFpbC5qc29uJ1xuZXhwb3J0IGNvbnN0IFBSRVJFTkRFUl9NQU5JRkVTVCA9ICdwcmVyZW5kZXItbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBST1VURVNfTUFOSUZFU1QgPSAncm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgSU1BR0VTX01BTklGRVNUID0gJ2ltYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9GSUxFU19NQU5JRkVTVCA9ICdyZXF1aXJlZC1zZXJ2ZXItZmlsZXMuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUID0gJ19kZXZQYWdlc01hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgVFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUID1cbiAgJ19jbGllbnRNaWRkbGV3YXJlTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBUVVJCT1BBQ0tfQ0xJRU5UX0JVSUxEX01BTklGRVNUID0gJ2NsaWVudC1idWlsZC1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCA9ICdfZGV2TWlkZGxld2FyZU1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QgPSAncmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTRVJWRVJfRElSRUNUT1JZID0gJ3NlcnZlcidcbmV4cG9ydCBjb25zdCBDT05GSUdfRklMRVMgPSBbXG4gICduZXh0LmNvbmZpZy5qcycsXG4gICduZXh0LmNvbmZpZy5tanMnLFxuICAnbmV4dC5jb25maWcudHMnLFxuXVxuZXhwb3J0IGNvbnN0IEJVSUxEX0lEX0ZJTEUgPSAnQlVJTERfSUQnXG5leHBvcnQgY29uc3QgQkxPQ0tFRF9QQUdFUyA9IFsnL19kb2N1bWVudCcsICcvX2FwcCcsICcvX2Vycm9yJ11cbmV4cG9ydCBjb25zdCBDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEggPSAncHVibGljJ1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCA9ICdzdGF0aWMnXG5leHBvcnQgY29uc3QgU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUgPSAnX19ORVhUX0RST1BfQ0xJRU5UX0ZJTEVfXydcbmV4cG9ydCBjb25zdCBORVhUX0JVSUxUSU5fRE9DVU1FTlQgPSAnX19ORVhUX0JVSUxUSU5fRE9DVU1FTlRfXydcbmV4cG9ydCBjb25zdCBCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCA9ICdfX2JhcnJlbF9vcHRpbWl6ZV9fJ1xuXG4vLyBzZXJ2ZXIvW2VudHJ5XS9wYWdlX2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfUkVGRVJFTkNFX01BTklGRVNUID0gJ2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdFxuZXhwb3J0IGNvbnN0IFNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QgPSAnc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0J1xuLy8gc2VydmVyL21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUID1cbiAgJ21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCA9XG4gICdpbnRlcmNlcHRpb24tcm91dGUtcmV3cml0ZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9keW5hbWljLWNzcy1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IERZTkFNSUNfQ1NTX01BTklGRVNUID0gJ2R5bmFtaWMtY3NzLW1hbmlmZXN0J1xuXG4vLyBzdGF0aWMvcnVudGltZS9tYWluLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4gPSBgbWFpbmBcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAgPSBgJHtDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTn0tYXBwYFxuLy8gbmV4dCBpbnRlcm5hbCBjbGllbnQgY29tcG9uZW50cyBjaHVuayBmb3IgbGF5b3V0c1xuZXhwb3J0IGNvbnN0IEFQUF9DTElFTlRfSU5URVJOQUxTID0gJ2FwcC1wYWdlcy1pbnRlcm5hbHMnXG4vLyBzdGF0aWMvcnVudGltZS9yZWFjdC1yZWZyZXNoLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0ggPSBgcmVhY3QtcmVmcmVzaGBcbi8vIHN0YXRpYy9ydW50aW1lL2FtcC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAgPSBgYW1wYFxuLy8gc3RhdGljL3J1bnRpbWUvd2VicGFjay5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLID0gYHdlYnBhY2tgXG4vLyBzdGF0aWMvcnVudGltZS9wb2x5ZmlsbHMuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTID0gJ3BvbHlmaWxscydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCA9IFN5bWJvbChcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU1xuKVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUlVOVElNRV9XRUJQQUNLID0gJ3dlYnBhY2stcnVudGltZSdcbmV4cG9ydCBjb25zdCBFREdFX1JVTlRJTUVfV0VCUEFDSyA9ICdlZGdlLXJ1bnRpbWUtd2VicGFjaydcbmV4cG9ydCBjb25zdCBTVEFUSUNfUFJPUFNfSUQgPSAnX19OX1NTRydcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfSUQgPSAnX19OX1NTUCdcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUklGX0ZPTlQgPSB7XG4gIG5hbWU6ICdUaW1lcyBOZXcgUm9tYW4nLFxuICB4QXZnQ2hhcldpZHRoOiA4MjEsXG4gIGF6QXZnV2lkdGg6IDg1NC4zOTUzNDg4MzcyMDkzLFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0FOU19TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnQXJpYWwnLFxuICB4QXZnQ2hhcldpZHRoOiA5MDQsXG4gIGF6QXZnV2lkdGg6IDkzNC41MTE2Mjc5MDY5NzY3LFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRVMgPSBbJy81MDAnXVxuZXhwb3J0IGNvbnN0IFRSQUNFX09VVFBVVF9WRVJTSU9OID0gMVxuLy8gaW4gYE1CYFxuZXhwb3J0IGNvbnN0IFRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUID0gNjAwMFxuXG5leHBvcnQgY29uc3QgUlNDX01PRFVMRV9UWVBFUyA9IHtcbiAgY2xpZW50OiAnY2xpZW50JyxcbiAgc2VydmVyOiAnc2VydmVyJyxcbn0gYXMgY29uc3RcblxuLy8gY29tcGFyaW5nXG4vLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2VkZ2UtcnVudGltZVxuLy8gd2l0aFxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0L2FwaS9nbG9iYWxzLmh0bWxcbmV4cG9ydCBjb25zdCBFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyA9IFtcbiAgJ2NsZWFySW1tZWRpYXRlJyxcbiAgJ3NldEltbWVkaWF0ZScsXG4gICdCcm9hZGNhc3RDaGFubmVsJyxcbiAgJ0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3knLFxuICAnQ29tcHJlc3Npb25TdHJlYW0nLFxuICAnQ291bnRRdWV1aW5nU3RyYXRlZ3knLFxuICAnRGVjb21wcmVzc2lvblN0cmVhbScsXG4gICdEb21FeGNlcHRpb24nLFxuICAnTWVzc2FnZUNoYW5uZWwnLFxuICAnTWVzc2FnZUV2ZW50JyxcbiAgJ01lc3NhZ2VQb3J0JyxcbiAgJ1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXInLFxuICAnUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdCcsXG4gICdSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1RyYW5zZm9ybVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1dyaXRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXInLFxuXVxuXG5leHBvcnQgY29uc3QgU1lTVEVNX0VOVFJZUE9JTlRTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4sXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNILFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAsXG5dKVxuIl0sIm5hbWVzIjpbIkFQUF9CVUlMRF9NQU5JRkVTVCIsIkFQUF9DTElFTlRfSU5URVJOQUxTIiwiQVBQX1BBVEhTX01BTklGRVNUIiwiQVBQX1BBVEhfUk9VVEVTX01BTklGRVNUIiwiQWRhcHRlck91dHB1dFR5cGUiLCJCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCIsIkJMT0NLRURfUEFHRVMiLCJCVUlMRF9JRF9GSUxFIiwiQlVJTERfTUFOSUZFU1QiLCJDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEgiLCJDTElFTlRfUkVGRVJFTkNFX01BTklGRVNUIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19QQVRIIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMUyIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFNfU1lNQk9MIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0giLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfV0VCUEFDSyIsIkNPTVBJTEVSX0lOREVYRVMiLCJDT01QSUxFUl9OQU1FUyIsIkNPTkZJR19GSUxFUyIsIkRFRkFVTFRfUlVOVElNRV9XRUJQQUNLIiwiREVGQVVMVF9TQU5TX1NFUklGX0ZPTlQiLCJERUZBVUxUX1NFUklGX0ZPTlQiLCJERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUIiwiRFlOQU1JQ19DU1NfTUFOSUZFU1QiLCJFREdFX1JVTlRJTUVfV0VCUEFDSyIsIkVER0VfVU5TVVBQT1JURURfTk9ERV9BUElTIiwiRVhQT1JUX0RFVEFJTCIsIkVYUE9SVF9NQVJLRVIiLCJGVU5DVElPTlNfQ09ORklHX01BTklGRVNUIiwiSU1BR0VTX01BTklGRVNUIiwiSU5URVJDRVBUSU9OX1JPVVRFX1JFV1JJVEVfTUFOSUZFU1QiLCJNSURETEVXQVJFX0JVSUxEX01BTklGRVNUIiwiTUlERExFV0FSRV9NQU5JRkVTVCIsIk1JRERMRVdBUkVfUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCIsIk5FWFRfQlVJTFRJTl9ET0NVTUVOVCIsIk5FWFRfRk9OVF9NQU5JRkVTVCIsIlBBR0VTX01BTklGRVNUIiwiUEhBU0VfREVWRUxPUE1FTlRfU0VSVkVSIiwiUEhBU0VfRVhQT1JUIiwiUEhBU0VfSU5GTyIsIlBIQVNFX1BST0RVQ1RJT05fQlVJTEQiLCJQSEFTRV9QUk9EVUNUSU9OX1NFUlZFUiIsIlBIQVNFX1RFU1QiLCJQUkVSRU5ERVJfTUFOSUZFU1QiLCJSRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCIsIlJPVVRFU19NQU5JRkVTVCIsIlJTQ19NT0RVTEVfVFlQRVMiLCJTRVJWRVJfRElSRUNUT1JZIiwiU0VSVkVSX0ZJTEVTX01BTklGRVNUIiwiU0VSVkVSX1BST1BTX0lEIiwiU0VSVkVSX1JFRkVSRU5DRV9NQU5JRkVTVCIsIlNUQVRJQ19QUk9QU19JRCIsIlNUQVRJQ19TVEFUVVNfUEFHRVMiLCJTVFJJTkdfTElURVJBTF9EUk9QX0JVTkRMRSIsIlNVQlJFU09VUkNFX0lOVEVHUklUWV9NQU5JRkVTVCIsIlNZU1RFTV9FTlRSWVBPSU5UUyIsIlRSQUNFX09VVFBVVF9WRVJTSU9OIiwiVFVSQk9QQUNLX0NMSUVOVF9CVUlMRF9NQU5JRkVTVCIsIlRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIlRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEUiLCJVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSIsIldFQlBBQ0tfU1RBVFMiLCJjbGllbnQiLCJzZXJ2ZXIiLCJlZGdlU2VydmVyIiwiU3ltYm9sIiwibmFtZSIsInhBdmdDaGFyV2lkdGgiLCJhekF2Z1dpZHRoIiwidW5pdHNQZXJFbSIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/encode-uri-path.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"encodeURIPath\", ({\n enumerable: true,\n get: function() {\n return encodeURIPath;\n }\n}));\nfunction encodeURIPath(file) {\n return file.split('/').map((p)=>encodeURIComponent(p)).join('/');\n} //# sourceMappingURL=encode-uri-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lbmNvZGUtdXJpLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OztpREFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGNBQWNDLElBQVk7SUFDeEMsT0FBT0EsS0FDSkMsS0FBSyxDQUFDLEtBQ05DLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQyxtQkFBbUJELElBQzlCRSxJQUFJLENBQUM7QUFDViIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvZW5jb2RlLXVyaS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBlbmNvZGVVUklQYXRoKGZpbGU6IHN0cmluZykge1xuICByZXR1cm4gZmlsZVxuICAgIC5zcGxpdCgnLycpXG4gICAgLm1hcCgocCkgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHApKVxuICAgIC5qb2luKCcvJylcbn1cbiJdLCJuYW1lcyI6WyJlbmNvZGVVUklQYXRoIiwiZmlsZSIsInNwbGl0IiwibWFwIiwicCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/errors/constants.js ***! \***************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lcnJvcnMvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkRBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLDBCQUEwQiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTUlTU0lOR19ST09UX1RBR1NfRVJST1IgPSAnTkVYVF9NSVNTSU5HX1JPT1RfVEFHUydcbiJdLCJuYW1lcyI6WyJNSVNTSU5HX1JPT1RfVEFHU19FUlJPUiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/get-hostname.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHostname\", ({\n enumerable: true,\n get: function() {\n return getHostname;\n }\n}));\nfunction getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n} //# sourceMappingURL=get-hostname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWUuanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FRZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFlBQ2RDLE1BQW9DLEVBQ3BDQyxPQUE2QjtJQUU3QiwyRUFBMkU7SUFDM0UsWUFBWTtJQUNaLElBQUlDO0lBQ0osSUFBSUQsQ0FBQUEsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU0UsSUFBQUEsS0FBUSxDQUFDQyxNQUFNQyxPQUFPLENBQUNKLFFBQVFFLElBQUksR0FBRztRQUNqREQsV0FBV0QsUUFBUUUsSUFBSSxDQUFDRyxRQUFRLEdBQUdDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQ3JELE9BQU8sSUFBSVAsT0FBT0UsUUFBUSxFQUFFO1FBQzFCQSxXQUFXRixPQUFPRSxRQUFRO0lBQzVCLE9BQU87SUFFUCxPQUFPQSxTQUFTTSxXQUFXO0FBQzdCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPdXRnb2luZ0h0dHBIZWFkZXJzIH0gZnJvbSAnaHR0cCdcblxuLyoqXG4gKiBUYWtlcyBhbiBvYmplY3Qgd2l0aCBhIGhvc3RuYW1lIHByb3BlcnR5IChsaWtlIGEgcGFyc2VkIFVSTCkgYW5kIHNvbWVcbiAqIGhlYWRlcnMgdGhhdCBtYXkgY29udGFpbiBIb3N0IGFuZCByZXR1cm5zIHRoZSBwcmVmZXJyZWQgaG9zdG5hbWUuXG4gKiBAcGFyYW0gcGFyc2VkIEFuIG9iamVjdCBjb250YWluaW5nIGEgaG9zdG5hbWUgcHJvcGVydHkuXG4gKiBAcGFyYW0gaGVhZGVycyBBIGRpY3Rpb25hcnkgd2l0aCBoZWFkZXJzIGNvbnRhaW5pbmcgYSBgaG9zdGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIb3N0bmFtZShcbiAgcGFyc2VkOiB7IGhvc3RuYW1lPzogc3RyaW5nIHwgbnVsbCB9LFxuICBoZWFkZXJzPzogT3V0Z29pbmdIdHRwSGVhZGVyc1xuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gR2V0IHRoZSBob3N0bmFtZSBmcm9tIHRoZSBoZWFkZXJzIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIHVzZSB0aGUgcGFyc2VkXG4gIC8vIGhvc3RuYW1lLlxuICBsZXQgaG9zdG5hbWU6IHN0cmluZ1xuICBpZiAoaGVhZGVycz8uaG9zdCAmJiAhQXJyYXkuaXNBcnJheShoZWFkZXJzLmhvc3QpKSB7XG4gICAgaG9zdG5hbWUgPSBoZWFkZXJzLmhvc3QudG9TdHJpbmcoKS5zcGxpdCgnOicsIDEpWzBdXG4gIH0gZWxzZSBpZiAocGFyc2VkLmhvc3RuYW1lKSB7XG4gICAgaG9zdG5hbWUgPSBwYXJzZWQuaG9zdG5hbWVcbiAgfSBlbHNlIHJldHVyblxuXG4gIHJldHVybiBob3N0bmFtZS50b0xvd2VyQ2FzZSgpXG59XG4iXSwibmFtZXMiOlsiZ2V0SG9zdG5hbWUiLCJwYXJzZWQiLCJoZWFkZXJzIiwiaG9zdG5hbWUiLCJob3N0IiwiQXJyYXkiLCJpc0FycmF5IiwidG9TdHJpbmciLCJzcGxpdCIsInRvTG93ZXJDYXNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/shared/lib/head.js ***! \***************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"react\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdMQSxPQUFtQjtlQUFuQjs7SUFuS2dCQSxXQUFXO2VBQVhBOzs7Ozs7NkVBWDRCO2lGQUN6QjtxREFDYTs2REFDRztxQ0FDUDtzQ0FDSDtBQU1sQixTQUFTQSxZQUFZQyxTQUFpQjtJQUFqQkEsSUFBQUEsY0FBQUEsS0FBQUEsR0FBQUEsWUFBWTtJQUN0QyxNQUFNQyxPQUFPO3NCQUFDLHFCQUFDQyxRQUFBQTtZQUFLQyxTQUFRO1dBQVk7S0FBYTtJQUNyRCxJQUFJLENBQUNILFdBQVc7UUFDZEMsS0FBS0csSUFBSSxlQUNQLHFCQUFDRixRQUFBQTtZQUFLRyxNQUFLO1lBQVdDLFNBQVE7V0FBeUI7SUFFM0Q7SUFDQSxPQUFPTDtBQUNUO0FBRUEsU0FBU00saUJBQ1BDLElBQW9DLEVBQ3BDQyxLQUEyQztJQUUzQyw4RkFBOEY7SUFDOUYsSUFBSSxPQUFPQSxVQUFVLFlBQVksT0FBT0EsVUFBVSxVQUFVO1FBQzFELE9BQU9EO0lBQ1Q7SUFDQSxrQ0FBa0M7SUFDbEMsSUFBSUMsTUFBTUMsSUFBSSxLQUFLQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsRUFBRTtRQUNqQyxPQUFPSixLQUFLSyxNQUFNLENBQ2hCLE9BQ0FGLE9BQUssQ0FBQ0csUUFBUSxDQUFDQyxPQUFPLENBQUNOLE1BQU1PLEtBQUssQ0FBQ0MsUUFBUSxFQUFFQyxNQUFNLENBQ2pELENBRUVDLGNBQ0FDO1lBRUEsSUFDRSxPQUFPQSxrQkFBa0IsWUFDekIsT0FBT0Esa0JBQWtCLFVBQ3pCO2dCQUNBLE9BQU9EO1lBQ1Q7WUFDQSxPQUFPQSxhQUFhTixNQUFNLENBQUNPO1FBQzdCLEdBQ0EsRUFBRTtJQUdSO0lBQ0EsT0FBT1osS0FBS0ssTUFBTSxDQUFDSjtBQUNyQjtBQUVBLE1BQU1ZLFlBQVk7SUFBQztJQUFRO0lBQWE7SUFBVztDQUFXO0FB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QUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyx3RkFBcUZMLEVBQUVoQyxLQUFLLENBQUMsT0FBTyxHQUFDO1lBRTFHO1FBQ0Y7UUFDQSxxQkFBT0wsT0FBQUEsT0FBSyxDQUFDMkMsWUFBWSxDQUFDTixHQUFHO1lBQUVqQjtRQUFJO0lBQ3JDO0FBQ0o7QUFFQTs7O0NBR0MsR0FDRCxTQUFTd0IsS0FBSyxLQUEyQztJQUEzQyxNQUFFdEMsUUFBUSxFQUFpQyxHQUEzQztJQUNaLE1BQU11QyxXQUFXQyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXQyx5QkFBQUEsZUFBZTtJQUMzQyxNQUFNQyxjQUFjRixDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXRyxpQ0FBQUEsa0JBQWtCO0lBQ2pELE9BQ0UsV0FERixHQUNFLHFCQUFDQyxZQUFBQSxPQUFNO1FBQ0xDLHlCQUF5Qm5CO1FBQ3pCZ0IsYUFBYUE7UUFDYjNELFdBQVcrRCxDQUFBQSxHQUFBQSxTQUFBQSxXQUFBQSxFQUFZUDtrQkFFdEJ2Qzs7QUFHUDtNQUVBLFdBQWVzQyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvaGVhZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEVmZmVjdCBmcm9tICcuL3NpZGUtZWZmZWN0J1xuaW1wb3J0IHsgQW1wU3RhdGVDb250ZXh0IH0gZnJvbSAnLi9hbXAtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IEhlYWRNYW5hZ2VyQ29udGV4dCB9IGZyb20gJy4vaGVhZC1tYW5hZ2VyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBpc0luQW1wTW9kZSB9IGZyb20gJy4vYW1wLW1vZGUnXG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJy4vdXRpbHMvd2Fybi1vbmNlJ1xuXG50eXBlIFdpdGhJbkFtcE1vZGUgPSB7XG4gIGluQW1wTW9kZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRIZWFkKGluQW1wTW9kZSA9IGZhbHNlKTogSlNYLkVsZW1lbnRbXSB7XG4gIGNvbnN0IGhlYWQgPSBbPG1ldGEgY2hhclNldD1cInV0Zi04XCIga2V5PVwiY2hhcnNldFwiIC8+XVxuICBpZiAoIWluQW1wTW9kZSkge1xuICAgIGhlYWQucHVzaChcbiAgICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIiBrZXk9XCJ2aWV3cG9ydFwiIC8+XG4gICAgKVxuICB9XG4gIHJldHVybiBoZWFkXG59XG5cbmZ1bmN0aW9uIG9ubHlSZWFjdEVsZW1lbnQoXG4gIGxpc3Q6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgY2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bWJlciB8IHN0cmluZ1xuKTogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+IHtcbiAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgaWYgKHR5cGVvZiBjaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGNoaWxkID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBsaXN0XG4gIH1cbiAgLy8gQWRkcyBzdXBwb3J0IGZvciBSZWFjdC5GcmFnbWVudFxuICBpZiAoY2hpbGQudHlwZSA9PT0gUmVhY3QuRnJhZ21lbnQpIHtcbiAgICByZXR1cm4gbGlzdC5jb25jYXQoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEB0eXBlcy9yZWFjdCBkb2VzIG5vdCByZW1vdmUgZnJhZ21lbnRzIGJ1dCB0aGlzIGNvdWxkIGFsc28gcmV0dXJuIFJlYWN0UG9ydGFsW11cbiAgICAgIFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGQucHJvcHMuY2hpbGRyZW4pLnJlZHVjZShcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBAdHlwZXMvcmVhY3QgZG9lcyBub3QgcmVtb3ZlIGZyYWdtZW50cyBidXQgdGhpcyBjb3VsZCBhbHNvIHJldHVybiBSZWFjdFBvcnRhbFtdXG4gICAgICAgIChcbiAgICAgICAgICBmcmFnbWVudExpc3Q6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgICAgICAgICBmcmFnbWVudENoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudW1iZXIgfCBzdHJpbmdcbiAgICAgICAgKTogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+ID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgICAgIHR5cGVvZiBmcmFnbWVudENoaWxkID09PSAnbnVtYmVyJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnJhZ21lbnRMaXN0LmNvbmNhdChmcmFnbWVudENoaWxkKVxuICAgICAgICB9LFxuICAgICAgICBbXVxuICAgICAgKVxuICAgIClcbiAgfVxuICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpXG59XG5cbmNvbnN0IE1FVEFUWVBFUyA9IFsnbmFtZScsICdodHRwRXF1aXYnLCAnY2hhclNldCcsICdpdGVtUHJvcCddXG5cbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qL1xuZnVuY3Rpb24gdW5pcXVlKCkge1xuICBjb25zdCBrZXlzID0gbmV3IFNldCgpXG4gIGNvbnN0IHRhZ3MgPSBuZXcgU2V0KClcbiAgY29uc3QgbWV0YVR5cGVzID0gbmV3IFNldCgpXG4gIGNvbnN0IG1ldGFDYXRlZ29yaWVzOiB7IFttZXRhdHlwZTogc3RyaW5nXTogU2V0PHN0cmluZz4gfSA9IHt9XG5cbiAgcmV0dXJuIChoOiBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PikgPT4ge1xuICAgIGxldCBpc1VuaXF1ZSA9IHRydWVcbiAgICBsZXQgaGFzS2V5ID0gZmFsc2VcblxuICAgIGlmIChoLmtleSAmJiB0eXBlb2YgaC5rZXkgIT09ICdudW1iZXInICYmIGgua2V5LmluZGV4T2YoJyQnKSA+IDApIHtcbiAgICAgIGhhc0tleSA9IHRydWVcbiAgICAgIGNvbnN0IGtleSA9IGgua2V5LnNsaWNlKGgua2V5LmluZGV4T2YoJyQnKSArIDEpXG4gICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBrZXlzLmFkZChrZXkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgIHN3aXRjaCAoaC50eXBlKSB7XG4gICAgICBjYXNlICd0aXRsZSc6XG4gICAgICBjYXNlICdiYXNlJzpcbiAgICAgICAgaWYgKHRhZ3MuaGFzKGgudHlwZSkpIHtcbiAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFncy5hZGQoaC50eXBlKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IE1FVEFUWVBFUy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgIGNvbnN0IG1ldGF0eXBlID0gTUVUQVRZUEVTW2ldXG4gICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWVcblxuICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbWV0YVR5cGVzLmFkZChtZXRhdHlwZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBoLnByb3BzW21ldGF0eXBlXVxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IG1ldGFDYXRlZ29yaWVzW21ldGF0eXBlXSB8fCBuZXcgU2V0KClcbiAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY2F0ZWdvcmllcy5hZGQoY2F0ZWdvcnkpXG4gICAgICAgICAgICAgIG1ldGFDYXRlZ29yaWVzW21ldGF0eXBlXSA9IGNhdGVnb3JpZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNVbmlxdWVcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gaGVhZENoaWxkcmVuRWxlbWVudHMgTGlzdCBvZiBjaGlsZHJlbiBvZiA8SGVhZD5cbiAqL1xuZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50czxUIGV4dGVuZHMge30gJiBXaXRoSW5BbXBNb2RlPihcbiAgaGVhZENoaWxkcmVuRWxlbWVudHM6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgcHJvcHM6IFRcbikge1xuICBjb25zdCB7IGluQW1wTW9kZSB9ID0gcHJvcHNcbiAgcmV0dXJuIGhlYWRDaGlsZHJlbkVsZW1lbnRzXG4gICAgLnJlZHVjZShvbmx5UmVhY3RFbGVtZW50LCBbXSlcbiAgICAucmV2ZXJzZSgpXG4gICAgLmNvbmNhdChkZWZhdWx0SGVhZChpbkFtcE1vZGUpLnJldmVyc2UoKSlcbiAgICAuZmlsdGVyKHVuaXF1ZSgpKVxuICAgIC5yZXZlcnNlKClcbiAgICAubWFwKChjOiBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PiwgaTogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBjLmtleSB8fCBpXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gb21pdCBKU09OLUxEIHN0cnVjdHVyZWQgZGF0YSBzbmlwcGV0cyBmcm9tIHRoZSB3YXJuaW5nXG4gICAgICAgIGlmIChjLnR5cGUgPT09ICdzY3JpcHQnICYmIGMucHJvcHNbJ3R5cGUnXSAhPT0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nKSB7XG4gICAgICAgICAgY29uc3Qgc3JjTWVzc2FnZSA9IGMucHJvcHNbJ3NyYyddXG4gICAgICAgICAgICA/IGA8c2NyaXB0PiB0YWcgd2l0aCBzcmM9XCIke2MucHJvcHNbJ3NyYyddfVwiYFxuICAgICAgICAgICAgOiBgaW5saW5lIDxzY3JpcHQ+YFxuICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgYERvIG5vdCBhZGQgPHNjcmlwdD4gdGFncyB1c2luZyBuZXh0L2hlYWQgKHNlZSAke3NyY01lc3NhZ2V9KS4gVXNlIG5leHQvc2NyaXB0IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc2NyaXB0LXRhZ3MtaW4taGVhZC1jb21wb25lbnRgXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gJ2xpbmsnICYmIGMucHJvcHNbJ3JlbCddID09PSAnc3R5bGVzaGVldCcpIHtcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIHN0eWxlc2hlZXRzIHVzaW5nIG5leHQvaGVhZCAoc2VlIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIj4gdGFnIHdpdGggaHJlZj1cIiR7Yy5wcm9wc1snaHJlZiddfVwiKS4gVXNlIERvY3VtZW50IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc3R5bGVzaGVldHMtaW4taGVhZC1jb21wb25lbnRgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGMsIHsga2V5IH0pXG4gICAgfSlcbn1cblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpbmplY3RzIGVsZW1lbnRzIHRvIGA8aGVhZD5gIG9mIHlvdXIgcGFnZS5cbiAqIFRvIGF2b2lkIGR1cGxpY2F0ZWQgYHRhZ3NgIGluIGA8aGVhZD5gIHlvdSBjYW4gdXNlIHRoZSBga2V5YCBwcm9wZXJ0eSwgd2hpY2ggd2lsbCBtYWtlIHN1cmUgZXZlcnkgdGFnIGlzIG9ubHkgcmVuZGVyZWQgb25jZS5cbiAqL1xuZnVuY3Rpb24gSGVhZCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IGFtcFN0YXRlID0gdXNlQ29udGV4dChBbXBTdGF0ZUNvbnRleHQpXG4gIGNvbnN0IGhlYWRNYW5hZ2VyID0gdXNlQ29udGV4dChIZWFkTWFuYWdlckNvbnRleHQpXG4gIHJldHVybiAoXG4gICAgPEVmZmVjdFxuICAgICAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU9e3JlZHVjZUNvbXBvbmVudHN9XG4gICAgICBoZWFkTWFuYWdlcj17aGVhZE1hbmFnZXJ9XG4gICAgICBpbkFtcE1vZGU9e2lzSW5BbXBNb2RlKGFtcFN0YXRlKX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9FZmZlY3Q+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgSGVhZFxuIl0sIm5hbWVzIjpbImRlZmF1bHRIZWFkIiwiaW5BbXBNb2RlIiwiaGVhZCIsIm1ldGEiLCJjaGFyU2V0IiwicHVzaCIsIm5hbWUiLCJjb250ZW50Iiwib25seVJlYWN0RWxlbWVudCIsImxpc3QiLCJjaGlsZCIsInR5cGUiLCJSZWFjdCIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5Iiwia2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYXRlZ29yeSIsImNhdGVnb3JpZXMiLCJyZWR1Y2VDb21wb25lbnRzIiwiaGVhZENoaWxkcmVuRWxlbWVudHMiLCJyZXZlcnNlIiwiZmlsdGVyIiwibWFwIiwiYyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInNyY01lc3NhZ2UiLCJ3YXJuT25jZSIsImNsb25lRWxlbWVudCIsIkhlYWQiLCJhbXBTdGF0ZSIsInVzZUNvbnRleHQiLCJBbXBTdGF0ZUNvbnRleHQiLCJoZWFkTWFuYWdlciIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsIkVmZmVjdCIsInJlZHVjZUNvbXBvbmVudHNUb1N0YXRlIiwiaXNJbkFtcE1vZGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(':', 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n} //# sourceMappingURL=detect-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxtQkFDZEMsV0FBcUMsRUFDckNDLFFBQWlCLEVBQ2pCQyxjQUF1QjtJQUV2QixJQUFJLENBQUNGLGFBQWE7SUFFbEIsSUFBSUUsZ0JBQWdCO1FBQ2xCQSxpQkFBaUJBLGVBQWVDLFdBQVc7SUFDN0M7SUFFQSxLQUFLLE1BQU1DLFFBQVFKLFlBQWE7WUFFUEksY0FJckJBO1FBTEYseUJBQXlCO1FBQ3pCLE1BQU1DLGlCQUFBQSxDQUFpQkQsZUFBQUEsS0FBS0UsTUFBQUEsS0FBTSxnQkFBWEYsYUFBYUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQ0osV0FBVztRQUNoRSxJQUNFRixhQUFhSSxrQkFDYkgsbUJBQW1CRSxLQUFLSSxhQUFhLENBQUNMLFdBQVcsUUFDakRDLGdCQUFBQSxLQUFLSyxPQUFBQSxLQUFPLGdCQUFaTCxjQUFjTSxJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT1IsV0FBVyxPQUFPRCxlQUFBQSxHQUN4RDtZQUNBLE9BQU9FO1FBQ1Q7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2NvbmZpZy1zaGFyZWQnXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3REb21haW5Mb2NhbGUoXG4gIGRvbWFpbkl0ZW1zPzogcmVhZG9ubHkgRG9tYWluTG9jYWxlW10sXG4gIGhvc3RuYW1lPzogc3RyaW5nLFxuICBkZXRlY3RlZExvY2FsZT86IHN0cmluZ1xuKSB7XG4gIGlmICghZG9tYWluSXRlbXMpIHJldHVyblxuXG4gIGlmIChkZXRlY3RlZExvY2FsZSkge1xuICAgIGRldGVjdGVkTG9jYWxlID0gZGV0ZWN0ZWRMb2NhbGUudG9Mb3dlckNhc2UoKVxuICB9XG5cbiAgZm9yIChjb25zdCBpdGVtIG9mIGRvbWFpbkl0ZW1zKSB7XG4gICAgLy8gcmVtb3ZlIHBvcnQgaWYgcHJlc2VudFxuICAgIGNvbnN0IGRvbWFpbkhvc3RuYW1lID0gaXRlbS5kb21haW4/LnNwbGl0KCc6JywgMSlbMF0udG9Mb3dlckNhc2UoKVxuICAgIGlmIChcbiAgICAgIGhvc3RuYW1lID09PSBkb21haW5Ib3N0bmFtZSB8fFxuICAgICAgZGV0ZWN0ZWRMb2NhbGUgPT09IGl0ZW0uZGVmYXVsdExvY2FsZS50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICBpdGVtLmxvY2FsZXM/LnNvbWUoKGxvY2FsZSkgPT4gbG9jYWxlLnRvTG93ZXJDYXNlKCkgPT09IGRldGVjdGVkTG9jYWxlKVxuICAgICkge1xuICAgICAgcmV0dXJuIGl0ZW1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJkZXRlY3REb21haW5Mb2NhbGUiLCJkb21haW5JdGVtcyIsImhvc3RuYW1lIiwiZGV0ZWN0ZWRMb2NhbGUiLCJ0b0xvd2VyQ2FzZSIsIml0ZW0iLCJkb21haW5Ib3N0bmFtZSIsImRvbWFpbiIsInNwbGl0IiwiZGVmYXVsdExvY2FsZSIsImxvY2FsZXMiLCJzb21lIiwibG9jYWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */ const cache = new WeakMap();\nfunction normalizeLocalePath(pathname, locales) {\n // If locales is undefined, return the pathname as is.\n if (!locales) return {\n pathname\n };\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales);\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale)=>locale.toLowerCase());\n cache.set(locales, lowercasedLocales);\n }\n let detectedLocale;\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2);\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return {\n pathname\n };\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase();\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment);\n if (index < 0) return {\n pathname\n };\n // Return the case-sensitive locale.\n detectedLocale = locales[index];\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/';\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQXFCZ0JBOzs7ZUFBQUE7OztBQWhCaEI7Ozs7Q0FJQyxHQUNELE1BQU1DLFFBQVEsSUFBSUM7QUFXWCxTQUFTRixvQkFDZEcsUUFBZ0IsRUFDaEJDLE9BQTJCO0lBRTNCLHNEQUFzRDtJQUN0RCxJQUFJLENBQUNBLFNBQVMsT0FBTztRQUFFRDtJQUFTO0lBRWhDLGlFQUFpRTtJQUNqRSxJQUFJRSxvQkFBb0JKLE1BQU1LLEdBQUcsQ0FBQ0Y7SUFDbEMsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJBLG9CQUFvQkQsUUFBUUcsR0FBRyxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLFdBQVc7UUFDOURSLE1BQU1TLEdBQUcsQ0FBQ04sU0FBU0M7SUFDckI7SUFFQSxJQUFJTTtJQUVKLG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUsTUFBTUMsV0FBV1QsU0FBU1UsS0FBSyxDQUFDLEtBQUs7SUFFckMsMEVBQTBFO0lBQzFFLFVBQVU7SUFDVixJQUFJLENBQUNELFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTztRQUFFVDtJQUFTO0lBRXBDLDBEQUEwRDtJQUMxRCxNQUFNVyxVQUFVRixRQUFRLENBQUMsRUFBRSxDQUFDSCxXQUFXO0lBRXZDLHlFQUF5RTtJQUN6RSxtQ0FBbUM7SUFDbkMsTUFBTU0sUUFBUVYsa0JBQWtCVyxPQUFPLENBQUNGO0lBQ3hDLElBQUlDLFFBQVEsR0FBRyxPQUFPO1FBQUVaO0lBQVM7SUFFakMsb0NBQW9DO0lBQ3BDUSxpQkFBaUJQLE9BQU8sQ0FBQ1csTUFBTTtJQUUvQixnREFBZ0Q7SUFDaERaLFdBQVdBLFNBQVNjLEtBQUssQ0FBQ04sZUFBZU8sTUFBTSxHQUFHLE1BQU07SUFFeEQsT0FBTztRQUFFZjtRQUFVUTtJQUFlO0FBQ3BDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFBhdGhMb2NhbGUge1xuICBkZXRlY3RlZExvY2FsZT86IHN0cmluZ1xuICBwYXRobmFtZTogc3RyaW5nXG59XG5cbi8qKlxuICogQSBjYWNoZSBvZiBsb3dlcmNhc2VkIGxvY2FsZXMgZm9yIGVhY2ggbGlzdCBvZiBsb2NhbGVzLiBUaGlzIGlzIHN0b3JlZCBhcyBhXG4gKiBXZWFrTWFwIHNvIGlmIHRoZSBsb2NhbGVzIGFyZSBnYXJiYWdlIGNvbGxlY3RlZCwgdGhlIGNhY2hlIGVudHJ5IHdpbGwgYmVcbiAqIHJlbW92ZWQgYXMgd2VsbC5cbiAqL1xuY29uc3QgY2FjaGUgPSBuZXcgV2Vha01hcDxyZWFkb25seSBzdHJpbmdbXSwgcmVhZG9ubHkgc3RyaW5nW10+KClcblxuLyoqXG4gKiBGb3IgYSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlIGZyb20gYSBsaXN0IG9mIGxvY2FsZXMsIGl0XG4gKiByZW1vdmVzIHRoZSBsb2NhbGUgZnJvbSB0aGUgcGF0aG5hbWUgcmV0dXJuaW5nIGl0IGFsb25nc2lkZSB3aXRoIHRoZVxuICogZGV0ZWN0ZWQgbG9jYWxlLlxuICpcbiAqIEBwYXJhbSBwYXRobmFtZSBBIHBhdGhuYW1lIHRoYXQgbWF5IGluY2x1ZGUgYSBsb2NhbGUuXG4gKiBAcGFyYW0gbG9jYWxlcyBBIGxpc3Qgb2YgbG9jYWxlcy5cbiAqIEByZXR1cm5zIFRoZSBkZXRlY3RlZCBsb2NhbGUgYW5kIHBhdGhuYW1lIHdpdGhvdXQgbG9jYWxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVMb2NhbGVQYXRoKFxuICBwYXRobmFtZTogc3RyaW5nLFxuICBsb2NhbGVzPzogcmVhZG9ubHkgc3RyaW5nW11cbik6IFBhdGhMb2NhbGUge1xuICAvLyBJZiBsb2NhbGVzIGlzIHVuZGVmaW5lZCwgcmV0dXJuIHRoZSBwYXRobmFtZSBhcyBpcy5cbiAgaWYgKCFsb2NhbGVzKSByZXR1cm4geyBwYXRobmFtZSB9XG5cbiAgLy8gR2V0IHRoZSBjYWNoZWQgbG93ZXJjYXNlZCBsb2NhbGVzIG9yIGNyZWF0ZSBhIG5ldyBjYWNoZSBlbnRyeS5cbiAgbGV0IGxvd2VyY2FzZWRMb2NhbGVzID0gY2FjaGUuZ2V0KGxvY2FsZXMpXG4gIGlmICghbG93ZXJjYXNlZExvY2FsZXMpIHtcbiAgICBsb3dlcmNhc2VkTG9jYWxlcyA9IGxvY2FsZXMubWFwKChsb2NhbGUpID0+IGxvY2FsZS50b0xvd2VyQ2FzZSgpKVxuICAgIGNhY2hlLnNldChsb2NhbGVzLCBsb3dlcmNhc2VkTG9jYWxlcylcbiAgfVxuXG4gIGxldCBkZXRlY3RlZExvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLy8gVGhlIGZpcnN0IHNlZ21lbnQgd2lsbCBiZSBlbXB0eSwgYmVjYXVzZSBpdCBoYXMgYSBsZWFkaW5nIGAvYC4gSWZcbiAgLy8gdGhlcmUgaXMgbm8gZnVydGhlciBzZWdtZW50LCB0aGVyZSBpcyBubyBsb2NhbGUgKG9yIGl0J3MgdGhlIGRlZmF1bHQpLlxuICBjb25zdCBzZWdtZW50cyA9IHBhdGhuYW1lLnNwbGl0KCcvJywgMilcblxuICAvLyBJZiB0aGVyZSdzIG5vIHNlY29uZCBzZWdtZW50IChpZSwgdGhlIHBhdGhuYW1lIGlzIGp1c3QgYC9gKSwgdGhlcmUncyBub1xuICAvLyBsb2NhbGUuXG4gIGlmICghc2VnbWVudHNbMV0pIHJldHVybiB7IHBhdGhuYW1lIH1cblxuICAvLyBUaGUgc2Vjb25kIHNlZ21lbnQgd2lsbCBjb250YWluIHRoZSBsb2NhbGUgcGFydCBpZiBhbnkuXG4gIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1sxXS50b0xvd2VyQ2FzZSgpXG5cbiAgLy8gU2VlIGlmIHRoZSBzZWdtZW50IG1hdGNoZXMgb25lIG9mIHRoZSBsb2NhbGVzLiBJZiBpdCBkb2Vzbid0LCB0aGVyZSBpc1xuICAvLyBubyBsb2NhbGUgKG9yIGl0J3MgdGhlIGRlZmF1bHQpLlxuICBjb25zdCBpbmRleCA9IGxvd2VyY2FzZWRMb2NhbGVzLmluZGV4T2Yoc2VnbWVudClcbiAgaWYgKGluZGV4IDwgMCkgcmV0dXJuIHsgcGF0aG5hbWUgfVxuXG4gIC8vIFJldHVybiB0aGUgY2FzZS1zZW5zaXRpdmUgbG9jYWxlLlxuICBkZXRlY3RlZExvY2FsZSA9IGxvY2FsZXNbaW5kZXhdXG5cbiAgLy8gUmVtb3ZlIHRoZSBgLyR7bG9jYWxlfWAgcGFydCBvZiB0aGUgcGF0aG5hbWUuXG4gIHBhdGhuYW1lID0gcGF0aG5hbWUuc2xpY2UoZGV0ZWN0ZWRMb2NhbGUubGVuZ3RoICsgMSkgfHwgJy8nXG5cbiAgcmV0dXJuIHsgcGF0aG5hbWUsIGRldGVjdGVkTG9jYWxlIH1cbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVMb2NhbGVQYXRoIiwiY2FjaGUiLCJXZWFrTWFwIiwicGF0aG5hbWUiLCJsb2NhbGVzIiwibG93ZXJjYXNlZExvY2FsZXMiLCJnZXQiLCJtYXAiLCJsb2NhbGUiLCJ0b0xvd2VyQ2FzZSIsInNldCIsImRldGVjdGVkTG9jYWxlIiwic2VnbWVudHMiLCJzcGxpdCIsInNlZ21lbnQiLCJpbmRleCIsImluZGV4T2YiLCJzbGljZSIsImxlbmd0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/invariant-error.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/invariant-error.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsdUJBQXVCQztJQUNsQ0MsWUFBWUMsT0FBZSxFQUFFQyxPQUFzQixDQUFFO1FBQ25ELEtBQUssQ0FDRixnQkFBYUQsQ0FBQUEsUUFBUUUsUUFBUSxDQUFDLE9BQU9GLFVBQVVBLFVBQVUsSUFBRSxHQUFFLDhCQUM5REM7UUFFRixJQUFJLENBQUNFLElBQUksR0FBRztJQUNkO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW52YXJpYW50RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgb3B0aW9ucz86IEVycm9yT3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgYEludmFyaWFudDogJHttZXNzYWdlLmVuZHNXaXRoKCcuJykgPyBtZXNzYWdlIDogbWVzc2FnZSArICcuJ30gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLmAsXG4gICAgICBvcHRpb25zXG4gICAgKVxuICAgIHRoaXMubmFtZSA9ICdJbnZhcmlhbnRFcnJvcidcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkludmFyaWFudEVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJvcHRpb25zIiwiZW5kc1dpdGgiLCJuYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/invariant-error.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWdCQSxtQkFBbUI7ZUFBbkJBOztJQUlBQyxhQUFhO2VBQWJBOzs7QUFKVCxTQUFTRCxvQkFBb0JFLEtBQVU7SUFDNUMsT0FBT0MsT0FBT0MsU0FBUyxDQUFDQyxRQUFRLENBQUNDLElBQUksQ0FBQ0o7QUFDeEM7QUFFTyxTQUFTRCxjQUFjQyxLQUFVO0lBQ3RDLElBQUlGLG9CQUFvQkUsV0FBVyxtQkFBbUI7UUFDcEQsT0FBTztJQUNUO0lBRUEsTUFBTUUsWUFBWUQsT0FBT0ksY0FBYyxDQUFDTDtJQUV4Qzs7Ozs7Ozs7R0FRQyxHQUNELE9BQU9FLGNBQWMsUUFBUUEsVUFBVUksY0FBYyxDQUFDO0FBQ3hEIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdENsYXNzTGFiZWwodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKGdldE9iamVjdENsYXNzTGFiZWwodmFsdWUpICE9PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKVxuXG4gIC8qKlxuICAgKiB0aGlzIHVzZWQgdG8gYmUgcHJldmlvdXNseTpcbiAgICpcbiAgICogYHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlYFxuICAgKlxuICAgKiBidXQgRWRnZSBSdW50aW1lIGV4cG9zZSBPYmplY3QgZnJvbSB2bSwgYmVpbmcgdGhhdCBraW5kIG9mIHR5cGUtY2hlY2tpbmcgd3JvbmdseSBmYWlsLlxuICAgKlxuICAgKiBJdCB3YXMgY2hhbmdlZCB0byB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBzaW5jZSBpdCdzIHJlc2lsaWVudCB0byBzZXJpYWxpemF0aW9uLlxuICAgKi9cbiAgcmV0dXJuIHByb3RvdHlwZSA9PT0gbnVsbCB8fCBwcm90b3R5cGUuaGFzT3duUHJvcGVydHkoJ2lzUHJvdG90eXBlT2YnKVxufVxuIl0sIm5hbWVzIjpbImdldE9iamVjdENsYXNzTGFiZWwiLCJpc1BsYWluT2JqZWN0IiwidmFsdWUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJnZXRQcm90b3R5cGVPZiIsImhhc093blByb3BlcnR5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/is-thenable.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Q0FLQzs7Ozs4Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsV0FDZEMsT0FBdUI7SUFFdkIsT0FDRUEsWUFBWSxRQUNaLE9BQU9BLFlBQVksWUFDbkIsVUFBVUEsV0FDVixPQUFPQSxRQUFRQyxJQUFJLEtBQUs7QUFFNUIiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2lzLXRoZW5hYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2sgdG8gc2VlIGlmIGEgdmFsdWUgaXMgVGhlbmFibGUuXG4gKlxuICogQHBhcmFtIHByb21pc2UgdGhlIG1heWJlLXRoZW5hYmxlIHZhbHVlXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyB0aGVuYWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUaGVuYWJsZTxUID0gdW5rbm93bj4oXG4gIHByb21pc2U6IFByb21pc2U8VD4gfCBUXG4pOiBwcm9taXNlIGlzIFByb21pc2U8VD4ge1xuICByZXR1cm4gKFxuICAgIHByb21pc2UgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgcHJvbWlzZSA9PT0gJ29iamVjdCcgJiZcbiAgICAndGhlbicgaW4gcHJvbWlzZSAmJlxuICAgIHR5cGVvZiBwcm9taXNlLnRoZW4gPT09ICdmdW5jdGlvbidcbiAgKVxufVxuIl0sIm5hbWVzIjpbImlzVGhlbmFibGUiLCJwcm9taXNlIiwidGhlbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***! \*************************************************************************/ /***/ ((module) => { "use strict"; eval("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsa0VBQWtFO0FBQ2xFOzs7OztDQUtDO0FBQ0QsTUFBTUEsNkJBQTZCO0lBQ2pDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVEQyxPQUFPQyxPQUFPLEdBQUdGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBUaGlzIGZpbGUgaXMgSlMgYmVjYXVzZSBpdCdzIHVzZWQgYnkgdGhlIHRhc2tmaWxlLXN3Yy5qcyBmaWxlLCB3aGljaCBpcyBKUy5cbi8vIEtlZXAgZmlsZSBjaGFuZ2VzIGluIHN5bmMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBgLmQudHNgIGZpbGVzLlxuLyoqXG4gKiBUaGVzZSBhcmUgdGhlIGJyb3dzZXIgdmVyc2lvbnMgdGhhdCBzdXBwb3J0IGFsbCBvZiB0aGUgZm9sbG93aW5nOlxuICogc3RhdGljIGltcG9ydDogaHR0cHM6Ly9jYW5pdXNlLmNvbS9lczYtbW9kdWxlXG4gKiBkeW5hbWljIGltcG9ydDogaHR0cHM6Ly9jYW5pdXNlLmNvbS9lczYtbW9kdWxlLWR5bmFtaWMtaW1wb3J0XG4gKiBpbXBvcnQubWV0YTogaHR0cHM6Ly9jYW5pdXNlLmNvbS9tZG4tamF2YXNjcmlwdF9vcGVyYXRvcnNfaW1wb3J0X21ldGFcbiAqL1xuY29uc3QgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgPSBbXG4gICdjaHJvbWUgNjQnLFxuICAnZWRnZSA3OScsXG4gICdmaXJlZm94IDY3JyxcbiAgJ29wZXJhIDUxJyxcbiAgJ3NhZmFyaSAxMicsXG5dXG5cbm1vZHVsZS5leHBvcnRzID0gTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVRcbiJdLCJuYW1lcyI6WyJNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCIsIm1vZHVsZSIsImV4cG9ydHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"denormalizePagePath\", ({\n enumerable: true,\n get: function() {\n return denormalizePagePath;\n }\n}));\nconst _utils = __webpack_require__(/*! ../router/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _normalizepathsep = __webpack_require__(/*! ./normalize-path-sep */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nfunction denormalizePagePath(page) {\n let _page = (0, _normalizepathsep.normalizePathSep)(page);\n return _page.startsWith('/index/') && !(0, _utils.isDynamicRoute)(_page) ? _page.slice(6) : _page !== '/index' ? _page : '/';\n} //# sourceMappingURL=denormalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBV2dCQTs7O2VBQUFBOzs7bUNBWGU7OENBQ0U7QUFVMUIsU0FBU0Esb0JBQW9CQyxJQUFZO0lBQzlDLElBQUlDLFFBQVFDLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJGO0lBQzdCLE9BQU9DLE1BQU1FLFVBQVUsQ0FBQyxjQUFjLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLGNBQUFBLEVBQWVILFNBQ2xEQSxNQUFNSSxLQUFLLENBQUMsS0FDWkosVUFBVSxXQUNSQSxRQUNBO0FBQ1IiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9kZW5vcm1hbGl6ZS1wYWdlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuLi9yb3V0ZXIvdXRpbHMnXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoU2VwIH0gZnJvbSAnLi9ub3JtYWxpemUtcGF0aC1zZXAnXG5cbi8qKlxuICogUGVyZm9ybXMgdGhlIG9wcG9zaXRlIHRyYW5zZm9ybWF0aW9uIG9mIGBub3JtYWxpemVQYWdlUGF0aGAuIE5vdGUgdGhhdFxuICogdGhpcyBmdW5jdGlvbiBpcyBub3QgaWRlbXBvdGVudCBlaXRoZXIgaW4gY2FzZXMgd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlXG4gKiBsZWFkaW5nIGAvaW5kZXhgIGZvciB0aGUgcGFnZS4gRXhhbXBsZXM6XG4gKiAgLSBgL2luZGV4YCAtPiBgL2BcbiAqICAtIGAvaW5kZXgvZm9vYCAtPiBgL2Zvb2BcbiAqICAtIGAvaW5kZXgvaW5kZXhgIC0+IGAvaW5kZXhgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhZ2U6IHN0cmluZykge1xuICBsZXQgX3BhZ2UgPSBub3JtYWxpemVQYXRoU2VwKHBhZ2UpXG4gIHJldHVybiBfcGFnZS5zdGFydHNXaXRoKCcvaW5kZXgvJykgJiYgIWlzRHluYW1pY1JvdXRlKF9wYWdlKVxuICAgID8gX3BhZ2Uuc2xpY2UoNilcbiAgICA6IF9wYWdlICE9PSAnL2luZGV4J1xuICAgICAgPyBfcGFnZVxuICAgICAgOiAnLydcbn1cbiJdLCJuYW1lcyI6WyJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwicGFnZSIsIl9wYWdlIiwibm9ybWFsaXplUGF0aFNlcCIsInN0YXJ0c1dpdGgiLCJpc0R5bmFtaWNSb3V0ZSIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDOzs7O3NEQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxtQkFBbUJDLElBQVk7SUFDN0MsT0FBT0EsS0FBS0MsVUFBVSxDQUFDLE9BQU9ELE9BQVEsTUFBR0E7QUFDM0MiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvciBhIGdpdmVuIHBhZ2UgcGF0aCwgdGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgYSBsZWFkaW5nIHNsYXNoLlxuICogSWYgdGhlcmUgaXMgbm90IGEgbGVhZGluZyBzbGFzaCwgb25lIGlzIGFkZGVkLCBvdGhlcndpc2UgaXQgaXMgbm9vcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUxlYWRpbmdTbGFzaChwYXRoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aCA6IGAvJHtwYXRofWBcbn1cbiJdLCJuYW1lcyI6WyJlbnN1cmVMZWFkaW5nU2xhc2giLCJwYXRoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeDataPath\", ({\n enumerable: true,\n get: function() {\n return normalizeDataPath;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ../router/utils/path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction normalizeDataPath(pathname) {\n if (!(0, _pathhasprefix.pathHasPrefix)(pathname || '/', '/_next/data')) {\n return pathname;\n }\n pathname = pathname.replace(/\\/_next\\/data\\/[^/]{1,}/, '').replace(/\\.json$/, '');\n if (pathname === '/index') {\n return '/';\n }\n return pathname;\n} //# sourceMappingURL=normalize-data-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLWRhdGEtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3FEQUtnQkE7OztlQUFBQTs7OzJDQUxjO0FBS3ZCLFNBQVNBLGtCQUFrQkMsUUFBZ0I7SUFDaEQsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRCxZQUFZLEtBQUssZ0JBQWdCO1FBQ2xELE9BQU9BO0lBQ1Q7SUFDQUEsV0FBV0EsU0FDUkUsT0FBTyxDQUFDLDJCQUEyQixJQUNuQ0EsT0FBTyxDQUFDLFdBQVc7SUFFdEIsSUFBSUYsYUFBYSxVQUFVO1FBQ3pCLE9BQU87SUFDVDtJQUNBLE9BQU9BO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtZGF0YS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuLi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4J1xuXG4vKipcbiAqIHN0cmlwIF9uZXh0L2RhdGEvPGJ1aWxkLWlkPi8gcHJlZml4IGFuZCAuanNvbiBzdWZmaXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURhdGFQYXRoKHBhdGhuYW1lOiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoSGFzUHJlZml4KHBhdGhuYW1lIHx8ICcvJywgJy9fbmV4dC9kYXRhJykpIHtcbiAgICByZXR1cm4gcGF0aG5hbWVcbiAgfVxuICBwYXRobmFtZSA9IHBhdGhuYW1lXG4gICAgLnJlcGxhY2UoL1xcL19uZXh0XFwvZGF0YVxcL1teL117MSx9LywgJycpXG4gICAgLnJlcGxhY2UoL1xcLmpzb24kLywgJycpXG5cbiAgaWYgKHBhdGhuYW1lID09PSAnL2luZGV4Jykge1xuICAgIHJldHVybiAnLydcbiAgfVxuICByZXR1cm4gcGF0aG5hbWVcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVEYXRhUGF0aCIsInBhdGhuYW1lIiwicGF0aEhhc1ByZWZpeCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePagePath\", ({\n enumerable: true,\n get: function() {\n return normalizePagePath;\n }\n}));\nconst _ensureleadingslash = __webpack_require__(/*! ./ensure-leading-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _utils = __webpack_require__(/*! ../router/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _utils1 = __webpack_require__(/*! ../utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction normalizePagePath(page) {\n const normalized = /^\\/index(\\/|$)/.test(page) && !(0, _utils.isDynamicRoute)(page) ? \"/index\" + page : page === '/' ? '/index' : (0, _ensureleadingslash.ensureLeadingSlash)(page);\n if (true) {\n const { posix } = __webpack_require__(/*! path */ \"path\");\n const resolvedPage = posix.normalize(normalized);\n if (resolvedPage !== normalized) {\n throw new _utils1.NormalizeError(\"Requested and resolved page mismatch: \" + normalized + \" \" + resolvedPage);\n }\n }\n return normalized;\n} //# sourceMappingURL=normalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhZ2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3FEQWFnQkE7OztlQUFBQTs7O2dEQWJtQjttQ0FDSjtvQ0FDQTtBQVd4QixTQUFTQSxrQkFBa0JDLElBQVk7SUFDNUMsTUFBTUMsYUFDSixpQkFBaUJDLElBQUksQ0FBQ0YsU0FBUyxDQUFDRyxDQUFBQSxHQUFBQSxPQUFBQSxjQUFBQSxFQUFlSCxRQUMxQyxXQUFRQSxPQUNUQSxTQUFTLE1BQ1AsV0FDQUksQ0FBQUEsR0FBQUEsb0JBQUFBLGtCQUFBQSxFQUFtQko7SUFFM0IsSUFBSUssSUFBbUMsRUFBRTtRQUN2QyxNQUFNLEVBQUVHLEtBQUssRUFBRSxHQUFHQyxtQkFBT0EsQ0FBQyxrQkFBTTtRQUNoQyxNQUFNQyxlQUFlRixNQUFNRyxTQUFTLENBQUNWO1FBQ3JDLElBQUlTLGlCQUFpQlQsWUFBWTtZQUMvQixNQUFNLElBQUlXLFFBQUFBLGNBQWMsQ0FDckIsMkNBQXdDWCxhQUFXLE1BQUdTO1FBRTNEO0lBQ0Y7SUFFQSxPQUFPVDtBQUNUIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhZ2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnN1cmVMZWFkaW5nU2xhc2ggfSBmcm9tICcuL2Vuc3VyZS1sZWFkaW5nLXNsYXNoJ1xuaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuLi9yb3V0ZXIvdXRpbHMnXG5pbXBvcnQgeyBOb3JtYWxpemVFcnJvciB9IGZyb20gJy4uL3V0aWxzJ1xuXG4vKipcbiAqIFRha2VzIGEgcGFnZSBhbmQgdHJhbnNmb3JtcyBpdCBpbnRvIGl0cyBmaWxlIGNvdW50ZXJwYXJ0IGVuc3VyaW5nIHRoYXQgdGhlXG4gKiBvdXRwdXQgaXMgbm9ybWFsaXplZC4gTm90ZSB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBpZGVtcG90ZW50IGJlY2F1c2UgYSBwYWdlXG4gKiBgL2luZGV4YCBjYW4gYmUgcmVmZXJlbmNpbmcgYC9pbmRleC9pbmRleC5qc2AgYW5kIGAvaW5kZXgvaW5kZXhgIGNvdWxkIGJlXG4gKiByZWZlcmVuY2luZyBgL2luZGV4L2luZGV4L2luZGV4LmpzYC4gRXhhbXBsZXM6XG4gKiAgLSBgL2AgLT4gYC9pbmRleGBcbiAqICAtIGAvaW5kZXgvZm9vYCAtPiBgL2luZGV4L2luZGV4L2Zvb2BcbiAqICAtIGAvaW5kZXhgIC0+IGAvaW5kZXgvaW5kZXhgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYWdlUGF0aChwYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkID1cbiAgICAvXlxcL2luZGV4KFxcL3wkKS8udGVzdChwYWdlKSAmJiAhaXNEeW5hbWljUm91dGUocGFnZSlcbiAgICAgID8gYC9pbmRleCR7cGFnZX1gXG4gICAgICA6IHBhZ2UgPT09ICcvJ1xuICAgICAgICA/ICcvaW5kZXgnXG4gICAgICAgIDogZW5zdXJlTGVhZGluZ1NsYXNoKHBhZ2UpXG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnKSB7XG4gICAgY29uc3QgeyBwb3NpeCB9ID0gcmVxdWlyZSgncGF0aCcpIGFzIHR5cGVvZiBpbXBvcnQoJ3BhdGgnKVxuICAgIGNvbnN0IHJlc29sdmVkUGFnZSA9IHBvc2l4Lm5vcm1hbGl6ZShub3JtYWxpemVkKVxuICAgIGlmIChyZXNvbHZlZFBhZ2UgIT09IG5vcm1hbGl6ZWQpIHtcbiAgICAgIHRocm93IG5ldyBOb3JtYWxpemVFcnJvcihcbiAgICAgICAgYFJlcXVlc3RlZCBhbmQgcmVzb2x2ZWQgcGFnZSBtaXNtYXRjaDogJHtub3JtYWxpemVkfSAke3Jlc29sdmVkUGFnZX1gXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vcm1hbGl6ZWRcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVQYWdlUGF0aCIsInBhZ2UiLCJub3JtYWxpemVkIiwidGVzdCIsImlzRHluYW1pY1JvdXRlIiwiZW5zdXJlTGVhZGluZ1NsYXNoIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsInBvc2l4IiwicmVxdWlyZSIsInJlc29sdmVkUGFnZSIsIm5vcm1hbGl6ZSIsIk5vcm1hbGl6ZUVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n} //# sourceMappingURL=normalize-path-sep.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhdGgtc2VwLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7O0NBSUM7Ozs7b0RBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGlCQUFpQkMsSUFBWTtJQUMzQyxPQUFPQSxLQUFLQyxPQUFPLENBQUMsT0FBTztBQUM3QiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvciBhIGdpdmVuIHBhZ2UgcGF0aCwgdGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgbm8gYmFja3NsYXNoXG4gKiBlc2NhcGluZyBzbGFzaGVzIGluIHRoZSBwYXRoLiBFeGFtcGxlOlxuICogIC0gYGZvb1xcL2JhclxcL2JhemAgLT4gYGZvby9iYXIvYmF6YFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGF0aFNlcChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJylcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVQYXRoU2VwIiwicGF0aCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQVFnQkE7OztlQUFBQTs7OzJDQVJjOzJDQUNBO0FBT3ZCLFNBQVNBLFVBQ2RDLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLGFBQXNCLEVBQ3RCQyxZQUFzQjtJQUV0Qiw0RUFBNEU7SUFDNUUsc0JBQXNCO0lBQ3RCLElBQUksQ0FBQ0YsVUFBVUEsV0FBV0MsZUFBZSxPQUFPRjtJQUVoRCxNQUFNSSxRQUFRSixLQUFLSyxXQUFXO0lBRTlCLDJFQUEyRTtJQUMzRSxpQ0FBaUM7SUFDakMsSUFBSSxDQUFDRixjQUFjO1FBQ2pCLElBQUlHLENBQUFBLEdBQUFBLGVBQUFBLGFBQWEsRUFBQ0YsT0FBTyxTQUFTLE9BQU9KO1FBQ3pDLElBQUlNLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNGLE9BQVEsTUFBR0gsT0FBT0ksV0FBVyxLQUFPLE9BQU9MO0lBQy9EO0lBRUEscUNBQXFDO0lBQ3JDLE9BQU9PLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNQLE1BQU8sTUFBR0M7QUFDakMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5cbi8qKlxuICogRm9yIGEgZ2l2ZW4gcGF0aCBhbmQgYSBsb2NhbGUsIGlmIHRoZSBsb2NhbGUgaXMgZ2l2ZW4sIGl0IHdpbGwgcHJlZml4IHRoZVxuICogbG9jYWxlLiBUaGUgcGF0aCBzaG91bGRuJ3QgYmUgYW4gQVBJIHBhdGguIElmIGEgZGVmYXVsdCBsb2NhbGUgaXMgZ2l2ZW4gdGhlXG4gKiBwcmVmaXggd2lsbCBiZSBvbWl0dGVkIGlmIHRoZSBsb2NhbGUgaXMgYWxyZWFkeSB0aGUgZGVmYXVsdCBsb2NhbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRMb2NhbGUoXG4gIHBhdGg6IHN0cmluZyxcbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2UsXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmcsXG4gIGlnbm9yZVByZWZpeD86IGJvb2xlYW5cbikge1xuICAvLyBJZiBubyBsb2NhbGUgd2FzIGdpdmVuIG9yIHRoZSBsb2NhbGUgaXMgdGhlIGRlZmF1bHQgbG9jYWxlLCB3ZSBkb24ndCBuZWVkXG4gIC8vIHRvIHByZWZpeCB0aGUgcGF0aC5cbiAgaWYgKCFsb2NhbGUgfHwgbG9jYWxlID09PSBkZWZhdWx0TG9jYWxlKSByZXR1cm4gcGF0aFxuXG4gIGNvbnN0IGxvd2VyID0gcGF0aC50b0xvd2VyQ2FzZSgpXG5cbiAgLy8gSWYgdGhlIHBhdGggaXMgYW4gQVBJIHBhdGggb3IgdGhlIHBhdGggYWxyZWFkeSBoYXMgdGhlIGxvY2FsZSBwcmVmaXgsIHdlXG4gIC8vIGRvbid0IG5lZWQgdG8gcHJlZml4IHRoZSBwYXRoLlxuICBpZiAoIWlnbm9yZVByZWZpeCkge1xuICAgIGlmIChwYXRoSGFzUHJlZml4KGxvd2VyLCAnL2FwaScpKSByZXR1cm4gcGF0aFxuICAgIGlmIChwYXRoSGFzUHJlZml4KGxvd2VyLCBgLyR7bG9jYWxlLnRvTG93ZXJDYXNlKCl9YCkpIHJldHVybiBwYXRoXG4gIH1cblxuICAvLyBBZGQgdGhlIGxvY2FsZSBwcmVmaXggdG8gdGhlIHBhdGguXG4gIHJldHVybiBhZGRQYXRoUHJlZml4KHBhdGgsIGAvJHtsb2NhbGV9YClcbn1cbiJdLCJuYW1lcyI6WyJhZGRMb2NhbGUiLCJwYXRoIiwibG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsImlnbm9yZVByZWZpeCIsImxvd2VyIiwidG9Mb3dlckNhc2UiLCJwYXRoSGFzUHJlZml4IiwiYWRkUGF0aFByZWZpeCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBTWdCQTs7O2VBQUFBOzs7dUNBTlU7QUFNbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFlO0lBQ3pELElBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsUUFBUTtRQUNwQyxPQUFPRDtJQUNUO0lBRUEsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVOO0lBQzVDLE9BQVEsS0FBRUMsU0FBU0UsV0FBV0MsUUFBUUM7QUFDeEMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBBZGRzIHRoZSBwcm92aWRlZCBwcmVmaXggdG8gdGhlIGdpdmVuIHBhdGguIEl0IGZpcnN0IGVuc3VyZXMgdGhhdCB0aGUgcGF0aFxuICogaXMgaW5kZWVkIHN0YXJ0aW5nIHdpdGggYSBzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg/OiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhcHJlZml4KSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIGAke3ByZWZpeH0ke3BhdGhuYW1lfSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBT2dCQTs7O2VBQUFBOzs7dUNBUFU7QUFPbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFlO0lBQ3pELElBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsUUFBUTtRQUNwQyxPQUFPRDtJQUNUO0lBRUEsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVOO0lBQzVDLE9BQVEsS0FBRUcsV0FBV0YsU0FBU0csUUFBUUM7QUFDeEMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBTaW1pbGFybHkgdG8gYGFkZFBhdGhQcmVmaXhgLCB0aGlzIGZ1bmN0aW9uIGFkZHMgYSBzdWZmaXggYXQgdGhlIGVuZCBvbiB0aGVcbiAqIHByb3ZpZGVkIHBhdGguIEl0IGFsc28gd29ya3Mgb25seSBmb3IgcGF0aHMgZW5zdXJpbmcgdGhlIGFyZ3VtZW50IHN0YXJ0c1xuICogd2l0aCBhIHNsYXNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkUGF0aFN1ZmZpeChwYXRoOiBzdHJpbmcsIHN1ZmZpeD86IHN0cmluZykge1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFzdWZmaXgpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gYCR7cGF0aG5hbWV9JHtzdWZmaXh9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbImFkZFBhdGhTdWZmaXgiLCJwYXRoIiwic3VmZml4Iiwic3RhcnRzV2l0aCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXNCZ0JBLGdCQUFnQjtlQUFoQkE7O0lBbUNBQyxlQUFlO2VBQWZBOzs7Z0RBekRtQjtxQ0FDSjtBQXFCeEIsU0FBU0QsaUJBQWlCRSxLQUFhO0lBQzVDLE9BQU9DLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFDTEQsTUFBTUUsS0FBSyxDQUFDLEtBQUtDLE1BQU0sQ0FBQyxDQUFDQyxVQUFVQyxTQUFTQyxPQUFPQztRQUNqRCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDRixTQUFTO1lBQ1osT0FBT0Q7UUFDVDtRQUVBLHNCQUFzQjtRQUN0QixJQUFJSSxDQUFBQSxHQUFBQSxTQUFBQSxjQUFBQSxFQUFlSCxVQUFVO1lBQzNCLE9BQU9EO1FBQ1Q7UUFFQSxpQ0FBaUM7UUFDakMsSUFBSUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLO1lBQ3RCLE9BQU9EO1FBQ1Q7UUFFQSx1REFBdUQ7UUFDdkQsSUFDR0MsQ0FBQUEsWUFBWSxVQUFVQSxZQUFZLFFBQU0sSUFDekNDLFVBQVVDLFNBQVNFLE1BQU0sR0FBRyxHQUM1QjtZQUNBLE9BQU9MO1FBQ1Q7UUFFQSxPQUFVQSxXQUFTLE1BQUdDO0lBQ3hCLEdBQUc7QUFFUDtBQU1PLFNBQVNOLGdCQUFnQlcsR0FBVztJQUN6QyxPQUFPQSxJQUFJQyxPQUFPLENBQ2hCLGVBQ0E7QUFHSiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSAnLi4vLi4vcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoJ1xuaW1wb3J0IHsgaXNHcm91cFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZWdtZW50J1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYW4gYXBwIHJvdXRlIHNvIGl0IHJlcHJlc2VudHMgdGhlIGFjdHVhbCByZXF1ZXN0IHBhdGguIEVzc2VudGlhbGx5XG4gKiBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcgdHJhbnNmb3JtYXRpb25zOlxuICpcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcGFnZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvKGRhc2hib2FyZCkvYWNjb3VudC9wYWdlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3BhZ2VgIHRvIGAvYFxuICogLSBgLyhkYXNoYm9hcmQpL3VzZXIvW2lkXS9yb3V0ZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvKGRhc2hib2FyZCkvYWNjb3VudC9yb3V0ZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9yb3V0ZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvYWNjb3VudC9yb3V0ZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3JvdXRlYCB0byBgL2BcbiAqIC0gYC9gIHRvIGAvYFxuICpcbiAqIEBwYXJhbSByb3V0ZSB0aGUgYXBwIHJvdXRlIHRvIG5vcm1hbGl6ZVxuICogQHJldHVybnMgdGhlIG5vcm1hbGl6ZWQgcGF0aG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFwcFBhdGgocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gZW5zdXJlTGVhZGluZ1NsYXNoKFxuICAgIHJvdXRlLnNwbGl0KCcvJykucmVkdWNlKChwYXRobmFtZSwgc2VnbWVudCwgaW5kZXgsIHNlZ21lbnRzKSA9PiB7XG4gICAgICAvLyBFbXB0eSBzZWdtZW50cyBhcmUgaWdub3JlZC5cbiAgICAgIGlmICghc2VnbWVudCkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gR3JvdXBzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKGlzR3JvdXBTZWdtZW50KHNlZ21lbnQpKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBQYXJhbGxlbCBzZWdtZW50cyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChzZWdtZW50WzBdID09PSAnQCcpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIFRoZSBsYXN0IHNlZ21lbnQgKGlmIGl0J3MgYSBsZWFmKSBzaG91bGQgYmUgaWdub3JlZC5cbiAgICAgIGlmIChcbiAgICAgICAgKHNlZ21lbnQgPT09ICdwYWdlJyB8fCBzZWdtZW50ID09PSAncm91dGUnKSAmJlxuICAgICAgICBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9LyR7c2VnbWVudH1gXG4gICAgfSwgJycpXG4gIClcbn1cblxuLyoqXG4gKiBTdHJpcHMgdGhlIGAucnNjYCBleHRlbnNpb24gaWYgaXQncyBpbiB0aGUgcGF0aG5hbWUuXG4gKiBTaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgb24gZnVsbCB1cmxzIGl0IGNoZWNrcyBgP2AgZm9yIHNlYXJjaFBhcmFtcyBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJzY1VSTCh1cmw6IHN0cmluZykge1xuICByZXR1cm4gdXJsLnJlcGxhY2UoXG4gICAgL1xcLnJzYygkfFxcPykvLFxuICAgIC8vICQxIGVuc3VyZXMgYD9gIGlzIHByZXNlcnZlZFxuICAgICckMSdcbiAgKVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZUFwcFBhdGgiLCJub3JtYWxpemVSc2NVUkwiLCJyb3V0ZSIsImVuc3VyZUxlYWRpbmdTbGFzaCIsInNwbGl0IiwicmVkdWNlIiwicGF0aG5hbWUiLCJzZWdtZW50IiwiaW5kZXgiLCJzZWdtZW50cyIsImlzR3JvdXBTZWdtZW50IiwibGVuZ3RoIiwidXJsIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js": /*!*************************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7OzBEQVdnQkE7OztlQUFBQTs7O2lEQVZvQjsyQ0FDTjsyQ0FDQTt1Q0FDSjtBQU9uQixTQUFTQSx1QkFBdUJDLElBQWtCO0lBQ3ZELElBQUlDLFdBQVdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQ2JGLEtBQUtDLFFBQVEsRUFDYkQsS0FBS0csTUFBTSxFQUNYSCxLQUFLSSxPQUFPLEdBQUdDLFlBQVlMLEtBQUtNLGFBQWEsRUFDN0NOLEtBQUtPLFlBQVk7SUFHbkIsSUFBSVAsS0FBS0ksT0FBTyxJQUFJLENBQUNKLEtBQUtRLGFBQWEsRUFBRTtRQUN2Q1AsV0FBV1EsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlI7SUFDakM7SUFFQSxJQUFJRCxLQUFLSSxPQUFPLEVBQUU7UUFDaEJILFdBQVdTLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQ1RDLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVcsaUJBQWNELEtBQUtJLE9BQU8sR0FDbkRKLEtBQUtDLFFBQVEsS0FBSyxNQUFNLGVBQWU7SUFFM0M7SUFFQUEsV0FBV1UsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY1YsVUFBVUQsS0FBS1ksUUFBUTtJQUNoRCxPQUFPLENBQUNaLEtBQUtJLE9BQU8sSUFBSUosS0FBS1EsYUFBYSxHQUN0QyxDQUFDUCxTQUFTWSxRQUFRLENBQUMsT0FDakJILENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNULFVBQVUsT0FDeEJBLFdBQ0ZRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0FBQzFCIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOZXh0UGF0aG5hbWVJbmZvIH0gZnJvbSAnLi9nZXQtbmV4dC1wYXRobmFtZS1pbmZvJ1xuaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4vYWRkLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgYWRkUGF0aFN1ZmZpeCB9IGZyb20gJy4vYWRkLXBhdGgtc3VmZml4J1xuaW1wb3J0IHsgYWRkTG9jYWxlIH0gZnJvbSAnLi9hZGQtbG9jYWxlJ1xuXG5pbnRlcmZhY2UgRXh0ZW5kZWRJbmZvIGV4dGVuZHMgTmV4dFBhdGhuYW1lSW5mbyB7XG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgaWdub3JlUHJlZml4PzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyhpbmZvOiBFeHRlbmRlZEluZm8pIHtcbiAgbGV0IHBhdGhuYW1lID0gYWRkTG9jYWxlKFxuICAgIGluZm8ucGF0aG5hbWUsXG4gICAgaW5mby5sb2NhbGUsXG4gICAgaW5mby5idWlsZElkID8gdW5kZWZpbmVkIDogaW5mby5kZWZhdWx0TG9jYWxlLFxuICAgIGluZm8uaWdub3JlUHJlZml4XG4gIClcblxuICBpZiAoaW5mby5idWlsZElkIHx8ICFpbmZvLnRyYWlsaW5nU2xhc2gpIHtcbiAgICBwYXRobmFtZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG4gIH1cblxuICBpZiAoaW5mby5idWlsZElkKSB7XG4gICAgcGF0aG5hbWUgPSBhZGRQYXRoU3VmZml4KFxuICAgICAgYWRkUGF0aFByZWZpeChwYXRobmFtZSwgYC9fbmV4dC9kYXRhLyR7aW5mby5idWlsZElkfWApLFxuICAgICAgaW5mby5wYXRobmFtZSA9PT0gJy8nID8gJ2luZGV4Lmpzb24nIDogJy5qc29uJ1xuICAgIClcbiAgfVxuXG4gIHBhdGhuYW1lID0gYWRkUGF0aFByZWZpeChwYXRobmFtZSwgaW5mby5iYXNlUGF0aClcbiAgcmV0dXJuICFpbmZvLmJ1aWxkSWQgJiYgaW5mby50cmFpbGluZ1NsYXNoXG4gICAgPyAhcGF0aG5hbWUuZW5kc1dpdGgoJy8nKVxuICAgICAgPyBhZGRQYXRoU3VmZml4KHBhdGhuYW1lLCAnLycpXG4gICAgICA6IHBhdGhuYW1lXG4gICAgOiByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxufVxuIl0sIm5hbWVzIjpbImZvcm1hdE5leHRQYXRobmFtZUluZm8iLCJpbmZvIiwicGF0aG5hbWUiLCJhZGRMb2NhbGUiLCJsb2NhbGUiLCJidWlsZElkIiwidW5kZWZpbmVkIiwiZGVmYXVsdExvY2FsZSIsImlnbm9yZVByZWZpeCIsInRyYWlsaW5nU2xhc2giLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwiYWRkUGF0aFN1ZmZpeCIsImFkZFBhdGhQcmVmaXgiLCJiYXNlUGF0aCIsImVuZHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7QUFDdkMsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RSxzRUFBc0U7QUFDdEUsNEVBQTRFO0FBQzVFLHFFQUFxRTtBQUNyRSx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsNEVBQTRFO0FBQzVFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLHlDQUF5Qzs7Ozs7Ozs7Ozs7OztJQVF6QkEsU0FBUztlQUFUQTs7SUE2REFDLG9CQUFvQjtlQUFwQkE7O0lBZkhDLGFBQWE7ZUFBYkE7Ozs7bUZBbERnQjtBQUU3QixNQUFNQyxtQkFBbUI7QUFFbEIsU0FBU0gsVUFBVUksTUFBaUI7SUFDekMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHRjtJQUN6QixJQUFJRyxXQUFXSCxPQUFPRyxRQUFRLElBQUk7SUFDbEMsSUFBSUMsV0FBV0osT0FBT0ksUUFBUSxJQUFJO0lBQ2xDLElBQUlDLE9BQU9MLE9BQU9LLElBQUksSUFBSTtJQUMxQixJQUFJQyxRQUFRTixPQUFPTSxLQUFLLElBQUk7SUFDNUIsSUFBSUMsT0FBdUI7SUFFM0JOLE9BQU9BLE9BQU9PLG1CQUFtQlAsTUFBTVEsT0FBTyxDQUFDLFFBQVEsT0FBTyxNQUFNO0lBRXBFLElBQUlULE9BQU9PLElBQUksRUFBRTtRQUNmQSxPQUFPTixPQUFPRCxPQUFPTyxJQUFJO0lBQzNCLE9BQU8sSUFBSUwsVUFBVTtRQUNuQkssT0FBT04sT0FBUSxFQUFDQyxTQUFTUSxPQUFPLENBQUMsT0FBUSxNQUFHUixXQUFTLE1BQUtBLFFBQUFBLENBQU87UUFDakUsSUFBSUYsT0FBT1csSUFBSSxFQUFFO1lBQ2ZKLFFBQVEsTUFBTVAsT0FBT1csSUFBSTtRQUMzQjtJQUNGO0lBRUEsSUFBSUwsU0FBUyxPQUFPQSxVQUFVLFVBQVU7UUFDdENBLFFBQVFNLE9BQU9DLGFBQVlDLHNCQUFzQixDQUFDUjtJQUNwRDtJQUVBLElBQUlTLFNBQVNmLE9BQU9lLE1BQU0sSUFBS1QsU0FBVSxNQUFHQSxTQUFZO0lBRXhELElBQUlILFlBQVksQ0FBQ0EsU0FBU2EsUUFBUSxDQUFDLE1BQU1iLFlBQVk7SUFFckQsSUFDRUgsT0FBT2lCLE9BQU8sSUFDWixFQUFDZCxZQUFZSixpQkFBaUJtQixJQUFJLENBQUNmLFNBQUFBLENBQVEsSUFBTUksU0FBUyxPQUM1RDtRQUNBQSxPQUFPLE9BQVFBLENBQUFBLFFBQVEsR0FBQztRQUN4QixJQUFJSCxZQUFZQSxRQUFRLENBQUMsRUFBRSxLQUFLLEtBQUtBLFdBQVcsTUFBTUE7SUFDeEQsT0FBTyxJQUFJLENBQUNHLE1BQU07UUFDaEJBLE9BQU87SUFDVDtJQUVBLElBQUlGLFFBQVFBLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBS0EsT0FBTyxNQUFNQTtJQUMxQyxJQUFJVSxVQUFVQSxNQUFNLENBQUMsRUFBRSxLQUFLLEtBQUtBLFNBQVMsTUFBTUE7SUFFaERYLFdBQVdBLFNBQVNLLE9BQU8sQ0FBQyxTQUFTRDtJQUNyQ08sU0FBU0EsT0FBT04sT0FBTyxDQUFDLEtBQUs7SUFFN0IsT0FBUSxLQUFFTixXQUFXSSxPQUFPSCxXQUFXVyxTQUFTVjtBQUNsRDtBQUVPLE1BQU1QLGdCQUFnQjtJQUMzQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVNLFNBQVNELHFCQUFxQnNCLEdBQWM7SUFDakQsSUFBSUMsSUFBb0IsRUFBb0I7UUFDMUMsSUFBSUQsUUFBUSxRQUFRLE9BQU9BLFFBQVEsVUFBVTtZQUMzQ0ksT0FBT0MsSUFBSSxDQUFDTCxLQUFLTSxPQUFPLENBQUMsQ0FBQ0M7Z0JBQ3hCLElBQUksQ0FBQzVCLGNBQWM2QixRQUFRLENBQUNELE1BQU07b0JBQ2hDRSxRQUFRQyxJQUFJLENBQ1QsdURBQW9ESDtnQkFFekQ7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPOUIsVUFBVXVCO0FBQ25CIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9ybWF0IGZ1bmN0aW9uIG1vZGlmaWVkIGZyb20gbm9kZWpzXG4vLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHR5cGUgeyBVcmxPYmplY3QgfSBmcm9tICd1cmwnXG5pbXBvcnQgdHlwZSB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgKiBhcyBxdWVyeXN0cmluZyBmcm9tICcuL3F1ZXJ5c3RyaW5nJ1xuXG5jb25zdCBzbGFzaGVkUHJvdG9jb2xzID0gL2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRVcmwodXJsT2JqOiBVcmxPYmplY3QpIHtcbiAgbGV0IHsgYXV0aCwgaG9zdG5hbWUgfSA9IHVybE9ialxuICBsZXQgcHJvdG9jb2wgPSB1cmxPYmoucHJvdG9jb2wgfHwgJydcbiAgbGV0IHBhdGhuYW1lID0gdXJsT2JqLnBhdGhuYW1lIHx8ICcnXG4gIGxldCBoYXNoID0gdXJsT2JqLmhhc2ggfHwgJydcbiAgbGV0IHF1ZXJ5ID0gdXJsT2JqLnF1ZXJ5IHx8ICcnXG4gIGxldCBob3N0OiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlXG5cbiAgYXV0aCA9IGF1dGggPyBlbmNvZGVVUklDb21wb25lbnQoYXV0aCkucmVwbGFjZSgvJTNBL2ksICc6JykgKyAnQCcgOiAnJ1xuXG4gIGlmICh1cmxPYmouaG9zdCkge1xuICAgIGhvc3QgPSBhdXRoICsgdXJsT2JqLmhvc3RcbiAgfSBlbHNlIGlmIChob3N0bmFtZSkge1xuICAgIGhvc3QgPSBhdXRoICsgKH5ob3N0bmFtZS5pbmRleE9mKCc6JykgPyBgWyR7aG9zdG5hbWV9XWAgOiBob3N0bmFtZSlcbiAgICBpZiAodXJsT2JqLnBvcnQpIHtcbiAgICAgIGhvc3QgKz0gJzonICsgdXJsT2JqLnBvcnRcbiAgICB9XG4gIH1cblxuICBpZiAocXVlcnkgJiYgdHlwZW9mIHF1ZXJ5ID09PSAnb2JqZWN0Jykge1xuICAgIHF1ZXJ5ID0gU3RyaW5nKHF1ZXJ5c3RyaW5nLnVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMocXVlcnkgYXMgUGFyc2VkVXJsUXVlcnkpKVxuICB9XG5cbiAgbGV0IHNlYXJjaCA9IHVybE9iai5zZWFyY2ggfHwgKHF1ZXJ5ICYmIGA/JHtxdWVyeX1gKSB8fCAnJ1xuXG4gIGlmIChwcm90b2NvbCAmJiAhcHJvdG9jb2wuZW5kc1dpdGgoJzonKSkgcHJvdG9jb2wgKz0gJzonXG5cbiAgaWYgKFxuICAgIHVybE9iai5zbGFzaGVzIHx8XG4gICAgKCghcHJvdG9jb2wgfHwgc2xhc2hlZFByb3RvY29scy50ZXN0KHByb3RvY29sKSkgJiYgaG9zdCAhPT0gZmFsc2UpXG4gICkge1xuICAgIGhvc3QgPSAnLy8nICsgKGhvc3QgfHwgJycpXG4gICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lWzBdICE9PSAnLycpIHBhdGhuYW1lID0gJy8nICsgcGF0aG5hbWVcbiAgfSBlbHNlIGlmICghaG9zdCkge1xuICAgIGhvc3QgPSAnJ1xuICB9XG5cbiAgaWYgKGhhc2ggJiYgaGFzaFswXSAhPT0gJyMnKSBoYXNoID0gJyMnICsgaGFzaFxuICBpZiAoc2VhcmNoICYmIHNlYXJjaFswXSAhPT0gJz8nKSBzZWFyY2ggPSAnPycgKyBzZWFyY2hcblxuICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1s/I10vZywgZW5jb2RlVVJJQ29tcG9uZW50KVxuICBzZWFyY2ggPSBzZWFyY2gucmVwbGFjZSgnIycsICclMjMnKVxuXG4gIHJldHVybiBgJHtwcm90b2NvbH0ke2hvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YFxufVxuXG5leHBvcnQgY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgJ2F1dGgnLFxuICAnaGFzaCcsXG4gICdob3N0JyxcbiAgJ2hvc3RuYW1lJyxcbiAgJ2hyZWYnLFxuICAncGF0aCcsXG4gICdwYXRobmFtZScsXG4gICdwb3J0JyxcbiAgJ3Byb3RvY29sJyxcbiAgJ3F1ZXJ5JyxcbiAgJ3NlYXJjaCcsXG4gICdzbGFzaGVzJyxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybDogVXJsT2JqZWN0KTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgaWYgKHVybCAhPT0gbnVsbCAmJiB0eXBlb2YgdXJsID09PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXModXJsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKCF1cmxPYmplY3RLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgVW5rbm93biBrZXkgcGFzc2VkIHZpYSB1cmxPYmplY3QgaW50byB1cmwuZm9ybWF0OiAke2tleX1gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb3JtYXRVcmwodXJsKVxufVxuIl0sIm5hbWVzIjpbImZvcm1hdFVybCIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsT2JqZWN0S2V5cyIsInNsYXNoZWRQcm90b2NvbHMiLCJ1cmxPYmoiLCJhdXRoIiwiaG9zdG5hbWUiLCJwcm90b2NvbCIsInBhdGhuYW1lIiwiaGFzaCIsInF1ZXJ5IiwiaG9zdCIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJpbmRleE9mIiwicG9ydCIsIlN0cmluZyIsInF1ZXJ5c3RyaW5nIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaCIsImVuZHNXaXRoIiwic2xhc2hlcyIsInRlc3QiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwiY29uc29sZSIsIndhcm4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js": /*!**********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, '').replace(/\\.json$/, '').split('/');\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== 'index' ? \"/\" + paths.slice(1).join('/') : '/';\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n} //# sourceMappingURL=get-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQW9EZ0JBOzs7ZUFBQUE7OztpREFwRG9COzhDQUNIOzJDQUNIO0FBa0R2QixTQUFTQSxvQkFDZEMsUUFBZ0IsRUFDaEJDLE9BQWdCO1FBRTBCQTtJQUExQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxhQUFhLEVBQUUsR0FBR0gsQ0FBQUEsc0JBQUFBLFFBQVFJLFVBQUFBLEtBQVUsT0FBbEJKLHNCQUFzQixDQUFDO0lBQ2pFLE1BQU1LLE9BQXlCO1FBQzdCTjtRQUNBSSxlQUFlSixhQUFhLE1BQU1BLFNBQVNPLFFBQVEsQ0FBQyxPQUFPSDtJQUM3RDtJQUVBLElBQUlGLFlBQVlNLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNGLEtBQUtOLFFBQVEsRUFBRUUsV0FBVztRQUN0REksS0FBS04sUUFBUSxHQUFHUyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCSCxLQUFLTixRQUFRLEVBQUVFO1FBQ2hESSxLQUFLSixRQUFRLEdBQUdBO0lBQ2xCO0lBQ0EsSUFBSVEsdUJBQXVCSixLQUFLTixRQUFRO0lBRXhDLElBQ0VNLEtBQUtOLFFBQVEsQ0FBQ1csVUFBVSxDQUFDLG1CQUN6QkwsS0FBS04sUUFBUSxDQUFDTyxRQUFRLENBQUMsVUFDdkI7UUFDQSxNQUFNSyxRQUFRTixLQUFLTixRQUFRLENBQ3hCYSxPQUFPLENBQUMsb0JBQW9CLElBQzVCQSxPQUFPLENBQUMsV0FBVyxJQUNuQkMsS0FBSyxDQUFDO1FBRVQsTUFBTUMsVUFBVUgsS0FBSyxDQUFDLEVBQUU7UUFDeEJOLEtBQUtTLE9BQU8sR0FBR0E7UUFDZkwsdUJBQ0VFLEtBQUssQ0FBQyxFQUFFLEtBQUssVUFBVyxNQUFHQSxNQUFNSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQVM7UUFFMUQsc0RBQXNEO1FBQ3RELGtEQUFrRDtRQUNsRCxJQUFJaEIsUUFBUWlCLFNBQVMsS0FBSyxNQUFNO1lBQzlCWixLQUFLTixRQUFRLEdBQUdVO1FBQ2xCO0lBQ0Y7SUFFQSw0RUFBNEU7SUFDNUUseUJBQXlCO0lBQ3pCLElBQUlQLE1BQU07UUFDUixJQUFJZ0IsU0FBU2xCLFFBQVFtQixZQUFZLEdBQzdCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDZixLQUFLTixRQUFRLElBQzFDc0IsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQmhCLEtBQUtOLFFBQVEsRUFBRUcsS0FBS29CLE9BQU87UUFFbkRqQixLQUFLa0IsTUFBTSxHQUFHTCxPQUFPTSxjQUFjO1lBQ25CTjtRQUFoQmIsS0FBS04sUUFBUSxHQUFHbUIsQ0FBQUEsbUJBQUFBLE9BQU9uQixRQUFBQSxLQUFRLE9BQWZtQixtQkFBbUJiLEtBQUtOLFFBQVE7UUFFaEQsSUFBSSxDQUFDbUIsT0FBT00sY0FBYyxJQUFJbkIsS0FBS1MsT0FBTyxFQUFFO1lBQzFDSSxTQUFTbEIsUUFBUW1CLFlBQVksR0FDekJuQixRQUFRbUIsWUFBWSxDQUFDQyxPQUFPLENBQUNYLHdCQUM3QlksQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlosc0JBQXNCUCxLQUFLb0IsT0FBTztZQUUxRCxJQUFJSixPQUFPTSxjQUFjLEVBQUU7Z0JBQ3pCbkIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNyQztRQUNGO0lBQ0Y7SUFDQSxPQUFPbkI7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbmV4dC1wYXRobmFtZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZUxvY2FsZVBhdGggfSBmcm9tICcuLi8uLi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aCdcbmltcG9ydCB7IHJlbW92ZVBhdGhQcmVmaXggfSBmcm9tICcuL3JlbW92ZS1wYXRoLXByZWZpeCdcbmltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcbmltcG9ydCB0eXBlIHsgSTE4TlByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2xpYi9pMThuLXByb3ZpZGVyJ1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRQYXRobmFtZUluZm8ge1xuICAvKipcbiAgICogVGhlIGJhc2UgcGF0aCBpbiBjYXNlIHRoZSBwYXRobmFtZSBpbmNsdWRlZCBpdC5cbiAgICovXG4gIGJhc2VQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgYnVpbGRJZCBmb3Igd2hlbiB0aGUgcGFyc2VkIFVSTCBpcyBhIGRhdGEgVVJMLiBQYXJzaW5nIGl0IGNhbiBiZVxuICAgKiBkaXNhYmxlZCB3aXRoIHRoZSBgcGFyc2VEYXRhYCBvcHRpb24uXG4gICAqL1xuICBidWlsZElkPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJZiB0aGVyZSB3YXMgYSBsb2NhbGUgaW4gdGhlIHBhdGhuYW1lLCB0aGlzIHdpbGwgaG9sZCBpdHMgdmFsdWUuXG4gICAqL1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBwcm9jZXNzZWQgcGF0aG5hbWUgd2l0aG91dCBhIGJhc2UgcGF0aCwgbG9jYWxlLCBvciBkYXRhIFVSTCBlbGVtZW50c1xuICAgKiB3aGVuIHBhcnNpbmcgaXQgaXMgZW5hYmxlZC5cbiAgICovXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIEEgYm9vbGVhbiB0ZWxsaW5nIGlmIHRoZSBwYXRobmFtZSBoYWQgYSB0cmFpbGluZ1NsYXNoLiBUaGlzIGNhbiBiZSBvbmx5XG4gICAqIHRydWUgaWYgdHJhaWxpbmdTbGFzaCBpcyBlbmFibGVkLlxuICAgKi9cbiAgdHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICAvKipcbiAgICogV2hlbiBwYXNzZWQgdG8gdHJ1ZSwgdGhpcyBmdW5jdGlvbiB3aWxsIGFsc28gcGFyc2UgTmV4dGpzIGRhdGEgVVJMcy5cbiAgICovXG4gIHBhcnNlRGF0YT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEEgcGFydGlhbCBvZiB0aGUgTmV4dC5qcyBjb25maWd1cmF0aW9uIHRvIHBhcnNlIHRoZSBVUkwuXG4gICAqL1xuICBuZXh0Q29uZmlnPzoge1xuICAgIGJhc2VQYXRoPzogc3RyaW5nXG4gICAgaTE4bj86IHsgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdIH0gfCBudWxsXG4gICAgdHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgdGhpcyBub3JtYWxpemVyIHdpbGwgYmUgdXNlZCB0byBkZXRlY3QgdGhlIGxvY2FsZSBpbnN0ZWFkIG9mXG4gICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBkZXRlY3Rpb24uXG4gICAqL1xuICBpMThuUHJvdmlkZXI/OiBJMThOUHJvdmlkZXJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRQYXRobmFtZUluZm8oXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE9wdGlvbnNcbik6IE5leHRQYXRobmFtZUluZm8ge1xuICBjb25zdCB7IGJhc2VQYXRoLCBpMThuLCB0cmFpbGluZ1NsYXNoIH0gPSBvcHRpb25zLm5leHRDb25maWcgPz8ge31cbiAgY29uc3QgaW5mbzogTmV4dFBhdGhuYW1lSW5mbyA9IHtcbiAgICBwYXRobmFtZSxcbiAgICB0cmFpbGluZ1NsYXNoOiBwYXRobmFtZSAhPT0gJy8nID8gcGF0aG5hbWUuZW5kc1dpdGgoJy8nKSA6IHRyYWlsaW5nU2xhc2gsXG4gIH1cblxuICBpZiAoYmFzZVBhdGggJiYgcGF0aEhhc1ByZWZpeChpbmZvLnBhdGhuYW1lLCBiYXNlUGF0aCkpIHtcbiAgICBpbmZvLnBhdGhuYW1lID0gcmVtb3ZlUGF0aFByZWZpeChpbmZvLnBhdGhuYW1lLCBiYXNlUGF0aClcbiAgICBpbmZvLmJhc2VQYXRoID0gYmFzZVBhdGhcbiAgfVxuICBsZXQgcGF0aG5hbWVOb0RhdGFQcmVmaXggPSBpbmZvLnBhdGhuYW1lXG5cbiAgaWYgKFxuICAgIGluZm8ucGF0aG5hbWUuc3RhcnRzV2l0aCgnL19uZXh0L2RhdGEvJykgJiZcbiAgICBpbmZvLnBhdGhuYW1lLmVuZHNXaXRoKCcuanNvbicpXG4gICkge1xuICAgIGNvbnN0IHBhdGhzID0gaW5mby5wYXRobmFtZVxuICAgICAgLnJlcGxhY2UoL15cXC9fbmV4dFxcL2RhdGFcXC8vLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXC5qc29uJC8sICcnKVxuICAgICAgLnNwbGl0KCcvJylcblxuICAgIGNvbnN0IGJ1aWxkSWQgPSBwYXRoc1swXVxuICAgIGluZm8uYnVpbGRJZCA9IGJ1aWxkSWRcbiAgICBwYXRobmFtZU5vRGF0YVByZWZpeCA9XG4gICAgICBwYXRoc1sxXSAhPT0gJ2luZGV4JyA/IGAvJHtwYXRocy5zbGljZSgxKS5qb2luKCcvJyl9YCA6ICcvJ1xuXG4gICAgLy8gdXBkYXRlIHBhdGhuYW1lIHdpdGggbm9ybWFsaXplZCBpZiBlbmFibGVkIGFsdGhvdWdoXG4gICAgLy8gd2UgdXNlIG5vcm1hbGl6ZWQgdG8gcG9wdWxhdGUgbG9jYWxlIGluZm8gc3RpbGxcbiAgICBpZiAob3B0aW9ucy5wYXJzZURhdGEgPT09IHRydWUpIHtcbiAgICAgIGluZm8ucGF0aG5hbWUgPSBwYXRobmFtZU5vRGF0YVByZWZpeFxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHByb3ZpZGVkLCB1c2UgdGhlIGxvY2FsZSByb3V0ZSBub3JtYWxpemVyIHRvIGRldGVjdCB0aGUgbG9jYWxlIGluc3RlYWRcbiAgLy8gb2YgdGhlIGZ1bmN0aW9uIGJlbG93LlxuICBpZiAoaTE4bikge1xuICAgIGxldCByZXN1bHQgPSBvcHRpb25zLmkxOG5Qcm92aWRlclxuICAgICAgPyBvcHRpb25zLmkxOG5Qcm92aWRlci5hbmFseXplKGluZm8ucGF0aG5hbWUpXG4gICAgICA6IG5vcm1hbGl6ZUxvY2FsZVBhdGgoaW5mby5wYXRobmFtZSwgaTE4bi5sb2NhbGVzKVxuXG4gICAgaW5mby5sb2NhbGUgPSByZXN1bHQuZGV0ZWN0ZWRMb2NhbGVcbiAgICBpbmZvLnBhdGhuYW1lID0gcmVzdWx0LnBhdGhuYW1lID8/IGluZm8ucGF0aG5hbWVcblxuICAgIGlmICghcmVzdWx0LmRldGVjdGVkTG9jYWxlICYmIGluZm8uYnVpbGRJZCkge1xuICAgICAgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgICAgPyBvcHRpb25zLmkxOG5Qcm92aWRlci5hbmFseXplKHBhdGhuYW1lTm9EYXRhUHJlZml4KVxuICAgICAgICA6IG5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWVOb0RhdGFQcmVmaXgsIGkxOG4ubG9jYWxlcylcblxuICAgICAgaWYgKHJlc3VsdC5kZXRlY3RlZExvY2FsZSkge1xuICAgICAgICBpbmZvLmxvY2FsZSA9IHJlc3VsdC5kZXRlY3RlZExvY2FsZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gaW5mb1xufVxuIl0sIm5hbWVzIjpbImdldE5leHRQYXRobmFtZUluZm8iLCJwYXRobmFtZSIsIm9wdGlvbnMiLCJiYXNlUGF0aCIsImkxOG4iLCJ0cmFpbGluZ1NsYXNoIiwibmV4dENvbmZpZyIsImluZm8iLCJlbmRzV2l0aCIsInBhdGhIYXNQcmVmaXgiLCJyZW1vdmVQYXRoUHJlZml4IiwicGF0aG5hbWVOb0RhdGFQcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aHMiLCJyZXBsYWNlIiwic3BsaXQiLCJidWlsZElkIiwic2xpY2UiLCJqb2luIiwicGFyc2VEYXRhIiwicmVzdWx0IiwiaTE4blByb3ZpZGVyIiwiYW5hbHl6ZSIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJsb2NhbGVzIiwibG9jYWxlIiwiZGV0ZWN0ZWRMb2NhbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n// Note: The pattern [\\w-]+-Google captures all Google crawlers with \"-Google\" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)\n// as well as crawlers starting with \"Google-\" (e.g., Google-PageRenderer, Google-InspectionTool)\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaHRtbC1ib3RzLmpzIiwibWFwcGluZ3MiOiJBQUFBLDZHQUE2RztBQUM3RyxzS0FBc0s7QUFDdEssa0pBQWtKO0FBQ2xKLGlHQUFpRzs7Ozs7MERBQ3BGQTs7O2VBQUFBOzs7QUFBTixNQUFNQSx5QkFDWCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9odG1sLWJvdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyByZWdleCBjb250YWlucyB0aGUgYm90cyB0aGF0IHdlIG5lZWQgdG8gZG8gYSBibG9ja2luZyByZW5kZXIgZm9yIGFuZCBjYW4ndCBzYWZlbHkgc3RyZWFtIHRoZSByZXNwb25zZVxuLy8gZHVlIHRvIGhvdyB0aGV5IHBhcnNlIHRoZSBET00uIEZvciBleGFtcGxlLCB0aGV5IG1pZ2h0IGV4cGxpY2l0bHkgY2hlY2sgZm9yIG1ldGFkYXRhIGluIHRoZSBgaGVhZGAgdGFnLCBzbyB3ZSBjYW4ndCBzdHJlYW0gbWV0YWRhdGEgdGFncyBhZnRlciB0aGUgYGhlYWRgIHdhcyBzZW50LlxuLy8gTm90ZTogVGhlIHBhdHRlcm4gW1xcdy1dKy1Hb29nbGUgY2FwdHVyZXMgYWxsIEdvb2dsZSBjcmF3bGVycyB3aXRoIFwiLUdvb2dsZVwiIHN1ZmZpeCAoZS5nLiwgTWVkaWFwYXJ0bmVycy1Hb29nbGUsIEFkc0JvdC1Hb29nbGUsIFN0b3JlYm90LUdvb2dsZSlcbi8vIGFzIHdlbGwgYXMgY3Jhd2xlcnMgc3RhcnRpbmcgd2l0aCBcIkdvb2dsZS1cIiAoZS5nLiwgR29vZ2xlLVBhZ2VSZW5kZXJlciwgR29vZ2xlLUluc3BlY3Rpb25Ub29sKVxuZXhwb3J0IGNvbnN0IEhUTUxfTElNSVRFRF9CT1RfVUFfUkUgPVxuICAvW1xcdy1dKy1Hb29nbGV8R29vZ2xlLVtcXHctXSt8Q2hyb21lLUxpZ2h0aG91c2V8U2x1cnB8RHVja0R1Y2tCb3R8YmFpZHVzcGlkZXJ8eWFuZGV4fHNvZ291fGJpdGx5Ym90fHR1bWJscnx2a1NoYXJlfHF1b3JhIGxpbmsgcHJldmlld3xyZWRkaXRib3R8aWFfYXJjaGl2ZXJ8QmluZ2JvdHxCaW5nUHJldmlld3xhcHBsZWJvdHxmYWNlYm9va2V4dGVybmFsaGl0fGZhY2Vib29rY2F0YWxvZ3xUd2l0dGVyYm90fExpbmtlZEluQm90fFNsYWNrYm90fERpc2NvcmRib3R8V2hhdHNBcHB8U2t5cGVVcmlQcmV2aWV3fFlldGl8Z29vZ2xld2VibGlnaHQvaVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return _sortedroutes.getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQTBCQSxxQkFBcUI7ZUFBckJBLGNBQUFBLHFCQUFxQjs7SUFBdENDLGVBQWU7ZUFBZkEsY0FBQUEsZUFBZTs7SUFDZkMsY0FBYztlQUFkQSxXQUFBQSxjQUFjOzs7MENBRGdDO3VDQUN4QiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBnZXRTb3J0ZWRSb3V0ZXMsIGdldFNvcnRlZFJvdXRlT2JqZWN0cyB9IGZyb20gJy4vc29ydGVkLXJvdXRlcydcbmV4cG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi9pcy1keW5hbWljJ1xuIl0sIm5hbWVzIjpbImdldFNvcnRlZFJvdXRlT2JqZWN0cyIsImdldFNvcnRlZFJvdXRlcyIsImlzRHluYW1pY1JvdXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = \"/\" + interceptedRoute;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJjZXB0aW9uLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFHYUEsMEJBQTBCO2VBQTFCQTs7SUFrQkdDLG1DQUFtQztlQUFuQ0E7O0lBWEFDLDBCQUEwQjtlQUExQkE7OztzQ0FWaUI7QUFHMUIsTUFBTUYsNkJBQTZCO0lBQ3hDO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRSwyQkFBMkJDLElBQVk7SUFDckQsd0NBQXdDO0lBQ3hDLE9BQ0VBLEtBQ0dDLEtBQUssQ0FBQyxLQUNOQyxJQUFJLENBQUMsQ0FBQ0MsVUFDTE4sMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRCxTQUN0REU7QUFFWjtBQUVPLFNBQVNSLG9DQUFvQ0UsSUFBWTtJQUM5RCxJQUFJTyxtQkFDRkMsUUFDQUM7SUFFRixLQUFLLE1BQU1OLFdBQVdILEtBQUtDLEtBQUssQ0FBQyxLQUFNO1FBQ3JDTyxTQUFTWCwyQkFBMkJLLElBQUksQ0FBQyxDQUFDRSxJQUFNRCxRQUFRRSxVQUFVLENBQUNEO1FBQ25FLElBQUlJLFFBQVE7O1lBQ1QsQ0FBQ0QsbUJBQW1CRSxpQkFBaUIsR0FBR1QsS0FBS0MsS0FBSyxDQUFDTyxRQUFRO1lBQzVEO1FBQ0Y7SUFDRjtJQUVBLElBQUksQ0FBQ0QscUJBQXFCLENBQUNDLFVBQVUsQ0FBQ0Msa0JBQWtCO1FBQ3RELE1BQU0scUJBRUwsQ0FGSyxJQUFJQyxNQUNQLGlDQUE4QlYsT0FBSyxzRkFEaEM7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUFPLG9CQUFvQkksQ0FBQUEsR0FBQUEsVUFBQUEsZ0JBQUFBLEVBQWlCSixtQkFBbUIsaURBQWlEOztJQUV6RyxPQUFRQztRQUNOLEtBQUs7WUFDSCxvSUFBb0k7WUFDcEksSUFBSUQsc0JBQXNCLEtBQUs7Z0JBQzdCRSxtQkFBb0IsTUFBR0E7WUFDekIsT0FBTztnQkFDTEEsbUJBQW1CRixvQkFBb0IsTUFBTUU7WUFDL0M7WUFDQTtRQUNGLEtBQUs7WUFDSCx1SEFBdUg7WUFDdkgsSUFBSUYsc0JBQXNCLEtBQUs7Z0JBQzdCLE1BQU0scUJBRUwsQ0FGSyxJQUFJRyxNQUNQLGlDQUE4QlYsT0FBSyxpRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUNBUyxtQkFBbUJGLGtCQUNoQk4sS0FBSyxDQUFDLEtBQ05XLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FDVkMsTUFBTSxDQUFDSixrQkFDUEssSUFBSSxDQUFDO1lBQ1I7UUFDRixLQUFLO1lBQ0gsa0lBQWtJO1lBQ2xJTCxtQkFBbUIsTUFBTUE7WUFDekI7UUFDRixLQUFLO1lBQ0gsaUlBQWlJO1lBRWpJLE1BQU1NLHlCQUF5QlIsa0JBQWtCTixLQUFLLENBQUM7WUFDdkQsSUFBSWMsdUJBQXVCQyxNQUFNLElBQUksR0FBRztnQkFDdEMsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1AsaUNBQThCVixPQUFLLG9FQURoQzsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGO1lBRUFTLG1CQUFtQk0sdUJBQ2hCSCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0Y7WUFDRSxNQUFNLHFCQUF5QyxDQUF6QyxJQUFJSixNQUFNLGlDQUFWO3VCQUFBOzRCQUFBOzhCQUFBO1lBQXdDO0lBQ2xEO0lBRUEsT0FBTztRQUFFSDtRQUFtQkU7SUFBaUI7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJjZXB0aW9uLXJvdXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVBcHBQYXRoIH0gZnJvbSAnLi9hcHAtcGF0aHMnXG5cbi8vIG9yZGVyIG1hdHRlcnMgaGVyZSwgdGhlIGZpcnN0IG1hdGNoIHdpbGwgYmUgdXNlZFxuZXhwb3J0IGNvbnN0IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTID0gW1xuICAnKC4uKSguLiknLFxuICAnKC4pJyxcbiAgJyguLiknLFxuICAnKC4uLiknLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIFRPRE8tQVBQOiBhZGQgbW9yZSBzZXJpb3VzIHZhbGlkYXRpb25cbiAgcmV0dXJuIChcbiAgICBwYXRoXG4gICAgICAuc3BsaXQoJy8nKVxuICAgICAgLmZpbmQoKHNlZ21lbnQpID0+XG4gICAgICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pID0+IHNlZ21lbnQuc3RhcnRzV2l0aChtKSlcbiAgICAgICkgIT09IHVuZGVmaW5lZFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbihwYXRoOiBzdHJpbmcpIHtcbiAgbGV0IGludGVyY2VwdGluZ1JvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgbWFya2VyOiAodHlwZW9mIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTKVtudW1iZXJdIHwgdW5kZWZpbmVkLFxuICAgIGludGVyY2VwdGVkUm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIGZvciAoY29uc3Qgc2VnbWVudCBvZiBwYXRoLnNwbGl0KCcvJykpIHtcbiAgICBtYXJrZXIgPSBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgaWYgKG1hcmtlcikge1xuICAgICAgO1tpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZV0gPSBwYXRoLnNwbGl0KG1hcmtlciwgMilcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKCFpbnRlcmNlcHRpbmdSb3V0ZSB8fCAhbWFya2VyIHx8ICFpbnRlcmNlcHRlZFJvdXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke3BhdGh9LiBNdXN0IGJlIGluIHRoZSBmb3JtYXQgLzxpbnRlcmNlcHRpbmcgcm91dGU+LyguLnwuLi58Li4pKC4uKS88aW50ZXJjZXB0ZWQgcm91dGU+YFxuICAgIClcbiAgfVxuXG4gIGludGVyY2VwdGluZ1JvdXRlID0gbm9ybWFsaXplQXBwUGF0aChpbnRlcmNlcHRpbmdSb3V0ZSkgLy8gbm9ybWFsaXplIHRoZSBwYXRoLCBlLmcuIC8oYmxvZykvZmVlZCAtPiAvZmVlZFxuXG4gIHN3aXRjaCAobWFya2VyKSB7XG4gICAgY2FzZSAnKC4pJzpcbiAgICAgIC8vICguKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggd2l0aCBzaWJsaW5nIHJvdXRlcywgc28gd2UganVzdCBuZWVkIHRvIGFwcGVuZCB0aGUgaW50ZXJjZXB0ZWQgcm91dGUgdG8gdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgaWYgKGludGVyY2VwdGluZ1JvdXRlID09PSAnLycpIHtcbiAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGAvJHtpbnRlcmNlcHRlZFJvdXRlfWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZSArICcvJyArIGludGVyY2VwdGVkUm91dGVcbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnKC4uKSc6XG4gICAgICAvLyAoLi4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCBhdCBvbmUgbGV2ZWwgdXAsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgaWYgKGludGVyY2VwdGluZ1JvdXRlID09PSAnLycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCwgdXNlICguKSBpbnN0ZWFkLmBcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC5zbGljZSgwLCAtMSlcbiAgICAgICAgLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKVxuICAgICAgICAuam9pbignLycpXG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLi4pJzpcbiAgICAgIC8vICguLi4pIHdpbGwgbWF0Y2ggdGhlIHJvdXRlIHNlZ21lbnQgaW4gdGhlIHJvb3QgZGlyZWN0b3J5LCBzbyB3ZSBuZWVkIHRvIHVzZSB0aGUgcm9vdCBkaXJlY3RvcnkgdG8gcHJlcGVuZCB0aGUgaW50ZXJjZXB0ZWQgcm91dGVcbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLikoLi4pJzpcbiAgICAgIC8vICguLikoLi4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCBhdCB0d28gbGV2ZWxzIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCB0d28gc2VnbWVudHMgb2YgdGhlIGludGVyY2VwdGluZyByb3V0ZVxuXG4gICAgICBjb25zdCBzcGxpdEludGVyY2VwdGluZ1JvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUuc3BsaXQoJy8nKVxuICAgICAgaWYgKHNwbGl0SW50ZXJjZXB0aW5nUm91dGUubGVuZ3RoIDw9IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwgb3Igb25lIGxldmVsIHVwLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc2xpY2UoMCwgLTIpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IHVuZXhwZWN0ZWQgbWFya2VyJylcbiAgfVxuXG4gIHJldHVybiB7IGludGVyY2VwdGluZ1JvdXRlLCBpbnRlcmNlcHRlZFJvdXRlIH1cbn1cbiJdLCJuYW1lcyI6WyJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uIiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJwYXRoIiwic3BsaXQiLCJmaW5kIiwic2VnbWVudCIsIm0iLCJzdGFydHNXaXRoIiwidW5kZWZpbmVkIiwiaW50ZXJjZXB0aW5nUm91dGUiLCJtYXJrZXIiLCJpbnRlcmNlcHRlZFJvdXRlIiwiRXJyb3IiLCJub3JtYWxpemVBcHBQYXRoIiwic2xpY2UiLCJjb25jYXQiLCJqb2luIiwic3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSIsImxlbmd0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\n// This regex specifically matches \"Googlebot\" but NOT \"Mediapartners-Google\", \"AdsBot-Google\", etc.\nconst HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVVTQSxzQkFBc0I7ZUFBdEJBLFVBQUFBLHNCQUFzQjs7SUFGbEJDLDZCQUE2QjtlQUE3QkE7O0lBZ0JHQyxVQUFVO2VBQVZBOztJQUpBQyxLQUFLO2VBQUxBOzs7c0NBcEJ1QjtBQUV2QyxtRUFBbUU7QUFDbkUseUZBQXlGO0FBQ3pGLDRGQUE0RjtBQUM1RixvR0FBb0c7QUFDcEcsTUFBTUMsNkJBQTZCO0FBRTVCLE1BQU1ILGdDQUFnQ0QsVUFBQUEsc0JBQXNCLENBQUNLLE1BQU07QUFJMUUsU0FBU0MsV0FBV0MsU0FBaUI7SUFDbkMsT0FBT0gsMkJBQTJCSSxJQUFJLENBQUNEO0FBQ3pDO0FBRUEsU0FBU0UsbUJBQW1CRixTQUFpQjtJQUMzQyxPQUFPUCxVQUFBQSxzQkFBc0IsQ0FBQ1EsSUFBSSxDQUFDRDtBQUNyQztBQUVPLFNBQVNKLE1BQU1JLFNBQWlCO0lBQ3JDLE9BQU9ELFdBQVdDLGNBQWNFLG1CQUFtQkY7QUFDckQ7QUFFTyxTQUFTTCxXQUFXSyxTQUFpQjtJQUMxQyxJQUFJRCxXQUFXQyxZQUFZO1FBQ3pCLE9BQU87SUFDVDtJQUNBLElBQUlFLG1CQUFtQkYsWUFBWTtRQUNqQyxPQUFPO0lBQ1Q7SUFDQSxPQUFPRztBQUNUIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH0gZnJvbSAnLi9odG1sLWJvdHMnXG5cbi8vIEJvdCBjcmF3bGVyIHRoYXQgd2lsbCBzcGluIHVwIGEgaGVhZGxlc3MgYnJvd3NlciBhbmQgZXhlY3V0ZSBKUy5cbi8vIE9ubHkgdGhlIG1haW4gR29vZ2xlYm90IHNlYXJjaCBjcmF3bGVyIGV4ZWN1dGVzIEphdmFTY3JpcHQsIG5vdCBvdGhlciBHb29nbGUgY3Jhd2xlcnMuXG4vLyB4LXJlZjogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vc2VhcmNoL2RvY3MvY3Jhd2xpbmctaW5kZXhpbmcvZ29vZ2xlLWNvbW1vbi1jcmF3bGVyc1xuLy8gVGhpcyByZWdleCBzcGVjaWZpY2FsbHkgbWF0Y2hlcyBcIkdvb2dsZWJvdFwiIGJ1dCBOT1QgXCJNZWRpYXBhcnRuZXJzLUdvb2dsZVwiLCBcIkFkc0JvdC1Hb29nbGVcIiwgZXRjLlxuY29uc3QgSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUgPSAvR29vZ2xlYm90KD8hLSl8R29vZ2xlYm90JC9pXG5cbmV4cG9ydCBjb25zdCBIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyA9IEhUTUxfTElNSVRFRF9CT1RfVUFfUkUuc291cmNlXG5cbmV4cG9ydCB7IEhUTUxfTElNSVRFRF9CT1RfVUFfUkUgfVxuXG5mdW5jdGlvbiBpc0RvbUJvdFVBKHVzZXJBZ2VudDogc3RyaW5nKSB7XG4gIHJldHVybiBIRUFETEVTU19CUk9XU0VSX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZnVuY3Rpb24gaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudDogc3RyaW5nKSB7XG4gIHJldHVybiBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnRlc3QodXNlckFnZW50KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCb3QodXNlckFnZW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzRG9tQm90VUEodXNlckFnZW50KSB8fCBpc0h0bWxMaW1pdGVkQm90VUEodXNlckFnZW50KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm90VHlwZSh1c2VyQWdlbnQ6IHN0cmluZyk6ICdkb20nIHwgJ2h0bWwnIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGlzRG9tQm90VUEodXNlckFnZW50KSkge1xuICAgIHJldHVybiAnZG9tJ1xuICB9XG4gIGlmIChpc0h0bWxMaW1pdGVkQm90VUEodXNlckFnZW50KSkge1xuICAgIHJldHVybiAnaHRtbCdcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG4iXSwibmFtZXMiOlsiSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSIsIkhUTUxfTElNSVRFRF9CT1RfVUFfUkVfU1RSSU5HIiwiZ2V0Qm90VHlwZSIsImlzQm90IiwiSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUiLCJzb3VyY2UiLCJpc0RvbUJvdFVBIiwidXNlckFnZW50IiwidGVzdCIsImlzSHRtbExpbWl0ZWRCb3RVQSIsInVuZGVmaW5lZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\n// Identify /.*[param].*/ in route string\nconst TEST_ROUTE = /\\/[^/]*\\[[^/]+\\][^/]*(?=\\/|$)/;\n// Identify /[param]/ in route string\nconst TEST_STRICT_ROUTE = /\\/\\[[^/]+\\](?=\\/|$)/;\nfunction isDynamicRoute(route, strict) {\n if (strict === void 0) strict = true;\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n if (strict) {\n return TEST_STRICT_ROUTE.test(route);\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQWtCZ0JBOzs7ZUFBQUE7OztnREFmVDtBQUVQLHlDQUF5QztBQUN6QyxNQUFNQyxhQUFhO0FBRW5CLHFDQUFxQztBQUNyQyxNQUFNQyxvQkFBb0I7QUFTbkIsU0FBU0YsZUFBZUcsS0FBYSxFQUFFQyxNQUFzQjtJQUF0QkEsSUFBQUEsV0FBQUEsS0FBQUEsR0FBQUEsU0FBa0I7SUFDOUQsSUFBSUMsQ0FBQUEsR0FBQUEsb0JBQUFBLDBCQUFBQSxFQUEyQkYsUUFBUTtRQUNyQ0EsUUFBUUcsQ0FBQUEsR0FBQUEsb0JBQUFBLG1DQUFBQSxFQUFvQ0gsT0FBT0ksZ0JBQWdCO0lBQ3JFO0lBRUEsSUFBSUgsUUFBUTtRQUNWLE9BQU9GLGtCQUFrQk0sSUFBSSxDQUFDTDtJQUNoQztJQUVBLE9BQU9GLFdBQVdPLElBQUksQ0FBQ0w7QUFDekIiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbixcbiAgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgsXG59IGZyb20gJy4vaW50ZXJjZXB0aW9uLXJvdXRlcydcblxuLy8gSWRlbnRpZnkgLy4qW3BhcmFtXS4qLyBpbiByb3V0ZSBzdHJpbmdcbmNvbnN0IFRFU1RfUk9VVEUgPSAvXFwvW14vXSpcXFtbXi9dK1xcXVteL10qKD89XFwvfCQpL1xuXG4vLyBJZGVudGlmeSAvW3BhcmFtXS8gaW4gcm91dGUgc3RyaW5nXG5jb25zdCBURVNUX1NUUklDVF9ST1VURSA9IC9cXC9cXFtbXi9dK1xcXSg/PVxcL3wkKS9cblxuLyoqXG4gKiBDaGVjayBpZiBhIHJvdXRlIGlzIGR5bmFtaWMuXG4gKlxuICogQHBhcmFtIHJvdXRlIC0gVGhlIHJvdXRlIHRvIGNoZWNrLlxuICogQHBhcmFtIHN0cmljdCAtIFdoZXRoZXIgdG8gdXNlIHN0cmljdCBtb2RlIHdoaWNoIHByb2hpYml0cyBzZWdtZW50cyB3aXRoIHByZWZpeGVzL3N1ZmZpeGVzIChkZWZhdWx0OiB0cnVlKS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJvdXRlIGlzIGR5bmFtaWMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNSb3V0ZShyb3V0ZTogc3RyaW5nLCBzdHJpY3Q6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gIGlmIChpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aChyb3V0ZSkpIHtcbiAgICByb3V0ZSA9IGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uKHJvdXRlKS5pbnRlcmNlcHRlZFJvdXRlXG4gIH1cblxuICBpZiAoc3RyaWN0KSB7XG4gICAgcmV0dXJuIFRFU1RfU1RSSUNUX1JPVVRFLnRlc3Qocm91dGUpXG4gIH1cblxuICByZXR1cm4gVEVTVF9ST1VURS50ZXN0KHJvdXRlKVxufVxuIl0sIm5hbWVzIjpbImlzRHluYW1pY1JvdXRlIiwiVEVTVF9ST1VURSIsIlRFU1RfU1RSSUNUX1JPVVRFIiwicm91dGUiLCJzdHJpY3QiLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsImV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsInRlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n} //# sourceMappingURL=parse-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7OzZDQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxVQUFVQyxJQUFZO0lBQ3BDLE1BQU1DLFlBQVlELEtBQUtFLE9BQU8sQ0FBQztJQUMvQixNQUFNQyxhQUFhSCxLQUFLRSxPQUFPLENBQUM7SUFDaEMsTUFBTUUsV0FBV0QsYUFBYSxDQUFDLEtBQU1GLENBQUFBLFlBQVksS0FBS0UsYUFBYUYsU0FBQUEsQ0FBUTtJQUUzRSxJQUFJRyxZQUFZSCxZQUFZLENBQUMsR0FBRztRQUM5QixPQUFPO1lBQ0xJLFVBQVVMLEtBQUtNLFNBQVMsQ0FBQyxHQUFHRixXQUFXRCxhQUFhRjtZQUNwRE0sT0FBT0gsV0FDSEosS0FBS00sU0FBUyxDQUFDSCxZQUFZRixZQUFZLENBQUMsSUFBSUEsWUFBWU8sYUFDeEQ7WUFDSkMsTUFBTVIsWUFBWSxDQUFDLElBQUlELEtBQUtVLEtBQUssQ0FBQ1QsYUFBYTtRQUNqRDtJQUNGO0lBRUEsT0FBTztRQUFFSSxVQUFVTDtRQUFNTyxPQUFPO1FBQUlFLE1BQU07SUFBRztBQUMvQyIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l2ZW4gYSBwYXRoIHRoaXMgZnVuY3Rpb24gd2lsbCBmaW5kIHRoZSBwYXRobmFtZSwgcXVlcnkgYW5kIGhhc2ggYW5kIHJldHVyblxuICogdGhlbS4gVGhpcyBpcyB1c2VmdWwgdG8gcGFyc2UgZnVsbCBwYXRocyBvbiB0aGUgY2xpZW50IHNpZGUuXG4gKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gcGFyc2UgZS5nLiAvZm9vL2Jhcj9pZD0xI2hhc2hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKCcjJylcbiAgY29uc3QgcXVlcnlJbmRleCA9IHBhdGguaW5kZXhPZignPycpXG4gIGNvbnN0IGhhc1F1ZXJ5ID0gcXVlcnlJbmRleCA+IC0xICYmIChoYXNoSW5kZXggPCAwIHx8IHF1ZXJ5SW5kZXggPCBoYXNoSW5kZXgpXG5cbiAgaWYgKGhhc1F1ZXJ5IHx8IGhhc2hJbmRleCA+IC0xKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGhuYW1lOiBwYXRoLnN1YnN0cmluZygwLCBoYXNRdWVyeSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpLFxuICAgICAgcXVlcnk6IGhhc1F1ZXJ5XG4gICAgICAgID8gcGF0aC5zdWJzdHJpbmcocXVlcnlJbmRleCwgaGFzaEluZGV4ID4gLTEgPyBoYXNoSW5kZXggOiB1bmRlZmluZWQpXG4gICAgICAgIDogJycsXG4gICAgICBoYXNoOiBoYXNoSW5kZXggPiAtMSA/IHBhdGguc2xpY2UoaGFzaEluZGV4KSA6ICcnLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHBhdGhuYW1lOiBwYXRoLCBxdWVyeTogJycsIGhhc2g6ICcnIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVBhdGgiLCJwYXRoIiwiaGFzaEluZGV4IiwiaW5kZXhPZiIsInF1ZXJ5SW5kZXgiLCJoYXNRdWVyeSIsInBhdGhuYW1lIiwic3Vic3RyaW5nIiwicXVlcnkiLCJ1bmRlZmluZWQiLCJoYXNoIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n} //# sourceMappingURL=path-has-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBU2dCQTs7O2VBQUFBOzs7dUNBVFU7QUFTbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFjO0lBQ3hELElBQUksT0FBT0QsU0FBUyxVQUFVO1FBQzVCLE9BQU87SUFDVDtJQUVBLE1BQU0sRUFBRUUsUUFBUSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVIO0lBQy9CLE9BQU9FLGFBQWFELFVBQVVDLFNBQVNFLFVBQVUsQ0FBQ0gsU0FBUztBQUM3RCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXRoLWhhcy1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIHBhdGggc3RhcnRzIHdpdGggYSBnaXZlbiBwcmVmaXguIEl0IGVuc3VyZXMgaXQgbWF0Y2hlc1xuICogZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnMuIGUuZy4gcHJlZml4IC9kb2NzIHNob3VsZCByZXBsYWNlXG4gKiBmb3IgL2RvY3MsIC9kb2NzLywgL2RvY3MvYSBidXQgbm90IC9kb2Nzc3NcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHBhcmFtIHByZWZpeCBUaGUgcHJlZml4IHRvIGNoZWNrIGFnYWluc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRoSGFzUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4OiBzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBwYXRobmFtZSA9PT0gcHJlZml4IHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgocHJlZml4ICsgJy8nKVxufVxuIl0sIm5hbWVzIjpbInBhdGhIYXNQcmVmaXgiLCJwYXRoIiwicHJlZml4IiwicGF0aG5hbWUiLCJwYXJzZVBhdGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZ0RnQkEsTUFBTTtlQUFOQTs7SUE5Q0FDLHNCQUFzQjtlQUF0QkE7O0lBZ0NBQyxzQkFBc0I7ZUFBdEJBOzs7QUFoQ1QsU0FBU0QsdUJBQ2RFLFlBQTZCO0lBRTdCLE1BQU1DLFFBQXdCLENBQUM7SUFDL0IsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUgsYUFBYUksT0FBTyxHQUFJO1FBQ2pELE1BQU1DLFdBQVdKLEtBQUssQ0FBQ0MsSUFBSTtRQUMzQixJQUFJLE9BQU9HLGFBQWEsYUFBYTtZQUNuQ0osS0FBSyxDQUFDQyxJQUFJLEdBQUdDO1FBQ2YsT0FBTyxJQUFJRyxNQUFNQyxPQUFPLENBQUNGLFdBQVc7WUFDbENBLFNBQVNHLElBQUksQ0FBQ0w7UUFDaEIsT0FBTztZQUNMRixLQUFLLENBQUNDLElBQUksR0FBRztnQkFBQ0c7Z0JBQVVGO2FBQU07UUFDaEM7SUFDRjtJQUNBLE9BQU9GO0FBQ1Q7QUFFQSxTQUFTUSx1QkFBdUJDLEtBQWM7SUFDNUMsSUFBSSxPQUFPQSxVQUFVLFVBQVU7UUFDN0IsT0FBT0E7SUFDVDtJQUVBLElBQ0csT0FBT0EsVUFBVSxZQUFZLENBQUNDLE1BQU1ELFVBQ3JDLE9BQU9BLFVBQVUsV0FDakI7UUFDQSxPQUFPRSxPQUFPRjtJQUNoQixPQUFPO1FBQ0wsT0FBTztJQUNUO0FBQ0Y7QUFFTyxTQUFTWCx1QkFBdUJFLEtBQXFCO0lBQzFELE1BQU1ELGVBQWUsSUFBSWE7SUFDekIsS0FBSyxNQUFNLENBQUNYLEtBQUtDLE1BQU0sSUFBSVcsT0FBT1YsT0FBTyxDQUFDSCxPQUFRO1FBQ2hELElBQUlLLE1BQU1DLE9BQU8sQ0FBQ0osUUFBUTtZQUN4QixLQUFLLE1BQU1ZLFFBQVFaLE1BQU87Z0JBQ3hCSCxhQUFhZ0IsTUFBTSxDQUFDZCxLQUFLTyx1QkFBdUJNO1lBQ2xEO1FBQ0YsT0FBTztZQUNMZixhQUFhaUIsR0FBRyxDQUFDZixLQUFLTyx1QkFBdUJOO1FBQy9DO0lBQ0Y7SUFDQSxPQUFPSDtBQUNUO0FBRU8sU0FBU0gsT0FDZHFCLE1BQXVCO0lBQ3ZCLGlDQUFHQyxtQkFBSDtRQUFHQSxnQkFBQUEsQ0FBSCwyQkFBc0M7O0lBRXRDLEtBQUssTUFBTW5CLGdCQUFnQm1CLGlCQUFrQjtRQUMzQyxLQUFLLE1BQU1qQixPQUFPRixhQUFhb0IsSUFBSSxHQUFJO1lBQ3JDRixPQUFPRyxNQUFNLENBQUNuQjtRQUNoQjtRQUVBLEtBQUssTUFBTSxDQUFDQSxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtZQUNqRGMsT0FBT0YsTUFBTSxDQUFDZCxLQUFLQztRQUNyQjtJQUNGO0lBRUEsT0FBT2U7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KFxuICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtc1xuKTogUGFyc2VkVXJsUXVlcnkge1xuICBjb25zdCBxdWVyeTogUGFyc2VkVXJsUXVlcnkgPSB7fVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzZWFyY2hQYXJhbXMuZW50cmllcygpKSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBxdWVyeVtrZXldXG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZykpIHtcbiAgICAgIGV4aXN0aW5nLnB1c2godmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXJ5W2tleV0gPSBbZXhpc3RpbmcsIHZhbHVlXVxuICAgIH1cbiAgfVxuICByZXR1cm4gcXVlcnlcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5VXJsUXVlcnlQYXJhbShwYXJhbTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcmFtXG4gIH1cblxuICBpZiAoXG4gICAgKHR5cGVvZiBwYXJhbSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHBhcmFtKSkgfHxcbiAgICB0eXBlb2YgcGFyYW0gPT09ICdib29sZWFuJ1xuICApIHtcbiAgICByZXR1cm4gU3RyaW5nKHBhcmFtKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiAnJ1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeSk6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhxdWVyeSkpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgc3RyaW5naWZ5VXJsUXVlcnlQYXJhbShpdGVtKSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2VhcmNoUGFyYW1zLnNldChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0odmFsdWUpKVxuICAgIH1cbiAgfVxuICByZXR1cm4gc2VhcmNoUGFyYW1zXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ24oXG4gIHRhcmdldDogVVJMU2VhcmNoUGFyYW1zLFxuICAuLi5zZWFyY2hQYXJhbXNMaXN0OiBVUkxTZWFyY2hQYXJhbXNbXVxuKTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgZm9yIChjb25zdCBzZWFyY2hQYXJhbXMgb2Ygc2VhcmNoUGFyYW1zTGlzdCkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHNlYXJjaFBhcmFtcy5rZXlzKCkpIHtcbiAgICAgIHRhcmdldC5kZWxldGUoa2V5KVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHNlYXJjaFBhcmFtcy5lbnRyaWVzKCkpIHtcbiAgICAgIHRhcmdldC5hcHBlbmQoa2V5LCB2YWx1ZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0XG59XG4iXSwibmFtZXMiOlsiYXNzaWduIiwic2VhcmNoUGFyYW1zVG9VcmxRdWVyeSIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJxdWVyeSIsImtleSIsInZhbHVlIiwiZW50cmllcyIsImV4aXN0aW5nIiwiQXJyYXkiLCJpc0FycmF5IiwicHVzaCIsInN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0iLCJwYXJhbSIsImlzTmFOIiwiU3RyaW5nIiwiVVJMU2VhcmNoUGFyYW1zIiwiT2JqZWN0IiwiaXRlbSIsImFwcGVuZCIsInNldCIsInRhcmdldCIsInNlYXJjaFBhcmFtc0xpc3QiLCJrZXlzIiwiZGVsZXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n} //# sourceMappingURL=remove-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBVWdCQTs7O2VBQUFBOzs7MkNBVmM7QUFVdkIsU0FBU0EsaUJBQWlCQyxJQUFZLEVBQUVDLE1BQWM7SUFDM0QseUVBQXlFO0lBQ3pFLDBFQUEwRTtJQUMxRSxrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLG9CQUFvQjtJQUNwQixFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix5QkFBeUI7SUFDekIsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixNQUFNQyxTQUFTO1FBQ2hDLE9BQU9EO0lBQ1Q7SUFFQSwrQ0FBK0M7SUFDL0MsTUFBTUcsZ0JBQWdCSCxLQUFLSSxLQUFLLENBQUNILE9BQU9JLE1BQU07SUFFOUMsMkVBQTJFO0lBQzNFLElBQUlGLGNBQWNHLFVBQVUsQ0FBQyxNQUFNO1FBQ2pDLE9BQU9IO0lBQ1Q7SUFFQSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELE9BQVEsTUFBR0E7QUFDYiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtcGF0aC1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuXG4vKipcbiAqIEdpdmVuIGEgcGF0aCBhbmQgYSBwcmVmaXggaXQgd2lsbCByZW1vdmUgdGhlIHByZWZpeCB3aGVuIGl0IGV4aXN0cyBpbiB0aGVcbiAqIGdpdmVuIHBhdGguIEl0IGVuc3VyZXMgaXQgbWF0Y2hlcyBleGFjdGx5IHdpdGhvdXQgY29udGFpbmluZyBleHRyYSBjaGFyc1xuICogYW5kIGlmIHRoZSBwcmVmaXggaXMgbm90IHRoZXJlIGl0IHdpbGwgYmUgbm9vcC5cbiAqXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byByZW1vdmUgdGhlIHByZWZpeCBmcm9tLlxuICogQHBhcmFtIHByZWZpeCBUaGUgcHJlZml4IHRvIGJlIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBJZiB0aGUgcGF0aCBkb2Vzbid0IHN0YXJ0IHdpdGggdGhlIHByZWZpeCB3ZSBjYW4gcmV0dXJuIGl0IGFzIGlzLiBUaGlzXG4gIC8vIHByb3RlY3RzIHVzIGZyb20gc2l0dWF0aW9ucyB3aGVyZSB0aGUgcHJlZml4IGlzIGEgc3Vic3RyaW5nIG9mIHRoZSBwYXRoXG4gIC8vIHByZWZpeCBzdWNoIGFzOlxuICAvL1xuICAvLyBGb3IgcHJlZml4OiAvYmxvZ1xuICAvL1xuICAvLyAgIC9ibG9nIC0+IHRydWVcbiAgLy8gICAvYmxvZy8gLT4gdHJ1ZVxuICAvLyAgIC9ibG9nLzEgLT4gdHJ1ZVxuICAvLyAgIC9ibG9nZ2luZyAtPiBmYWxzZVxuICAvLyAgIC9ibG9nZ2luZy8gLT4gZmFsc2VcbiAgLy8gICAvYmxvZ2dpbmcvMSAtPiBmYWxzZVxuICBpZiAoIXBhdGhIYXNQcmVmaXgocGF0aCwgcHJlZml4KSkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHByZWZpeCBmcm9tIHRoZSBwYXRoIHZpYSBzbGljaW5nLlxuICBjb25zdCB3aXRob3V0UHJlZml4ID0gcGF0aC5zbGljZShwcmVmaXgubGVuZ3RoKVxuXG4gIC8vIElmIHRoZSBwYXRoIHdpdGhvdXQgdGhlIHByZWZpeCBzdGFydHMgd2l0aCBhIGAvYCB3ZSBjYW4gcmV0dXJuIGl0IGFzIGlzLlxuICBpZiAod2l0aG91dFByZWZpeC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gd2l0aG91dFByZWZpeFxuICB9XG5cbiAgLy8gSWYgdGhlIHBhdGggd2l0aG91dCB0aGUgcHJlZml4IGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIGAvYCB3ZSBuZWVkIHRvIGFkZCBpdFxuICAvLyBiYWNrIHRvIHRoZSBwYXRoIHRvIG1ha2Ugc3VyZSBpdCdzIGEgdmFsaWQgcGF0aC5cbiAgcmV0dXJuIGAvJHt3aXRob3V0UHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhIYXNQcmVmaXgiLCJ3aXRob3V0UHJlZml4Iiwic2xpY2UiLCJsZW5ndGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, '') || '/';\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Q0FNQzs7Ozt1REFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0Esb0JBQW9CQyxLQUFhO0lBQy9DLE9BQU9BLE1BQU1DLE9BQU8sQ0FBQyxPQUFPLE9BQU87QUFDckMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVtb3ZlcyB0aGUgdHJhaWxpbmcgc2xhc2ggZm9yIGEgZ2l2ZW4gcm91dGUgb3IgcGFnZSBwYXRoLiBQcmVzZXJ2ZXMgdGhlXG4gKiByb290IHBhZ2UuIEV4YW1wbGVzOlxuICogICAtIGAvZm9vL2Jhci9gIC0+IGAvZm9vL2JhcmBcbiAqICAgLSBgL2Zvby9iYXJgIC0+IGAvZm9vL2JhcmBcbiAqICAgLSBgL2AgLT4gYC9gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHJvdXRlLnJlcGxhY2UoL1xcLyQvLCAnJykgfHwgJy8nXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInJvdXRlIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return getSortedRoutes;\n }\n});\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split('/').filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = '/';\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[]'), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[...]'), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[[...]]'), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get('[]')._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === '/' ? '/' : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw Object.defineProperty(new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E458\",\n enumerable: false,\n configurable: true\n });\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get('[...]')._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get('[[...]]')._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw Object.defineProperty(new Error(\"Catch-all must be the last part of the URL.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E392\",\n enumerable: false,\n configurable: true\n });\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith('[') && nextSegment.endsWith(']')) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith('[') && segmentName.endsWith(']')) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith('…')) {\n throw Object.defineProperty(new Error(\"Detected a three-dot character ('…') at ('\" + segmentName + \"'). Did you mean ('...')?\"), \"__NEXT_ERROR_CODE\", {\n value: \"E147\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('...')) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith('[') || segmentName.endsWith(']')) {\n throw Object.defineProperty(new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E421\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('.')) {\n throw Object.defineProperty(new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E288\",\n enumerable: false,\n configurable: true\n });\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw Object.defineProperty(new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E337\",\n enumerable: false,\n configurable: true\n });\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw Object.defineProperty(new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E247\",\n enumerable: false,\n configurable: true\n });\n }\n if (slug.replace(/\\W/g, '') === nextSegment.replace(/\\W/g, '')) {\n throw Object.defineProperty(new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E499\",\n enumerable: false,\n configurable: true\n });\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).'), \"__NEXT_ERROR_CODE\", {\n value: \"E299\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = '[[...]]';\n } else {\n if (this.optionalRestSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E300\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = '[...]';\n }\n } else {\n if (isOptional) {\n throw Object.defineProperty(new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E435\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = '[]';\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n}\nfunction getSortedRouteObjects(objects, getter) {\n // We're assuming here that all the pathnames are unique, that way we can\n // sort the list and use the index as the key.\n const indexes = {};\n const pathnames = [];\n for(let i = 0; i < objects.length; i++){\n const pathname = getter(objects[i]);\n indexes[pathname] = i;\n pathnames[i] = pathname;\n }\n // Sort the pathnames.\n const sorted = getSortedRoutes(pathnames);\n // Map the sorted pathnames back to the original objects using the new sorted\n // index.\n return sorted.map((pathname)=>objects[indexes[pathname]]);\n} //# sourceMappingURL=sorted-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF1T2dCQSxxQkFBcUI7ZUFBckJBOztJQXpCQUMsZUFBZTtlQUFmQTs7O0FBOU1oQixNQUFNQztJQU9KQyxPQUFPQyxPQUFlLEVBQVE7UUFDNUIsSUFBSSxDQUFDQyxPQUFPLENBQUNELFFBQVFFLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUNDLFVBQVUsRUFBRSxFQUFFO0lBQ3ZEO0lBRUFDLFNBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDQyxPQUFPO0lBQ3JCO0lBRVFBLFFBQVFDLE1BQW9CLEVBQVk7UUFBaENBLElBQUFBLFdBQUFBLEtBQUFBLEdBQUFBLFNBQWlCO1FBQy9CLE1BQU1DLGdCQUFnQjtlQUFJLElBQUksQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJO1NBQUcsQ0FBQ0MsSUFBSTtRQUNwRCxJQUFJLElBQUksQ0FBQ0MsUUFBUSxLQUFLLE1BQU07WUFDMUJKLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLE9BQU87UUFDcEQ7UUFDQSxJQUFJLElBQUksQ0FBQ0MsWUFBWSxLQUFLLE1BQU07WUFDOUJQLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFVBQVU7UUFDdkQ7UUFDQSxJQUFJLElBQUksQ0FBQ0Usb0JBQW9CLEtBQUssTUFBTTtZQUN0Q1IsY0FBY0ssTUFBTSxDQUFDTCxjQUFjTSxPQUFPLENBQUMsWUFBWTtRQUN6RDtRQUVBLE1BQU1HLFNBQVNULGNBQ1pVLEdBQUcsQ0FBQyxDQUFDQyxJQUFNLElBQUksQ0FBQ1YsUUFBUSxDQUFDVyxHQUFHLENBQUNELEdBQUliLE9BQU8sQ0FBRSxLQUFFQyxTQUFTWSxJQUFFLE1BQ3ZERSxNQUFNLENBQUMsQ0FBQ0MsTUFBTUMsT0FBUzttQkFBSUQ7bUJBQVNDO2FBQUssRUFBRSxFQUFFO1FB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Q0FBb0M7SUFDcEMsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxnSEFBZ0g7SUFDaEgsNEVBQTRFO0lBQzVFLE1BQU1DLE9BQU8sSUFBSXBEO0lBRWpCLDZGQUE2RjtJQUM3Rm1ELGdCQUFnQk4sT0FBTyxDQUFDLENBQUNRLFdBQWFELEtBQUtuRCxNQUFNLENBQUNvRDtJQUNsRCw0R0FBNEc7SUFDNUcsT0FBT0QsS0FBSzdDLE1BQU07QUFDcEI7QUFLTyxTQUFTVCxzQkFDZHdELE9BQVksRUFDWkMsTUFBMEI7SUFFMUIseUVBQXlFO0lBQ3pFLDhDQUE4QztJQUM5QyxNQUFNQyxVQUFrQyxDQUFDO0lBQ3pDLE1BQU1DLFlBQXNCLEVBQUU7SUFDOUIsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlKLFFBQVFuQixNQUFNLEVBQUV1QixJQUFLO1FBQ3ZDLE1BQU1DLFdBQVdKLE9BQU9ELE9BQU8sQ0FBQ0ksRUFBRTtRQUNsQ0YsT0FBTyxDQUFDRyxTQUFTLEdBQUdEO1FBQ3BCRCxTQUFTLENBQUNDLEVBQUUsR0FBR0M7SUFDakI7SUFFQSxzQkFBc0I7SUFDdEIsTUFBTUMsU0FBUzdELGdCQUFnQjBEO0lBRS9CLDZFQUE2RTtJQUM3RSxTQUFTO0lBQ1QsT0FBT0csT0FBT3hDLEdBQUcsQ0FBQyxDQUFDdUMsV0FBYUwsT0FBTyxDQUFDRSxPQUFPLENBQUNHLFNBQVMsQ0FBQztBQUM1RCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9zb3J0ZWQtcm91dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFVybE5vZGUge1xuICBwbGFjZWhvbGRlcjogYm9vbGVhbiA9IHRydWVcbiAgY2hpbGRyZW46IE1hcDxzdHJpbmcsIFVybE5vZGU+ID0gbmV3IE1hcCgpXG4gIHNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICByZXN0U2x1Z05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIG9wdGlvbmFsUmVzdFNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIGluc2VydCh1cmxQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnNlcnQodXJsUGF0aC5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKSwgW10sIGZhbHNlKVxuICB9XG5cbiAgc21vb3NoKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc21vb3NoKClcbiAgfVxuXG4gIHByaXZhdGUgX3Ntb29zaChwcmVmaXg6IHN0cmluZyA9ICcvJyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjaGlsZHJlblBhdGhzID0gWy4uLnRoaXMuY2hpbGRyZW4ua2V5cygpXS5zb3J0KClcbiAgICBpZiAodGhpcy5zbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCdbXScpLCAxKVxuICAgIH1cbiAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignWy4uLl0nKSwgMSlcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignW1suLi5dXScpLCAxKVxuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlcyA9IGNoaWxkcmVuUGF0aHNcbiAgICAgIC5tYXAoKGMpID0+IHRoaXMuY2hpbGRyZW4uZ2V0KGMpIS5fc21vb3NoKGAke3ByZWZpeH0ke2N9L2ApKVxuICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcblxuICAgIGlmICh0aGlzLnNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICByb3V0ZXMucHVzaChcbiAgICAgICAgLi4udGhpcy5jaGlsZHJlbi5nZXQoJ1tdJykhLl9zbW9vc2goYCR7cHJlZml4fVske3RoaXMuc2x1Z05hbWV9XS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgY29uc3QgciA9IHByZWZpeCA9PT0gJy8nID8gJy8nIDogcHJlZml4LnNsaWNlKDAsIC0xKVxuICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFlvdSBjYW5ub3QgZGVmaW5lIGEgcm91dGUgd2l0aCB0aGUgc2FtZSBzcGVjaWZpY2l0eSBhcyBhIG9wdGlvbmFsIGNhdGNoLWFsbCByb3V0ZSAoXCIke3J9XCIgYW5kIFwiJHtyfVtbLi4uJHt0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lfV1dXCIpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByb3V0ZXMudW5zaGlmdChyKVxuICAgIH1cblxuICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgcm91dGVzLnB1c2goXG4gICAgICAgIC4uLnRoaXMuY2hpbGRyZW5cbiAgICAgICAgICAuZ2V0KCdbLi4uXScpIVxuICAgICAgICAgIC5fc21vb3NoKGAke3ByZWZpeH1bLi4uJHt0aGlzLnJlc3RTbHVnTmFtZX1dL2ApXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIHJvdXRlcy5wdXNoKFxuICAgICAgICAuLi50aGlzLmNoaWxkcmVuXG4gICAgICAgICAgLmdldCgnW1suLi5dXScpIVxuICAgICAgICAgIC5fc21vb3NoKGAke3ByZWZpeH1bWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiByb3V0ZXNcbiAgfVxuXG4gIHByaXZhdGUgX2luc2VydChcbiAgICB1cmxQYXRoczogc3RyaW5nW10sXG4gICAgc2x1Z05hbWVzOiBzdHJpbmdbXSxcbiAgICBpc0NhdGNoQWxsOiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmICh1cmxQYXRocy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzQ2F0Y2hBbGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2F0Y2gtYWxsIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMLmApXG4gICAgfVxuXG4gICAgLy8gVGhlIG5leHQgc2VnbWVudCBpbiB0aGUgdXJsUGF0aHMgbGlzdFxuICAgIGxldCBuZXh0U2VnbWVudCA9IHVybFBhdGhzWzBdXG5cbiAgICAvLyBDaGVjayBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIGBbc29tZXRoaW5nXWBcbiAgICBpZiAobmV4dFNlZ21lbnQuc3RhcnRzV2l0aCgnWycpICYmIG5leHRTZWdtZW50LmVuZHNXaXRoKCddJykpIHtcbiAgICAgIC8vIFN0cmlwIGBbYCBhbmQgYF1gLCBsZWF2aW5nIG9ubHkgYHNvbWV0aGluZ2BcbiAgICAgIGxldCBzZWdtZW50TmFtZSA9IG5leHRTZWdtZW50LnNsaWNlKDEsIC0xKVxuXG4gICAgICBsZXQgaXNPcHRpb25hbCA9IGZhbHNlXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnWycpICYmIHNlZ21lbnROYW1lLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgLy8gU3RyaXAgb3B0aW9uYWwgYFtgIGFuZCBgXWAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnNsaWNlKDEsIC0xKVxuICAgICAgICBpc09wdGlvbmFsID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgn4oCmJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBEZXRlY3RlZCBhIHRocmVlLWRvdCBjaGFyYWN0ZXIgKCfigKYnKSBhdCAoJyR7c2VnbWVudE5hbWV9JykuIERpZCB5b3UgbWVhbiAoJy4uLicpP2BcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnLi4uJykpIHtcbiAgICAgICAgLy8gU3RyaXAgYC4uLmAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnN1YnN0cmluZygzKVxuICAgICAgICBpc0NhdGNoQWxsID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnWycpIHx8IHNlZ21lbnROYW1lLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggZXh0cmEgYnJhY2tldHMgKCcke3NlZ21lbnROYW1lfScpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgU2VnbWVudCBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggZXJyb25lb3VzIHBlcmlvZHMgKCcke3NlZ21lbnROYW1lfScpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVTbHVnKHByZXZpb3VzU2x1Zzogc3RyaW5nIHwgbnVsbCwgbmV4dFNsdWc6IHN0cmluZykge1xuICAgICAgICBpZiAocHJldmlvdXNTbHVnICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIHNwZWNpZmljIHNlZ21lbnQgYWxyZWFkeSBoYXMgYSBzbHVnIGJ1dCB0aGUgc2x1ZyBpcyBub3QgYHNvbWV0aGluZ2BcbiAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIGNvbGxpc2lvbnMgbGlrZTpcbiAgICAgICAgICAvLyBwYWdlcy9bcG9zdF0vaW5kZXguanNcbiAgICAgICAgICAvLyBwYWdlcy9baWRdL2luZGV4LmpzXG4gICAgICAgICAgLy8gQmVjYXVzZSBjdXJyZW50bHkgbXVsdGlwbGUgZHluYW1pYyBwYXJhbXMgb24gdGhlIHNhbWUgc2VnbWVudCBsZXZlbCBhcmUgbm90IHN1cHBvcnRlZFxuICAgICAgICAgIGlmIChwcmV2aW91c1NsdWcgIT09IG5leHRTbHVnKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIHNlZW1zIHRvIGJlIGNvbmZ1c2luZyBmb3IgdXNlcnMsIG5lZWRzIGFuIGVycm9yIGxpbmssIHRoZSBkZXNjcmlwdGlvbiBjYW4gYmUgYmFzZWQgb24gYWJvdmUgY29tbWVudC5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGRpZmZlcmVudCBzbHVnIG5hbWVzIGZvciB0aGUgc2FtZSBkeW5hbWljIHBhdGggKCcke3ByZXZpb3VzU2x1Z30nICE9PSAnJHtuZXh0U2x1Z30nKS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2x1Z05hbWVzLmZvckVhY2goKHNsdWcpID0+IHtcbiAgICAgICAgICBpZiAoc2x1ZyA9PT0gbmV4dFNsdWcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgaGF2ZSB0aGUgc2FtZSBzbHVnIG5hbWUgXCIke25leHRTbHVnfVwiIHJlcGVhdCB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzbHVnLnJlcGxhY2UoL1xcVy9nLCAnJykgPT09IG5leHRTZWdtZW50LnJlcGxhY2UoL1xcVy9nLCAnJykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgaGF2ZSB0aGUgc2x1ZyBuYW1lcyBcIiR7c2x1Z31cIiBhbmQgXCIke25leHRTbHVnfVwiIGRpZmZlciBvbmx5IGJ5IG5vbi13b3JkIHN5bWJvbHMgd2l0aGluIGEgc2luZ2xlIGR5bmFtaWMgcGF0aGBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgc2x1Z05hbWVzLnB1c2gobmV4dFNsdWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgIGlmIChpc09wdGlvbmFsKSB7XG4gICAgICAgICAgaWYgKHRoaXMucmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGJvdGggYW4gcmVxdWlyZWQgYW5kIG9wdGlvbmFsIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbLi4uJHt0aGlzLnJlc3RTbHVnTmFtZX1dXCIgYW5kIFwiJHt1cmxQYXRoc1swXX1cIiApLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgICB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lID0gc2VnbWVudE5hbWVcbiAgICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbWy4uLl1dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICBuZXh0U2VnbWVudCA9ICdbWy4uLl1dJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGJvdGggYW4gb3B0aW9uYWwgYW5kIHJlcXVpcmVkIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXVwiIGFuZCBcIiR7dXJsUGF0aHNbMF19XCIpLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMucmVzdFNsdWdOYW1lLCBzZWdtZW50TmFtZSlcbiAgICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgICAgdGhpcy5yZXN0U2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFsuLi5dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICBuZXh0U2VnbWVudCA9ICdbLi4uXSdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzT3B0aW9uYWwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgT3B0aW9uYWwgcm91dGUgcGFyYW1ldGVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgKFwiJHt1cmxQYXRoc1swXX1cIikuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBoYW5kbGVTbHVnKHRoaXMuc2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgIHRoaXMuc2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XG4gICAgICAgIG5leHRTZWdtZW50ID0gJ1tdJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoaXMgVXJsTm9kZSBkb2Vzbid0IGhhdmUgdGhlIG5leHRTZWdtZW50IHlldCB3ZSBjcmVhdGUgYSBuZXcgY2hpbGQgVXJsTm9kZVxuICAgIGlmICghdGhpcy5jaGlsZHJlbi5oYXMobmV4dFNlZ21lbnQpKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLnNldChuZXh0U2VnbWVudCwgbmV3IFVybE5vZGUoKSlcbiAgICB9XG5cbiAgICB0aGlzLmNoaWxkcmVuXG4gICAgICAuZ2V0KG5leHRTZWdtZW50KSFcbiAgICAgIC5faW5zZXJ0KHVybFBhdGhzLnNsaWNlKDEpLCBzbHVnTmFtZXMsIGlzQ2F0Y2hBbGwpXG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYHNvcnRTb3J0YWJsZVJvdXRlc2Agb3IgYHNvcnRQYWdlc2AgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNvcnRlZFJvdXRlcyhcbiAgbm9ybWFsaXplZFBhZ2VzOiBSZWFkb25seUFycmF5PHN0cmluZz5cbik6IHN0cmluZ1tdIHtcbiAgLy8gRmlyc3QgdGhlIFVybE5vZGUgaXMgY3JlYXRlZCwgYW5kIGV2ZXJ5IFVybE5vZGUgY2FuIGhhdmUgb25seSAxIGR5bmFtaWMgc2VnbWVudFxuICAvLyBFZyB5b3UgY2FuJ3QgaGF2ZSBwYWdlcy9bcG9zdF0vYWJjLmpzIGFuZCBwYWdlcy9baGVsbG9dL3NvbWV0aGluZy1lbHNlLmpzXG4gIC8vIE9ubHkgMSBkeW5hbWljIHNlZ21lbnQgcGVyIG5lc3RpbmcgbGV2ZWxcblxuICAvLyBTbyBpbiB0aGUgY2FzZSB0aGF0IGlzIHRlc3QvaW50ZWdyYXRpb24vZHluYW1pYy1yb3V0aW5nIGl0J2xsIGJlIHRoaXM6XG4gIC8vIHBhZ2VzL1twb3N0XS9jb21tZW50cy5qc1xuICAvLyBwYWdlcy9ibG9nL1twb3N0XS9jb21tZW50L1tpZF0uanNcbiAgLy8gQm90aCBhcmUgZmluZSBiZWNhdXNlIGBwYWdlcy9bcG9zdF1gIGFuZCBgcGFnZXMvYmxvZ2AgYXJlIG9uIHRoZSBzYW1lIGxldmVsXG4gIC8vIFNvIGluIHRoaXMgY2FzZSBgVXJsTm9kZWAgY3JlYXRlZCBoZXJlIGhhcyBgdGhpcy5zbHVnTmFtZSA9PT0gJ3Bvc3QnYFxuICAvLyBBbmQgc2luY2UgeW91ciBQUiBwYXNzZWQgdGhyb3VnaCBgc2x1Z05hbWVgIGFzIGFuIGFycmF5IGJhc2ljYWxseSBpdCdkIGluY2x1ZGluZyBpdCBpbiB0b28gbWFueSBwb3NzaWJpbGl0aWVzXG4gIC8vIEluc3RlYWQgd2hhdCBoYXMgdG8gYmUgcGFzc2VkIHRocm91Z2ggaXMgdGhlIHVwd2FyZHMgcGF0aCdzIGR5bmFtaWMgbmFtZXNcbiAgY29uc3Qgcm9vdCA9IG5ldyBVcmxOb2RlKClcblxuICAvLyBIZXJlIHRoZSBgcm9vdGAgZ2V0cyBpbmplY3RlZCBtdWx0aXBsZSBwYXRocywgYW5kIGluc2VydCB3aWxsIGJyZWFrIHRoZW0gdXAgaW50byBzdWJsZXZlbHNcbiAgbm9ybWFsaXplZFBhZ2VzLmZvckVhY2goKHBhZ2VQYXRoKSA9PiByb290Lmluc2VydChwYWdlUGF0aCkpXG4gIC8vIFNtb29zaCB3aWxsIHRoZW4gc29ydCB0aG9zZSBzdWJsZXZlbHMgdXAgdG8gdGhlIHBvaW50IHdoZXJlIHlvdSBnZXQgdGhlIGNvcnJlY3Qgcm91dGUgZGVmaW5pdGlvbiBwcmlvcml0eVxuICByZXR1cm4gcm9vdC5zbW9vc2goKVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgc29ydFNvcnRhYmxlUm91dGVPYmplY3RzYCBvciBgc29ydFBhZ2VPYmplY3RzYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydGVkUm91dGVPYmplY3RzPFQ+KFxuICBvYmplY3RzOiBUW10sXG4gIGdldHRlcjogKG9iajogVCkgPT4gc3RyaW5nXG4pOiBUW10ge1xuICAvLyBXZSdyZSBhc3N1bWluZyBoZXJlIHRoYXQgYWxsIHRoZSBwYXRobmFtZXMgYXJlIHVuaXF1ZSwgdGhhdCB3YXkgd2UgY2FuXG4gIC8vIHNvcnQgdGhlIGxpc3QgYW5kIHVzZSB0aGUgaW5kZXggYXMgdGhlIGtleS5cbiAgY29uc3QgaW5kZXhlczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gIGNvbnN0IHBhdGhuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwYXRobmFtZSA9IGdldHRlcihvYmplY3RzW2ldKVxuICAgIGluZGV4ZXNbcGF0aG5hbWVdID0gaVxuICAgIHBhdGhuYW1lc1tpXSA9IHBhdGhuYW1lXG4gIH1cblxuICAvLyBTb3J0IHRoZSBwYXRobmFtZXMuXG4gIGNvbnN0IHNvcnRlZCA9IGdldFNvcnRlZFJvdXRlcyhwYXRobmFtZXMpXG5cbiAgLy8gTWFwIHRoZSBzb3J0ZWQgcGF0aG5hbWVzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIG9iamVjdHMgdXNpbmcgdGhlIG5ldyBzb3J0ZWRcbiAgLy8gaW5kZXguXG4gIHJldHVybiBzb3J0ZWQubWFwKChwYXRobmFtZSkgPT4gb2JqZWN0c1tpbmRleGVzW3BhdGhuYW1lXV0pXG59XG4iXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVPYmplY3RzIiwiZ2V0U29ydGVkUm91dGVzIiwiVXJsTm9kZSIsImluc2VydCIsInVybFBhdGgiLCJfaW5zZXJ0Iiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwic21vb3NoIiwiX3Ntb29zaCIsInByZWZpeCIsImNoaWxkcmVuUGF0aHMiLCJjaGlsZHJlbiIsImtleXMiLCJzb3J0Iiwic2x1Z05hbWUiLCJzcGxpY2UiLCJpbmRleE9mIiwicmVzdFNsdWdOYW1lIiwib3B0aW9uYWxSZXN0U2x1Z05hbWUiLCJyb3V0ZXMiLCJtYXAiLCJjIiwiZ2V0IiwicmVkdWNlIiwicHJldiIsImN1cnIiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJyIiwic2xpY2UiLCJFcnJvciIsInVuc2hpZnQiLCJ1cmxQYXRocyIsInNsdWdOYW1lcyIsImlzQ2F0Y2hBbGwiLCJsZW5ndGgiLCJuZXh0U2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNlZ21lbnROYW1lIiwiaXNPcHRpb25hbCIsInN1YnN0cmluZyIsImhhbmRsZVNsdWciLCJwcmV2aW91c1NsdWciLCJuZXh0U2x1ZyIsImZvckVhY2giLCJzbHVnIiwicmVwbGFjZSIsImhhcyIsInNldCIsIk1hcCIsIm5vcm1hbGl6ZWRQYWdlcyIsInJvb3QiLCJwYWdlUGF0aCIsIm9iamVjdHMiLCJnZXR0ZXIiLCJpbmRleGVzIiwicGF0aG5hbWVzIiwiaSIsInBhdGhuYW1lIiwic29ydGVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js": /*!********************************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js ***! \********************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// In output: export mode, the build id is added to the start of the HTML\n// document, directly after the doctype declaration. During a prefetch, the\n// client performs a range request to get the build id, so it can check whether\n// the target page belongs to the same build.\n//\n// The first 64 bytes of the document are requested. The exact number isn't\n// too important; it must be larger than the build id + doctype + closing and\n// ending comment markers, but it doesn't need to match the end of the\n// comment exactly.\n//\n// Build ids are 21 bytes long in the default implementation, though this\n// can be overridden in the Next.js config. For the purposes of this check,\n// it's OK to only match the start of the id, so we'll truncate it if exceeds\n// a certain length.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DOC_PREFETCH_RANGE_HEADER_VALUE: function() {\n return DOC_PREFETCH_RANGE_HEADER_VALUE;\n },\n doesExportedHtmlMatchBuildId: function() {\n return doesExportedHtmlMatchBuildId;\n },\n insertBuildIdComment: function() {\n return insertBuildIdComment;\n }\n});\nconst DOCTYPE_PREFIX = '<!DOCTYPE html>' // 15 bytes\n;\nconst MAX_BUILD_ID_LENGTH = 24;\nconst DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63';\nfunction escapeBuildId(buildId) {\n // If the build id is longer than the given limit, it's OK for our purposes\n // to only match the beginning.\n const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH);\n // Replace hyphens with underscores so it doesn't break the HTML comment.\n // (Unlikely, but if this did happen it would break the whole document.)\n return truncated.replace(/-/g, '_');\n}\nfunction insertBuildIdComment(originalHtml, buildId) {\n if (buildId.includes('-->') || // React always inserts a doctype at the start of the document. Skip if it\n // isn't present. Shouldn't happen; suggests an issue elsewhere.\n !originalHtml.startsWith(DOCTYPE_PREFIX)) {\n // Return the original HTML unchanged. This means the document will not\n // be prefetched.\n // TODO: The build id comment is currently only used during prefetches, but\n // if we eventually use this mechanism for regular navigations, we may need\n // to error during build if we fail to insert it for some reason.\n return originalHtml;\n }\n // The comment must be inserted after the doctype.\n return originalHtml.replace(DOCTYPE_PREFIX, DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n}\nfunction doesExportedHtmlMatchBuildId(partialHtmlDocument, buildId) {\n // Check whether the document starts with the expected buildId.\n return partialHtmlDocument.startsWith(DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n} //# sourceMappingURL=output-export-prefetch-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL291dHB1dC1leHBvcnQtcHJlZmV0Y2gtZW5jb2RpbmcuanMiLCJtYXBwaW5ncyI6IkFBQUEseUVBQXlFO0FBQ3pFLDJFQUEyRTtBQUMzRSwrRUFBK0U7QUFDL0UsNkNBQTZDO0FBQzdDLEVBQUU7QUFDRiwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLHNFQUFzRTtBQUN0RSxtQkFBbUI7QUFDbkIsRUFBRTtBQUNGLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLG9CQUFvQjs7Ozs7Ozs7Ozs7OztJQU1QQSwrQkFBK0I7ZUFBL0JBOztJQWlDR0MsNEJBQTRCO2VBQTVCQTs7SUF0QkFDLG9CQUFvQjtlQUFwQkE7OztBQWZoQixNQUFNQyxpQkFBaUIsa0JBQWtCLFdBQVc7O0FBQ3BELE1BQU1DLHNCQUFzQjtBQUdyQixNQUFNSixrQ0FBa0M7QUFFL0MsU0FBU0ssY0FBY0MsT0FBZTtJQUNwQywyRUFBMkU7SUFDM0UsK0JBQStCO0lBQy9CLE1BQU1DLFlBQVlELFFBQVFFLEtBQUssQ0FBQyxHQUFHSjtJQUNuQyx5RUFBeUU7SUFDekUsd0VBQXdFO0lBQ3hFLE9BQU9HLFVBQVVFLE9BQU8sQ0FBQyxNQUFNO0FBQ2pDO0FBRU8sU0FBU1AscUJBQXFCUSxZQUFvQixFQUFFSixPQUFlO0lBQ3hFLElBQ0UsUUFDUUssUUFBUSxDQUFDLFVBQ2pCLCtCQUYwRCwyQ0FFZ0I7SUFDMUUsZ0VBQWdFO0lBQ2hFLENBQUNELGFBQWFFLFVBQVUsQ0FBQ1QsaUJBQ3pCO1FBQ0EsdUVBQXVFO1FBQ3ZFLGlCQUFpQjtRQUNqQiwyRUFBMkU7UUFDM0UsMkVBQTJFO1FBQzNFLGlFQUFpRTtRQUNqRSxPQUFPTztJQUNUO0lBQ0Esa0RBQWtEO0lBQ2xELE9BQU9BLGFBQWFELE9BQU8sQ0FDekJOLGdCQUNBQSxpQkFBaUIsU0FBU0UsY0FBY0MsV0FBVztBQUV2RDtBQUVPLFNBQVNMLDZCQUNkWSxtQkFBMkIsRUFDM0JQLE9BQWU7SUFFZiwrREFBK0Q7SUFDL0QsT0FBT08sb0JBQW9CRCxVQUFVLENBQ25DVCxpQkFBaUIsU0FBU0UsY0FBY0MsV0FBVztBQUV2RCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9vdXRwdXQtZXhwb3J0LXByZWZldGNoLWVuY29kaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEluIG91dHB1dDogZXhwb3J0IG1vZGUsIHRoZSBidWlsZCBpZCBpcyBhZGRlZCB0byB0aGUgc3RhcnQgb2YgdGhlIEhUTUxcbi8vIGRvY3VtZW50LCBkaXJlY3RseSBhZnRlciB0aGUgZG9jdHlwZSBkZWNsYXJhdGlvbi4gRHVyaW5nIGEgcHJlZmV0Y2gsIHRoZVxuLy8gY2xpZW50IHBlcmZvcm1zIGEgcmFuZ2UgcmVxdWVzdCB0byBnZXQgdGhlIGJ1aWxkIGlkLCBzbyBpdCBjYW4gY2hlY2sgd2hldGhlclxuLy8gdGhlIHRhcmdldCBwYWdlIGJlbG9uZ3MgdG8gdGhlIHNhbWUgYnVpbGQuXG4vL1xuLy8gVGhlIGZpcnN0IDY0IGJ5dGVzIG9mIHRoZSBkb2N1bWVudCBhcmUgcmVxdWVzdGVkLiBUaGUgZXhhY3QgbnVtYmVyIGlzbid0XG4vLyB0b28gaW1wb3J0YW50OyBpdCBtdXN0IGJlIGxhcmdlciB0aGFuIHRoZSBidWlsZCBpZCArIGRvY3R5cGUgKyBjbG9zaW5nIGFuZFxuLy8gZW5kaW5nIGNvbW1lbnQgbWFya2VycywgYnV0IGl0IGRvZXNuJ3QgbmVlZCB0byBtYXRjaCB0aGUgZW5kIG9mIHRoZVxuLy8gY29tbWVudCBleGFjdGx5LlxuLy9cbi8vIEJ1aWxkIGlkcyBhcmUgMjEgYnl0ZXMgbG9uZyBpbiB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgdGhvdWdoIHRoaXNcbi8vIGNhbiBiZSBvdmVycmlkZGVuIGluIHRoZSBOZXh0LmpzIGNvbmZpZy4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGNoZWNrLFxuLy8gaXQncyBPSyB0byBvbmx5IG1hdGNoIHRoZSBzdGFydCBvZiB0aGUgaWQsIHNvIHdlJ2xsIHRydW5jYXRlIGl0IGlmIGV4Y2VlZHNcbi8vIGEgY2VydGFpbiBsZW5ndGguXG5cbmNvbnN0IERPQ1RZUEVfUFJFRklYID0gJzwhRE9DVFlQRSBodG1sPicgLy8gMTUgYnl0ZXNcbmNvbnN0IE1BWF9CVUlMRF9JRF9MRU5HVEggPSAyNFxuXG4vLyBSZXF1ZXN0IHRoZSBmaXJzdCA2NCBieXRlcy4gVGhlIFJhbmdlIGhlYWRlciBpcyBpbmNsdXNpdmUgb2YgdGhlIGVuZCB2YWx1ZS5cbmV4cG9ydCBjb25zdCBET0NfUFJFRkVUQ0hfUkFOR0VfSEVBREVSX1ZBTFVFID0gJ2J5dGVzPTAtNjMnXG5cbmZ1bmN0aW9uIGVzY2FwZUJ1aWxkSWQoYnVpbGRJZDogc3RyaW5nKSB7XG4gIC8vIElmIHRoZSBidWlsZCBpZCBpcyBsb25nZXIgdGhhbiB0aGUgZ2l2ZW4gbGltaXQsIGl0J3MgT0sgZm9yIG91ciBwdXJwb3Nlc1xuICAvLyB0byBvbmx5IG1hdGNoIHRoZSBiZWdpbm5pbmcuXG4gIGNvbnN0IHRydW5jYXRlZCA9IGJ1aWxkSWQuc2xpY2UoMCwgTUFYX0JVSUxEX0lEX0xFTkdUSClcbiAgLy8gUmVwbGFjZSBoeXBoZW5zIHdpdGggdW5kZXJzY29yZXMgc28gaXQgZG9lc24ndCBicmVhayB0aGUgSFRNTCBjb21tZW50LlxuICAvLyAoVW5saWtlbHksIGJ1dCBpZiB0aGlzIGRpZCBoYXBwZW4gaXQgd291bGQgYnJlYWsgdGhlIHdob2xlIGRvY3VtZW50LilcbiAgcmV0dXJuIHRydW5jYXRlZC5yZXBsYWNlKC8tL2csICdfJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEJ1aWxkSWRDb21tZW50KG9yaWdpbmFsSHRtbDogc3RyaW5nLCBidWlsZElkOiBzdHJpbmcpIHtcbiAgaWYgKFxuICAgIC8vIFNraXAgaWYgdGhlIGJ1aWxkIGlkIGNvbnRhaW5zIGEgY2xvc2luZyBjb21tZW50IG1hcmtlci5cbiAgICBidWlsZElkLmluY2x1ZGVzKCctLT4nKSB8fFxuICAgIC8vIFJlYWN0IGFsd2F5cyBpbnNlcnRzIGEgZG9jdHlwZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGRvY3VtZW50LiBTa2lwIGlmIGl0XG4gICAgLy8gaXNuJ3QgcHJlc2VudC4gU2hvdWxkbid0IGhhcHBlbjsgc3VnZ2VzdHMgYW4gaXNzdWUgZWxzZXdoZXJlLlxuICAgICFvcmlnaW5hbEh0bWwuc3RhcnRzV2l0aChET0NUWVBFX1BSRUZJWClcbiAgKSB7XG4gICAgLy8gUmV0dXJuIHRoZSBvcmlnaW5hbCBIVE1MIHVuY2hhbmdlZC4gVGhpcyBtZWFucyB0aGUgZG9jdW1lbnQgd2lsbCBub3RcbiAgICAvLyBiZSBwcmVmZXRjaGVkLlxuICAgIC8vIFRPRE86IFRoZSBidWlsZCBpZCBjb21tZW50IGlzIGN1cnJlbnRseSBvbmx5IHVzZWQgZHVyaW5nIHByZWZldGNoZXMsIGJ1dFxuICAgIC8vIGlmIHdlIGV2ZW50dWFsbHkgdXNlIHRoaXMgbWVjaGFuaXNtIGZvciByZWd1bGFyIG5hdmlnYXRpb25zLCB3ZSBtYXkgbmVlZFxuICAgIC8vIHRvIGVycm9yIGR1cmluZyBidWlsZCBpZiB3ZSBmYWlsIHRvIGluc2VydCBpdCBmb3Igc29tZSByZWFzb24uXG4gICAgcmV0dXJuIG9yaWdpbmFsSHRtbFxuICB9XG4gIC8vIFRoZSBjb21tZW50IG11c3QgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGRvY3R5cGUuXG4gIHJldHVybiBvcmlnaW5hbEh0bWwucmVwbGFjZShcbiAgICBET0NUWVBFX1BSRUZJWCxcbiAgICBET0NUWVBFX1BSRUZJWCArICc8IS0tJyArIGVzY2FwZUJ1aWxkSWQoYnVpbGRJZCkgKyAnLS0+J1xuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb2VzRXhwb3J0ZWRIdG1sTWF0Y2hCdWlsZElkKFxuICBwYXJ0aWFsSHRtbERvY3VtZW50OiBzdHJpbmcsXG4gIGJ1aWxkSWQ6IHN0cmluZ1xuKSB7XG4gIC8vIENoZWNrIHdoZXRoZXIgdGhlIGRvY3VtZW50IHN0YXJ0cyB3aXRoIHRoZSBleHBlY3RlZCBidWlsZElkLlxuICByZXR1cm4gcGFydGlhbEh0bWxEb2N1bWVudC5zdGFydHNXaXRoKFxuICAgIERPQ1RZUEVfUFJFRklYICsgJzwhLS0nICsgZXNjYXBlQnVpbGRJZChidWlsZElkKSArICctLT4nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJET0NfUFJFRkVUQ0hfUkFOR0VfSEVBREVSX1ZBTFVFIiwiZG9lc0V4cG9ydGVkSHRtbE1hdGNoQnVpbGRJZCIsImluc2VydEJ1aWxkSWRDb21tZW50IiwiRE9DVFlQRV9QUkVGSVgiLCJNQVhfQlVJTERfSURfTEVOR1RIIiwiZXNjYXBlQnVpbGRJZCIsImJ1aWxkSWQiLCJ0cnVuY2F0ZWQiLCJzbGljZSIsInJlcGxhY2UiLCJvcmlnaW5hbEh0bWwiLCJpbmNsdWRlcyIsInN0YXJ0c1dpdGgiLCJwYXJ0aWFsSHRtbERvY3VtZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment.js ***! \******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRCYUEsbUJBQW1CO2VBQW5CQTs7SUFEQUMsZ0JBQWdCO2VBQWhCQTs7SUFoQkdDLDRCQUE0QjtlQUE1QkE7O0lBVEFDLGNBQWM7ZUFBZEE7O0lBS0FDLHNCQUFzQjtlQUF0QkE7OztBQUxULFNBQVNELGVBQWVFLE9BQWU7SUFDNUMsc0NBQXNDO0lBQ3RDLE9BQU9BLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBT0EsUUFBUUMsUUFBUSxDQUFDO0FBQ2hEO0FBRU8sU0FBU0YsdUJBQXVCQyxPQUFlO0lBQ3BELE9BQU9BLFFBQVFFLFVBQVUsQ0FBQyxRQUFRRixZQUFZO0FBQ2hEO0FBRU8sU0FBU0gsNkJBQ2RHLE9BQWdCLEVBQ2hCRyxZQUEyRDtJQUUzRCxNQUFNQyxnQkFBZ0JKLFFBQVFLLFFBQVEsQ0FBQ1Q7SUFFdkMsSUFBSVEsZUFBZTtRQUNqQixNQUFNRSxtQkFBbUJDLEtBQUtDLFNBQVMsQ0FBQ0w7UUFDeEMsT0FBT0cscUJBQXFCLE9BQ3hCVixtQkFBbUIsTUFBTVUsbUJBQ3pCVjtJQUNOO0lBRUEsT0FBT0k7QUFDVDtBQUVPLE1BQU1KLG1CQUFtQjtBQUN6QixNQUFNRCxzQkFBc0IiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL3NlZ21lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dyb3VwU2VnbWVudChzZWdtZW50OiBzdHJpbmcpIHtcbiAgLy8gVXNlIGFycmF5WzBdIGZvciBwZXJmb3JtYW50IHB1cnBvc2VcbiAgcmV0dXJuIHNlZ21lbnRbMF0gPT09ICcoJyAmJiBzZWdtZW50LmVuZHNXaXRoKCcpJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIHJldHVybiBzZWdtZW50LnN0YXJ0c1dpdGgoJ0AnKSAmJiBzZWdtZW50ICE9PSAnQGNoaWxkcmVuJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudChcbiAgc2VnbWVudDogU2VnbWVudCxcbiAgc2VhcmNoUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD5cbikge1xuICBjb25zdCBpc1BhZ2VTZWdtZW50ID0gc2VnbWVudC5pbmNsdWRlcyhQQUdFX1NFR01FTlRfS0VZKVxuXG4gIGlmIChpc1BhZ2VTZWdtZW50KSB7XG4gICAgY29uc3Qgc3RyaW5naWZpZWRRdWVyeSA9IEpTT04uc3RyaW5naWZ5KHNlYXJjaFBhcmFtcylcbiAgICByZXR1cm4gc3RyaW5naWZpZWRRdWVyeSAhPT0gJ3t9J1xuICAgICAgPyBQQUdFX1NFR01FTlRfS0VZICsgJz8nICsgc3RyaW5naWZpZWRRdWVyeVxuICAgICAgOiBQQUdFX1NFR01FTlRfS0VZXG4gIH1cblxuICByZXR1cm4gc2VnbWVudFxufVxuXG5leHBvcnQgY29uc3QgUEFHRV9TRUdNRU5UX0tFWSA9ICdfX1BBR0VfXydcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFR01FTlRfS0VZID0gJ19fREVGQVVMVF9fJ1xuIl0sIm5hbWVzIjpbIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJQQUdFX1NFR01FTlRfS0VZIiwiYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudCIsImlzR3JvdXBTZWdtZW50IiwiaXNQYXJhbGxlbFJvdXRlU2VnbWVudCIsInNlZ21lbnQiLCJlbmRzV2l0aCIsInN0YXJ0c1dpdGgiLCJzZWFyY2hQYXJhbXMiLCJpc1BhZ2VTZWdtZW50IiwiaW5jbHVkZXMiLCJzdHJpbmdpZmllZFF1ZXJ5IiwiSlNPTiIsInN0cmluZ2lmeSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"react\");\nconst isServer = \"undefined\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQW9CQTs7O2VBQXdCQTs7O21DQW5CdUM7QUFlL0QsTUFBTUMsV0FBVyxPQUFPQyxTQUFXO0FBQ25DLE1BQU1DLDRCQUE0QkYsV0FBVyxLQUFPLElBQUlHLE9BQUFBLGVBQWU7QUFDdkUsTUFBTUMsc0JBQXNCSixXQUFXLEtBQU8sSUFBSUssT0FBQUEsU0FBUztBQUU1QyxTQUFTTixXQUFXTyxLQUFzQjtJQUN2RCxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsdUJBQXVCLEVBQUUsR0FBR0Y7SUFFakQsU0FBU0c7UUFDUCxJQUFJRixlQUFlQSxZQUFZRyxnQkFBZ0IsRUFBRTtZQUMvQyxNQUFNQyxlQUFlQyxPQUFBQSxRQUFRLENBQUNDLE9BQU8sQ0FDbkNDLE1BQU1DLElBQUksQ0FBQ1IsWUFBWUcsZ0JBQWdCLEVBQTBCTSxNQUFNLENBQ3JFQztZQUdKVixZQUFZVyxVQUFVLENBQUNWLHdCQUF3QkcsY0FBY0w7UUFDL0Q7SUFDRjtJQUVBLElBQUlOLFVBQVU7WUFDWk87UUFBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsaUNBQUFBLFlBQWFHLGdCQUFBQSxLQUFnQixnQkFBN0JILDhCQUErQlksR0FBRyxDQUFDYixNQUFNYyxRQUFRO1FBQ2pEWDtJQUNGO0lBRUFQO2dEQUEwQjtnQkFDeEJLO1lBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JZLEdBQUcsQ0FBQ2IsTUFBTWMsUUFBUTtZQUNqRDt3REFBTzt3QkFDTGI7b0JBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JjLE1BQU0sQ0FBQ2YsTUFBTWMsUUFBUTtnQkFDdEQ7O1FBQ0Y7O0lBRUEsa0ZBQWtGO0lBQ2xGLG9GQUFvRjtJQUNwRixnRUFBZ0U7SUFDaEUscUZBQXFGO0lBQ3JGLG1GQUFtRjtJQUNuRmxCO2dEQUEwQjtZQUN4QixJQUFJSyxhQUFhO2dCQUNmQSxZQUFZZSxjQUFjLEdBQUdiO1lBQy9CO1lBQ0E7d0RBQU87b0JBQ0wsSUFBSUYsYUFBYTt3QkFDZkEsWUFBWWUsY0FBYyxHQUFHYjtvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7O0lBRUFMOzBDQUFvQjtZQUNsQixJQUFJRyxlQUFlQSxZQUFZZSxjQUFjLEVBQUU7Z0JBQzdDZixZQUFZZSxjQUFjO2dCQUMxQmYsWUFBWWUsY0FBYyxHQUFHO1lBQy9CO1lBQ0E7a0RBQU87b0JBQ0wsSUFBSWYsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO3dCQUM3Q2YsWUFBWWUsY0FBYzt3QkFDMUJmLFlBQVllLGNBQWMsR0FBRztvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7O0lBRUEsT0FBTztBQUNUIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5cbnR5cGUgU3RhdGUgPSBKU1guRWxlbWVudFtdIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCB0eXBlIFNpZGVFZmZlY3RQcm9wcyA9IHtcbiAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU6IDxUIGV4dGVuZHMge30+KFxuICAgIGNvbXBvbmVudHM6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgICBwcm9wczogVFxuICApID0+IFN0YXRlXG4gIGhhbmRsZVN0YXRlQ2hhbmdlPzogKHN0YXRlOiBTdGF0ZSkgPT4gdm9pZFxuICBoZWFkTWFuYWdlcjogYW55XG4gIGluQW1wTW9kZT86IGJvb2xlYW5cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufVxuXG5jb25zdCBpc1NlcnZlciA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnXG5jb25zdCB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0ID0gaXNTZXJ2ZXIgPyAoKSA9PiB7fSA6IHVzZUxheW91dEVmZmVjdFxuY29uc3QgdXNlQ2xpZW50T25seUVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VFZmZlY3RcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZUVmZmVjdChwcm9wczogU2lkZUVmZmVjdFByb3BzKSB7XG4gIGNvbnN0IHsgaGVhZE1hbmFnZXIsIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlIH0gPSBwcm9wc1xuXG4gIGZ1bmN0aW9uIGVtaXRDaGFuZ2UoKSB7XG4gICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpIHtcbiAgICAgIGNvbnN0IGhlYWRFbGVtZW50cyA9IENoaWxkcmVuLnRvQXJyYXkoXG4gICAgICAgIEFycmF5LmZyb20oaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcyBhcyBTZXQ8UmVhY3QuUmVhY3ROb2RlPikuZmlsdGVyKFxuICAgICAgICAgIEJvb2xlYW5cbiAgICAgICAgKVxuICAgICAgKSBhcyBSZWFjdC5SZWFjdEVsZW1lbnRbXVxuICAgICAgaGVhZE1hbmFnZXIudXBkYXRlSGVhZChyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZShoZWFkRWxlbWVudHMsIHByb3BzKSlcbiAgICB9XG4gIH1cblxuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICBoZWFkTWFuYWdlcj8ubW91bnRlZEluc3RhbmNlcz8uYWRkKHByb3BzLmNoaWxkcmVuKVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9XG5cbiAgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmRlbGV0ZShwcm9wcy5jaGlsZHJlbilcbiAgICB9XG4gIH0pXG5cbiAgLy8gV2UgbmVlZCB0byBjYWxsIGB1cGRhdGVIZWFkYCBtZXRob2Qgd2hlbmV2ZXIgdGhlIGBTaWRlRWZmZWN0YCBpcyB0cmlnZ2VyIGluIGFsbFxuICAvLyBsaWZlLWN5Y2xlczogbW91bnQsIHVwZGF0ZSwgdW5tb3VudC4gSG93ZXZlciwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGBTaWRlRWZmZWN0YHNcbiAgLy8gYmVpbmcgcmVuZGVyZWQsIHdlIG9ubHkgdHJpZ2dlciB0aGUgbWV0aG9kIGZyb20gdGhlIGxhc3Qgb25lLlxuICAvLyBUaGlzIGlzIGVuc3VyZWQgYnkga2VlcGluZyB0aGUgbGFzdCB1bmZsdXNoZWQgYHVwZGF0ZUhlYWRgIGluIHRoZSBgX3BlbmRpbmdVcGRhdGVgXG4gIC8vIHNpbmdsZXRvbiBpbiB0aGUgbGF5b3V0IGVmZmVjdCBwYXNzLCBhbmQgYWN0dWFsbHkgdHJpZ2dlciBpdCBpbiB0aGUgZWZmZWN0IHBhc3MuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlcikge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHVzZUNsaWVudE9ubHlFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSkge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgICBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJTaWRlRWZmZWN0IiwiaXNTZXJ2ZXIiLCJ3aW5kb3ciLCJ1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlQ2xpZW50T25seUVmZmVjdCIsInVzZUVmZmVjdCIsInByb3BzIiwiaGVhZE1hbmFnZXIiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImVtaXRDaGFuZ2UiLCJtb3VudGVkSW5zdGFuY2VzIiwiaGVhZEVsZW1lbnRzIiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiQXJyYXkiLCJmcm9tIiwiZmlsdGVyIiwiQm9vbGVhbiIsInVwZGF0ZUhlYWQiLCJhZGQiLCJjaGlsZHJlbiIsImRlbGV0ZSIsIl9wZW5kaW5nVXBkYXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFvYWFBLFdBQVc7ZUFBWEE7O0lBb0JBQyx1QkFBdUI7ZUFBdkJBOztJQVBBQyxpQkFBaUI7ZUFBakJBOztJQVpBQyxjQUFjO2VBQWRBOztJQUNBQyxpQkFBaUI7ZUFBakJBOztJQVRBQyxFQUFFO2VBQUZBOztJQUNBQyxFQUFFO2VBQUZBOztJQWxYQUMsVUFBVTtlQUFWQTs7SUFzUUdDLFFBQVE7ZUFBUkE7O0lBK0JBQyxjQUFjO2VBQWRBOztJQVhBQyxpQkFBaUI7ZUFBakJBOztJQUtBQyxNQUFNO2VBQU5BOztJQVBIQyxhQUFhO2VBQWJBOztJQW1CR0MsU0FBUztlQUFUQTs7SUFrQk1DLG1CQUFtQjtlQUFuQkE7O0lBZE5DLHdCQUF3QjtlQUF4QkE7O0lBK0dBQyxjQUFjO2VBQWRBOzs7QUE5WlQsTUFBTVQsYUFBYTtJQUFDO0lBQU87SUFBTztJQUFPO0lBQU87SUFBTztDQUFPO0FBc1E5RCxTQUFTQyxTQUNkUyxFQUFLO0lBRUwsSUFBSUMsT0FBTztJQUNYLElBQUlDO0lBRUosT0FBUTt5Q0FBSUMsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7WUFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O1FBQ1YsSUFBSSxDQUFDRixNQUFNO1lBQ1RBLE9BQU87WUFDUEMsU0FBU0YsTUFBTUc7UUFDakI7UUFDQSxPQUFPRDtJQUNUO0FBQ0Y7QUFFQSwwREFBMEQ7QUFDMUQsZ0VBQWdFO0FBQ2hFLE1BQU1FLHFCQUFxQjtBQUNwQixNQUFNVCxnQkFBZ0IsQ0FBQ1UsTUFBZ0JELG1CQUFtQkUsSUFBSSxDQUFDRDtBQUUvRCxTQUFTWjtJQUNkLE1BQU0sRUFBRWMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFH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QUksQ0FBQzlCLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ2lCLE9BQU8sR0FBSSxrQ0FBK0JZO0lBQ2pEO0FBQ0Y7QUFFTyxNQUFNOUQsMEJBQTBCbUQ7SUFDckNVLFlBQVlDLElBQVksRUFBRVosT0FBZSxDQUFFO1FBQ3pDLEtBQUs7UUFDTCxJQUFJLENBQUNBLE9BQU8sR0FBSSwwQ0FBdUNZLE9BQUssTUFBR1o7SUFDakU7QUFDRjtBQUVPLE1BQU1uRCxnQ0FBZ0NvRDtJQUUzQ1UsYUFBYztRQUNaLEtBQUs7UUFDTCxJQUFJLENBQUNFLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ2IsT0FBTyxHQUFJO0lBQ2xCO0FBQ0Y7QUFXTyxTQUFTcEMsZUFBZWtELEtBQVk7SUFDekMsT0FBT0MsS0FBS0MsU0FBUyxDQUFDO1FBQUVoQixTQUFTYyxNQUFNZCxPQUFPO1FBQUVpQixPQUFPSCxNQUFNRyxLQUFLO0lBQUM7QUFDckUiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSHRtbFByb3BzIH0gZnJvbSAnLi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFR5cGUsIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBEb21haW5Mb2NhbGUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBFbnYgfSBmcm9tICdAbmV4dC9lbnYnXG5pbXBvcnQgdHlwZSB7IEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJ1xuaW1wb3J0IHR5cGUgeyBOZXh0Um91dGVyIH0gZnJvbSAnLi9yb3V0ZXIvcm91dGVyJ1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHR5cGUgeyBQcmV2aWV3RGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDT01QSUxFUl9OQU1FUyB9IGZyb20gJy4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgZnMgZnJvbSAnZnMnXG5cbmV4cG9ydCB0eXBlIE5leHRDb21wb25lbnRUeXBlPFxuICBDb250ZXh0IGV4dGVuZHMgQmFzZUNvbnRleHQgPSBOZXh0UGFnZUNvbnRleHQsXG4gIEluaXRpYWxQcm9wcyA9IHt9LFxuICBQcm9wcyA9IHt9LFxuPiA9IENvbXBvbmVudFR5cGU8UHJvcHM+ICYge1xuICAvKipcbiAgICogVXNlZCBmb3IgaW5pdGlhbCBwYWdlIGxvYWQgZGF0YSBwb3B1bGF0aW9uLiBEYXRhIHJldHVybmVkIGZyb20gYGdldEluaXRpYWxQcm9wc2AgaXMgc2VyaWFsaXplZCB3aGVuIHNlcnZlciByZW5kZXJlZC5cbiAgICogTWFrZSBzdXJlIHRvIHJldHVybiBwbGFpbiBgT2JqZWN0YCB3aXRob3V0IHVzaW5nIGBEYXRlYCwgYE1hcGAsIGBTZXRgLlxuICAgKiBAcGFyYW0gY29udGV4dCBDb250ZXh0IG9mIGBwYWdlYFxuICAgKi9cbiAgZ2V0SW5pdGlhbFByb3BzPyhjb250ZXh0OiBDb250ZXh0KTogSW5pdGlhbFByb3BzIHwgUHJvbWlzZTxJbml0aWFsUHJvcHM+XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50VHlwZSA9IE5leHRDb21wb25lbnRUeXBlPFxuICBEb2N1bWVudENvbnRleHQsXG4gIERvY3VtZW50SW5pdGlhbFByb3BzLFxuICBEb2N1bWVudFByb3BzXG4+XG5cbmV4cG9ydCB0eXBlIEFwcFR5cGU8UCA9IHt9PiA9IE5leHRDb21wb25lbnRUeXBlPFxuICBBcHBDb250ZXh0VHlwZSxcbiAgUCxcbiAgQXBwUHJvcHNUeXBlPGFueSwgUD5cbj5cblxuZXhwb3J0IHR5cGUgQXBwVHJlZVR5cGUgPSBDb21wb25lbnRUeXBlPFxuICBBcHBJbml0aWFsUHJvcHMgJiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfVxuPlxuXG4vKipcbiAqIFdlYiB2aXRhbHMgcHJvdmlkZWQgdG8gX2FwcC5yZXBvcnRXZWJWaXRhbHMgYnkgQ29yZSBXZWIgVml0YWxzIHBsdWdpbiBkZXZlbG9wZWQgYnkgR29vZ2xlIENocm9tZSB0ZWFtLlxuICogaHR0cHM6Ly9uZXh0anMub3JnL2Jsb2cvbmV4dC05LTQjaW50ZWdyYXRlZC13ZWItdml0YWxzLXJlcG9ydGluZ1xuICovXG5leHBvcnQgY29uc3QgV0VCX1ZJVEFMUyA9IFsnQ0xTJywgJ0ZDUCcsICdGSUQnLCAnSU5QJywgJ0xDUCcsICdUVEZCJ10gYXMgY29uc3RcbmV4cG9ydCB0eXBlIE5leHRXZWJWaXRhbHNNZXRyaWMgPSB7XG4gIGlkOiBzdHJpbmdcbiAgc3RhcnRUaW1lOiBudW1iZXJcbiAgdmFsdWU6IG51bWJlclxuICBhdHRyaWJ1dGlvbj86IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9XG59ICYgKFxuICB8IHtcbiAgICAgIGxhYmVsOiAnd2ViLXZpdGFsJ1xuICAgICAgbmFtZTogKHR5cGVvZiBXRUJfVklUQUxTKVtudW1iZXJdXG4gICAgfVxuICB8IHtcbiAgICAgIGxhYmVsOiAnY3VzdG9tJ1xuICAgICAgbmFtZTpcbiAgICAgICAgfCAnTmV4dC5qcy1oeWRyYXRpb24nXG4gICAgICAgIHwgJ05leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlcidcbiAgICAgICAgfCAnTmV4dC5qcy1yZW5kZXInXG4gICAgfVxuKVxuXG5leHBvcnQgdHlwZSBFbmhhbmNlcjxDPiA9IChDb21wb25lbnQ6IEMpID0+IENcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50c0VuaGFuY2VyID1cbiAgfCB7XG4gICAgICBlbmhhbmNlQXBwPzogRW5oYW5jZXI8QXBwVHlwZT5cbiAgICAgIGVuaGFuY2VDb21wb25lbnQ/OiBFbmhhbmNlcjxOZXh0Q29tcG9uZW50VHlwZT5cbiAgICB9XG4gIHwgRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG5cbmV4cG9ydCB0eXBlIFJlbmRlclBhZ2VSZXN1bHQgPSB7XG4gIGh0bWw6IHN0cmluZ1xuICBoZWFkPzogQXJyYXk8SlNYLkVsZW1lbnQgfCBudWxsPlxufVxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlID0gKFxuICBvcHRpb25zPzogQ29tcG9uZW50c0VuaGFuY2VyXG4pID0+IERvY3VtZW50SW5pdGlhbFByb3BzIHwgUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cblxuZXhwb3J0IHR5cGUgQmFzZUNvbnRleHQgPSB7XG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIFtrOiBzdHJpbmddOiBhbnlcbn1cblxuZXhwb3J0IHR5cGUgTkVYVF9EQVRBID0ge1xuICBwcm9wczogUmVjb3JkPHN0cmluZywgYW55PlxuICBwYWdlOiBzdHJpbmdcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIGJ1aWxkSWQ6IHN0cmluZ1xuICBhc3NldFByZWZpeD86IHN0cmluZ1xuICBydW50aW1lQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICBuZXh0RXhwb3J0PzogYm9vbGVhblxuICBhdXRvRXhwb3J0PzogYm9vbGVhblxuICBpc0ZhbGxiYWNrPzogYm9vbGVhblxuICBpc0V4cGVyaW1lbnRhbENvbXBpbGU/OiBib29sZWFuXG4gIGR5bmFtaWNJZHM/OiAoc3RyaW5nIHwgbnVtYmVyKVtdXG4gIGVycj86IEVycm9yICYge1xuICAgIHN0YXR1c0NvZGU/OiBudW1iZXJcbiAgICBzb3VyY2U/OiB0eXBlb2YgQ09NUElMRVJfTkFNRVMuc2VydmVyIHwgdHlwZW9mIENPTVBJTEVSX05BTUVTLmVkZ2VTZXJ2ZXJcbiAgfVxuICBnc3A/OiBib29sZWFuXG4gIGdzc3A/OiBib29sZWFuXG4gIGN1c3RvbVNlcnZlcj86IGJvb2xlYW5cbiAgZ2lwPzogYm9vbGVhblxuICBhcHBHaXA/OiBib29sZWFuXG4gIGxvY2FsZT86IHN0cmluZ1xuICBsb2NhbGVzPzogcmVhZG9ubHkgc3RyaW5nW11cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICBkb21haW5Mb2NhbGVzPzogcmVhZG9ubHkgRG9tYWluTG9jYWxlW11cbiAgc2NyaXB0TG9hZGVyPzogYW55W11cbiAgaXNQcmV2aWV3PzogYm9vbGVhblxuICBub3RGb3VuZFNyY1BhZ2U/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBgTmV4dGAgY29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRQYWdlQ29udGV4dCB7XG4gIC8qKlxuICAgKiBFcnJvciBvYmplY3QgaWYgZW5jb3VudGVyZWQgZHVyaW5nIHJlbmRlcmluZ1xuICAgKi9cbiAgZXJyPzogKEVycm9yICYgeyBzdGF0dXNDb2RlPzogbnVtYmVyIH0pIHwgbnVsbFxuICAvKipcbiAgICogYEhUVFBgIHJlcXVlc3Qgb2JqZWN0LlxuICAgKi9cbiAgcmVxPzogSW5jb21pbmdNZXNzYWdlXG4gIC8qKlxuICAgKiBgSFRUUGAgcmVzcG9uc2Ugb2JqZWN0LlxuICAgKi9cbiAgcmVzPzogU2VydmVyUmVzcG9uc2VcbiAgLyoqXG4gICAqIFBhdGggc2VjdGlvbiBvZiBgVVJMYC5cbiAgICovXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFF1ZXJ5IHN0cmluZyBzZWN0aW9uIG9mIGBVUkxgIHBhcnNlZCBhcyBhbiBvYmplY3QuXG4gICAqL1xuICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbiAgLyoqXG4gICAqIGBTdHJpbmdgIG9mIHRoZSBhY3R1YWwgcGF0aCBpbmNsdWRpbmcgcXVlcnkuXG4gICAqL1xuICBhc1BhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGxvY2FsZVxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBBbGwgY29uZmlndXJlZCBsb2NhbGVzXG4gICAqL1xuICBsb2NhbGVzPzogcmVhZG9ubHkgc3RyaW5nW11cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmVkIGRlZmF1bHQgbG9jYWxlXG4gICAqL1xuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBgQ29tcG9uZW50YCB0aGUgdHJlZSBvZiB0aGUgQXBwIHRvIHVzZSBpZiBuZWVkaW5nIHRvIHJlbmRlciBzZXBhcmF0ZWx5XG4gICAqL1xuICBBcHBUcmVlOiBBcHBUcmVlVHlwZVxufVxuXG5leHBvcnQgdHlwZSBBcHBDb250ZXh0VHlwZTxSb3V0ZXIgZXh0ZW5kcyBOZXh0Um91dGVyID0gTmV4dFJvdXRlcj4gPSB7XG4gIENvbXBvbmVudDogTmV4dENvbXBvbmVudFR5cGU8TmV4dFBhZ2VDb250ZXh0PlxuICBBcHBUcmVlOiBBcHBUcmVlVHlwZVxuICBjdHg6IE5leHRQYWdlQ29udGV4dFxuICByb3V0ZXI6IFJvdXRlclxufVxuXG5leHBvcnQgdHlwZSBBcHBJbml0aWFsUHJvcHM8UGFnZVByb3BzID0gYW55PiA9IHtcbiAgcGFnZVByb3BzOiBQYWdlUHJvcHNcbn1cblxuZXhwb3J0IHR5cGUgQXBwUHJvcHNUeXBlPFxuICBSb3V0ZXIgZXh0ZW5kcyBOZXh0Um91dGVyID0gTmV4dFJvdXRlcixcbiAgUGFnZVByb3BzID0ge30sXG4+ID0gQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcz4gJiB7XG4gIENvbXBvbmVudDogTmV4dENvbXBvbmVudFR5cGU8TmV4dFBhZ2VDb250ZXh0LCBhbnksIGFueT5cbiAgcm91dGVyOiBSb3V0ZXJcbiAgX19OX1NTRz86IGJvb2xlYW5cbiAgX19OX1NTUD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0ICYge1xuICByZW5kZXJQYWdlOiBSZW5kZXJQYWdlXG4gIGRlZmF1bHRHZXRJbml0aWFsUHJvcHMoXG4gICAgY3R4OiBEb2N1bWVudENvbnRleHQsXG4gICAgb3B0aW9ucz86IHsgbm9uY2U/OiBzdHJpbmcgfVxuICApOiBQcm9taXNlPERvY3VtZW50SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudEluaXRpYWxQcm9wcyA9IFJlbmRlclBhZ2VSZXN1bHQgJiB7XG4gIHN0eWxlcz86IFJlYWN0LlJlYWN0RWxlbWVudFtdIHwgSXRlcmFibGU8UmVhY3QuUmVhY3ROb2RlPiB8IEpTWC5FbGVtZW50XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50UHJvcHMgPSBEb2N1bWVudEluaXRpYWxQcm9wcyAmIEh0bWxQcm9wc1xuXG4vKipcbiAqIE5leHQgYEFQSWAgcm91dGUgcmVxdWVzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRBcGlSZXF1ZXN0IGV4dGVuZHMgSW5jb21pbmdNZXNzYWdlIHtcbiAgLyoqXG4gICAqIE9iamVjdCBvZiBgcXVlcnlgIHZhbHVlcyBmcm9tIHVybFxuICAgKi9cbiAgcXVlcnk6IFBhcnRpYWw8e1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdXG4gIH0+XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYGNvb2tpZXNgIGZyb20gaGVhZGVyXG4gICAqL1xuICBjb29raWVzOiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcbiAgfT5cblxuICBib2R5OiBhbnlcblxuICBlbnY6IEVudlxuXG4gIGRyYWZ0TW9kZT86IGJvb2xlYW5cblxuICBwcmV2aWV3PzogYm9vbGVhblxuICAvKipcbiAgICogUHJldmlldyBkYXRhIHNldCBvbiB0aGUgcmVxdWVzdCwgaWYgYW55XG4gICAqICovXG4gIHByZXZpZXdEYXRhPzogUHJldmlld0RhdGFcbn1cblxuLyoqXG4gKiBTZW5kIGJvZHkgb2YgcmVzcG9uc2VcbiAqL1xudHlwZSBTZW5kPFQ+ID0gKGJvZHk6IFQpID0+IHZvaWRcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlc3BvbnNlXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlSZXNwb25zZTxEYXRhID0gYW55PiA9IFNlcnZlclJlc3BvbnNlICYge1xuICAvKipcbiAgICogU2VuZCBkYXRhIGBhbnlgIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIHNlbmQ6IFNlbmQ8RGF0YT5cbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBganNvbmAgZGF0YSBpbiByZXNwb25zZVxuICAgKi9cbiAganNvbjogU2VuZDxEYXRhPlxuICBzdGF0dXM6IChzdGF0dXNDb2RlOiBudW1iZXIpID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuICByZWRpcmVjdCh1cmw6IHN0cmluZyk6IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuICByZWRpcmVjdChzdGF0dXM6IG51bWJlciwgdXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IGRyYWZ0IG1vZGVcbiAgICovXG4gIHNldERyYWZ0TW9kZTogKG9wdGlvbnM6IHsgZW5hYmxlOiBib29sZWFuIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBTZXQgcHJldmlldyBkYXRhIGZvciBOZXh0LmpzJyBwcmVyZW5kZXIgbW9kZVxuICAgKi9cbiAgc2V0UHJldmlld0RhdGE6IChcbiAgICBkYXRhOiBvYmplY3QgfCBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBudW1iZXIgKGluIHNlY29uZHMpIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIGxhc3QgZm9yLlxuICAgICAgICogVGhlIGdpdmVuIG51bWJlciB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIGJ5IHJvdW5kaW5nIGRvd24uXG4gICAgICAgKiBCeSBkZWZhdWx0LCBubyBtYXhpbXVtIGFnZSBpcyBzZXQgYW5kIHRoZSBwcmV2aWV3IHNlc3Npb24gZmluaXNoZXNcbiAgICAgICAqIHdoZW4gdGhlIGNsaWVudCBzaHV0cyBkb3duIChicm93c2VyIGlzIGNsb3NlZCkuXG4gICAgICAgKi9cbiAgICAgIG1heEFnZT86IG51bWJlclxuICAgICAgLyoqXG4gICAgICAgKiBTcGVjaWZpZXMgdGhlIHBhdGggZm9yIHRoZSBwcmV2aWV3IHNlc3Npb24gdG8gd29yayB1bmRlci4gQnkgZGVmYXVsdCxcbiAgICAgICAqIHRoZSBwYXRoIGlzIGNvbnNpZGVyZWQgdGhlIFwiZGVmYXVsdCBwYXRoXCIsIGkuZS4sIGFueSBwYWdlcyB1bmRlciBcIi9cIi5cbiAgICAgICAqL1xuICAgICAgcGF0aD86IHN0cmluZ1xuICAgIH1cbiAgKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogQ2xlYXIgcHJldmlldyBkYXRhIGZvciBOZXh0LmpzJyBwcmVyZW5kZXIgbW9kZVxuICAgKi9cbiAgY2xlYXJQcmV2aWV3RGF0YTogKG9wdGlvbnM/OiB7IHBhdGg/OiBzdHJpbmcgfSkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFJldmFsaWRhdGUgYSBzcGVjaWZpYyBwYWdlIGFuZCByZWdlbmVyYXRlIGl0IHVzaW5nIE9uLURlbWFuZCBJbmNyZW1lbnRhbFxuICAgKiBTdGF0aWMgUmVnZW5lcmF0aW9uLlxuICAgKiBUaGUgcGF0aCBzaG91bGQgYmUgYW4gYWN0dWFsIHBhdGgsIG5vdCBhIHJld3JpdHRlbiBwYXRoLiBFLmcuIGZvclxuICAgKiBcIi9ibG9nL1tzbHVnXVwiIHRoaXMgc2hvdWxkIGJlIFwiL2Jsb2cvcG9zdC0xXCIuXG4gICAqIEBsaW5rIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvaW5jcmVtZW50YWwtc3RhdGljLXJlZ2VuZXJhdGlvbiNvbi1kZW1hbmQtcmV2YWxpZGF0aW9uLXdpdGgtcmV2YWxpZGF0ZXBhdGhcbiAgICovXG4gIHJldmFsaWRhdGU6IChcbiAgICB1cmxQYXRoOiBzdHJpbmcsXG4gICAgb3B0cz86IHtcbiAgICAgIHVuc3RhYmxlX29ubHlHZW5lcmF0ZWQ/OiBib29sZWFuXG4gICAgfVxuICApID0+IFByb21pc2U8dm9pZD5cbn1cblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIGhhbmRsZXJcbiAqL1xuZXhwb3J0IHR5cGUgTmV4dEFwaUhhbmRsZXI8VCA9IGFueT4gPSAoXG4gIHJlcTogTmV4dEFwaVJlcXVlc3QsXG4gIHJlczogTmV4dEFwaVJlc3BvbnNlPFQ+XG4pID0+IHVua25vd24gfCBQcm9taXNlPHVua25vd24+XG5cbi8qKlxuICogVXRpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNPbmNlPFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IFJldHVyblR5cGU8VD4+KFxuICBmbjogVFxuKTogVCB7XG4gIGxldCB1c2VkID0gZmFsc2VcbiAgbGV0IHJlc3VsdDogUmV0dXJuVHlwZTxUPlxuXG4gIHJldHVybiAoKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgaWYgKCF1c2VkKSB7XG4gICAgICB1c2VkID0gdHJ1ZVxuICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncylcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KSBhcyBUXG59XG5cbi8vIFNjaGVtZTogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjc2VjdGlvbi0zLjFcbi8vIEFic29sdXRlIFVSTDogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjc2VjdGlvbi00LjNcbmNvbnN0IEFCU09MVVRFX1VSTF9SRUdFWCA9IC9eW2EtekEtWl1bYS16QS1aXFxkK1xcLS5dKj86L1xuZXhwb3J0IGNvbnN0IGlzQWJzb2x1dGVVcmwgPSAodXJsOiBzdHJpbmcpID0+IEFCU09MVVRFX1VSTF9SRUdFWC50ZXN0KHVybClcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2F0aW9uT3JpZ2luKCkge1xuICBjb25zdCB7IHByb3RvY29sLCBob3N0bmFtZSwgcG9ydCB9ID0gd2luZG93LmxvY2F0aW9uXG4gIHJldHVybiBgJHtwcm90b2NvbH0vLyR7aG9zdG5hbWV9JHtwb3J0ID8gJzonICsgcG9ydCA6ICcnfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVSTCgpIHtcbiAgY29uc3QgeyBocmVmIH0gPSB3aW5kb3cubG9jYXRpb25cbiAgY29uc3Qgb3JpZ2luID0gZ2V0TG9jYXRpb25PcmlnaW4oKVxuICByZXR1cm4gaHJlZi5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3BsYXlOYW1lPFA+KENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxQPikge1xuICByZXR1cm4gdHlwZW9mIENvbXBvbmVudCA9PT0gJ3N0cmluZydcbiAgICA/IENvbXBvbmVudFxuICAgIDogQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdVbmtub3duJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXNTZW50KHJlczogU2VydmVyUmVzcG9uc2UpIHtcbiAgcmV0dXJuIHJlcy5maW5pc2hlZCB8fCByZXMuaGVhZGVyc1NlbnRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmw6IHN0cmluZykge1xuICBjb25zdCB1cmxQYXJ0cyA9IHVybC5zcGxpdCgnPycpXG4gIGNvbnN0IHVybE5vUXVlcnkgPSB1cmxQYXJ0c1swXVxuXG4gIHJldHVybiAoXG4gICAgdXJsTm9RdWVyeVxuICAgICAgLy8gZmlyc3Qgd2UgcmVwbGFjZSBhbnkgbm9uLWVuY29kZWQgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkXG4gICAgICAvLyB0aGVuIG5vcm1hbGl6ZSByZXBlYXRlZCBmb3J3YXJkIHNsYXNoZXNcbiAgICAgIC5yZXBsYWNlKC9cXFxcL2csICcvJylcbiAgICAgIC5yZXBsYWNlKC9cXC9cXC8rL2csICcvJykgK1xuICAgICh1cmxQYXJ0c1sxXSA/IGA/JHt1cmxQYXJ0cy5zbGljZSgxKS5qb2luKCc/Jyl9YCA6ICcnKVxuICApXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkR2V0SW5pdGlhbFByb3BzPFxuICBDIGV4dGVuZHMgQmFzZUNvbnRleHQsXG4gIElQID0ge30sXG4gIFAgPSB7fSxcbj4oQXBwOiBOZXh0Q29tcG9uZW50VHlwZTxDLCBJUCwgUD4sIGN0eDogQyk6IFByb21pc2U8SVA+IHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoQXBwLnByb3RvdHlwZT8uZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgQXBwXG4gICAgICApfS5nZXRJbml0aWFsUHJvcHMoKVwiIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kIC0gdmlzaXQgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ2V0LWluaXRpYWwtcHJvcHMtYXMtYW4taW5zdGFuY2UtbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uLmBcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICAgIH1cbiAgfVxuICAvLyB3aGVuIGNhbGxlZCBmcm9tIF9hcHAgYGN0eGAgaXMgbmVzdGVkIGluIGBjdHhgXG4gIGNvbnN0IHJlcyA9IGN0eC5yZXMgfHwgKGN0eC5jdHggJiYgY3R4LmN0eC5yZXMpXG5cbiAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgaWYgKGN0eC5jdHggJiYgY3R4LkNvbXBvbmVudCkge1xuICAgICAgLy8gQHRzLWlnbm9yZSBwYWdlUHJvcHMgZGVmYXVsdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFnZVByb3BzOiBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKGN0eC5Db21wb25lbnQsIGN0eC5jdHgpLFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge30gYXMgSVBcbiAgfVxuXG4gIGNvbnN0IHByb3BzID0gYXdhaXQgQXBwLmdldEluaXRpYWxQcm9wcyhjdHgpXG5cbiAgaWYgKHJlcyAmJiBpc1Jlc1NlbnQocmVzKSkge1xuICAgIHJldHVybiBwcm9wc1xuICB9XG5cbiAgaWYgKCFwcm9wcykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgXCIke2dldERpc3BsYXlOYW1lKFxuICAgICAgQXBwXG4gICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBzaG91bGQgcmVzb2x2ZSB0byBhbiBvYmplY3QuIEJ1dCBmb3VuZCBcIiR7cHJvcHN9XCIgaW5zdGVhZC5gXG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoID09PSAwICYmICFjdHguY3R4KSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGAke2dldERpc3BsYXlOYW1lKFxuICAgICAgICAgIEFwcFxuICAgICAgICApfSByZXR1cm5lZCBhbiBlbXB0eSBvYmplY3QgZnJvbSBcXGBnZXRJbml0aWFsUHJvcHNcXGAuIFRoaXMgZGUtb3B0aW1pemVzIGFuZCBwcmV2ZW50cyBhdXRvbWF0aWMgc3RhdGljIG9wdGltaXphdGlvbi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZW1wdHktb2JqZWN0LWdldEluaXRpYWxQcm9wc2BcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvcHNcbn1cblxuZXhwb3J0IGNvbnN0IFNQID0gdHlwZW9mIHBlcmZvcm1hbmNlICE9PSAndW5kZWZpbmVkJ1xuZXhwb3J0IGNvbnN0IFNUID1cbiAgU1AgJiZcbiAgKFsnbWFyaycsICdtZWFzdXJlJywgJ2dldEVudHJpZXNCeU5hbWUnXSBhcyBjb25zdCkuZXZlcnkoXG4gICAgKG1ldGhvZCkgPT4gdHlwZW9mIHBlcmZvcm1hbmNlW21ldGhvZF0gPT09ICdmdW5jdGlvbidcbiAgKVxuXG5leHBvcnQgY2xhc3MgRGVjb2RlRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuZXhwb3J0IGNsYXNzIE5vcm1hbGl6ZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBQYWdlTm90Rm91bmRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29kZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5uYW1lID0gJ1BhZ2VOb3RGb3VuZEVycm9yJ1xuICAgIHRoaXMubWVzc2FnZSA9IGBDYW5ub3QgZmluZCBtb2R1bGUgZm9yIHBhZ2U6ICR7cGFnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pc3NpbmdTdGF0aWNQYWdlIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwYWdlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLm1lc3NhZ2UgPSBgRmFpbGVkIHRvIGxvYWQgc3RhdGljIGZpbGUgZm9yIHBhZ2U6ICR7cGFnZX0gJHttZXNzYWdlfWBcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jb2RlID0gJ0VOT0VOVCdcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgdGhlIG1pZGRsZXdhcmUgbW9kdWxlYFxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVGcyB7XG4gIGV4aXN0c1N5bmM6IHR5cGVvZiBmcy5leGlzdHNTeW5jXG4gIHJlYWRGaWxlOiB0eXBlb2YgZnMucHJvbWlzZXMucmVhZEZpbGVcbiAgcmVhZEZpbGVTeW5jOiB0eXBlb2YgZnMucmVhZEZpbGVTeW5jXG4gIHdyaXRlRmlsZShmOiBzdHJpbmcsIGQ6IGFueSk6IFByb21pc2U8dm9pZD5cbiAgbWtkaXIoZGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQgfCBzdHJpbmc+XG4gIHN0YXQoZjogc3RyaW5nKTogUHJvbWlzZTx7IG10aW1lOiBEYXRlIH0+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlFcnJvcihlcnJvcjogRXJyb3IpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgbWVzc2FnZTogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrIH0pXG59XG4iXSwibmFtZXMiOlsiRGVjb2RlRXJyb3IiLCJNaWRkbGV3YXJlTm90Rm91bmRFcnJvciIsIk1pc3NpbmdTdGF0aWNQYWdlIiwiTm9ybWFsaXplRXJyb3IiLCJQYWdlTm90Rm91bmRFcnJvciIsIlNQIiwiU1QiLCJXRUJfVklUQUxTIiwiZXhlY09uY2UiLCJnZXREaXNwbGF5TmFtZSIsImdldExvY2F0aW9uT3JpZ2luIiwiZ2V0VVJMIiwiaXNBYnNvbHV0ZVVybCIsImlzUmVzU2VudCIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJzdHJpbmdpZnlFcnJvciIsImZuIiwidXNlZCIsInJlc3VsdCIsImFyZ3MiLCJBQlNPTFVURV9VUkxfUkVHRVgiLCJ1cmwiLCJ0ZXN0IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJvcmlnaW4iLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJyZXMiLCJmaW5pc2hlZCIsImhlYWRlcnNTZW50IiwidXJsUGFydHMiLCJzcGxpdCIsInVybE5vUXVlcnkiLCJyZXBsYWNlIiwic2xpY2UiLCJqb2luIiwiQXBwIiwiY3R4IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicHJvdG90eXBlIiwiZ2V0SW5pdGlhbFByb3BzIiwibWVzc2FnZSIsIkVycm9yIiwicGFnZVByb3BzIiwicHJvcHMiLCJPYmplY3QiLCJrZXlzIiwiY29uc29sZSIsIndhcm4iLCJwZXJmb3JtYW5jZSIsImV2ZXJ5IiwibWV0aG9kIiwiY29uc3RydWN0b3IiLCJwYWdlIiwiY29kZSIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\n"); /***/ }), /***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n} //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FXU0E7OztlQUFBQTs7O0FBWFQsSUFBSUEsV0FBVyxDQUFDQyxLQUFlO0FBQy9CLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDLE1BQU1HLFdBQVcsSUFBSUM7SUFDckJOLFdBQVcsQ0FBQ087UUFDVixJQUFJLENBQUNGLFNBQVNHLEdBQUcsQ0FBQ0QsTUFBTTtZQUN0QkUsUUFBUUMsSUFBSSxDQUFDSDtRQUNmO1FBQ0FGLFNBQVNNLEdBQUcsQ0FBQ0o7SUFDZjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHdhcm5PbmNlID0gKF86IHN0cmluZykgPT4ge31cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IHdhcm5pbmdzID0gbmV3IFNldDxzdHJpbmc+KClcbiAgd2Fybk9uY2UgPSAobXNnOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIXdhcm5pbmdzLmhhcyhtc2cpKSB7XG4gICAgICBjb25zb2xlLndhcm4obXNnKVxuICAgIH1cbiAgICB3YXJuaW5ncy5hZGQobXNnKVxuICB9XG59XG5cbmV4cG9ydCB7IHdhcm5PbmNlIH1cbiJdLCJuYW1lcyI6WyJ3YXJuT25jZSIsIl8iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ3YXJuaW5ncyIsIlNldCIsIm1zZyIsImhhcyIsImNvbnNvbGUiLCJ3YXJuIiwiYWRkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/api/server.js": /*!**********************************************!*\ !*** ./node_modules/next/dist/api/server.js ***! \**********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../server/web/exports/index */ \"(rsc)/./node_modules/next/dist/server/web/exports/index.js\");\n/* harmony import */ var _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=server.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRDOztBQUU1QyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9zZXJ2ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vc2VydmVyL3dlYi9leHBvcnRzL2luZGV4JztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VydmVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/api/server.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/build/output/log.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/build/output/log.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n bootstrap: function() {\n return bootstrap;\n },\n error: function() {\n return error;\n },\n event: function() {\n return event;\n },\n info: function() {\n return info;\n },\n prefixes: function() {\n return prefixes;\n },\n ready: function() {\n return ready;\n },\n trace: function() {\n return trace;\n },\n wait: function() {\n return wait;\n },\n warn: function() {\n return warn;\n },\n warnOnce: function() {\n return warnOnce;\n }\n});\nconst _picocolors = __webpack_require__(/*! ../../lib/picocolors */ \"(rsc)/./node_modules/next/dist/lib/picocolors.js\");\nconst _lrucache = __webpack_require__(/*! ../../server/lib/lru-cache */ \"(rsc)/./node_modules/next/dist/server/lib/lru-cache.js\");\nconst prefixes = {\n wait: (0, _picocolors.white)((0, _picocolors.bold)('○')),\n error: (0, _picocolors.red)((0, _picocolors.bold)('⨯')),\n warn: (0, _picocolors.yellow)((0, _picocolors.bold)('⚠')),\n ready: '▲',\n info: (0, _picocolors.white)((0, _picocolors.bold)(' ')),\n event: (0, _picocolors.green)((0, _picocolors.bold)('✓')),\n trace: (0, _picocolors.magenta)((0, _picocolors.bold)('»'))\n};\nconst LOGGING_METHOD = {\n log: 'log',\n warn: 'warn',\n error: 'error'\n};\nfunction prefixedLog(prefixType, ...message) {\n if ((message[0] === '' || message[0] === undefined) && message.length === 1) {\n message.shift();\n }\n const consoleMethod = prefixType in LOGGING_METHOD ? LOGGING_METHOD[prefixType] : 'log';\n const prefix = prefixes[prefixType];\n // If there's no message, don't print the prefix but a new line\n if (message.length === 0) {\n console[consoleMethod]('');\n } else {\n // Ensure if there's ANSI escape codes it's concatenated into one string.\n // Chrome DevTool can only handle color if it's in one string.\n if (message.length === 1 && typeof message[0] === 'string') {\n console[consoleMethod](' ' + prefix + ' ' + message[0]);\n } else {\n console[consoleMethod](' ' + prefix, ...message);\n }\n }\n}\nfunction bootstrap(...message) {\n // logging format: ' <prefix> <message>'\n // e.g. ' ✓ Compiled successfully'\n // Add spaces to align with the indent of other logs\n console.log(' ' + message.join(' '));\n}\nfunction wait(...message) {\n prefixedLog('wait', ...message);\n}\nfunction error(...message) {\n prefixedLog('error', ...message);\n}\nfunction warn(...message) {\n prefixedLog('warn', ...message);\n}\nfunction ready(...message) {\n prefixedLog('ready', ...message);\n}\nfunction info(...message) {\n prefixedLog('info', ...message);\n}\nfunction event(...message) {\n prefixedLog('event', ...message);\n}\nfunction trace(...message) {\n prefixedLog('trace', ...message);\n}\nconst warnOnceCache = new _lrucache.LRUCache(10000, (value)=>value.length);\nfunction warnOnce(...message) {\n const key = message.join(' ');\n if (!warnOnceCache.has(key)) {\n warnOnceCache.set(key, key);\n warn(...message);\n }\n}\n\n//# sourceMappingURL=log.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL291dHB1dC9sb2cuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBV0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG9CQUFvQixtQkFBTyxDQUFDLDhFQUFzQjtBQUNsRCxrQkFBa0IsbUJBQU8sQ0FBQywwRkFBNEI7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC9vdXRwdXQvbG9nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYm9vdHN0cmFwOiBudWxsLFxuICAgIGVycm9yOiBudWxsLFxuICAgIGV2ZW50OiBudWxsLFxuICAgIGluZm86IG51bGwsXG4gICAgcHJlZml4ZXM6IG51bGwsXG4gICAgcmVhZHk6IG51bGwsXG4gICAgdHJhY2U6IG51bGwsXG4gICAgd2FpdDogbnVsbCxcbiAgICB3YXJuOiBudWxsLFxuICAgIHdhcm5PbmNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGJvb3RzdHJhcDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBib290c3RyYXA7XG4gICAgfSxcbiAgICBlcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9LFxuICAgIGV2ZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgIH0sXG4gICAgaW5mbzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbmZvO1xuICAgIH0sXG4gICAgcHJlZml4ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHJlZml4ZXM7XG4gICAgfSxcbiAgICByZWFkeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZWFkeTtcbiAgICB9LFxuICAgIHRyYWNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNlO1xuICAgIH0sXG4gICAgd2FpdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3YWl0O1xuICAgIH0sXG4gICAgd2FybjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3YXJuO1xuICAgIH0sXG4gICAgd2Fybk9uY2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2Fybk9uY2U7XG4gICAgfVxufSk7XG5jb25zdCBfcGljb2NvbG9ycyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvcGljb2NvbG9yc1wiKTtcbmNvbnN0IF9scnVjYWNoZSA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL2xydS1jYWNoZVwiKTtcbmNvbnN0IHByZWZpeGVzID0ge1xuICAgIHdhaXQ6ICgwLCBfcGljb2NvbG9ycy53aGl0ZSkoKDAsIF9waWNvY29sb3JzLmJvbGQpKCfil4snKSksXG4gICAgZXJyb3I6ICgwLCBfcGljb2NvbG9ycy5yZWQpKCgwLCBfcGljb2NvbG9ycy5ib2xkKSgn4qivJykpLFxuICAgIHdhcm46ICgwLCBfcGljb2NvbG9ycy55ZWxsb3cpKCgwLCBfcGljb2NvbG9ycy5ib2xkKSgn4pqgJykpLFxuICAgIHJlYWR5OiAn4payJyxcbiAgICBpbmZvOiAoMCwgX3BpY29jb2xvcnMud2hpdGUpKCgwLCBfcGljb2NvbG9ycy5ib2xkKSgnICcpKSxcbiAgICBldmVudDogKDAsIF9waWNvY29sb3JzLmdyZWVuKSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJ+KckycpKSxcbiAgICB0cmFjZTogKDAsIF9waWNvY29sb3JzLm1hZ2VudGEpKCgwLCBfcGljb2NvbG9ycy5ib2xkKSgnwrsnKSlcbn07XG5jb25zdCBMT0dHSU5HX01FVEhPRCA9IHtcbiAgICBsb2c6ICdsb2cnLFxuICAgIHdhcm46ICd3YXJuJyxcbiAgICBlcnJvcjogJ2Vycm9yJ1xufTtcbmZ1bmN0aW9uIHByZWZpeGVkTG9nKHByZWZpeFR5cGUsIC4uLm1lc3NhZ2UpIHtcbiAgICBpZiAoKG1lc3NhZ2VbMF0gPT09ICcnIHx8IG1lc3NhZ2VbMF0gPT09IHVuZGVmaW5lZCkgJiYgbWVzc2FnZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgbWVzc2FnZS5zaGlmdCgpO1xuICAgIH1cbiAgICBjb25zdCBjb25zb2xlTWV0aG9kID0gcHJlZml4VHlwZSBpbiBMT0dHSU5HX01FVEhPRCA/IExPR0dJTkdfTUVUSE9EW3ByZWZpeFR5cGVdIDogJ2xvZyc7XG4gICAgY29uc3QgcHJlZml4ID0gcHJlZml4ZXNbcHJlZml4VHlwZV07XG4gICAgLy8gSWYgdGhlcmUncyBubyBtZXNzYWdlLCBkb24ndCBwcmludCB0aGUgcHJlZml4IGJ1dCBhIG5ldyBsaW5lXG4gICAgaWYgKG1lc3NhZ2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnNvbGVbY29uc29sZU1ldGhvZF0oJycpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEVuc3VyZSBpZiB0aGVyZSdzIEFOU0kgZXNjYXBlIGNvZGVzIGl0J3MgY29uY2F0ZW5hdGVkIGludG8gb25lIHN0cmluZy5cbiAgICAgICAgLy8gQ2hyb21lIERldlRvb2wgY2FuIG9ubHkgaGFuZGxlIGNvbG9yIGlmIGl0J3MgaW4gb25lIHN0cmluZy5cbiAgICAgICAgaWYgKG1lc3NhZ2UubGVuZ3RoID09PSAxICYmIHR5cGVvZiBtZXNzYWdlWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc29sZVtjb25zb2xlTWV0aG9kXSgnICcgKyBwcmVmaXggKyAnICcgKyBtZXNzYWdlWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGVbY29uc29sZU1ldGhvZF0oJyAnICsgcHJlZml4LCAuLi5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGJvb3RzdHJhcCguLi5tZXNzYWdlKSB7XG4gICAgLy8gbG9nZ2luZyBmb3JtYXQ6ICcgPHByZWZpeD4gPG1lc3NhZ2U+J1xuICAgIC8vIGUuZy4gJyDinJMgQ29tcGlsZWQgc3VjY2Vzc2Z1bGx5J1xuICAgIC8vIEFkZCBzcGFjZXMgdG8gYWxpZ24gd2l0aCB0aGUgaW5kZW50IG9mIG90aGVyIGxvZ3NcbiAgICBjb25zb2xlLmxvZygnICAgJyArIG1lc3NhZ2Uuam9pbignICcpKTtcbn1cbmZ1bmN0aW9uIHdhaXQoLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKCd3YWl0JywgLi4ubWVzc2FnZSk7XG59XG5mdW5jdGlvbiBlcnJvciguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coJ2Vycm9yJywgLi4ubWVzc2FnZSk7XG59XG5mdW5jdGlvbiB3YXJuKC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZygnd2FybicsIC4uLm1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gcmVhZHkoLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKCdyZWFkeScsIC4uLm1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gaW5mbyguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coJ2luZm8nLCAuLi5tZXNzYWdlKTtcbn1cbmZ1bmN0aW9uIGV2ZW50KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZygnZXZlbnQnLCAuLi5tZXNzYWdlKTtcbn1cbmZ1bmN0aW9uIHRyYWNlKC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZygndHJhY2UnLCAuLi5tZXNzYWdlKTtcbn1cbmNvbnN0IHdhcm5PbmNlQ2FjaGUgPSBuZXcgX2xydWNhY2hlLkxSVUNhY2hlKDEwMDAwLCAodmFsdWUpPT52YWx1ZS5sZW5ndGgpO1xuZnVuY3Rpb24gd2Fybk9uY2UoLi4ubWVzc2FnZSkge1xuICAgIGNvbnN0IGtleSA9IG1lc3NhZ2Uuam9pbignICcpO1xuICAgIGlmICghd2Fybk9uY2VDYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICB3YXJuT25jZUNhY2hlLnNldChrZXksIGtleSk7XG4gICAgICAgIHdhcm4oLi4ubWVzc2FnZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1sb2cuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/output/log.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/* eslint-disable import/no-extraneous-dependencies */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createProxy\", ({\n enumerable: true,\n get: function() {\n return createProxy;\n }\n}));\nconst _server = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\nconst createProxy = _server.createClientModuleProxy;\n\n//# sourceMappingURL=module-proxy.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5LmpzIiwibWFwcGluZ3MiOiJBQUFBLHVEQUFvRTtBQUNwRSw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQ7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjcmVhdGVQcm94eVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUHJveHk7XG4gICAgfVxufSk7XG5jb25zdCBfc2VydmVyID0gcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXJcIik7XG5jb25zdCBjcmVhdGVQcm94eSA9IF9zZXJ2ZXIuY3JlYXRlQ2xpZW50TW9kdWxlUHJveHk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS1wcm94eS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/app-router-headers.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/client/components/app-router-headers.js ***! \************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_HEADER: function() {\n return ACTION_HEADER;\n },\n FLIGHT_HEADERS: function() {\n return FLIGHT_HEADERS;\n },\n NEXT_ACTION_NOT_FOUND_HEADER: function() {\n return NEXT_ACTION_NOT_FOUND_HEADER;\n },\n NEXT_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\n },\n NEXT_HMR_REFRESH_HASH_COOKIE: function() {\n return NEXT_HMR_REFRESH_HASH_COOKIE;\n },\n NEXT_HMR_REFRESH_HEADER: function() {\n return NEXT_HMR_REFRESH_HEADER;\n },\n NEXT_IS_PRERENDER_HEADER: function() {\n return NEXT_IS_PRERENDER_HEADER;\n },\n NEXT_REWRITTEN_PATH_HEADER: function() {\n return NEXT_REWRITTEN_PATH_HEADER;\n },\n NEXT_REWRITTEN_QUERY_HEADER: function() {\n return NEXT_REWRITTEN_QUERY_HEADER;\n },\n NEXT_ROUTER_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_PREFETCH_HEADER;\n },\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_SEGMENT_PREFETCH_HEADER;\n },\n NEXT_ROUTER_STALE_TIME_HEADER: function() {\n return NEXT_ROUTER_STALE_TIME_HEADER;\n },\n NEXT_ROUTER_STATE_TREE_HEADER: function() {\n return NEXT_ROUTER_STATE_TREE_HEADER;\n },\n NEXT_RSC_UNION_QUERY: function() {\n return NEXT_RSC_UNION_QUERY;\n },\n NEXT_URL: function() {\n return NEXT_URL;\n },\n RSC_CONTENT_TYPE_HEADER: function() {\n return RSC_CONTENT_TYPE_HEADER;\n },\n RSC_HEADER: function() {\n return RSC_HEADER;\n }\n});\nconst RSC_HEADER = 'rsc';\nconst ACTION_HEADER = 'next-action';\nconst NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree';\nconst NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch';\nconst NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'next-router-segment-prefetch';\nconst NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh';\nconst NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__';\nconst NEXT_URL = 'next-url';\nconst RSC_CONTENT_TYPE_HEADER = 'text/x-component';\nconst FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER\n];\nconst NEXT_RSC_UNION_QUERY = '_rsc';\nconst NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time';\nconst NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed';\nconst NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path';\nconst NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query';\nconst NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\nconst NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYUEsYUFBYTtlQUFiQTs7SUFpQkFDLGNBQWM7ZUFBZEE7O0lBZUFDLDRCQUE0QjtlQUE1QkE7O0lBSkFDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLDRCQUE0QjtlQUE1QkE7O0lBREFDLHVCQUF1QjtlQUF2QkE7O0lBbUJBQyx3QkFBd0I7ZUFBeEJBOztJQUZBQywwQkFBMEI7ZUFBMUJBOztJQUNBQywyQkFBMkI7ZUFBM0JBOztJQXpCQUMsMkJBQTJCO2VBQTNCQTs7SUFLQUMsbUNBQW1DO2VBQW5DQTs7SUFpQkFDLDZCQUE2QjtlQUE3QkE7O0lBdkJBQyw2QkFBNkI7ZUFBN0JBOztJQXFCQUMsb0JBQW9CO2VBQXBCQTs7SUFYQUMsUUFBUTtlQUFSQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFoQkFDLFVBQVU7ZUFBVkE7OztBQUFOLE1BQU1BLGFBQWE7QUFDbkIsTUFBTWhCLGdCQUFnQjtBQUl0QixNQUFNWSxnQ0FBZ0M7QUFDdEMsTUFBTUgsOEJBQThCO0FBS3BDLE1BQU1DLHNDQUNYO0FBQ0ssTUFBTUwsMEJBQTBCO0FBQ2hDLE1BQU1ELCtCQUErQjtBQUNyQyxNQUFNVSxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUVoQyxNQUFNZCxpQkFBaUI7SUFDNUJlO0lBQ0FKO0lBQ0FIO0lBQ0FKO0lBQ0FLO0NBQ0Q7QUFFTSxNQUFNRyx1QkFBdUI7QUFFN0IsTUFBTUYsZ0NBQWdDO0FBQ3RDLE1BQU1SLDJCQUEyQjtBQUNqQyxNQUFNSSw2QkFBNkI7QUFDbkMsTUFBTUMsOEJBQThCO0FBQ3BDLE1BQU1GLDJCQUEyQjtBQUNqQyxNQUFNSiwrQkFBK0IiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJTQ19IRUFERVIgPSAncnNjJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IEFDVElPTl9IRUFERVIgPSAnbmV4dC1hY3Rpb24nIGFzIGNvbnN0XG4vLyBUT0RPOiBJbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGZ1bGwgcm91dGVyIHN0YXRlLCB3ZSBvbmx5IG5lZWQgdG8gc2VuZCB0aGVcbi8vIHNlZ21lbnQgcGF0aC4gU2F2ZXMgYnl0ZXMuIFRoZW4gd2UgY291bGQgYWxzbyB1c2UgdGhpcyBmaWVsZCBmb3Igc2VnbWVudFxuLy8gcHJlZmV0Y2hlcywgd2hpY2ggYWxzbyBuZWVkIHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIgPSAnbmV4dC1yb3V0ZXItc3RhdGUtdHJlZScgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIgPSAnbmV4dC1yb3V0ZXItcHJlZmV0Y2gnIGFzIGNvbnN0XG4vLyBUaGlzIGNvbnRhaW5zIHRoZSBwYXRoIHRvIHRoZSBzZWdtZW50IGJlaW5nIHByZWZldGNoZWQuXG4vLyBUT0RPOiBJZiB3ZSBjaGFuZ2UgbmV4dC1yb3V0ZXItc3RhdGUtdHJlZSB0byBiZSBhIHNlZ21lbnQgcGF0aCwgd2UgY2FuIHVzZVxuLy8gdGhhdCBpbnN0ZWFkLiBUaGVuIG5leHQtcm91dGVyLXByZWZldGNoIGFuZCBuZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoIGNhblxuLy8gYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgZW51bS5cbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUiA9XG4gICduZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSID0gJ25leHQtaG1yLXJlZnJlc2gnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRSA9ICdfX25leHRfaG1yX3JlZnJlc2hfaGFzaF9fJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ25leHQtdXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiA9ICd4LW5leHRqcy1yZXdyaXR0ZW4tcGF0aCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIgPSAneC1uZXh0anMtcmV3cml0dGVuLXF1ZXJ5JyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSVNfUFJFUkVOREVSX0hFQURFUiA9ICd4LW5leHRqcy1wcmVyZW5kZXInIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUiA9ICd4LW5leHRqcy1hY3Rpb24tbm90LWZvdW5kJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIiLCJORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiIsIk5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUiIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9VUkwiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIlJTQ19IRUFERVIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/builtin/forbidden.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/client/components/builtin/forbidden.js ***! \***********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Forbidden;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction Forbidden() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 403,\n message: \"This page could not be accessed.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=forbidden.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZm9yYmlkZGVuLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZm9yYmlkZGVuLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4uL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBGb3JiaWRkZW4oKSB7XG4gIHJldHVybiAoXG4gICAgPEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrXG4gICAgICBzdGF0dXM9ezQwM31cbiAgICAgIG1lc3NhZ2U9XCJUaGlzIHBhZ2UgY291bGQgbm90IGJlIGFjY2Vzc2VkLlwiXG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkZvcmJpZGRlbiIsIkhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrIiwic3RhdHVzIiwibWVzc2FnZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/forbidden.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/builtin/global-error.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/builtin/global-error.js ***! \**************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/client/components/builtin/global-error.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2dsb2JhbC1lcnJvci5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYnVpbHRpbi9nbG9iYWwtZXJyb3IuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/global-error.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/builtin/not-found.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/client/components/builtin/not-found.js ***! \***********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return NotFound;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction NotFound() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 404,\n message: \"This page could not be found.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vbm90LWZvdW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vbm90LWZvdW5kLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4uL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBOb3RGb3VuZCgpIHtcbiAgcmV0dXJuIChcbiAgICA8SFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2tcbiAgICAgIHN0YXR1cz17NDA0fVxuICAgICAgbWVzc2FnZT1cIlRoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQuXCJcbiAgICAvPlxuICApXG59XG4iXSwibmFtZXMiOlsiTm90Rm91bmQiLCJIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayIsInN0YXR1cyIsIm1lc3NhZ2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/not-found.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/builtin/unauthorized.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/builtin/unauthorized.js ***! \**************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Unauthorized;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction Unauthorized() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 401,\n message: \"You're not authorized to access this page.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unauthorized.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vdW5hdXRob3JpemVkLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vdW5hdXRob3JpemVkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4uL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBVbmF1dGhvcml6ZWQoKSB7XG4gIHJldHVybiAoXG4gICAgPEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrXG4gICAgICBzdGF0dXM9ezQwMX1cbiAgICAgIG1lc3NhZ2U9XCJZb3UncmUgbm90IGF1dGhvcml6ZWQgdG8gYWNjZXNzIHRoaXMgcGFnZS5cIlxuICAgIC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJVbmF1dGhvcml6ZWQiLCJIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayIsInN0YXR1cyIsIm1lc3NhZ2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/unauthorized.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/client-page.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/client/components/client-page.js ***! \*****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/client/components/client-page.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXBhZ2UuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/client-page.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/client-segment.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/components/client-segment.js ***! \********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/client/components/client-segment.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1zZWdtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudC5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/client-segment.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/hooks-server-context.js ***! \**************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DynamicServerError: function() {\n return DynamicServerError;\n },\n isDynamicServerError: function() {\n return isDynamicServerError;\n }\n});\nconst DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE;\n }\n}\nfunction isDynamicServerError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') {\n return false;\n }\n return err.digest === DYNAMIC_ERROR_CODE;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxrQkFBa0I7ZUFBbEJBOztJQVFHQyxvQkFBb0I7ZUFBcEJBOzs7QUFWaEIsTUFBTUMscUJBQXFCO0FBRXBCLE1BQU1GLDJCQUEyQkc7SUFHdENDLFlBQTRCQyxXQUFtQixDQUFFO1FBQy9DLEtBQUssQ0FBRSwyQkFBd0JBLGNBQUFBLElBQUFBLENBRExBLFdBQUFBLEdBQUFBLGFBQUFBLElBQUFBLENBRjVCQyxNQUFBQSxHQUFvQ0o7SUFJcEM7QUFDRjtBQUVPLFNBQVNELHFCQUFxQk0sR0FBWTtJQUMvQyxJQUNFLE9BQU9BLFFBQVEsWUFDZkEsUUFBUSxRQUNSLENBQUUsYUFBWUEsR0FBQUEsQ0FBRSxJQUNoQixPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFlOQU1JQ19FUlJPUl9DT0RFID0gJ0RZTkFNSUNfU0VSVkVSX1VTQUdFJ1xuXG5leHBvcnQgY2xhc3MgRHluYW1pY1NlcnZlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBkaWdlc3Q6IHR5cGVvZiBEWU5BTUlDX0VSUk9SX0NPREUgPSBEWU5BTUlDX0VSUk9SX0NPREVcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgIHN1cGVyKGBEeW5hbWljIHNlcnZlciB1c2FnZTogJHtkZXNjcmlwdGlvbn1gKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgRHluYW1pY1NlcnZlckVycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnIpIHx8XG4gICAgdHlwZW9mIGVyci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGVyci5kaWdlc3QgPT09IERZTkFNSUNfRVJST1JfQ09ERVxufVxuIl0sIm5hbWVzIjpbIkR5bmFtaWNTZXJ2ZXJFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiRFlOQU1JQ19FUlJPUl9DT0RFIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImRlc2NyaXB0aW9uIiwiZGlnZXN0IiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js ***! \*****************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1ib3VuZGFyeS5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItYm91bmRhcnkuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js ***! \*****************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTTPAccessErrorFallback\", ({\n enumerable: true,\n get: function() {\n return HTTPAccessErrorFallback;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _accesserrorstyles = __webpack_require__(/*! ../styles/access-error-styles */ \"(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js\");\nfunction HTTPAccessErrorFallback(param) {\n let { status, message } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: status + \": \" + message\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: _accesserrorstyles.styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* Minified CSS from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n @media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: _accesserrorstyles.styles.h1,\n children: status\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: _accesserrorstyles.styles.desc,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n style: _accesserrorstyles.styles.h2,\n children: message\n })\n })\n ]\n })\n })\n ]\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkRBRWdCQTs7O2VBQUFBOzs7OytDQUZPO0FBRWhCLFNBQVNBLHdCQUF3QixLQU12QztJQU51QyxNQUN0Q0MsTUFBTSxFQUNOQyxPQUFPLEVBSVIsR0FOdUM7SUFPdEMscUJBQ0U7OzBCQUVFLHFCQUFDQyxTQUFBQTswQkFBVUYsU0FBTyxPQUFJQzs7MEJBRXRCLHFCQUFDRSxPQUFBQTtnQkFBSUMsT0FBT0MsbUJBQUFBLE1BQU0sQ0FBQ0MsS0FBSzswQkFDdEIsb0NBQUNILE9BQUFBOztzQ0FDQyxxQkFBQ0MsU0FBQUE7NEJBQ0NHLHlCQUF5QjtnQ0FDdkI7Ozs7Ozs7Ozs7OztjQVlBLEdBQ0FDLFFBQVM7NEJBQ1g7O3NDQUVGLHFCQUFDQyxNQUFBQTs0QkFBR0MsV0FBVTs0QkFBZ0JOLE9BQU9DLG1CQUFBQSxNQUFNLENBQUNJLEVBQUU7c0NBQzNDVDs7c0NBRUgscUJBQUNHLE9BQUFBOzRCQUFJQyxPQUFPQyxtQkFBQUEsTUFBTSxDQUFDTSxJQUFJO3NDQUNyQixtQ0FBQ0MsTUFBQUE7Z0NBQUdSLE9BQU9DLG1CQUFBQSxNQUFNLENBQUNPLEVBQUU7MENBQUdYOzs7Ozs7OztBQU1uQyIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHlsZXMgfSBmcm9tICcuLi9zdHlsZXMvYWNjZXNzLWVycm9yLXN0eWxlcydcblxuZXhwb3J0IGZ1bmN0aW9uIEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrKHtcbiAgc3RhdHVzLFxuICBtZXNzYWdlLFxufToge1xuICBzdGF0dXM6IG51bWJlclxuICBtZXNzYWdlOiBzdHJpbmdcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgey8qIDxoZWFkPiAqL31cbiAgICAgIDx0aXRsZT57YCR7c3RhdHVzfTogJHttZXNzYWdlfWB9PC90aXRsZT5cbiAgICAgIHsvKiA8L2hlYWQ+ICovfVxuICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmVycm9yfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIC8qIE1pbmlmaWVkIENTUyBmcm9tXG4gICAgICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMDsgY29sb3I6ICMwMDA7IGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4zKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgICAgICBib2R5IHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5e2NvbG9yOiMwMDA7YmFja2dyb3VuZDojZmZmO21hcmdpbjowfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwuMyl9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDAwfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyl9fWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm5leHQtZXJyb3ItaDFcIiBzdHlsZT17c3R5bGVzLmgxfT5cbiAgICAgICAgICAgIHtzdGF0dXN9XG4gICAgICAgICAgPC9oMT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGVzY30+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy5oMn0+e21lc3NhZ2V9PC9oMj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrIiwic3RhdHVzIiwibWVzc2FnZSIsInRpdGxlIiwiZGl2Iiwic3R5bGUiLCJzdHlsZXMiLCJlcnJvciIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiaDEiLCJjbGFzc05hbWUiLCJkZXNjIiwiaDIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js": /*!***********************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js ***! \***********************************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTTPAccessErrorStatus: function() {\n return HTTPAccessErrorStatus;\n },\n HTTP_ERROR_FALLBACK_ERROR_CODE: function() {\n return HTTP_ERROR_FALLBACK_ERROR_CODE;\n },\n getAccessFallbackErrorTypeByStatus: function() {\n return getAccessFallbackErrorTypeByStatus;\n },\n getAccessFallbackHTTPStatus: function() {\n return getAccessFallbackHTTPStatus;\n },\n isHTTPAccessFallbackError: function() {\n return isHTTPAccessFallbackError;\n }\n});\nconst HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nconst HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\nfunction isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nfunction getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nfunction getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=http-access-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSFRUUEFjY2Vzc0Vycm9yU3RhdHVzID0ge1xuICBOT1RfRk9VTkQ6IDQwNCxcbiAgRk9SQklEREVOOiA0MDMsXG4gIFVOQVVUSE9SSVpFRDogNDAxLFxufVxuXG5jb25zdCBBTExPV0VEX0NPREVTID0gbmV3IFNldChPYmplY3QudmFsdWVzKEhUVFBBY2Nlc3NFcnJvclN0YXR1cykpXG5cbmV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgPSAnTkVYVF9IVFRQX0VSUk9SX0ZBTExCQUNLJ1xuXG5leHBvcnQgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciA9IEVycm9yICYge1xuICBkaWdlc3Q6IGAke3R5cGVvZiBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OyR7c3RyaW5nfWBcbn1cblxuLyoqXG4gKiBDaGVja3MgYW4gZXJyb3IgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgSFRUUCBuYXZpZ2F0aW9uIEFQSXMgYG5vdEZvdW5kKClgLCBgZm9yYmlkZGVuKClgIG9yIGB1bmF1dGhvcml6ZWQoKWAuXG4gKlxuICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciB0aGF0IG1heSByZWZlcmVuY2UgYSBIVFRQIGFjY2VzcyBlcnJvclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXJyb3IgaXMgYSBIVFRQIGFjY2VzcyBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHxcbiAgICBlcnJvciA9PT0gbnVsbCB8fFxuICAgICEoJ2RpZ2VzdCcgaW4gZXJyb3IpIHx8XG4gICAgdHlwZW9mIGVycm9yLmRpZ2VzdCAhPT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgW3ByZWZpeCwgaHR0cFN0YXR1c10gPSBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKVxuXG4gIHJldHVybiAoXG4gICAgcHJlZml4ID09PSBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgJiZcbiAgICBBTExPV0VEX0NPREVTLmhhcyhOdW1iZXIoaHR0cFN0YXR1cykpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyhcbiAgZXJyb3I6IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4pOiBudW1iZXIge1xuICBjb25zdCBodHRwU3RhdHVzID0gZXJyb3IuZGlnZXN0LnNwbGl0KCc7JylbMV1cbiAgcmV0dXJuIE51bWJlcihodHRwU3RhdHVzKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyhcbiAgc3RhdHVzOiBudW1iZXJcbik6ICdub3QtZm91bmQnIHwgJ2ZvcmJpZGRlbicgfCAndW5hdXRob3JpemVkJyB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgY2FzZSA0MDE6XG4gICAgICByZXR1cm4gJ3VuYXV0aG9yaXplZCdcbiAgICBjYXNlIDQwMzpcbiAgICAgIHJldHVybiAnZm9yYmlkZGVuJ1xuICAgIGNhc2UgNDA0OlxuICAgICAgcmV0dXJuICdub3QtZm91bmQnXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVyblxuICB9XG59XG4iXSwibmFtZXMiOlsiSFRUUEFjY2Vzc0Vycm9yU3RhdHVzIiwiSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFIiwiZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyIsImdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyIsImlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IiLCJOT1RfRk9VTkQiLCJGT1JCSURERU4iLCJVTkFVVEhPUklaRUQiLCJBTExPV0VEX0NPREVTIiwiU2V0IiwiT2JqZWN0IiwidmFsdWVzIiwiZXJyb3IiLCJkaWdlc3QiLCJwcmVmaXgiLCJodHRwU3RhdHVzIiwic3BsaXQiLCJoYXMiLCJOdW1iZXIiLCJzdGF0dXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/is-next-router-error.js ***! \**************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(rsc)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction isNextRouterError(error) {\n return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-next-router-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBV2dCQTs7O2VBQUFBOzs7Z0RBUlQ7MkNBQzZDO0FBTzdDLFNBQVNBLGtCQUNkQyxLQUFjO0lBRWQsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsZUFBQUEsRUFBZ0JELFVBQVVFLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJGO0FBQzdEIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgdHlwZSBSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgbmF2aWdhdGlvbiBzaWduYWwgZXJyb3IuIFRoZXNlIGVycm9ycyBhcmVcbiAqIHRocm93biBieSB1c2VyIGNvZGUgdG8gcGVyZm9ybSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgYW5kIGludGVycnVwdCB0aGUgUmVhY3RcbiAqIHJlbmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgUmVkaXJlY3RFcnJvciB8IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgcmV0dXJuIGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcilcbn1cbiJdLCJuYW1lcyI6WyJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/layout-router.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/client/components/layout-router.js ***! \*******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/client/components/layout-router.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMvX19uZXh0anMtaW50ZXJuYWwtcHJveHkuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuY29uc3QgeyBjcmVhdGVQcm94eSB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eVwiKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVByb3h5KFwiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/layout-router.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/match-segments.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/components/match-segments.js ***! \********************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"matchSegment\", ({\n enumerable: true,\n get: function() {\n return matchSegment;\n }\n}));\nconst matchSegment = (existingSegment, segment)=>{\n // segment is either Array or string\n if (typeof existingSegment === 'string') {\n if (typeof segment === 'string') {\n // Common case: segment is just a string\n return existingSegment === segment;\n }\n return false;\n }\n if (typeof segment === 'string') {\n return false;\n }\n return existingSegment[0] === segment[0] && existingSegment[1] === segment[1];\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=match-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21hdGNoLXNlZ21lbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLGVBQWUsQ0FDMUJDLGlCQUNBQztJQUVBLG9DQUFvQztJQUNwQyxJQUFJLE9BQU9ELG9CQUFvQixVQUFVO1FBQ3ZDLElBQUksT0FBT0MsWUFBWSxVQUFVO1lBQy9CLHdDQUF3QztZQUN4QyxPQUFPRCxvQkFBb0JDO1FBQzdCO1FBQ0EsT0FBTztJQUNUO0lBRUEsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsT0FBTztJQUNUO0lBQ0EsT0FBT0QsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUUsSUFBSUQsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUU7QUFDL0UiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9tYXRjaC1zZWdtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGNvbnN0IG1hdGNoU2VnbWVudCA9IChcbiAgZXhpc3RpbmdTZWdtZW50OiBTZWdtZW50LFxuICBzZWdtZW50OiBTZWdtZW50XG4pOiBib29sZWFuID0+IHtcbiAgLy8gc2VnbWVudCBpcyBlaXRoZXIgQXJyYXkgb3Igc3RyaW5nXG4gIGlmICh0eXBlb2YgZXhpc3RpbmdTZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIENvbW1vbiBjYXNlOiBzZWdtZW50IGlzIGp1c3QgYSBzdHJpbmdcbiAgICAgIHJldHVybiBleGlzdGluZ1NlZ21lbnQgPT09IHNlZ21lbnRcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGV4aXN0aW5nU2VnbWVudFswXSA9PT0gc2VnbWVudFswXSAmJiBleGlzdGluZ1NlZ21lbnRbMV0gPT09IHNlZ21lbnRbMV1cbn1cbiJdLCJuYW1lcyI6WyJtYXRjaFNlZ21lbnQiLCJleGlzdGluZ1NlZ21lbnQiLCJzZWdtZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/match-segments.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/client/components/metadata/async-metadata.js ***! \*****************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/client/components/metadata/async-metadata.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9hc3luYy1tZXRhZGF0YS5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbWV0YWRhdGEvYXN5bmMtbWV0YWRhdGEuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/redirect-error.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/components/redirect-error.js ***! \********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REDIRECT_ERROR_CODE: function() {\n return REDIRECT_ERROR_CODE;\n },\n RedirectType: function() {\n return RedirectType;\n },\n isRedirectError: function() {\n return isRedirectError;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\nvar RedirectType = /*#__PURE__*/ function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n return RedirectType;\n}({});\nfunction isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxtQkFBbUI7ZUFBbkJBOztJQUVEQyxZQUFZO2VBQVpBOztJQWdCSUMsZUFBZTtlQUFmQTs7O2dEQXBCbUI7QUFFNUIsTUFBTUYsc0JBQXNCO0FBRTVCLElBQUtDLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7V0FBQUE7O0FBZ0JMLFNBQVNDLGdCQUFnQkMsS0FBYztJQUM1QyxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBRUEsTUFBTUEsU0FBU0QsTUFBTUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxDQUFDQyxXQUFXQyxLQUFLLEdBQUdIO0lBQzFCLE1BQU1JLGNBQWNKLE9BQU9LLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzdDLE1BQU1DLFNBQVNQLE9BQU9RLEVBQUUsQ0FBQyxDQUFDO0lBRTFCLE1BQU1DLGFBQWFDLE9BQU9IO0lBRTFCLE9BQ0VMLGNBQWNOLHVCQUNiTyxDQUFBQSxTQUFTLGFBQWFBLFNBQVMsT0FBSyxJQUNyQyxPQUFPQyxnQkFBZ0IsWUFDdkIsQ0FBQ08sTUFBTUYsZUFDUEEsY0FBY0csb0JBQUFBLGtCQUFrQjtBQUVwQyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gJy4vcmVkaXJlY3Qtc3RhdHVzLWNvZGUnXG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9FUlJPUl9DT0RFID0gJ05FWFRfUkVESVJFQ1QnXG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIHB1c2ggPSAncHVzaCcsXG4gIHJlcGxhY2UgPSAncmVwbGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIFJlZGlyZWN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgUkVESVJFQ1RfRVJST1JfQ09ERX07JHtSZWRpcmVjdFR5cGV9OyR7c3RyaW5nfTske1JlZGlyZWN0U3RhdHVzQ29kZX07YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3RFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGRpZ2VzdCA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG4gIGNvbnN0IFtlcnJvckNvZGUsIHR5cGVdID0gZGlnZXN0XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0gZGlnZXN0LnNsaWNlKDIsIC0yKS5qb2luKCc7JylcbiAgY29uc3Qgc3RhdHVzID0gZGlnZXN0LmF0KC0yKVxuXG4gIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoc3RhdHVzKVxuXG4gIHJldHVybiAoXG4gICAgZXJyb3JDb2RlID09PSBSRURJUkVDVF9FUlJPUl9DT0RFICYmXG4gICAgKHR5cGUgPT09ICdyZXBsYWNlJyB8fCB0eXBlID09PSAncHVzaCcpICYmXG4gICAgdHlwZW9mIGRlc3RpbmF0aW9uID09PSAnc3RyaW5nJyAmJlxuICAgICFpc05hTihzdGF0dXNDb2RlKSAmJlxuICAgIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiaXNSZWRpcmVjdEVycm9yIiwiZXJyb3IiLCJkaWdlc3QiLCJzcGxpdCIsImVycm9yQ29kZSIsInR5cGUiLCJkZXN0aW5hdGlvbiIsInNsaWNlIiwiam9pbiIsInN0YXR1cyIsImF0Iiwic3RhdHVzQ29kZSIsIk51bWJlciIsImlzTmFOIiwiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/redirect-error.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/redirect-status-code.js ***! \**************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js": /*!**********************************************************************************!*\ !*** ./node_modules/next/dist/client/components/render-from-template-context.js ***! \**********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/client/components/render-from-template-context.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMvX19uZXh0anMtaW50ZXJuYWwtcHJveHkuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuY29uc3QgeyBjcmVhdGVQcm94eSB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eVwiKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVByb3h5KFwiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js ***! \*****************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n computeChangedPath: function() {\n return computeChangedPath;\n },\n extractPathFromFlightRouterState: function() {\n return extractPathFromFlightRouterState;\n },\n getSelectedParams: function() {\n return getSelectedParams;\n }\n});\nconst _interceptionroutes = __webpack_require__(/*! ../../../shared/lib/router/utils/interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(rsc)/./node_modules/next/dist/client/components/match-segments.js\");\nconst removeLeadingSlash = (segment)=>{\n return segment[0] === '/' ? segment.slice(1) : segment;\n};\nconst segmentToPathname = (segment)=>{\n if (typeof segment === 'string') {\n // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page\n // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense.\n if (segment === 'children') return '';\n return segment;\n }\n return segment[1];\n};\nfunction normalizeSegments(segments) {\n return segments.reduce((acc, segment)=>{\n segment = removeLeadingSlash(segment);\n if (segment === '' || (0, _segment.isGroupSegment)(segment)) {\n return acc;\n }\n return acc + \"/\" + segment;\n }, '') || '/';\n}\nfunction extractPathFromFlightRouterState(flightRouterState) {\n const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0];\n if (segment === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined;\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return '';\n const segments = [\n segmentToPathname(segment)\n ];\n var _flightRouterState_;\n const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {};\n const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined;\n if (childrenPath !== undefined) {\n segments.push(childrenPath);\n } else {\n for (const [key, value] of Object.entries(parallelRoutes)){\n if (key === 'children') continue;\n const childPath = extractPathFromFlightRouterState(value);\n if (childPath !== undefined) {\n segments.push(childPath);\n }\n }\n }\n return normalizeSegments(segments);\n}\nfunction computeChangedPathImpl(treeA, treeB) {\n const [segmentA, parallelRoutesA] = treeA;\n const [segmentB, parallelRoutesB] = treeB;\n const normalizedSegmentA = segmentToPathname(segmentA);\n const normalizedSegmentB = segmentToPathname(segmentB);\n if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) {\n return '';\n }\n if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) {\n var _extractPathFromFlightRouterState;\n // once we find where the tree changed, we compute the rest of the path by traversing the tree\n return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : '';\n }\n for(const parallelRouterKey in parallelRoutesA){\n if (parallelRoutesB[parallelRouterKey]) {\n const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]);\n if (changedPath !== null) {\n return segmentToPathname(segmentB) + \"/\" + changedPath;\n }\n }\n }\n return null;\n}\nfunction computeChangedPath(treeA, treeB) {\n const changedPath = computeChangedPathImpl(treeA, treeB);\n if (changedPath == null || changedPath === '/') {\n return changedPath;\n }\n // lightweight normalization to remove route groups\n return normalizeSegments(changedPath.split('/'));\n}\nfunction getSelectedParams(currentTree, params) {\n if (params === void 0) params = {};\n const parallelRoutes = currentTree[1];\n for (const parallelRoute of Object.values(parallelRoutes)){\n const segment = parallelRoute[0];\n const isDynamicParameter = Array.isArray(segment);\n const segmentValue = isDynamicParameter ? segment[1] : segment;\n if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue;\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll = isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc');\n if (isCatchAll) {\n params[segment[0]] = segment[1].split('/');\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1];\n }\n params = getSelectedParams(parallelRoute, params);\n }\n return params;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=compute-changed-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NvbXB1dGUtY2hhbmdlZC1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdIZ0JBLGtCQUFrQjtlQUFsQkE7O0lBOUVBQyxnQ0FBZ0M7ZUFBaENBOztJQStGQUMsaUJBQWlCO2VBQWpCQTs7O2dEQXJJMkI7cUNBTXBDOzJDQUNzQjtBQUU3QixNQUFNQyxxQkFBcUIsQ0FBQ0M7SUFDMUIsT0FBT0EsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNQSxRQUFRQyxLQUFLLENBQUMsS0FBS0Q7QUFDakQ7QUFFQSxNQUFNRSxvQkFBb0IsQ0FBQ0Y7SUFDekIsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsdUhBQXVIO1FBQ3ZILGdIQUFnSDtRQUNoSCxJQUFJQSxZQUFZLFlBQVksT0FBTztRQUVuQyxPQUFPQTtJQUNUO0lBRUEsT0FBT0EsT0FBTyxDQUFDLEVBQUU7QUFDbkI7QUFFQSxTQUFTRyxrQkFBa0JDLFFBQWtCO0lBQzNDLE9BQ0VBLFNBQVNDLE1BQU0sQ0FBQyxDQUFDQyxLQUFLTjtRQUNwQkEsVUFBVUQsbUJBQW1CQztRQUM3QixJQUFJQSxZQUFZLE1BQU1PLENBQUFBLEdBQUFBLFNBQUFBLGNBQUFBLEVBQWVQLFVBQVU7WUFDN0MsT0FBT007UUFDVDtRQUVBLE9BQVVBLE1BQUksTUFBR047SUFDbkIsR0FBRyxPQUFPO0FBRWQ7QUFFTyxTQUFTSCxpQ0FDZFcsaUJBQW9DO0lBRXBDLE1BQU1SLFVBQVVTLE1BQU1DLE9BQU8sQ0FBQ0YsaUJBQWlCLENBQUMsRUFBRSxJQUM5Q0EsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FDdkJBLGlCQUFpQixDQUFDLEVBQUU7SUFFeEIsSUFDRVIsWUFBWVcsU0FBQUEsbUJBQW1CLElBQy9CQyxvQkFBQUEsMEJBQTBCLENBQUNDLElBQUksQ0FBQyxDQUFDQyxJQUFNZCxRQUFRZSxVQUFVLENB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QUc7UUFFakUsSUFBSThDLFlBQVk7WUFDZEwsTUFBTSxDQUFDekMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHQSxPQUFPLENBQUMsRUFBRSxDQUFDdUMsS0FBSyxDQUFDO1FBQ3hDLE9BQU8sSUFBSUssb0JBQW9CO1lBQzdCSCxNQUFNLENBQUN6QyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUdBLE9BQU8sQ0FBQyxFQUFFO1FBQ2pDO1FBRUF5QyxTQUFTM0Msa0JBQWtCNEMsZUFBZUQ7SUFDNUM7SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY29tcHV0ZS1jaGFuZ2VkLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgU2VnbWVudCxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcbmltcG9ydCB7XG4gIGlzR3JvdXBTZWdtZW50LFxuICBERUZBVUxUX1NFR01FTlRfS0VZLFxuICBQQUdFX1NFR01FTlRfS0VZLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tICcuLi9tYXRjaC1zZWdtZW50cydcblxuY29uc3QgcmVtb3ZlTGVhZGluZ1NsYXNoID0gKHNlZ21lbnQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnLycgPyBzZWdtZW50LnNsaWNlKDEpIDogc2VnbWVudFxufVxuXG5jb25zdCBzZWdtZW50VG9QYXRobmFtZSA9IChzZWdtZW50OiBTZWdtZW50KTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIC8vICdjaGlsZHJlbicgaXMgbm90IGEgdmFsaWQgcGF0aCAtLSBpdCdzIHRlY2huaWNhbGx5IGEgcGFyYWxsZWwgcm91dGUgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBjdXJyZW50IHNlZ21lbnQncyBwYWdlXG4gICAgLy8gaWYgd2UgZG9uJ3Qgc2tpcCBpdCwgdGhlbiB0aGUgY29tcHV0ZWQgcGF0aG5hbWUgbWlnaHQgYmUgc29tZXRoaW5nIGxpa2UgYC9jaGlsZHJlbmAgd2hpY2ggZG9lc24ndCBtYWtlIHNlbnNlLlxuICAgIGlmIChzZWdtZW50ID09PSAnY2hpbGRyZW4nKSByZXR1cm4gJydcblxuICAgIHJldHVybiBzZWdtZW50XG4gIH1cblxuICByZXR1cm4gc2VnbWVudFsxXVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVTZWdtZW50cyhzZWdtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIHNlZ21lbnRzLnJlZHVjZSgoYWNjLCBzZWdtZW50KSA9PiB7XG4gICAgICBzZWdtZW50ID0gcmVtb3ZlTGVhZGluZ1NsYXNoKHNlZ21lbnQpXG4gICAgICBpZiAoc2VnbWVudCA9PT0gJycgfHwgaXNHcm91cFNlZ21lbnQoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7YWNjfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKSB8fCAnLydcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUoXG4gIGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2VnbWVudCA9IEFycmF5LmlzQXJyYXkoZmxpZ2h0Um91dGVyU3RhdGVbMF0pXG4gICAgPyBmbGlnaHRSb3V0ZXJTdGF0ZVswXVsxXVxuICAgIDogZmxpZ2h0Um91dGVyU3RhdGVbMF1cblxuICBpZiAoXG4gICAgc2VnbWVudCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWSB8fFxuICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pID0+IHNlZ21lbnQuc3RhcnRzV2l0aChtKSlcbiAgKVxuICAgIHJldHVybiB1bmRlZmluZWRcblxuICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpKSByZXR1cm4gJydcblxuICBjb25zdCBzZWdtZW50cyA9IFtzZWdtZW50VG9QYXRobmFtZShzZWdtZW50KV1cbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBmbGlnaHRSb3V0ZXJTdGF0ZVsxXSA/PyB7fVxuXG4gIGNvbnN0IGNoaWxkcmVuUGF0aCA9IHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuXG4gICAgPyBleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZShwYXJhbGxlbFJvdXRlcy5jaGlsZHJlbilcbiAgICA6IHVuZGVmaW5lZFxuXG4gIGlmIChjaGlsZHJlblBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHNlZ21lbnRzLnB1c2goY2hpbGRyZW5QYXRoKVxuICB9IGVsc2Uge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFsbGVsUm91dGVzKSkge1xuICAgICAgaWYgKGtleSA9PT0gJ2NoaWxkcmVuJykgY29udGludWVcblxuICAgICAgY29uc3QgY2hpbGRQYXRoID0gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodmFsdWUpXG5cbiAgICAgIGlmIChjaGlsZFBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKGNoaWxkUGF0aClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9ybWFsaXplU2VnbWVudHMoc2VnbWVudHMpXG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVDaGFuZ2VkUGF0aEltcGwoXG4gIHRyZWVBOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgdHJlZUI6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgW3NlZ21lbnRBLCBwYXJhbGxlbFJvdXRlc0FdID0gdHJlZUFcbiAgY29uc3QgW3NlZ21lbnRCLCBwYXJhbGxlbFJvdXRlc0JdID0gdHJlZUJcblxuICBjb25zdCBub3JtYWxpemVkU2VnbWVudEEgPSBzZWdtZW50VG9QYXRobmFtZShzZWdtZW50QSlcbiAgY29uc3Qgbm9ybWFsaXplZFNlZ21lbnRCID0gc2VnbWVudFRvUGF0aG5hbWUoc2VnbWVudEIpXG5cbiAgaWYgKFxuICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoXG4gICAgICAobSkgPT5cbiAgICAgICAgbm9ybWFsaXplZFNlZ21lbnRBLnN0YXJ0c1dpdGgobSkgfHwgbm9ybWFsaXplZFNlZ21lbnRCLnN0YXJ0c1dpdGgobSlcbiAgICApXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFtYXRjaFNlZ21lbnQoc2VnbWVudEEsIHNlZ21lbnRCKSkge1xuICAgIC8vIG9uY2Ugd2UgZmluZCB3aGVyZSB0aGUgdHJlZSBjaGFuZ2VkLCB3ZSBjb21wdXRlIHRoZSByZXN0IG9mIHRoZSBwYXRoIGJ5IHRyYXZlcnNpbmcgdGhlIHRyZWVcbiAgICByZXR1cm4gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodHJlZUIpID8/ICcnXG4gIH1cblxuICBmb3IgKGNvbnN0IHBhcmFsbGVsUm91dGVyS2V5IGluIHBhcmFsbGVsUm91dGVzQSkge1xuICAgIGlmIChwYXJhbGxlbFJvdXRlc0JbcGFyYWxsZWxSb3V0ZXJLZXldKSB7XG4gICAgICBjb25zdCBjaGFuZ2VkUGF0aCA9IGNvbXB1dGVDaGFuZ2VkUGF0aEltcGwoXG4gICAgICAgIHBhcmFsbGVsUm91dGVzQVtwYXJhbGxlbFJvdXRlcktleV0sXG4gICAgICAgIHBhcmFsbGVsUm91dGVzQltwYXJhbGxlbFJvdXRlcktleV1cbiAgICAgIClcbiAgICAgIGlmIChjaGFuZ2VkUGF0aCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gYCR7c2VnbWVudFRvUGF0aG5hbWUoc2VnbWVudEIpfS8ke2NoYW5nZWRQYXRofWBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUNoYW5nZWRQYXRoKFxuICB0cmVlQTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHRyZWVCOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGNoYW5nZWRQYXRoID0gY29tcHV0ZUNoYW5nZWRQYXRoSW1wbCh0cmVlQSwgdHJlZUIpXG5cbiAgaWYgKGNoYW5nZWRQYXRoID09IG51bGwgfHwgY2hhbmdlZFBhdGggPT09ICcvJykge1xuICAgIHJldHVybiBjaGFuZ2VkUGF0aFxuICB9XG5cbiAgLy8gbGlnaHR3ZWlnaHQgbm9ybWFsaXphdGlvbiB0byByZW1vdmUgcm91dGUgZ3JvdXBzXG4gIHJldHVybiBub3JtYWxpemVTZWdtZW50cyhjaGFuZ2VkUGF0aC5zcGxpdCgnLycpKVxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGV4dHJhY3RzIGR5bmFtaWMgcGFyYW1ldGVycyBmcm9tIEZsaWdodFJvdXRlclN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0ZWRQYXJhbXMoXG4gIGN1cnJlbnRUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgcGFyYW1zOiBQYXJhbXMgPSB7fVxuKTogUGFyYW1zIHtcbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBjdXJyZW50VHJlZVsxXVxuXG4gIGZvciAoY29uc3QgcGFyYWxsZWxSb3V0ZSBvZiBPYmplY3QudmFsdWVzKHBhcmFsbGVsUm91dGVzKSkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBwYXJhbGxlbFJvdXRlWzBdXG4gICAgY29uc3QgaXNEeW5hbWljUGFyYW1ldGVyID0gQXJyYXkuaXNBcnJheShzZWdtZW50KVxuICAgIGNvbnN0IHNlZ21lbnRWYWx1ZSA9IGlzRHluYW1pY1BhcmFtZXRlciA/IHNlZ21lbnRbMV0gOiBzZWdtZW50XG4gICAgaWYgKCFzZWdtZW50VmFsdWUgfHwgc2VnbWVudFZhbHVlLnN0YXJ0c1dpdGgoUEFHRV9TRUdNRU5UX0tFWSkpIGNvbnRpbnVlXG5cbiAgICAvLyBFbnN1cmUgY2F0Y2hBbGwgYW5kIG9wdGlvbmFsIGNhdGNoYWxsIGFyZSB0dXJuZWQgaW50byBhbiBhcnJheVxuICAgIGNvbnN0IGlzQ2F0Y2hBbGwgPVxuICAgICAgaXNEeW5hbWljUGFyYW1ldGVyICYmIChzZWdtZW50WzJdID09PSAnYycgfHwgc2VnbWVudFsyXSA9PT0gJ29jJylcblxuICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICBwYXJhbXNbc2VnbWVudFswXV0gPSBzZWdtZW50WzFdLnNwbGl0KCcvJylcbiAgICB9IGVsc2UgaWYgKGlzRHluYW1pY1BhcmFtZXRlcikge1xuICAgICAgcGFyYW1zW3NlZ21lbnRbMF1dID0gc2VnbWVudFsxXVxuICAgIH1cblxuICAgIHBhcmFtcyA9IGdldFNlbGVjdGVkUGFyYW1zKHBhcmFsbGVsUm91dGUsIHBhcmFtcylcbiAgfVxuXG4gIHJldHVybiBwYXJhbXNcbn1cbiJdLCJuYW1lcyI6WyJjb21wdXRlQ2hhbmdlZFBhdGgiLCJleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSIsImdldFNlbGVjdGVkUGFyYW1zIiwicmVtb3ZlTGVhZGluZ1NsYXNoIiwic2VnbWVudCIsInNsaWNlIiwic2VnbWVudFRvUGF0aG5hbWUiLCJub3JtYWxpemVTZWdtZW50cyIsInNlZ21lbnRzIiwicmVkdWNlIiwiYWNjIiwiaXNHcm91cFNlZ21lbnQiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIkFycmF5IiwiaXNBcnJheSIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsInNvbWUiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJwYXJhbGxlbFJvdXRlcyIsImNoaWxkcmVuUGF0aCIsImNoaWxkcmVuIiwicHVzaCIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyIsImNoaWxkUGF0aCIsImNvbXB1dGVDaGFuZ2VkUGF0aEltcGwiLCJ0cmVlQSIsInRyZWVCIiwic2VnbWVudEEiLCJwYXJhbGxlbFJvdXRlc0EiLCJzZWdtZW50QiIsInBhcmFsbGVsUm91dGVzQiIsIm5vcm1hbGl6ZWRTZWdtZW50QSIsIm5vcm1hbGl6ZWRTZWdtZW50QiIsIm1hdGNoU2VnbWVudCIsInBhcmFsbGVsUm91dGVyS2V5IiwiY2hhbmdlZFBhdGgiLCJzcGxpdCIsImN1cnJlbnRUcmVlIiwicGFyYW1zIiwicGFyYWxsZWxSb3V0ZSIsInZhbHVlcyIsImlzRHluYW1pY1BhcmFtZXRlciIsInNlZ21lbnRWYWx1ZSIsImlzQ2F0Y2hBbGwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/client/components/static-generation-bailout.js ***! \*******************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n StaticGenBailoutError: function() {\n return StaticGenBailoutError;\n },\n isStaticGenBailoutError: function() {\n return isStaticGenBailoutError;\n }\n});\nconst NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args), this.code = NEXT_STATIC_GEN_BAILOUT;\n }\n}\nfunction isStaticGenBailoutError(error) {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false;\n }\n return error.code === NEXT_STATIC_GEN_BAILOUT;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHFCQUFxQjtlQUFyQkE7O0lBSUdDLHVCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7UUFBcEMscUJBQ1dDLElBQUFBLEdBQU9GOztBQUN6QjtBQUVPLFNBQVNELHdCQUNkSSxLQUFjO0lBRWQsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUFBLENBQUksRUFBSTtRQUNyRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxNQUFNRCxJQUFJLEtBQUtGO0FBQ3hCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCA9ICdORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCdcblxuZXhwb3J0IGNsYXNzIFN0YXRpY0dlbkJhaWxvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvZGUgPSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBTdGF0aWNHZW5CYWlsb3V0RXJyb3Ige1xuICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKCdjb2RlJyBpbiBlcnJvcikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnJvci5jb2RlID09PSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuIl0sIm5hbWVzIjpbIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQiLCJFcnJvciIsImNvZGUiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js": /*!********************************************************************************!*\ !*** ./node_modules/next/dist/client/components/styles/access-error-styles.js ***! \********************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n display: 'inline-block'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n padding: '0 23px 0 0',\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n lineHeight: '49px'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '49px',\n margin: 0\n }\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=access-error-styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0eWxlcy9hY2Nlc3MtZXJyb3Itc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLFNBQThDO0lBQ3pEQyxPQUFPO1FBQ0wsMEZBQTBGO1FBQzFGQyxZQUNFO1FBQ0ZDLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGVBQWU7UUFDZkMsWUFBWTtRQUNaQyxnQkFBZ0I7SUFDbEI7SUFFQUMsTUFBTTtRQUNKSixTQUFTO0lBQ1g7SUFFQUssSUFBSTtRQUNGTCxTQUFTO1FBQ1RNLFFBQVE7UUFDUkMsU0FBUztRQUNUQyxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsZUFBZTtRQUNmQyxZQUFZO0lBQ2Q7SUFFQUMsSUFBSTtRQUNGSixVQUFVO1FBQ1ZDLFlBQVk7UUFDWkUsWUFBWTtRQUNaTCxRQUFRO0lBQ1Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3N0eWxlcy9hY2Nlc3MtZXJyb3Itc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIFJlYWN0LkNTU1Byb3BlcnRpZXM+ID0ge1xuICBlcnJvcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9ibG9iL21haW4vbW9kZXJuLW5vcm1hbGl6ZS5jc3MjTDM4LUw1MlxuICAgIGZvbnRGYW1pbHk6XG4gICAgICAnc3lzdGVtLXVpLFwiU2Vnb2UgVUlcIixSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIicsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcblxuICBkZXNjOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gIH0sXG5cbiAgaDE6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBtYXJnaW46ICcwIDIwcHggMCAwJyxcbiAgICBwYWRkaW5nOiAnMCAyM3B4IDAgMCcsXG4gICAgZm9udFNpemU6IDI0LFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgICBsaW5lSGVpZ2h0OiAnNDlweCcsXG4gIH0sXG5cbiAgaDI6IHtcbiAgICBmb250U2l6ZTogMTQsXG4gICAgZm9udFdlaWdodDogNDAwLFxuICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgICBtYXJnaW46IDAsXG4gIH0sXG59XG4iXSwibmFtZXMiOlsic3R5bGVzIiwiZXJyb3IiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJkZXNjIiwiaDEiLCJtYXJnaW4iLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwidmVydGljYWxBbGlnbiIsImxpbmVIZWlnaHQiLCJoMiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js ***! \************************************************************************/ /***/ ((module) => { "use strict"; eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\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 __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixrQ0FBa0M7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qiw0RkFBNEY7QUFDekg7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELGtCQUFrQixhQUFhOztBQUVuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE9BQU87QUFDNUMsbUVBQW1FLGdGQUFnRjtBQUNuSixnRUFBZ0UsU0FBUztBQUN6RSwyQ0FBMkMsU0FBUztBQUNwRDtBQUNBO0FBQ0EsaURBQWlELFdBQVc7QUFDNUQ7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBLHlCQUF5QixPQUFPLEdBQUcscURBQXFEO0FBQ3hGLCtDQUErQyxjQUFjLEVBQUUsY0FBYyxHQUFHO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEJBQTRCO0FBQ2hELHFCQUFxQixnQkFBZ0I7QUFDckMsdUNBQXVDLHdCQUF3QjtBQUMvRDtBQUNBLHFCQUFxQixtQ0FBbUM7QUFDeEQsbUJBQW1CLGNBQWM7QUFDakMscUJBQXFCLG1DQUFtQztBQUN4RCx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsYUFBYTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixhQUFhO0FBQ2pDO0FBQ0E7QUFDQSw0RUFBNEU7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBFQUEwRTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGlEQUFpRDtBQUM5RTtBQUNBO0FBQ0Esb0RBQW9ELE9BQU8sR0FBRyw0QkFBNEIsV0FBVztBQUNyRztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw0RUFBNEU7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrRkFBa0Y7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sNEVBQTRFO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHdCQUF3QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0ZBQWtGO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtRUFBbUU7QUFDekY7QUFDQTtBQUNBLDhCQUE4QixpREFBaUQ7QUFDL0U7QUFDQTtBQUNBLG1FQUFtRTtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MscUJBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sQ0FNTCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7XG4gIGZvciAodmFyIG5hbWUgaW4gYWxsKVxuICAgIF9fZGVmUHJvcCh0YXJnZXQsIG5hbWUsIHsgZ2V0OiBhbGxbbmFtZV0sIGVudW1lcmFibGU6IHRydWUgfSk7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9Db21tb25KUyA9IChtb2QpID0+IF9fY29weVByb3BzKF9fZGVmUHJvcCh7fSwgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7XG5cbi8vIHNyYy9pbmRleC50c1xudmFyIHNyY19leHBvcnRzID0ge307XG5fX2V4cG9ydChzcmNfZXhwb3J0cywge1xuICBSZXF1ZXN0Q29va2llczogKCkgPT4gUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llczogKCkgPT4gUmVzcG9uc2VDb29raWVzLFxuICBwYXJzZUNvb2tpZTogKCkgPT4gcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llOiAoKSA9PiBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llOiAoKSA9PiBzdHJpbmdpZnlDb29raWVcbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBfX3RvQ29tbW9uSlMoc3JjX2V4cG9ydHMpO1xuXG4vLyBzcmMvc2VyaWFsaXplLnRzXG5mdW5jdGlvbiBzdHJpbmdpZnlDb29raWUoYykge1xuICB2YXIgX2E7XG4gIGNvbnN0IGF0dHJzID0gW1xuICAgIFwicGF0aFwiIGluIGMgJiYgYy5wYXRoICYmIGBQYXRoPSR7Yy5wYXRofWAsXG4gICAgXCJleHBpcmVzXCIgaW4gYyAmJiAoYy5leHBpcmVzIHx8IGMuZXhwaXJlcyA9PT0gMCkgJiYgYEV4cGlyZXM9JHsodHlwZW9mIGMuZXhwaXJlcyA9PT0gXCJudW1iZXJcIiA/IG5ldyBEYXRlKGMuZXhwaXJlcykgOiBjLmV4cGlyZXMpLnRvVVRDU3RyaW5nKCl9YCxcbiAgICBcIm1heEFnZVwiIGluIGMgJiYgdHlwZW9mIGMubWF4QWdlID09PSBcIm51bWJlclwiICYmIGBNYXgtQWdlPSR7Yy5tYXhBZ2V9YCxcbiAgICBcImRvbWFpblwiIGluIGMgJiYgYy5kb21haW4gJiYgYERvbWFpbj0ke2MuZG9tYWlufWAsXG4gICAgXCJzZWN1cmVcIiBpbiBjICYmIGMuc2VjdXJlICYmIFwiU2VjdXJlXCIsXG4gICAgXCJodHRwT25seVwiIGluIGMgJiYgYy5odHRwT25seSAmJiBcIkh0dHBPbmx5XCIsXG4gICAgXCJzYW1lU2l0ZVwiIGluIGMgJiYgYy5zYW1lU2l0ZSAmJiBgU2FtZVNpdGU9JHtjLnNhbWVTaXRlfWAsXG4gICAgXCJwYXJ0aXRpb25lZFwiIGluIGMgJiYgYy5wYXJ0aXRpb25lZCAmJiBcIlBhcnRpdGlvbmVkXCIsXG4gICAgXCJwcmlvcml0eVwiIGluIGMgJiYgYy5wcmlvcml0eSAmJiBgUHJpb3JpdHk9JHtjLnByaW9yaXR5fWBcbiAgXS5maWx0ZXIoQm9vbGVhbik7XG4gIGNvbnN0IHN0cmluZ2lmaWVkID0gYCR7Yy5uYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudCgoX2EgPSBjLnZhbHVlKSAhPSBudWxsID8gX2EgOiBcIlwiKX1gO1xuICByZXR1cm4gYXR0cnMubGVuZ3RoID09PSAwID8gc3RyaW5naWZpZWQgOiBgJHtzdHJpbmdpZmllZH07ICR7YXR0cnMuam9pbihcIjsgXCIpfWA7XG59XG5mdW5jdGlvbiBwYXJzZUNvb2tpZShjb29raWUpIHtcbiAgY29uc3QgbWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgZm9yIChjb25zdCBwYWlyIG9mIGNvb2tpZS5zcGxpdCgvOyAqLykpIHtcbiAgICBpZiAoIXBhaXIpXG4gICAgICBjb250aW51ZTtcbiAgICBjb25zdCBzcGxpdEF0ID0gcGFpci5pbmRleE9mKFwiPVwiKTtcbiAgICBpZiAoc3BsaXRBdCA9PT0gLTEpIHtcbiAgICAgIG1hcC5zZXQocGFpciwgXCJ0cnVlXCIpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IFtwYWlyLnNsaWNlKDAsIHNwbGl0QXQpLCBwYWlyLnNsaWNlKHNwbGl0QXQgKyAxKV07XG4gICAgdHJ5IHtcbiAgICAgIG1hcC5zZXQoa2V5LCBkZWNvZGVVUklDb21wb25lbnQodmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogXCJ0cnVlXCIpKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1hcDtcbn1cbmZ1bmN0aW9uIHBhcnNlU2V0Q29va2llKHNldENvb2tpZSkge1xuICBpZiAoIXNldENvb2tpZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgY29uc3QgW1tuYW1lLCB2YWx1ZV0sIC4uLmF0dHJpYnV0ZXNdID0gcGFyc2VDb29raWUoc2V0Q29va2llKTtcbiAgY29uc3Qge1xuICAgIGRvbWFpbixcbiAgICBleHBpcmVzLFxuICAgIGh0dHBvbmx5LFxuICAgIG1heGFnZSxcbiAgICBwYXRoLFxuICAgIHNhbWVzaXRlLFxuICAgIHNlY3VyZSxcbiAgICBwYXJ0aXRpb25lZCxcbiAgICBwcmlvcml0eVxuICB9ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIGF0dHJpYnV0ZXMubWFwKChba2V5LCB2YWx1ZTJdKSA9PiBbXG4gICAgICBrZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8tL2csIFwiXCIpLFxuICAgICAgdmFsdWUyXG4gICAgXSlcbiAgKTtcbiAgY29uc3QgY29va2llID0ge1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSksXG4gICAgZG9tYWluLFxuICAgIC4uLmV4cGlyZXMgJiYgeyBleHBpcmVzOiBuZXcgRGF0ZShleHBpcmVzKSB9LFxuICAgIC4uLmh0dHBvbmx5ICYmIHsgaHR0cE9ubHk6IHRydWUgfSxcbiAgICAuLi50eXBlb2YgbWF4YWdlID09PSBcInN0cmluZ1wiICYmIHsgbWF4QWdlOiBOdW1iZXIobWF4YWdlKSB9LFxuICAgIHBhdGgsXG4gICAgLi4uc2FtZXNpdGUgJiYgeyBzYW1lU2l0ZTogcGFyc2VTYW1lU2l0ZShzYW1lc2l0ZSkgfSxcbiAgICAuLi5zZWN1cmUgJiYgeyBzZWN1cmU6IHRydWUgfSxcbiAgICAuLi5wcmlvcml0eSAmJiB7IHByaW9yaXR5OiBwYXJzZVByaW9yaXR5KHByaW9yaXR5KSB9LFxuICAgIC4uLnBhcnRpdGlvbmVkICYmIHsgcGFydGl0aW9uZWQ6IHRydWUgfVxuICB9O1xuICByZXR1cm4gY29tcGFjdChjb29raWUpO1xufVxuZnVuY3Rpb24gY29tcGFjdCh0KSB7XG4gIGNvbnN0IG5ld1QgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdCkge1xuICAgIGlmICh0W2tleV0pIHtcbiAgICAgIG5ld1Rba2V5XSA9IHRba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1Q7XG59XG52YXIgU0FNRV9TSVRFID0gW1wic3RyaWN0XCIsIFwibGF4XCIsIFwibm9uZVwiXTtcbmZ1bmN0aW9uIHBhcnNlU2FtZVNpdGUoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gU0FNRV9TSVRFLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG52YXIgUFJJT1JJVFkgPSBbXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCJdO1xuZnVuY3Rpb24gcGFyc2VQcmlvcml0eShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBQUklPUklUWS5pbmNsdWRlcyhzdHJpbmcpID8gc3RyaW5nIDogdm9pZCAwO1xufVxuZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgaWYgKCFjb29raWVzU3RyaW5nKVxuICAgIHJldHVybiBbXTtcbiAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gIHZhciBwb3MgPSAwO1xuICB2YXIgc3RhcnQ7XG4gIHZhciBjaDtcbiAgdmFyIGxhc3RDb21tYTtcbiAgdmFyIG5leHRTdGFydDtcbiAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpIHtcbiAgICAgIHBvcyArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gIH1cbiAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgIHJldHVybiBjaCAhPT0gXCI9XCIgJiYgY2ggIT09IFwiO1wiICYmIGNoICE9PSBcIixcIjtcbiAgfVxuICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICBzdGFydCA9IHBvcztcbiAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICB3aGlsZSAoc2tpcFdoaXRlc3BhY2UoKSkge1xuICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgaWYgKGNoID09PSBcIixcIikge1xuICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgIHBvcyArPSAxO1xuICAgICAgICBza2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBub3RTcGVjaWFsQ2hhcigpKSB7XG4gICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09IFwiPVwiKSB7XG4gICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvb2tpZXNTdHJpbmdzO1xufVxuXG4vLyBzcmMvcmVxdWVzdC1jb29raWVzLnRzXG52YXIgUmVxdWVzdENvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlcXVlc3RIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzO1xuICAgIGNvbnN0IGhlYWRlciA9IHJlcXVlc3RIZWFkZXJzLmdldChcImNvb2tpZVwiKTtcbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvb2tpZShoZWFkZXIpO1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIHBhcnNlZCkge1xuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIGNvb2tpZXMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50XG4gICAqL1xuICBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLnNpemU7XG4gIH1cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KG5hbWUpO1xuICB9XG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogKF9hID0gYXJnc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm5hbWU7XG4gICAgcmV0dXJuIGFsbC5maWx0ZXIoKFtuXSkgPT4gbiA9PT0gbmFtZSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICBzZXQoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWVdIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCB7IG5hbWUsIHZhbHVlIH0pO1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KFxuICAgICAgXCJjb29raWVcIixcbiAgICAgIEFycmF5LmZyb20obWFwKS5tYXAoKFtfLCB2YWx1ZTJdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUyKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjb29raWVzIG1hdGNoaW5nIHRoZSBwYXNzZWQgbmFtZSBvciBuYW1lcyBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGRlbGV0ZShuYW1lcykge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBjb25zdCByZXN1bHQgPSAhQXJyYXkuaXNBcnJheShuYW1lcykgPyBtYXAuZGVsZXRlKG5hbWVzKSA6IG5hbWVzLm1hcCgobmFtZSkgPT4gbWFwLmRlbGV0ZShuYW1lKSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlXSkgPT4gc3RyaW5naWZ5Q29va2llKHZhbHVlKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIHRoZSBjb29raWVzIGluIHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5kZWxldGUoQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQua2V5cygpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgY29va2llcyBpbiB0aGUgcmVxdWVzdCBhcyBhIHN0cmluZyBmb3IgbG9nZ2luZ1xuICAgKi9cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVxdWVzdENvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKCh2KSA9PiBgJHt2Lm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHYudmFsdWUpfWApLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcblxuLy8gc3JjL3Jlc3BvbnNlLWNvb2tpZXMudHNcbnZhciBSZXNwb25zZUNvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlSGVhZGVycykge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLl9wYXJzZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIHRoaXMuX2hlYWRlcnMgPSByZXNwb25zZUhlYWRlcnM7XG4gICAgY29uc3Qgc2V0Q29va2llID0gKF9jID0gKF9iID0gKF9hID0gcmVzcG9uc2VIZWFkZXJzLmdldFNldENvb2tpZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzcG9uc2VIZWFkZXJzKSkgIT0gbnVsbCA/IF9iIDogcmVzcG9uc2VIZWFkZXJzLmdldChcInNldC1jb29raWVcIikpICE9IG51bGwgPyBfYyA6IFtdO1xuICAgIGNvbnN0IGNvb2tpZVN0cmluZ3MgPSBBcnJheS5pc0FycmF5KHNldENvb2tpZSkgPyBzZXRDb29raWUgOiBzcGxpdENvb2tpZXNTdHJpbmcoc2V0Q29va2llKTtcbiAgICBmb3IgKGNvbnN0IGNvb2tpZVN0cmluZyBvZiBjb29raWVTdHJpbmdzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVNldENvb2tpZShjb29raWVTdHJpbmcpO1xuICAgICAgaWYgKHBhcnNlZClcbiAgICAgICAgdGhpcy5fcGFyc2VkLnNldChwYXJzZWQubmFtZSwgcGFyc2VkKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0IENvb2tpZVN0b3JlI2dldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldCguLi5hcmdzKSB7XG4gICAgY29uc3Qga2V5ID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KGtleSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0QWxsIENvb2tpZVN0b3JlI2dldEFsbH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkLnZhbHVlcygpKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoYykgPT4gYy5uYW1lID09PSBrZXkpO1xuICB9XG4gIGhhcyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5oYXMobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtc2V0IENvb2tpZVN0b3JlI3NldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlLCBjb29raWVdID0gYXJncy5sZW5ndGggPT09IDEgPyBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnZhbHVlLCBhcmdzWzBdXSA6IGFyZ3M7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIG1hcC5zZXQobmFtZSwgbm9ybWFsaXplQ29va2llKHsgbmFtZSwgdmFsdWUsIC4uLmNvb2tpZSB9KSk7XG4gICAgcmVwbGFjZShtYXAsIHRoaXMuX2hlYWRlcnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWRlbGV0ZSBDb29raWVTdG9yZSNkZWxldGV9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBkZWxldGUoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCBvcHRpb25zXSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gW2FyZ3NbMF1dIDogW2FyZ3NbMF0ubmFtZSwgYXJnc1swXV07XG4gICAgcmV0dXJuIHRoaXMuc2V0KHsgLi4ub3B0aW9ucywgbmFtZSwgdmFsdWU6IFwiXCIsIGV4cGlyZXM6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgwKSB9KTtcbiAgfVxuICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgcmV0dXJuIGBSZXNwb25zZUNvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKHN0cmluZ2lmeUNvb2tpZSkuam9pbihcIjsgXCIpO1xuICB9XG59O1xuZnVuY3Rpb24gcmVwbGFjZShiYWcsIGhlYWRlcnMpIHtcbiAgaGVhZGVycy5kZWxldGUoXCJzZXQtY29va2llXCIpO1xuICBmb3IgKGNvbnN0IFssIHZhbHVlXSBvZiBiYWcpIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc3RyaW5naWZ5Q29va2llKHZhbHVlKTtcbiAgICBoZWFkZXJzLmFwcGVuZChcInNldC1jb29raWVcIiwgc2VyaWFsaXplZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNvb2tpZShjb29raWUgPSB7IG5hbWU6IFwiXCIsIHZhbHVlOiBcIlwiIH0pIHtcbiAgaWYgKHR5cGVvZiBjb29raWUuZXhwaXJlcyA9PT0gXCJudW1iZXJcIikge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoY29va2llLmV4cGlyZXMpO1xuICB9XG4gIGlmIChjb29raWUubWF4QWdlKSB7XG4gICAgY29va2llLmV4cGlyZXMgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgY29va2llLm1heEFnZSAqIDFlMyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5wYXRoID09PSBudWxsIHx8IGNvb2tpZS5wYXRoID09PSB2b2lkIDApIHtcbiAgICBjb29raWUucGF0aCA9IFwiL1wiO1xuICB9XG4gIHJldHVybiBjb29raWU7XG59XG4vLyBBbm5vdGF0ZSB0aGUgQ29tbW9uSlMgZXhwb3J0IG5hbWVzIGZvciBFU00gaW1wb3J0IGluIG5vZGU6XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llLFxuICBzdHJpbmdpZnlDb29raWVcbn0pO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/compiled/@opentelemetry/api/index.js ***! \*********************************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"<failed to generate stacktrace>\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e<r.length;e++){this[r[e].n]=_consoleFunc(r[e].c)}}}t.DiagConsoleLogger=DiagConsoleLogger},912:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(e<n.DiagLogLevel.NONE){e=n.DiagLogLevel.NONE}else if(e>n.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQ0FBaUMsaUJBQWlCLGVBQWUscUJBQXFCLG9CQUFvQiw4QkFBOEIsc0JBQXNCLDJCQUEyQixxREFBcUQsU0FBUywwQ0FBMEMsaUJBQWlCLGtEQUFrRCxVQUFVLDJDQUEyQyxxQkFBcUIsNEJBQTRCLFVBQVUsb0NBQW9DLGdEQUFnRCx3QkFBd0IsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLGlCQUFpQixjQUFjLGVBQWUsZUFBZSxlQUFlLGVBQWUsY0FBYyxjQUFjLHNCQUFzQixzQkFBc0IsZ0NBQWdDLGFBQWEsbUJBQW1CLGFBQWEsc0JBQXNCLDZCQUE2QixJQUFJLFVBQVUsVUFBVSx3SkFBd0osb0RBQW9ELGFBQWEsd0JBQXdCLEdBQUcsWUFBWSxnQ0FBZ0Msa0dBQWtHLGtDQUFrQyxxRkFBcUYsa0RBQWtELEVBQUUsR0FBRyxvRUFBb0UsRUFBRSxHQUFHLDZDQUE2QyxzQkFBc0IsZUFBZSw2QkFBNkIsd0RBQXdELCtCQUErQiwyQkFBMkIseUJBQXlCLHlCQUF5QiwyQkFBMkIsa0JBQWtCLG9CQUFvQiwyQkFBMkIsdUJBQXVCLGtCQUFrQixlQUFlLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQkFBaUIsZUFBZSxxQkFBcUIsb0JBQW9CLDhCQUE4QixzQkFBc0IsMEJBQTBCLHFEQUFxRCxtQkFBbUIsZ0RBQWdELGdCQUFnQiwrQ0FBK0MsVUFBVSxnREFBZ0Qsd0JBQXdCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSx3QkFBd0IsZUFBZSxlQUFlLGVBQWUsZUFBZSxlQUFlLGVBQWUsc0JBQXNCLG9DQUFvQyxxQkFBcUIsY0FBYyxtQ0FBbUMsNkJBQTZCLHlDQUF5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RSxnQ0FBZ0MsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsZ0NBQWdDLCtCQUErQixlQUFlLEVBQUUsaUNBQWlDLG1DQUFtQywrQkFBK0Isa0JBQWtCLEVBQUUsaUNBQWlDLHVDQUF1QywrQkFBK0Isc0JBQXNCLEVBQUUsaUNBQWlDLGlDQUFpQywrQkFBK0IsZ0JBQWdCLEVBQUUsY0FBYyx5RkFBeUYsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGkvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezQ5MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkNvbnRleHRBUEk9dm9pZCAwO2NvbnN0IG49cigyMjMpO2NvbnN0IGE9cigxNzIpO2NvbnN0IG89cig5MzApO2NvbnN0IGk9XCJjb250ZXh0XCI7Y29uc3QgYz1uZXcgbi5Ob29wQ29udGV4dE1hbmFnZXI7Y2xhc3MgQ29udGV4dEFQSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBDb250ZXh0QVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxDb250ZXh0TWFuYWdlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWFjdGl2ZSgpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmFjdGl2ZSgpfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkud2l0aChlLHQsciwuLi5uKX1iaW5kKGUsdCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYmluZChlLHQpfV9nZXRDb250ZXh0TWFuYWdlcigpe3JldHVybigwLGEuZ2V0R2xvYmFsKShpKXx8Y31kaXNhYmxlKCl7dGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5kaXNhYmxlKCk7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5Db250ZXh0QVBJPUNvbnRleHRBUEl9LDkzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdBUEk9dm9pZCAwO2NvbnN0IG49cig1Nik7Y29uc3QgYT1yKDkxMik7Y29uc3Qgbz1yKDk1Nyk7Y29uc3QgaT1yKDE3Mik7Y29uc3QgYz1cImRpYWdcIjtjbGFzcyBEaWFnQVBJe2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2xvZ1Byb3h5KGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCByPSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIXIpcmV0dXJuO3JldHVybiByW2VdKC4uLnQpfX1jb25zdCBlPXRoaXM7Y29uc3Qgc2V0TG9nZ2VyPSh0LHI9e2xvZ0xldmVsOm8uRGlhZ0xvZ0xldmVsLklORk99KT0+e3ZhciBuLGMscztpZih0PT09ZSl7Y29uc3QgdD1uZXcgRXJyb3IoXCJDYW5ub3QgdXNlIGRpYWcgYXMgdGhlIGxvZ2dlciBmb3IgaXRzZWxmLiBQbGVhc2UgdXNlIGEgRGlhZ0xvZ2dlciBpbXBsZW1lbnRhdGlvbiBsaWtlIENvbnNvbGVEaWFnTG9nZ2VyIG9yIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uXCIpO2UuZXJyb3IoKG49dC5zdGFjaykhPT1udWxsJiZuIT09dm9pZCAwP246dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIHI9PT1cIm51bWJlclwiKXtyPXtsb2dMZXZlbDpyfX1jb25zdCB1PSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7Y29uc3QgbD0oMCxhLmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcikoKGM9ci5sb2dMZXZlbCkhPT1udWxsJiZjIT09dm9pZCAwP2M6by5EaWFnTG9nTGV2ZWwuSU5GTyx0KTtpZih1JiYhci5zdXBwcmVzc092ZXJyaWRlTWVzc2FnZSl7Y29uc3QgZT0ocz0obmV3IEVycm9yKS5zdGFjaykhPT1udWxsJiZzIT09dm9pZCAwP3M6XCI8ZmFpbGVkIHRvIGdlbmVyYXRlIHN0YWNrdHJhY2U+XCI7dS53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIGJlIG92ZXJ3cml0dGVuIGZyb20gJHtlfWApO2wud2FybihgQ3VycmVudCBsb2dnZXIgd2lsbCBvdmVyd3JpdGUgb25lIGFscmVhZHkgcmVnaXN0ZXJlZCBmcm9tICR7ZX1gKX1yZXR1cm4oMCxpLnJlZ2lzdGVyR2xvYmFsKShcImRpYWdcIixsLGUsdHJ1ZSl9O2Uuc2V0TG9nZ2VyPXNldExvZ2dlcjtlLmRpc2FibGU9KCk9PnsoMCxpLnVucmVnaXN0ZXJHbG9iYWwpKGMsZSl9O2UuY3JlYXRlQ29tcG9uZW50TG9nZ2VyPWU9Pm5ldyBuLkRpYWdDb21wb25lbnRMb2dnZXIoZSk7ZS52ZXJib3NlPV9sb2dQcm94eShcInZlcmJvc2VcIik7ZS5kZWJ1Zz1fbG9nUHJveHkoXCJkZWJ1Z1wiKTtlLmluZm89X2xvZ1Byb3h5KFwiaW5mb1wiKTtlLndhcm49X2xvZ1Byb3h5KFwid2FyblwiKTtlLmVycm9yPV9sb2dQcm94eShcImVycm9yXCIpfXN0YXRpYyBpbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IERpYWdBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfX10LkRpYWdBUEk9RGlhZ0FQSX0sNjUzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTWV0cmljc0FQST12b2lkIDA7Y29uc3Qgbj1yKDY2MCk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cIm1ldHJpY3NcIjtjbGFzcyBNZXRyaWNzQVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IE1ldHJpY3NBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbE1ldGVyUHJvdmlkZXIoZSl7cmV0dXJuKDAsYS5yZWdpc3Rlckdsb2JhbCkoaSxlLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX1nZXRNZXRlclByb3ZpZGVyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxuLk5PT1BfTUVURVJfUFJPVklERVJ9Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLHQscil9ZGlzYWJsZSgpeygwLGEudW5yZWdpc3Rlckdsb2JhbCkoaSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9fXQuTWV0cmljc0FQST1NZXRyaWNzQVBJfSwxODE6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm9wYWdhdGlvbkFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg3NCk7Y29uc3Qgbz1yKDE5NCk7Y29uc3QgaT1yKDI3Nyk7Y29uc3QgYz1yKDM2OSk7Y29uc3Qgcz1yKDkzMCk7Y29uc3QgdT1cInByb3BhZ2F0aW9uXCI7Y29uc3QgbD1uZXcgYS5Ob29wVGV4dE1hcFByb3BhZ2F0b3I7Y2xhc3MgUHJvcGFnYXRpb25BUEl7Y29uc3RydWN0b3IoKXt0aGlzLmNyZWF0ZUJhZ2dhZ2U9Yy5jcmVhdGVCYWdnYWdlO3RoaXMuZ2V0QmFnZ2FnZT1pLmdldEJhZ2dhZ2U7dGhpcy5nZXRBY3RpdmVCYWdnYWdlPWkuZ2V0QWN0aXZlQmFnZ2FnZTt0aGlzLnNldEJhZ2dhZ2U9aS5zZXRCYWdnYWdlO3RoaXMuZGVsZXRlQmFnZ2FnZT1pLmRlbGV0ZUJhZ2dhZ2V9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgUHJvcGFnYXRpb25BUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFByb3BhZ2F0b3IoZSl7cmV0dXJuKDAsbi5yZWdpc3Rlckdsb2JhbCkodSxlLHMuRGlhZ0FQSS5pbnN0YW5jZSgpKX1pbmplY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcFNldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5pbmplY3QoZSx0LHIpfWV4dHJhY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcEdldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5leHRyYWN0KGUsdCxyKX1maWVsZHMoKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmZpZWxkcygpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHUscy5EaWFnQVBJLmluc3RhbmNlKCkpfV9nZXRHbG9iYWxQcm9wYWdhdG9yKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHUpfHxsfX10LlByb3BhZ2F0aW9uQVBJPVByb3BhZ2F0aW9uQVBJfSw5OTc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg0Nik7Y29uc3Qgbz1yKDEzOSk7Y29uc3QgaT1yKDYwNyk7Y29uc3QgYz1yKDkzMCk7Y29uc3Qgcz1cInRyYWNlXCI7Y2xhc3MgVHJhY2VBUEl7Y29uc3RydWN0b3IoKXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBhLlByb3h5VHJhY2VyUHJvdmlkZXI7dGhpcy53cmFwU3BhbkNvbnRleHQ9by53cmFwU3BhbkNvbnRleHQ7dGhpcy5pc1NwYW5Db250ZXh0VmFsaWQ9by5pc1NwYW5Db250ZXh0VmFsaWQ7dGhpcy5kZWxldGVTcGFuPWkuZGVsZXRlU3Bhbjt0aGlzLmdldFNwYW49aS5nZXRTcGFuO3RoaXMuZ2V0QWN0aXZlU3Bhbj1pLmdldEFjdGl2ZVNwYW47dGhpcy5nZXRTcGFuQ29udGV4dD1pLmdldFNwYW5Db250ZXh0O3RoaXMuc2V0U3Bhbj1pLnNldFNwYW47dGhpcy5zZXRTcGFuQ29udGV4dD1pLnNldFNwYW5Db250ZXh0fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IFRyYWNlQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxUcmFjZXJQcm92aWRlcihlKXtjb25zdCB0PSgwLG4ucmVnaXN0ZXJHbG9iYWwpKHMsdGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcixjLkRpYWdBUEkuaW5zdGFuY2UoKSk7aWYodCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlci5zZXREZWxlZ2F0ZShlKX1yZXR1cm4gdH1nZXRUcmFjZXJQcm92aWRlcigpe3JldHVybigwLG4uZ2V0R2xvYmFsKShzKXx8dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcn1nZXRUcmFjZXIoZSx0KXtyZXR1cm4gdGhpcy5nZXRUcmFjZXJQcm92aWRlcigpLmdldFRyYWNlcihlLHQpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHMsYy5EaWFnQVBJLmluc3RhbmNlKCkpO3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcn19dC5UcmFjZUFQST1UcmFjZUFQSX0sMjc3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGVsZXRlQmFnZ2FnZT10LnNldEJhZ2dhZ2U9dC5nZXRBY3RpdmVCYWdnYWdlPXQuZ2V0QmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDc4MCk7Y29uc3Qgbz0oMCxhLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBCYWdnYWdlIEtleVwiKTtmdW5jdGlvbiBnZXRCYWdnYWdlKGUpe3JldHVybiBlLmdldFZhbHVlKG8pfHx1bmRlZmluZWR9dC5nZXRCYWdnYWdlPWdldEJhZ2dhZ2U7ZnVuY3Rpb24gZ2V0QWN0aXZlQmFnZ2FnZSgpe3JldHVybiBnZXRCYWdnYWdlKG4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZUJhZ2dhZ2U9Z2V0QWN0aXZlQmFnZ2FnZTtmdW5jdGlvbiBzZXRCYWdnYWdlKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUobyx0KX10LnNldEJhZ2dhZ2U9c2V0QmFnZ2FnZTtmdW5jdGlvbiBkZWxldGVCYWdnYWdlKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKG8pfXQuZGVsZXRlQmFnZ2FnZT1kZWxldGVCYWdnYWdlfSw5OTM6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQmFnZ2FnZUltcGw9dm9pZCAwO2NsYXNzIEJhZ2dhZ2VJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2VudHJpZXM9ZT9uZXcgTWFwKGUpOm5ldyBNYXB9Z2V0RW50cnkoZSl7Y29uc3QgdD10aGlzLl9lbnRyaWVzLmdldChlKTtpZighdCl7cmV0dXJuIHVuZGVmaW5lZH1yZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0KX1nZXRBbGxFbnRyaWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fZW50cmllcy5lbnRyaWVzKCkpLm1hcCgoKFtlLHRdKT0+W2UsdF0pKX1zZXRFbnRyeShlLHQpe2NvbnN0IHI9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO3IuX2VudHJpZXMuc2V0KGUsdCk7cmV0dXJuIHJ9cmVtb3ZlRW50cnkoZSl7Y29uc3QgdD1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7dC5fZW50cmllcy5kZWxldGUoZSk7cmV0dXJuIHR9cmVtb3ZlRW50cmllcyguLi5lKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTtmb3IoY29uc3QgciBvZiBlKXt0Ll9lbnRyaWVzLmRlbGV0ZShyKX1yZXR1cm4gdH1jbGVhcigpe3JldHVybiBuZXcgQmFnZ2FnZUltcGx9fXQuQmFnZ2FnZUltcGw9QmFnZ2FnZUltcGx9LDgzMDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD12b2lkIDA7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD1TeW1ib2woXCJCYWdnYWdlRW50cnlNZXRhZGF0YVwiKX0sMzY5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXQuY3JlYXRlQmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7Y29uc3QgYT1yKDk5Myk7Y29uc3Qgbz1yKDgzMCk7Y29uc3QgaT1uLkRpYWdBUEkuaW5zdGFuY2UoKTtmdW5jdGlvbiBjcmVhdGVCYWdnYWdlKGU9e30pe3JldHVybiBuZXcgYS5CYWdnYWdlSW1wbChuZXcgTWFwKE9iamVjdC5lbnRyaWVzKGUpKSl9dC5jcmVhdGVCYWdnYWdlPWNyZWF0ZUJhZ2dhZ2U7ZnVuY3Rpb24gYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nKGUpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7aS5lcnJvcihgQ2Fubm90IGNyZWF0ZSBiYWdnYWdlIG1ldGFkYXRhIGZyb20gdW5rbm93biB0eXBlOiAke3R5cGVvZiBlfWApO2U9XCJcIn1yZXR1cm57X19UWVBFX186by5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbCx0b1N0cmluZygpe3JldHVybiBlfX19dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9YmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfSw2NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNvbnRleHQ9dm9pZCAwO2NvbnN0IG49cig0OTEpO3QuY29udGV4dD1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKX0sMjIzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcENvbnRleHRNYW5hZ2VyPXZvaWQgMDtjb25zdCBuPXIoNzgwKTtjbGFzcyBOb29wQ29udGV4dE1hbmFnZXJ7YWN0aXZlKCl7cmV0dXJuIG4uUk9PVF9DT05URVhUfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHQuY2FsbChyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdH1lbmFibGUoKXtyZXR1cm4gdGhpc31kaXNhYmxlKCl7cmV0dXJuIHRoaXN9fXQuTm9vcENvbnRleHRNYW5hZ2VyPU5vb3BDb250ZXh0TWFuYWdlcn0sNzgwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlJPT1RfQ09OVEVYVD10LmNyZWF0ZUNvbnRleHRLZXk9dm9pZCAwO2Z1bmN0aW9uIGNyZWF0ZUNvbnRleHRLZXkoZSl7cmV0dXJuIFN5bWJvbC5mb3IoZSl9dC5jcmVhdGVDb250ZXh0S2V5PWNyZWF0ZUNvbnRleHRLZXk7Y2xhc3MgQmFzZUNvbnRleHR7Y29uc3RydWN0b3IoZSl7Y29uc3QgdD10aGlzO3QuX2N1cnJlbnRDb250ZXh0PWU/bmV3IE1hcChlKTpuZXcgTWFwO3QuZ2V0VmFsdWU9ZT0+dC5fY3VycmVudENvbnRleHQuZ2V0KGUpO3Quc2V0VmFsdWU9KGUscik9Pntjb25zdCBuPW5ldyBCYXNlQ29udGV4dCh0Ll9jdXJyZW50Q29udGV4dCk7bi5fY3VycmVudENvbnRleHQuc2V0KGUscik7cmV0dXJuIG59O3QuZGVsZXRlVmFsdWU9ZT0+e2NvbnN0IHI9bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtyLl9jdXJyZW50Q29udGV4dC5kZWxldGUoZSk7cmV0dXJuIHJ9fX10LlJPT1RfQ09OVEVYVD1uZXcgQmFzZUNvbnRleHR9LDUwNjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRpYWc9dm9pZCAwO2NvbnN0IG49cig5MzApO3QuZGlhZz1uLkRpYWdBUEkuaW5zdGFuY2UoKX0sNTY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29tcG9uZW50TG9nZ2VyPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjbGFzcyBEaWFnQ29tcG9uZW50TG9nZ2Vye2NvbnN0cnVjdG9yKGUpe3RoaXMuX25hbWVzcGFjZT1lLm5hbWVzcGFjZXx8XCJEaWFnQ29tcG9uZW50TG9nZ2VyXCJ9ZGVidWcoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZGVidWdcIix0aGlzLl9uYW1lc3BhY2UsZSl9ZXJyb3IoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZXJyb3JcIix0aGlzLl9uYW1lc3BhY2UsZSl9aW5mbyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJpbmZvXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXdhcm4oLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwid2FyblwiLHRoaXMuX25hbWVzcGFjZSxlKX12ZXJib3NlKC4uLmUpe3JldHVybiBsb2dQcm94eShcInZlcmJvc2VcIix0aGlzLl9uYW1lc3BhY2UsZSl9fXQuRGlhZ0NvbXBvbmVudExvZ2dlcj1EaWFnQ29tcG9uZW50TG9nZ2VyO2Z1bmN0aW9uIGxvZ1Byb3h5KGUsdCxyKXtjb25zdCBhPSgwLG4uZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIWEpe3JldHVybn1yLnVuc2hpZnQodCk7cmV0dXJuIGFbZV0oLi4ucil9fSw5NzI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0NvbnNvbGVMb2dnZXI9dm9pZCAwO2NvbnN0IHI9W3tuOlwiZXJyb3JcIixjOlwiZXJyb3JcIn0se246XCJ3YXJuXCIsYzpcIndhcm5cIn0se246XCJpbmZvXCIsYzpcImluZm9cIn0se246XCJkZWJ1Z1wiLGM6XCJkZWJ1Z1wifSx7bjpcInZlcmJvc2VcIixjOlwidHJhY2VcIn1dO2NsYXNzIERpYWdDb25zb2xlTG9nZ2Vye2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2NvbnNvbGVGdW5jKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtpZihjb25zb2xlKXtsZXQgcj1jb25zb2xlW2VdO2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXtyPWNvbnNvbGUubG9nfWlmKHR5cGVvZiByPT09XCJmdW5jdGlvblwiKXtyZXR1cm4gci5hcHBseShjb25zb2xlLHQpfX19fWZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXt0aGlzW3JbZV0ubl09X2NvbnNvbGVGdW5jKHJbZV0uYyl9fX10LkRpYWdDb25zb2xlTG9nZ2VyPURpYWdDb25zb2xlTG9nZ2VyfSw5MTI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXI9dm9pZCAwO2NvbnN0IG49cig5NTcpO2Z1bmN0aW9uIGNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcihlLHQpe2lmKGU8bi5EaWFnTG9nTGV2ZWwuTk9ORSl7ZT1uLkRpYWdMb2dMZXZlbC5OT05FfWVsc2UgaWYoZT5uLkRpYWdMb2dMZXZlbC5BTEwpe2U9bi5EaWFnTG9nTGV2ZWwuQUxMfXQ9dHx8e307ZnVuY3Rpb24gX2ZpbHRlckZ1bmMocixuKXtjb25zdCBhPXRbcl07aWYodHlwZW9mIGE9PT1cImZ1bmN0aW9uXCImJmU+PW4pe3JldHVybiBhLmJpbmQodCl9cmV0dXJuIGZ1bmN0aW9uKCl7fX1yZXR1cm57ZXJyb3I6X2ZpbHRlckZ1bmMoXCJlcnJvclwiLG4uRGlhZ0xvZ0xldmVsLkVSUk9SKSx3YXJuOl9maWx0ZXJGdW5jKFwid2FyblwiLG4uRGlhZ0xvZ0xldmVsLldBUk4pLGluZm86X2ZpbHRlckZ1bmMoXCJpbmZvXCIsbi5EaWFnTG9nTGV2ZWwuSU5GTyksZGVidWc6X2ZpbHRlckZ1bmMoXCJkZWJ1Z1wiLG4uRGlhZ0xvZ0xldmVsLkRFQlVHKSx2ZXJib3NlOl9maWx0ZXJGdW5jKFwidmVyYm9zZVwiLG4uRGlhZ0xvZ0xldmVsLlZFUkJPU0UpfX10LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj1jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXJ9LDk1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnTG9nTGV2ZWw9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT05FXCJdPTBdPVwiTk9ORVwiO2VbZVtcIkVSUk9SXCJdPTMwXT1cIkVSUk9SXCI7ZVtlW1wiV0FSTlwiXT01MF09XCJXQVJOXCI7ZVtlW1wiSU5GT1wiXT02MF09XCJJTkZPXCI7ZVtlW1wiREVCVUdcIl09NzBdPVwiREVCVUdcIjtlW2VbXCJWRVJCT1NFXCJdPTgwXT1cIlZFUkJPU0VcIjtlW2VbXCJBTExcIl09OTk5OV09XCJBTExcIn0pKHI9dC5EaWFnTG9nTGV2ZWx8fCh0LkRpYWdMb2dMZXZlbD17fSkpfSwxNzI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC51bnJlZ2lzdGVyR2xvYmFsPXQuZ2V0R2xvYmFsPXQucmVnaXN0ZXJHbG9iYWw9dm9pZCAwO2NvbnN0IG49cigyMDApO2NvbnN0IGE9cig1MjEpO2NvbnN0IG89cigxMzApO2NvbnN0IGk9YS5WRVJTSU9OLnNwbGl0KFwiLlwiKVswXTtjb25zdCBjPVN5bWJvbC5mb3IoYG9wZW50ZWxlbWV0cnkuanMuYXBpLiR7aX1gKTtjb25zdCBzPW4uX2dsb2JhbFRoaXM7ZnVuY3Rpb24gcmVnaXN0ZXJHbG9iYWwoZSx0LHIsbj1mYWxzZSl7dmFyIG87Y29uc3QgaT1zW2NdPShvPXNbY10pIT09bnVsbCYmbyE9PXZvaWQgMD9vOnt2ZXJzaW9uOmEuVkVSU0lPTn07aWYoIW4mJmlbZV0pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IEF0dGVtcHRlZCBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIG9mIEFQSTogJHtlfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYoaS52ZXJzaW9uIT09YS5WRVJTSU9OKXtjb25zdCB0PW5ldyBFcnJvcihgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RyYXRpb24gb2YgdmVyc2lvbiB2JHtpLnZlcnNpb259IGZvciAke2V9IGRvZXMgbm90IG1hdGNoIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBBUEkgdiR7YS5WRVJTSU9OfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aVtlXT10O3IuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0ZXJlZCBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO3JldHVybiB0cnVlfXQucmVnaXN0ZXJHbG9iYWw9cmVnaXN0ZXJHbG9iYWw7ZnVuY3Rpb24gZ2V0R2xvYmFsKGUpe3ZhciB0LHI7Y29uc3Qgbj0odD1zW2NdKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQudmVyc2lvbjtpZighbnx8ISgwLG8uaXNDb21wYXRpYmxlKShuKSl7cmV0dXJufXJldHVybihyPXNbY10pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6cltlXX10LmdldEdsb2JhbD1nZXRHbG9iYWw7ZnVuY3Rpb24gdW5yZWdpc3Rlckdsb2JhbChlLHQpe3QuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogVW5yZWdpc3RlcmluZyBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO2NvbnN0IHI9c1tjXTtpZihyKXtkZWxldGUgcltlXX19dC51bnJlZ2lzdGVyR2xvYmFsPXVucmVnaXN0ZXJHbG9iYWx9LDEzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmlzQ29tcGF0aWJsZT10Ll9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrPXZvaWQgMDtjb25zdCBuPXIoNTIxKTtjb25zdCBhPS9eKFxcZCspXFwuKFxcZCspXFwuKFxcZCspKC0oLispKT8kLztmdW5jdGlvbiBfbWFrZUNvbXBhdGliaWxpdHlDaGVjayhlKXtjb25zdCB0PW5ldyBTZXQoW2VdKTtjb25zdCByPW5ldyBTZXQ7Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4oKT0+ZmFsc2V9Y29uc3Qgbz17bWFqb3I6K25bMV0sbWlub3I6K25bMl0scGF0Y2g6K25bM10scHJlcmVsZWFzZTpuWzRdfTtpZihvLnByZXJlbGVhc2UhPW51bGwpe3JldHVybiBmdW5jdGlvbiBpc0V4YWN0bWF0Y2godCl7cmV0dXJuIHQ9PT1lfX1mdW5jdGlvbiBfcmVqZWN0KGUpe3IuYWRkKGUpO3JldHVybiBmYWxzZX1mdW5jdGlvbiBfYWNjZXB0KGUpe3QuYWRkKGUpO3JldHVybiB0cnVlfXJldHVybiBmdW5jdGlvbiBpc0NvbXBhdGlibGUoZSl7aWYodC5oYXMoZSkpe3JldHVybiB0cnVlfWlmKHIuaGFzKGUpKXtyZXR1cm4gZmFsc2V9Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4gX3JlamVjdChlKX1jb25zdCBpPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKGkucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvciE9PWkubWFqb3Ipe3JldHVybiBfcmVqZWN0KGUpfWlmKG8ubWFqb3I9PT0wKXtpZihvLm1pbm9yPT09aS5taW5vciYmby5wYXRjaDw9aS5wYXRjaCl7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9aWYoby5taW5vcjw9aS5taW5vcil7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9fXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2s7dC5pc0NvbXBhdGlibGU9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2sobi5WRVJTSU9OKX0sODg2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QubWV0cmljcz12b2lkIDA7Y29uc3Qgbj1yKDY1Myk7dC5tZXRyaWNzPW4uTWV0cmljc0FQSS5nZXRJbnN0YW5jZSgpfSw5MDE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVmFsdWVUeXBlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiSU5UXCJdPTBdPVwiSU5UXCI7ZVtlW1wiRE9VQkxFXCJdPTFdPVwiRE9VQkxFXCJ9KShyPXQuVmFsdWVUeXBlfHwodC5WYWx1ZVR5cGU9e30pKX0sMTAyOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZU5vb3BNZXRlcj10Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz10Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz10Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz10Lk5PT1BfSElTVE9HUkFNX01FVFJJQz10Lk5PT1BfQ09VTlRFUl9NRVRSSUM9dC5OT09QX01FVEVSPXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlTWV0cmljPXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcENvdW50ZXJNZXRyaWM9dC5Ob29wTWV0cmljPXQuTm9vcE1ldGVyPXZvaWQgMDtjbGFzcyBOb29wTWV0ZXJ7Y29uc3RydWN0b3IoKXt9Y3JlYXRlSGlzdG9ncmFtKGUscil7cmV0dXJuIHQuTk9PUF9ISVNUT0dSQU1fTUVUUklDfWNyZWF0ZUNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX0NPVU5URVJfTUVUUklDfWNyZWF0ZVVwRG93bkNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZUdhdWdlKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDfWFkZEJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUsdCl7fXJlbW92ZUJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUpe319dC5Ob29wTWV0ZXI9Tm9vcE1ldGVyO2NsYXNzIE5vb3BNZXRyaWN7fXQuTm9vcE1ldHJpYz1Ob29wTWV0cmljO2NsYXNzIE5vb3BDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3thZGQoZSx0KXt9fXQuTm9vcENvdW50ZXJNZXRyaWM9Tm9vcENvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wVXBEb3duQ291bnRlck1ldHJpYz1Ob29wVXBEb3duQ291bnRlck1ldHJpYztjbGFzcyBOb29wSGlzdG9ncmFtTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3tyZWNvcmQoZSx0KXt9fXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz1Ob29wSGlzdG9ncmFtTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlTWV0cmlje2FkZENhbGxiYWNrKGUpe31yZW1vdmVDYWxsYmFjayhlKXt9fXQuTm9vcE9ic2VydmFibGVNZXRyaWM9Tm9vcE9ic2VydmFibGVNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYz1Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX01FVEVSPW5ldyBOb29wTWV0ZXI7dC5OT09QX0NPVU5URVJfTUVUUklDPW5ldyBOb29wQ291bnRlck1ldHJpYzt0Lk5PT1BfSElTVE9HUkFNX01FVFJJQz1uZXcgTm9vcEhpc3RvZ3JhbU1ldHJpYzt0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljO2Z1bmN0aW9uIGNyZWF0ZU5vb3BNZXRlcigpe3JldHVybiB0Lk5PT1BfTUVURVJ9dC5jcmVhdGVOb29wTWV0ZXI9Y3JlYXRlTm9vcE1ldGVyfSw2NjA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5OT09QX01FVEVSX1BST1ZJREVSPXQuTm9vcE1ldGVyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMDIpO2NsYXNzIE5vb3BNZXRlclByb3ZpZGVye2dldE1ldGVyKGUsdCxyKXtyZXR1cm4gbi5OT09QX01FVEVSfX10Lk5vb3BNZXRlclByb3ZpZGVyPU5vb3BNZXRlclByb3ZpZGVyO3QuTk9PUF9NRVRFUl9QUk9WSURFUj1uZXcgTm9vcE1ldGVyUHJvdmlkZXJ9LDIwMDpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDQ2KSx0KX0sNjUxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Ll9nbG9iYWxUaGlzPXZvaWQgMDt0Ll9nbG9iYWxUaGlzPXR5cGVvZiBnbG9iYWxUaGlzPT09XCJvYmplY3RcIj9nbG9iYWxUaGlzOmdsb2JhbH0sNDY6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSl9OmZ1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO2Vbbl09dFtyXX0pO3ZhciBhPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKWlmKHIhPT1cImRlZmF1bHRcIiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKW4odCxlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2Eocig2NTEpLHQpfSw5Mzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5wcm9wYWdhdGlvbj12b2lkIDA7Y29uc3Qgbj1yKDE4MSk7dC5wcm9wYWdhdGlvbj1uLlByb3BhZ2F0aW9uQVBJLmdldEluc3RhbmNlKCl9LDg3NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVGV4dE1hcFByb3BhZ2F0b3I9dm9pZCAwO2NsYXNzIE5vb3BUZXh0TWFwUHJvcGFnYXRvcntpbmplY3QoZSx0KXt9ZXh0cmFjdChlLHQpe3JldHVybiBlfWZpZWxkcygpe3JldHVybltdfX10Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj1Ob29wVGV4dE1hcFByb3BhZ2F0b3J9LDE5NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWZhdWx0VGV4dE1hcFNldHRlcj10LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXZvaWQgMDt0LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXtnZXQoZSx0KXtpZihlPT1udWxsKXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBlW3RdfSxrZXlzKGUpe2lmKGU9PW51bGwpe3JldHVybltdfXJldHVybiBPYmplY3Qua2V5cyhlKX19O3QuZGVmYXVsdFRleHRNYXBTZXR0ZXI9e3NldChlLHQscil7aWYoZT09bnVsbCl7cmV0dXJufWVbdF09cn19fSw4NDU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC50cmFjZT12b2lkIDA7Y29uc3Qgbj1yKDk5Nyk7dC50cmFjZT1uLlRyYWNlQVBJLmdldEluc3RhbmNlKCl9LDQwMzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vblJlY29yZGluZ1NwYW49dm9pZCAwO2NvbnN0IG49cig0NzYpO2NsYXNzIE5vblJlY29yZGluZ1NwYW57Y29uc3RydWN0b3IoZT1uLklOVkFMSURfU1BBTl9DT05URVhUKXt0aGlzLl9zcGFuQ29udGV4dD1lfXNwYW5Db250ZXh0KCl7cmV0dXJuIHRoaXMuX3NwYW5Db250ZXh0fXNldEF0dHJpYnV0ZShlLHQpe3JldHVybiB0aGlzfXNldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIHRoaXN9YWRkRXZlbnQoZSx0KXtyZXR1cm4gdGhpc31zZXRTdGF0dXMoZSl7cmV0dXJuIHRoaXN9dXBkYXRlTmFtZShlKXtyZXR1cm4gdGhpc31lbmQoZSl7fWlzUmVjb3JkaW5nKCl7cmV0dXJuIGZhbHNlfXJlY29yZEV4Y2VwdGlvbihlLHQpe319dC5Ob25SZWNvcmRpbmdTcGFuPU5vblJlY29yZGluZ1NwYW59LDYxNDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUcmFjZXI9dm9pZCAwO2NvbnN0IG49cig0OTEpO2NvbnN0IGE9cig2MDcpO2NvbnN0IG89cig0MDMpO2NvbnN0IGk9cigxMzkpO2NvbnN0IGM9bi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCk7Y2xhc3MgTm9vcFRyYWNlcntzdGFydFNwYW4oZSx0LHI9Yy5hY3RpdmUoKSl7Y29uc3Qgbj1Cb29sZWFuKHQ9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnJvb3QpO2lmKG4pe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufWNvbnN0IHM9ciYmKDAsYS5nZXRTcGFuQ29udGV4dCkocik7aWYoaXNTcGFuQ29udGV4dChzKSYmKDAsaS5pc1NwYW5Db250ZXh0VmFsaWQpKHMpKXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3BhbihzKX1lbHNle3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7bGV0IG87bGV0IGk7bGV0IHM7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtyZXR1cm59ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Mil7cz10fWVsc2UgaWYoYXJndW1lbnRzLmxlbmd0aD09PTMpe289dDtzPXJ9ZWxzZXtvPXQ7aT1yO3M9bn1jb25zdCB1PWkhPT1udWxsJiZpIT09dm9pZCAwP2k6Yy5hY3RpdmUoKTtjb25zdCBsPXRoaXMuc3RhcnRTcGFuKGUsbyx1KTtjb25zdCBnPSgwLGEuc2V0U3BhbikodSxsKTtyZXR1cm4gYy53aXRoKGcscyx1bmRlZmluZWQsbCl9fXQuTm9vcFRyYWNlcj1Ob29wVHJhY2VyO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHQoZSl7cmV0dXJuIHR5cGVvZiBlPT09XCJvYmplY3RcIiYmdHlwZW9mIGVbXCJzcGFuSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlRmxhZ3NcIl09PT1cIm51bWJlclwifX0sMTI0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjbGFzcyBOb29wVHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXtyZXR1cm4gbmV3IG4uTm9vcFRyYWNlcn19dC5Ob29wVHJhY2VyUHJvdmlkZXI9Tm9vcFRyYWNlclByb3ZpZGVyfSwxMjU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDYxNCk7Y29uc3QgYT1uZXcgbi5Ob29wVHJhY2VyO2NsYXNzIFByb3h5VHJhY2Vye2NvbnN0cnVjdG9yKGUsdCxyLG4pe3RoaXMuX3Byb3ZpZGVyPWU7dGhpcy5uYW1lPXQ7dGhpcy52ZXJzaW9uPXI7dGhpcy5vcHRpb25zPW59c3RhcnRTcGFuKGUsdCxyKXtyZXR1cm4gdGhpcy5fZ2V0VHJhY2VyKCkuc3RhcnRTcGFuKGUsdCxyKX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7Y29uc3QgYT10aGlzLl9nZXRUcmFjZXIoKTtyZXR1cm4gUmVmbGVjdC5hcHBseShhLnN0YXJ0QWN0aXZlU3BhbixhLGFyZ3VtZW50cyl9X2dldFRyYWNlcigpe2lmKHRoaXMuX2RlbGVnYXRlKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9Y29uc3QgZT10aGlzLl9wcm92aWRlci5nZXREZWxlZ2F0ZVRyYWNlcih0aGlzLm5hbWUsdGhpcy52ZXJzaW9uLHRoaXMub3B0aW9ucyk7aWYoIWUpe3JldHVybiBhfXRoaXMuX2RlbGVnYXRlPWU7cmV0dXJuIHRoaXMuX2RlbGVnYXRlfX10LlByb3h5VHJhY2VyPVByb3h5VHJhY2VyfSw4NDY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoMTI1KTtjb25zdCBhPXIoMTI0KTtjb25zdCBvPW5ldyBhLk5vb3BUcmFjZXJQcm92aWRlcjtjbGFzcyBQcm94eVRyYWNlclByb3ZpZGVye2dldFRyYWNlcihlLHQscil7dmFyIGE7cmV0dXJuKGE9dGhpcy5nZXREZWxlZ2F0ZVRyYWNlcihlLHQscikpIT09bnVsbCYmYSE9PXZvaWQgMD9hOm5ldyBuLlByb3h5VHJhY2VyKHRoaXMsZSx0LHIpfWdldERlbGVnYXRlKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5fZGVsZWdhdGUpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm99c2V0RGVsZWdhdGUoZSl7dGhpcy5fZGVsZWdhdGU9ZX1nZXREZWxlZ2F0ZVRyYWNlcihlLHQscil7dmFyIG47cmV0dXJuKG49dGhpcy5fZGVsZWdhdGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5nZXRUcmFjZXIoZSx0LHIpfX10LlByb3h5VHJhY2VyUHJvdmlkZXI9UHJveHlUcmFjZXJQcm92aWRlcn0sOTk2OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNhbXBsaW5nRGVjaXNpb249dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT1RfUkVDT1JEXCJdPTBdPVwiTk9UX1JFQ09SRFwiO2VbZVtcIlJFQ09SRFwiXT0xXT1cIlJFQ09SRFwiO2VbZVtcIlJFQ09SRF9BTkRfU0FNUExFRFwiXT0yXT1cIlJFQ09SRF9BTkRfU0FNUExFRFwifSkocj10LlNhbXBsaW5nRGVjaXNpb258fCh0LlNhbXBsaW5nRGVjaXNpb249e30pKX0sNjA3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZ2V0U3BhbkNvbnRleHQ9dC5zZXRTcGFuQ29udGV4dD10LmRlbGV0ZVNwYW49dC5zZXRTcGFuPXQuZ2V0QWN0aXZlU3Bhbj10LmdldFNwYW49dm9pZCAwO2NvbnN0IG49cig3ODApO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89cig0OTEpO2NvbnN0IGk9KDAsbi5jcmVhdGVDb250ZXh0S2V5KShcIk9wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgU1BBTlwiKTtmdW5jdGlvbiBnZXRTcGFuKGUpe3JldHVybiBlLmdldFZhbHVlKGkpfHx1bmRlZmluZWR9dC5nZXRTcGFuPWdldFNwYW47ZnVuY3Rpb24gZ2V0QWN0aXZlU3Bhbigpe3JldHVybiBnZXRTcGFuKG8uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZVNwYW49Z2V0QWN0aXZlU3BhbjtmdW5jdGlvbiBzZXRTcGFuKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUoaSx0KX10LnNldFNwYW49c2V0U3BhbjtmdW5jdGlvbiBkZWxldGVTcGFuKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKGkpfXQuZGVsZXRlU3Bhbj1kZWxldGVTcGFuO2Z1bmN0aW9uIHNldFNwYW5Db250ZXh0KGUsdCl7cmV0dXJuIHNldFNwYW4oZSxuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKHQpKX10LnNldFNwYW5Db250ZXh0PXNldFNwYW5Db250ZXh0O2Z1bmN0aW9uIGdldFNwYW5Db250ZXh0KGUpe3ZhciB0O3JldHVybih0PWdldFNwYW4oZSkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5zcGFuQ29udGV4dCgpfXQuZ2V0U3BhbkNvbnRleHQ9Z2V0U3BhbkNvbnRleHR9LDMyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlU3RhdGVJbXBsPXZvaWQgMDtjb25zdCBuPXIoNTY0KTtjb25zdCBhPTMyO2NvbnN0IG89NTEyO2NvbnN0IGk9XCIsXCI7Y29uc3QgYz1cIj1cIjtjbGFzcyBUcmFjZVN0YXRlSW1wbHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXA7aWYoZSl0aGlzLl9wYXJzZShlKX1zZXQoZSx0KXtjb25zdCByPXRoaXMuX2Nsb25lKCk7aWYoci5faW50ZXJuYWxTdGF0ZS5oYXMoZSkpe3IuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpfXIuX2ludGVybmFsU3RhdGUuc2V0KGUsdCk7cmV0dXJuIHJ9dW5zZXQoZSl7Y29uc3QgdD10aGlzLl9jbG9uZSgpO3QuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpO3JldHVybiB0fWdldChlKXtyZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZS5nZXQoZSl9c2VyaWFsaXplKCl7cmV0dXJuIHRoaXMuX2tleXMoKS5yZWR1Y2UoKChlLHQpPT57ZS5wdXNoKHQrYyt0aGlzLmdldCh0KSk7cmV0dXJuIGV9KSxbXSkuam9pbihpKX1fcGFyc2UoZSl7aWYoZS5sZW5ndGg+bylyZXR1cm47dGhpcy5faW50ZXJuYWxTdGF0ZT1lLnNwbGl0KGkpLnJldmVyc2UoKS5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgcj10LnRyaW0oKTtjb25zdCBhPXIuaW5kZXhPZihjKTtpZihhIT09LTEpe2NvbnN0IG89ci5zbGljZSgwLGEpO2NvbnN0IGk9ci5zbGljZShhKzEsdC5sZW5ndGgpO2lmKCgwLG4udmFsaWRhdGVLZXkpKG8pJiYoMCxuLnZhbGlkYXRlVmFsdWUpKGkpKXtlLnNldChvLGkpfWVsc2V7fX1yZXR1cm4gZX0pLG5ldyBNYXApO2lmKHRoaXMuX2ludGVybmFsU3RhdGUuc2l6ZT5hKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAoQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmVudHJpZXMoKSkucmV2ZXJzZSgpLnNsaWNlKDAsYSkpfX1fa2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUua2V5cygpKS5yZXZlcnNlKCl9X2Nsb25lKCl7Y29uc3QgZT1uZXcgVHJhY2VTdGF0ZUltcGw7ZS5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwKHRoaXMuX2ludGVybmFsU3RhdGUpO3JldHVybiBlfX10LlRyYWNlU3RhdGVJbXBsPVRyYWNlU3RhdGVJbXBsfSw1NjQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudmFsaWRhdGVWYWx1ZT10LnZhbGlkYXRlS2V5PXZvaWQgMDtjb25zdCByPVwiW18wLTlhLXotKi9dXCI7Y29uc3Qgbj1gW2Etel0ke3J9ezAsMjU1fWA7Y29uc3QgYT1gW2EtejAtOV0ke3J9ezAsMjQwfUBbYS16XSR7cn17MCwxM31gO2NvbnN0IG89bmV3IFJlZ0V4cChgXig/OiR7bn18JHthfSkkYCk7Y29uc3QgaT0vXlsgLX5dezAsMjU1fVshLX5dJC87Y29uc3QgYz0vLHw9LztmdW5jdGlvbiB2YWxpZGF0ZUtleShlKXtyZXR1cm4gby50ZXN0KGUpfXQudmFsaWRhdGVLZXk9dmFsaWRhdGVLZXk7ZnVuY3Rpb24gdmFsaWRhdGVWYWx1ZShlKXtyZXR1cm4gaS50ZXN0KGUpJiYhYy50ZXN0KGUpfXQudmFsaWRhdGVWYWx1ZT12YWxpZGF0ZVZhbHVlfSw5ODooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZVRyYWNlU3RhdGU9dm9pZCAwO2NvbnN0IG49cigzMjUpO2Z1bmN0aW9uIGNyZWF0ZVRyYWNlU3RhdGUoZSl7cmV0dXJuIG5ldyBuLlRyYWNlU3RhdGVJbXBsKGUpfXQuY3JlYXRlVHJhY2VTdGF0ZT1jcmVhdGVUcmFjZVN0YXRlfSw0NzY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5JTlZBTElEX1NQQU5fQ09OVEVYVD10LklOVkFMSURfVFJBQ0VJRD10LklOVkFMSURfU1BBTklEPXZvaWQgMDtjb25zdCBuPXIoNDc1KTt0LklOVkFMSURfU1BBTklEPVwiMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9UUkFDRUlEPVwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIjt0LklOVkFMSURfU1BBTl9DT05URVhUPXt0cmFjZUlkOnQuSU5WQUxJRF9UUkFDRUlELHNwYW5JZDp0LklOVkFMSURfU1BBTklELHRyYWNlRmxhZ3M6bi5UcmFjZUZsYWdzLk5PTkV9fSwzNTc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU3BhbktpbmQ9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRFUk5BTFwiXT0wXT1cIklOVEVSTkFMXCI7ZVtlW1wiU0VSVkVSXCJdPTFdPVwiU0VSVkVSXCI7ZVtlW1wiQ0xJRU5UXCJdPTJdPVwiQ0xJRU5UXCI7ZVtlW1wiUFJPRFVDRVJcIl09M109XCJQUk9EVUNFUlwiO2VbZVtcIkNPTlNVTUVSXCJdPTRdPVwiQ09OU1VNRVJcIn0pKHI9dC5TcGFuS2luZHx8KHQuU3BhbktpbmQ9e30pKX0sMTM5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3Qud3JhcFNwYW5Db250ZXh0PXQuaXNTcGFuQ29udGV4dFZhbGlkPXQuaXNWYWxpZFNwYW5JZD10LmlzVmFsaWRUcmFjZUlkPXZvaWQgMDtjb25zdCBuPXIoNDc2KTtjb25zdCBhPXIoNDAzKTtjb25zdCBvPS9eKFswLTlhLWZdezMyfSkkL2k7Y29uc3QgaT0vXlswLTlhLWZdezE2fSQvaTtmdW5jdGlvbiBpc1ZhbGlkVHJhY2VJZChlKXtyZXR1cm4gby50ZXN0KGUpJiZlIT09bi5JTlZBTElEX1RSQUNFSUR9dC5pc1ZhbGlkVHJhY2VJZD1pc1ZhbGlkVHJhY2VJZDtmdW5jdGlvbiBpc1ZhbGlkU3BhbklkKGUpe3JldHVybiBpLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfU1BBTklEfXQuaXNWYWxpZFNwYW5JZD1pc1ZhbGlkU3BhbklkO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHRWYWxpZChlKXtyZXR1cm4gaXNWYWxpZFRyYWNlSWQoZS50cmFjZUlkKSYmaXNWYWxpZFNwYW5JZChlLnNwYW5JZCl9dC5pc1NwYW5Db250ZXh0VmFsaWQ9aXNTcGFuQ29udGV4dFZhbGlkO2Z1bmN0aW9uIHdyYXBTcGFuQ29udGV4dChlKXtyZXR1cm4gbmV3IGEuTm9uUmVjb3JkaW5nU3BhbihlKX10LndyYXBTcGFuQ29udGV4dD13cmFwU3BhbkNvbnRleHR9LDg0NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuU3RhdHVzQ29kZT12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIlVOU0VUXCJdPTBdPVwiVU5TRVRcIjtlW2VbXCJPS1wiXT0xXT1cIk9LXCI7ZVtlW1wiRVJST1JcIl09Ml09XCJFUlJPUlwifSkocj10LlNwYW5TdGF0dXNDb2RlfHwodC5TcGFuU3RhdHVzQ29kZT17fSkpfSw0NzU6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VGbGFncz12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiU0FNUExFRFwiXT0xXT1cIlNBTVBMRURcIn0pKHI9dC5UcmFjZUZsYWdzfHwodC5UcmFjZUZsYWdzPXt9KSl9LDUyMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WRVJTSU9OPXZvaWQgMDt0LlZFUlNJT049XCIxLjYuMFwifX07dmFyIHQ9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhyKXt2YXIgbj10W3JdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGE9dFtyXT17ZXhwb3J0czp7fX07dmFyIG89dHJ1ZTt0cnl7ZVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtvPWZhbHNlfWZpbmFsbHl7aWYobylkZWxldGUgdFtyXX1yZXR1cm4gYS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgcj17fTsoKCk9Pnt2YXIgZT1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7ZS50cmFjZT1lLnByb3BhZ2F0aW9uPWUubWV0cmljcz1lLmRpYWc9ZS5jb250ZXh0PWUuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9ZS5JTlZBTElEX1RSQUNFSUQ9ZS5JTlZBTElEX1NQQU5JRD1lLmlzVmFsaWRTcGFuSWQ9ZS5pc1ZhbGlkVHJhY2VJZD1lLmlzU3BhbkNvbnRleHRWYWxpZD1lLmNyZWF0ZVRyYWNlU3RhdGU9ZS5UcmFjZUZsYWdzPWUuU3BhblN0YXR1c0NvZGU9ZS5TcGFuS2luZD1lLlNhbXBsaW5nRGVjaXNpb249ZS5Qcm94eVRyYWNlclByb3ZpZGVyPWUuUHJveHlUcmFjZXI9ZS5kZWZhdWx0VGV4dE1hcFNldHRlcj1lLmRlZmF1bHRUZXh0TWFwR2V0dGVyPWUuVmFsdWVUeXBlPWUuY3JlYXRlTm9vcE1ldGVyPWUuRGlhZ0xvZ0xldmVsPWUuRGlhZ0NvbnNvbGVMb2dnZXI9ZS5ST09UX0NPTlRFWFQ9ZS5jcmVhdGVDb250ZXh0S2V5PWUuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXZvaWQgMDt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDM2OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmdcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ319KTt2YXIgbj1fX25jY3dwY2tfcmVxdWlyZV9fKDc4MCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVDb250ZXh0S2V5XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jcmVhdGVDb250ZXh0S2V5fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUk9PVF9DT05URVhUXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9fSk7dmFyIGE9X19uY2N3cGNrX3JlcXVpcmVfXyg5NzIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0NvbnNvbGVMb2dnZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBhLkRpYWdDb25zb2xlTG9nZ2VyfX0pO3ZhciBvPV9fbmNjd3Bja19yZXF1aXJlX18oOTU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIkRpYWdMb2dMZXZlbFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uRGlhZ0xvZ0xldmVsfX0pO3ZhciBpPV9fbmNjd3Bja19yZXF1aXJlX18oMTAyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZU5vb3BNZXRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuY3JlYXRlTm9vcE1ldGVyfX0pO3ZhciBjPV9fbmNjd3Bja19yZXF1aXJlX18oOTAxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlZhbHVlVHlwZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuVmFsdWVUeXBlfX0pO3ZhciBzPV9fbmNjd3Bja19yZXF1aXJlX18oMTk0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwR2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcEdldHRlcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwU2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcFNldHRlcn19KTt2YXIgdT1fX25jY3dwY2tfcmVxdWlyZV9fKDEyNSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuUHJveHlUcmFjZXJ9fSk7dmFyIGw9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUHJveHlUcmFjZXJQcm92aWRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuUHJveHlUcmFjZXJQcm92aWRlcn19KTt2YXIgZz1fX25jY3dwY2tfcmVxdWlyZV9fKDk5Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTYW1wbGluZ0RlY2lzaW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5TYW1wbGluZ0RlY2lzaW9ufX0pO3ZhciBwPV9fbmNjd3Bja19yZXF1aXJlX18oMzU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5LaW5kXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5TcGFuS2luZH19KTt2YXIgZD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTcGFuU3RhdHVzQ29kZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQuU3BhblN0YXR1c0NvZGV9fSk7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg0NzUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVHJhY2VGbGFnc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF8uVHJhY2VGbGFnc319KTt2YXIgZj1fX25jY3dwY2tfcmVxdWlyZV9fKDk4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZVRyYWNlU3RhdGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBmLmNyZWF0ZVRyYWNlU3RhdGV9fSk7dmFyIGI9X19uY2N3cGNrX3JlcXVpcmVfXygxMzkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNTcGFuQ29udGV4dFZhbGlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1NwYW5Db250ZXh0VmFsaWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkVHJhY2VJZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNWYWxpZFRyYWNlSWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkU3BhbklkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkU3BhbklkfX0pO3ZhciB2PV9fbmNjd3Bja19yZXF1aXJlX18oNDc2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfU1BBTklEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1NQQU5JRH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfVFJBQ0VJRFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9UUkFDRUlEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTl9DT05URVhUfX0pO2NvbnN0IE89X19uY2N3cGNrX3JlcXVpcmVfXyg2Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjb250ZXh0XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTy5jb250ZXh0fX0pO2NvbnN0IFA9X19uY2N3cGNrX3JlcXVpcmVfXyg1MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGlhZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAuZGlhZ319KTtjb25zdCBOPV9fbmNjd3Bja19yZXF1aXJlX18oODg2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIm1ldHJpY3NcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBOLm1ldHJpY3N9fSk7Y29uc3QgUz1fX25jY3dwY2tfcmVxdWlyZV9fKDkzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm9wYWdhdGlvblwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFMucHJvcGFnYXRpb259fSk7Y29uc3QgQz1fX25jY3dwY2tfcmVxdWlyZV9fKDg0NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJ0cmFjZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEMudHJhY2V9fSk7ZVtcImRlZmF1bHRcIl09e2NvbnRleHQ6Ty5jb250ZXh0LGRpYWc6UC5kaWFnLG1ldHJpY3M6Ti5tZXRyaWNzLHByb3BhZ2F0aW9uOlMucHJvcGFnYXRpb24sdHJhY2U6Qy50cmFjZX19KSgpO21vZHVsZS5leHBvcnRzPXJ9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/cookie/index.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/compiled/cookie/index.js ***! \*********************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsaUZBQWlGLFNBQVMsTUFBTTtBQUNuSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHNCQUFzQix5QkFBeUIseUJBQXlCLFNBQVMsR0FBRyw4Q0FBOEMsb0JBQW9CLHdCQUF3QixxREFBcUQsU0FBUyxZQUFZLGlCQUFpQixrQkFBa0IsWUFBWSxXQUFXLEtBQUssV0FBVyxxQkFBcUIsUUFBUSxTQUFTLDJCQUEyQixvQ0FBb0MsY0FBYyxnQkFBZ0Isb0JBQW9CLHFCQUFxQixTQUFTLDBCQUEwQixZQUFZLGtCQUFrQiwwQkFBMEIsZ0RBQWdELGVBQWUsZ0RBQWdELFdBQVcsa0JBQWtCLCtDQUErQyxjQUFjLG1CQUFtQixpQkFBaUIsMkJBQTJCLGdEQUFnRCxNQUFNLHdCQUF3QixhQUFhLHNCQUFzQixnREFBZ0QsTUFBTSxrQkFBa0IsV0FBVyxvQkFBb0IsOENBQThDLE1BQU0sY0FBYyxjQUFjLDhDQUE4QyxpREFBaUQsTUFBTSxrQ0FBa0MsZUFBZSxNQUFNLFVBQVUsYUFBYSxNQUFNLFFBQVEsZUFBZSx1RUFBdUUsVUFBVSxnQkFBZ0IsaUJBQWlCLE1BQU0sZ0JBQWdCLGNBQWMsTUFBTSxtQkFBbUIsaUJBQWlCLE1BQU0saUJBQWlCLGVBQWUsTUFBTSwyREFBMkQsU0FBUyx3QkFBd0IsSUFBSSxZQUFZLFNBQVMsV0FBVyxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjtpZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIGU9e307KCgpPT57dmFyIHI9ZTtcbi8qIVxuICogY29va2llXG4gKiBDb3B5cmlnaHQoYykgMjAxMi0yMDE0IFJvbWFuIFNodHlsbWFuXG4gKiBDb3B5cmlnaHQoYykgMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9yLnBhcnNlPXBhcnNlO3Iuc2VyaWFsaXplPXNlcmlhbGl6ZTt2YXIgaT1kZWNvZGVVUklDb21wb25lbnQ7dmFyIHQ9ZW5jb2RlVVJJQ29tcG9uZW50O3ZhciBhPS87ICovO3ZhciBuPS9eW1xcdTAwMDlcXHUwMDIwLVxcdTAwN2VcXHUwMDgwLVxcdTAwZmZdKyQvO2Z1bmN0aW9uIHBhcnNlKGUscil7aWYodHlwZW9mIGUhPT1cInN0cmluZ1wiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyIG11c3QgYmUgYSBzdHJpbmdcIil9dmFyIHQ9e307dmFyIG49cnx8e307dmFyIG89ZS5zcGxpdChhKTt2YXIgcz1uLmRlY29kZXx8aTtmb3IodmFyIHA9MDtwPG8ubGVuZ3RoO3ArKyl7dmFyIGY9b1twXTt2YXIgdT1mLmluZGV4T2YoXCI9XCIpO2lmKHU8MCl7Y29udGludWV9dmFyIHY9Zi5zdWJzdHIoMCx1KS50cmltKCk7dmFyIGM9Zi5zdWJzdHIoKyt1LGYubGVuZ3RoKS50cmltKCk7aWYoJ1wiJz09Y1swXSl7Yz1jLnNsaWNlKDEsLTEpfWlmKHVuZGVmaW5lZD09dFt2XSl7dFt2XT10cnlEZWNvZGUoYyxzKX19cmV0dXJuIHR9ZnVuY3Rpb24gc2VyaWFsaXplKGUscixpKXt2YXIgYT1pfHx7fTt2YXIgbz1hLmVuY29kZXx8dDtpZih0eXBlb2YgbyE9PVwiZnVuY3Rpb25cIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBlbmNvZGUgaXMgaW52YWxpZFwiKX1pZighbi50ZXN0KGUpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgbmFtZSBpcyBpbnZhbGlkXCIpfXZhciBzPW8ocik7aWYocyYmIW4udGVzdChzKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHZhbCBpcyBpbnZhbGlkXCIpfXZhciBwPWUrXCI9XCIrcztpZihudWxsIT1hLm1heEFnZSl7dmFyIGY9YS5tYXhBZ2UtMDtpZihpc05hTihmKXx8IWlzRmluaXRlKGYpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIG1heEFnZSBpcyBpbnZhbGlkXCIpfXArPVwiOyBNYXgtQWdlPVwiK01hdGguZmxvb3IoZil9aWYoYS5kb21haW4pe2lmKCFuLnRlc3QoYS5kb21haW4pKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGRvbWFpbiBpcyBpbnZhbGlkXCIpfXArPVwiOyBEb21haW49XCIrYS5kb21haW59aWYoYS5wYXRoKXtpZighbi50ZXN0KGEucGF0aCkpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gcGF0aCBpcyBpbnZhbGlkXCIpfXArPVwiOyBQYXRoPVwiK2EucGF0aH1pZihhLmV4cGlyZXMpe2lmKHR5cGVvZiBhLmV4cGlyZXMudG9VVENTdHJpbmchPT1cImZ1bmN0aW9uXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZXhwaXJlcyBpcyBpbnZhbGlkXCIpfXArPVwiOyBFeHBpcmVzPVwiK2EuZXhwaXJlcy50b1VUQ1N0cmluZygpfWlmKGEuaHR0cE9ubHkpe3ArPVwiOyBIdHRwT25seVwifWlmKGEuc2VjdXJlKXtwKz1cIjsgU2VjdXJlXCJ9aWYoYS5zYW1lU2l0ZSl7dmFyIHU9dHlwZW9mIGEuc2FtZVNpdGU9PT1cInN0cmluZ1wiP2Euc2FtZVNpdGUudG9Mb3dlckNhc2UoKTphLnNhbWVTaXRlO3N3aXRjaCh1KXtjYXNlIHRydWU6cCs9XCI7IFNhbWVTaXRlPVN0cmljdFwiO2JyZWFrO2Nhc2VcImxheFwiOnArPVwiOyBTYW1lU2l0ZT1MYXhcIjticmVhaztjYXNlXCJzdHJpY3RcIjpwKz1cIjsgU2FtZVNpdGU9U3RyaWN0XCI7YnJlYWs7Y2FzZVwibm9uZVwiOnArPVwiOyBTYW1lU2l0ZT1Ob25lXCI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHNhbWVTaXRlIGlzIGludmFsaWRcIil9fXJldHVybiBwfWZ1bmN0aW9uIHRyeURlY29kZShlLHIpe3RyeXtyZXR1cm4gcihlKX1jYXRjaChyKXtyZXR1cm4gZX19fSkoKTttb2R1bGUuZXhwb3J0cz1lfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/cookie/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/fresh/index.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/compiled/fresh/index.js ***! \********************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_<u.length;_++){var o=u[_];if(o===f||o===\"W/\"+f||\"W/\"+o===f){n=false;break}}if(n){return false}}if(t){var p=a[\"last-modified\"];var v=!p||!(parseHttpDate(p)<=parseHttpDate(t));if(v){return false}}return true}function parseHttpDate(e){var r=e&&Date.parse(e);return typeof r===\"number\"?r:NaN}function parseTokenList(e){var r=0;var a=[];var t=0;for(var s=0,i=e.length;s<i;s++){switch(e.charCodeAt(s)){case 32:if(t===r){t=r=s+1}break;case 44:a.push(e.substring(t,r));t=r=s+1;break;default:r=s+1;break}}a.push(e.substring(t,r));return a}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var s=r[a]={exports:{}};var i=true;try{e[a](s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete r[a]}return s.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(695);module.exports=a})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxnQkFBZ0Isb0JBQW9CLDZCQUE2Qix5QkFBeUIsV0FBVyxhQUFhLHlCQUF5QixpQkFBaUIsYUFBYSxlQUFlLGdCQUFnQixPQUFPLGFBQWEsV0FBVyx3QkFBd0IsWUFBWSxXQUFXLEtBQUssV0FBVyxrQ0FBa0MsUUFBUSxPQUFPLE1BQU0sY0FBYyxNQUFNLHlCQUF5QixnREFBZ0QsTUFBTSxjQUFjLFlBQVksMEJBQTBCLHVCQUF1QixpQ0FBaUMsMkJBQTJCLFFBQVEsU0FBUyxRQUFRLHVCQUF1QixJQUFJLEtBQUssd0JBQXdCLGtCQUFrQixRQUFRLE1BQU0saUNBQWlDLFFBQVEsTUFBTSxjQUFjLE9BQU8seUJBQXlCLFlBQVksU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvZnJlc2gvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezY5NTplPT57XG4vKiFcbiAqIGZyZXNoXG4gKiBDb3B5cmlnaHQoYykgMjAxMiBUSiBIb2xvd2F5Y2h1a1xuICogQ29weXJpZ2h0KGMpIDIwMTYtMjAxNyBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cbnZhciByPS8oPzpefCwpXFxzKj9uby1jYWNoZVxccyo/KD86LHwkKS87ZS5leHBvcnRzPWZyZXNoO2Z1bmN0aW9uIGZyZXNoKGUsYSl7dmFyIHQ9ZVtcImlmLW1vZGlmaWVkLXNpbmNlXCJdO3ZhciBzPWVbXCJpZi1ub25lLW1hdGNoXCJdO2lmKCF0JiYhcyl7cmV0dXJuIGZhbHNlfXZhciBpPWVbXCJjYWNoZS1jb250cm9sXCJdO2lmKGkmJnIudGVzdChpKSl7cmV0dXJuIGZhbHNlfWlmKHMmJnMhPT1cIipcIil7dmFyIGY9YVtcImV0YWdcIl07aWYoIWYpe3JldHVybiBmYWxzZX12YXIgbj10cnVlO3ZhciB1PXBhcnNlVG9rZW5MaXN0KHMpO2Zvcih2YXIgXz0wO188dS5sZW5ndGg7XysrKXt2YXIgbz11W19dO2lmKG89PT1mfHxvPT09XCJXL1wiK2Z8fFwiVy9cIitvPT09Zil7bj1mYWxzZTticmVha319aWYobil7cmV0dXJuIGZhbHNlfX1pZih0KXt2YXIgcD1hW1wibGFzdC1tb2RpZmllZFwiXTt2YXIgdj0hcHx8IShwYXJzZUh0dHBEYXRlKHApPD1wYXJzZUh0dHBEYXRlKHQpKTtpZih2KXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfWZ1bmN0aW9uIHBhcnNlSHR0cERhdGUoZSl7dmFyIHI9ZSYmRGF0ZS5wYXJzZShlKTtyZXR1cm4gdHlwZW9mIHI9PT1cIm51bWJlclwiP3I6TmFOfWZ1bmN0aW9uIHBhcnNlVG9rZW5MaXN0KGUpe3ZhciByPTA7dmFyIGE9W107dmFyIHQ9MDtmb3IodmFyIHM9MCxpPWUubGVuZ3RoO3M8aTtzKyspe3N3aXRjaChlLmNoYXJDb2RlQXQocykpe2Nhc2UgMzI6aWYodD09PXIpe3Q9cj1zKzF9YnJlYWs7Y2FzZSA0NDphLnB1c2goZS5zdWJzdHJpbmcodCxyKSk7dD1yPXMrMTticmVhaztkZWZhdWx0OnI9cysxO2JyZWFrfX1hLnB1c2goZS5zdWJzdHJpbmcodCxyKSk7cmV0dXJuIGF9fX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhhKXt2YXIgdD1yW2FdO2lmKHQhPT11bmRlZmluZWQpe3JldHVybiB0LmV4cG9ydHN9dmFyIHM9clthXT17ZXhwb3J0czp7fX07dmFyIGk9dHJ1ZTt0cnl7ZVthXShzLHMuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtpPWZhbHNlfWZpbmFsbHl7aWYoaSlkZWxldGUgclthXX1yZXR1cm4gcy5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgYT1fX25jY3dwY2tfcmVxdWlyZV9fKDY5NSk7bW9kdWxlLmV4cG9ydHM9YX0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/fresh/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/compiled/path-to-regexp/index.js ***! \*****************************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var n=e;Object.defineProperty(n,\"__esModule\",{value:true});n.pathToRegexp=n.tokensToRegexp=n.regexpToFunction=n.match=n.tokensToFunction=n.compile=n.parse=void 0;function lexer(e){var n=[];var r=0;while(r<e.length){var t=e[r];if(t===\"*\"||t===\"+\"||t===\"?\"){n.push({type:\"MODIFIER\",index:r,value:e[r++]});continue}if(t===\"\\\\\"){n.push({type:\"ESCAPED_CHAR\",index:r++,value:e[r++]});continue}if(t===\"{\"){n.push({type:\"OPEN\",index:r,value:e[r++]});continue}if(t===\"}\"){n.push({type:\"CLOSE\",index:r,value:e[r++]});continue}if(t===\":\"){var a=\"\";var i=r+1;while(i<e.length){var o=e.charCodeAt(i);if(o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){a+=e[i++];continue}break}if(!a)throw new TypeError(\"Missing parameter name at \".concat(r));n.push({type:\"NAME\",index:r,value:a});r=i;continue}if(t===\"(\"){var c=1;var f=\"\";var i=r+1;if(e[i]===\"?\"){throw new TypeError('Pattern cannot start with \"?\" at '.concat(i))}while(i<e.length){if(e[i]===\"\\\\\"){f+=e[i++]+e[i++];continue}if(e[i]===\")\"){c--;if(c===0){i++;break}}else if(e[i]===\"(\"){c++;if(e[i+1]!==\"?\"){throw new TypeError(\"Capturing groups are not allowed at \".concat(i))}}f+=e[i++]}if(c)throw new TypeError(\"Unbalanced pattern at \".concat(r));if(!f)throw new TypeError(\"Missing pattern at \".concat(r));n.push({type:\"PATTERN\",index:r,value:f});r=i;continue}n.push({type:\"CHAR\",index:r,value:e[r++]})}n.push({type:\"END\",index:r,value:\"\"});return n}function parse(e,n){if(n===void 0){n={}}var r=lexer(e);var t=n.prefixes,a=t===void 0?\"./\":t,i=n.delimiter,o=i===void 0?\"/#?\":i;var c=[];var f=0;var u=0;var p=\"\";var tryConsume=function(e){if(u<r.length&&r[u].type===e)return r[u++].value};var mustConsume=function(e){var n=tryConsume(e);if(n!==undefined)return n;var t=r[u],a=t.type,i=t.index;throw new TypeError(\"Unexpected \".concat(a,\" at \").concat(i,\", expected \").concat(e))};var consumeText=function(){var e=\"\";var n;while(n=tryConsume(\"CHAR\")||tryConsume(\"ESCAPED_CHAR\")){e+=n}return e};var isSafe=function(e){for(var n=0,r=o;n<r.length;n++){var t=r[n];if(e.indexOf(t)>-1)return true}return false};var safePattern=function(e){var n=c[c.length-1];var r=e||(n&&typeof n===\"string\"?n:\"\");if(n&&!r){throw new TypeError('Must have text between two parameters, missing text after \"'.concat(n.name,'\"'))}if(!r||isSafe(r))return\"[^\".concat(escapeString(o),\"]+?\");return\"(?:(?!\".concat(escapeString(r),\")[^\").concat(escapeString(o),\"])+?\")};while(u<r.length){var v=tryConsume(\"CHAR\");var s=tryConsume(\"NAME\");var d=tryConsume(\"PATTERN\");if(s||d){var g=v||\"\";if(a.indexOf(g)===-1){p+=g;g=\"\"}if(p){c.push(p);p=\"\"}c.push({name:s||f++,prefix:g,suffix:\"\",pattern:d||safePattern(g),modifier:tryConsume(\"MODIFIER\")||\"\"});continue}var x=v||tryConsume(\"ESCAPED_CHAR\");if(x){p+=x;continue}if(p){c.push(p);p=\"\"}var h=tryConsume(\"OPEN\");if(h){var g=consumeText();var l=tryConsume(\"NAME\")||\"\";var m=tryConsume(\"PATTERN\")||\"\";var T=consumeText();mustConsume(\"CLOSE\");c.push({name:l||(m?f++:\"\"),pattern:l&&!m?safePattern(g):m,prefix:g,suffix:T,modifier:tryConsume(\"MODIFIER\")||\"\"});continue}mustConsume(\"END\")}return c}n.parse=parse;function compile(e,n){return tokensToFunction(parse(e,n),n)}n.compile=compile;function tokensToFunction(e,n){if(n===void 0){n={}}var r=flags(n);var t=n.encode,a=t===void 0?function(e){return e}:t,i=n.validate,o=i===void 0?true:i;var c=e.map((function(e){if(typeof e===\"object\"){return new RegExp(\"^(?:\".concat(e.pattern,\")$\"),r)}}));return function(n){var r=\"\";for(var t=0;t<e.length;t++){var i=e[t];if(typeof i===\"string\"){r+=i;continue}var f=n?n[i.name]:undefined;var u=i.modifier===\"?\"||i.modifier===\"*\";var p=i.modifier===\"*\"||i.modifier===\"+\";if(Array.isArray(f)){if(!p){throw new TypeError('Expected \"'.concat(i.name,'\" to not repeat, but got an array'))}if(f.length===0){if(u)continue;throw new TypeError('Expected \"'.concat(i.name,'\" to not be empty'))}for(var v=0;v<f.length;v++){var s=a(f[v],i);if(o&&!c[t].test(s)){throw new TypeError('Expected all \"'.concat(i.name,'\" to match \"').concat(i.pattern,'\", but got \"').concat(s,'\"'))}r+=i.prefix+s+i.suffix}continue}if(typeof f===\"string\"||typeof f===\"number\"){var s=a(String(f),i);if(o&&!c[t].test(s)){throw new TypeError('Expected \"'.concat(i.name,'\" to match \"').concat(i.pattern,'\", but got \"').concat(s,'\"'))}r+=i.prefix+s+i.suffix;continue}if(u)continue;var d=p?\"an array\":\"a string\";throw new TypeError('Expected \"'.concat(i.name,'\" to be ').concat(d))}return r}}n.tokensToFunction=tokensToFunction;function match(e,n){var r=[];var t=pathToRegexp(e,r,n);return regexpToFunction(t,r,n)}n.match=match;function regexpToFunction(e,n,r){if(r===void 0){r={}}var t=r.decode,a=t===void 0?function(e){return e}:t;return function(r){var t=e.exec(r);if(!t)return false;var i=t[0],o=t.index;var c=Object.create(null);var _loop_1=function(e){if(t[e]===undefined)return\"continue\";var r=n[e-1];if(r.modifier===\"*\"||r.modifier===\"+\"){c[r.name]=t[e].split(r.prefix+r.suffix).map((function(e){return a(e,r)}))}else{c[r.name]=a(t[e],r)}};for(var f=1;f<t.length;f++){_loop_1(f)}return{path:i,index:o,params:c}}}n.regexpToFunction=regexpToFunction;function escapeString(e){return e.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g,\"\\\\$1\")}function flags(e){return e&&e.sensitive?\"\":\"i\"}function regexpToRegexp(e,n){if(!n)return e;var r=/\\((?:\\?<(.*?)>)?(?!\\?)/g;var t=0;var a=r.exec(e.source);while(a){n.push({name:a[1]||t++,prefix:\"\",suffix:\"\",modifier:\"\",pattern:\"\"});a=r.exec(e.source)}return e}function arrayToRegexp(e,n,r){var t=e.map((function(e){return pathToRegexp(e,n,r).source}));return new RegExp(\"(?:\".concat(t.join(\"|\"),\")\"),flags(r))}function stringToRegexp(e,n,r){return tokensToRegexp(parse(e,r),n,r)}function tokensToRegexp(e,n,r){if(r===void 0){r={}}var t=r.strict,a=t===void 0?false:t,i=r.start,o=i===void 0?true:i,c=r.end,f=c===void 0?true:c,u=r.encode,p=u===void 0?function(e){return e}:u,v=r.delimiter,s=v===void 0?\"/#?\":v,d=r.endsWith,g=d===void 0?\"\":d;var x=\"[\".concat(escapeString(g),\"]|$\");var h=\"[\".concat(escapeString(s),\"]\");var l=o?\"^\":\"\";for(var m=0,T=e;m<T.length;m++){var E=T[m];if(typeof E===\"string\"){l+=escapeString(p(E))}else{var w=escapeString(p(E.prefix));var y=escapeString(p(E.suffix));if(E.pattern){if(n)n.push(E);if(w||y){if(E.modifier===\"+\"||E.modifier===\"*\"){var R=E.modifier===\"*\"?\"?\":\"\";l+=\"(?:\".concat(w,\"((?:\").concat(E.pattern,\")(?:\").concat(y).concat(w,\"(?:\").concat(E.pattern,\"))*)\").concat(y,\")\").concat(R)}else{l+=\"(?:\".concat(w,\"(\").concat(E.pattern,\")\").concat(y,\")\").concat(E.modifier)}}else{if(E.modifier===\"+\"||E.modifier===\"*\"){throw new TypeError('Can not repeat \"'.concat(E.name,'\" without a prefix and suffix'))}l+=\"(\".concat(E.pattern,\")\").concat(E.modifier)}}else{l+=\"(?:\".concat(w).concat(y,\")\").concat(E.modifier)}}}if(f){if(!a)l+=\"\".concat(h,\"?\");l+=!r.endsWith?\"$\":\"(?=\".concat(x,\")\")}else{var A=e[e.length-1];var _=typeof A===\"string\"?h.indexOf(A[A.length-1])>-1:A===undefined;if(!a){l+=\"(?:\".concat(h,\"(?=\").concat(x,\"))?\")}if(!_){l+=\"(?=\".concat(h,\"|\").concat(x,\")\")}}return new RegExp(l,flags(r))}n.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,n,r){if(e instanceof RegExp)return regexpToRegexp(e,n);if(Array.isArray(e))return arrayToRegexp(e,n,r);return stringToRegexp(e,n,r)}n.pathToRegexp=pathToRegexp})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxpRkFBaUYsU0FBUyxNQUFNLFFBQVEsc0NBQXNDLFdBQVcsRUFBRSx1R0FBdUcsa0JBQWtCLFNBQVMsUUFBUSxrQkFBa0IsV0FBVyw4QkFBOEIsUUFBUSxxQ0FBcUMsRUFBRSxTQUFTLGFBQWEsUUFBUSwyQ0FBMkMsRUFBRSxTQUFTLFNBQVMsR0FBRyxRQUFRLGlDQUFpQyxFQUFFLFNBQVMsU0FBUyxHQUFHLFFBQVEsa0NBQWtDLEVBQUUsU0FBUyxZQUFZLFNBQVMsVUFBVSxrQkFBa0Isc0JBQXNCLHNEQUFzRCxVQUFVLFNBQVMsTUFBTSxrRUFBa0UsUUFBUSw0QkFBNEIsRUFBRSxJQUFJLFNBQVMsWUFBWSxRQUFRLFNBQVMsVUFBVSxlQUFlLG1FQUFtRSxrQkFBa0IsZ0JBQWdCLGlCQUFpQixTQUFTLGVBQWUsSUFBSSxVQUFVLElBQUksT0FBTyxvQkFBb0IsSUFBSSxpQkFBaUIsdUVBQXVFLFVBQVUsNkRBQTZELDJEQUEyRCxRQUFRLCtCQUErQixFQUFFLElBQUksU0FBUyxRQUFRLGlDQUFpQyxFQUFFLFFBQVEsNEJBQTRCLEVBQUUsU0FBUyxvQkFBb0IsZUFBZSxLQUFLLGVBQWUsd0VBQXdFLFNBQVMsUUFBUSxRQUFRLFNBQVMsMkJBQTJCLGtEQUFrRCw0QkFBNEIsb0JBQW9CLDBCQUEwQiw4QkFBOEIsdUZBQXVGLDJCQUEyQixTQUFTLE1BQU0sd0RBQXdELEtBQUssVUFBVSx1QkFBdUIsZ0JBQWdCLFdBQVcsS0FBSyxXQUFXLCtCQUErQixjQUFjLDRCQUE0QixvQkFBb0IsdUNBQXVDLFVBQVUsc0dBQXNHLDBEQUEwRCw2RUFBNkUsa0JBQWtCLHlCQUF5Qix5QkFBeUIsNEJBQTRCLFNBQVMsWUFBWSxzQkFBc0IsS0FBSyxLQUFLLE1BQU0sVUFBVSxLQUFLLFFBQVEsNkZBQTZGLEVBQUUsU0FBUyxvQ0FBb0MsTUFBTSxLQUFLLFNBQVMsTUFBTSxVQUFVLEtBQUsseUJBQXlCLE1BQU0sb0JBQW9CLDZCQUE2QixnQ0FBZ0Msb0JBQW9CLHFCQUFxQixRQUFRLHdHQUF3RyxFQUFFLFNBQVMsbUJBQW1CLFNBQVMsY0FBYyxzQkFBc0Isc0NBQXNDLGtCQUFrQiwrQkFBK0IsZUFBZSxLQUFLLGVBQWUsd0NBQXdDLFNBQVMsb0NBQW9DLHlCQUF5Qix3QkFBd0Isb0RBQW9ELEdBQUcsbUJBQW1CLFNBQVMsWUFBWSxXQUFXLEtBQUssV0FBVyx3QkFBd0IsS0FBSyxTQUFTLDRCQUE0Qix5Q0FBeUMseUNBQXlDLHFCQUFxQixPQUFPLHFGQUFxRixpQkFBaUIsY0FBYyxxRUFBcUUsWUFBWSxXQUFXLEtBQUssZ0JBQWdCLHFCQUFxQixtSEFBbUgsdUJBQXVCLFNBQVMsNkNBQTZDLHFCQUFxQixxQkFBcUIsK0dBQStHLHVCQUF1QixTQUFTLGNBQWMsOEJBQThCLHNFQUFzRSxVQUFVLG9DQUFvQyxvQkFBb0IsU0FBUywwQkFBMEIsK0JBQStCLGNBQWMsaUNBQWlDLGVBQWUsS0FBSyx3Q0FBd0MsU0FBUyxHQUFHLG1CQUFtQixnQkFBZ0IsbUJBQW1CLHFCQUFxQiwwQkFBMEIsd0JBQXdCLHFDQUFxQyxhQUFhLHVDQUF1Qyx5REFBeUQsY0FBYyxHQUFHLEtBQUssc0JBQXNCLFlBQVksV0FBVyxLQUFLLFdBQVcsT0FBTywwQkFBMEIsb0NBQW9DLHlCQUF5QiwrQkFBK0Isc0JBQXNCLGtCQUFrQiw2QkFBNkIsNkJBQTZCLGVBQWUsZ0NBQWdDLFFBQVEsdUJBQXVCLFNBQVMsUUFBUSwwREFBMEQsRUFBRSxtQkFBbUIsU0FBUyw4QkFBOEIseUJBQXlCLGtDQUFrQyxHQUFHLDBEQUEwRCwrQkFBK0Isc0NBQXNDLCtCQUErQixlQUFlLEtBQUssa0lBQWtJLFNBQVMscUVBQXFFLHdDQUF3QyxzQ0FBc0MsZUFBZSxnQkFBZ0IsV0FBVyxLQUFLLFdBQVcsd0JBQXdCLHNCQUFzQixLQUFLLGdDQUFnQyxnQ0FBZ0MsY0FBYyxlQUFlLFNBQVMsdUNBQXVDLDhCQUE4Qiw4SEFBOEgsS0FBSywrRUFBK0UsS0FBSyx1Q0FBdUMsdUZBQXVGLGlEQUFpRCxLQUFLLHNEQUFzRCxNQUFNLDBCQUEwQix1Q0FBdUMsS0FBSyxvQkFBb0Isb0VBQW9FLE9BQU8seUNBQXlDLE9BQU8sc0NBQXNDLDhCQUE4QixnQ0FBZ0MsNkJBQTZCLGtEQUFrRCxnREFBZ0QsNkJBQTZCLDRCQUE0QixJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgZT17fTsoKCk9Pnt2YXIgbj1lO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7bi5wYXRoVG9SZWdleHA9bi50b2tlbnNUb1JlZ2V4cD1uLnJlZ2V4cFRvRnVuY3Rpb249bi5tYXRjaD1uLnRva2Vuc1RvRnVuY3Rpb249bi5jb21waWxlPW4ucGFyc2U9dm9pZCAwO2Z1bmN0aW9uIGxleGVyKGUpe3ZhciBuPVtdO3ZhciByPTA7d2hpbGUocjxlLmxlbmd0aCl7dmFyIHQ9ZVtyXTtpZih0PT09XCIqXCJ8fHQ9PT1cIitcInx8dD09PVwiP1wiKXtuLnB1c2goe3R5cGU6XCJNT0RJRklFUlwiLGluZGV4OnIsdmFsdWU6ZVtyKytdfSk7Y29udGludWV9aWYodD09PVwiXFxcXFwiKXtuLnB1c2goe3R5cGU6XCJFU0NBUEVEX0NIQVJcIixpbmRleDpyKyssdmFsdWU6ZVtyKytdfSk7Y29udGludWV9aWYodD09PVwie1wiKXtuLnB1c2goe3R5cGU6XCJPUEVOXCIsaW5kZXg6cix2YWx1ZTplW3IrK119KTtjb250aW51ZX1pZih0PT09XCJ9XCIpe24ucHVzaCh7dHlwZTpcIkNMT1NFXCIsaW5kZXg6cix2YWx1ZTplW3IrK119KTtjb250aW51ZX1pZih0PT09XCI6XCIpe3ZhciBhPVwiXCI7dmFyIGk9cisxO3doaWxlKGk8ZS5sZW5ndGgpe3ZhciBvPWUuY2hhckNvZGVBdChpKTtpZihvPj00OCYmbzw9NTd8fG8+PTY1JiZvPD05MHx8bz49OTcmJm88PTEyMnx8bz09PTk1KXthKz1lW2krK107Y29udGludWV9YnJlYWt9aWYoIWEpdGhyb3cgbmV3IFR5cGVFcnJvcihcIk1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgXCIuY29uY2F0KHIpKTtuLnB1c2goe3R5cGU6XCJOQU1FXCIsaW5kZXg6cix2YWx1ZTphfSk7cj1pO2NvbnRpbnVlfWlmKHQ9PT1cIihcIil7dmFyIGM9MTt2YXIgZj1cIlwiO3ZhciBpPXIrMTtpZihlW2ldPT09XCI/XCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1BhdHRlcm4gY2Fubm90IHN0YXJ0IHdpdGggXCI/XCIgYXQgJy5jb25jYXQoaSkpfXdoaWxlKGk8ZS5sZW5ndGgpe2lmKGVbaV09PT1cIlxcXFxcIil7Zis9ZVtpKytdK2VbaSsrXTtjb250aW51ZX1pZihlW2ldPT09XCIpXCIpe2MtLTtpZihjPT09MCl7aSsrO2JyZWFrfX1lbHNlIGlmKGVbaV09PT1cIihcIil7YysrO2lmKGVbaSsxXSE9PVwiP1wiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2FwdHVyaW5nIGdyb3VwcyBhcmUgbm90IGFsbG93ZWQgYXQgXCIuY29uY2F0KGkpKX19Zis9ZVtpKytdfWlmKGMpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVuYmFsYW5jZWQgcGF0dGVybiBhdCBcIi5jb25jYXQocikpO2lmKCFmKXRocm93IG5ldyBUeXBlRXJyb3IoXCJNaXNzaW5nIHBhdHRlcm4gYXQgXCIuY29uY2F0KHIpKTtuLnB1c2goe3R5cGU6XCJQQVRURVJOXCIsaW5kZXg6cix2YWx1ZTpmfSk7cj1pO2NvbnRpbnVlfW4ucHVzaCh7dHlwZTpcIkNIQVJcIixpbmRleDpyLHZhbHVlOmVbcisrXX0pfW4ucHVzaCh7dHlwZTpcIkVORFwiLGluZGV4OnIsdmFsdWU6XCJcIn0pO3JldHVybiBufWZ1bmN0aW9uIHBhcnNlKGUsbil7aWYobj09PXZvaWQgMCl7bj17fX12YXIgcj1sZXhlcihlKTt2YXIgdD1uLnByZWZpeGVzLGE9dD09PXZvaWQgMD9cIi4vXCI6dCxpPW4uZGVsaW1pdGVyLG89aT09PXZvaWQgMD9cIi8jP1wiOmk7dmFyIGM9W107dmFyIGY9MDt2YXIgdT0wO3ZhciBwPVwiXCI7dmFyIHRyeUNvbnN1bWU9ZnVuY3Rpb24oZSl7aWYodTxyLmxlbmd0aCYmclt1XS50eXBlPT09ZSlyZXR1cm4gclt1KytdLnZhbHVlfTt2YXIgbXVzdENvbnN1bWU9ZnVuY3Rpb24oZSl7dmFyIG49dHJ5Q29uc3VtZShlKTtpZihuIT09dW5kZWZpbmVkKXJldHVybiBuO3ZhciB0PXJbdV0sYT10LnR5cGUsaT10LmluZGV4O3Rocm93IG5ldyBUeXBlRXJyb3IoXCJVbmV4cGVjdGVkIFwiLmNvbmNhdChhLFwiIGF0IFwiKS5jb25jYXQoaSxcIiwgZXhwZWN0ZWQgXCIpLmNvbmNhdChlKSl9O3ZhciBjb25zdW1lVGV4dD1mdW5jdGlvbigpe3ZhciBlPVwiXCI7dmFyIG47d2hpbGUobj10cnlDb25zdW1lKFwiQ0hBUlwiKXx8dHJ5Q29uc3VtZShcIkVTQ0FQRURfQ0hBUlwiKSl7ZSs9bn1yZXR1cm4gZX07dmFyIGlzU2FmZT1mdW5jdGlvbihlKXtmb3IodmFyIG49MCxyPW87bjxyLmxlbmd0aDtuKyspe3ZhciB0PXJbbl07aWYoZS5pbmRleE9mKHQpPi0xKXJldHVybiB0cnVlfXJldHVybiBmYWxzZX07dmFyIHNhZmVQYXR0ZXJuPWZ1bmN0aW9uKGUpe3ZhciBuPWNbYy5sZW5ndGgtMV07dmFyIHI9ZXx8KG4mJnR5cGVvZiBuPT09XCJzdHJpbmdcIj9uOlwiXCIpO2lmKG4mJiFyKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdNdXN0IGhhdmUgdGV4dCBiZXR3ZWVuIHR3byBwYXJhbWV0ZXJzLCBtaXNzaW5nIHRleHQgYWZ0ZXIgXCInLmNvbmNhdChuLm5hbWUsJ1wiJykpfWlmKCFyfHxpc1NhZmUocikpcmV0dXJuXCJbXlwiLmNvbmNhdChlc2NhcGVTdHJpbmcobyksXCJdKz9cIik7cmV0dXJuXCIoPzooPyFcIi5jb25jYXQoZXNjYXBlU3RyaW5nKHIpLFwiKVteXCIpLmNvbmNhdChlc2NhcGVTdHJpbmcobyksXCJdKSs/XCIpfTt3aGlsZSh1PHIubGVuZ3RoKXt2YXIgdj10cnlDb25zdW1lKFwiQ0hBUlwiKTt2YXIgcz10cnlDb25zdW1lKFwiTkFNRVwiKTt2YXIgZD10cnlDb25zdW1lKFwiUEFUVEVSTlwiKTtpZihzfHxkKXt2YXIgZz12fHxcIlwiO2lmKGEuaW5kZXhPZihnKT09PS0xKXtwKz1nO2c9XCJcIn1pZihwKXtjLnB1c2gocCk7cD1cIlwifWMucHVzaCh7bmFtZTpzfHxmKysscHJlZml4Omcsc3VmZml4OlwiXCIscGF0dGVybjpkfHxzYWZlUGF0dGVybihnKSxtb2RpZmllcjp0cnlDb25zdW1lKFwiTU9ESUZJRVJcIil8fFwiXCJ9KTtjb250aW51ZX12YXIgeD12fHx0cnlDb25zdW1lKFwiRVNDQVBFRF9DSEFSXCIpO2lmKHgpe3ArPXg7Y29udGludWV9aWYocCl7Yy5wdXNoKHApO3A9XCJcIn12YXIgaD10cnlDb25zdW1lKFwiT1BFTlwiKTtpZihoKXt2YXIgZz1jb25zdW1lVGV4dCgpO3ZhciBsPXRyeUNvbnN1bWUoXCJOQU1FXCIpfHxcIlwiO3ZhciBtPXRyeUNvbnN1bWUoXCJQQVRURVJOXCIpfHxcIlwiO3ZhciBUPWNvbnN1bWVUZXh0KCk7bXVzdENvbnN1bWUoXCJDTE9TRVwiKTtjLnB1c2goe25hbWU6bHx8KG0/ZisrOlwiXCIpLHBhdHRlcm46bCYmIW0/c2FmZVBhdHRlcm4oZyk6bSxwcmVmaXg6ZyxzdWZmaXg6VCxtb2RpZmllcjp0cnlDb25zdW1lKFwiTU9ESUZJRVJcIil8fFwiXCJ9KTtjb250aW51ZX1tdXN0Q29uc3VtZShcIkVORFwiKX1yZXR1cm4gY31uLnBhcnNlPXBhcnNlO2Z1bmN0aW9uIGNvbXBpbGUoZSxuKXtyZXR1cm4gdG9rZW5zVG9GdW5jdGlvbihwYXJzZShlLG4pLG4pfW4uY29tcGlsZT1jb21waWxlO2Z1bmN0aW9uIHRva2Vuc1RvRnVuY3Rpb24oZSxuKXtpZihuPT09dm9pZCAwKXtuPXt9fXZhciByPWZsYWdzKG4pO3ZhciB0PW4uZW5jb2RlLGE9dD09PXZvaWQgMD9mdW5jdGlvbihlKXtyZXR1cm4gZX06dCxpPW4udmFsaWRhdGUsbz1pPT09dm9pZCAwP3RydWU6aTt2YXIgYz1lLm1hcCgoZnVuY3Rpb24oZSl7aWYodHlwZW9mIGU9PT1cIm9iamVjdFwiKXtyZXR1cm4gbmV3IFJlZ0V4cChcIl4oPzpcIi5jb25jYXQoZS5wYXR0ZXJuLFwiKSRcIikscil9fSkpO3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1cIlwiO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2lmKHR5cGVvZiBpPT09XCJzdHJpbmdcIil7cis9aTtjb250aW51ZX12YXIgZj1uP25baS5uYW1lXTp1bmRlZmluZWQ7dmFyIHU9aS5tb2RpZmllcj09PVwiP1wifHxpLm1vZGlmaWVyPT09XCIqXCI7dmFyIHA9aS5tb2RpZmllcj09PVwiKlwifHxpLm1vZGlmaWVyPT09XCIrXCI7aWYoQXJyYXkuaXNBcnJheShmKSl7aWYoIXApe3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIFwiJy5jb25jYXQoaS5uYW1lLCdcIiB0byBub3QgcmVwZWF0LCBidXQgZ290IGFuIGFycmF5JykpfWlmKGYubGVuZ3RoPT09MCl7aWYodSljb250aW51ZTt0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBcIicuY29uY2F0KGkubmFtZSwnXCIgdG8gbm90IGJlIGVtcHR5JykpfWZvcih2YXIgdj0wO3Y8Zi5sZW5ndGg7disrKXt2YXIgcz1hKGZbdl0saSk7aWYobyYmIWNbdF0udGVzdChzKSl7dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYWxsIFwiJy5jb25jYXQoaS5uYW1lLCdcIiB0byBtYXRjaCBcIicpLmNvbmNhdChpLnBhdHRlcm4sJ1wiLCBidXQgZ290IFwiJykuY29uY2F0KHMsJ1wiJykpfXIrPWkucHJlZml4K3MraS5zdWZmaXh9Y29udGludWV9aWYodHlwZW9mIGY9PT1cInN0cmluZ1wifHx0eXBlb2YgZj09PVwibnVtYmVyXCIpe3ZhciBzPWEoU3RyaW5nKGYpLGkpO2lmKG8mJiFjW3RdLnRlc3Qocykpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIFwiJy5jb25jYXQoaS5uYW1lLCdcIiB0byBtYXRjaCBcIicpLmNvbmNhdChpLnBhdHRlcm4sJ1wiLCBidXQgZ290IFwiJykuY29uY2F0KHMsJ1wiJykpfXIrPWkucHJlZml4K3MraS5zdWZmaXg7Y29udGludWV9aWYodSljb250aW51ZTt2YXIgZD1wP1wiYW4gYXJyYXlcIjpcImEgc3RyaW5nXCI7dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgXCInLmNvbmNhdChpLm5hbWUsJ1wiIHRvIGJlICcpLmNvbmNhdChkKSl9cmV0dXJuIHJ9fW4udG9rZW5zVG9GdW5jdGlvbj10b2tlbnNUb0Z1bmN0aW9uO2Z1bmN0aW9uIG1hdGNoKGUsbil7dmFyIHI9W107dmFyIHQ9cGF0aFRvUmVnZXhwKGUscixuKTtyZXR1cm4gcmVnZXhwVG9GdW5jdGlvbih0LHIsbil9bi5tYXRjaD1tYXRjaDtmdW5jdGlvbiByZWdleHBUb0Z1bmN0aW9uKGUsbixyKXtpZihyPT09dm9pZCAwKXtyPXt9fXZhciB0PXIuZGVjb2RlLGE9dD09PXZvaWQgMD9mdW5jdGlvbihlKXtyZXR1cm4gZX06dDtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIHQ9ZS5leGVjKHIpO2lmKCF0KXJldHVybiBmYWxzZTt2YXIgaT10WzBdLG89dC5pbmRleDt2YXIgYz1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBfbG9vcF8xPWZ1bmN0aW9uKGUpe2lmKHRbZV09PT11bmRlZmluZWQpcmV0dXJuXCJjb250aW51ZVwiO3ZhciByPW5bZS0xXTtpZihyLm1vZGlmaWVyPT09XCIqXCJ8fHIubW9kaWZpZXI9PT1cIitcIil7Y1tyLm5hbWVdPXRbZV0uc3BsaXQoci5wcmVmaXgrci5zdWZmaXgpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSxyKX0pKX1lbHNle2Nbci5uYW1lXT1hKHRbZV0scil9fTtmb3IodmFyIGY9MTtmPHQubGVuZ3RoO2YrKyl7X2xvb3BfMShmKX1yZXR1cm57cGF0aDppLGluZGV4Om8scGFyYW1zOmN9fX1uLnJlZ2V4cFRvRnVuY3Rpb249cmVnZXhwVG9GdW5jdGlvbjtmdW5jdGlvbiBlc2NhcGVTdHJpbmcoZSl7cmV0dXJuIGUucmVwbGFjZSgvKFsuKyo/PV4hOiR7fSgpW1xcXXwvXFxcXF0pL2csXCJcXFxcJDFcIil9ZnVuY3Rpb24gZmxhZ3MoZSl7cmV0dXJuIGUmJmUuc2Vuc2l0aXZlP1wiXCI6XCJpXCJ9ZnVuY3Rpb24gcmVnZXhwVG9SZWdleHAoZSxuKXtpZighbilyZXR1cm4gZTt2YXIgcj0vXFwoKD86XFw/PCguKj8pPik/KD8hXFw/KS9nO3ZhciB0PTA7dmFyIGE9ci5leGVjKGUuc291cmNlKTt3aGlsZShhKXtuLnB1c2goe25hbWU6YVsxXXx8dCsrLHByZWZpeDpcIlwiLHN1ZmZpeDpcIlwiLG1vZGlmaWVyOlwiXCIscGF0dGVybjpcIlwifSk7YT1yLmV4ZWMoZS5zb3VyY2UpfXJldHVybiBlfWZ1bmN0aW9uIGFycmF5VG9SZWdleHAoZSxuLHIpe3ZhciB0PWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcGF0aFRvUmVnZXhwKGUsbixyKS5zb3VyY2V9KSk7cmV0dXJuIG5ldyBSZWdFeHAoXCIoPzpcIi5jb25jYXQodC5qb2luKFwifFwiKSxcIilcIiksZmxhZ3MocikpfWZ1bmN0aW9uIHN0cmluZ1RvUmVnZXhwKGUsbixyKXtyZXR1cm4gdG9rZW5zVG9SZWdleHAocGFyc2UoZSxyKSxuLHIpfWZ1bmN0aW9uIHRva2Vuc1RvUmVnZXhwKGUsbixyKXtpZihyPT09dm9pZCAwKXtyPXt9fXZhciB0PXIuc3RyaWN0LGE9dD09PXZvaWQgMD9mYWxzZTp0LGk9ci5zdGFydCxvPWk9PT12b2lkIDA/dHJ1ZTppLGM9ci5lbmQsZj1jPT09dm9pZCAwP3RydWU6Yyx1PXIuZW5jb2RlLHA9dT09PXZvaWQgMD9mdW5jdGlvbihlKXtyZXR1cm4gZX06dSx2PXIuZGVsaW1pdGVyLHM9dj09PXZvaWQgMD9cIi8jP1wiOnYsZD1yLmVuZHNXaXRoLGc9ZD09PXZvaWQgMD9cIlwiOmQ7dmFyIHg9XCJbXCIuY29uY2F0KGVzY2FwZVN0cmluZyhnKSxcIl18JFwiKTt2YXIgaD1cIltcIi5jb25jYXQoZXNjYXBlU3RyaW5nKHMpLFwiXVwiKTt2YXIgbD1vP1wiXlwiOlwiXCI7Zm9yKHZhciBtPTAsVD1lO208VC5sZW5ndGg7bSsrKXt2YXIgRT1UW21dO2lmKHR5cGVvZiBFPT09XCJzdHJpbmdcIil7bCs9ZXNjYXBlU3RyaW5nKHAoRSkpfWVsc2V7dmFyIHc9ZXNjYXBlU3RyaW5nKHAoRS5wcmVmaXgpKTt2YXIgeT1lc2NhcGVTdHJpbmcocChFLnN1ZmZpeCkpO2lmKEUucGF0dGVybil7aWYobiluLnB1c2goRSk7aWYod3x8eSl7aWYoRS5tb2RpZmllcj09PVwiK1wifHxFLm1vZGlmaWVyPT09XCIqXCIpe3ZhciBSPUUubW9kaWZpZXI9PT1cIipcIj9cIj9cIjpcIlwiO2wrPVwiKD86XCIuY29uY2F0KHcsXCIoKD86XCIpLmNvbmNhdChFLnBhdHRlcm4sXCIpKD86XCIpLmNvbmNhdCh5KS5jb25jYXQodyxcIig/OlwiKS5jb25jYXQoRS5wYXR0ZXJuLFwiKSkqKVwiKS5jb25jYXQoeSxcIilcIikuY29uY2F0KFIpfWVsc2V7bCs9XCIoPzpcIi5jb25jYXQodyxcIihcIikuY29uY2F0KEUucGF0dGVybixcIilcIikuY29uY2F0KHksXCIpXCIpLmNvbmNhdChFLm1vZGlmaWVyKX19ZWxzZXtpZihFLm1vZGlmaWVyPT09XCIrXCJ8fEUubW9kaWZpZXI9PT1cIipcIil7dGhyb3cgbmV3IFR5cGVFcnJvcignQ2FuIG5vdCByZXBlYXQgXCInLmNvbmNhdChFLm5hbWUsJ1wiIHdpdGhvdXQgYSBwcmVmaXggYW5kIHN1ZmZpeCcpKX1sKz1cIihcIi5jb25jYXQoRS5wYXR0ZXJuLFwiKVwiKS5jb25jYXQoRS5tb2RpZmllcil9fWVsc2V7bCs9XCIoPzpcIi5jb25jYXQodykuY29uY2F0KHksXCIpXCIpLmNvbmNhdChFLm1vZGlmaWVyKX19fWlmKGYpe2lmKCFhKWwrPVwiXCIuY29uY2F0KGgsXCI/XCIpO2wrPSFyLmVuZHNXaXRoP1wiJFwiOlwiKD89XCIuY29uY2F0KHgsXCIpXCIpfWVsc2V7dmFyIEE9ZVtlLmxlbmd0aC0xXTt2YXIgXz10eXBlb2YgQT09PVwic3RyaW5nXCI/aC5pbmRleE9mKEFbQS5sZW5ndGgtMV0pPi0xOkE9PT11bmRlZmluZWQ7aWYoIWEpe2wrPVwiKD86XCIuY29uY2F0KGgsXCIoPz1cIikuY29uY2F0KHgsXCIpKT9cIil9aWYoIV8pe2wrPVwiKD89XCIuY29uY2F0KGgsXCJ8XCIpLmNvbmNhdCh4LFwiKVwiKX19cmV0dXJuIG5ldyBSZWdFeHAobCxmbGFncyhyKSl9bi50b2tlbnNUb1JlZ2V4cD10b2tlbnNUb1JlZ2V4cDtmdW5jdGlvbiBwYXRoVG9SZWdleHAoZSxuLHIpe2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApcmV0dXJuIHJlZ2V4cFRvUmVnZXhwKGUsbik7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gYXJyYXlUb1JlZ2V4cChlLG4scik7cmV0dXJuIHN0cmluZ1RvUmVnZXhwKGUsbixyKX1uLnBhdGhUb1JlZ2V4cD1wYXRoVG9SZWdleHB9KSgpO21vZHVsZS5leHBvcnRzPWV9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js": /*!**************************************************************************************************************************!*\ !*** ./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js ***! \**************************************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/**\n * @license React\n * react-server-dom-webpack-client.node.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n true && function() {\n function resolveClientReference(bundlerConfig, metadata) {\n if (bundlerConfig) {\n var moduleExports = bundlerConfig[metadata[0]];\n if (bundlerConfig = moduleExports && moduleExports[metadata[2]]) moduleExports = bundlerConfig.name;\n else {\n bundlerConfig = moduleExports && moduleExports[\"*\"];\n if (!bundlerConfig) throw Error('Could not find the module \"' + metadata[0] + '\" in the React Server Consumer Manifest. This is probably a bug in the React Server Components bundler.');\n moduleExports = metadata[2];\n }\n return 4 === metadata.length ? [\n bundlerConfig.id,\n bundlerConfig.chunks,\n moduleExports,\n 1\n ] : [\n bundlerConfig.id,\n bundlerConfig.chunks,\n moduleExports\n ];\n }\n return metadata;\n }\n function resolveServerReference(bundlerConfig, id) {\n var name = \"\", resolvedModuleData = bundlerConfig[id];\n if (resolvedModuleData) name = resolvedModuleData.name;\n else {\n var idx = id.lastIndexOf(\"#\");\n -1 !== idx && (name = id.slice(idx + 1), resolvedModuleData = bundlerConfig[id.slice(0, idx)]);\n if (!resolvedModuleData) throw Error('Could not find the module \"' + id + '\" in the React Server Manifest. This is probably a bug in the React Server Components bundler.');\n }\n return resolvedModuleData.async ? [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name,\n 1\n ] : [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name\n ];\n }\n function requireAsyncModule(id) {\n var promise = globalThis.__next_require__(id);\n if (\"function\" !== typeof promise.then || \"fulfilled\" === promise.status) return null;\n promise.then(function(value) {\n promise.status = \"fulfilled\";\n promise.value = value;\n }, function(reason) {\n promise.status = \"rejected\";\n promise.reason = reason;\n });\n return promise;\n }\n function ignoreReject() {}\n function preloadModule(metadata) {\n for(var chunks = metadata[1], promises = [], i = 0; i < chunks.length;){\n var chunkId = chunks[i++];\n chunks[i++];\n var entry = chunkCache.get(chunkId);\n if (void 0 === entry) {\n entry = __webpack_require__.e(chunkId);\n promises.push(entry);\n var resolve = chunkCache.set.bind(chunkCache, chunkId, null);\n entry.then(resolve, ignoreReject);\n chunkCache.set(chunkId, entry);\n } else null !== entry && promises.push(entry);\n }\n return 4 === metadata.length ? 0 === promises.length ? requireAsyncModule(metadata[0]) : Promise.all(promises).then(function() {\n return requireAsyncModule(metadata[0]);\n }) : 0 < promises.length ? Promise.all(promises) : null;\n }\n function requireModule(metadata) {\n var moduleExports = globalThis.__next_require__(metadata[0]);\n if (4 === metadata.length && \"function\" === typeof moduleExports.then) if (\"fulfilled\" === moduleExports.status) moduleExports = moduleExports.value;\n else throw moduleExports.reason;\n return \"*\" === metadata[2] ? moduleExports : \"\" === metadata[2] ? moduleExports.__esModule ? moduleExports.default : moduleExports : moduleExports[metadata[2]];\n }\n function prepareDestinationWithChunks(moduleLoading, chunks, nonce$jscomp$0) {\n if (null !== moduleLoading) for(var i = 1; i < chunks.length; i += 2){\n var nonce = nonce$jscomp$0, JSCompiler_temp_const = ReactDOMSharedInternals.d, JSCompiler_temp_const$jscomp$0 = JSCompiler_temp_const.X, JSCompiler_temp_const$jscomp$1 = moduleLoading.prefix + chunks[i];\n var JSCompiler_inline_result = moduleLoading.crossOrigin;\n JSCompiler_inline_result = \"string\" === typeof JSCompiler_inline_result ? \"use-credentials\" === JSCompiler_inline_result ? JSCompiler_inline_result : \"\" : void 0;\n JSCompiler_temp_const$jscomp$0.call(JSCompiler_temp_const, JSCompiler_temp_const$jscomp$1, {\n crossOrigin: JSCompiler_inline_result,\n nonce: nonce\n });\n }\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function isObjectPrototype(object) {\n if (!object) return !1;\n var ObjectPrototype = Object.prototype;\n if (object === ObjectPrototype) return !0;\n if (getPrototypeOf(object)) return !1;\n object = Object.getOwnPropertyNames(object);\n for(var i = 0; i < object.length; i++)if (!(object[i] in ObjectPrototype)) return !1;\n return !0;\n }\n function isSimpleObject(object) {\n if (!isObjectPrototype(getPrototypeOf(object))) return !1;\n for(var names = Object.getOwnPropertyNames(object), i = 0; i < names.length; i++){\n var descriptor = Object.getOwnPropertyDescriptor(object, names[i]);\n if (!descriptor || !descriptor.enumerable && (\"key\" !== names[i] && \"ref\" !== names[i] || \"function\" !== typeof descriptor.get)) return !1;\n }\n return !0;\n }\n function objectName(object) {\n object = Object.prototype.toString.call(object);\n return object.slice(8, object.length - 1);\n }\n function describeKeyForErrorMessage(key) {\n var encodedKey = JSON.stringify(key);\n return '\"' + key + '\"' === encodedKey ? key : encodedKey;\n }\n function describeValueForErrorMessage(value) {\n switch(typeof value){\n case \"string\":\n return JSON.stringify(10 >= value.length ? value : value.slice(0, 10) + \"...\");\n case \"object\":\n if (isArrayImpl(value)) return \"[...]\";\n if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG) return \"client\";\n value = objectName(value);\n return \"Object\" === value ? \"{...}\" : value;\n case \"function\":\n return value.$$typeof === CLIENT_REFERENCE_TAG ? \"client\" : (value = value.displayName || value.name) ? \"function \" + value : \"function\";\n default:\n return String(value);\n }\n }\n function describeElementType(type) {\n if (\"string\" === typeof type) return type;\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type) switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeElementType(type.render);\n case REACT_MEMO_TYPE:\n return describeElementType(type.type);\n case REACT_LAZY_TYPE:\n var payload = type._payload;\n type = type._init;\n try {\n return describeElementType(type(payload));\n } catch (x) {}\n }\n return \"\";\n }\n function describeObjectForErrorMessage(objectOrArray, expandedName) {\n var objKind = objectName(objectOrArray);\n if (\"Object\" !== objKind && \"Array\" !== objKind) return objKind;\n var start = -1, length = 0;\n if (isArrayImpl(objectOrArray)) if (jsxChildrenParents.has(objectOrArray)) {\n var type = jsxChildrenParents.get(objectOrArray);\n objKind = \"<\" + describeElementType(type) + \">\";\n for(var i = 0; i < objectOrArray.length; i++){\n var value = objectOrArray[i];\n value = \"string\" === typeof value ? value : \"object\" === typeof value && null !== value ? \"{\" + describeObjectForErrorMessage(value) + \"}\" : \"{\" + describeValueForErrorMessage(value) + \"}\";\n \"\" + i === expandedName ? (start = objKind.length, length = value.length, objKind += value) : objKind = 15 > value.length && 40 > objKind.length + value.length ? objKind + value : objKind + \"{...}\";\n }\n objKind += \"</\" + describeElementType(type) + \">\";\n } else {\n objKind = \"[\";\n for(type = 0; type < objectOrArray.length; type++)0 < type && (objKind += \", \"), i = objectOrArray[type], i = \"object\" === typeof i && null !== i ? describeObjectForErrorMessage(i) : describeValueForErrorMessage(i), \"\" + type === expandedName ? (start = objKind.length, length = i.length, objKind += i) : objKind = 10 > i.length && 40 > objKind.length + i.length ? objKind + i : objKind + \"...\";\n objKind += \"]\";\n }\n else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE) objKind = \"<\" + describeElementType(objectOrArray.type) + \"/>\";\n else {\n if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return \"client\";\n if (jsxPropsParents.has(objectOrArray)) {\n objKind = jsxPropsParents.get(objectOrArray);\n objKind = \"<\" + (describeElementType(objKind) || \"...\");\n type = Object.keys(objectOrArray);\n for(i = 0; i < type.length; i++){\n objKind += \" \";\n value = type[i];\n objKind += describeKeyForErrorMessage(value) + \"=\";\n var _value2 = objectOrArray[value];\n var _substr2 = value === expandedName && \"object\" === typeof _value2 && null !== _value2 ? describeObjectForErrorMessage(_value2) : describeValueForErrorMessage(_value2);\n \"string\" !== typeof _value2 && (_substr2 = \"{\" + _substr2 + \"}\");\n value === expandedName ? (start = objKind.length, length = _substr2.length, objKind += _substr2) : objKind = 10 > _substr2.length && 40 > objKind.length + _substr2.length ? objKind + _substr2 : objKind + \"...\";\n }\n objKind += \">\";\n } else {\n objKind = \"{\";\n type = Object.keys(objectOrArray);\n for(i = 0; i < type.length; i++)0 < i && (objKind += \", \"), value = type[i], objKind += describeKeyForErrorMessage(value) + \": \", _value2 = objectOrArray[value], _value2 = \"object\" === typeof _value2 && null !== _value2 ? describeObjectForErrorMessage(_value2) : describeValueForErrorMessage(_value2), value === expandedName ? (start = objKind.length, length = _value2.length, objKind += _value2) : objKind = 10 > _value2.length && 40 > objKind.length + _value2.length ? objKind + _value2 : objKind + \"...\";\n objKind += \"}\";\n }\n }\n return void 0 === expandedName ? objKind : -1 < start && 0 < length ? (objectOrArray = \" \".repeat(start) + \"^\".repeat(length), \"\\n \" + objKind + \"\\n \" + objectOrArray) : \"\\n \" + objKind;\n }\n function serializeNumber(number) {\n return Number.isFinite(number) ? 0 === number && -Infinity === 1 / number ? \"$-0\" : number : Infinity === number ? \"$Infinity\" : -Infinity === number ? \"$-Infinity\" : \"$NaN\";\n }\n function processReply(root, formFieldPrefix, temporaryReferences, resolve, reject) {\n function serializeTypedArray(tag, typedArray) {\n typedArray = new Blob([\n new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength)\n ]);\n var blobId = nextPartId++;\n null === formData && (formData = new FormData());\n formData.append(formFieldPrefix + blobId, typedArray);\n return \"$\" + tag + blobId.toString(16);\n }\n function serializeBinaryReader(reader) {\n function progress(entry) {\n entry.done ? (entry = nextPartId++, data.append(formFieldPrefix + entry, new Blob(buffer)), data.append(formFieldPrefix + streamId, '\"$o' + entry.toString(16) + '\"'), data.append(formFieldPrefix + streamId, \"C\"), pendingParts--, 0 === pendingParts && resolve(data)) : (buffer.push(entry.value), reader.read(new Uint8Array(1024)).then(progress, reject));\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++, buffer = [];\n reader.read(new Uint8Array(1024)).then(progress, reject);\n return \"$r\" + streamId.toString(16);\n }\n function serializeReader(reader) {\n function progress(entry) {\n if (entry.done) data.append(formFieldPrefix + streamId, \"C\"), pendingParts--, 0 === pendingParts && resolve(data);\n else try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, partJSON);\n reader.read().then(progress, reject);\n } catch (x) {\n reject(x);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n reader.read().then(progress, reject);\n return \"$R\" + streamId.toString(16);\n }\n function serializeReadableStream(stream) {\n try {\n var binaryReader = stream.getReader({\n mode: \"byob\"\n });\n } catch (x) {\n return serializeReader(stream.getReader());\n }\n return serializeBinaryReader(binaryReader);\n }\n function serializeAsyncIterable(iterable, iterator) {\n function progress(entry) {\n if (entry.done) {\n if (void 0 === entry.value) data.append(formFieldPrefix + streamId, \"C\");\n else try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, \"C\" + partJSON);\n } catch (x) {\n reject(x);\n return;\n }\n pendingParts--;\n 0 === pendingParts && resolve(data);\n } else try {\n var _partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, _partJSON);\n iterator.next().then(progress, reject);\n } catch (x$0) {\n reject(x$0);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n iterable = iterable === iterator;\n iterator.next().then(progress, reject);\n return \"$\" + (iterable ? \"x\" : \"X\") + streamId.toString(16);\n }\n function resolveToJSON(key, value) {\n var originalValue = this[key];\n \"object\" !== typeof originalValue || originalValue === value || originalValue instanceof Date || (\"Object\" !== objectName(originalValue) ? console.error(\"Only plain objects can be passed to Server Functions from the Client. %s objects are not supported.%s\", objectName(originalValue), describeObjectForErrorMessage(this, key)) : console.error(\"Only plain objects can be passed to Server Functions from the Client. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.%s\", describeObjectForErrorMessage(this, key)));\n if (null === value) return null;\n if (\"object\" === typeof value) {\n switch(value.$$typeof){\n case REACT_ELEMENT_TYPE:\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\")) {\n var parentReference = writtenObjects.get(this);\n if (void 0 !== parentReference) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n }\n throw Error(\"React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options.\" + describeObjectForErrorMessage(this, key));\n case REACT_LAZY_TYPE:\n originalValue = value._payload;\n var init = value._init;\n null === formData && (formData = new FormData());\n pendingParts++;\n try {\n parentReference = init(originalValue);\n var lazyId = nextPartId++, partJSON = serializeModel(parentReference, lazyId);\n formData.append(formFieldPrefix + lazyId, partJSON);\n return \"$\" + lazyId.toString(16);\n } catch (x) {\n if (\"object\" === typeof x && null !== x && \"function\" === typeof x.then) {\n pendingParts++;\n var _lazyId = nextPartId++;\n parentReference = function() {\n try {\n var _partJSON2 = serializeModel(value, _lazyId), _data = formData;\n _data.append(formFieldPrefix + _lazyId, _partJSON2);\n pendingParts--;\n 0 === pendingParts && resolve(_data);\n } catch (reason) {\n reject(reason);\n }\n };\n x.then(parentReference, parentReference);\n return \"$\" + _lazyId.toString(16);\n }\n reject(x);\n return null;\n } finally{\n pendingParts--;\n }\n }\n if (\"function\" === typeof value.then) {\n null === formData && (formData = new FormData());\n pendingParts++;\n var promiseId = nextPartId++;\n value.then(function(partValue) {\n try {\n var _partJSON3 = serializeModel(partValue, promiseId);\n partValue = formData;\n partValue.append(formFieldPrefix + promiseId, _partJSON3);\n pendingParts--;\n 0 === pendingParts && resolve(partValue);\n } catch (reason) {\n reject(reason);\n }\n }, reject);\n return \"$@\" + promiseId.toString(16);\n }\n parentReference = writtenObjects.get(value);\n if (void 0 !== parentReference) if (modelRoot === value) modelRoot = null;\n else return parentReference;\n else -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference && (parentReference = parentReference + \":\" + key, writtenObjects.set(value, parentReference), void 0 !== temporaryReferences && temporaryReferences.set(parentReference, value)));\n if (isArrayImpl(value)) return value;\n if (value instanceof FormData) {\n null === formData && (formData = new FormData());\n var _data3 = formData;\n key = nextPartId++;\n var prefix = formFieldPrefix + key + \"_\";\n value.forEach(function(originalValue, originalKey) {\n _data3.append(prefix + originalKey, originalValue);\n });\n return \"$K\" + key.toString(16);\n }\n if (value instanceof Map) return key = nextPartId++, parentReference = serializeModel(Array.from(value), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$Q\" + key.toString(16);\n if (value instanceof Set) return key = nextPartId++, parentReference = serializeModel(Array.from(value), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$W\" + key.toString(16);\n if (value instanceof ArrayBuffer) return key = new Blob([\n value\n ]), parentReference = nextPartId++, null === formData && (formData = new FormData()), formData.append(formFieldPrefix + parentReference, key), \"$A\" + parentReference.toString(16);\n if (value instanceof Int8Array) return serializeTypedArray(\"O\", value);\n if (value instanceof Uint8Array) return serializeTypedArray(\"o\", value);\n if (value instanceof Uint8ClampedArray) return serializeTypedArray(\"U\", value);\n if (value instanceof Int16Array) return serializeTypedArray(\"S\", value);\n if (value instanceof Uint16Array) return serializeTypedArray(\"s\", value);\n if (value instanceof Int32Array) return serializeTypedArray(\"L\", value);\n if (value instanceof Uint32Array) return serializeTypedArray(\"l\", value);\n if (value instanceof Float32Array) return serializeTypedArray(\"G\", value);\n if (value instanceof Float64Array) return serializeTypedArray(\"g\", value);\n if (value instanceof BigInt64Array) return serializeTypedArray(\"M\", value);\n if (value instanceof BigUint64Array) return serializeTypedArray(\"m\", value);\n if (value instanceof DataView) return serializeTypedArray(\"V\", value);\n if (\"function\" === typeof Blob && value instanceof Blob) return null === formData && (formData = new FormData()), key = nextPartId++, formData.append(formFieldPrefix + key, value), \"$B\" + key.toString(16);\n if (parentReference = getIteratorFn(value)) return parentReference = parentReference.call(value), parentReference === value ? (key = nextPartId++, parentReference = serializeModel(Array.from(parentReference), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$i\" + key.toString(16)) : Array.from(parentReference);\n if (\"function\" === typeof ReadableStream && value instanceof ReadableStream) return serializeReadableStream(value);\n parentReference = value[ASYNC_ITERATOR];\n if (\"function\" === typeof parentReference) return serializeAsyncIterable(value, parentReference.call(value));\n parentReference = getPrototypeOf(value);\n if (parentReference !== ObjectPrototype && (null === parentReference || null !== getPrototypeOf(parentReference))) {\n if (void 0 === temporaryReferences) throw Error(\"Only plain objects, and a few built-ins, can be passed to Server Functions. Classes or null prototypes are not supported.\" + describeObjectForErrorMessage(this, key));\n return \"$T\";\n }\n value.$$typeof === REACT_CONTEXT_TYPE ? console.error(\"React Context Providers cannot be passed to Server Functions from the Client.%s\", describeObjectForErrorMessage(this, key)) : \"Object\" !== objectName(value) ? console.error(\"Only plain objects can be passed to Server Functions from the Client. %s objects are not supported.%s\", objectName(value), describeObjectForErrorMessage(this, key)) : isSimpleObject(value) ? Object.getOwnPropertySymbols && (parentReference = Object.getOwnPropertySymbols(value), 0 < parentReference.length && console.error(\"Only plain objects can be passed to Server Functions from the Client. Objects with symbol properties like %s are not supported.%s\", parentReference[0].description, describeObjectForErrorMessage(this, key))) : console.error(\"Only plain objects can be passed to Server Functions from the Client. Classes or other objects with methods are not supported.%s\", describeObjectForErrorMessage(this, key));\n return value;\n }\n if (\"string\" === typeof value) {\n if (\"Z\" === value[value.length - 1] && this[key] instanceof Date) return \"$D\" + value;\n key = \"$\" === value[0] ? \"$\" + value : value;\n return key;\n }\n if (\"boolean\" === typeof value) return value;\n if (\"number\" === typeof value) return serializeNumber(value);\n if (\"undefined\" === typeof value) return \"$undefined\";\n if (\"function\" === typeof value) {\n parentReference = knownServerReferences.get(value);\n if (void 0 !== parentReference) return key = JSON.stringify({\n id: parentReference.id,\n bound: parentReference.bound\n }, resolveToJSON), null === formData && (formData = new FormData()), parentReference = nextPartId++, formData.set(formFieldPrefix + parentReference, key), \"$F\" + parentReference.toString(16);\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference)) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n throw Error(\"Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again.\");\n }\n if (\"symbol\" === typeof value) {\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference)) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n throw Error(\"Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options.\" + describeObjectForErrorMessage(this, key));\n }\n if (\"bigint\" === typeof value) return \"$n\" + value.toString(10);\n throw Error(\"Type \" + typeof value + \" is not supported as an argument to a Server Function.\");\n }\n function serializeModel(model, id) {\n \"object\" === typeof model && null !== model && (id = \"$\" + id.toString(16), writtenObjects.set(model, id), void 0 !== temporaryReferences && temporaryReferences.set(id, model));\n modelRoot = model;\n return JSON.stringify(model, resolveToJSON);\n }\n var nextPartId = 1, pendingParts = 0, formData = null, writtenObjects = new WeakMap(), modelRoot = root, json = serializeModel(root, 0);\n null === formData ? resolve(json) : (formData.set(formFieldPrefix + \"0\", json), 0 === pendingParts && resolve(formData));\n return function() {\n 0 < pendingParts && (pendingParts = 0, null === formData ? resolve(json) : resolve(formData));\n };\n }\n function encodeFormData(reference) {\n var resolve, reject, thenable = new Promise(function(res, rej) {\n resolve = res;\n reject = rej;\n });\n processReply(reference, \"\", void 0, function(body) {\n if (\"string\" === typeof body) {\n var data = new FormData();\n data.append(\"0\", body);\n body = data;\n }\n thenable.status = \"fulfilled\";\n thenable.value = body;\n resolve(body);\n }, function(e) {\n thenable.status = \"rejected\";\n thenable.reason = e;\n reject(e);\n });\n return thenable;\n }\n function defaultEncodeFormAction(identifierPrefix) {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n var data = null;\n if (null !== referenceClosure.bound) {\n data = boundCache.get(referenceClosure);\n data || (data = encodeFormData({\n id: referenceClosure.id,\n bound: referenceClosure.bound\n }), boundCache.set(referenceClosure, data));\n if (\"rejected\" === data.status) throw data.reason;\n if (\"fulfilled\" !== data.status) throw data;\n referenceClosure = data.value;\n var prefixedData = new FormData();\n referenceClosure.forEach(function(value, key) {\n prefixedData.append(\"$ACTION_\" + identifierPrefix + \":\" + key, value);\n });\n data = prefixedData;\n referenceClosure = \"$ACTION_REF_\" + identifierPrefix;\n } else referenceClosure = \"$ACTION_ID_\" + referenceClosure.id;\n return {\n name: referenceClosure,\n method: \"POST\",\n encType: \"multipart/form-data\",\n data: data\n };\n }\n function isSignatureEqual(referenceId, numberOfBoundArgs) {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n if (referenceClosure.id !== referenceId) return !1;\n var boundPromise = referenceClosure.bound;\n if (null === boundPromise) return 0 === numberOfBoundArgs;\n switch(boundPromise.status){\n case \"fulfilled\":\n return boundPromise.value.length === numberOfBoundArgs;\n case \"pending\":\n throw boundPromise;\n case \"rejected\":\n throw boundPromise.reason;\n default:\n throw \"string\" !== typeof boundPromise.status && (boundPromise.status = \"pending\", boundPromise.then(function(boundArgs) {\n boundPromise.status = \"fulfilled\";\n boundPromise.value = boundArgs;\n }, function(error) {\n boundPromise.status = \"rejected\";\n boundPromise.reason = error;\n })), boundPromise;\n }\n }\n function createFakeServerFunction(name, filename, sourceMap, line, col, environmentName, innerFunction) {\n name || (name = \"<anonymous>\");\n var encodedName = JSON.stringify(name);\n 1 >= line ? (line = encodedName.length + 7, col = \"s=>({\" + encodedName + \" \".repeat(col < line ? 0 : col - line) + \":(...args) => s(...args)})\\n/* This module is a proxy to a Server Action. Turn on Source Maps to see the server source. */\") : col = \"/* This module is a proxy to a Server Action. Turn on Source Maps to see the server source. */\" + \"\\n\".repeat(line - 2) + \"server=>({\" + encodedName + \":\\n\" + \" \".repeat(1 > col ? 0 : col - 1) + \"(...args) => server(...args)})\";\n filename.startsWith(\"/\") && (filename = \"file://\" + filename);\n sourceMap ? (col += \"\\n//# sourceURL=about://React/\" + encodeURIComponent(environmentName) + \"/\" + encodeURI(filename) + \"?s\" + fakeServerFunctionIdx++, col += \"\\n//# sourceMappingURL=\" + sourceMap) : filename && (col += \"\\n//# sourceURL=\" + filename);\n try {\n return (0, eval)(col)(innerFunction)[name];\n } catch (x) {\n return innerFunction;\n }\n }\n function registerBoundServerReference(reference, id, bound, encodeFormAction) {\n knownServerReferences.has(reference) || (knownServerReferences.set(reference, {\n id: id,\n originalBind: reference.bind,\n bound: bound\n }), Object.defineProperties(reference, {\n $$FORM_ACTION: {\n value: void 0 === encodeFormAction ? defaultEncodeFormAction : function() {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n var boundPromise = referenceClosure.bound;\n null === boundPromise && (boundPromise = Promise.resolve([]));\n return encodeFormAction(referenceClosure.id, boundPromise);\n }\n },\n $$IS_SIGNATURE_EQUAL: {\n value: isSignatureEqual\n },\n bind: {\n value: bind\n }\n }));\n }\n function bind() {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) return FunctionBind.apply(this, arguments);\n var newFn = referenceClosure.originalBind.apply(this, arguments);\n null != arguments[0] && console.error('Cannot bind \"this\" of a Server Action. Pass null or undefined as the first argument to .bind().');\n var args = ArraySlice.call(arguments, 1), boundPromise = null;\n boundPromise = null !== referenceClosure.bound ? Promise.resolve(referenceClosure.bound).then(function(boundArgs) {\n return boundArgs.concat(args);\n }) : Promise.resolve(args);\n knownServerReferences.set(newFn, {\n id: referenceClosure.id,\n originalBind: newFn.bind,\n bound: boundPromise\n });\n Object.defineProperties(newFn, {\n $$FORM_ACTION: {\n value: this.$$FORM_ACTION\n },\n $$IS_SIGNATURE_EQUAL: {\n value: isSignatureEqual\n },\n bind: {\n value: bind\n }\n });\n return newFn;\n }\n function createBoundServerReference(metaData, callServer, encodeFormAction, findSourceMapURL) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return bound ? \"fulfilled\" === bound.status ? callServer(id, bound.value.concat(args)) : Promise.resolve(bound).then(function(boundArgs) {\n return callServer(id, boundArgs.concat(args));\n }) : callServer(id, args);\n }\n var id = metaData.id, bound = metaData.bound, location = metaData.location;\n if (location) {\n var functionName = metaData.name || \"\", filename = location[1], line = location[2];\n location = location[3];\n metaData = metaData.env || \"Server\";\n findSourceMapURL = null == findSourceMapURL ? null : findSourceMapURL(filename, metaData);\n action = createFakeServerFunction(functionName, filename, findSourceMapURL, line, location, metaData, action);\n }\n registerBoundServerReference(action, id, bound, encodeFormAction);\n return action;\n }\n function parseStackLocation(error) {\n error = error.stack;\n error.startsWith(\"Error: react-stack-top-frame\\n\") && (error = error.slice(29));\n var endOfFirst = error.indexOf(\"\\n\");\n if (-1 !== endOfFirst) {\n var endOfSecond = error.indexOf(\"\\n\", endOfFirst + 1);\n endOfFirst = -1 === endOfSecond ? error.slice(endOfFirst + 1) : error.slice(endOfFirst + 1, endOfSecond);\n } else endOfFirst = error;\n error = v8FrameRegExp.exec(endOfFirst);\n if (!error && (error = jscSpiderMonkeyFrameRegExp.exec(endOfFirst), !error)) return null;\n endOfFirst = error[1] || \"\";\n \"<anonymous>\" === endOfFirst && (endOfFirst = \"\");\n endOfSecond = error[2] || error[5] || \"\";\n \"<anonymous>\" === endOfSecond && (endOfSecond = \"\");\n return [\n endOfFirst,\n endOfSecond,\n +(error[3] || error[6]),\n +(error[4] || error[7])\n ];\n }\n function createServerReference$1(id, callServer, encodeFormAction, findSourceMapURL, functionName) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return callServer(id, args);\n }\n var location = parseStackLocation(Error(\"react-stack-top-frame\"));\n if (null !== location) {\n var filename = location[1], line = location[2];\n location = location[3];\n findSourceMapURL = null == findSourceMapURL ? null : findSourceMapURL(filename, \"Client\");\n action = createFakeServerFunction(functionName || \"\", filename, findSourceMapURL, line, location, \"Client\", action);\n }\n registerBoundServerReference(action, id, null, encodeFormAction);\n return action;\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type) switch(\"number\" === typeof type.tag && console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"), type.$$typeof){\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type || (type = innerType.displayName || innerType.name || \"\", type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\");\n return type;\n case REACT_MEMO_TYPE:\n return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function prepareStackTrace(error, structuredStackTrace) {\n error = (error.name || \"Error\") + \": \" + (error.message || \"\");\n for(var i = 0; i < structuredStackTrace.length; i++)error += \"\\n at \" + structuredStackTrace[i].toString();\n return error;\n }\n function ReactPromise(status, value, reason) {\n this.status = status;\n this.value = value;\n this.reason = reason;\n this._debugInfo = this._debugChunk = null;\n }\n function unwrapWeakResponse(weakResponse) {\n weakResponse = weakResponse.weak.deref();\n if (void 0 === weakResponse) throw Error(\"We did not expect to receive new data after GC:ing the response.\");\n return weakResponse;\n }\n function cleanupDebugChannel(debugChannel) {\n debugChannel(\"\");\n }\n function readChunk(chunk) {\n switch(chunk.status){\n case \"resolved_model\":\n initializeModelChunk(chunk);\n break;\n case \"resolved_module\":\n initializeModuleChunk(chunk);\n }\n switch(chunk.status){\n case \"fulfilled\":\n return chunk.value;\n case \"pending\":\n case \"blocked\":\n case \"halted\":\n throw chunk;\n default:\n throw chunk.reason;\n }\n }\n function getRoot(weakResponse) {\n weakResponse = unwrapWeakResponse(weakResponse);\n return getChunk(weakResponse, 0);\n }\n function createPendingChunk(response) {\n 0 === response._pendingChunks++ && (response._weakResponse.response = response, null !== response._pendingInitialRender && (clearTimeout(response._pendingInitialRender), response._pendingInitialRender = null));\n return new ReactPromise(\"pending\", null, null);\n }\n function releasePendingChunk(response, chunk) {\n \"pending\" === chunk.status && 0 === --response._pendingChunks && (response._weakResponse.response = null, response._pendingInitialRender = setTimeout(flushInitialRenderPerformance.bind(null, response), 100));\n }\n function wakeChunk(listeners, value) {\n for(var i = 0; i < listeners.length; i++){\n var listener = listeners[i];\n \"function\" === typeof listener ? listener(value) : fulfillReference(listener, value);\n }\n }\n function rejectChunk(listeners, error) {\n for(var i = 0; i < listeners.length; i++){\n var listener = listeners[i];\n \"function\" === typeof listener ? listener(error) : rejectReference(listener, error);\n }\n }\n function resolveBlockedCycle(resolvedChunk, reference) {\n var referencedChunk = reference.handler.chunk;\n if (null === referencedChunk) return null;\n if (referencedChunk === resolvedChunk) return reference.handler;\n reference = referencedChunk.value;\n if (null !== reference) for(referencedChunk = 0; referencedChunk < reference.length; referencedChunk++){\n var listener = reference[referencedChunk];\n if (\"function\" !== typeof listener && (listener = resolveBlockedCycle(resolvedChunk, listener), null !== listener)) return listener;\n }\n return null;\n }\n function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {\n switch(chunk.status){\n case \"fulfilled\":\n wakeChunk(resolveListeners, chunk.value);\n break;\n case \"blocked\":\n for(var i = 0; i < resolveListeners.length; i++){\n var listener = resolveListeners[i];\n if (\"function\" !== typeof listener) {\n var cyclicHandler = resolveBlockedCycle(chunk, listener);\n null !== cyclicHandler && (fulfillReference(listener, cyclicHandler.value), resolveListeners.splice(i, 1), i--, null !== rejectListeners && (listener = rejectListeners.indexOf(listener), -1 !== listener && rejectListeners.splice(listener, 1)));\n }\n }\n case \"pending\":\n if (chunk.value) for(i = 0; i < resolveListeners.length; i++)chunk.value.push(resolveListeners[i]);\n else chunk.value = resolveListeners;\n if (chunk.reason) {\n if (rejectListeners) for(resolveListeners = 0; resolveListeners < rejectListeners.length; resolveListeners++)chunk.reason.push(rejectListeners[resolveListeners]);\n } else chunk.reason = rejectListeners;\n break;\n case \"rejected\":\n rejectListeners && rejectChunk(rejectListeners, chunk.reason);\n }\n }\n function triggerErrorOnChunk(response, chunk, error) {\n if (\"pending\" !== chunk.status && \"blocked\" !== chunk.status) chunk.reason.error(error);\n else {\n releasePendingChunk(response, chunk);\n var listeners = chunk.reason;\n if (\"pending\" === chunk.status && null != chunk._debugChunk) {\n var prevHandler = initializingHandler;\n initializingHandler = null;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n try {\n initializeDebugChunk(response, chunk), chunk._debugChunk = null;\n } finally{\n initializingHandler = prevHandler;\n }\n }\n chunk.status = \"rejected\";\n chunk.reason = error;\n null !== listeners && rejectChunk(listeners, error);\n }\n }\n function createResolvedModelChunk(response, value) {\n return new ReactPromise(\"resolved_model\", value, response);\n }\n function createResolvedIteratorResultChunk(response, value, done) {\n return new ReactPromise(\"resolved_model\", (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\", response);\n }\n function resolveIteratorResultChunk(response, chunk, value, done) {\n resolveModelChunk(response, chunk, (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\");\n }\n function resolveModelChunk(response, chunk, value) {\n if (\"pending\" !== chunk.status) chunk.reason.enqueueModel(value);\n else {\n releasePendingChunk(response, chunk);\n var resolveListeners = chunk.value, rejectListeners = chunk.reason;\n chunk.status = \"resolved_model\";\n chunk.value = value;\n chunk.reason = response;\n null !== resolveListeners && (initializeModelChunk(chunk), wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));\n }\n }\n function resolveModuleChunk(response, chunk, value) {\n if (\"pending\" === chunk.status || \"blocked\" === chunk.status) {\n releasePendingChunk(response, chunk);\n response = chunk.value;\n var rejectListeners = chunk.reason;\n chunk.status = \"resolved_module\";\n chunk.value = value;\n value = [];\n null !== value && null != chunk._debugInfo ? chunk._debugInfo.push.apply(chunk._debugInfo, value) : chunk._debugInfo = value;\n null !== response && (initializeModuleChunk(chunk), wakeChunkIfInitialized(chunk, response, rejectListeners));\n }\n }\n function initializeDebugChunk(response, chunk) {\n var debugChunk = chunk._debugChunk;\n if (null !== debugChunk) {\n var debugInfo = chunk._debugInfo || (chunk._debugInfo = []);\n try {\n if (\"resolved_model\" === debugChunk.status) {\n for(var idx = debugInfo.length, c = debugChunk._debugChunk; null !== c;)\"fulfilled\" !== c.status && idx++, c = c._debugChunk;\n initializeModelChunk(debugChunk);\n switch(debugChunk.status){\n case \"fulfilled\":\n debugInfo[idx] = initializeDebugInfo(response, debugChunk.value);\n break;\n case \"blocked\":\n case \"pending\":\n waitForReference(debugChunk, debugInfo, \"\" + idx, response, initializeDebugInfo, [\n \"\"\n ]);\n break;\n default:\n throw debugChunk.reason;\n }\n } else switch(debugChunk.status){\n case \"fulfilled\":\n break;\n case \"blocked\":\n case \"pending\":\n waitForReference(debugChunk, {}, \"debug\", response, initializeDebugInfo, [\n \"\"\n ]);\n break;\n default:\n throw debugChunk.reason;\n }\n } catch (error) {\n triggerErrorOnChunk(response, chunk, error);\n }\n }\n }\n function initializeModelChunk(chunk) {\n var prevHandler = initializingHandler;\n initializingHandler = null;\n var resolvedModel = chunk.value, response = chunk.reason;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n initializeDebugChunk(response, chunk);\n chunk._debugChunk = null;\n try {\n var value = JSON.parse(resolvedModel, response._fromJSON), resolveListeners = chunk.value;\n null !== resolveListeners && (chunk.value = null, chunk.reason = null, wakeChunk(resolveListeners, value));\n if (null !== initializingHandler) {\n if (initializingHandler.errored) throw initializingHandler.reason;\n if (0 < initializingHandler.deps) {\n initializingHandler.value = value;\n initializingHandler.chunk = chunk;\n return;\n }\n }\n chunk.status = \"fulfilled\";\n chunk.value = value;\n } catch (error) {\n chunk.status = \"rejected\", chunk.reason = error;\n } finally{\n initializingHandler = prevHandler;\n }\n }\n function initializeModuleChunk(chunk) {\n try {\n var value = requireModule(chunk.value);\n chunk.status = \"fulfilled\";\n chunk.value = value;\n } catch (error) {\n chunk.status = \"rejected\", chunk.reason = error;\n }\n }\n function reportGlobalError(weakResponse, error) {\n if (void 0 !== weakResponse.weak.deref()) {\n var response = unwrapWeakResponse(weakResponse);\n response._closed = !0;\n response._closedReason = error;\n response._chunks.forEach(function(chunk) {\n \"pending\" === chunk.status && triggerErrorOnChunk(response, chunk, error);\n });\n weakResponse = response._debugChannel;\n void 0 !== weakResponse && (weakResponse(\"\"), response._debugChannel = void 0);\n }\n }\n function nullRefGetter() {\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\"function\" === typeof type) return '\"use client\"';\n if (\"object\" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE) return type._init === readChunk ? '\"use client\"' : \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function initializeElement(response, element) {\n var stack = element._debugStack, owner = element._owner;\n null === owner && (element._owner = response._debugRootOwner);\n var env = response._rootEnvironmentName;\n null !== owner && null != owner.env && (env = owner.env);\n var normalizedStackTrace = null;\n null === owner && null != response._debugRootStack ? normalizedStackTrace = response._debugRootStack : null !== stack && (normalizedStackTrace = createFakeJSXCallStackInDEV(response, stack, env));\n element._debugStack = normalizedStackTrace;\n normalizedStackTrace = null;\n supportsCreateTask && null !== stack && (normalizedStackTrace = console.createTask.bind(console, getTaskName(element.type)), stack = buildFakeCallStack(response, stack, env, !1, normalizedStackTrace), env = null === owner ? null : initializeFakeTask(response, owner), null === env ? (env = response._debugRootTask, normalizedStackTrace = null != env ? env.run(stack) : stack()) : normalizedStackTrace = env.run(stack));\n element._debugTask = normalizedStackTrace;\n null !== owner && initializeFakeStack(response, owner);\n Object.freeze(element.props);\n }\n function createLazyChunkWrapper(chunk) {\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: chunk,\n _init: readChunk\n };\n chunk = chunk._debugInfo || (chunk._debugInfo = []);\n lazyType._debugInfo = chunk;\n return lazyType;\n }\n function getChunk(response, id) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk || (chunk = response._closed ? new ReactPromise(\"rejected\", null, response._closedReason) : createPendingChunk(response), chunks.set(id, chunk));\n return chunk;\n }\n function fulfillReference(reference, value) {\n for(var response = reference.response, handler = reference.handler, parentObject = reference.parentObject, key = reference.key, map = reference.map, path = reference.path, i = 1; i < path.length; i++){\n for(; value.$$typeof === REACT_LAZY_TYPE;)if (value = value._payload, value === handler.chunk) value = handler.value;\n else {\n switch(value.status){\n case \"resolved_model\":\n initializeModelChunk(value);\n break;\n case \"resolved_module\":\n initializeModuleChunk(value);\n }\n switch(value.status){\n case \"fulfilled\":\n value = value.value;\n continue;\n case \"blocked\":\n var cyclicHandler = resolveBlockedCycle(value, reference);\n if (null !== cyclicHandler) {\n value = cyclicHandler.value;\n continue;\n }\n case \"pending\":\n path.splice(0, i - 1);\n null === value.value ? value.value = [\n reference\n ] : value.value.push(reference);\n null === value.reason ? value.reason = [\n reference\n ] : value.reason.push(reference);\n return;\n case \"halted\":\n return;\n default:\n rejectReference(reference, value.reason);\n return;\n }\n }\n value = value[path[i]];\n }\n reference = map(response, value, parentObject, key);\n parentObject[key] = reference;\n \"\" === key && null === handler.value && (handler.value = reference);\n if (parentObject[0] === REACT_ELEMENT_TYPE && \"object\" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE) switch(parentObject = handler.value, key){\n case \"3\":\n parentObject.props = reference;\n break;\n case \"4\":\n parentObject._owner = reference;\n break;\n case \"5\":\n parentObject._debugStack = reference;\n }\n handler.deps--;\n 0 === handler.deps && (key = handler.chunk, null !== key && \"blocked\" === key.status && (parentObject = key.value, key.status = \"fulfilled\", key.value = handler.value, key.reason = handler.reason, null !== parentObject && wakeChunk(parentObject, handler.value)));\n }\n function rejectReference(reference, error) {\n var handler = reference.handler;\n reference = reference.response;\n if (!handler.errored) {\n var blockedValue = handler.value;\n handler.errored = !0;\n handler.value = null;\n handler.reason = error;\n handler = handler.chunk;\n if (null !== handler && \"blocked\" === handler.status) {\n if (\"object\" === typeof blockedValue && null !== blockedValue && blockedValue.$$typeof === REACT_ELEMENT_TYPE) {\n var erroredComponent = {\n name: getComponentNameFromType(blockedValue.type) || \"\",\n owner: blockedValue._owner\n };\n erroredComponent.debugStack = blockedValue._debugStack;\n supportsCreateTask && (erroredComponent.debugTask = blockedValue._debugTask);\n (handler._debugInfo || (handler._debugInfo = [])).push(erroredComponent);\n }\n triggerErrorOnChunk(reference, handler, error);\n }\n }\n }\n function waitForReference(referencedChunk, parentObject, key, response, map, path) {\n if (void 0 === response._debugChannel && \"pending\" === referencedChunk.status && parentObject[0] === REACT_ELEMENT_TYPE && (\"4\" === key || \"5\" === key)) return null;\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n };\n parentObject = {\n response: response,\n handler: handler,\n parentObject: parentObject,\n key: key,\n map: map,\n path: path\n };\n null === referencedChunk.value ? referencedChunk.value = [\n parentObject\n ] : referencedChunk.value.push(parentObject);\n null === referencedChunk.reason ? referencedChunk.reason = [\n parentObject\n ] : referencedChunk.reason.push(parentObject);\n return null;\n }\n function loadServerReference(response, metaData, parentObject, key) {\n if (!response._serverReferenceConfig) return createBoundServerReference(metaData, response._callServer, response._encodeFormAction, response._debugFindSourceMapURL);\n var serverReference = resolveServerReference(response._serverReferenceConfig, metaData.id), promise = preloadModule(serverReference);\n if (promise) metaData.bound && (promise = Promise.all([\n promise,\n metaData.bound\n ]));\n else if (metaData.bound) promise = Promise.resolve(metaData.bound);\n else return promise = requireModule(serverReference), registerBoundServerReference(promise, metaData.id, metaData.bound, response._encodeFormAction), promise;\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n };\n promise.then(function() {\n var resolvedValue = requireModule(serverReference);\n if (metaData.bound) {\n var boundArgs = metaData.bound.value.slice(0);\n boundArgs.unshift(null);\n resolvedValue = resolvedValue.bind.apply(resolvedValue, boundArgs);\n }\n registerBoundServerReference(resolvedValue, metaData.id, metaData.bound, response._encodeFormAction);\n parentObject[key] = resolvedValue;\n \"\" === key && null === handler.value && (handler.value = resolvedValue);\n if (parentObject[0] === REACT_ELEMENT_TYPE && \"object\" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE) switch(boundArgs = handler.value, key){\n case \"3\":\n boundArgs.props = resolvedValue;\n break;\n case \"4\":\n boundArgs._owner = resolvedValue;\n }\n handler.deps--;\n 0 === handler.deps && (resolvedValue = handler.chunk, null !== resolvedValue && \"blocked\" === resolvedValue.status && (boundArgs = resolvedValue.value, resolvedValue.status = \"fulfilled\", resolvedValue.value = handler.value, null !== boundArgs && wakeChunk(boundArgs, handler.value)));\n }, function(error) {\n if (!handler.errored) {\n var blockedValue = handler.value;\n handler.errored = !0;\n handler.value = null;\n handler.reason = error;\n var chunk = handler.chunk;\n if (null !== chunk && \"blocked\" === chunk.status) {\n if (\"object\" === typeof blockedValue && null !== blockedValue && blockedValue.$$typeof === REACT_ELEMENT_TYPE) {\n var erroredComponent = {\n name: getComponentNameFromType(blockedValue.type) || \"\",\n owner: blockedValue._owner\n };\n erroredComponent.debugStack = blockedValue._debugStack;\n supportsCreateTask && (erroredComponent.debugTask = blockedValue._debugTask);\n (chunk._debugInfo || (chunk._debugInfo = [])).push(erroredComponent);\n }\n triggerErrorOnChunk(response, chunk, error);\n }\n }\n });\n return null;\n }\n function getOutlinedModel(response, reference, parentObject, key, map) {\n reference = reference.split(\":\");\n var id = parseInt(reference[0], 16);\n id = getChunk(response, id);\n switch(id.status){\n case \"resolved_model\":\n initializeModelChunk(id);\n break;\n case \"resolved_module\":\n initializeModuleChunk(id);\n }\n switch(id.status){\n case \"fulfilled\":\n for(var value = id.value, i = 1; i < reference.length; i++){\n for(; value.$$typeof === REACT_LAZY_TYPE;){\n value = value._payload;\n switch(value.status){\n case \"resolved_model\":\n initializeModelChunk(value);\n break;\n case \"resolved_module\":\n initializeModuleChunk(value);\n }\n switch(value.status){\n case \"fulfilled\":\n value = value.value;\n break;\n case \"blocked\":\n case \"pending\":\n return waitForReference(value, parentObject, key, response, map, reference.slice(i - 1));\n case \"halted\":\n return initializingHandler ? (response = initializingHandler, response.deps++) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n }, null;\n default:\n return initializingHandler ? (initializingHandler.errored = !0, initializingHandler.value = null, initializingHandler.reason = value.reason) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: value.reason,\n deps: 0,\n errored: !0\n }, null;\n }\n }\n value = value[reference[i]];\n }\n response = map(response, value, parentObject, key);\n id._debugInfo && (\"object\" !== typeof response || null === response || !isArrayImpl(response) && \"function\" !== typeof response[ASYNC_ITERATOR] && response.$$typeof !== REACT_ELEMENT_TYPE || response._debugInfo || Object.defineProperty(response, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: id._debugInfo\n }));\n return response;\n case \"pending\":\n case \"blocked\":\n return waitForReference(id, parentObject, key, response, map, reference);\n case \"halted\":\n return initializingHandler ? (response = initializingHandler, response.deps++) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n }, null;\n default:\n return initializingHandler ? (initializingHandler.errored = !0, initializingHandler.value = null, initializingHandler.reason = id.reason) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: id.reason,\n deps: 0,\n errored: !0\n }, null;\n }\n }\n function createMap(response, model) {\n return new Map(model);\n }\n function createSet(response, model) {\n return new Set(model);\n }\n function createBlob(response, model) {\n return new Blob(model.slice(1), {\n type: model[0]\n });\n }\n function createFormData(response, model) {\n response = new FormData();\n for(var i = 0; i < model.length; i++)response.append(model[i][0], model[i][1]);\n return response;\n }\n function applyConstructor(response, model, parentObject) {\n Object.setPrototypeOf(parentObject, model.prototype);\n }\n function defineLazyGetter(response, chunk, parentObject, key) {\n Object.defineProperty(parentObject, key, {\n get: function() {\n \"resolved_model\" === chunk.status && initializeModelChunk(chunk);\n switch(chunk.status){\n case \"fulfilled\":\n return chunk.value;\n case \"rejected\":\n throw chunk.reason;\n }\n return \"This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.\";\n },\n enumerable: !0,\n configurable: !1\n });\n return null;\n }\n function extractIterator(response, model) {\n return model[Symbol.iterator]();\n }\n function createModel(response, model) {\n return model;\n }\n function getInferredFunctionApproximate(code) {\n code = code.startsWith(\"Object.defineProperty(\") ? code.slice(22) : code.startsWith(\"(\") ? code.slice(1) : code;\n if (code.startsWith(\"async function\")) {\n var idx = code.indexOf(\"(\", 14);\n if (-1 !== idx) return code = code.slice(14, idx).trim(), (0, eval)(\"({\" + JSON.stringify(code) + \":async function(){}})\")[code];\n } else if (code.startsWith(\"function\")) {\n if (idx = code.indexOf(\"(\", 8), -1 !== idx) return code = code.slice(8, idx).trim(), (0, eval)(\"({\" + JSON.stringify(code) + \":function(){}})\")[code];\n } else if (code.startsWith(\"class\") && (idx = code.indexOf(\"{\", 5), -1 !== idx)) return code = code.slice(5, idx).trim(), (0, eval)(\"({\" + JSON.stringify(code) + \":class{}})\")[code];\n return function() {};\n }\n function parseModelString(response, parentObject, key, value) {\n if (\"$\" === value[0]) {\n if (\"$\" === value) return null !== initializingHandler && \"0\" === key && (initializingHandler = {\n parent: initializingHandler,\n chunk: null,\n value: null,\n reason: null,\n deps: 0,\n errored: !1\n }), REACT_ELEMENT_TYPE;\n switch(value[1]){\n case \"$\":\n return value.slice(1);\n case \"L\":\n return parentObject = parseInt(value.slice(2), 16), response = getChunk(response, parentObject), createLazyChunkWrapper(response);\n case \"@\":\n return parentObject = parseInt(value.slice(2), 16), getChunk(response, parentObject);\n case \"S\":\n return Symbol.for(value.slice(2));\n case \"F\":\n var ref = value.slice(2);\n return getOutlinedModel(response, ref, parentObject, key, loadServerReference);\n case \"T\":\n parentObject = \"$\" + value.slice(2);\n response = response._tempRefs;\n if (null == response) throw Error(\"Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply.\");\n return response.get(parentObject);\n case \"Q\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createMap);\n case \"W\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createSet);\n case \"B\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createBlob);\n case \"K\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createFormData);\n case \"Z\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, resolveErrorDev);\n case \"i\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, extractIterator);\n case \"I\":\n return Infinity;\n case \"-\":\n return \"$-0\" === value ? -0 : -Infinity;\n case \"N\":\n return NaN;\n case \"u\":\n return;\n case \"D\":\n return new Date(Date.parse(value.slice(2)));\n case \"n\":\n return BigInt(value.slice(2));\n case \"P\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, applyConstructor);\n case \"E\":\n response = value.slice(2);\n try {\n if (!mightHaveStaticConstructor.test(response)) return (0, eval)(response);\n } catch (x) {}\n try {\n if (ref = getInferredFunctionApproximate(response), response.startsWith(\"Object.defineProperty(\")) {\n var idx = response.lastIndexOf(',\"name\",{value:\"');\n if (-1 !== idx) {\n var name = JSON.parse(response.slice(idx + 16 - 1, response.length - 2));\n Object.defineProperty(ref, \"name\", {\n value: name\n });\n }\n }\n } catch (_) {\n ref = function() {};\n }\n return ref;\n case \"Y\":\n if (2 < value.length && (ref = response._debugChannel)) {\n if (\"@\" === value[2]) return parentObject = value.slice(3), key = parseInt(parentObject, 16), response._chunks.has(key) || ref(\"P:\" + parentObject), getChunk(response, key);\n value = value.slice(2);\n idx = parseInt(value, 16);\n response._chunks.has(idx) || ref(\"Q:\" + value);\n ref = getChunk(response, idx);\n return \"fulfilled\" === ref.status ? ref.value : defineLazyGetter(response, ref, parentObject, key);\n }\n Object.defineProperty(parentObject, key, {\n get: function() {\n return \"This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.\";\n },\n enumerable: !0,\n configurable: !1\n });\n return null;\n default:\n return ref = value.slice(1), getOutlinedModel(response, ref, parentObject, key, createModel);\n }\n }\n return value;\n }\n function missingCall() {\n throw Error('Trying to call a function from \"use server\" but the callServer option was not implemented in your router runtime.');\n }\n function ResponseInstance(bundlerConfig, serverReferenceConfig, moduleLoading, callServer, encodeFormAction, nonce, temporaryReferences, findSourceMapURL, replayConsole, environmentName, debugChannel) {\n var chunks = new Map();\n this._bundlerConfig = bundlerConfig;\n this._serverReferenceConfig = serverReferenceConfig;\n this._moduleLoading = moduleLoading;\n this._callServer = void 0 !== callServer ? callServer : missingCall;\n this._encodeFormAction = encodeFormAction;\n this._nonce = nonce;\n this._chunks = chunks;\n this._stringDecoder = new util.TextDecoder();\n this._fromJSON = null;\n this._closed = !1;\n this._closedReason = null;\n this._tempRefs = temporaryReferences;\n this._pendingChunks = 0;\n this._weakResponse = {\n weak: new WeakRef(this),\n response: this\n };\n this._debugRootOwner = bundlerConfig = void 0 === ReactSharedInteralsServer || null === ReactSharedInteralsServer.A ? null : ReactSharedInteralsServer.A.getOwner();\n this._debugRootStack = null !== bundlerConfig ? Error(\"react-stack-top-frame\") : null;\n environmentName = void 0 === environmentName ? \"Server\" : environmentName;\n supportsCreateTask && (this._debugRootTask = console.createTask('\"use ' + environmentName.toLowerCase() + '\"'));\n this._debugFindSourceMapURL = findSourceMapURL;\n this._debugChannel = debugChannel;\n this._blockedConsole = null;\n this._replayConsole = replayConsole;\n this._rootEnvironmentName = environmentName;\n debugChannel && (null === debugChannelRegistry ? (debugChannel(\"\"), this._debugChannel = void 0) : debugChannelRegistry.register(this, debugChannel));\n this._fromJSON = createFromJSONCallback(this);\n }\n function createStreamState() {\n return {\n _rowState: 0,\n _rowID: 0,\n _rowTag: 0,\n _rowLength: 0,\n _buffer: []\n };\n }\n function resolveBuffer(response, id, buffer) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk && \"pending\" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), chunks.set(id, new ReactPromise(\"fulfilled\", buffer, null)));\n }\n function resolveModule(response, id, model) {\n var chunks = response._chunks, chunk = chunks.get(id);\n model = JSON.parse(model, response._fromJSON);\n var clientReference = resolveClientReference(response._bundlerConfig, model);\n prepareDestinationWithChunks(response._moduleLoading, model[1], response._nonce);\n if (model = preloadModule(clientReference)) {\n if (chunk) {\n releasePendingChunk(response, chunk);\n var blockedChunk = chunk;\n blockedChunk.status = \"blocked\";\n } else blockedChunk = new ReactPromise(\"blocked\", null, null), chunks.set(id, blockedChunk);\n model.then(function() {\n return resolveModuleChunk(response, blockedChunk, clientReference);\n }, function(error) {\n return triggerErrorOnChunk(response, blockedChunk, error);\n });\n } else chunk ? resolveModuleChunk(response, chunk, clientReference) : chunks.set(id, new ReactPromise(\"resolved_module\", clientReference, null));\n }\n function resolveStream(response, id, stream, controller) {\n var chunks = response._chunks, chunk = chunks.get(id);\n if (!chunk) chunks.set(id, new ReactPromise(\"fulfilled\", stream, controller));\n else if (\"pending\" === chunk.status) {\n releasePendingChunk(response, chunk);\n id = chunk.value;\n if (null != chunk._debugChunk) {\n chunks = initializingHandler;\n initializingHandler = null;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n try {\n if (initializeDebugChunk(response, chunk), chunk._debugChunk = null, null !== initializingHandler && !initializingHandler.errored && 0 < initializingHandler.deps) {\n initializingHandler.value = stream;\n initializingHandler.reason = controller;\n initializingHandler.chunk = chunk;\n return;\n }\n } finally{\n initializingHandler = chunks;\n }\n }\n chunk.status = \"fulfilled\";\n chunk.value = stream;\n chunk.reason = controller;\n null !== id && wakeChunk(id, chunk.value);\n }\n }\n function startReadableStream(response, id, type) {\n var controller = null;\n type = new ReadableStream({\n type: type,\n start: function(c) {\n controller = c;\n }\n });\n var previousBlockedChunk = null;\n resolveStream(response, id, type, {\n enqueueValue: function(value) {\n null === previousBlockedChunk ? controller.enqueue(value) : previousBlockedChunk.then(function() {\n controller.enqueue(value);\n });\n },\n enqueueModel: function(json) {\n if (null === previousBlockedChunk) {\n var chunk = createResolvedModelChunk(response, json);\n initializeModelChunk(chunk);\n \"fulfilled\" === chunk.status ? controller.enqueue(chunk.value) : (chunk.then(function(v) {\n return controller.enqueue(v);\n }, function(e) {\n return controller.error(e);\n }), previousBlockedChunk = chunk);\n } else {\n chunk = previousBlockedChunk;\n var _chunk3 = createPendingChunk(response);\n _chunk3.then(function(v) {\n return controller.enqueue(v);\n }, function(e) {\n return controller.error(e);\n });\n previousBlockedChunk = _chunk3;\n chunk.then(function() {\n previousBlockedChunk === _chunk3 && (previousBlockedChunk = null);\n resolveModelChunk(response, _chunk3, json);\n });\n }\n },\n close: function() {\n if (null === previousBlockedChunk) controller.close();\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function() {\n return controller.close();\n });\n }\n },\n error: function(error) {\n if (null === previousBlockedChunk) controller.error(error);\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function() {\n return controller.error(error);\n });\n }\n }\n });\n }\n function asyncIterator() {\n return this;\n }\n function createIterator(next) {\n next = {\n next: next\n };\n next[ASYNC_ITERATOR] = asyncIterator;\n return next;\n }\n function startAsyncIterable(response, id, iterator) {\n var buffer = [], closed = !1, nextWriteIndex = 0, iterable = {};\n iterable[ASYNC_ITERATOR] = function() {\n var nextReadIndex = 0;\n return createIterator(function(arg) {\n if (void 0 !== arg) throw Error(\"Values cannot be passed to next() of AsyncIterables passed to Client Components.\");\n if (nextReadIndex === buffer.length) {\n if (closed) return new ReactPromise(\"fulfilled\", {\n done: !0,\n value: void 0\n }, null);\n buffer[nextReadIndex] = createPendingChunk(response);\n }\n return buffer[nextReadIndex++];\n });\n };\n resolveStream(response, id, iterator ? iterable[ASYNC_ITERATOR]() : iterable, {\n enqueueValue: function(value) {\n if (nextWriteIndex === buffer.length) buffer[nextWriteIndex] = new ReactPromise(\"fulfilled\", {\n done: !1,\n value: value\n }, null);\n else {\n var chunk = buffer[nextWriteIndex], resolveListeners = chunk.value, rejectListeners = chunk.reason;\n chunk.status = \"fulfilled\";\n chunk.value = {\n done: !1,\n value: value\n };\n null !== resolveListeners && wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);\n }\n nextWriteIndex++;\n },\n enqueueModel: function(value) {\n nextWriteIndex === buffer.length ? buffer[nextWriteIndex] = createResolvedIteratorResultChunk(response, value, !1) : resolveIteratorResultChunk(response, buffer[nextWriteIndex], value, !1);\n nextWriteIndex++;\n },\n close: function(value) {\n closed = !0;\n nextWriteIndex === buffer.length ? buffer[nextWriteIndex] = createResolvedIteratorResultChunk(response, value, !0) : resolveIteratorResultChunk(response, buffer[nextWriteIndex], value, !0);\n for(nextWriteIndex++; nextWriteIndex < buffer.length;)resolveIteratorResultChunk(response, buffer[nextWriteIndex++], '\"$undefined\"', !0);\n },\n error: function(error) {\n closed = !0;\n for(nextWriteIndex === buffer.length && (buffer[nextWriteIndex] = createPendingChunk(response)); nextWriteIndex < buffer.length;)triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);\n }\n });\n }\n function resolveErrorDev(response, errorInfo) {\n var name = errorInfo.name, env = errorInfo.env;\n errorInfo = buildFakeCallStack(response, errorInfo.stack, env, !1, Error.bind(null, errorInfo.message || \"An error occurred in the Server Components render but no message was provided\"));\n response = getRootTask(response, env);\n response = null != response ? response.run(errorInfo) : errorInfo();\n response.name = name;\n response.environmentName = env;\n return response;\n }\n function createFakeFunction(name, filename, sourceMap, line, col, enclosingLine, enclosingCol, environmentName) {\n name || (name = \"<anonymous>\");\n var encodedName = JSON.stringify(name);\n 1 > enclosingLine ? enclosingLine = 0 : enclosingLine--;\n 1 > enclosingCol ? enclosingCol = 0 : enclosingCol--;\n 1 > line ? line = 0 : line--;\n 1 > col ? col = 0 : col--;\n if (line < enclosingLine || line === enclosingLine && col < enclosingCol) enclosingCol = enclosingLine = 0;\n 1 > line ? (line = encodedName.length + 3, enclosingCol -= line, 0 > enclosingCol && (enclosingCol = 0), col = col - enclosingCol - line - 3, 0 > col && (col = 0), encodedName = \"({\" + encodedName + \":\" + \" \".repeat(enclosingCol) + \"_=>\" + \" \".repeat(col) + \"_()})\") : 1 > enclosingLine ? (enclosingCol -= encodedName.length + 3, 0 > enclosingCol && (enclosingCol = 0), encodedName = \"({\" + encodedName + \":\" + \" \".repeat(enclosingCol) + \"_=>\" + \"\\n\".repeat(line - enclosingLine) + \" \".repeat(col) + \"_()})\") : enclosingLine === line ? (col = col - enclosingCol - 3, 0 > col && (col = 0), encodedName = \"\\n\".repeat(enclosingLine - 1) + \"({\" + encodedName + \":\\n\" + \" \".repeat(enclosingCol) + \"_=>\" + \" \".repeat(col) + \"_()})\") : encodedName = \"\\n\".repeat(enclosingLine - 1) + \"({\" + encodedName + \":\\n\" + \" \".repeat(enclosingCol) + \"_=>\" + \"\\n\".repeat(line - enclosingLine) + \" \".repeat(col) + \"_()})\";\n encodedName = 1 > enclosingLine ? encodedName + \"\\n/* This module was rendered by a Server Component. Turn on Source Maps to see the server source. */\" : \"/* This module was rendered by a Server Component. Turn on Source Maps to see the server source. */\" + encodedName;\n filename.startsWith(\"/\") && (filename = \"file://\" + filename);\n sourceMap ? (encodedName += \"\\n//# sourceURL=about://React/\" + encodeURIComponent(environmentName) + \"/\" + encodeURI(filename) + \"?\" + fakeFunctionIdx++, encodedName += \"\\n//# sourceMappingURL=\" + sourceMap) : encodedName = filename ? encodedName + (\"\\n//# sourceURL=\" + encodeURI(filename)) : encodedName + \"\\n//# sourceURL=<anonymous>\";\n try {\n var fn = (0, eval)(encodedName)[name];\n } catch (x) {\n fn = function(_) {\n return _();\n };\n }\n return fn;\n }\n function buildFakeCallStack(response, stack, environmentName, useEnclosingLine, innerCall) {\n for(var i = 0; i < stack.length; i++){\n var frame = stack[i], frameKey = frame.join(\"-\") + \"-\" + environmentName + (useEnclosingLine ? \"-e\" : \"-n\"), fn = fakeFunctionCache.get(frameKey);\n if (void 0 === fn) {\n fn = frame[0];\n var filename = frame[1], line = frame[2], col = frame[3], enclosingLine = frame[4];\n frame = frame[5];\n var findSourceMapURL = response._debugFindSourceMapURL;\n findSourceMapURL = findSourceMapURL ? findSourceMapURL(filename, environmentName) : null;\n fn = createFakeFunction(fn, filename, findSourceMapURL, line, col, useEnclosingLine ? line : enclosingLine, useEnclosingLine ? col : frame, environmentName);\n fakeFunctionCache.set(frameKey, fn);\n }\n innerCall = fn.bind(null, innerCall);\n }\n return innerCall;\n }\n function getRootTask(response, childEnvironmentName) {\n var rootTask = response._debugRootTask;\n return rootTask ? response._rootEnvironmentName !== childEnvironmentName ? (response = console.createTask.bind(console, '\"use ' + childEnvironmentName.toLowerCase() + '\"'), rootTask.run(response)) : rootTask : null;\n }\n function initializeFakeTask(response, debugInfo) {\n if (!supportsCreateTask || null == debugInfo.stack) return null;\n var cachedEntry = debugInfo.debugTask;\n if (void 0 !== cachedEntry) return cachedEntry;\n var useEnclosingLine = void 0 === debugInfo.key, stack = debugInfo.stack, env = null == debugInfo.env ? response._rootEnvironmentName : debugInfo.env;\n cachedEntry = null == debugInfo.owner || null == debugInfo.owner.env ? response._rootEnvironmentName : debugInfo.owner.env;\n var ownerTask = null == debugInfo.owner ? null : initializeFakeTask(response, debugInfo.owner);\n env = env !== cachedEntry ? '\"use ' + env.toLowerCase() + '\"' : void 0 !== debugInfo.key ? \"<\" + (debugInfo.name || \"...\") + \">\" : void 0 !== debugInfo.name ? debugInfo.name || \"unknown\" : \"await \" + (debugInfo.awaited.name || \"unknown\");\n env = console.createTask.bind(console, env);\n useEnclosingLine = buildFakeCallStack(response, stack, cachedEntry, useEnclosingLine, env);\n null === ownerTask ? (response = getRootTask(response, cachedEntry), response = null != response ? response.run(useEnclosingLine) : useEnclosingLine()) : response = ownerTask.run(useEnclosingLine);\n return debugInfo.debugTask = response;\n }\n function fakeJSXCallSite() {\n return Error(\"react-stack-top-frame\");\n }\n function initializeFakeStack(response, debugInfo) {\n if (void 0 === debugInfo.debugStack) {\n null != debugInfo.stack && (debugInfo.debugStack = createFakeJSXCallStackInDEV(response, debugInfo.stack, null == debugInfo.env ? \"\" : debugInfo.env));\n var owner = debugInfo.owner;\n null != owner && (initializeFakeStack(response, owner), void 0 === owner.debugLocation && null != debugInfo.debugStack && (owner.debugLocation = debugInfo.debugStack));\n }\n }\n function initializeDebugInfo(response, debugInfo) {\n void 0 !== debugInfo.stack && initializeFakeTask(response, debugInfo);\n null == debugInfo.owner && null != response._debugRootOwner ? (debugInfo.owner = response._debugRootOwner, debugInfo.stack = null, debugInfo.debugStack = response._debugRootStack, debugInfo.debugTask = response._debugRootTask) : void 0 !== debugInfo.stack && initializeFakeStack(response, debugInfo);\n return debugInfo;\n }\n function getCurrentStackInDEV() {\n var owner = currentOwnerInDEV;\n if (null === owner) return \"\";\n try {\n var info = \"\";\n if (owner.owner || \"string\" !== typeof owner.name) {\n for(; owner;){\n var ownerStack = owner.debugStack;\n if (null != ownerStack) {\n if (owner = owner.owner) {\n var JSCompiler_temp_const = info;\n var error = ownerStack, prevPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = prepareStackTrace;\n var stack = error.stack;\n Error.prepareStackTrace = prevPrepareStackTrace;\n stack.startsWith(\"Error: react-stack-top-frame\\n\") && (stack = stack.slice(29));\n var idx = stack.indexOf(\"\\n\");\n -1 !== idx && (stack = stack.slice(idx + 1));\n idx = stack.indexOf(\"react_stack_bottom_frame\");\n -1 !== idx && (idx = stack.lastIndexOf(\"\\n\", idx));\n var JSCompiler_inline_result = -1 !== idx ? stack = stack.slice(0, idx) : \"\";\n info = JSCompiler_temp_const + (\"\\n\" + JSCompiler_inline_result);\n }\n } else break;\n }\n var JSCompiler_inline_result$jscomp$0 = info;\n } else {\n JSCompiler_temp_const = owner.name;\n if (void 0 === prefix) try {\n throw Error();\n } catch (x) {\n prefix = (error = x.stack.trim().match(/\\n( *(at )?)/)) && error[1] || \"\", suffix = -1 < x.stack.indexOf(\"\\n at\") ? \" (<anonymous>)\" : -1 < x.stack.indexOf(\"@\") ? \"@unknown:0:0\" : \"\";\n }\n JSCompiler_inline_result$jscomp$0 = \"\\n\" + prefix + JSCompiler_temp_const + suffix;\n }\n } catch (x) {\n JSCompiler_inline_result$jscomp$0 = \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return JSCompiler_inline_result$jscomp$0;\n }\n function resolveConsoleEntry(response, json) {\n if (response._replayConsole) {\n var blockedChunk = response._blockedConsole;\n if (null == blockedChunk) blockedChunk = createResolvedModelChunk(response, json), initializeModelChunk(blockedChunk), \"fulfilled\" === blockedChunk.status ? replayConsoleWithCallStackInDEV(response, blockedChunk.value) : (blockedChunk.then(function(v) {\n return replayConsoleWithCallStackInDEV(response, v);\n }, function() {}), response._blockedConsole = blockedChunk);\n else {\n var _chunk4 = createPendingChunk(response);\n _chunk4.then(function(v) {\n return replayConsoleWithCallStackInDEV(response, v);\n }, function() {});\n response._blockedConsole = _chunk4;\n var unblock = function() {\n response._blockedConsole === _chunk4 && (response._blockedConsole = null);\n resolveModelChunk(response, _chunk4, json);\n };\n blockedChunk.then(unblock, unblock);\n }\n }\n }\n function initializeIOInfo(response, ioInfo) {\n void 0 !== ioInfo.stack && (initializeFakeTask(response, ioInfo), initializeFakeStack(response, ioInfo));\n ioInfo.start += response._timeOrigin;\n ioInfo.end += response._timeOrigin;\n }\n function resolveIOInfo(response, id, model) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk ? (resolveModelChunk(response, chunk, model), \"resolved_model\" === chunk.status && initializeModelChunk(chunk)) : (chunk = createResolvedModelChunk(response, model), chunks.set(id, chunk), initializeModelChunk(chunk));\n \"fulfilled\" === chunk.status ? initializeIOInfo(response, chunk.value) : chunk.then(function(v) {\n initializeIOInfo(response, v);\n }, function() {});\n }\n function mergeBuffer(buffer, lastChunk) {\n for(var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)byteLength += buffer[i].byteLength;\n byteLength = new Uint8Array(byteLength);\n for(var _i3 = i = 0; _i3 < l; _i3++){\n var chunk = buffer[_i3];\n byteLength.set(chunk, i);\n i += chunk.byteLength;\n }\n byteLength.set(lastChunk, i);\n return byteLength;\n }\n function resolveTypedArray(response, id, buffer, lastChunk, constructor, bytesPerElement) {\n buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement ? lastChunk : mergeBuffer(buffer, lastChunk);\n constructor = new constructor(buffer.buffer, buffer.byteOffset, buffer.byteLength / bytesPerElement);\n resolveBuffer(response, id, constructor);\n }\n function flushInitialRenderPerformance() {}\n function processFullBinaryRow(response, id, tag, buffer, chunk) {\n switch(tag){\n case 65:\n resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer);\n return;\n case 79:\n resolveTypedArray(response, id, buffer, chunk, Int8Array, 1);\n return;\n case 111:\n resolveBuffer(response, id, 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk));\n return;\n case 85:\n resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1);\n return;\n case 83:\n resolveTypedArray(response, id, buffer, chunk, Int16Array, 2);\n return;\n case 115:\n resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2);\n return;\n case 76:\n resolveTypedArray(response, id, buffer, chunk, Int32Array, 4);\n return;\n case 108:\n resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4);\n return;\n case 71:\n resolveTypedArray(response, id, buffer, chunk, Float32Array, 4);\n return;\n case 103:\n resolveTypedArray(response, id, buffer, chunk, Float64Array, 8);\n return;\n case 77:\n resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8);\n return;\n case 109:\n resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8);\n return;\n case 86:\n resolveTypedArray(response, id, buffer, chunk, DataView, 1);\n return;\n }\n for(var stringDecoder = response._stringDecoder, row = \"\", i = 0; i < buffer.length; i++)row += stringDecoder.decode(buffer[i], decoderOptions);\n row += stringDecoder.decode(chunk);\n processFullStringRow(response, id, tag, row);\n }\n function processFullStringRow(response, id, tag, row) {\n switch(tag){\n case 73:\n resolveModule(response, id, row);\n break;\n case 72:\n id = row[0];\n row = row.slice(1);\n response = JSON.parse(row, response._fromJSON);\n row = ReactDOMSharedInternals.d;\n switch(id){\n case \"D\":\n row.D(response);\n break;\n case \"C\":\n \"string\" === typeof response ? row.C(response) : row.C(response[0], response[1]);\n break;\n case \"L\":\n id = response[0];\n tag = response[1];\n 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag);\n break;\n case \"m\":\n \"string\" === typeof response ? row.m(response) : row.m(response[0], response[1]);\n break;\n case \"X\":\n \"string\" === typeof response ? row.X(response) : row.X(response[0], response[1]);\n break;\n case \"S\":\n \"string\" === typeof response ? row.S(response) : row.S(response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0);\n break;\n case \"M\":\n \"string\" === typeof response ? row.M(response) : row.M(response[0], response[1]);\n }\n break;\n case 69:\n tag = response._chunks;\n var chunk = tag.get(id);\n row = JSON.parse(row);\n var error = resolveErrorDev(response, row);\n error.digest = row.digest;\n chunk ? triggerErrorOnChunk(response, chunk, error) : tag.set(id, new ReactPromise(\"rejected\", null, error));\n break;\n case 84:\n tag = response._chunks;\n (chunk = tag.get(id)) && \"pending\" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), tag.set(id, new ReactPromise(\"fulfilled\", row, null)));\n break;\n case 78:\n response._timeOrigin = +row - performance.timeOrigin;\n break;\n case 68:\n id = getChunk(response, id);\n \"fulfilled\" !== id.status && \"rejected\" !== id.status && \"halted\" !== id.status && \"blocked\" !== id.status && \"resolved_module\" !== id.status && (tag = id._debugChunk, chunk = createResolvedModelChunk(response, row), chunk._debugChunk = tag, id._debugChunk = chunk, initializeDebugChunk(response, id), \"blocked\" === chunk.status && void 0 === response._debugChannel && '\"' === row[0] && \"$\" === row[1] && (row = row.slice(2, row.length - 1).split(\":\"), row = parseInt(row[0], 16), \"pending\" === getChunk(response, row).status && (id._debugChunk = null)));\n break;\n case 74:\n resolveIOInfo(response, id, row);\n break;\n case 87:\n resolveConsoleEntry(response, row);\n break;\n case 82:\n startReadableStream(response, id, void 0);\n break;\n case 114:\n startReadableStream(response, id, \"bytes\");\n break;\n case 88:\n startAsyncIterable(response, id, !1);\n break;\n case 120:\n startAsyncIterable(response, id, !0);\n break;\n case 67:\n (response = response._chunks.get(id)) && \"fulfilled\" === response.status && response.reason.close(\"\" === row ? '\"$undefined\"' : row);\n break;\n default:\n if (\"\" === row) {\n if (row = response._chunks, (tag = row.get(id)) || row.set(id, tag = createPendingChunk(response)), \"pending\" === tag.status || \"blocked\" === tag.status) releasePendingChunk(response, tag), response = tag, response.status = \"halted\", response.value = null, response.reason = null;\n } else tag = response._chunks, (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, row) : tag.set(id, createResolvedModelChunk(response, row));\n }\n }\n function processBinaryChunk(weakResponse, streamState, chunk) {\n if (void 0 !== weakResponse.weak.deref()) {\n var response = unwrapWeakResponse(weakResponse), i = 0, rowState = streamState._rowState;\n weakResponse = streamState._rowID;\n for(var rowTag = streamState._rowTag, rowLength = streamState._rowLength, buffer = streamState._buffer, chunkLength = chunk.length; i < chunkLength;){\n var lastIdx = -1;\n switch(rowState){\n case 0:\n lastIdx = chunk[i++];\n 58 === lastIdx ? rowState = 1 : weakResponse = weakResponse << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 1:\n rowState = chunk[i];\n 84 === rowState || 65 === rowState || 79 === rowState || 111 === rowState || 85 === rowState || 83 === rowState || 115 === rowState || 76 === rowState || 108 === rowState || 71 === rowState || 103 === rowState || 77 === rowState || 109 === rowState || 86 === rowState ? (rowTag = rowState, rowState = 2, i++) : 64 < rowState && 91 > rowState || 35 === rowState || 114 === rowState || 120 === rowState ? (rowTag = rowState, rowState = 3, i++) : (rowTag = 0, rowState = 3);\n continue;\n case 2:\n lastIdx = chunk[i++];\n 44 === lastIdx ? rowState = 4 : rowLength = rowLength << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 3:\n lastIdx = chunk.indexOf(10, i);\n break;\n case 4:\n lastIdx = i + rowLength, lastIdx > chunk.length && (lastIdx = -1);\n }\n var offset = chunk.byteOffset + i;\n if (-1 < lastIdx) rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i), processFullBinaryRow(response, weakResponse, rowTag, buffer, rowLength), i = lastIdx, 3 === rowState && i++, rowLength = weakResponse = rowTag = rowState = 0, buffer.length = 0;\n else {\n chunk = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);\n buffer.push(chunk);\n rowLength -= chunk.byteLength;\n break;\n }\n }\n streamState._rowState = rowState;\n streamState._rowID = weakResponse;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n }\n }\n function createFromJSONCallback(response) {\n return function(key, value) {\n if (\"string\" === typeof value) return parseModelString(response, this, key, value);\n if (\"object\" === typeof value && null !== value) {\n if (value[0] === REACT_ELEMENT_TYPE) b: {\n var owner = value[4];\n key = value[5];\n var validated = value[6];\n value = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: value[1],\n key: value[2],\n props: value[3],\n _owner: void 0 === owner ? null : owner\n };\n Object.defineProperty(value, \"ref\", {\n enumerable: !1,\n get: nullRefGetter\n });\n value._store = {};\n Object.defineProperty(value._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: validated\n });\n Object.defineProperty(value, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(value, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: void 0 === key ? null : key\n });\n Object.defineProperty(value, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n if (null !== initializingHandler) {\n validated = initializingHandler;\n initializingHandler = validated.parent;\n if (validated.errored) {\n key = new ReactPromise(\"rejected\", null, validated.reason);\n initializeElement(response, value);\n validated = {\n name: getComponentNameFromType(value.type) || \"\",\n owner: value._owner\n };\n validated.debugStack = value._debugStack;\n supportsCreateTask && (validated.debugTask = value._debugTask);\n key._debugInfo = [\n validated\n ];\n value = createLazyChunkWrapper(key);\n break b;\n }\n if (0 < validated.deps) {\n key = new ReactPromise(\"blocked\", null, null);\n validated.value = value;\n validated.chunk = key;\n value = initializeElement.bind(null, response, value);\n key.then(value, value);\n value = createLazyChunkWrapper(key);\n break b;\n }\n }\n initializeElement(response, value);\n }\n return value;\n }\n return value;\n };\n }\n function close(weakResponse) {\n reportGlobalError(weakResponse, Error(\"Connection closed.\"));\n }\n function noServerCall$1() {\n throw Error(\"Server Functions cannot be called during initial render. This would create a fetch waterfall. Try to use a Server Component to pass data to Client Components instead.\");\n }\n function createResponseFromOptions(options) {\n return new ResponseInstance(options.serverConsumerManifest.moduleMap, options.serverConsumerManifest.serverModuleMap, options.serverConsumerManifest.moduleLoading, noServerCall$1, options.encodeFormAction, \"string\" === typeof options.nonce ? options.nonce : void 0, options && options.temporaryReferences ? options.temporaryReferences : void 0, options && options.findSourceMapURL ? options.findSourceMapURL : void 0, options ? !0 === options.replayConsoleLogs : !1, options && options.environmentName ? options.environmentName : void 0, void 0)._weakResponse;\n }\n function startReadingFromStream(response, stream) {\n function progress(_ref) {\n var value = _ref.value;\n if (_ref.done) close(response);\n else return processBinaryChunk(response, streamState, value), reader.read().then(progress).catch(error);\n }\n function error(e) {\n reportGlobalError(response, e);\n }\n var streamState = createStreamState(), reader = stream.getReader();\n reader.read().then(progress).catch(error);\n }\n function noServerCall() {\n throw Error(\"Server Functions cannot be called during initial render. This would create a fetch waterfall. Try to use a Server Component to pass data to Client Components instead.\");\n }\n var util = __webpack_require__(/*! util */ \"util\"), ReactDOM = __webpack_require__(/*! react-dom */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\"), React = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"), decoderOptions = {\n stream: !0\n }, bind$1 = Function.prototype.bind, chunkCache = new Map(), ReactDOMSharedInternals = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"), REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"), REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"), REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"), REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"), REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"), REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"), REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"), REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"), REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"), REACT_MEMO_TYPE = Symbol.for(\"react.memo\"), REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"), REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator, ASYNC_ITERATOR = Symbol.asyncIterator, isArrayImpl = Array.isArray, getPrototypeOf = Object.getPrototypeOf, jsxPropsParents = new WeakMap(), jsxChildrenParents = new WeakMap(), CLIENT_REFERENCE_TAG = Symbol.for(\"react.client.reference\"), ObjectPrototype = Object.prototype, knownServerReferences = new WeakMap(), boundCache = new WeakMap(), fakeServerFunctionIdx = 0, FunctionBind = Function.prototype.bind, ArraySlice = Array.prototype.slice, v8FrameRegExp = /^ {3} at (?:(.+) \\((.+):(\\d+):(\\d+)\\)|(?:async )?(.+):(\\d+):(\\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\\d+):(\\d+)/, REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"), prefix, suffix;\n new (\"function\" === typeof WeakMap ? WeakMap : Map)();\n var ReactSharedInteralsServer = React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE || ReactSharedInteralsServer;\n ReactPromise.prototype = Object.create(Promise.prototype);\n ReactPromise.prototype.then = function(resolve, reject) {\n var _this = this;\n switch(this.status){\n case \"resolved_model\":\n initializeModelChunk(this);\n break;\n case \"resolved_module\":\n initializeModuleChunk(this);\n }\n var resolveCallback = resolve, rejectCallback = reject, wrapperPromise = new Promise(function(res, rej) {\n resolve = function(value) {\n wrapperPromise._debugInfo = _this._debugInfo;\n res(value);\n };\n reject = function(reason) {\n wrapperPromise._debugInfo = _this._debugInfo;\n rej(reason);\n };\n });\n wrapperPromise.then(resolveCallback, rejectCallback);\n switch(this.status){\n case \"fulfilled\":\n \"function\" === typeof resolve && resolve(this.value);\n break;\n case \"pending\":\n case \"blocked\":\n \"function\" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve));\n \"function\" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject));\n break;\n case \"halted\":\n break;\n default:\n \"function\" === typeof reject && reject(this.reason);\n }\n };\n var debugChannelRegistry = \"function\" === typeof FinalizationRegistry ? new FinalizationRegistry(cleanupDebugChannel) : null, initializingHandler = null, mightHaveStaticConstructor = /\\bclass\\b.*\\bstatic\\b/, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, createFakeJSXCallStack = {\n react_stack_bottom_frame: function(response, stack, environmentName) {\n return buildFakeCallStack(response, stack, environmentName, !1, fakeJSXCallSite)();\n }\n }, createFakeJSXCallStackInDEV = createFakeJSXCallStack.react_stack_bottom_frame.bind(createFakeJSXCallStack), currentOwnerInDEV = null, replayConsoleWithCallStack = {\n react_stack_bottom_frame: function(response, payload) {\n var methodName = payload[0], stackTrace = payload[1], owner = payload[2], env = payload[3];\n payload = payload.slice(4);\n var prevStack = ReactSharedInternals.getCurrentStack;\n ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;\n currentOwnerInDEV = null === owner ? response._debugRootOwner : owner;\n try {\n a: {\n var offset = 0;\n switch(methodName){\n case \"dir\":\n case \"dirxml\":\n case \"groupEnd\":\n case \"table\":\n var JSCompiler_inline_result = bind$1.apply(console[methodName], [\n console\n ].concat(payload));\n break a;\n case \"assert\":\n offset = 1;\n }\n var newArgs = payload.slice(0);\n \"string\" === typeof newArgs[offset] ? newArgs.splice(offset, 1, \"\\u001b[0m\\u001b[7m%c%s\\u001b[0m%c \" + newArgs[offset], \"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\", \" \" + env + \" \", \"\") : newArgs.splice(offset, 0, \"\\u001b[0m\\u001b[7m%c%s\\u001b[0m%c\", \"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\", \" \" + env + \" \", \"\");\n newArgs.unshift(console);\n JSCompiler_inline_result = bind$1.apply(console[methodName], newArgs);\n }\n var callStack = buildFakeCallStack(response, stackTrace, env, !1, JSCompiler_inline_result);\n if (null != owner) {\n var task = initializeFakeTask(response, owner);\n initializeFakeStack(response, owner);\n if (null !== task) {\n task.run(callStack);\n return;\n }\n }\n var rootTask = getRootTask(response, env);\n null != rootTask ? rootTask.run(callStack) : callStack();\n } finally{\n currentOwnerInDEV = null, ReactSharedInternals.getCurrentStack = prevStack;\n }\n }\n }, replayConsoleWithCallStackInDEV = replayConsoleWithCallStack.react_stack_bottom_frame.bind(replayConsoleWithCallStack);\n exports.createFromFetch = function(promiseForResponse, options) {\n var response = createResponseFromOptions(options);\n promiseForResponse.then(function(r) {\n startReadingFromStream(response, r.body);\n }, function(e) {\n reportGlobalError(response, e);\n });\n return getRoot(response);\n };\n exports.createFromNodeStream = function(stream, serverConsumerManifest, options) {\n var response$jscomp$0 = new ResponseInstance(serverConsumerManifest.moduleMap, serverConsumerManifest.serverModuleMap, serverConsumerManifest.moduleLoading, noServerCall, options ? options.encodeFormAction : void 0, options && \"string\" === typeof options.nonce ? options.nonce : void 0, void 0, options && options.findSourceMapURL ? options.findSourceMapURL : void 0, options ? !0 === options.replayConsoleLogs : !1, options && options.environmentName ? options.environmentName : void 0, void 0)._weakResponse, streamState = createStreamState();\n stream.on(\"data\", function(chunk) {\n if (\"string\" === typeof chunk) {\n if (void 0 !== response$jscomp$0.weak.deref()) {\n for(var response = unwrapWeakResponse(response$jscomp$0), i = 0, rowState = streamState._rowState, rowID = streamState._rowID, rowTag = streamState._rowTag, rowLength = streamState._rowLength, buffer = streamState._buffer, chunkLength = chunk.length; i < chunkLength;){\n var lastIdx = -1;\n switch(rowState){\n case 0:\n lastIdx = chunk.charCodeAt(i++);\n 58 === lastIdx ? rowState = 1 : rowID = rowID << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 1:\n rowState = chunk.charCodeAt(i);\n 84 === rowState || 65 === rowState || 79 === rowState || 111 === rowState || 85 === rowState || 83 === rowState || 115 === rowState || 76 === rowState || 108 === rowState || 71 === rowState || 103 === rowState || 77 === rowState || 109 === rowState || 86 === rowState ? (rowTag = rowState, rowState = 2, i++) : 64 < rowState && 91 > rowState || 114 === rowState || 120 === rowState ? (rowTag = rowState, rowState = 3, i++) : (rowTag = 0, rowState = 3);\n continue;\n case 2:\n lastIdx = chunk.charCodeAt(i++);\n 44 === lastIdx ? rowState = 4 : rowLength = rowLength << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 3:\n lastIdx = chunk.indexOf(\"\\n\", i);\n break;\n case 4:\n if (84 !== rowTag) throw Error(\"Binary RSC chunks cannot be encoded as strings. This is a bug in the wiring of the React streams.\");\n if (rowLength < chunk.length || chunk.length > 3 * rowLength) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n lastIdx = chunk.length;\n }\n if (-1 < lastIdx) {\n if (0 < buffer.length) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n i = chunk.slice(i, lastIdx);\n processFullStringRow(response, rowID, rowTag, i);\n i = lastIdx;\n 3 === rowState && i++;\n rowLength = rowID = rowTag = rowState = 0;\n buffer.length = 0;\n } else if (chunk.length !== i) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n }\n streamState._rowState = rowState;\n streamState._rowID = rowID;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n }\n } else processBinaryChunk(response$jscomp$0, streamState, chunk);\n });\n stream.on(\"error\", function(error) {\n reportGlobalError(response$jscomp$0, error);\n });\n stream.on(\"end\", function() {\n return close(response$jscomp$0);\n });\n return getRoot(response$jscomp$0);\n };\n exports.createFromReadableStream = function(stream, options) {\n options = createResponseFromOptions(options);\n startReadingFromStream(options, stream);\n return getRoot(options);\n };\n exports.createServerReference = function(id) {\n return createServerReference$1(id, noServerCall$1);\n };\n exports.createTemporaryReferenceSet = function() {\n return new Map();\n };\n exports.encodeReply = function(value, options) {\n return new Promise(function(resolve, reject) {\n var abort = processReply(value, \"\", options && options.temporaryReferences ? options.temporaryReferences : void 0, resolve, reject);\n if (options && options.signal) {\n var signal = options.signal;\n if (signal.aborted) abort(signal.reason);\n else {\n var listener = function() {\n abort(signal.reason);\n signal.removeEventListener(\"abort\", listener);\n };\n signal.addEventListener(\"abort\", listener);\n }\n }\n });\n };\n exports.registerServerReference = function(reference, id, encodeFormAction) {\n registerBoundServerReference(reference, id, null, encodeFormAction);\n return reference;\n };\n}();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztDQVFDLEdBRVk7QUFDYixLQThGbUIsSUE3RmpCO0lBQ0UsU0FBU0EsdUJBQXVCQyxhQUFhLEVBQUVDLFFBQVE7UUFDckQsSUFBSUQsZUFBZTtZQUNqQixJQUFJRSxnQkFBZ0JGLGFBQWEsQ0FBQ0MsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFLRCxnQkFBZ0JFLGlCQUFpQkEsYUFBYSxDQUFDRCxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQzlEQyxnQkFBZ0JGLGNBQWNHLElBQUk7aUJBQy9CO2dCQUNISCxnQkFBZ0JFLGlCQUFpQkEsYUFBYSxDQUFDLElBQUk7Z0JBQ25ELElBQUksQ0FBQ0YsZUFDSCxNQUFNSSxNQUNKLGdDQUNFSCxRQUFRLENBQUMsRUFBRSxHQUNYO2dCQUVOQyxnQkFBZ0JELFFBQVEsQ0FBQyxFQUFFO1lBQzdCO1lBQ0EsT0FBTyxNQUFNQSxTQUFTSSxNQUFNLEdBQ3hCO2dCQUFDTCxjQUFjTSxFQUFFO2dCQUFFTixjQUFjTyxNQUFNO2dCQUFFTDtnQkFBZTthQUFFLEdBQzFEO2dCQUFDRixjQUFjTSxFQUFFO2dCQUFFTixjQUFjTyxNQUFNO2dCQUFFTDthQUFjO1FBQzdEO1FBQ0EsT0FBT0Q7SUFDVDtJQUNBLFNBQVNPLHVCQUF1QlIsYUFBYSxFQUFFTSxFQUFFO1FBQy9DLElBQUlILE9BQU8sSUFDVE0scUJBQXFCVCxhQUFhLENBQUNNLEdBQUc7UUFDeEMsSUFBSUcsb0JBQW9CTixPQUFPTSxtQkFBbUJOLElBQUk7YUFDakQ7WUFDSCxJQUFJTyxNQUFNSixHQUFHSyxXQUFXLENBQUM7WUFDekIsQ0FBQyxNQUFNRCxPQUNKLFFBQVFKLEdBQUdNLEtBQUssQ0FBQ0YsTUFBTSxJ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YXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2Nqcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50Lm5vZGUuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblwicHJvZHVjdGlvblwiICE9PSBwcm9jZXNzLmVudi5OT0RFX0VOViAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIHJlc29sdmVDbGllbnRSZWZlcmVuY2UoYnVuZGxlckNvbmZpZywgbWV0YWRhdGEpIHtcbiAgICAgIGlmIChidW5kbGVyQ29uZmlnKSB7XG4gICAgICAgIHZhciBtb2R1bGVFeHBvcnRzID0gYnVuZGxlckNvbmZpZ1ttZXRhZGF0YVswXV07XG4gICAgICAgIGlmICgoYnVuZGxlckNvbmZpZyA9IG1vZHVsZUV4cG9ydHMgJiYgbW9kdWxlRXhwb3J0c1ttZXRhZGF0YVsyXV0pKVxuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBidW5kbGVyQ29uZmlnLm5hbWU7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGJ1bmRsZXJDb25maWcgPSBtb2R1bGVFeHBvcnRzICYmIG1vZHVsZUV4cG9ydHNbXCIqXCJdO1xuICAgICAgICAgIGlmICghYnVuZGxlckNvbmZpZylcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgdGhlIG1vZHVsZSBcIicgK1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhWzBdICtcbiAgICAgICAgICAgICAgICAnXCIgaW4gdGhlIFJlYWN0IFNlcnZlciBDb25zdW1lciBNYW5pZmVzdC4gVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBpbiB0aGUgUmVhY3QgU2VydmVyIENvbXBvbmVudHMgYnVuZGxlci4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBtZXRhZGF0YVsyXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gNCA9PT0gbWV0YWRhdGEubGVuZ3RoXG4gICAgICAgICAgPyBbYnVuZGxlckNvbmZpZy5pZCwgYnVuZGxlckNvbmZpZy5jaHVua3MsIG1vZHVsZUV4cG9ydHMsIDFdXG4gICAgICAgICAgOiBbYnVuZGxlckNvbmZpZy5pZCwgYnVuZGxlckNvbmZpZy5jaHVua3MsIG1vZHVsZUV4cG9ydHNdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1ldGFkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlU2VydmVyUmVmZXJlbmNlKGJ1bmRsZXJDb25maWcsIGlkKSB7XG4gICAgICB2YXIgbmFtZSA9IFwiXCIsXG4gICAgICAgIHJlc29sdmVkTW9kdWxlRGF0YSA9IGJ1bmRsZXJDb25maWdbaWRdO1xuICAgICAgaWYgKHJlc29sdmVkTW9kdWxlRGF0YSkgbmFtZSA9IHJlc29sdmVkTW9kdWxlRGF0YS5uYW1lO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBpZHggPSBpZC5sYXN0SW5kZXhPZihcIiNcIik7XG4gICAgICAgIC0xICE9PSBpZHggJiZcbiAgICAgICAgICAoKG5hbWUgPSBpZC5zbGljZShpZHggKyAxKSksXG4gICAgICAgICAgKHJlc29sdmVkTW9kdWxlRGF0YSA9IGJ1bmRsZXJDb25maWdbaWQuc2xpY2UoMCwgaWR4KV0pKTtcbiAgICAgICAgaWYgKCFyZXNvbHZlZE1vZHVsZURhdGEpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgdGhlIG1vZHVsZSBcIicgK1xuICAgICAgICAgICAgICBpZCArXG4gICAgICAgICAgICAgICdcIiBpbiB0aGUgUmVhY3QgU2VydmVyIE1hbmlmZXN0LiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIHRoZSBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBidW5kbGVyLidcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVkTW9kdWxlRGF0YS5hc3luY1xuICAgICAgICA/IFtyZXNvbHZlZE1vZHVsZURhdGEuaWQsIHJlc29sdmVkTW9kdWxlRGF0YS5jaHVua3MsIG5hbWUsIDFdXG4gICAgICAgIDogW3Jlc29sdmVkTW9kdWxlRGF0YS5pZCwgcmVzb2x2ZWRNb2R1bGVEYXRhLmNodW5rcywgbmFtZV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVpcmVBc3luY01vZHVsZShpZCkge1xuICAgICAgdmFyIHByb21pc2UgPSBnbG9iYWxUaGlzLl9fbmV4dF9yZXF1aXJlX18oaWQpO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHByb21pc2UudGhlbiB8fCBcImZ1bGZpbGxlZFwiID09PSBwcm9taXNlLnN0YXR1cylcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBwcm9taXNlLnRoZW4oXG4gICAgICAgIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgICBwcm9taXNlLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgICBwcm9taXNlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcbiAgICAgICAgICBwcm9taXNlLnJlYXNvbiA9IHJlYXNvbjtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpZ25vcmVSZWplY3QoKSB7fVxuICAgIGZ1bmN0aW9uIHByZWxvYWRNb2R1bGUobWV0YWRhdGEpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBjaHVua3MgPSBtZXRhZGF0YVsxXSwgcHJvbWlzZXMgPSBbXSwgaSA9IDA7XG4gICAgICAgIGkgPCBjaHVua3MubGVuZ3RoO1xuXG4gICAgICApIHtcbiAgICAgICAgdmFyIGNodW5rSWQgPSBjaHVua3NbaSsrXTtcbiAgICAgICAgY2h1bmtzW2krK107XG4gICAgICAgIHZhciBlbnRyeSA9IGNodW5rQ2FjaGUuZ2V0KGNodW5rSWQpO1xuICAgICAgICBpZiAodm9pZCAwID09PSBlbnRyeSkge1xuICAgICAgICAgIGVudHJ5ID0gX193ZWJwYWNrX2NodW5rX2xvYWRfXyhjaHVua0lkKTtcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKGVudHJ5KTtcbiAgICAgICAgICB2YXIgcmVzb2x2ZSA9IGNodW5rQ2FjaGUuc2V0LmJpbmQoY2h1bmtDYWNoZSwgY2h1bmtJZCwgbnVsbCk7XG4gICAgICAgICAgZW50cnkudGhlbihyZXNvbHZlLCBpZ25vcmVSZWplY3QpO1xuICAgICAgICAgIGNodW5rQ2FjaGUuc2V0KGNodW5rSWQsIGVudHJ5KTtcbiAgICAgICAgfSBlbHNlIG51bGwgIT09IGVudHJ5ICYmIHByb21pc2VzLnB1c2goZW50cnkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDQgPT09IG1ldGFkYXRhLmxlbmd0aFxuICAgICAgICA/IDAgPT09IHByb21pc2VzLmxlbmd0aFxuICAgICAgICAgID8gcmVxdWlyZUFzeW5jTW9kdWxlKG1ldGFkYXRhWzBdKVxuICAgICAgICAgIDogUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVxdWlyZUFzeW5jTW9kdWxlKG1ldGFkYXRhWzBdKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIDogMCA8IHByb21pc2VzLmxlbmd0aFxuICAgICAgICAgID8gUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXF1aXJlTW9kdWxlKG1ldGFkYXRhKSB7XG4gICAgICB2YXIgbW9kdWxlRXhwb3J0cyA9IGdsb2JhbFRoaXMuX19uZXh0X3JlcXVpcmVfXyhtZXRhZGF0YVswXSk7XG4gICAgICBpZiAoNCA9PT0gbWV0YWRhdGEubGVuZ3RoICYmIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG1vZHVsZUV4cG9ydHMudGhlbilcbiAgICAgICAgaWYgKFwiZnVsZmlsbGVkXCIgPT09IG1vZHVsZUV4cG9ydHMuc3RhdHVzKVxuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBtb2R1bGVFeHBvcnRzLnZhbHVlO1xuICAgICAgICBlbHNlIHRocm93IG1vZHVsZUV4cG9ydHMucmVhc29uO1xuICAgICAgcmV0dXJuIFwiKlwiID09PSBtZXRhZGF0YVsyXVxuICAgICAgICA/IG1vZHVsZUV4cG9ydHNcbiAgICAgICAgOiBcIlwiID09PSBtZXRhZGF0YVsyXVxuICAgICAgICAgID8gbW9kdWxlRXhwb3J0cy5fX2VzTW9kdWxlXG4gICAgICAgICAgICA/IG1vZHVsZUV4cG9ydHMuZGVmYXVsdFxuICAgICAgICAgICAgOiBtb2R1bGVFeHBvcnRzXG4gICAgICAgICAgOiBtb2R1bGVFeHBvcnRzW21ldGFkYXRhWzJdXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlcGFyZURlc3RpbmF0aW9uV2l0aENodW5rcyhcbiAgICAgIG1vZHVsZUxvYWRpbmcsXG4gICAgICBjaHVua3MsXG4gICAgICBub25jZSRqc2NvbXAkMFxuICAgICkge1xuICAgICAgaWYgKG51bGwgIT09IG1vZHVsZUxvYWRpbmcpXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgY2h1bmtzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgICAgdmFyIG5vbmNlID0gbm9uY2UkanNjb21wJDAsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5kLFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQwID0gSlNDb21waWxlcl90ZW1wX2NvbnN0LlgsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QkanNjb21wJDEgPSBtb2R1bGVMb2FkaW5nLnByZWZpeCArIGNodW5rc1tpXTtcbiAgICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gbW9kdWxlTG9hZGluZy5jcm9zc09yaWdpbjtcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPVxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgICAgICA/IFwidXNlLWNyZWRlbnRpYWxzXCIgPT09IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgICAgICAgID8gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0XG4gICAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgICAgIDogdm9pZCAwO1xuICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdCRqc2NvbXAkMC5jYWxsKFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0LFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQxLFxuICAgICAgICAgICAgeyBjcm9zc09yaWdpbjogSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LCBub25jZTogbm9uY2UgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgICBpZiAobnVsbCA9PT0gbWF5YmVJdGVyYWJsZSB8fCBcIm9iamVjdFwiICE9PSB0eXBlb2YgbWF5YmVJdGVyYWJsZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBtYXliZUl0ZXJhYmxlID1cbiAgICAgICAgKE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0pIHx8XG4gICAgICAgIG1heWJlSXRlcmFibGVbXCJAQGl0ZXJhdG9yXCJdO1xuICAgICAgcmV0dXJuIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG1heWJlSXRlcmFibGUgPyBtYXliZUl0ZXJhYmxlIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNPYmplY3RQcm90b3R5cGUob2JqZWN0KSB7XG4gICAgICBpZiAoIW9iamVjdCkgcmV0dXJuICExO1xuICAgICAgdmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG4gICAgICBpZiAob2JqZWN0ID09PSBPYmplY3RQcm90b3R5cGUpIHJldHVybiAhMDtcbiAgICAgIGlmIChnZXRQcm90b3R5cGVPZihvYmplY3QpKSByZXR1cm4gITE7XG4gICAgICBvYmplY3QgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspXG4gICAgICAgIGlmICghKG9iamVjdFtpXSBpbiBPYmplY3RQcm90b3R5cGUpKSByZXR1cm4gITE7XG4gICAgICByZXR1cm4gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU2ltcGxlT2JqZWN0KG9iamVjdCkge1xuICAgICAgaWYgKCFpc09iamVjdFByb3RvdHlwZShnZXRQcm90b3R5cGVPZihvYmplY3QpKSkgcmV0dXJuICExO1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIG5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSwgaSA9IDA7XG4gICAgICAgIGkgPCBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGkrK1xuICAgICAgKSB7XG4gICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIG5hbWVzW2ldKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFkZXNjcmlwdG9yIHx8XG4gICAgICAgICAgKCFkZXNjcmlwdG9yLmVudW1lcmFibGUgJiZcbiAgICAgICAgICAgICgoXCJrZXlcIiAhPT0gbmFtZXNbaV0gJiYgXCJyZWZcIiAhPT0gbmFtZXNbaV0pIHx8XG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGRlc2NyaXB0b3IuZ2V0KSlcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2JqZWN0TmFtZShvYmplY3QpIHtcbiAgICAgIG9iamVjdCA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xuICAgICAgcmV0dXJuIG9iamVjdC5zbGljZSg4LCBvYmplY3QubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlKGtleSkge1xuICAgICAgdmFyIGVuY29kZWRLZXkgPSBKU09OLnN0cmluZ2lmeShrZXkpO1xuICAgICAgcmV0dXJuICdcIicgKyBrZXkgKyAnXCInID09PSBlbmNvZGVkS2V5ID8ga2V5IDogZW5jb2RlZEtleTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZSh2YWx1ZSkge1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIDEwID49IHZhbHVlLmxlbmd0aCA/IHZhbHVlIDogdmFsdWUuc2xpY2UoMCwgMTApICsgXCIuLi5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICBpZiAoaXNBcnJheUltcGwodmFsdWUpKSByZXR1cm4gXCJbLi4uXVwiO1xuICAgICAgICAgIGlmIChudWxsICE9PSB2YWx1ZSAmJiB2YWx1ZS4kJHR5cGVvZiA9PT0gQ0xJRU5UX1JFRkVSRU5DRV9UQUcpXG4gICAgICAgICAgICByZXR1cm4gXCJjbGllbnRcIjtcbiAgICAgICAgICB2YWx1ZSA9IG9iamVjdE5hbWUodmFsdWUpO1xuICAgICAgICAgIHJldHVybiBcIk9iamVjdFwiID09PSB2YWx1ZSA/IFwiey4uLn1cIiA6IHZhbHVlO1xuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICByZXR1cm4gdmFsdWUuJCR0eXBlb2YgPT09IENMSUVOVF9SRUZFUkVOQ0VfVEFHXG4gICAgICAgICAgICA/IFwiY2xpZW50XCJcbiAgICAgICAgICAgIDogKHZhbHVlID0gdmFsdWUuZGlzcGxheU5hbWUgfHwgdmFsdWUubmFtZSlcbiAgICAgICAgICAgICAgPyBcImZ1bmN0aW9uIFwiICsgdmFsdWVcbiAgICAgICAgICAgICAgOiBcImZ1bmN0aW9uXCI7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZSkge1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VMaXN0XCI7XG4gICAgICB9XG4gICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUucmVuZGVyKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUudHlwZSk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICB2YXIgcGF5bG9hZCA9IHR5cGUuX3BheWxvYWQ7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUocGF5bG9hZCkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKG9iamVjdE9yQXJyYXksIGV4cGFuZGVkTmFtZSkge1xuICAgICAgdmFyIG9iaktpbmQgPSBvYmplY3ROYW1lKG9iamVjdE9yQXJyYXkpO1xuICAgICAgaWYgKFwiT2JqZWN0XCIgIT09IG9iaktpbmQgJiYgXCJBcnJheVwiICE9PSBvYmpLaW5kKSByZXR1cm4gb2JqS2luZDtcbiAgICAgIHZhciBzdGFydCA9IC0xLFxuICAgICAgICBsZW5ndGggPSAwO1xuICAgICAgaWYgKGlzQXJyYXlJbXBsKG9iamVjdE9yQXJyYXkpKVxuICAgICAgICBpZiAoanN4Q2hpbGRyZW5QYXJlbnRzLmhhcyhvYmplY3RPckFycmF5KSkge1xuICAgICAgICAgIHZhciB0eXBlID0ganN4Q2hpbGRyZW5QYXJlbnRzLmdldChvYmplY3RPckFycmF5KTtcbiAgICAgICAgICBvYmpLaW5kID0gXCI8XCIgKyBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUpICsgXCI+XCI7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RPckFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3RPckFycmF5W2ldO1xuICAgICAgICAgICAgdmFsdWUgPVxuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgOiBcIm9iamVjdFwiID09PSB0eXBlb2YgdmFsdWUgJiYgbnVsbCAhPT0gdmFsdWVcbiAgICAgICAgICAgICAgICAgID8gXCJ7XCIgKyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh2YWx1ZSkgKyBcIn1cIlxuICAgICAgICAgICAgICAgICAgOiBcIntcIiArIGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UodmFsdWUpICsgXCJ9XCI7XG4gICAgICAgICAgICBcIlwiICsgaSA9PT0gZXhwYW5kZWROYW1lXG4gICAgICAgICAgICAgID8gKChzdGFydCA9IG9iaktpbmQubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAobGVuZ3RoID0gdmFsdWUubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAob2JqS2luZCArPSB2YWx1ZSkpXG4gICAgICAgICAgICAgIDogKG9iaktpbmQgPVxuICAgICAgICAgICAgICAgICAgMTUgPiB2YWx1ZS5sZW5ndGggJiYgNDAgPiBvYmpLaW5kLmxlbmd0aCArIHZhbHVlLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IG9iaktpbmQgKyB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IG9iaktpbmQgKyBcInsuLi59XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvYmpLaW5kICs9IFwiPC9cIiArIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZSkgKyBcIj5cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmpLaW5kID0gXCJbXCI7XG4gICAgICAgICAgZm9yICh0eXBlID0gMDsgdHlwZSA8IG9iamVjdE9yQXJyYXkubGVuZ3RoOyB0eXBlKyspXG4gICAgICAgICAgICAwIDwgdHlwZSAmJiAob2JqS2luZCArPSBcIiwgXCIpLFxuICAgICAgICAgICAgICAoaSA9IG9iamVjdE9yQXJyYXlbdHlwZV0pLFxuICAgICAgICAgICAgICAoaSA9XG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGkgJiYgbnVsbCAhPT0gaVxuICAgICAgICAgICAgICAgICAgPyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShpKVxuICAgICAgICAgICAgICAgICAgOiBkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlKGkpKSxcbiAgICAgICAgICAgICAgXCJcIiArIHR5cGUgPT09IGV4cGFuZGVkTmFtZVxuICAgICAgICAgICAgICAgID8gKChzdGFydCA9IG9iaktpbmQubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIChsZW5ndGggPSBpLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAob2JqS2luZCArPSBpKSlcbiAgICAgICAgICAgICAgICA6IChvYmpLaW5kID1cbiAgICAgICAgICAgICAgICAgICAgMTAgPiBpLmxlbmd0aCAmJiA0MCA+IG9iaktpbmQubGVuZ3RoICsgaS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICA/IG9iaktpbmQgKyBpXG4gICAgICAgICAgICAgICAgICAgICAgOiBvYmpLaW5kICsgXCIuLi5cIik7XG4gICAgICAgICAgb2JqS2luZCArPSBcIl1cIjtcbiAgICAgICAgfVxuICAgICAgZWxzZSBpZiAob2JqZWN0T3JBcnJheS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKVxuICAgICAgICBvYmpLaW5kID0gXCI8XCIgKyBkZXNjcmliZUVsZW1lbnRUeXBlKG9iamVjdE9yQXJyYXkudHlwZSkgKyBcIi8+XCI7XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKG9iamVjdE9yQXJyYXkuJCR0eXBlb2YgPT09IENMSUVOVF9SRUZFUkVOQ0VfVEFHKSByZXR1cm4gXCJjbGllbnRcIjtcbiAgICAgICAgaWYgKGpzeFByb3BzUGFyZW50cy5oYXMob2JqZWN0T3JBcnJheSkpIHtcbiAgICAgICAgICBvYmpLaW5kID0ganN4UHJvcHNQYXJlbnRzLmdldChvYmplY3RPckFycmF5KTtcbiAgICAgICAgICBvYmpLaW5kID0gXCI8XCIgKyAoZGVzY3JpYmVFbGVtZW50VHlwZShvYmpLaW5kKSB8fCBcIi4uLlwiKTtcbiAgICAgICAgICB0eXBlID0gT2JqZWN0LmtleXMob2JqZWN0T3JBcnJheSk7XG4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHR5cGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIG9iaktpbmQgKz0gXCIgXCI7XG4gICAgICAgICAgICB2YWx1ZSA9IHR5cGVbaV07XG4gICAgICAgICAgICBvYmpLaW5kICs9IGRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlKHZhbHVlKSArIFwiPVwiO1xuICAgICAgICAgICAgdmFyIF92YWx1ZTIgPSBvYmplY3RPckFycmF5W3ZhbHVlXTtcbiAgICAgICAgICAgIHZhciBfc3Vic3RyMiA9XG4gICAgICAgICAgICAgIHZhbHVlID09PSBleHBhbmRlZE5hbWUgJiZcbiAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIF92YWx1ZTIgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gX3ZhbHVlMlxuICAgICAgICAgICAgICAgID8gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMilcbiAgICAgICAgICAgICAgICA6IGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMik7XG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgX3ZhbHVlMiAmJiAoX3N1YnN0cjIgPSBcIntcIiArIF9zdWJzdHIyICsgXCJ9XCIpO1xuICAgICAgICAgICAgdmFsdWUgPT09IGV4cGFuZGVkTmFtZVxuICAgICAgICAgICAgICA/ICgoc3RhcnQgPSBvYmpLaW5kLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgKGxlbmd0aCA9IF9zdWJzdHIyLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgKG9iaktpbmQgKz0gX3N1YnN0cjIpKVxuICAgICAgICAgICAgICA6IChvYmpLaW5kID1cbiAgICAgICAgICAgICAgICAgIDEwID4gX3N1YnN0cjIubGVuZ3RoICYmIDQwID4gb2JqS2luZC5sZW5ndGggKyBfc3Vic3RyMi5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyBvYmpLaW5kICsgX3N1YnN0cjJcbiAgICAgICAgICAgICAgICAgICAgOiBvYmpLaW5kICsgXCIuLi5cIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iaktpbmQgKz0gXCI+XCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JqS2luZCA9IFwie1wiO1xuICAgICAgICAgIHR5cGUgPSBPYmplY3Qua2V5cyhvYmplY3RPckFycmF5KTtcbiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdHlwZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIDAgPCBpICYmIChvYmpLaW5kICs9IFwiLCBcIiksXG4gICAgICAgICAgICAgICh2YWx1ZSA9IHR5cGVbaV0pLFxuICAgICAgICAgICAgICAob2JqS2luZCArPSBkZXNjcmliZUtleUZvckVycm9yTWVzc2FnZSh2YWx1ZSkgKyBcIjogXCIpLFxuICAgICAgICAgICAgICAoX3ZhbHVlMiA9IG9iamVjdE9yQXJyYXlbdmFsdWVdKSxcbiAgICAgICAgICAgICAgKF92YWx1ZTIgPVxuICAgICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBfdmFsdWUyICYmIG51bGwgIT09IF92YWx1ZTJcbiAgICAgICAgICAgICAgICAgID8gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMilcbiAgICAgICAgICAgICAgICAgIDogZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZShfdmFsdWUyKSksXG4gICAgICAgICAgICAgIHZhbHVlID09PSBleHBhbmRlZE5hbWVcbiAgICAgICAgICAgICAgICA/ICgoc3RhcnQgPSBvYmpLaW5kLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAobGVuZ3RoID0gX3ZhbHVlMi5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgKG9iaktpbmQgKz0gX3ZhbHVlMikpXG4gICAgICAgICAgICAgICAgOiAob2JqS2luZCA9XG4gICAgICAgICAgICAgICAgICAgIDEwID4gX3ZhbHVlMi5sZW5ndGggJiYgNDAgPiBvYmpLaW5kLmxlbmd0aCArIF92YWx1ZTIubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgPyBvYmpLaW5kICsgX3ZhbHVlMlxuICAgICAgICAgICAgICAgICAgICAgIDogb2JqS2luZCArIFwiLi4uXCIpO1xuICAgICAgICAgIG9iaktpbmQgKz0gXCJ9XCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2b2lkIDAgPT09IGV4cGFuZGVkTmFtZVxuICAgICAgICA/IG9iaktpbmRcbiAgICAgICAgOiAtMSA8IHN0YXJ0ICYmIDAgPCBsZW5ndGhcbiAgICAgICAgICA/ICgob2JqZWN0T3JBcnJheSA9IFwiIFwiLnJlcGVhdChzdGFydCkgKyBcIl5cIi5yZXBlYXQobGVuZ3RoKSksXG4gICAgICAgICAgICBcIlxcbiAgXCIgKyBvYmpLaW5kICsgXCJcXG4gIFwiICsgb2JqZWN0T3JBcnJheSlcbiAgICAgICAgICA6IFwiXFxuICBcIiArIG9iaktpbmQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZU51bWJlcihudW1iZXIpIHtcbiAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobnVtYmVyKVxuICAgICAgICA/IDAgPT09IG51bWJlciAmJiAtSW5maW5pdHkgPT09IDEgLyBudW1iZXJcbiAgICAgICAgICA/IFwiJC0wXCJcbiAgICAgICAgICA6IG51bWJlclxuICAgICAgICA6IEluZmluaXR5ID09PSBudW1iZXJcbiAgICAgICAgICA/IFwiJEluZmluaXR5XCJcbiAgICAgICAgICA6IC1JbmZpbml0eSA9PT0gbnVtYmVyXG4gICAgICAgICAgICA/IFwiJC1JbmZpbml0eVwiXG4gICAgICAgICAgICA6IFwiJE5hTlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVwbHkoXG4gICAgICByb290LFxuICAgICAgZm9ybUZpZWxkUHJlZml4LFxuICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcyxcbiAgICAgIHJlc29sdmUsXG4gICAgICByZWplY3RcbiAgICApIHtcbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZVR5cGVkQXJyYXkodGFnLCB0eXBlZEFycmF5KSB7XG4gICAgICAgIHR5cGVkQXJyYXkgPSBuZXcgQmxvYihbXG4gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoXG4gICAgICAgICAgICB0eXBlZEFycmF5LmJ1ZmZlcixcbiAgICAgICAgICAgIHR5cGVkQXJyYXkuYnl0ZU9mZnNldCxcbiAgICAgICAgICAgIHR5cGVkQXJyYXkuYnl0ZUxlbmd0aFxuICAgICAgICAgIClcbiAgICAgICAgXSk7XG4gICAgICAgIHZhciBibG9iSWQgPSBuZXh0UGFydElkKys7XG4gICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGJsb2JJZCwgdHlwZWRBcnJheSk7XG4gICAgICAgIHJldHVybiBcIiRcIiArIHRhZyArIGJsb2JJZC50b1N0cmluZygxNik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzZXJpYWxpemVCaW5hcnlSZWFkZXIocmVhZGVyKSB7XG4gICAgICAgIGZ1bmN0aW9uIHByb2dyZXNzKGVudHJ5KSB7XG4gICAgICAgICAgZW50cnkuZG9uZVxuICAgICAgICAgICAgPyAoKGVudHJ5ID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgZW50cnksIG5ldyBCbG9iKGJ1ZmZlcikpLFxuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChcbiAgICAgICAgICAgICAgICBmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCxcbiAgICAgICAgICAgICAgICAnXCIkbycgKyBlbnRyeS50b1N0cmluZygxNikgKyAnXCInXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBcIkNcIiksXG4gICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tLFxuICAgICAgICAgICAgICAwID09PSBwZW5kaW5nUGFydHMgJiYgcmVzb2x2ZShkYXRhKSlcbiAgICAgICAgICAgIDogKGJ1ZmZlci5wdXNoKGVudHJ5LnZhbHVlKSxcbiAgICAgICAgICAgICAgcmVhZGVyLnJlYWQobmV3IFVpbnQ4QXJyYXkoMTAyNCkpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCkpO1xuICAgICAgICB9XG4gICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgdmFyIGRhdGEgPSBmb3JtRGF0YTtcbiAgICAgICAgcGVuZGluZ1BhcnRzKys7XG4gICAgICAgIHZhciBzdHJlYW1JZCA9IG5leHRQYXJ0SWQrKyxcbiAgICAgICAgICBidWZmZXIgPSBbXTtcbiAgICAgICAgcmVhZGVyLnJlYWQobmV3IFVpbnQ4QXJyYXkoMTAyNCkpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgIHJldHVybiBcIiRyXCIgKyBzdHJlYW1JZC50b1N0cmluZygxNik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzZXJpYWxpemVSZWFkZXIocmVhZGVyKSB7XG4gICAgICAgIGZ1bmN0aW9uIHByb2dyZXNzKGVudHJ5KSB7XG4gICAgICAgICAgaWYgKGVudHJ5LmRvbmUpXG4gICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgXCJDXCIpLFxuICAgICAgICAgICAgICBwZW5kaW5nUGFydHMtLSxcbiAgICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdmFyIHBhcnRKU09OID0gSlNPTi5zdHJpbmdpZnkoZW50cnkudmFsdWUsIHJlc29sdmVUb0pTT04pO1xuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgcGFydEpTT04pO1xuICAgICAgICAgICAgICByZWFkZXIucmVhZCgpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIHJlamVjdCh4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgIHZhciBkYXRhID0gZm9ybURhdGE7XG4gICAgICAgIHBlbmRpbmdQYXJ0cysrO1xuICAgICAgICB2YXIgc3RyZWFtSWQgPSBuZXh0UGFydElkKys7XG4gICAgICAgIHJlYWRlci5yZWFkKCkudGhlbihwcm9ncmVzcywgcmVqZWN0KTtcbiAgICAgICAgcmV0dXJuIFwiJFJcIiArIHN0cmVhbUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZVJlYWRhYmxlU3RyZWFtKHN0cmVhbSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBiaW5hcnlSZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKHsgbW9kZTogXCJieW9iXCIgfSk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICByZXR1cm4gc2VyaWFsaXplUmVhZGVyKHN0cmVhbS5nZXRSZWFkZXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUJpbmFyeVJlYWRlcihiaW5hcnlSZWFkZXIpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2VyaWFsaXplQXN5bmNJdGVyYWJsZShpdGVyYWJsZSwgaXRlcmF0b3IpIHtcbiAgICAgICAgZnVuY3Rpb24gcHJvZ3Jlc3MoZW50cnkpIHtcbiAgICAgICAgICBpZiAoZW50cnkuZG9uZSkge1xuICAgICAgICAgICAgaWYgKHZvaWQgMCA9PT0gZW50cnkudmFsdWUpXG4gICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBcIkNcIik7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFyIHBhcnRKU09OID0gSlNPTi5zdHJpbmdpZnkoZW50cnkudmFsdWUsIHJlc29sdmVUb0pTT04pO1xuICAgICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBcIkNcIiArIHBhcnRKU09OKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICAgIHJlamVjdCh4KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tO1xuICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgX3BhcnRKU09OID0gSlNPTi5zdHJpbmdpZnkoZW50cnkudmFsdWUsIHJlc29sdmVUb0pTT04pO1xuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgX3BhcnRKU09OKTtcbiAgICAgICAgICAgICAgaXRlcmF0b3IubmV4dCgpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgICAgICB9IGNhdGNoICh4JDApIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHgkMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICB2YXIgZGF0YSA9IGZvcm1EYXRhO1xuICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgdmFyIHN0cmVhbUlkID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICBpdGVyYWJsZSA9IGl0ZXJhYmxlID09PSBpdGVyYXRvcjtcbiAgICAgICAgaXRlcmF0b3IubmV4dCgpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgIHJldHVybiBcIiRcIiArIChpdGVyYWJsZSA/IFwieFwiIDogXCJYXCIpICsgc3RyZWFtSWQudG9TdHJpbmcoMTYpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcmVzb2x2ZVRvSlNPTihrZXksIHZhbHVlKSB7XG4gICAgICAgIHZhciBvcmlnaW5hbFZhbHVlID0gdGhpc1trZXldO1xuICAgICAgICBcIm9iamVjdFwiICE9PSB0eXBlb2Ygb3JpZ2luYWxWYWx1ZSB8fFxuICAgICAgICAgIG9yaWdpbmFsVmFsdWUgPT09IHZhbHVlIHx8XG4gICAgICAgICAgb3JpZ2luYWxWYWx1ZSBpbnN0YW5jZW9mIERhdGUgfHxcbiAgICAgICAgICAoXCJPYmplY3RcIiAhPT0gb2JqZWN0TmFtZShvcmlnaW5hbFZhbHVlKVxuICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuICVzIG9iamVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQuJXNcIixcbiAgICAgICAgICAgICAgICBvYmplY3ROYW1lKG9yaWdpbmFsVmFsdWUpLFxuICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuIE9iamVjdHMgd2l0aCB0b0pTT04gbWV0aG9kcyBhcmUgbm90IHN1cHBvcnRlZC4gQ29udmVydCBpdCBtYW51YWxseSB0byBhIHNpbXBsZSB2YWx1ZSBiZWZvcmUgcGFzc2luZyBpdCB0byBwcm9wcy4lc1wiLFxuICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBzd2l0Y2ggKHZhbHVlLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gdGVtcG9yYXJ5UmVmZXJlbmNlcyAmJiAtMSA9PT0ga2V5LmluZGV4T2YoXCI6XCIpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudFJlZmVyZW5jZSA9IHdyaXR0ZW5PYmplY3RzLmdldCh0aGlzKTtcbiAgICAgICAgICAgICAgICBpZiAodm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzLnNldChwYXJlbnRSZWZlcmVuY2UgKyBcIjpcIiArIGtleSwgdmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICBcIiRUXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJSZWFjdCBFbGVtZW50IGNhbm5vdCBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQgd2l0aG91dCBhIHRlbXBvcmFyeSByZWZlcmVuY2Ugc2V0LiBQYXNzIGEgVGVtcG9yYXJ5UmVmZXJlbmNlU2V0IHRvIHRoZSBvcHRpb25zLlwiICtcbiAgICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgICBvcmlnaW5hbFZhbHVlID0gdmFsdWUuX3BheWxvYWQ7XG4gICAgICAgICAgICAgIHZhciBpbml0ID0gdmFsdWUuX2luaXQ7XG4gICAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzKys7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gaW5pdChvcmlnaW5hbFZhbHVlKTtcbiAgICAgICAgICAgICAgICB2YXIgbGF6eUlkID0gbmV4dFBhcnRJZCsrLFxuICAgICAgICAgICAgICAgICAgcGFydEpTT04gPSBzZXJpYWxpemVNb2RlbChwYXJlbnRSZWZlcmVuY2UsIGxhenlJZCk7XG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGxhenlJZCwgcGFydEpTT04pO1xuICAgICAgICAgICAgICAgIHJldHVybiBcIiRcIiArIGxhenlJZC50b1N0cmluZygxNik7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgeCAmJlxuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0geCAmJlxuICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgeC50aGVuXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgICAgICAgICAgIHZhciBfbGF6eUlkID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgIHZhciBfcGFydEpTT04yID0gc2VyaWFsaXplTW9kZWwodmFsdWUsIF9sYXp5SWQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGEgPSBmb3JtRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICBfZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgX2xhenlJZCwgX3BhcnRKU09OMik7XG4gICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzLS07XG4gICAgICAgICAgICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoX2RhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChyZWFzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVhc29uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIHgudGhlbihwYXJlbnRSZWZlcmVuY2UsIHBhcmVudFJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gXCIkXCIgKyBfbGF6eUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVqZWN0KHgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB2YWx1ZS50aGVuKSB7XG4gICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgICAgIHZhciBwcm9taXNlSWQgPSBuZXh0UGFydElkKys7XG4gICAgICAgICAgICB2YWx1ZS50aGVuKGZ1bmN0aW9uIChwYXJ0VmFsdWUpIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB2YXIgX3BhcnRKU09OMyA9IHNlcmlhbGl6ZU1vZGVsKHBhcnRWYWx1ZSwgcHJvbWlzZUlkKTtcbiAgICAgICAgICAgICAgICBwYXJ0VmFsdWUgPSBmb3JtRGF0YTtcbiAgICAgICAgICAgICAgICBwYXJ0VmFsdWUuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHByb21pc2VJZCwgX3BhcnRKU09OMyk7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzLS07XG4gICAgICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUocGFydFZhbHVlKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAocmVhc29uKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHJlamVjdCk7XG4gICAgICAgICAgICByZXR1cm4gXCIkQFwiICsgcHJvbWlzZUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpZiAodm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICBpZiAobW9kZWxSb290ID09PSB2YWx1ZSkgbW9kZWxSb290ID0gbnVsbDtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHBhcmVudFJlZmVyZW5jZTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAtMSA9PT0ga2V5LmluZGV4T2YoXCI6XCIpICYmXG4gICAgICAgICAgICAgICgocGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHRoaXMpKSxcbiAgICAgICAgICAgICAgdm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UgJiZcbiAgICAgICAgICAgICAgICAoKHBhcmVudFJlZmVyZW5jZSA9IHBhcmVudFJlZmVyZW5jZSArIFwiOlwiICsga2V5KSxcbiAgICAgICAgICAgICAgICB3cml0dGVuT2JqZWN0cy5zZXQodmFsdWUsIHBhcmVudFJlZmVyZW5jZSksXG4gICAgICAgICAgICAgICAgdm9pZCAwICE9PSB0ZW1wb3JhcnlSZWZlcmVuY2VzICYmXG4gICAgICAgICAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzLnNldChwYXJlbnRSZWZlcmVuY2UsIHZhbHVlKSkpO1xuICAgICAgICAgIGlmIChpc0FycmF5SW1wbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICAgICAgdmFyIF9kYXRhMyA9IGZvcm1EYXRhO1xuICAgICAgICAgICAga2V5ID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICAgICAgdmFyIHByZWZpeCA9IGZvcm1GaWVsZFByZWZpeCArIGtleSArIFwiX1wiO1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbiAob3JpZ2luYWxWYWx1ZSwgb3JpZ2luYWxLZXkpIHtcbiAgICAgICAgICAgICAgX2RhdGEzLmFwcGVuZChwcmVmaXggKyBvcmlnaW5hbEtleSwgb3JpZ2luYWxWYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBcIiRLXCIgKyBrZXkudG9TdHJpbmcoMTYpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBNYXApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoa2V5ID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgKHBhcmVudFJlZmVyZW5jZSA9IHNlcmlhbGl6ZU1vZGVsKEFycmF5LmZyb20odmFsdWUpLCBrZXkpKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsga2V5LCBwYXJlbnRSZWZlcmVuY2UpLFxuICAgICAgICAgICAgICBcIiRRXCIgKyBrZXkudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNldClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChrZXkgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gc2VyaWFsaXplTW9kZWwoQXJyYXkuZnJvbSh2YWx1ZSksIGtleSkpLFxuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBrZXksIHBhcmVudFJlZmVyZW5jZSksXG4gICAgICAgICAgICAgIFwiJFdcIiArIGtleS50b1N0cmluZygxNilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoa2V5ID0gbmV3IEJsb2IoW3ZhbHVlXSkpLFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgcGFyZW50UmVmZXJlbmNlLCBrZXkpLFxuICAgICAgICAgICAgICBcIiRBXCIgKyBwYXJlbnRSZWZlcmVuY2UudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEludDhBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiT1wiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwib1wiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIlVcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEludDE2QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIlNcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJzXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBJbnQzMkFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJMXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50MzJBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwibFwiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJHXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcImdcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIk1cIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJtXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRhVmlldykgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJWXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgQmxvYiAmJiB2YWx1ZSBpbnN0YW5jZW9mIEJsb2IpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgIChrZXkgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsga2V5LCB2YWx1ZSksXG4gICAgICAgICAgICAgIFwiJEJcIiArIGtleS50b1N0cmluZygxNilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKChwYXJlbnRSZWZlcmVuY2UgPSBnZXRJdGVyYXRvckZuKHZhbHVlKSkpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gcGFyZW50UmVmZXJlbmNlLmNhbGwodmFsdWUpKSxcbiAgICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgID8gKChrZXkgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICAgICAgKHBhcmVudFJlZmVyZW5jZSA9IHNlcmlhbGl6ZU1vZGVsKFxuICAgICAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHBhcmVudFJlZmVyZW5jZSksXG4gICAgICAgICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsga2V5LCBwYXJlbnRSZWZlcmVuY2UpLFxuICAgICAgICAgICAgICAgICAgXCIkaVwiICsga2V5LnRvU3RyaW5nKDE2KSlcbiAgICAgICAgICAgICAgICA6IEFycmF5LmZyb20ocGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBSZWFkYWJsZVN0cmVhbSAmJlxuICAgICAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVSZWFkYWJsZVN0cmVhbSh2YWx1ZSk7XG4gICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gdmFsdWVbQVNZTkNfSVRFUkFUT1JdO1xuICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplQXN5bmNJdGVyYWJsZSh2YWx1ZSwgcGFyZW50UmVmZXJlbmNlLmNhbGwodmFsdWUpKTtcbiAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPSBnZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlICE9PSBPYmplY3RQcm90b3R5cGUgJiZcbiAgICAgICAgICAgIChudWxsID09PSBwYXJlbnRSZWZlcmVuY2UgfHxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gZ2V0UHJvdG90eXBlT2YocGFyZW50UmVmZXJlbmNlKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh2b2lkIDAgPT09IHRlbXBvcmFyeVJlZmVyZW5jZXMpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzLCBhbmQgYSBmZXcgYnVpbHQtaW5zLCBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMuIENsYXNzZXMgb3IgbnVsbCBwcm90b3R5cGVzIGFyZSBub3Qgc3VwcG9ydGVkLlwiICtcbiAgICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBcIiRUXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEVcbiAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlJlYWN0IENvbnRleHQgUHJvdmlkZXJzIGNhbm5vdCBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuJXNcIixcbiAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogXCJPYmplY3RcIiAhPT0gb2JqZWN0TmFtZSh2YWx1ZSlcbiAgICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4gJXMgb2JqZWN0cyBhcmUgbm90IHN1cHBvcnRlZC4lc1wiLFxuICAgICAgICAgICAgICAgICAgb2JqZWN0TmFtZSh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IGlzU2ltcGxlT2JqZWN0KHZhbHVlKVxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyAmJlxuICAgICAgICAgICAgICAgICAgKChwYXJlbnRSZWZlcmVuY2UgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICAwIDwgcGFyZW50UmVmZXJlbmNlLmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuIE9iamVjdHMgd2l0aCBzeW1ib2wgcHJvcGVydGllcyBsaWtlICVzIGFyZSBub3Qgc3VwcG9ydGVkLiVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlWzBdLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuIENsYXNzZXMgb3Igb3RoZXIgb2JqZWN0cyB3aXRoIG1ldGhvZHMgYXJlIG5vdCBzdXBwb3J0ZWQuJXNcIixcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGlmIChcIlpcIiA9PT0gdmFsdWVbdmFsdWUubGVuZ3RoIC0gMV0gJiYgdGhpc1trZXldIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBcIiREXCIgKyB2YWx1ZTtcbiAgICAgICAgICBrZXkgPSBcIiRcIiA9PT0gdmFsdWVbMF0gPyBcIiRcIiArIHZhbHVlIDogdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJib29sZWFuXCIgPT09IHR5cGVvZiB2YWx1ZSkgcmV0dXJuIHZhbHVlO1xuICAgICAgICBpZiAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHZhbHVlKSByZXR1cm4gc2VyaWFsaXplTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgaWYgKFwidW5kZWZpbmVkXCIgPT09IHR5cGVvZiB2YWx1ZSkgcmV0dXJuIFwiJHVuZGVmaW5lZFwiO1xuICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPSBrbm93blNlcnZlclJlZmVyZW5jZXMuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpZiAodm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoa2V5ID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgeyBpZDogcGFyZW50UmVmZXJlbmNlLmlkLCBib3VuZDogcGFyZW50UmVmZXJlbmNlLmJvdW5kIH0sXG4gICAgICAgICAgICAgICAgcmVzb2x2ZVRvSlNPTlxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgZm9ybURhdGEuc2V0KGZvcm1GaWVsZFByZWZpeCArIHBhcmVudFJlZmVyZW5jZSwga2V5KSxcbiAgICAgICAgICAgICAgXCIkRlwiICsgcGFyZW50UmVmZXJlbmNlLnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB2b2lkIDAgIT09IHRlbXBvcmFyeVJlZmVyZW5jZXMgJiZcbiAgICAgICAgICAgIC0xID09PSBrZXkuaW5kZXhPZihcIjpcIikgJiZcbiAgICAgICAgICAgICgocGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHRoaXMpKSxcbiAgICAgICAgICAgIHZvaWQgMCAhPT0gcGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXMuc2V0KHBhcmVudFJlZmVyZW5jZSArIFwiOlwiICsga2V5LCB2YWx1ZSksIFwiJFRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiQ2xpZW50IEZ1bmN0aW9ucyBjYW5ub3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIFNlcnZlciBGdW5jdGlvbnMuIE9ubHkgRnVuY3Rpb25zIHBhc3NlZCBmcm9tIHRoZSBTZXJ2ZXIgY2FuIGJlIHBhc3NlZCBiYWNrIGFnYWluLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJzeW1ib2xcIiA9PT0gdHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdm9pZCAwICE9PSB0ZW1wb3JhcnlSZWZlcmVuY2VzICYmXG4gICAgICAgICAgICAtMSA9PT0ga2V5LmluZGV4T2YoXCI6XCIpICYmXG4gICAgICAgICAgICAoKHBhcmVudFJlZmVyZW5jZSA9IHdyaXR0ZW5PYmplY3RzLmdldCh0aGlzKSksXG4gICAgICAgICAgICB2b2lkIDAgIT09IHBhcmVudFJlZmVyZW5jZSlcbiAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzLnNldChwYXJlbnRSZWZlcmVuY2UgKyBcIjpcIiArIGtleSwgdmFsdWUpLCBcIiRUXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlN5bWJvbHMgY2Fubm90IGJlIHBhc3NlZCB0byBhIFNlcnZlciBGdW5jdGlvbiB3aXRob3V0IGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQuIFBhc3MgYSBUZW1wb3JhcnlSZWZlcmVuY2VTZXQgdG8gdGhlIG9wdGlvbnMuXCIgK1xuICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJiaWdpbnRcIiA9PT0gdHlwZW9mIHZhbHVlKSByZXR1cm4gXCIkblwiICsgdmFsdWUudG9TdHJpbmcoMTApO1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIlR5cGUgXCIgK1xuICAgICAgICAgICAgdHlwZW9mIHZhbHVlICtcbiAgICAgICAgICAgIFwiIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYW4gYXJndW1lbnQgdG8gYSBTZXJ2ZXIgRnVuY3Rpb24uXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZU1vZGVsKG1vZGVsLCBpZCkge1xuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgbW9kZWwgJiZcbiAgICAgICAgICBudWxsICE9PSBtb2RlbCAmJlxuICAgICAgICAgICgoaWQgPSBcIiRcIiArIGlkLnRvU3RyaW5nKDE2KSksXG4gICAgICAgICAgd3JpdHRlbk9iamVjdHMuc2V0KG1vZGVsLCBpZCksXG4gICAgICAgICAgdm9pZCAwICE9PSB0ZW1wb3JhcnlSZWZlcmVuY2VzICYmIHRlbXBvcmFyeVJlZmVyZW5jZXMuc2V0KGlkLCBtb2RlbCkpO1xuICAgICAgICBtb2RlbFJvb3QgPSBtb2RlbDtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1vZGVsLCByZXNvbHZlVG9KU09OKTtcbiAgICAgIH1cbiAgICAgIHZhciBuZXh0UGFydElkID0gMSxcbiAgICAgICAgcGVuZGluZ1BhcnRzID0gMCxcbiAgICAgICAgZm9ybURhdGEgPSBudWxsLFxuICAgICAgICB3cml0dGVuT2JqZWN0cyA9IG5ldyBXZWFrTWFwKCksXG4gICAgICAgIG1vZGVsUm9vdCA9IHJvb3QsXG4gICAgICAgIGpzb24gPSBzZXJpYWxpemVNb2RlbChyb290LCAwKTtcbiAgICAgIG51bGwgPT09IGZvcm1EYXRhXG4gICAgICAgID8gcmVzb2x2ZShqc29uKVxuICAgICAgICA6IChmb3JtRGF0YS5zZXQoZm9ybUZpZWxkUHJlZml4ICsgXCIwXCIsIGpzb24pLFxuICAgICAgICAgIDAgPT09IHBlbmRpbmdQYXJ0cyAmJiByZXNvbHZlKGZvcm1EYXRhKSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAwIDwgcGVuZGluZ1BhcnRzICYmXG4gICAgICAgICAgKChwZW5kaW5nUGFydHMgPSAwKSxcbiAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSA/IHJlc29sdmUoanNvbikgOiByZXNvbHZlKGZvcm1EYXRhKSk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbmNvZGVGb3JtRGF0YShyZWZlcmVuY2UpIHtcbiAgICAgIHZhciByZXNvbHZlLFxuICAgICAgICByZWplY3QsXG4gICAgICAgIHRoZW5hYmxlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcywgcmVqKSB7XG4gICAgICAgICAgcmVzb2x2ZSA9IHJlcztcbiAgICAgICAgICByZWplY3QgPSByZWo7XG4gICAgICAgIH0pO1xuICAgICAgcHJvY2Vzc1JlcGx5KFxuICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIHZvaWQgMCxcbiAgICAgICAgZnVuY3Rpb24gKGJvZHkpIHtcbiAgICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGJvZHkpIHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBkYXRhLmFwcGVuZChcIjBcIiwgYm9keSk7XG4gICAgICAgICAgICBib2R5ID0gZGF0YTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhlbmFibGUuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgICB0aGVuYWJsZS52YWx1ZSA9IGJvZHk7XG4gICAgICAgICAgcmVzb2x2ZShib2R5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICB0aGVuYWJsZS5zdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgICAgdGhlbmFibGUucmVhc29uID0gZTtcbiAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gdGhlbmFibGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmF1bHRFbmNvZGVGb3JtQWN0aW9uKGlkZW50aWZpZXJQcmVmaXgpIHtcbiAgICAgIHZhciByZWZlcmVuY2VDbG9zdXJlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh0aGlzKTtcbiAgICAgIGlmICghcmVmZXJlbmNlQ2xvc3VyZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJUcmllZCB0byBlbmNvZGUgYSBTZXJ2ZXIgQWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgaW5zdGFuY2UgdGhhbiB0aGUgZW5jb2RlciBpcyBmcm9tLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICB2YXIgZGF0YSA9IG51bGw7XG4gICAgICBpZiAobnVsbCAhPT0gcmVmZXJlbmNlQ2xvc3VyZS5ib3VuZCkge1xuICAgICAgICBkYXRhID0gYm91bmRDYWNoZS5nZXQocmVmZXJlbmNlQ2xvc3VyZSk7XG4gICAgICAgIGRhdGEgfHxcbiAgICAgICAgICAoKGRhdGEgPSBlbmNvZGVGb3JtRGF0YSh7XG4gICAgICAgICAgICBpZDogcmVmZXJlbmNlQ2xvc3VyZS5pZCxcbiAgICAgICAgICAgIGJvdW5kOiByZWZlcmVuY2VDbG9zdXJlLmJvdW5kXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIGJvdW5kQ2FjaGUuc2V0KHJlZmVyZW5jZUNsb3N1cmUsIGRhdGEpKTtcbiAgICAgICAgaWYgKFwicmVqZWN0ZWRcIiA9PT0gZGF0YS5zdGF0dXMpIHRocm93IGRhdGEucmVhc29uO1xuICAgICAgICBpZiAoXCJmdWxmaWxsZWRcIiAhPT0gZGF0YS5zdGF0dXMpIHRocm93IGRhdGE7XG4gICAgICAgIHJlZmVyZW5jZUNsb3N1cmUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgcHJlZml4ZWREYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIHJlZmVyZW5jZUNsb3N1cmUuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgICAgIHByZWZpeGVkRGF0YS5hcHBlbmQoXCIkQUNUSU9OX1wiICsgaWRlbnRpZmllclByZWZpeCArIFwiOlwiICsga2V5LCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkYXRhID0gcHJlZml4ZWREYXRhO1xuICAgICAgICByZWZlcmVuY2VDbG9zdXJlID0gXCIkQUNUSU9OX1JFRl9cIiArIGlkZW50aWZpZXJQcmVmaXg7XG4gICAgICB9IGVsc2UgcmVmZXJlbmNlQ2xvc3VyZSA9IFwiJEFDVElPTl9JRF9cIiArIHJlZmVyZW5jZUNsb3N1cmUuaWQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiByZWZlcmVuY2VDbG9zdXJlLFxuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICBlbmNUeXBlOiBcIm11bHRpcGFydC9mb3JtLWRhdGFcIixcbiAgICAgICAgZGF0YTogZGF0YVxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTaWduYXR1cmVFcXVhbChyZWZlcmVuY2VJZCwgbnVtYmVyT2ZCb3VuZEFyZ3MpIHtcbiAgICAgIHZhciByZWZlcmVuY2VDbG9zdXJlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh0aGlzKTtcbiAgICAgIGlmICghcmVmZXJlbmNlQ2xvc3VyZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJUcmllZCB0byBlbmNvZGUgYSBTZXJ2ZXIgQWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgaW5zdGFuY2UgdGhhbiB0aGUgZW5jb2RlciBpcyBmcm9tLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICBpZiAocmVmZXJlbmNlQ2xvc3VyZS5pZCAhPT0gcmVmZXJlbmNlSWQpIHJldHVybiAhMTtcbiAgICAgIHZhciBib3VuZFByb21pc2UgPSByZWZlcmVuY2VDbG9zdXJlLmJvdW5kO1xuICAgICAgaWYgKG51bGwgPT09IGJvdW5kUHJvbWlzZSkgcmV0dXJuIDAgPT09IG51bWJlck9mQm91bmRBcmdzO1xuICAgICAgc3dpdGNoIChib3VuZFByb21pc2Uuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICByZXR1cm4gYm91bmRQcm9taXNlLnZhbHVlLmxlbmd0aCA9PT0gbnVtYmVyT2ZCb3VuZEFyZ3M7XG4gICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgdGhyb3cgYm91bmRQcm9taXNlO1xuICAgICAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgICAgICB0aHJvdyBib3VuZFByb21pc2UucmVhc29uO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgYm91bmRQcm9taXNlLnN0YXR1cyAmJlxuICAgICAgICAgICAgICAoKGJvdW5kUHJvbWlzZS5zdGF0dXMgPSBcInBlbmRpbmdcIiksXG4gICAgICAgICAgICAgIGJvdW5kUHJvbWlzZS50aGVuKFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChib3VuZEFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgIGJvdW5kUHJvbWlzZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgICAgICAgICAgYm91bmRQcm9taXNlLnZhbHVlID0gYm91bmRBcmdzO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICBib3VuZFByb21pc2Uuc3RhdHVzID0gXCJyZWplY3RlZFwiO1xuICAgICAgICAgICAgICAgICAgYm91bmRQcm9taXNlLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBib3VuZFByb21pc2UpXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRmFrZVNlcnZlckZ1bmN0aW9uKFxuICAgICAgbmFtZSxcbiAgICAgIGZpbGVuYW1lLFxuICAgICAgc291cmNlTWFwLFxuICAgICAgbGluZSxcbiAgICAgIGNvbCxcbiAgICAgIGVudmlyb25tZW50TmFtZSxcbiAgICAgIGlubmVyRnVuY3Rpb25cbiAgICApIHtcbiAgICAgIG5hbWUgfHwgKG5hbWUgPSBcIjxhbm9ueW1vdXM+XCIpO1xuICAgICAgdmFyIGVuY29kZWROYW1lID0gSlNPTi5zdHJpbmdpZnkobmFtZSk7XG4gICAgICAxID49IGxpbmVcbiAgICAgICAgPyAoKGxpbmUgPSBlbmNvZGVkTmFtZS5sZW5ndGggKyA3KSxcbiAgICAgICAgICAoY29sID1cbiAgICAgICAgICAgIFwicz0+KHtcIiArXG4gICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIiBcIi5yZXBlYXQoY29sIDwgbGluZSA/IDAgOiBjb2wgLSBsaW5lKSArXG4gICAgICAgICAgICBcIjooLi4uYXJncykgPT4gcyguLi5hcmdzKX0pXFxuLyogVGhpcyBtb2R1bGUgaXMgYSBwcm94eSB0byBhIFNlcnZlciBBY3Rpb24uIFR1cm4gb24gU291cmNlIE1hcHMgdG8gc2VlIHRoZSBzZXJ2ZXIgc291cmNlLiAqL1wiKSlcbiAgICAgICAgOiAoY29sID1cbiAgICAgICAgICAgIFwiLyogVGhpcyBtb2R1bGUgaXMgYSBwcm94eSB0byBhIFNlcnZlciBBY3Rpb24uIFR1cm4gb24gU291cmNlIE1hcHMgdG8gc2VlIHRoZSBzZXJ2ZXIgc291cmNlLiAqL1wiICtcbiAgICAgICAgICAgIFwiXFxuXCIucmVwZWF0KGxpbmUgLSAyKSArXG4gICAgICAgICAgICBcInNlcnZlcj0+KHtcIiArXG4gICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIjpcXG5cIiArXG4gICAgICAgICAgICBcIiBcIi5yZXBlYXQoMSA+IGNvbCA/IDAgOiBjb2wgLSAxKSArXG4gICAgICAgICAgICBcIiguLi5hcmdzKSA9PiBzZXJ2ZXIoLi4uYXJncyl9KVwiKTtcbiAgICAgIGZpbGVuYW1lLnN0YXJ0c1dpdGgoXCIvXCIpICYmIChmaWxlbmFtZSA9IFwiZmlsZTovL1wiICsgZmlsZW5hbWUpO1xuICAgICAgc291cmNlTWFwXG4gICAgICAgID8gKChjb2wgKz1cbiAgICAgICAgICAgIFwiXFxuLy8jIHNvdXJjZVVSTD1hYm91dDovL1JlYWN0L1wiICtcbiAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChlbnZpcm9ubWVudE5hbWUpICtcbiAgICAgICAgICAgIFwiL1wiICtcbiAgICAgICAgICAgIGVuY29kZVVSSShmaWxlbmFtZSkgK1xuICAgICAgICAgICAgXCI/c1wiICtcbiAgICAgICAgICAgIGZha2VTZXJ2ZXJGdW5jdGlvbklkeCsrKSxcbiAgICAgICAgICAoY29sICs9IFwiXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9XCIgKyBzb3VyY2VNYXApKVxuICAgICAgICA6IGZpbGVuYW1lICYmIChjb2wgKz0gXCJcXG4vLyMgc291cmNlVVJMPVwiICsgZmlsZW5hbWUpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuICgwLCBldmFsKShjb2wpKGlubmVyRnVuY3Rpb24pW25hbWVdO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICByZXR1cm4gaW5uZXJGdW5jdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVnaXN0ZXJCb3VuZFNlcnZlclJlZmVyZW5jZShcbiAgICAgIHJlZmVyZW5jZSxcbiAgICAgIGlkLFxuICAgICAgYm91bmQsXG4gICAgICBlbmNvZGVGb3JtQWN0aW9uXG4gICAgKSB7XG4gICAgICBrbm93blNlcnZlclJlZmVyZW5jZXMuaGFzKHJlZmVyZW5jZSkgfHxcbiAgICAgICAgKGtub3duU2VydmVyUmVmZXJlbmNlcy5zZXQocmVmZXJlbmNlLCB7XG4gICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgIG9yaWdpbmFsQmluZDogcmVmZXJlbmNlLmJpbmQsXG4gICAgICAgICAgYm91bmQ6IGJvdW5kXG4gICAgICAgIH0pLFxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhyZWZlcmVuY2UsIHtcbiAgICAgICAgICAkJEZPUk1fQUNUSU9OOiB7XG4gICAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgICAgdm9pZCAwID09PSBlbmNvZGVGb3JtQWN0aW9uXG4gICAgICAgICAgICAgICAgPyBkZWZhdWx0RW5jb2RlRm9ybUFjdGlvblxuICAgICAgICAgICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVmZXJlbmNlQ2xvc3VyZSA9IGtub3duU2VydmVyUmVmZXJlbmNlcy5nZXQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVmZXJlbmNlQ2xvc3VyZSlcbiAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiVHJpZWQgdG8gZW5jb2RlIGEgU2VydmVyIEFjdGlvbiBmcm9tIGEgZGlmZmVyZW50IGluc3RhbmNlIHRoYW4gdGhlIGVuY29kZXIgaXMgZnJvbS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBib3VuZFByb21pc2UgPSByZWZlcmVuY2VDbG9zdXJlLmJvdW5kO1xuICAgICAgICAgICAgICAgICAgICBudWxsID09PSBib3VuZFByb21pc2UgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoYm91bmRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKFtdKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGVGb3JtQWN0aW9uKHJlZmVyZW5jZUNsb3N1cmUuaWQsIGJvdW5kUHJvbWlzZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICAkJElTX1NJR05BVFVSRV9FUVVBTDogeyB2YWx1ZTogaXNTaWduYXR1cmVFcXVhbCB9LFxuICAgICAgICAgIGJpbmQ6IHsgdmFsdWU6IGJpbmQgfVxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJpbmQoKSB7XG4gICAgICB2YXIgcmVmZXJlbmNlQ2xvc3VyZSA9IGtub3duU2VydmVyUmVmZXJlbmNlcy5nZXQodGhpcyk7XG4gICAgICBpZiAoIXJlZmVyZW5jZUNsb3N1cmUpIHJldHVybiBGdW5jdGlvbkJpbmQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIHZhciBuZXdGbiA9IHJlZmVyZW5jZUNsb3N1cmUub3JpZ2luYWxCaW5kLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICBudWxsICE9IGFyZ3VtZW50c1swXSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdDYW5ub3QgYmluZCBcInRoaXNcIiBvZiBhIFNlcnZlciBBY3Rpb24uIFBhc3MgbnVsbCBvciB1bmRlZmluZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIC5iaW5kKCkuJ1xuICAgICAgICApO1xuICAgICAgdmFyIGFyZ3MgPSBBcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSxcbiAgICAgICAgYm91bmRQcm9taXNlID0gbnVsbDtcbiAgICAgIGJvdW5kUHJvbWlzZSA9XG4gICAgICAgIG51bGwgIT09IHJlZmVyZW5jZUNsb3N1cmUuYm91bmRcbiAgICAgICAgICA/IFByb21pc2UucmVzb2x2ZShyZWZlcmVuY2VDbG9zdXJlLmJvdW5kKS50aGVuKGZ1bmN0aW9uIChib3VuZEFyZ3MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kQXJncy5jb25jYXQoYXJncyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKGFyZ3MpO1xuICAgICAga25vd25TZXJ2ZXJSZWZlcmVuY2VzLnNldChuZXdGbiwge1xuICAgICAgICBpZDogcmVmZXJlbmNlQ2xvc3VyZS5pZCxcbiAgICAgICAgb3JpZ2luYWxCaW5kOiBuZXdGbi5iaW5kLFxuICAgICAgICBib3VuZDogYm91bmRQcm9taXNlXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5ld0ZuLCB7XG4gICAgICAgICQkRk9STV9BQ1RJT046IHsgdmFsdWU6IHRoaXMuJCRGT1JNX0FDVElPTiB9LFxuICAgICAgICAkJElTX1NJR05BVFVSRV9FUVVBTDogeyB2YWx1ZTogaXNTaWduYXR1cmVFcXVhbCB9LFxuICAgICAgICBiaW5kOiB7IHZhbHVlOiBiaW5kIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ld0ZuO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVCb3VuZFNlcnZlclJlZmVyZW5jZShcbiAgICAgIG1ldGFEYXRhLFxuICAgICAgY2FsbFNlcnZlcixcbiAgICAgIGVuY29kZUZvcm1BY3Rpb24sXG4gICAgICBmaW5kU291cmNlTWFwVVJMXG4gICAgKSB7XG4gICAgICBmdW5jdGlvbiBhY3Rpb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgcmV0dXJuIGJvdW5kXG4gICAgICAgICAgPyBcImZ1bGZpbGxlZFwiID09PSBib3VuZC5zdGF0dXNcbiAgICAgICAgICAgID8gY2FsbFNlcnZlcihpZCwgYm91bmQudmFsdWUuY29uY2F0KGFyZ3MpKVxuICAgICAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoYm91bmQpLnRoZW4oZnVuY3Rpb24gKGJvdW5kQXJncykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsU2VydmVyKGlkLCBib3VuZEFyZ3MuY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNhbGxTZXJ2ZXIoaWQsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgdmFyIGlkID0gbWV0YURhdGEuaWQsXG4gICAgICAgIGJvdW5kID0gbWV0YURhdGEuYm91bmQsXG4gICAgICAgIGxvY2F0aW9uID0gbWV0YURhdGEubG9jYXRpb247XG4gICAgICBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IG1ldGFEYXRhLm5hbWUgfHwgXCJcIixcbiAgICAgICAgICBmaWxlbmFtZSA9IGxvY2F0aW9uWzFdLFxuICAgICAgICAgIGxpbmUgPSBsb2NhdGlvblsyXTtcbiAgICAgICAgbG9jYXRpb24gPSBsb2NhdGlvblszXTtcbiAgICAgICAgbWV0YURhdGEgPSBtZXRhRGF0YS5lbnYgfHwgXCJTZXJ2ZXJcIjtcbiAgICAgICAgZmluZFNvdXJjZU1hcFVSTCA9XG4gICAgICAgICAgbnVsbCA9PSBmaW5kU291cmNlTWFwVVJMXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogZmluZFNvdXJjZU1hcFVSTChmaWxlbmFtZSwgbWV0YURhdGEpO1xuICAgICAgICBhY3Rpb24gPSBjcmVhdGVGYWtlU2VydmVyRnVuY3Rpb24oXG4gICAgICAgICAgZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgIGZpbmRTb3VyY2VNYXBVUkwsXG4gICAgICAgICAgbGluZSxcbiAgICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgICBtZXRhRGF0YSxcbiAgICAgICAgICBhY3Rpb25cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJlZ2lzdGVyQm91bmRTZXJ2ZXJSZWZlcmVuY2UoYWN0aW9uLCBpZCwgYm91bmQsIGVuY29kZUZvcm1BY3Rpb24pO1xuICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VTdGFja0xvY2F0aW9uKGVycm9yKSB7XG4gICAgICBlcnJvciA9IGVycm9yLnN0YWNrO1xuICAgICAgZXJyb3Iuc3RhcnRzV2l0aChcIkVycm9yOiByZWFjdC1zdGFjay10b3AtZnJhbWVcXG5cIikgJiZcbiAgICAgICAgKGVycm9yID0gZXJyb3Iuc2xpY2UoMjkpKTtcbiAgICAgIHZhciBlbmRPZkZpcnN0ID0gZXJyb3IuaW5kZXhPZihcIlxcblwiKTtcbiAgICAgIGlmICgtMSAhPT0gZW5kT2ZGaXJzdCkge1xuICAgICAgICB2YXIgZW5kT2ZTZWNvbmQgPSBlcnJvci5pbmRleE9mKFwiXFxuXCIsIGVuZE9mRmlyc3QgKyAxKTtcbiAgICAgICAgZW5kT2ZGaXJzdCA9XG4gICAgICAgICAgLTEgPT09IGVuZE9mU2Vjb25kXG4gICAgICAgICAgICA/IGVycm9yLnNsaWNlKGVuZE9mRmlyc3QgKyAxKVxuICAgICAgICAgICAgOiBlcnJvci5zbGljZShlbmRPZkZpcnN0ICsgMSwgZW5kT2ZTZWNvbmQpO1xuICAgICAgfSBlbHNlIGVuZE9mRmlyc3QgPSBlcnJvcjtcbiAgICAgIGVycm9yID0gdjhGcmFtZVJlZ0V4cC5leGVjKGVuZE9mRmlyc3QpO1xuICAgICAgaWYgKFxuICAgICAgICAhZXJyb3IgJiZcbiAgICAgICAgKChlcnJvciA9IGpzY1NwaWRlck1vbmtleUZyYW1lUmVnRXhwLmV4ZWMoZW5kT2ZGaXJzdCkpLCAhZXJyb3IpXG4gICAgICApXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZW5kT2ZGaXJzdCA9IGVycm9yWzFdIHx8IFwiXCI7XG4gICAgICBcIjxhbm9ueW1vdXM+XCIgPT09IGVuZE9mRmlyc3QgJiYgKGVuZE9mRmlyc3QgPSBcIlwiKTtcbiAgICAgIGVuZE9mU2Vjb25kID0gZXJyb3JbMl0gfHwgZXJyb3JbNV0gfHwgXCJcIjtcbiAgICAgIFwiPGFub255bW91cz5cIiA9PT0gZW5kT2ZTZWNvbmQgJiYgKGVuZE9mU2Vjb25kID0gXCJcIik7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBlbmRPZkZpcnN0LFxuICAgICAgICBlbmRPZlNlY29uZCxcbiAgICAgICAgKyhlcnJvclszXSB8fCBlcnJvcls2XSksXG4gICAgICAgICsoZXJyb3JbNF0gfHwgZXJyb3JbN10pXG4gICAgICBdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2UkMShcbiAgICAgIGlkLFxuICAgICAgY2FsbFNlcnZlcixcbiAgICAgIGVuY29kZUZvcm1BY3Rpb24sXG4gICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgZnVuY3Rpb25OYW1lXG4gICAgKSB7XG4gICAgICBmdW5jdGlvbiBhY3Rpb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgcmV0dXJuIGNhbGxTZXJ2ZXIoaWQsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgdmFyIGxvY2F0aW9uID0gcGFyc2VTdGFja0xvY2F0aW9uKEVycm9yKFwicmVhY3Qtc3RhY2stdG9wLWZyYW1lXCIpKTtcbiAgICAgIGlmIChudWxsICE9PSBsb2NhdGlvbikge1xuICAgICAgICB2YXIgZmlsZW5hbWUgPSBsb2NhdGlvblsxXSxcbiAgICAgICAgICBsaW5lID0gbG9jYXRpb25bMl07XG4gICAgICAgIGxvY2F0aW9uID0gbG9jYXRpb25bM107XG4gICAgICAgIGZpbmRTb3VyY2VNYXBVUkwgPVxuICAgICAgICAgIG51bGwgPT0gZmluZFNvdXJjZU1hcFVSTFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IGZpbmRTb3VyY2VNYXBVUkwoZmlsZW5hbWUsIFwiQ2xpZW50XCIpO1xuICAgICAgICBhY3Rpb24gPSBjcmVhdGVGYWtlU2VydmVyRnVuY3Rpb24oXG4gICAgICAgICAgZnVuY3Rpb25OYW1lIHx8IFwiXCIsXG4gICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgICAgICAgICBsaW5lLFxuICAgICAgICAgIGxvY2F0aW9uLFxuICAgICAgICAgIFwiQ2xpZW50XCIsXG4gICAgICAgICAgYWN0aW9uXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZWdpc3RlckJvdW5kU2VydmVyUmVmZXJlbmNlKGFjdGlvbiwgaWQsIG51bGwsIGVuY29kZUZvcm1BY3Rpb24pO1xuICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcbiAgICAgIGlmIChudWxsID09IHR5cGUpIHJldHVybiBudWxsO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHJldHVybiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiRnJhZ21lbnRcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlByb2ZpbGVyXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdHJpY3RNb2RlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZUxpc3RcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9BQ1RJVklUWV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkFjdGl2aXR5XCI7XG4gICAgICB9XG4gICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHN3aXRjaCAoXG4gICAgICAgICAgKFwibnVtYmVyXCIgPT09IHR5cGVvZiB0eXBlLnRhZyAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoKS4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgIHR5cGUuJCR0eXBlb2YpXG4gICAgICAgICkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gXCJQb3J0YWxcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OU1VNRVJfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAodHlwZS5fY29udGV4dC5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIikgKyBcIi5Db25zdW1lclwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgIHZhciBpbm5lclR5cGUgPSB0eXBlLnJlbmRlcjtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgICAgdHlwZSB8fFxuICAgICAgICAgICAgICAoKHR5cGUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgXCJcIiksXG4gICAgICAgICAgICAgICh0eXBlID0gXCJcIiAhPT0gdHlwZSA/IFwiRm9yd2FyZFJlZihcIiArIHR5cGUgKyBcIilcIiA6IFwiRm9yd2FyZFJlZlwiKSk7XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChpbm5lclR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGwpLFxuICAgICAgICAgICAgICBudWxsICE9PSBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA/IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgIDogZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgXCJNZW1vXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICBpbm5lclR5cGUgPSB0eXBlLl9wYXlsb2FkO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuX2luaXQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUoaW5uZXJUeXBlKSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlcGFyZVN0YWNrVHJhY2UoZXJyb3IsIHN0cnVjdHVyZWRTdGFja1RyYWNlKSB7XG4gICAgICBlcnJvciA9IChlcnJvci5uYW1lIHx8IFwiRXJyb3JcIikgKyBcIjogXCIgKyAoZXJyb3IubWVzc2FnZSB8fCBcIlwiKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RydWN0dXJlZFN0YWNrVHJhY2UubGVuZ3RoOyBpKyspXG4gICAgICAgIGVycm9yICs9IFwiXFxuICAgIGF0IFwiICsgc3RydWN0dXJlZFN0YWNrVHJhY2VbaV0udG9TdHJpbmcoKTtcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gUmVhY3RQcm9taXNlKHN0YXR1cywgdmFsdWUsIHJlYXNvbikge1xuICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjtcbiAgICAgIHRoaXMuX2RlYnVnSW5mbyA9IHRoaXMuX2RlYnVnQ2h1bmsgPSBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1bndyYXBXZWFrUmVzcG9uc2Uod2Vha1Jlc3BvbnNlKSB7XG4gICAgICB3ZWFrUmVzcG9uc2UgPSB3ZWFrUmVzcG9uc2Uud2Vhay5kZXJlZigpO1xuICAgICAgaWYgKHZvaWQgMCA9PT0gd2Vha1Jlc3BvbnNlKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIldlIGRpZCBub3QgZXhwZWN0IHRvIHJlY2VpdmUgbmV3IGRhdGEgYWZ0ZXIgR0M6aW5nIHRoZSByZXNwb25zZS5cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHdlYWtSZXNwb25zZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2xlYW51cERlYnVnQ2hhbm5lbChkZWJ1Z0NoYW5uZWwpIHtcbiAgICAgIGRlYnVnQ2hhbm5lbChcIlwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZENodW5rKGNodW5rKSB7XG4gICAgICBzd2l0Y2ggKGNodW5rLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kZWxcIjpcbiAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2R1bGVcIjpcbiAgICAgICAgICBpbml0aWFsaXplTW9kdWxlQ2h1bmsoY2h1bmspO1xuICAgICAgfVxuICAgICAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgIHJldHVybiBjaHVuay52YWx1ZTtcbiAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgY2FzZSBcImhhbHRlZFwiOlxuICAgICAgICAgIHRocm93IGNodW5rO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IGNodW5rLnJlYXNvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Um9vdCh3ZWFrUmVzcG9uc2UpIHtcbiAgICAgIHdlYWtSZXNwb25zZSA9IHVud3JhcFdlYWtSZXNwb25zZSh3ZWFrUmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIGdldENodW5rKHdlYWtSZXNwb25zZSwgMCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVBlbmRpbmdDaHVuayhyZXNwb25zZSkge1xuICAgICAgMCA9PT0gcmVzcG9uc2UuX3BlbmRpbmdDaHVua3MrKyAmJlxuICAgICAgICAoKHJlc3BvbnNlLl93ZWFrUmVzcG9uc2UucmVzcG9uc2UgPSByZXNwb25zZSksXG4gICAgICAgIG51bGwgIT09IHJlc3BvbnNlLl9wZW5kaW5nSW5pdGlhbFJlbmRlciAmJlxuICAgICAgICAgIChjbGVhclRpbWVvdXQocmVzcG9uc2UuX3BlbmRpbmdJbml0aWFsUmVuZGVyKSxcbiAgICAgICAgICAocmVzcG9uc2UuX3BlbmRpbmdJbml0aWFsUmVuZGVyID0gbnVsbCkpKTtcbiAgICAgIHJldHVybiBuZXcgUmVhY3RQcm9taXNlKFwicGVuZGluZ1wiLCBudWxsLCBudWxsKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspIHtcbiAgICAgIFwicGVuZGluZ1wiID09PSBjaHVuay5zdGF0dXMgJiZcbiAgICAgICAgMCA9PT0gLS1yZXNwb25zZS5fcGVuZGluZ0NodW5rcyAmJlxuICAgICAgICAoKHJlc3BvbnNlLl93ZWFrUmVzcG9uc2UucmVzcG9uc2UgPSBudWxsKSxcbiAgICAgICAgKHJlc3BvbnNlLl9wZW5kaW5nSW5pdGlhbFJlbmRlciA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgZmx1c2hJbml0aWFsUmVuZGVyUGVyZm9ybWFuY2UuYmluZChudWxsLCByZXNwb25zZSksXG4gICAgICAgICAgMTAwXG4gICAgICAgICkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FrZUNodW5rKGxpc3RlbmVycywgdmFsdWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyc1tpXTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbGlzdGVuZXJcbiAgICAgICAgICA/IGxpc3RlbmVyKHZhbHVlKVxuICAgICAgICAgIDogZnVsZmlsbFJlZmVyZW5jZShsaXN0ZW5lciwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWplY3RDaHVuayhsaXN0ZW5lcnMsIGVycm9yKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbGlzdGVuZXIgPSBsaXN0ZW5lcnNbaV07XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGxpc3RlbmVyXG4gICAgICAgICAgPyBsaXN0ZW5lcihlcnJvcilcbiAgICAgICAgICA6IHJlamVjdFJlZmVyZW5jZShsaXN0ZW5lciwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlQmxvY2tlZEN5Y2xlKHJlc29sdmVkQ2h1bmssIHJlZmVyZW5jZSkge1xuICAgICAgdmFyIHJlZmVyZW5jZWRDaHVuayA9IHJlZmVyZW5jZS5oYW5kbGVyLmNodW5rO1xuICAgICAgaWYgKG51bGwgPT09IHJlZmVyZW5jZWRDaHVuaykgcmV0dXJuIG51bGw7XG4gICAgICBpZiAocmVmZXJlbmNlZENodW5rID09PSByZXNvbHZlZENodW5rKSByZXR1cm4gcmVmZXJlbmNlLmhhbmRsZXI7XG4gICAgICByZWZlcmVuY2UgPSByZWZlcmVuY2VkQ2h1bmsudmFsdWU7XG4gICAgICBpZiAobnVsbCAhPT0gcmVmZXJlbmNlKVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIHJlZmVyZW5jZWRDaHVuayA9IDA7XG4gICAgICAgICAgcmVmZXJlbmNlZENodW5rIDwgcmVmZXJlbmNlLmxlbmd0aDtcbiAgICAgICAgICByZWZlcmVuY2VkQ2h1bmsrK1xuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgbGlzdGVuZXIgPSByZWZlcmVuY2VbcmVmZXJlbmNlZENodW5rXTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBsaXN0ZW5lciAmJlxuICAgICAgICAgICAgKChsaXN0ZW5lciA9IHJlc29sdmVCbG9ja2VkQ3ljbGUocmVzb2x2ZWRDaHVuaywgbGlzdGVuZXIpKSxcbiAgICAgICAgICAgIG51bGwgIT09IGxpc3RlbmVyKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lcjtcbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdha2VDaHVua0lmSW5pdGlhbGl6ZWQoY2h1bmssIHJlc29sdmVMaXN0ZW5lcnMsIHJlamVjdExpc3RlbmVycykge1xuICAgICAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgIHdha2VDaHVuayhyZXNvbHZlTGlzdGVuZXJzLCBjaHVuay52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvbHZlTGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgbGlzdGVuZXIgPSByZXNvbHZlTGlzdGVuZXJzW2ldO1xuICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgIHZhciBjeWNsaWNIYW5kbGVyID0gcmVzb2x2ZUJsb2NrZWRDeWNsZShjaHVuaywgbGlzdGVuZXIpO1xuICAgICAgICAgICAgICBudWxsICE9PSBjeWNsaWNIYW5kbGVyICYmXG4gICAgICAgICAgICAgICAgKGZ1bGZpbGxSZWZlcmVuY2UobGlzdGVuZXIsIGN5Y2xpY0hhbmRsZXIudmFsdWUpLFxuICAgICAgICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMuc3BsaWNlKGksIDEpLFxuICAgICAgICAgICAgICAgIGktLSxcbiAgICAgICAgICAgICAgICBudWxsICE9PSByZWplY3RMaXN0ZW5lcnMgJiZcbiAgICAgICAgICAgICAgICAgICgobGlzdGVuZXIgPSByZWplY3RMaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcikpLFxuICAgICAgICAgICAgICAgICAgLTEgIT09IGxpc3RlbmVyICYmIHJlamVjdExpc3RlbmVycy5zcGxpY2UobGlzdGVuZXIsIDEpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICAgIGlmIChjaHVuay52YWx1ZSlcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCByZXNvbHZlTGlzdGVuZXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgICBjaHVuay52YWx1ZS5wdXNoKHJlc29sdmVMaXN0ZW5lcnNbaV0pO1xuICAgICAgICAgIGVsc2UgY2h1bmsudmFsdWUgPSByZXNvbHZlTGlzdGVuZXJzO1xuICAgICAgICAgIGlmIChjaHVuay5yZWFzb24pIHtcbiAgICAgICAgICAgIGlmIChyZWplY3RMaXN0ZW5lcnMpXG4gICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycyA9IDA7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycyA8IHJlamVjdExpc3RlbmVycy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycysrXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjaHVuay5yZWFzb24ucHVzaChyZWplY3RMaXN0ZW5lcnNbcmVzb2x2ZUxpc3RlbmVyc10pO1xuICAgICAgICAgIH0gZWxzZSBjaHVuay5yZWFzb24gPSByZWplY3RMaXN0ZW5lcnM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgICAgICAgIHJlamVjdExpc3RlbmVycyAmJiByZWplY3RDaHVuayhyZWplY3RMaXN0ZW5lcnMsIGNodW5rLnJlYXNvbik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGNodW5rLCBlcnJvcikge1xuICAgICAgaWYgKFwicGVuZGluZ1wiICE9PSBjaHVuay5zdGF0dXMgJiYgXCJibG9ja2VkXCIgIT09IGNodW5rLnN0YXR1cylcbiAgICAgICAgY2h1bmsucmVhc29uLmVycm9yKGVycm9yKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICByZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCBjaHVuayk7XG4gICAgICAgIHZhciBsaXN0ZW5lcnMgPSBjaHVuay5yZWFzb247XG4gICAgICAgIGlmIChcInBlbmRpbmdcIiA9PT0gY2h1bmsuc3RhdHVzICYmIG51bGwgIT0gY2h1bmsuX2RlYnVnQ2h1bmspIHtcbiAgICAgICAgICB2YXIgcHJldkhhbmRsZXIgPSBpbml0aWFsaXppbmdIYW5kbGVyO1xuICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIgPSBudWxsO1xuICAgICAgICAgIGNodW5rLnN0YXR1cyA9IFwiYmxvY2tlZFwiO1xuICAgICAgICAgIGNodW5rLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICBjaHVuay5yZWFzb24gPSBudWxsO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbml0aWFsaXplRGVidWdDaHVuayhyZXNwb25zZSwgY2h1bmspLCAoY2h1bmsuX2RlYnVnQ2h1bmsgPSBudWxsKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlciA9IHByZXZIYW5kbGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjaHVuay5zdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgIGNodW5rLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICBudWxsICE9PSBsaXN0ZW5lcnMgJiYgcmVqZWN0Q2h1bmsobGlzdGVuZXJzLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJlc29sdmVkTW9kZWxDaHVuayhyZXNwb25zZSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBuZXcgUmVhY3RQcm9taXNlKFwicmVzb2x2ZWRfbW9kZWxcIiwgdmFsdWUsIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlUmVzb2x2ZWRJdGVyYXRvclJlc3VsdENodW5rKHJlc3BvbnNlLCB2YWx1ZSwgZG9uZSkge1xuICAgICAgcmV0dXJuIG5ldyBSZWFjdFByb21pc2UoXG4gICAgICAgIFwicmVzb2x2ZWRfbW9kZWxcIixcbiAgICAgICAgKGRvbmUgPyAne1wiZG9uZVwiOnRydWUsXCJ2YWx1ZVwiOicgOiAne1wiZG9uZVwiOmZhbHNlLFwidmFsdWVcIjonKSArXG4gICAgICAgICAgdmFsdWUgK1xuICAgICAgICAgIFwifVwiLFxuICAgICAgICByZXNwb25zZVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUl0ZXJhdG9yUmVzdWx0Q2h1bmsocmVzcG9uc2UsIGNodW5rLCB2YWx1ZSwgZG9uZSkge1xuICAgICAgcmVzb2x2ZU1vZGVsQ2h1bmsoXG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgICBjaHVuayxcbiAgICAgICAgKGRvbmUgPyAne1wiZG9uZVwiOnRydWUsXCJ2YWx1ZVwiOicgOiAne1wiZG9uZVwiOmZhbHNlLFwidmFsdWVcIjonKSArXG4gICAgICAgICAgdmFsdWUgK1xuICAgICAgICAgIFwifVwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlTW9kZWxDaHVuayhyZXNwb25zZSwgY2h1bmssIHZhbHVlKSB7XG4gICAgICBpZiAoXCJwZW5kaW5nXCIgIT09IGNodW5rLnN0YXR1cykgY2h1bmsucmVhc29uLmVucXVldWVNb2RlbCh2YWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspO1xuICAgICAgICB2YXIgcmVzb2x2ZUxpc3RlbmVycyA9IGNodW5rLnZhbHVlLFxuICAgICAgICAgIHJlamVjdExpc3RlbmVycyA9IGNodW5rLnJlYXNvbjtcbiAgICAgICAgY2h1bmsuc3RhdHVzID0gXCJyZXNvbHZlZF9tb2RlbFwiO1xuICAgICAgICBjaHVuay52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBjaHVuay5yZWFzb24gPSByZXNwb25zZTtcbiAgICAgICAgbnVsbCAhPT0gcmVzb2x2ZUxpc3RlbmVycyAmJlxuICAgICAgICAgIChpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuayksXG4gICAgICAgICAgd2FrZUNodW5rSWZJbml0aWFsaXplZChjaHVuaywgcmVzb2x2ZUxpc3RlbmVycywgcmVqZWN0TGlzdGVuZXJzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVNb2R1bGVDaHVuayhyZXNwb25zZSwgY2h1bmssIHZhbHVlKSB7XG4gICAgICBpZiAoXCJwZW5kaW5nXCIgPT09IGNodW5rLnN0YXR1cyB8fCBcImJsb2NrZWRcIiA9PT0gY2h1bmsuc3RhdHVzKSB7XG4gICAgICAgIHJlbGVhc2VQZW5kaW5nQ2h1bmsocmVzcG9uc2UsIGNodW5rKTtcbiAgICAgICAgcmVzcG9uc2UgPSBjaHVuay52YWx1ZTtcbiAgICAgICAgdmFyIHJlamVjdExpc3RlbmVycyA9IGNodW5rLnJlYXNvbjtcbiAgICAgICAgY2h1bmsuc3RhdHVzID0gXCJyZXNvbHZlZF9tb2R1bGVcIjtcbiAgICAgICAgY2h1bmsudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdmFsdWUgPSBbXTtcbiAgICAgICAgbnVsbCAhPT0gdmFsdWUgJiYgbnVsbCAhPSBjaHVuay5fZGVidWdJbmZvXG4gICAgICAgICAgPyBjaHVuay5fZGVidWdJbmZvLnB1c2guYXBwbHkoY2h1bmsuX2RlYnVnSW5mbywgdmFsdWUpXG4gICAgICAgICAgOiAoY2h1bmsuX2RlYnVnSW5mbyA9IHZhbHVlKTtcbiAgICAgICAgbnVsbCAhPT0gcmVzcG9uc2UgJiZcbiAgICAgICAgICAoaW5pdGlhbGl6ZU1vZHVsZUNodW5rKGNodW5rKSxcbiAgICAgICAgICB3YWtlQ2h1bmtJZkluaXRpYWxpemVkKGNodW5rLCByZXNwb25zZSwgcmVqZWN0TGlzdGVuZXJzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVEZWJ1Z0NodW5rKHJlc3BvbnNlLCBjaHVuaykge1xuICAgICAgdmFyIGRlYnVnQ2h1bmsgPSBjaHVuay5fZGVidWdDaHVuaztcbiAgICAgIGlmIChudWxsICE9PSBkZWJ1Z0NodW5rKSB7XG4gICAgICAgIHZhciBkZWJ1Z0luZm8gPSBjaHVuay5fZGVidWdJbmZvIHx8IChjaHVuay5fZGVidWdJbmZvID0gW10pO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmIChcInJlc29sdmVkX21vZGVsXCIgPT09IGRlYnVnQ2h1bmsuc3RhdHVzKSB7XG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICB2YXIgaWR4ID0gZGVidWdJbmZvLmxlbmd0aCwgYyA9IGRlYnVnQ2h1bmsuX2RlYnVnQ2h1bms7XG4gICAgICAgICAgICAgIG51bGwgIT09IGM7XG5cbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgXCJmdWxmaWxsZWRcIiAhPT0gYy5zdGF0dXMgJiYgaWR4KyssIChjID0gYy5fZGVidWdDaHVuayk7XG4gICAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayhkZWJ1Z0NodW5rKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZGVidWdDaHVuay5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgICAgICAgIGRlYnVnSW5mb1tpZHhdID0gaW5pdGlhbGl6ZURlYnVnSW5mbyhcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgZGVidWdDaHVuay52YWx1ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgICAgICAgd2FpdEZvclJlZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgIGRlYnVnQ2h1bmssXG4gICAgICAgICAgICAgICAgICBkZWJ1Z0luZm8sXG4gICAgICAgICAgICAgICAgICBcIlwiICsgaWR4LFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICBpbml0aWFsaXplRGVidWdJbmZvLFxuICAgICAgICAgICAgICAgICAgW1wiXCJdXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBkZWJ1Z0NodW5rLnJlYXNvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAoZGVidWdDaHVuay5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFwiYmxvY2tlZFwiOlxuICAgICAgICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICAgICAgICAgIHdhaXRGb3JSZWZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICBkZWJ1Z0NodW5rLFxuICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgICBcImRlYnVnXCIsXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVEZWJ1Z0luZm8sXG4gICAgICAgICAgICAgICAgICBbXCJcIl1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IGRlYnVnQ2h1bmsucmVhc29uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGNodW5rLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspIHtcbiAgICAgIHZhciBwcmV2SGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXI7XG4gICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gbnVsbDtcbiAgICAgIHZhciByZXNvbHZlZE1vZGVsID0gY2h1bmsudmFsdWUsXG4gICAgICAgIHJlc3BvbnNlID0gY2h1bmsucmVhc29uO1xuICAgICAgY2h1bmsuc3RhdHVzID0gXCJibG9ja2VkXCI7XG4gICAgICBjaHVuay52YWx1ZSA9IG51bGw7XG4gICAgICBjaHVuay5yZWFzb24gPSBudWxsO1xuICAgICAgaW5pdGlhbGl6ZURlYnVnQ2h1bmsocmVzcG9uc2UsIGNodW5rKTtcbiAgICAgIGNodW5rLl9kZWJ1Z0NodW5rID0gbnVsbDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IEpTT04ucGFyc2UocmVzb2x2ZWRNb2RlbCwgcmVzcG9uc2UuX2Zyb21KU09OKSxcbiAgICAgICAgICByZXNvbHZlTGlzdGVuZXJzID0gY2h1bmsudmFsdWU7XG4gICAgICAgIG51bGwgIT09IHJlc29sdmVMaXN0ZW5lcnMgJiZcbiAgICAgICAgICAoKGNodW5rLnZhbHVlID0gbnVsbCksXG4gICAgICAgICAgKGNodW5rLnJlYXNvbiA9IG51bGwpLFxuICAgICAgICAgIHdha2VDaHVuayhyZXNvbHZlTGlzdGVuZXJzLCB2YWx1ZSkpO1xuICAgICAgICBpZiAobnVsbCAhPT0gaW5pdGlhbGl6aW5nSGFuZGxlcikge1xuICAgICAgICAgIGlmIChpbml0aWFsaXppbmdIYW5kbGVyLmVycm9yZWQpIHRocm93IGluaXRpYWxpemluZ0hhbmRsZXIucmVhc29uO1xuICAgICAgICAgIGlmICgwIDwgaW5pdGlhbGl6aW5nSGFuZGxlci5kZXBzKSB7XG4gICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyLmNodW5rID0gY2h1bms7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNodW5rLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCI7XG4gICAgICAgIGNodW5rLnZhbHVlID0gdmFsdWU7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAoY2h1bmsuc3RhdHVzID0gXCJyZWplY3RlZFwiKSwgKGNodW5rLnJlYXNvbiA9IGVycm9yKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIgPSBwcmV2SGFuZGxlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZU1vZHVsZUNodW5rKGNodW5rKSB7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgdmFsdWUgPSByZXF1aXJlTW9kdWxlKGNodW5rLnZhbHVlKTtcbiAgICAgICAgY2h1bmsuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgY2h1bmsudmFsdWUgPSB2YWx1ZTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIChjaHVuay5zdGF0dXMgPSBcInJlamVjdGVkXCIpLCAoY2h1bmsucmVhc29uID0gZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZXBvcnRHbG9iYWxFcnJvcih3ZWFrUmVzcG9uc2UsIGVycm9yKSB7XG4gICAgICBpZiAodm9pZCAwICE9PSB3ZWFrUmVzcG9uc2Uud2Vhay5kZXJlZigpKSB7XG4gICAgICAgIHZhciByZXNwb25zZSA9IHVud3JhcFdlYWtSZXNwb25zZSh3ZWFrUmVzcG9uc2UpO1xuICAgICAgICByZXNwb25zZS5fY2xvc2VkID0gITA7XG4gICAgICAgIHJlc3BvbnNlLl9jbG9zZWRSZWFzb24gPSBlcnJvcjtcbiAgICAgICAgcmVzcG9uc2UuX2NodW5rcy5mb3JFYWNoKGZ1bmN0aW9uIChjaHVuaykge1xuICAgICAgICAgIFwicGVuZGluZ1wiID09PSBjaHVuay5zdGF0dXMgJiZcbiAgICAgICAgICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGNodW5rLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICB3ZWFrUmVzcG9uc2UgPSByZXNwb25zZS5fZGVidWdDaGFubmVsO1xuICAgICAgICB2b2lkIDAgIT09IHdlYWtSZXNwb25zZSAmJlxuICAgICAgICAgICh3ZWFrUmVzcG9uc2UoXCJcIiksIChyZXNwb25zZS5fZGVidWdDaGFubmVsID0gdm9pZCAwKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG51bGxSZWZHZXR0ZXIoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VGFza05hbWUodHlwZSkge1xuICAgICAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHJldHVybiBcIjw+XCI7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuICdcInVzZSBjbGllbnRcIic7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIG51bGwgIT09IHR5cGUgJiZcbiAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFXG4gICAgICApXG4gICAgICAgIHJldHVybiB0eXBlLl9pbml0ID09PSByZWFkQ2h1bmsgPyAnXCJ1c2UgY2xpZW50XCInIDogXCI8Li4uPlwiO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICAgIHJldHVybiBuYW1lID8gXCI8XCIgKyBuYW1lICsgXCI+XCIgOiBcIjwuLi4+XCI7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHJldHVybiBcIjwuLi4+XCI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVFbGVtZW50KHJlc3BvbnNlLCBlbGVtZW50KSB7XG4gICAgICB2YXIgc3RhY2sgPSBlbGVtZW50Ll9kZWJ1Z1N0YWNrLFxuICAgICAgICBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgbnVsbCA9PT0gb3duZXIgJiYgKGVsZW1lbnQuX293bmVyID0gcmVzcG9uc2UuX2RlYnVnUm9vdE93bmVyKTtcbiAgICAgIHZhciBlbnYgPSByZXNwb25zZS5fcm9vdEVudmlyb25tZW50TmFtZTtcbiAgICAgIG51bGwgIT09IG93bmVyICYmIG51bGwgIT0gb3duZXIuZW52ICYmIChlbnYgPSBvd25lci5lbnYpO1xuICAgICAgdmFyIG5vcm1hbGl6ZWRTdGFja1RyYWNlID0gbnVsbDtcbiAgICAgIG51bGwgPT09IG93bmVyICYmIG51bGwgIT0gcmVzcG9uc2UuX2RlYnVnUm9vdFN0YWNrXG4gICAgICAgID8gKG5vcm1hbGl6ZWRTdGFja1RyYWNlID0gcmVzcG9uc2UuX2RlYnVnUm9vdFN0YWNrKVxuICAgICAgICA6IG51bGwgIT09IHN0YWNrICYmXG4gICAgICAgICAgKG5vcm1hbGl6ZWRTdGFja1RyYWNlID0gY3JlYXRlRmFrZUpTWENhbGxTdGFja0luREVWKFxuICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICBzdGFjayxcbiAgICAgICAgICAgIGVudlxuICAgICAgICAgICkpO1xuICAgICAgZWxlbWVudC5fZGVidWdTdGFjayA9IG5vcm1hbGl6ZWRTdGFja1RyYWNlO1xuICAgICAgbm9ybWFsaXplZFN0YWNrVHJhY2UgPSBudWxsO1xuICAgICAgc3VwcG9ydHNDcmVhdGVUYXNrICYmXG4gICAgICAgIG51bGwgIT09IHN0YWNrICYmXG4gICAgICAgICgobm9ybWFsaXplZFN0YWNrVHJhY2UgPSBjb25zb2xlLmNyZWF0ZVRhc2suYmluZChcbiAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgIGdldFRhc2tOYW1lKGVsZW1lbnQudHlwZSlcbiAgICAgICAgKSksXG4gICAgICAgIChzdGFjayA9IGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICBlbnYsXG4gICAgICAgICAgITEsXG4gICAgICAgICAgbm9ybWFsaXplZFN0YWNrVHJhY2VcbiAgICAgICAgKSksXG4gICAgICAgIChlbnYgPSBudWxsID09PSBvd25lciA/IG51bGwgOiBpbml0aWFsaXplRmFrZVRhc2socmVzcG9uc2UsIG93bmVyKSksXG4gICAgICAgIG51bGwgPT09IGVudlxuICAgICAgICAgID8gKChlbnYgPSByZXNwb25zZS5fZGVidWdSb290VGFzayksXG4gICAgICAgICAgICAobm9ybWFsaXplZFN0YWNrVHJhY2UgPSBudWxsICE9IGVudiA/IGVudi5ydW4oc3RhY2spIDogc3RhY2soKSkpXG4gICAgICAgICAgOiAobm9ybWFsaXplZFN0YWNrVHJhY2UgPSBlbnYucnVuKHN0YWNrKSkpO1xuICAgICAgZWxlbWVudC5fZGVidWdUYXNrID0gbm9ybWFsaXplZFN0YWNrVHJhY2U7XG4gICAgICBudWxsICE9PSBvd25lciAmJiBpbml0aWFsaXplRmFrZVN0YWNrKHJlc3BvbnNlLCBvd25lcik7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVMYXp5Q2h1bmtXcmFwcGVyKGNodW5rKSB7XG4gICAgICB2YXIgbGF6eVR5cGUgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsXG4gICAgICAgIF9wYXlsb2FkOiBjaHVuayxcbiAgICAgICAgX2luaXQ6IHJlYWRDaHVua1xuICAgICAgfTtcbiAgICAgIGNodW5rID0gY2h1bmsuX2RlYnVnSW5mbyB8fCAoY2h1bmsuX2RlYnVnSW5mbyA9IFtdKTtcbiAgICAgIGxhenlUeXBlLl9kZWJ1Z0luZm8gPSBjaHVuaztcbiAgICAgIHJldHVybiBsYXp5VHlwZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q2h1bmsocmVzcG9uc2UsIGlkKSB7XG4gICAgICB2YXIgY2h1bmtzID0gcmVzcG9uc2UuX2NodW5rcyxcbiAgICAgICAgY2h1bmsgPSBjaHVua3MuZ2V0KGlkKTtcbiAgICAgIGNodW5rIHx8XG4gICAgICAgICgoY2h1bmsgPSByZXNwb25zZS5fY2xvc2VkXG4gICAgICAgICAgPyBuZXcgUmVhY3RQcm9taXNlKFwicmVqZWN0ZWRcIiwgbnVsbCwgcmVzcG9uc2UuX2Nsb3NlZFJlYXNvbilcbiAgICAgICAgICA6IGNyZWF0ZVBlbmRpbmdDaHVuayhyZXNwb25zZSkpLFxuICAgICAgICBjaHVua3Muc2V0KGlkLCBjaHVuaykpO1xuICAgICAgcmV0dXJuIGNodW5rO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmdWxmaWxsUmVmZXJlbmNlKHJlZmVyZW5jZSwgdmFsdWUpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciByZXNwb25zZSA9IHJlZmVyZW5jZS5yZXNwb25zZSxcbiAgICAgICAgICBoYW5kbGVyID0gcmVmZXJlbmNlLmhhbmRsZXIsXG4gICAgICAgICAgcGFyZW50T2JqZWN0ID0gcmVmZXJlbmNlLnBhcmVudE9iamVjdCxcbiAgICAgICAgICBrZXkgPSByZWZlcmVuY2Uua2V5LFxuICAgICAgICAgIG1hcCA9IHJlZmVyZW5jZS5tYXAsXG4gICAgICAgICAgcGF0aCA9IHJlZmVyZW5jZS5wYXRoLFxuICAgICAgICAgIGkgPSAxO1xuICAgICAgICBpIDwgcGF0aC5sZW5ndGg7XG4gICAgICAgIGkrK1xuICAgICAgKSB7XG4gICAgICAgIGZvciAoOyB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFOyApXG4gICAgICAgICAgaWYgKCgodmFsdWUgPSB2YWx1ZS5fcGF5bG9hZCksIHZhbHVlID09PSBoYW5kbGVyLmNodW5rKSlcbiAgICAgICAgICAgIHZhbHVlID0gaGFuZGxlci52YWx1ZTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUuc3RhdHVzKSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2RlbFwiOlxuICAgICAgICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZHVsZVwiOlxuICAgICAgICAgICAgICAgIGluaXRpYWxpemVNb2R1bGVDaHVuayh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnN0YXR1cykge1xuICAgICAgICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgICAgICAgICB2YXIgY3ljbGljSGFuZGxlciA9IHJlc29sdmVCbG9ja2VkQ3ljbGUodmFsdWUsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGN5Y2xpY0hhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3ljbGljSGFuZGxlci52YWx1ZTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgICAgICAgICBwYXRoLnNwbGljZSgwLCBpIC0gMSk7XG4gICAgICAgICAgICAgICAgbnVsbCA9PT0gdmFsdWUudmFsdWVcbiAgICAgICAgICAgICAgICAgID8gKHZhbHVlLnZhbHVlID0gW3JlZmVyZW5jZV0pXG4gICAgICAgICAgICAgICAgICA6IHZhbHVlLnZhbHVlLnB1c2gocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICBudWxsID09PSB2YWx1ZS5yZWFzb25cbiAgICAgICAgICAgICAgICAgID8gKHZhbHVlLnJlYXNvbiA9IFtyZWZlcmVuY2VdKVxuICAgICAgICAgICAgICAgICAgOiB2YWx1ZS5yZWFzb24ucHVzaChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgY2FzZSBcImhhbHRlZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZWplY3RSZWZlcmVuY2UocmVmZXJlbmNlLCB2YWx1ZS5yZWFzb24pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gdmFsdWVbcGF0aFtpXV07XG4gICAgICB9XG4gICAgICByZWZlcmVuY2UgPSBtYXAocmVzcG9uc2UsIHZhbHVlLCBwYXJlbnRPYmplY3QsIGtleSk7XG4gICAgICBwYXJlbnRPYmplY3Rba2V5XSA9IHJlZmVyZW5jZTtcbiAgICAgIFwiXCIgPT09IGtleSAmJiBudWxsID09PSBoYW5kbGVyLnZhbHVlICYmIChoYW5kbGVyLnZhbHVlID0gcmVmZXJlbmNlKTtcbiAgICAgIGlmIChcbiAgICAgICAgcGFyZW50T2JqZWN0WzBdID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiZcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGhhbmRsZXIudmFsdWUgJiZcbiAgICAgICAgbnVsbCAhPT0gaGFuZGxlci52YWx1ZSAmJlxuICAgICAgICBoYW5kbGVyLnZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgIClcbiAgICAgICAgc3dpdGNoICgoKHBhcmVudE9iamVjdCA9IGhhbmRsZXIudmFsdWUpLCBrZXkpKSB7XG4gICAgICAgICAgY2FzZSBcIjNcIjpcbiAgICAgICAgICAgIHBhcmVudE9iamVjdC5wcm9wcyA9IHJlZmVyZW5jZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCI0XCI6XG4gICAgICAgICAgICBwYXJlbnRPYmplY3QuX293bmVyID0gcmVmZXJlbmNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIjVcIjpcbiAgICAgICAgICAgIHBhcmVudE9iamVjdC5fZGVidWdTdGFjayA9IHJlZmVyZW5jZTtcbiAgICAgICAgfVxuICAgICAgaGFuZGxlci5kZXBzLS07XG4gICAgICAwID09PSBoYW5kbGVyLmRlcHMgJiZcbiAgICAgICAgKChrZXkgPSBoYW5kbGVyLmNodW5rKSxcbiAgICAgICAgbnVsbCAhPT0ga2V5ICYmXG4gICAgICAgICAgXCJibG9ja2VkXCIgPT09IGtleS5zdGF0dXMgJiZcbiAgICAgICAgICAoKHBhcmVudE9iamVjdCA9IGtleS52YWx1ZSksXG4gICAgICAgICAgKGtleS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiKSxcbiAgICAgICAgICAoa2V5LnZhbHVlID0gaGFuZGxlci52YWx1ZSksXG4gICAgICAgICAgKGtleS5yZWFzb24gPSBoYW5kbGVyLnJlYXNvbiksXG4gICAgICAgICAgbnVsbCAhPT0gcGFyZW50T2JqZWN0ICYmIHdha2VDaHVuayhwYXJlbnRPYmplY3QsIGhhbmRsZXIudmFsdWUpKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlamVjdFJlZmVyZW5jZShyZWZlcmVuY2UsIGVycm9yKSB7XG4gICAgICB2YXIgaGFuZGxlciA9IHJlZmVyZW5jZS5oYW5kbGVyO1xuICAgICAgcmVmZXJlbmNlID0gcmVmZXJlbmNlLnJlc3BvbnNlO1xuICAgICAgaWYgKCFoYW5kbGVyLmVycm9yZWQpIHtcbiAgICAgICAgdmFyIGJsb2NrZWRWYWx1ZSA9IGhhbmRsZXIudmFsdWU7XG4gICAgICAgIGhhbmRsZXIuZXJyb3JlZCA9ICEwO1xuICAgICAgICBoYW5kbGVyLnZhbHVlID0gbnVsbDtcbiAgICAgICAgaGFuZGxlci5yZWFzb24gPSBlcnJvcjtcbiAgICAgICAgaGFuZGxlciA9IGhhbmRsZXIuY2h1bms7XG4gICAgICAgIGlmIChudWxsICE9PSBoYW5kbGVyICYmIFwiYmxvY2tlZFwiID09PSBoYW5kbGVyLnN0YXR1cykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBibG9ja2VkVmFsdWUgJiZcbiAgICAgICAgICAgIG51bGwgIT09IGJsb2NrZWRWYWx1ZSAmJlxuICAgICAgICAgICAgYmxvY2tlZFZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHZhciBlcnJvcmVkQ29tcG9uZW50ID0ge1xuICAgICAgICAgICAgICBuYW1lOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoYmxvY2tlZFZhbHVlLnR5cGUpIHx8IFwiXCIsXG4gICAgICAgICAgICAgIG93bmVyOiBibG9ja2VkVmFsdWUuX293bmVyXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZXJyb3JlZENvbXBvbmVudC5kZWJ1Z1N0YWNrID0gYmxvY2tlZFZhbHVlLl9kZWJ1Z1N0YWNrO1xuICAgICAgICAgICAgc3VwcG9ydHNDcmVhdGVUYXNrICYmXG4gICAgICAgICAgICAgIChlcnJvcmVkQ29tcG9uZW50LmRlYnVnVGFzayA9IGJsb2NrZWRWYWx1ZS5fZGVidWdUYXNrKTtcbiAgICAgICAgICAgIChoYW5kbGVyLl9kZWJ1Z0luZm8gfHwgKGhhbmRsZXIuX2RlYnVnSW5mbyA9IFtdKSkucHVzaChcbiAgICAgICAgICAgICAgZXJyb3JlZENvbXBvbmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdHJpZ2dlckVycm9yT25DaHVuayhyZWZlcmVuY2UsIGhhbmRsZXIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB3YWl0Rm9yUmVmZXJlbmNlKFxuICAgICAgcmVmZXJlbmNlZENodW5rLFxuICAgICAgcGFyZW50T2JqZWN0LFxuICAgICAga2V5LFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBtYXAsXG4gICAgICBwYXRoXG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHZvaWQgMCA9PT0gcmVzcG9uc2UuX2RlYnVnQ2hhbm5lbCAmJlxuICAgICAgICBcInBlbmRpbmdcIiA9PT0gcmVmZXJlbmNlZENodW5rLnN0YXR1cyAmJlxuICAgICAgICBwYXJlbnRPYmplY3RbMF0gPT09IFJFQUNUX0VMRU1FTlRfVFlQRSAmJlxuICAgICAgICAoXCI0XCIgPT09IGtleSB8fCBcIjVcIiA9PT0ga2V5KVxuICAgICAgKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgICAgaGFuZGxlci5kZXBzKys7XG4gICAgICB9IGVsc2VcbiAgICAgICAgaGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgIGNodW5rOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIHJlYXNvbjogbnVsbCxcbiAgICAgICAgICBkZXBzOiAxLFxuICAgICAgICAgIGVycm9yZWQ6ICExXG4gICAgICAgIH07XG4gICAgICBwYXJlbnRPYmplY3QgPSB7XG4gICAgICAgIHJlc3BvbnNlOiByZXNwb25zZSxcbiAgICAgICAgaGFuZGxlcjogaGFuZGxlcixcbiAgICAgICAgcGFyZW50T2JqZWN0OiBwYXJlbnRPYmplY3QsXG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBtYXA6IG1hcCxcbiAgICAgICAgcGF0aDogcGF0aFxuICAgICAgfTtcbiAgICAgIG51bGwgPT09IHJlZmVyZW5jZWRDaHVuay52YWx1ZVxuICAgICAgICA/IChyZWZlcmVuY2VkQ2h1bmsudmFsdWUgPSBbcGFyZW50T2JqZWN0XSlcbiAgICAgICAgOiByZWZlcmVuY2VkQ2h1bmsudmFsdWUucHVzaChwYXJlbnRPYmplY3QpO1xuICAgICAgbnVsbCA9PT0gcmVmZXJlbmNlZENodW5rLnJlYXNvblxuICAgICAgICA/IChyZWZlcmVuY2VkQ2h1bmsucmVhc29uID0gW3BhcmVudE9iamVjdF0pXG4gICAgICAgIDogcmVmZXJlbmNlZENodW5rLnJlYXNvbi5wdXNoKHBhcmVudE9iamVjdCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbG9hZFNlcnZlclJlZmVyZW5jZShyZXNwb25zZSwgbWV0YURhdGEsIHBhcmVudE9iamVjdCwga2V5KSB7XG4gICAgICBpZiAoIXJlc3BvbnNlLl9zZXJ2ZXJSZWZlcmVuY2VDb25maWcpXG4gICAgICAgIHJldHVybiBjcmVhdGVCb3VuZFNlcnZlclJlZmVyZW5jZShcbiAgICAgICAgICBtZXRhRGF0YSxcbiAgICAgICAgICByZXNwb25zZS5fY2FsbFNlcnZlcixcbiAgICAgICAgICByZXNwb25zZS5fZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgICAgICByZXNwb25zZS5fZGVidWdGaW5kU291cmNlTWFwVVJMXG4gICAgICAgICk7XG4gICAgICB2YXIgc2VydmVyUmVmZXJlbmNlID0gcmVzb2x2ZVNlcnZlclJlZmVyZW5jZShcbiAgICAgICAgICByZXNwb25zZS5fc2VydmVyUmVmZXJlbmNlQ29uZmlnLFxuICAgICAgICAgIG1ldGFEYXRhLmlkXG4gICAgICAgICksXG4gICAgICAgIHByb21pc2UgPSBwcmVsb2FkTW9kdWxlKHNlcnZlclJlZmVyZW5jZSk7XG4gICAgICBpZiAocHJvbWlzZSlcbiAgICAgICAgbWV0YURhdGEuYm91bmQgJiYgKHByb21pc2UgPSBQcm9taXNlLmFsbChbcHJvbWlzZSwgbWV0YURhdGEuYm91bmRdKSk7XG4gICAgICBlbHNlIGlmIChtZXRhRGF0YS5ib3VuZCkgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShtZXRhRGF0YS5ib3VuZCk7XG4gICAgICBlbHNlXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKHByb21pc2UgPSByZXF1aXJlTW9kdWxlKHNlcnZlclJlZmVyZW5jZSkpLFxuICAgICAgICAgIHJlZ2lzdGVyQm91bmRTZXJ2ZXJSZWZlcmVuY2UoXG4gICAgICAgICAgICBwcm9taXNlLFxuICAgICAgICAgICAgbWV0YURhdGEuaWQsXG4gICAgICAgICAgICBtZXRhRGF0YS5ib3VuZCxcbiAgICAgICAgICAgIHJlc3BvbnNlLl9lbmNvZGVGb3JtQWN0aW9uXG4gICAgICAgICAgKSxcbiAgICAgICAgICBwcm9taXNlXG4gICAgICAgICk7XG4gICAgICBpZiAoaW5pdGlhbGl6aW5nSGFuZGxlcikge1xuICAgICAgICB2YXIgaGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXI7XG4gICAgICAgIGhhbmRsZXIuZGVwcysrO1xuICAgICAgfSBlbHNlXG4gICAgICAgIGhhbmRsZXIgPSBpbml0aWFsaXppbmdIYW5kbGVyID0ge1xuICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICBjaHVuazogbnVsbCxcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICByZWFzb246IG51bGwsXG4gICAgICAgICAgZGVwczogMSxcbiAgICAgICAgICBlcnJvcmVkOiAhMVxuICAgICAgICB9O1xuICAgICAgcHJvbWlzZS50aGVuKFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIHJlc29sdmVkVmFsdWUgPSByZXF1aXJlTW9kdWxlKHNlcnZlclJlZmVyZW5jZSk7XG4gICAgICAgICAgaWYgKG1ldGFEYXRhLmJvdW5kKSB7XG4gICAgICAgICAgICB2YXIgYm91bmRBcmdzID0gbWV0YURhdGEuYm91bmQudmFsdWUuc2xpY2UoMCk7XG4gICAgICAgICAgICBib3VuZEFyZ3MudW5zaGlmdChudWxsKTtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSByZXNvbHZlZFZhbHVlLmJpbmQuYXBwbHkocmVzb2x2ZWRWYWx1ZSwgYm91bmRBcmdzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVnaXN0ZXJCb3VuZFNlcnZlclJlZmVyZW5jZShcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUsXG4gICAgICAgICAgICBtZXRhRGF0YS5pZCxcbiAgICAgICAgICAgIG1ldGFEYXRhLmJvdW5kLFxuICAgICAgICAgICAgcmVzcG9uc2UuX2VuY29kZUZvcm1BY3Rpb25cbiAgICAgICAgICApO1xuICAgICAgICAgIHBhcmVudE9iamVjdFtrZXldID0gcmVzb2x2ZWRWYWx1ZTtcbiAgICAgICAgICBcIlwiID09PSBrZXkgJiZcbiAgICAgICAgICAgIG51bGwgPT09IGhhbmRsZXIudmFsdWUgJiZcbiAgICAgICAgICAgIChoYW5kbGVyLnZhbHVlID0gcmVzb2x2ZWRWYWx1ZSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcGFyZW50T2JqZWN0WzBdID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiZcbiAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBoYW5kbGVyLnZhbHVlICYmXG4gICAgICAgICAgICBudWxsICE9PSBoYW5kbGVyLnZhbHVlICYmXG4gICAgICAgICAgICBoYW5kbGVyLnZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgICAgICApXG4gICAgICAgICAgICBzd2l0Y2ggKCgoYm91bmRBcmdzID0gaGFuZGxlci52YWx1ZSksIGtleSkpIHtcbiAgICAgICAgICAgICAgY2FzZSBcIjNcIjpcbiAgICAgICAgICAgICAgICBib3VuZEFyZ3MucHJvcHMgPSByZXNvbHZlZFZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFwiNFwiOlxuICAgICAgICAgICAgICAgIGJvdW5kQXJncy5fb3duZXIgPSByZXNvbHZlZFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGhhbmRsZXIuZGVwcy0tO1xuICAgICAgICAgIDAgPT09IGhhbmRsZXIuZGVwcyAmJlxuICAgICAgICAgICAgKChyZXNvbHZlZFZhbHVlID0gaGFuZGxlci5jaHVuayksXG4gICAgICAgICAgICBudWxsICE9PSByZXNvbHZlZFZhbHVlICYmXG4gICAgICAgICAgICAgIFwiYmxvY2tlZFwiID09PSByZXNvbHZlZFZhbHVlLnN0YXR1cyAmJlxuICAgICAgICAgICAgICAoKGJvdW5kQXJncyA9IHJlc29sdmVkVmFsdWUudmFsdWUpLFxuICAgICAgICAgICAgICAocmVzb2x2ZWRWYWx1ZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiKSxcbiAgICAgICAgICAgICAgKHJlc29sdmVkVmFsdWUudmFsdWUgPSBoYW5kbGVyLnZhbHVlKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gYm91bmRBcmdzICYmIHdha2VDaHVuayhib3VuZEFyZ3MsIGhhbmRsZXIudmFsdWUpKSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgIGlmICghaGFuZGxlci5lcnJvcmVkKSB7XG4gICAgICAgICAgICB2YXIgYmxvY2tlZFZhbHVlID0gaGFuZGxlci52YWx1ZTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3JlZCA9ICEwO1xuICAgICAgICAgICAgaGFuZGxlci52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICBoYW5kbGVyLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICAgICAgdmFyIGNodW5rID0gaGFuZGxlci5jaHVuaztcbiAgICAgICAgICAgIGlmIChudWxsICE9PSBjaHVuayAmJiBcImJsb2NrZWRcIiA9PT0gY2h1bmsuc3RhdHVzKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgYmxvY2tlZFZhbHVlICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gYmxvY2tlZFZhbHVlICYmXG4gICAgICAgICAgICAgICAgYmxvY2tlZFZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9yZWRDb21wb25lbnQgPSB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoYmxvY2tlZFZhbHVlLnR5cGUpIHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgICBvd25lcjogYmxvY2tlZFZhbHVlLl9vd25lclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZXJyb3JlZENvbXBvbmVudC5kZWJ1Z1N0YWNrID0gYmxvY2tlZFZhbHVlLl9kZWJ1Z1N0YWNrO1xuICAgICAgICAgICAgICAgIHN1cHBvcnRzQ3JlYXRlVGFzayAmJlxuICAgICAgICAgICAgICAgICAgKGVycm9yZWRDb21wb25lbnQuZGVidWdUYXNrID0gYmxvY2tlZFZhbHVlLl9kZWJ1Z1Rhc2spO1xuICAgICAgICAgICAgICAgIChjaHVuay5fZGVidWdJbmZvIHx8IChjaHVuay5fZGVidWdJbmZvID0gW10pKS5wdXNoKFxuICAgICAgICAgICAgICAgICAgZXJyb3JlZENvbXBvbmVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdHJpZ2dlckVycm9yT25DaHVuayhyZXNwb25zZSwgY2h1bmssIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgcmVmZXJlbmNlLCBwYXJlbnRPYmplY3QsIGtleSwgbWFwKSB7XG4gICAgICByZWZlcmVuY2UgPSByZWZlcmVuY2Uuc3BsaXQoXCI6XCIpO1xuICAgICAgdmFyIGlkID0gcGFyc2VJbnQocmVmZXJlbmNlWzBdLCAxNik7XG4gICAgICBpZCA9IGdldENodW5rKHJlc3BvbnNlLCBpZCk7XG4gICAgICBzd2l0Y2ggKGlkLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kZWxcIjpcbiAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayhpZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2R1bGVcIjpcbiAgICAgICAgICBpbml0aWFsaXplTW9kdWxlQ2h1bmsoaWQpO1xuICAgICAgfVxuICAgICAgc3dpdGNoIChpZC5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgIGZvciAodmFyIHZhbHVlID0gaWQudmFsdWUsIGkgPSAxOyBpIDwgcmVmZXJlbmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKDsgdmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRTsgKSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuX3BheWxvYWQ7XG4gICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZGVsXCI6XG4gICAgICAgICAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kdWxlXCI6XG4gICAgICAgICAgICAgICAgICBpbml0aWFsaXplTW9kdWxlQ2h1bmsodmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yUmVmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50T2JqZWN0LFxuICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZS5zbGljZShpIC0gMSlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY2FzZSBcImhhbHRlZFwiOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlclxuICAgICAgICAgICAgICAgICAgICAgID8gKChyZXNwb25zZSA9IGluaXRpYWxpemluZ0hhbmRsZXIpLCByZXNwb25zZS5kZXBzKyspXG4gICAgICAgICAgICAgICAgICAgICAgOiAoaW5pdGlhbGl6aW5nSGFuZGxlciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVuazogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwczogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JlZDogITFcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyXG4gICAgICAgICAgICAgICAgICAgICAgPyAoKGluaXRpYWxpemluZ0hhbmRsZXIuZXJyb3JlZCA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbml0aWFsaXppbmdIYW5kbGVyLnZhbHVlID0gbnVsbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5pdGlhbGl6aW5nSGFuZGxlci5yZWFzb24gPSB2YWx1ZS5yZWFzb24pKVxuICAgICAgICAgICAgICAgICAgICAgIDogKGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb246IHZhbHVlLnJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwczogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JlZDogITBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlW3JlZmVyZW5jZVtpXV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3BvbnNlID0gbWFwKHJlc3BvbnNlLCB2YWx1ZSwgcGFyZW50T2JqZWN0LCBrZXkpO1xuICAgICAgICAgIGlkLl9kZWJ1Z0luZm8gJiZcbiAgICAgICAgICAgIChcIm9iamVjdFwiICE9PSB0eXBlb2YgcmVzcG9uc2UgfHxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gcmVzcG9uc2UgfHxcbiAgICAgICAgICAgICAgKCFpc0FycmF5SW1wbChyZXNwb25zZSkgJiZcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiByZXNwb25zZVtBU1lOQ19JVEVSQVRPUl0gJiZcbiAgICAgICAgICAgICAgICByZXNwb25zZS4kJHR5cGVvZiAhPT0gUkVBQ1RfRUxFTUVOVF9UWVBFKSB8fFxuICAgICAgICAgICAgICByZXNwb25zZS5fZGVidWdJbmZvIHx8XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXNwb25zZSwgXCJfZGVidWdJbmZvXCIsIHtcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogaWQuX2RlYnVnSW5mb1xuICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICBjYXNlIFwiYmxvY2tlZFwiOlxuICAgICAgICAgIHJldHVybiB3YWl0Rm9yUmVmZXJlbmNlKFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgIHJlZmVyZW5jZVxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJoYWx0ZWRcIjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlclxuICAgICAgICAgICAgICA/ICgocmVzcG9uc2UgPSBpbml0aWFsaXppbmdIYW5kbGVyKSwgcmVzcG9uc2UuZGVwcysrKVxuICAgICAgICAgICAgICA6IChpbml0aWFsaXppbmdIYW5kbGVyID0ge1xuICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgIHJlYXNvbjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIGRlcHM6IDEsXG4gICAgICAgICAgICAgICAgICBlcnJvcmVkOiAhMVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXJcbiAgICAgICAgICAgICAgPyAoKGluaXRpYWxpemluZ0hhbmRsZXIuZXJyb3JlZCA9ICEwKSxcbiAgICAgICAgICAgICAgICAoaW5pdGlhbGl6aW5nSGFuZGxlci52YWx1ZSA9IG51bGwpLFxuICAgICAgICAgICAgICAgIChpbml0aWFsaXppbmdIYW5kbGVyLnJlYXNvbiA9IGlkLnJlYXNvbikpXG4gICAgICAgICAgICAgIDogKGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICBjaHVuazogbnVsbCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgcmVhc29uOiBpZC5yZWFzb24sXG4gICAgICAgICAgICAgICAgICBkZXBzOiAwLFxuICAgICAgICAgICAgICAgICAgZXJyb3JlZDogITBcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVNYXAocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXR1cm4gbmV3IE1hcChtb2RlbCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVNldChyZXNwb25zZSwgbW9kZWwpIHtcbiAgICAgIHJldHVybiBuZXcgU2V0KG1vZGVsKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQmxvYihyZXNwb25zZSwgbW9kZWwpIHtcbiAgICAgIHJldHVybiBuZXcgQmxvYihtb2RlbC5zbGljZSgxKSwgeyB0eXBlOiBtb2RlbFswXSB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRm9ybURhdGEocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXNwb25zZSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb2RlbC5sZW5ndGg7IGkrKylcbiAgICAgICAgcmVzcG9uc2UuYXBwZW5kKG1vZGVsW2ldWzBdLCBtb2RlbFtpXVsxXSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFwcGx5Q29uc3RydWN0b3IocmVzcG9uc2UsIG1vZGVsLCBwYXJlbnRPYmplY3QpIHtcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihwYXJlbnRPYmplY3QsIG1vZGVsLnByb3RvdHlwZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmluZUxhenlHZXR0ZXIocmVzcG9uc2UsIGNodW5rLCBwYXJlbnRPYmplY3QsIGtleSkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudE9iamVjdCwga2V5LCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIFwicmVzb2x2ZWRfbW9kZWxcIiA9PT0gY2h1bmsuc3RhdHVzICYmIGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKTtcbiAgICAgICAgICBzd2l0Y2ggKGNodW5rLnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgICAgICByZXR1cm4gY2h1bmsudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgICAgICAgICAgdGhyb3cgY2h1bmsucmVhc29uO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gXCJUaGlzIG9iamVjdCBoYXMgYmVlbiBvbWl0dGVkIGJ5IFJlYWN0IGluIHRoZSBjb25zb2xlIGxvZyB0byBhdm9pZCBzZW5kaW5nIHRvbyBtdWNoIGRhdGEgZnJvbSB0aGUgc2VydmVyLiBUcnkgbG9nZ2luZyBzbWFsbGVyIG9yIG1vcmUgc3BlY2lmaWMgb2JqZWN0cy5cIjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogITAsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITFcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGV4dHJhY3RJdGVyYXRvcihyZXNwb25zZSwgbW9kZWwpIHtcbiAgICAgIHJldHVybiBtb2RlbFtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZU1vZGVsKHJlc3BvbnNlLCBtb2RlbCkge1xuICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRJbmZlcnJlZEZ1bmN0aW9uQXBwcm94aW1hdGUoY29kZSkge1xuICAgICAgY29kZSA9IGNvZGUuc3RhcnRzV2l0aChcIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShcIilcbiAgICAgICAgPyBjb2RlLnNsaWNlKDIyKVxuICAgICAgICA6IGNvZGUuc3RhcnRzV2l0aChcIihcIilcbiAgICAgICAgICA/IGNvZGUuc2xpY2UoMSlcbiAgICAgICAgICA6IGNvZGU7XG4gICAgICBpZiAoY29kZS5zdGFydHNXaXRoKFwiYXN5bmMgZnVuY3Rpb25cIikpIHtcbiAgICAgICAgdmFyIGlkeCA9IGNvZGUuaW5kZXhPZihcIihcIiwgMTQpO1xuICAgICAgICBpZiAoLTEgIT09IGlkeClcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGNvZGUgPSBjb2RlLnNsaWNlKDE0LCBpZHgpLnRyaW0oKSksXG4gICAgICAgICAgICAoMCwgZXZhbCkoXCIoe1wiICsgSlNPTi5zdHJpbmdpZnkoY29kZSkgKyBcIjphc3luYyBmdW5jdGlvbigpe319KVwiKVtcbiAgICAgICAgICAgICAgY29kZVxuICAgICAgICAgICAgXVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGNvZGUuc3RhcnRzV2l0aChcImZ1bmN0aW9uXCIpKSB7XG4gICAgICAgIGlmICgoKGlkeCA9IGNvZGUuaW5kZXhPZihcIihcIiwgOCkpLCAtMSAhPT0gaWR4KSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGNvZGUgPSBjb2RlLnNsaWNlKDgsIGlkeCkudHJpbSgpKSxcbiAgICAgICAgICAgICgwLCBldmFsKShcIih7XCIgKyBKU09OLnN0cmluZ2lmeShjb2RlKSArIFwiOmZ1bmN0aW9uKCl7fX0pXCIpW2NvZGVdXG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGNvZGUuc3RhcnRzV2l0aChcImNsYXNzXCIpICYmXG4gICAgICAgICgoaWR4ID0gY29kZS5pbmRleE9mKFwie1wiLCA1KSksIC0xICE9PSBpZHgpXG4gICAgICApXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKGNvZGUgPSBjb2RlLnNsaWNlKDUsIGlkeCkudHJpbSgpKSxcbiAgICAgICAgICAoMCwgZXZhbCkoXCIoe1wiICsgSlNPTi5zdHJpbmdpZnkoY29kZSkgKyBcIjpjbGFzc3t9fSlcIilbY29kZV1cbiAgICAgICAgKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7fTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VNb2RlbFN0cmluZyhyZXNwb25zZSwgcGFyZW50T2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoXCIkXCIgPT09IHZhbHVlWzBdKSB7XG4gICAgICAgIGlmIChcIiRcIiA9PT0gdmFsdWUpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG51bGwgIT09IGluaXRpYWxpemluZ0hhbmRsZXIgJiZcbiAgICAgICAgICAgICAgXCIwXCIgPT09IGtleSAmJlxuICAgICAgICAgICAgICAoaW5pdGlhbGl6aW5nSGFuZGxlciA9IHtcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGluaXRpYWxpemluZ0hhbmRsZXIsXG4gICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgcmVhc29uOiBudWxsLFxuICAgICAgICAgICAgICAgIGRlcHM6IDAsXG4gICAgICAgICAgICAgICAgZXJyb3JlZDogITFcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgICAgICApO1xuICAgICAgICBzd2l0Y2ggKHZhbHVlWzFdKSB7XG4gICAgICAgICAgY2FzZSBcIiRcIjpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zbGljZSgxKTtcbiAgICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHBhcmVudE9iamVjdCA9IHBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCAxNikpLFxuICAgICAgICAgICAgICAocmVzcG9uc2UgPSBnZXRDaHVuayhyZXNwb25zZSwgcGFyZW50T2JqZWN0KSksXG4gICAgICAgICAgICAgIGNyZWF0ZUxhenlDaHVua1dyYXBwZXIocmVzcG9uc2UpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJAXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocGFyZW50T2JqZWN0ID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDE2KSksXG4gICAgICAgICAgICAgIGdldENodW5rKHJlc3BvbnNlLCBwYXJlbnRPYmplY3QpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICByZXR1cm4gU3ltYm9sLmZvcih2YWx1ZS5zbGljZSgyKSk7XG4gICAgICAgICAgY2FzZSBcIkZcIjpcbiAgICAgICAgICAgIHZhciByZWYgPSB2YWx1ZS5zbGljZSgyKTtcbiAgICAgICAgICAgIHJldHVybiBnZXRPdXRsaW5lZE1vZGVsKFxuICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgbG9hZFNlcnZlclJlZmVyZW5jZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiVFwiOlxuICAgICAgICAgICAgcGFyZW50T2JqZWN0ID0gXCIkXCIgKyB2YWx1ZS5zbGljZSgyKTtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UuX3RlbXBSZWZzO1xuICAgICAgICAgICAgaWYgKG51bGwgPT0gcmVzcG9uc2UpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiTWlzc2luZyBhIHRlbXBvcmFyeSByZWZlcmVuY2Ugc2V0IGJ1dCB0aGUgUlNDIHJlc3BvbnNlIHJldHVybmVkIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZS4gUGFzcyBhIHRlbXBvcmFyeVJlZmVyZW5jZSBvcHRpb24gd2l0aCB0aGUgc2V0IHRoYXQgd2FzIHVzZWQgd2l0aCB0aGUgcmVwbHkuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5nZXQocGFyZW50T2JqZWN0KTtcbiAgICAgICAgICBjYXNlIFwiUVwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgcmVmLCBwYXJlbnRPYmplY3QsIGtleSwgY3JlYXRlTWFwKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiV1wiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgcmVmLCBwYXJlbnRPYmplY3QsIGtleSwgY3JlYXRlU2V0KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiQlwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgcmVmLCBwYXJlbnRPYmplY3QsIGtleSwgY3JlYXRlQmxvYilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIktcIjpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChyZWYgPSB2YWx1ZS5zbGljZSgyKSksXG4gICAgICAgICAgICAgIGdldE91dGxpbmVkTW9kZWwocmVzcG9uc2UsIHJlZiwgcGFyZW50T2JqZWN0LCBrZXksIGNyZWF0ZUZvcm1EYXRhKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiWlwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgcGFyZW50T2JqZWN0LFxuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICByZXNvbHZlRXJyb3JEZXZcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiaVwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgcGFyZW50T2JqZWN0LFxuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBleHRyYWN0SXRlcmF0b3JcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiSVwiOlxuICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgIGNhc2UgXCItXCI6XG4gICAgICAgICAgICByZXR1cm4gXCIkLTBcIiA9PT0gdmFsdWUgPyAtMCA6IC1JbmZpbml0eTtcbiAgICAgICAgICBjYXNlIFwiTlwiOlxuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgICBjYXNlIFwidVwiOlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCJEXCI6XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZS5zbGljZSgyKSkpO1xuICAgICAgICAgIGNhc2UgXCJuXCI6XG4gICAgICAgICAgICByZXR1cm4gQmlnSW50KHZhbHVlLnNsaWNlKDIpKTtcbiAgICAgICAgICBjYXNlIFwiUFwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgcGFyZW50T2JqZWN0LFxuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBhcHBseUNvbnN0cnVjdG9yXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIkVcIjpcbiAgICAgICAgICAgIHJlc3BvbnNlID0gdmFsdWUuc2xpY2UoMik7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoIW1pZ2h0SGF2ZVN0YXRpY0NvbnN0cnVjdG9yLnRlc3QocmVzcG9uc2UpKVxuICAgICAgICAgICAgICAgIHJldHVybiAoMCwgZXZhbCkocmVzcG9uc2UpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoKHJlZiA9IGdldEluZmVycmVkRnVuY3Rpb25BcHByb3hpbWF0ZShyZXNwb25zZSkpLFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXJ0c1dpdGgoXCJPYmplY3QuZGVmaW5lUHJvcGVydHkoXCIpKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gcmVzcG9uc2UubGFzdEluZGV4T2YoJyxcIm5hbWVcIix7dmFsdWU6XCInKTtcbiAgICAgICAgICAgICAgICBpZiAoLTEgIT09IGlkeCkge1xuICAgICAgICAgICAgICAgICAgdmFyIG5hbWUgPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zbGljZShpZHggKyAxNiAtIDEsIHJlc3BvbnNlLmxlbmd0aCAtIDIpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlZiwgXCJuYW1lXCIsIHsgdmFsdWU6IG5hbWUgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgIHJlZiA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlZjtcbiAgICAgICAgICBjYXNlIFwiWVwiOlxuICAgICAgICAgICAgaWYgKDIgPCB2YWx1ZS5sZW5ndGggJiYgKHJlZiA9IHJlc3BvbnNlLl9kZWJ1Z0NoYW5uZWwpKSB7XG4gICAgICAgICAgICAgIGlmIChcIkBcIiA9PT0gdmFsdWVbMl0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIChwYXJlbnRPYmplY3QgPSB2YWx1ZS5zbGljZSgzKSksXG4gICAgICAgICAgICAgICAgICAoa2V5ID0gcGFyc2VJbnQocGFyZW50T2JqZWN0LCAxNikpLFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuX2NodW5rcy5oYXMoa2V5KSB8fCByZWYoXCJQOlwiICsgcGFyZW50T2JqZWN0KSxcbiAgICAgICAgICAgICAgICAgIGdldENodW5rKHJlc3BvbnNlLCBrZXkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgyKTtcbiAgICAgICAgICAgICAgaWR4ID0gcGFyc2VJbnQodmFsdWUsIDE2KTtcbiAgICAgICAgICAgICAgcmVzcG9uc2UuX2NodW5rcy5oYXMoaWR4KSB8fCByZWYoXCJROlwiICsgdmFsdWUpO1xuICAgICAgICAgICAgICByZWYgPSBnZXRDaHVuayhyZXNwb25zZSwgaWR4KTtcbiAgICAgICAgICAgICAgcmV0dXJuIFwiZnVsZmlsbGVkXCIgPT09IHJlZi5zdGF0dXNcbiAgICAgICAgICAgICAgICA/IHJlZi52YWx1ZVxuICAgICAgICAgICAgICAgIDogZGVmaW5lTGF6eUdldHRlcihyZXNwb25zZSwgcmVmLCBwYXJlbnRPYmplY3QsIGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGFyZW50T2JqZWN0LCBrZXksIHtcbiAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiVGhpcyBvYmplY3QgaGFzIGJlZW4gb21pdHRlZCBieSBSZWFjdCBpbiB0aGUgY29uc29sZSBsb2cgdG8gYXZvaWQgc2VuZGluZyB0b28gbXVjaCBkYXRhIGZyb20gdGhlIHNlcnZlci4gVHJ5IGxvZ2dpbmcgc21hbGxlciBvciBtb3JlIHNwZWNpZmljIG9iamVjdHMuXCI7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGVudW1lcmFibGU6ICEwLFxuICAgICAgICAgICAgICBjb25maWd1cmFibGU6ICExXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMSkpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCByZWYsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVNb2RlbClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWlzc2luZ0NhbGwoKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ1RyeWluZyB0byBjYWxsIGEgZnVuY3Rpb24gZnJvbSBcInVzZSBzZXJ2ZXJcIiBidXQgdGhlIGNhbGxTZXJ2ZXIgb3B0aW9uIHdhcyBub3QgaW1wbGVtZW50ZWQgaW4geW91ciByb3V0ZXIgcnVudGltZS4nXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBSZXNwb25zZUluc3RhbmNlKFxuICAgICAgYnVuZGxlckNvbmZpZyxcbiAgICAgIHNlcnZlclJlZmVyZW5jZUNvbmZpZyxcbiAgICAgIG1vZHVsZUxvYWRpbmcsXG4gICAgICBjYWxsU2VydmVyLFxuICAgICAgZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgIG5vbmNlLFxuICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcyxcbiAgICAgIGZpbmRTb3VyY2VNYXBVUkwsXG4gICAgICByZXBsYXlDb25zb2xlLFxuICAgICAgZW52aXJvbm1lbnROYW1lLFxuICAgICAgZGVidWdDaGFubmVsXG4gICAgKSB7XG4gICAgICB2YXIgY2h1bmtzID0gbmV3IE1hcCgpO1xuICAgICAgdGhpcy5fYnVuZGxlckNvbmZpZyA9IGJ1bmRsZXJDb25maWc7XG4gICAgICB0aGlzLl9zZXJ2ZXJSZWZlcmVuY2VDb25maWcgPSBzZXJ2ZXJSZWZlcmVuY2VDb25maWc7XG4gICAgICB0aGlzLl9tb2R1bGVMb2FkaW5nID0gbW9kdWxlTG9hZGluZztcbiAgICAgIHRoaXMuX2NhbGxTZXJ2ZXIgPSB2b2lkIDAgIT09IGNhbGxTZXJ2ZXIgPyBjYWxsU2VydmVyIDogbWlzc2luZ0NhbGw7XG4gICAgICB0aGlzLl9lbmNvZGVGb3JtQWN0aW9uID0gZW5jb2RlRm9ybUFjdGlvbjtcbiAgICAgIHRoaXMuX25vbmNlID0gbm9uY2U7XG4gICAgICB0aGlzLl9jaHVua3MgPSBjaHVua3M7XG4gICAgICB0aGlzLl9zdHJpbmdEZWNvZGVyID0gbmV3IHV0aWwuVGV4dERlY29kZXIoKTtcbiAgICAgIHRoaXMuX2Zyb21KU09OID0gbnVsbDtcbiAgICAgIHRoaXMuX2Nsb3NlZCA9ICExO1xuICAgICAgdGhpcy5fY2xvc2VkUmVhc29uID0gbnVsbDtcbiAgICAgIHRoaXMuX3RlbXBSZWZzID0gdGVtcG9yYXJ5UmVmZXJlbmNlcztcbiAgICAgIHRoaXMuX3BlbmRpbmdDaHVua3MgPSAwO1xuICAgICAgdGhpcy5fd2Vha1Jlc3BvbnNlID0geyB3ZWFrOiBuZXcgV2Vha1JlZih0aGlzKSwgcmVzcG9uc2U6IHRoaXMgfTtcbiAgICAgIHRoaXMuX2RlYnVnUm9vdE93bmVyID0gYnVuZGxlckNvbmZpZyA9XG4gICAgICAgIHZvaWQgMCA9PT0gUmVhY3RTaGFyZWRJbnRlcmFsc1NlcnZlciB8fFxuICAgICAgICBudWxsID09PSBSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyLkFcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IFJlYWN0U2hhcmVkSW50ZXJhbHNTZXJ2ZXIuQS5nZXRPd25lcigpO1xuICAgICAgdGhpcy5fZGVidWdSb290U3RhY2sgPVxuICAgICAgICBudWxsICE9PSBidW5kbGVyQ29uZmlnID8gRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIikgOiBudWxsO1xuICAgICAgZW52aXJvbm1lbnROYW1lID0gdm9pZCAwID09PSBlbnZpcm9ubWVudE5hbWUgPyBcIlNlcnZlclwiIDogZW52aXJvbm1lbnROYW1lO1xuICAgICAgc3VwcG9ydHNDcmVhdGVUYXNrICYmXG4gICAgICAgICh0aGlzLl9kZWJ1Z1Jvb3RUYXNrID0gY29uc29sZS5jcmVhdGVUYXNrKFxuICAgICAgICAgICdcInVzZSAnICsgZW52aXJvbm1lbnROYW1lLnRvTG93ZXJDYXNlKCkgKyAnXCInXG4gICAgICAgICkpO1xuICAgICAgdGhpcy5fZGVidWdGaW5kU291cmNlTWFwVVJMID0gZmluZFNvdXJjZU1hcFVSTDtcbiAgICAgIHRoaXMuX2RlYnVnQ2hhbm5lbCA9IGRlYnVnQ2hhbm5lbDtcbiAgICAgIHRoaXMuX2Jsb2NrZWRDb25zb2xlID0gbnVsbDtcbiAgICAgIHRoaXMuX3JlcGxheUNvbnNvbGUgPSByZXBsYXlDb25zb2xlO1xuICAgICAgdGhpcy5fcm9vdEVudmlyb25tZW50TmFtZSA9IGVudmlyb25tZW50TmFtZTtcbiAgICAgIGRlYnVnQ2hhbm5lbCAmJlxuICAgICAgICAobnVsbCA9PT0gZGVidWdDaGFubmVsUmVnaXN0cnlcbiAgICAgICAgICA/IChkZWJ1Z0NoYW5uZWwoXCJcIiksICh0aGlzLl9kZWJ1Z0NoYW5uZWwgPSB2b2lkIDApKVxuICAgICAgICAgIDogZGVidWdDaGFubmVsUmVnaXN0cnkucmVnaXN0ZXIodGhpcywgZGVidWdDaGFubmVsKSk7XG4gICAgICB0aGlzLl9mcm9tSlNPTiA9IGNyZWF0ZUZyb21KU09OQ2FsbGJhY2sodGhpcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVN0cmVhbVN0YXRlKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgX3Jvd1N0YXRlOiAwLFxuICAgICAgICBfcm93SUQ6IDAsXG4gICAgICAgIF9yb3dUYWc6IDAsXG4gICAgICAgIF9yb3dMZW5ndGg6IDAsXG4gICAgICAgIF9idWZmZXI6IFtdXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlQnVmZmVyKHJlc3BvbnNlLCBpZCwgYnVmZmVyKSB7XG4gICAgICB2YXIgY2h1bmtzID0gcmVzcG9uc2UuX2NodW5rcyxcbiAgICAgICAgY2h1bmsgPSBjaHVua3MuZ2V0KGlkKTtcbiAgICAgIGNodW5rICYmIFwicGVuZGluZ1wiICE9PSBjaHVuay5zdGF0dXNcbiAgICAgICAgPyBjaHVuay5yZWFzb24uZW5xdWV1ZVZhbHVlKGJ1ZmZlcilcbiAgICAgICAgOiAoY2h1bmsgJiYgcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspLFxuICAgICAgICAgIGNodW5rcy5zZXQoaWQsIG5ldyBSZWFjdFByb21pc2UoXCJmdWxmaWxsZWRcIiwgYnVmZmVyLCBudWxsKSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlTW9kdWxlKHJlc3BvbnNlLCBpZCwgbW9kZWwpIHtcbiAgICAgIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzLFxuICAgICAgICBjaHVuayA9IGNodW5rcy5nZXQoaWQpO1xuICAgICAgbW9kZWwgPSBKU09OLnBhcnNlKG1vZGVsLCByZXNwb25zZS5fZnJvbUpTT04pO1xuICAgICAgdmFyIGNsaWVudFJlZmVyZW5jZSA9IHJlc29sdmVDbGllbnRSZWZlcmVuY2UoXG4gICAgICAgIHJlc3BvbnNlLl9idW5kbGVyQ29uZmlnLFxuICAgICAgICBtb2RlbFxuICAgICAgKTtcbiAgICAgIHByZXBhcmVEZXN0aW5hdGlvbldpdGhDaHVua3MoXG4gICAgICAgIHJlc3BvbnNlLl9tb2R1bGVMb2FkaW5nLFxuICAgICAgICBtb2RlbFsxXSxcbiAgICAgICAgcmVzcG9uc2UuX25vbmNlXG4gICAgICApO1xuICAgICAgaWYgKChtb2RlbCA9IHByZWxvYWRNb2R1bGUoY2xpZW50UmVmZXJlbmNlKSkpIHtcbiAgICAgICAgaWYgKGNodW5rKSB7XG4gICAgICAgICAgcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspO1xuICAgICAgICAgIHZhciBibG9ja2VkQ2h1bmsgPSBjaHVuaztcbiAgICAgICAgICBibG9ja2VkQ2h1bmsuc3RhdHVzID0gXCJibG9ja2VkXCI7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIChibG9ja2VkQ2h1bmsgPSBuZXcgUmVhY3RQcm9taXNlKFwiYmxvY2tlZFwiLCBudWxsLCBudWxsKSksXG4gICAgICAgICAgICBjaHVua3Muc2V0KGlkLCBibG9ja2VkQ2h1bmspO1xuICAgICAgICBtb2RlbC50aGVuKFxuICAgICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlTW9kdWxlQ2h1bmsocmVzcG9uc2UsIGJsb2NrZWRDaHVuaywgY2xpZW50UmVmZXJlbmNlKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGJsb2NrZWRDaHVuaywgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZVxuICAgICAgICBjaHVua1xuICAgICAgICAgID8gcmVzb2x2ZU1vZHVsZUNodW5rKHJlc3BvbnNlLCBjaHVuaywgY2xpZW50UmVmZXJlbmNlKVxuICAgICAgICAgIDogY2h1bmtzLnNldChcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIG5ldyBSZWFjdFByb21pc2UoXCJyZXNvbHZlZF9tb2R1bGVcIiwgY2xpZW50UmVmZXJlbmNlLCBudWxsKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVN0cmVhbShyZXNwb25zZSwgaWQsIHN0cmVhbSwgY29udHJvbGxlcikge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBpZiAoIWNodW5rKVxuICAgICAgICBjaHVua3Muc2V0KGlkLCBuZXcgUmVhY3RQcm9taXNlKFwiZnVsZmlsbGVkXCIsIHN0cmVhbSwgY29udHJvbGxlcikpO1xuICAgICAgZWxzZSBpZiAoXCJwZW5kaW5nXCIgPT09IGNodW5rLnN0YXR1cykge1xuICAgICAgICByZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCBjaHVuayk7XG4gICAgICAgIGlkID0gY2h1bmsudmFsdWU7XG4gICAgICAgIGlmIChudWxsICE9IGNodW5rLl9kZWJ1Z0NodW5rKSB7XG4gICAgICAgICAgY2h1bmtzID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gbnVsbDtcbiAgICAgICAgICBjaHVuay5zdGF0dXMgPSBcImJsb2NrZWRcIjtcbiAgICAgICAgICBjaHVuay52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgY2h1bmsucmVhc29uID0gbnVsbDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoaW5pdGlhbGl6ZURlYnVnQ2h1bmsocmVzcG9uc2UsIGNodW5rKSxcbiAgICAgICAgICAgICAgKGNodW5rLl9kZWJ1Z0NodW5rID0gbnVsbCksXG4gICAgICAgICAgICAgIG51bGwgIT09IGluaXRpYWxpemluZ0hhbmRsZXIgJiZcbiAgICAgICAgICAgICAgICAhaW5pdGlhbGl6aW5nSGFuZGxlci5lcnJvcmVkICYmXG4gICAgICAgICAgICAgICAgMCA8IGluaXRpYWxpemluZ0hhbmRsZXIuZGVwcylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyLnZhbHVlID0gc3RyZWFtO1xuICAgICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyLnJlYXNvbiA9IGNvbnRyb2xsZXI7XG4gICAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIuY2h1bmsgPSBjaHVuaztcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gY2h1bmtzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjaHVuay5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICBjaHVuay52YWx1ZSA9IHN0cmVhbTtcbiAgICAgICAgY2h1bmsucmVhc29uID0gY29udHJvbGxlcjtcbiAgICAgICAgbnVsbCAhPT0gaWQgJiYgd2FrZUNodW5rKGlkLCBjaHVuay52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0UmVhZGFibGVTdHJlYW0ocmVzcG9uc2UsIGlkLCB0eXBlKSB7XG4gICAgICB2YXIgY29udHJvbGxlciA9IG51bGw7XG4gICAgICB0eXBlID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgY29udHJvbGxlciA9IGM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbDtcbiAgICAgIHJlc29sdmVTdHJlYW0ocmVzcG9uc2UsIGlkLCB0eXBlLCB7XG4gICAgICAgIGVucXVldWVWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgbnVsbCA9PT0gcHJldmlvdXNCbG9ja2VkQ2h1bmtcbiAgICAgICAgICAgID8gY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKVxuICAgICAgICAgICAgOiBwcmV2aW91c0Jsb2NrZWRDaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5xdWV1ZU1vZGVsOiBmdW5jdGlvbiAoanNvbikge1xuICAgICAgICAgIGlmIChudWxsID09PSBwcmV2aW91c0Jsb2NrZWRDaHVuaykge1xuICAgICAgICAgICAgdmFyIGNodW5rID0gY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCBqc29uKTtcbiAgICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKTtcbiAgICAgICAgICAgIFwiZnVsZmlsbGVkXCIgPT09IGNodW5rLnN0YXR1c1xuICAgICAgICAgICAgICA/IGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuay52YWx1ZSlcbiAgICAgICAgICAgICAgOiAoY2h1bmsudGhlbihcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUodik7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAocHJldmlvdXNCbG9ja2VkQ2h1bmsgPSBjaHVuaykpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaHVuayA9IHByZXZpb3VzQmxvY2tlZENodW5rO1xuICAgICAgICAgICAgdmFyIF9jaHVuazMgPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpO1xuICAgICAgICAgICAgX2NodW5rMy50aGVuKFxuICAgICAgICAgICAgICBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUodik7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwcmV2aW91c0Jsb2NrZWRDaHVuayA9IF9jaHVuazM7XG4gICAgICAgICAgICBjaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcHJldmlvdXNCbG9ja2VkQ2h1bmsgPT09IF9jaHVuazMgJiYgKHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbCk7XG4gICAgICAgICAgICAgIHJlc29sdmVNb2RlbENodW5rKHJlc3BvbnNlLCBfY2h1bmszLCBqc29uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gcHJldmlvdXNCbG9ja2VkQ2h1bmspIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBibG9ja2VkQ2h1bmsgPSBwcmV2aW91c0Jsb2NrZWRDaHVuaztcbiAgICAgICAgICAgIHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbDtcbiAgICAgICAgICAgIGJsb2NrZWRDaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgIGlmIChudWxsID09PSBwcmV2aW91c0Jsb2NrZWRDaHVuaykgY29udHJvbGxlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgYmxvY2tlZENodW5rID0gcHJldmlvdXNCbG9ja2VkQ2h1bms7XG4gICAgICAgICAgICBwcmV2aW91c0Jsb2NrZWRDaHVuayA9IG51bGw7XG4gICAgICAgICAgICBibG9ja2VkQ2h1bmsudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFzeW5jSXRlcmF0b3IoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlSXRlcmF0b3IobmV4dCkge1xuICAgICAgbmV4dCA9IHsgbmV4dDogbmV4dCB9O1xuICAgICAgbmV4dFtBU1lOQ19JVEVSQVRPUl0gPSBhc3luY0l0ZXJhdG9yO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0QXN5bmNJdGVyYWJsZShyZXNwb25zZSwgaWQsIGl0ZXJhdG9yKSB7XG4gICAgICB2YXIgYnVmZmVyID0gW10sXG4gICAgICAgIGNsb3NlZCA9ICExLFxuICAgICAgICBuZXh0V3JpdGVJbmRleCA9IDAsXG4gICAgICAgIGl0ZXJhYmxlID0ge307XG4gICAgICBpdGVyYWJsZVtBU1lOQ19JVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBuZXh0UmVhZEluZGV4ID0gMDtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUl0ZXJhdG9yKGZ1bmN0aW9uIChhcmcpIHtcbiAgICAgICAgICBpZiAodm9pZCAwICE9PSBhcmcpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJWYWx1ZXMgY2Fubm90IGJlIHBhc3NlZCB0byBuZXh0KCkgb2YgQXN5bmNJdGVyYWJsZXMgcGFzc2VkIHRvIENsaWVudCBDb21wb25lbnRzLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChuZXh0UmVhZEluZGV4ID09PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoY2xvc2VkKVxuICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgICAgICAgICBcImZ1bGZpbGxlZFwiLFxuICAgICAgICAgICAgICAgIHsgZG9uZTogITAsIHZhbHVlOiB2b2lkIDAgfSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBidWZmZXJbbmV4dFJlYWRJbmRleF0gPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYnVmZmVyW25leHRSZWFkSW5kZXgrK107XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJlc29sdmVTdHJlYW0oXG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgICBpZCxcbiAgICAgICAgaXRlcmF0b3IgPyBpdGVyYWJsZVtBU1lOQ19JVEVSQVRPUl0oKSA6IGl0ZXJhYmxlLFxuICAgICAgICB7XG4gICAgICAgICAgZW5xdWV1ZVZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChuZXh0V3JpdGVJbmRleCA9PT0gYnVmZmVyLmxlbmd0aClcbiAgICAgICAgICAgICAgYnVmZmVyW25leHRXcml0ZUluZGV4XSA9IG5ldyBSZWFjdFByb21pc2UoXG4gICAgICAgICAgICAgICAgXCJmdWxmaWxsZWRcIixcbiAgICAgICAgICAgICAgICB7IGRvbmU6ICExLCB2YWx1ZTogdmFsdWUgfSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIGNodW5rID0gYnVmZmVyW25leHRXcml0ZUluZGV4XSxcbiAgICAgICAgICAgICAgICByZXNvbHZlTGlzdGVuZXJzID0gY2h1bmsudmFsdWUsXG4gICAgICAgICAgICAgICAgcmVqZWN0TGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICAgICAgICAgICAgICBjaHVuay5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgICAgICBjaHVuay52YWx1ZSA9IHsgZG9uZTogITEsIHZhbHVlOiB2YWx1ZSB9O1xuICAgICAgICAgICAgICBudWxsICE9PSByZXNvbHZlTGlzdGVuZXJzICYmXG4gICAgICAgICAgICAgICAgd2FrZUNodW5rSWZJbml0aWFsaXplZChcbiAgICAgICAgICAgICAgICAgIGNodW5rLFxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycyxcbiAgICAgICAgICAgICAgICAgIHJlamVjdExpc3RlbmVyc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCsrO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5xdWV1ZU1vZGVsOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIG5leHRXcml0ZUluZGV4ID09PSBidWZmZXIubGVuZ3RoXG4gICAgICAgICAgICAgID8gKGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0gPSBjcmVhdGVSZXNvbHZlZEl0ZXJhdG9yUmVzdWx0Q2h1bmsoXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICA6IHJlc29sdmVJdGVyYXRvclJlc3VsdENodW5rKFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICBidWZmZXJbbmV4dFdyaXRlSW5kZXhdLFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCsrO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgY2xvc2VkID0gITA7XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCA9PT0gYnVmZmVyLmxlbmd0aFxuICAgICAgICAgICAgICA/IChidWZmZXJbbmV4dFdyaXRlSW5kZXhdID0gY3JlYXRlUmVzb2x2ZWRJdGVyYXRvclJlc3VsdENodW5rKFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICEwXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgOiByZXNvbHZlSXRlcmF0b3JSZXN1bHRDaHVuayhcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgYnVmZmVyW25leHRXcml0ZUluZGV4XSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZm9yIChuZXh0V3JpdGVJbmRleCsrOyBuZXh0V3JpdGVJbmRleCA8IGJ1ZmZlci5sZW5ndGg7IClcbiAgICAgICAgICAgICAgcmVzb2x2ZUl0ZXJhdG9yUmVzdWx0Q2h1bmsoXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgYnVmZmVyW25leHRXcml0ZUluZGV4KytdLFxuICAgICAgICAgICAgICAgICdcIiR1bmRlZmluZWRcIicsXG4gICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNsb3NlZCA9ICEwO1xuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgbmV4dFdyaXRlSW5kZXggPT09IGJ1ZmZlci5sZW5ndGggJiZcbiAgICAgICAgICAgICAgKGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0gPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpKTtcbiAgICAgICAgICAgICAgbmV4dFdyaXRlSW5kZXggPCBidWZmZXIubGVuZ3RoO1xuXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGJ1ZmZlcltuZXh0V3JpdGVJbmRleCsrXSwgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUVycm9yRGV2KHJlc3BvbnNlLCBlcnJvckluZm8pIHtcbiAgICAgIHZhciBuYW1lID0gZXJyb3JJbmZvLm5hbWUsXG4gICAgICAgIGVudiA9IGVycm9ySW5mby5lbnY7XG4gICAgICBlcnJvckluZm8gPSBidWlsZEZha2VDYWxsU3RhY2soXG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgICBlcnJvckluZm8uc3RhY2ssXG4gICAgICAgIGVudixcbiAgICAgICAgITEsXG4gICAgICAgIEVycm9yLmJpbmQoXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBlcnJvckluZm8ubWVzc2FnZSB8fFxuICAgICAgICAgICAgXCJBbiBlcnJvciBvY2N1cnJlZCBpbiB0aGUgU2VydmVyIENvbXBvbmVudHMgcmVuZGVyIGJ1dCBubyBtZXNzYWdlIHdhcyBwcm92aWRlZFwiXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICByZXNwb25zZSA9IGdldFJvb3RUYXNrKHJlc3BvbnNlLCBlbnYpO1xuICAgICAgcmVzcG9uc2UgPSBudWxsICE9IHJlc3BvbnNlID8gcmVzcG9uc2UucnVuKGVycm9ySW5mbykgOiBlcnJvckluZm8oKTtcbiAgICAgIHJlc3BvbnNlLm5hbWUgPSBuYW1lO1xuICAgICAgcmVzcG9uc2UuZW52aXJvbm1lbnROYW1lID0gZW52O1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGYWtlRnVuY3Rpb24oXG4gICAgICBuYW1lLFxuICAgICAgZmlsZW5hbWUsXG4gICAgICBzb3VyY2VNYXAsXG4gICAgICBsaW5lLFxuICAgICAgY29sLFxuICAgICAgZW5jbG9zaW5nTGluZSxcbiAgICAgIGVuY2xvc2luZ0NvbCxcbiAgICAgIGVudmlyb25tZW50TmFtZVxuICAgICkge1xuICAgICAgbmFtZSB8fCAobmFtZSA9IFwiPGFub255bW91cz5cIik7XG4gICAgICB2YXIgZW5jb2RlZE5hbWUgPSBKU09OLnN0cmluZ2lmeShuYW1lKTtcbiAgICAgIDEgPiBlbmNsb3NpbmdMaW5lID8gKGVuY2xvc2luZ0xpbmUgPSAwKSA6IGVuY2xvc2luZ0xpbmUtLTtcbiAgICAgIDEgPiBlbmNsb3NpbmdDb2wgPyAoZW5jbG9zaW5nQ29sID0gMCkgOiBlbmNsb3NpbmdDb2wtLTtcbiAgICAgIDEgPiBsaW5lID8gKGxpbmUgPSAwKSA6IGxpbmUtLTtcbiAgICAgIDEgPiBjb2wgPyAoY29sID0gMCkgOiBjb2wtLTtcbiAgICAgIGlmIChcbiAgICAgICAgbGluZSA8IGVuY2xvc2luZ0xpbmUgfHxcbiAgICAgICAgKGxpbmUgPT09IGVuY2xvc2luZ0xpbmUgJiYgY29sIDwgZW5jbG9zaW5nQ29sKVxuICAgICAgKVxuICAgICAgICBlbmNsb3NpbmdDb2wgPSBlbmNsb3NpbmdMaW5lID0gMDtcbiAgICAgIDEgPiBsaW5lXG4gICAgICAgID8gKChsaW5lID0gZW5jb2RlZE5hbWUubGVuZ3RoICsgMyksXG4gICAgICAgICAgKGVuY2xvc2luZ0NvbCAtPSBsaW5lKSxcbiAgICAgICAgICAwID4gZW5jbG9zaW5nQ29sICYmIChlbmNsb3NpbmdDb2wgPSAwKSxcbiAgICAgICAgICAoY29sID0gY29sIC0gZW5jbG9zaW5nQ29sIC0gbGluZSAtIDMpLFxuICAgICAgICAgIDAgPiBjb2wgJiYgKGNvbCA9IDApLFxuICAgICAgICAgIChlbmNvZGVkTmFtZSA9XG4gICAgICAgICAgICBcIih7XCIgK1xuICAgICAgICAgICAgZW5jb2RlZE5hbWUgK1xuICAgICAgICAgICAgXCI6XCIgK1xuICAgICAgICAgICAgXCIgXCIucmVwZWF0KGVuY2xvc2luZ0NvbCkgK1xuICAgICAgICAgICAgXCJfPT5cIiArXG4gICAgICAgICAgICBcIiBcIi5yZXBlYXQoY29sKSArXG4gICAgICAgICAgICBcIl8oKX0pXCIpKVxuICAgICAgICA6IDEgPiBlbmNsb3NpbmdMaW5lXG4gICAgICAgICAgPyAoKGVuY2xvc2luZ0NvbCAtPSBlbmNvZGVkTmFtZS5sZW5ndGggKyAzKSxcbiAgICAgICAgICAgIDAgPiBlbmNsb3NpbmdDb2wgJiYgKGVuY2xvc2luZ0NvbCA9IDApLFxuICAgICAgICAgICAgKGVuY29kZWROYW1lID1cbiAgICAgICAgICAgICAgXCIoe1wiICtcbiAgICAgICAgICAgICAgZW5jb2RlZE5hbWUgK1xuICAgICAgICAgICAgICBcIjpcIiArXG4gICAgICAgICAgICAgIFwiIFwiLnJlcGVhdChlbmNsb3NpbmdDb2wpICtcbiAgICAgICAgICAgICAgXCJfPT5cIiArXG4gICAgICAgICAgICAgIFwiXFxuXCIucmVwZWF0KGxpbmUgLSBlbmNsb3NpbmdMaW5lKSArXG4gICAgICAgICAgICAgIFwiIFwiLnJlcGVhdChjb2wpICtcbiAgICAgICAgICAgICAgXCJfKCl9KVwiKSlcbiAgICAgICAgICA6IGVuY2xvc2luZ0xpbmUgPT09IGxpbmVcbiAgICAgICAgICAgID8gKChjb2wgPSBjb2wgLSBlbmNsb3NpbmdDb2wgLSAzKSxcbiAgICAgICAgICAgICAgMCA+IGNvbCAmJiAoY29sID0gMCksXG4gICAgICAgICAgICAgIChlbmNvZGVkTmFtZSA9XG4gICAgICAgICAgICAgICAgXCJcXG5cIi5yZXBlYXQoZW5jbG9zaW5nTGluZSAtIDEpICtcbiAgICAgICAgICAgICAgICBcIih7XCIgK1xuICAgICAgICAgICAgICAgIGVuY29kZWROYW1lICtcbiAgICAgICAgICAgICAgICBcIjpcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGVuY2xvc2luZ0NvbCkgK1xuICAgICAgICAgICAgICAgIFwiXz0+XCIgK1xuICAgICAgICAgICAgICAgIFwiIFwiLnJlcGVhdChjb2wpICtcbiAgICAgICAgICAgICAgICBcIl8oKX0pXCIpKVxuICAgICAgICAgICAgOiAoZW5jb2RlZE5hbWUgPVxuICAgICAgICAgICAgICAgIFwiXFxuXCIucmVwZWF0KGVuY2xvc2luZ0xpbmUgLSAxKSArXG4gICAgICAgICAgICAgICAgXCIoe1wiICtcbiAgICAgICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICAgICAgXCI6XFxuXCIgK1xuICAgICAgICAgICAgICAgIFwiIFwiLnJlcGVhdChlbmNsb3NpbmdDb2wpICtcbiAgICAgICAgICAgICAgICBcIl89PlwiICtcbiAgICAgICAgICAgICAgICBcIlxcblwiLnJlcGVhdChsaW5lIC0gZW5jbG9zaW5nTGluZSkgK1xuICAgICAgICAgICAgICAgIFwiIFwiLnJlcGVhdChjb2wpICtcbiAgICAgICAgICAgICAgICBcIl8oKX0pXCIpO1xuICAgICAgZW5jb2RlZE5hbWUgPVxuICAgICAgICAxID4gZW5jbG9zaW5nTGluZVxuICAgICAgICAgID8gZW5jb2RlZE5hbWUgK1xuICAgICAgICAgICAgXCJcXG4vKiBUaGlzIG1vZHVsZSB3YXMgcmVuZGVyZWQgYnkgYSBTZXJ2ZXIgQ29tcG9uZW50LiBUdXJuIG9uIFNvdXJjZSBNYXBzIHRvIHNlZSB0aGUgc2VydmVyIHNvdXJjZS4gKi9cIlxuICAgICAgICAgIDogXCIvKiBUaGlzIG1vZHVsZSB3YXMgcmVuZGVyZWQgYnkgYSBTZXJ2ZXIgQ29tcG9uZW50LiBUdXJuIG9uIFNvdXJjZSBNYXBzIHRvIHNlZSB0aGUgc2VydmVyIHNvdXJjZS4gKi9cIiArXG4gICAgICAgICAgICBlbmNvZGVkTmFtZTtcbiAgICAgIGZpbGVuYW1lLnN0YXJ0c1dpdGgoXCIvXCIpICYmIChmaWxlbmFtZSA9IFwiZmlsZTovL1wiICsgZmlsZW5hbWUpO1xuICAgICAgc291cmNlTWFwXG4gICAgICAgID8gKChlbmNvZGVkTmFtZSArPVxuICAgICAgICAgICAgXCJcXG4vLyMgc291cmNlVVJMPWFib3V0Oi8vUmVhY3QvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGVudmlyb25tZW50TmFtZSkgK1xuICAgICAgICAgICAgXCIvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJKGZpbGVuYW1lKSArXG4gICAgICAgICAgICBcIj9cIiArXG4gICAgICAgICAgICBmYWtlRnVuY3Rpb25JZHgrKyksXG4gICAgICAgICAgKGVuY29kZWROYW1lICs9IFwiXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9XCIgKyBzb3VyY2VNYXApKVxuICAgICAgICA6IChlbmNvZGVkTmFtZSA9IGZpbGVuYW1lXG4gICAgICAgICAgICA/IGVuY29kZWROYW1lICsgKFwiXFxuLy8jIHNvdXJjZVVSTD1cIiArIGVuY29kZVVSSShmaWxlbmFtZSkpXG4gICAgICAgICAgICA6IGVuY29kZWROYW1lICsgXCJcXG4vLyMgc291cmNlVVJMPTxhbm9ueW1vdXM+XCIpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIGZuID0gKDAsIGV2YWwpKGVuY29kZWROYW1lKVtuYW1lXTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgZm4gPSBmdW5jdGlvbiAoXykge1xuICAgICAgICAgIHJldHVybiBfKCk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gZm47XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgc3RhY2ssXG4gICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICB1c2VFbmNsb3NpbmdMaW5lLFxuICAgICAgaW5uZXJDYWxsXG4gICAgKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBmcmFtZSA9IHN0YWNrW2ldLFxuICAgICAgICAgIGZyYW1lS2V5ID1cbiAgICAgICAgICAgIGZyYW1lLmpvaW4oXCItXCIpICtcbiAgICAgICAgICAgIFwiLVwiICtcbiAgICAgICAgICAgIGVudmlyb25tZW50TmFtZSArXG4gICAgICAgICAgICAodXNlRW5jbG9zaW5nTGluZSA/IFwiLWVcIiA6IFwiLW5cIiksXG4gICAgICAgICAgZm4gPSBmYWtlRnVuY3Rpb25DYWNoZS5nZXQoZnJhbWVLZXkpO1xuICAgICAgICBpZiAodm9pZCAwID09PSBmbikge1xuICAgICAgICAgIGZuID0gZnJhbWVbMF07XG4gICAgICAgICAgdmFyIGZpbGVuYW1lID0gZnJhbWVbMV0sXG4gICAgICAgICAgICBsaW5lID0gZnJhbWVbMl0sXG4gICAgICAgICAgICBjb2wgPSBmcmFtZVszXSxcbiAgICAgICAgICAgIGVuY2xvc2luZ0xpbmUgPSBmcmFtZVs0XTtcbiAgICAgICAgICBmcmFtZSA9IGZyYW1lWzVdO1xuICAgICAgICAgIHZhciBmaW5kU291cmNlTWFwVVJMID0gcmVzcG9uc2UuX2RlYnVnRmluZFNvdXJjZU1hcFVSTDtcbiAgICAgICAgICBmaW5kU291cmNlTWFwVVJMID0gZmluZFNvdXJjZU1hcFVSTFxuICAgICAgICAgICAgPyBmaW5kU291cmNlTWFwVVJMKGZpbGVuYW1lLCBlbnZpcm9ubWVudE5hbWUpXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgZm4gPSBjcmVhdGVGYWtlRnVuY3Rpb24oXG4gICAgICAgICAgICBmbixcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgICBjb2wsXG4gICAgICAgICAgICB1c2VFbmNsb3NpbmdMaW5lID8gbGluZSA6IGVuY2xvc2luZ0xpbmUsXG4gICAgICAgICAgICB1c2VFbmNsb3NpbmdMaW5lID8gY29sIDogZnJhbWUsXG4gICAgICAgICAgICBlbnZpcm9ubWVudE5hbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGZha2VGdW5jdGlvbkNhY2hlLnNldChmcmFtZUtleSwgZm4pO1xuICAgICAgICB9XG4gICAgICAgIGlubmVyQ2FsbCA9IGZuLmJpbmQobnVsbCwgaW5uZXJDYWxsKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbm5lckNhbGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJvb3RUYXNrKHJlc3BvbnNlLCBjaGlsZEVudmlyb25tZW50TmFtZSkge1xuICAgICAgdmFyIHJvb3RUYXNrID0gcmVzcG9uc2UuX2RlYnVnUm9vdFRhc2s7XG4gICAgICByZXR1cm4gcm9vdFRhc2tcbiAgICAgICAgPyByZXNwb25zZS5fcm9vdEVudmlyb25tZW50TmFtZSAhPT0gY2hpbGRFbnZpcm9ubWVudE5hbWVcbiAgICAgICAgICA/ICgocmVzcG9uc2UgPSBjb25zb2xlLmNyZWF0ZVRhc2suYmluZChcbiAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgJ1widXNlICcgKyBjaGlsZEVudmlyb25tZW50TmFtZS50b0xvd2VyQ2FzZSgpICsgJ1wiJ1xuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICByb290VGFzay5ydW4ocmVzcG9uc2UpKVxuICAgICAgICAgIDogcm9vdFRhc2tcbiAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplRmFrZVRhc2socmVzcG9uc2UsIGRlYnVnSW5mbykge1xuICAgICAgaWYgKCFzdXBwb3J0c0NyZWF0ZVRhc2sgfHwgbnVsbCA9PSBkZWJ1Z0luZm8uc3RhY2spIHJldHVybiBudWxsO1xuICAgICAgdmFyIGNhY2hlZEVudHJ5ID0gZGVidWdJbmZvLmRlYnVnVGFzaztcbiAgICAgIGlmICh2b2lkIDAgIT09IGNhY2hlZEVudHJ5KSByZXR1cm4gY2FjaGVkRW50cnk7XG4gICAgICB2YXIgdXNlRW5jbG9zaW5nTGluZSA9IHZvaWQgMCA9PT0gZGVidWdJbmZvLmtleSxcbiAgICAgICAgc3RhY2sgPSBkZWJ1Z0luZm8uc3RhY2ssXG4gICAgICAgIGVudiA9XG4gICAgICAgICAgbnVsbCA9PSBkZWJ1Z0luZm8uZW52ID8gcmVzcG9uc2UuX3Jvb3RFbnZpcm9ubWVudE5hbWUgOiBkZWJ1Z0luZm8uZW52O1xuICAgICAgY2FjaGVkRW50cnkgPVxuICAgICAgICBudWxsID09IGRlYnVnSW5mby5vd25lciB8fCBudWxsID09IGRlYnVnSW5mby5vd25lci5lbnZcbiAgICAgICAgICA/IHJlc3BvbnNlLl9yb290RW52aXJvbm1lbnROYW1lXG4gICAgICAgICAgOiBkZWJ1Z0luZm8ub3duZXIuZW52O1xuICAgICAgdmFyIG93bmVyVGFzayA9XG4gICAgICAgIG51bGwgPT0gZGVidWdJbmZvLm93bmVyXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiBpbml0aWFsaXplRmFrZVRhc2socmVzcG9uc2UsIGRlYnVnSW5mby5vd25lcik7XG4gICAgICBlbnYgPVxuICAgICAgICBlbnYgIT09IGNhY2hlZEVudHJ5XG4gICAgICAgICAgPyAnXCJ1c2UgJyArIGVudi50b0xvd2VyQ2FzZSgpICsgJ1wiJ1xuICAgICAgICAgIDogdm9pZCAwICE9PSBkZWJ1Z0luZm8ua2V5XG4gICAgICAgICAgICA/IFwiPFwiICsgKGRlYnVnSW5mby5uYW1lIHx8IFwiLi4uXCIpICsgXCI+XCJcbiAgICAgICAgICAgIDogdm9pZCAwICE9PSBkZWJ1Z0luZm8ubmFtZVxuICAgICAgICAgICAgICA/IGRlYnVnSW5mby5uYW1lIHx8IFwidW5rbm93blwiXG4gICAgICAgICAgICAgIDogXCJhd2FpdCBcIiArIChkZWJ1Z0luZm8uYXdhaXRlZC5uYW1lIHx8IFwidW5rbm93blwiKTtcbiAgICAgIGVudiA9IGNvbnNvbGUuY3JlYXRlVGFzay5iaW5kKGNvbnNvbGUsIGVudik7XG4gICAgICB1c2VFbmNsb3NpbmdMaW5lID0gYnVpbGRGYWtlQ2FsbFN0YWNrKFxuICAgICAgICByZXNwb25zZSxcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIGNhY2hlZEVudHJ5LFxuICAgICAgICB1c2VFbmNsb3NpbmdMaW5lLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICBudWxsID09PSBvd25lclRhc2tcbiAgICAgICAgPyAoKHJlc3BvbnNlID0gZ2V0Um9vdFRhc2socmVzcG9uc2UsIGNhY2hlZEVudHJ5KSksXG4gICAgICAgICAgKHJlc3BvbnNlID1cbiAgICAgICAgICAgIG51bGwgIT0gcmVzcG9uc2VcbiAgICAgICAgICAgICAgPyByZXNwb25zZS5ydW4odXNlRW5jbG9zaW5nTGluZSlcbiAgICAgICAgICAgICAgOiB1c2VFbmNsb3NpbmdMaW5lKCkpKVxuICAgICAgICA6IChyZXNwb25zZSA9IG93bmVyVGFzay5ydW4odXNlRW5jbG9zaW5nTGluZSkpO1xuICAgICAgcmV0dXJuIChkZWJ1Z0luZm8uZGVidWdUYXNrID0gcmVzcG9uc2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmYWtlSlNYQ2FsbFNpdGUoKSB7XG4gICAgICByZXR1cm4gRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIGRlYnVnSW5mbykge1xuICAgICAgaWYgKHZvaWQgMCA9PT0gZGVidWdJbmZvLmRlYnVnU3RhY2spIHtcbiAgICAgICAgbnVsbCAhPSBkZWJ1Z0luZm8uc3RhY2sgJiZcbiAgICAgICAgICAoZGVidWdJbmZvLmRlYnVnU3RhY2sgPSBjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrSW5ERVYoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIGRlYnVnSW5mby5zdGFjayxcbiAgICAgICAgICAgIG51bGwgPT0gZGVidWdJbmZvLmVudiA/IFwiXCIgOiBkZWJ1Z0luZm8uZW52XG4gICAgICAgICAgKSk7XG4gICAgICAgIHZhciBvd25lciA9IGRlYnVnSW5mby5vd25lcjtcbiAgICAgICAgbnVsbCAhPSBvd25lciAmJlxuICAgICAgICAgIChpbml0aWFsaXplRmFrZVN0YWNrKHJlc3BvbnNlLCBvd25lciksXG4gICAgICAgICAgdm9pZCAwID09PSBvd25lci5kZWJ1Z0xvY2F0aW9uICYmXG4gICAgICAgICAgICBudWxsICE9IGRlYnVnSW5mby5kZWJ1Z1N0YWNrICYmXG4gICAgICAgICAgICAob3duZXIuZGVidWdMb2NhdGlvbiA9IGRlYnVnSW5mby5kZWJ1Z1N0YWNrKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVEZWJ1Z0luZm8ocmVzcG9uc2UsIGRlYnVnSW5mbykge1xuICAgICAgdm9pZCAwICE9PSBkZWJ1Z0luZm8uc3RhY2sgJiYgaW5pdGlhbGl6ZUZha2VUYXNrKHJlc3BvbnNlLCBkZWJ1Z0luZm8pO1xuICAgICAgbnVsbCA9PSBkZWJ1Z0luZm8ub3duZXIgJiYgbnVsbCAhPSByZXNwb25zZS5fZGVidWdSb290T3duZXJcbiAgICAgICAgPyAoKGRlYnVnSW5mby5vd25lciA9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RPd25lciksXG4gICAgICAgICAgKGRlYnVnSW5mby5zdGFjayA9IG51bGwpLFxuICAgICAgICAgIChkZWJ1Z0luZm8uZGVidWdTdGFjayA9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RTdGFjayksXG4gICAgICAgICAgKGRlYnVnSW5mby5kZWJ1Z1Rhc2sgPSByZXNwb25zZS5fZGVidWdSb290VGFzaykpXG4gICAgICAgIDogdm9pZCAwICE9PSBkZWJ1Z0luZm8uc3RhY2sgJiZcbiAgICAgICAgICBpbml0aWFsaXplRmFrZVN0YWNrKHJlc3BvbnNlLCBkZWJ1Z0luZm8pO1xuICAgICAgcmV0dXJuIGRlYnVnSW5mbztcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q3VycmVudFN0YWNrSW5ERVYoKSB7XG4gICAgICB2YXIgb3duZXIgPSBjdXJyZW50T3duZXJJbkRFVjtcbiAgICAgIGlmIChudWxsID09PSBvd25lcikgcmV0dXJuIFwiXCI7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgaW5mbyA9IFwiXCI7XG4gICAgICAgIGlmIChvd25lci5vd25lciB8fCBcInN0cmluZ1wiICE9PSB0eXBlb2Ygb3duZXIubmFtZSkge1xuICAgICAgICAgIGZvciAoOyBvd25lcjsgKSB7XG4gICAgICAgICAgICB2YXIgb3duZXJTdGFjayA9IG93bmVyLmRlYnVnU3RhY2s7XG4gICAgICAgICAgICBpZiAobnVsbCAhPSBvd25lclN0YWNrKSB7XG4gICAgICAgICAgICAgIGlmICgob3duZXIgPSBvd25lci5vd25lcikpIHtcbiAgICAgICAgICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gaW5mbztcbiAgICAgICAgICAgICAgICB2YXIgZXJyb3IgPSBvd25lclN0YWNrLFxuICAgICAgICAgICAgICAgICAgcHJldlByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7XG4gICAgICAgICAgICAgICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmVwYXJlU3RhY2tUcmFjZTtcbiAgICAgICAgICAgICAgICB2YXIgc3RhY2sgPSBlcnJvci5zdGFjaztcbiAgICAgICAgICAgICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZQcmVwYXJlU3RhY2tUcmFjZTtcbiAgICAgICAgICAgICAgICBzdGFjay5zdGFydHNXaXRoKFwiRXJyb3I6IHJlYWN0LXN0YWNrLXRvcC1mcmFtZVxcblwiKSAmJlxuICAgICAgICAgICAgICAgICAgKHN0YWNrID0gc3RhY2suc2xpY2UoMjkpKTtcbiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gc3RhY2suaW5kZXhPZihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAtMSAhPT0gaWR4ICYmIChzdGFjayA9IHN0YWNrLnNsaWNlKGlkeCArIDEpKTtcbiAgICAgICAgICAgICAgICBpZHggPSBzdGFjay5pbmRleE9mKFwicmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lXCIpO1xuICAgICAgICAgICAgICAgIC0xICE9PSBpZHggJiYgKGlkeCA9IHN0YWNrLmxhc3RJbmRleE9mKFwiXFxuXCIsIGlkeCkpO1xuICAgICAgICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgLTEgIT09IGlkeCA/IChzdGFjayA9IHN0YWNrLnNsaWNlKDAsIGlkeCkpIDogXCJcIjtcbiAgICAgICAgICAgICAgICBpbmZvID1cbiAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdCArIChcIlxcblwiICsgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwID0gaW5mbztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBvd25lci5uYW1lO1xuICAgICAgICAgIGlmICh2b2lkIDAgPT09IHByZWZpeClcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIChwcmVmaXggPVxuICAgICAgICAgICAgICAgICgoZXJyb3IgPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pKSAmJiBlcnJvclsxXSkgfHxcbiAgICAgICAgICAgICAgICBcIlwiKSxcbiAgICAgICAgICAgICAgICAoc3VmZml4ID1cbiAgICAgICAgICAgICAgICAgIC0xIDwgeC5zdGFjay5pbmRleE9mKFwiXFxuICAgIGF0XCIpXG4gICAgICAgICAgICAgICAgICAgID8gXCIgKDxhbm9ueW1vdXM+KVwiXG4gICAgICAgICAgICAgICAgICAgIDogLTEgPCB4LnN0YWNrLmluZGV4T2YoXCJAXCIpXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIkB1bmtub3duOjA6MFwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDAgPVxuICAgICAgICAgICAgXCJcXG5cIiArIHByZWZpeCArIEpTQ29tcGlsZXJfdGVtcF9jb25zdCArIHN1ZmZpeDtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDAgPVxuICAgICAgICAgIFwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIgKyB4Lm1lc3NhZ2UgKyBcIlxcblwiICsgeC5zdGFjaztcbiAgICAgIH1cbiAgICAgIHJldHVybiBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVDb25zb2xlRW50cnkocmVzcG9uc2UsIGpzb24pIHtcbiAgICAgIGlmIChyZXNwb25zZS5fcmVwbGF5Q29uc29sZSkge1xuICAgICAgICB2YXIgYmxvY2tlZENodW5rID0gcmVzcG9uc2UuX2Jsb2NrZWRDb25zb2xlO1xuICAgICAgICBpZiAobnVsbCA9PSBibG9ja2VkQ2h1bmspXG4gICAgICAgICAgKGJsb2NrZWRDaHVuayA9IGNyZWF0ZVJlc29sdmVkTW9kZWxDaHVuayhyZXNwb25zZSwganNvbikpLFxuICAgICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoYmxvY2tlZENodW5rKSxcbiAgICAgICAgICAgIFwiZnVsZmlsbGVkXCIgPT09IGJsb2NrZWRDaHVuay5zdGF0dXNcbiAgICAgICAgICAgICAgPyByZXBsYXlDb25zb2xlV2l0aENhbGxTdGFja0luREVWKHJlc3BvbnNlLCBibG9ja2VkQ2h1bmsudmFsdWUpXG4gICAgICAgICAgICAgIDogKGJsb2NrZWRDaHVuay50aGVuKFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrSW5ERVYocmVzcG9uc2UsIHYpO1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAocmVzcG9uc2UuX2Jsb2NrZWRDb25zb2xlID0gYmxvY2tlZENodW5rKSk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHZhciBfY2h1bms0ID0gY3JlYXRlUGVuZGluZ0NodW5rKHJlc3BvbnNlKTtcbiAgICAgICAgICBfY2h1bms0LnRoZW4oXG4gICAgICAgICAgICBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICByZXR1cm4gcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2tJbkRFVihyZXNwb25zZSwgdik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge31cbiAgICAgICAgICApO1xuICAgICAgICAgIHJlc3BvbnNlLl9ibG9ja2VkQ29uc29sZSA9IF9jaHVuazQ7XG4gICAgICAgICAgdmFyIHVuYmxvY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXNwb25zZS5fYmxvY2tlZENvbnNvbGUgPT09IF9jaHVuazQgJiZcbiAgICAgICAgICAgICAgKHJlc3BvbnNlLl9ibG9ja2VkQ29uc29sZSA9IG51bGwpO1xuICAgICAgICAgICAgcmVzb2x2ZU1vZGVsQ2h1bmsocmVzcG9uc2UsIF9jaHVuazQsIGpzb24pO1xuICAgICAgICAgIH07XG4gICAgICAgICAgYmxvY2tlZENodW5rLnRoZW4odW5ibG9jaywgdW5ibG9jayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZUlPSW5mbyhyZXNwb25zZSwgaW9JbmZvKSB7XG4gICAgICB2b2lkIDAgIT09IGlvSW5mby5zdGFjayAmJlxuICAgICAgICAoaW5pdGlhbGl6ZUZha2VUYXNrKHJlc3BvbnNlLCBpb0luZm8pLFxuICAgICAgICBpbml0aWFsaXplRmFrZVN0YWNrKHJlc3BvbnNlLCBpb0luZm8pKTtcbiAgICAgIGlvSW5mby5zdGFydCArPSByZXNwb25zZS5fdGltZU9yaWdpbjtcbiAgICAgIGlvSW5mby5lbmQgKz0gcmVzcG9uc2UuX3RpbWVPcmlnaW47XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVJT0luZm8ocmVzcG9uc2UsIGlkLCBtb2RlbCkge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBjaHVua1xuICAgICAgICA/IChyZXNvbHZlTW9kZWxDaHVuayhyZXNwb25zZSwgY2h1bmssIG1vZGVsKSxcbiAgICAgICAgICBcInJlc29sdmVkX21vZGVsXCIgPT09IGNodW5rLnN0YXR1cyAmJiBpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuaykpXG4gICAgICAgIDogKChjaHVuayA9IGNyZWF0ZVJlc29sdmVkTW9kZWxDaHVuayhyZXNwb25zZSwgbW9kZWwpKSxcbiAgICAgICAgICBjaHVua3Muc2V0KGlkLCBjaHVuayksXG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspKTtcbiAgICAgIFwiZnVsZmlsbGVkXCIgPT09IGNodW5rLnN0YXR1c1xuICAgICAgICA/IGluaXRpYWxpemVJT0luZm8ocmVzcG9uc2UsIGNodW5rLnZhbHVlKVxuICAgICAgICA6IGNodW5rLnRoZW4oXG4gICAgICAgICAgICBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICBpbml0aWFsaXplSU9JbmZvKHJlc3BvbnNlLCB2KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7fVxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1lcmdlQnVmZmVyKGJ1ZmZlciwgbGFzdENodW5rKSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgbCA9IGJ1ZmZlci5sZW5ndGgsIGJ5dGVMZW5ndGggPSBsYXN0Q2h1bmsubGVuZ3RoLCBpID0gMDtcbiAgICAgICAgaSA8IGw7XG4gICAgICAgIGkrK1xuICAgICAgKVxuICAgICAgICBieXRlTGVuZ3RoICs9IGJ1ZmZlcltpXS5ieXRlTGVuZ3RoO1xuICAgICAgYnl0ZUxlbmd0aCA9IG5ldyBVaW50OEFycmF5KGJ5dGVMZW5ndGgpO1xuICAgICAgZm9yICh2YXIgX2kzID0gKGkgPSAwKTsgX2kzIDwgbDsgX2kzKyspIHtcbiAgICAgICAgdmFyIGNodW5rID0gYnVmZmVyW19pM107XG4gICAgICAgIGJ5dGVMZW5ndGguc2V0KGNodW5rLCBpKTtcbiAgICAgICAgaSArPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgfVxuICAgICAgYnl0ZUxlbmd0aC5zZXQobGFzdENodW5rLCBpKTtcbiAgICAgIHJldHVybiBieXRlTGVuZ3RoO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlVHlwZWRBcnJheShcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgaWQsXG4gICAgICBidWZmZXIsXG4gICAgICBsYXN0Q2h1bmssXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICAgIGJ5dGVzUGVyRWxlbWVudFxuICAgICkge1xuICAgICAgYnVmZmVyID1cbiAgICAgICAgMCA9PT0gYnVmZmVyLmxlbmd0aCAmJiAwID09PSBsYXN0Q2h1bmsuYnl0ZU9mZnNldCAlIGJ5dGVzUGVyRWxlbWVudFxuICAgICAgICAgID8gbGFzdENodW5rXG4gICAgICAgICAgOiBtZXJnZUJ1ZmZlcihidWZmZXIsIGxhc3RDaHVuayk7XG4gICAgICBjb25zdHJ1Y3RvciA9IG5ldyBjb25zdHJ1Y3RvcihcbiAgICAgICAgYnVmZmVyLmJ1ZmZlcixcbiAgICAgICAgYnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgIGJ1ZmZlci5ieXRlTGVuZ3RoIC8gYnl0ZXNQZXJFbGVtZW50XG4gICAgICApO1xuICAgICAgcmVzb2x2ZUJ1ZmZlcihyZXNwb25zZSwgaWQsIGNvbnN0cnVjdG9yKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmx1c2hJbml0aWFsUmVuZGVyUGVyZm9ybWFuY2UoKSB7fVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NGdWxsQmluYXJ5Um93KHJlc3BvbnNlLCBpZCwgdGFnLCBidWZmZXIsIGNodW5rKSB7XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIDY1OlxuICAgICAgICAgIHJlc29sdmVCdWZmZXIocmVzcG9uc2UsIGlkLCBtZXJnZUJ1ZmZlcihidWZmZXIsIGNodW5rKS5idWZmZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA3OTpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIEludDhBcnJheSwgMSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDExMTpcbiAgICAgICAgICByZXNvbHZlQnVmZmVyKFxuICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIDAgPT09IGJ1ZmZlci5sZW5ndGggPyBjaHVuayA6IG1lcmdlQnVmZmVyKGJ1ZmZlciwgY2h1bmspXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgODU6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBVaW50OENsYW1wZWRBcnJheSwgMSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDgzOlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgSW50MTZBcnJheSwgMik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDExNTpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIFVpbnQxNkFycmF5LCAyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgNzY6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBJbnQzMkFycmF5LCA0KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTA4OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgVWludDMyQXJyYXksIDQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA3MTpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIEZsb2F0MzJBcnJheSwgNCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDEwMzpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIEZsb2F0NjRBcnJheSwgOCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDc3OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgQmlnSW50NjRBcnJheSwgOCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDEwOTpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIEJpZ1VpbnQ2NEFycmF5LCA4KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgODY6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBEYXRhVmlldywgMSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZm9yIChcbiAgICAgICAgdmFyIHN0cmluZ0RlY29kZXIgPSByZXNwb25zZS5fc3RyaW5nRGVjb2Rlciwgcm93ID0gXCJcIiwgaSA9IDA7XG4gICAgICAgIGkgPCBidWZmZXIubGVuZ3RoO1xuICAgICAgICBpKytcbiAgICAgIClcbiAgICAgICAgcm93ICs9IHN0cmluZ0RlY29kZXIuZGVjb2RlKGJ1ZmZlcltpXSwgZGVjb2Rlck9wdGlvbnMpO1xuICAgICAgcm93ICs9IHN0cmluZ0RlY29kZXIuZGVjb2RlKGNodW5rKTtcbiAgICAgIHByb2Nlc3NGdWxsU3RyaW5nUm93KHJlc3BvbnNlLCBpZCwgdGFnLCByb3cpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzRnVsbFN0cmluZ1JvdyhyZXNwb25zZSwgaWQsIHRhZywgcm93KSB7XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIDczOlxuICAgICAgICAgIHJlc29sdmVNb2R1bGUocmVzcG9uc2UsIGlkLCByb3cpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDcyOlxuICAgICAgICAgIGlkID0gcm93WzBdO1xuICAgICAgICAgIHJvdyA9IHJvdy5zbGljZSgxKTtcbiAgICAgICAgICByZXNwb25zZSA9IEpTT04ucGFyc2Uocm93LCByZXNwb25zZS5fZnJvbUpTT04pO1xuICAgICAgICAgIHJvdyA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLmQ7XG4gICAgICAgICAgc3dpdGNoIChpZCkge1xuICAgICAgICAgICAgY2FzZSBcIkRcIjpcbiAgICAgICAgICAgICAgcm93LkQocmVzcG9uc2UpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJDXCI6XG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiByZXNwb25zZVxuICAgICAgICAgICAgICAgID8gcm93LkMocmVzcG9uc2UpXG4gICAgICAgICAgICAgICAgOiByb3cuQyhyZXNwb25zZVswXSwgcmVzcG9uc2VbMV0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJMXCI6XG4gICAgICAgICAgICAgIGlkID0gcmVzcG9uc2VbMF07XG4gICAgICAgICAgICAgIHRhZyA9IHJlc3BvbnNlWzFdO1xuICAgICAgICAgICAgICAzID09PSByZXNwb25zZS5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHJvdy5MKGlkLCB0YWcsIHJlc3BvbnNlWzJdKVxuICAgICAgICAgICAgICAgIDogcm93LkwoaWQsIHRhZyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgPyByb3cubShyZXNwb25zZSlcbiAgICAgICAgICAgICAgICA6IHJvdy5tKHJlc3BvbnNlWzBdLCByZXNwb25zZVsxXSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIlhcIjpcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgPyByb3cuWChyZXNwb25zZSlcbiAgICAgICAgICAgICAgICA6IHJvdy5YKHJlc3BvbnNlWzBdLCByZXNwb25zZVsxXSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgPyByb3cuUyhyZXNwb25zZSlcbiAgICAgICAgICAgICAgICA6IHJvdy5TKFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVswXSxcbiAgICAgICAgICAgICAgICAgICAgMCA9PT0gcmVzcG9uc2VbMV0gPyB2b2lkIDAgOiByZXNwb25zZVsxXSxcbiAgICAgICAgICAgICAgICAgICAgMyA9PT0gcmVzcG9uc2UubGVuZ3RoID8gcmVzcG9uc2VbMl0gOiB2b2lkIDBcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgPyByb3cuTShyZXNwb25zZSlcbiAgICAgICAgICAgICAgICA6IHJvdy5NKHJlc3BvbnNlWzBdLCByZXNwb25zZVsxXSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY5OlxuICAgICAgICAgIHRhZyA9IHJlc3BvbnNlLl9jaHVua3M7XG4gICAgICAgICAgdmFyIGNodW5rID0gdGFnLmdldChpZCk7XG4gICAgICAgICAgcm93ID0gSlNPTi5wYXJzZShyb3cpO1xuICAgICAgICAgIHZhciBlcnJvciA9IHJlc29sdmVFcnJvckRldihyZXNwb25zZSwgcm93KTtcbiAgICAgICAgICBlcnJvci5kaWdlc3QgPSByb3cuZGlnZXN0O1xuICAgICAgICAgIGNodW5rXG4gICAgICAgICAgICA/IHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGNodW5rLCBlcnJvcilcbiAgICAgICAgICAgIDogdGFnLnNldChpZCwgbmV3IFJlYWN0UHJvbWlzZShcInJlamVjdGVkXCIsIG51bGwsIGVycm9yKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODQ6XG4gICAgICAgICAgdGFnID0gcmVzcG9uc2UuX2NodW5rcztcbiAgICAgICAgICAoY2h1bmsgPSB0YWcuZ2V0KGlkKSkgJiYgXCJwZW5kaW5nXCIgIT09IGNodW5rLnN0YXR1c1xuICAgICAgICAgICAgPyBjaHVuay5yZWFzb24uZW5xdWV1ZVZhbHVlKHJvdylcbiAgICAgICAgICAgIDogKGNodW5rICYmIHJlbGVhc2VQZW5kaW5nQ2h1bmsocmVzcG9uc2UsIGNodW5rKSxcbiAgICAgICAgICAgICAgdGFnLnNldChpZCwgbmV3IFJlYWN0UHJvbWlzZShcImZ1bGZpbGxlZFwiLCByb3csIG51bGwpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzg6XG4gICAgICAgICAgcmVzcG9uc2UuX3RpbWVPcmlnaW4gPSArcm93IC0gcGVyZm9ybWFuY2UudGltZU9yaWdpbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2ODpcbiAgICAgICAgICBpZCA9IGdldENodW5rKHJlc3BvbnNlLCBpZCk7XG4gICAgICAgICAgXCJmdWxmaWxsZWRcIiAhPT0gaWQuc3RhdHVzICYmXG4gICAgICAgICAgICBcInJlamVjdGVkXCIgIT09IGlkLnN0YXR1cyAmJlxuICAgICAgICAgICAgXCJoYWx0ZWRcIiAhPT0gaWQuc3RhdHVzICYmXG4gICAgICAgICAgICBcImJsb2NrZWRcIiAhPT0gaWQuc3RhdHVzICYmXG4gICAgICAgICAgICBcInJlc29sdmVkX21vZHVsZVwiICE9PSBpZC5zdGF0dXMgJiZcbiAgICAgICAgICAgICgodGFnID0gaWQuX2RlYnVnQ2h1bmspLFxuICAgICAgICAgICAgKGNodW5rID0gY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCByb3cpKSxcbiAgICAgICAgICAgIChjaHVuay5fZGVidWdDaHVuayA9IHRhZyksXG4gICAgICAgICAgICAoaWQuX2RlYnVnQ2h1bmsgPSBjaHVuayksXG4gICAgICAgICAgICBpbml0aWFsaXplRGVidWdDaHVuayhyZXNwb25zZSwgaWQpLFxuICAgICAgICAgICAgXCJibG9ja2VkXCIgPT09IGNodW5rLnN0YXR1cyAmJlxuICAgICAgICAgICAgICB2b2lkIDAgPT09IHJlc3BvbnNlLl9kZWJ1Z0NoYW5uZWwgJiZcbiAgICAgICAgICAgICAgJ1wiJyA9PT0gcm93WzBdICYmXG4gICAgICAgICAgICAgIFwiJFwiID09PSByb3dbMV0gJiZcbiAgICAgICAgICAgICAgKChyb3cgPSByb3cuc2xpY2UoMiwgcm93Lmxlbmd0aCAtIDEpLnNwbGl0KFwiOlwiKSksXG4gICAgICAgICAgICAgIChyb3cgPSBwYXJzZUludChyb3dbMF0sIDE2KSksXG4gICAgICAgICAgICAgIFwicGVuZGluZ1wiID09PSBnZXRDaHVuayhyZXNwb25zZSwgcm93KS5zdGF0dXMgJiZcbiAgICAgICAgICAgICAgICAoaWQuX2RlYnVnQ2h1bmsgPSBudWxsKSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDc0OlxuICAgICAgICAgIHJlc29sdmVJT0luZm8ocmVzcG9uc2UsIGlkLCByb3cpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg3OlxuICAgICAgICAgIHJlc29sdmVDb25zb2xlRW50cnkocmVzcG9uc2UsIHJvdyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODI6XG4gICAgICAgICAgc3RhcnRSZWFkYWJsZVN0cmVhbShyZXNwb25zZSwgaWQsIHZvaWQgMCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE0OlxuICAgICAgICAgIHN0YXJ0UmVhZGFibGVTdHJlYW0ocmVzcG9uc2UsIGlkLCBcImJ5dGVzXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg4OlxuICAgICAgICAgIHN0YXJ0QXN5bmNJdGVyYWJsZShyZXNwb25zZSwgaWQsICExKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjA6XG4gICAgICAgICAgc3RhcnRBc3luY0l0ZXJhYmxlKHJlc3BvbnNlLCBpZCwgITApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY3OlxuICAgICAgICAgIChyZXNwb25zZSA9IHJlc3BvbnNlLl9jaHVua3MuZ2V0KGlkKSkgJiZcbiAgICAgICAgICAgIFwiZnVsZmlsbGVkXCIgPT09IHJlc3BvbnNlLnN0YXR1cyAmJlxuICAgICAgICAgICAgcmVzcG9uc2UucmVhc29uLmNsb3NlKFwiXCIgPT09IHJvdyA/ICdcIiR1bmRlZmluZWRcIicgOiByb3cpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmIChcIlwiID09PSByb3cpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKChyb3cgPSByZXNwb25zZS5fY2h1bmtzKSxcbiAgICAgICAgICAgICAgKHRhZyA9IHJvdy5nZXQoaWQpKSB8fFxuICAgICAgICAgICAgICAgIHJvdy5zZXQoaWQsICh0YWcgPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpKSksXG4gICAgICAgICAgICAgIFwicGVuZGluZ1wiID09PSB0YWcuc3RhdHVzIHx8IFwiYmxvY2tlZFwiID09PSB0YWcuc3RhdHVzKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCB0YWcpLFxuICAgICAgICAgICAgICAgIChyZXNwb25zZSA9IHRhZyksXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlLnN0YXR1cyA9IFwiaGFsdGVkXCIpLFxuICAgICAgICAgICAgICAgIChyZXNwb25zZS52YWx1ZSA9IG51bGwpLFxuICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWFzb24gPSBudWxsKTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICh0YWcgPSByZXNwb25zZS5fY2h1bmtzKSxcbiAgICAgICAgICAgICAgKGNodW5rID0gdGFnLmdldChpZCkpXG4gICAgICAgICAgICAgICAgPyByZXNvbHZlTW9kZWxDaHVuayhyZXNwb25zZSwgY2h1bmssIHJvdylcbiAgICAgICAgICAgICAgICA6IHRhZy5zZXQoaWQsIGNyZWF0ZVJlc29sdmVkTW9kZWxDaHVuayhyZXNwb25zZSwgcm93KSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NCaW5hcnlDaHVuayh3ZWFrUmVzcG9uc2UsIHN0cmVhbVN0YXRlLCBjaHVuaykge1xuICAgICAgaWYgKHZvaWQgMCAhPT0gd2Vha1Jlc3BvbnNlLndlYWsuZGVyZWYoKSkge1xuICAgICAgICB2YXIgcmVzcG9uc2UgPSB1bndyYXBXZWFrUmVzcG9uc2Uod2Vha1Jlc3BvbnNlKSxcbiAgICAgICAgICBpID0gMCxcbiAgICAgICAgICByb3dTdGF0ZSA9IHN0cmVhbVN0YXRlLl9yb3dTdGF0ZTtcbiAgICAgICAgd2Vha1Jlc3BvbnNlID0gc3RyZWFtU3RhdGUuX3Jvd0lEO1xuICAgICAgICBmb3IgKFxuICAgICAgICAgIHZhciByb3dUYWcgPSBzdHJlYW1TdGF0ZS5fcm93VGFnLFxuICAgICAgICAgICAgcm93TGVuZ3RoID0gc3RyZWFtU3RhdGUuX3Jvd0xlbmd0aCxcbiAgICAgICAgICAgIGJ1ZmZlciA9IHN0cmVhbVN0YXRlLl9idWZmZXIsXG4gICAgICAgICAgICBjaHVua0xlbmd0aCA9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgICBpIDwgY2h1bmtMZW5ndGg7XG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGxhc3RJZHggPSAtMTtcbiAgICAgICAgICBzd2l0Y2ggKHJvd1N0YXRlKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIGxhc3RJZHggPSBjaHVua1tpKytdO1xuICAgICAgICAgICAgICA1OCA9PT0gbGFzdElkeFxuICAgICAgICAgICAgICAgID8gKHJvd1N0YXRlID0gMSlcbiAgICAgICAgICAgICAgICA6ICh3ZWFrUmVzcG9uc2UgPVxuICAgICAgICAgICAgICAgICAgICAod2Vha1Jlc3BvbnNlIDw8IDQpIHxcbiAgICAgICAgICAgICAgICAgICAgKDk2IDwgbGFzdElkeCA/IGxhc3RJZHggLSA4NyA6IGxhc3RJZHggLSA0OCkpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcm93U3RhdGUgPSBjaHVua1tpXTtcbiAgICAgICAgICAgICAgODQgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDY1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA3OSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgMTExID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA4NSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgODMgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDExNSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgNzYgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDEwOCA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgNzEgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDEwMyA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgNzcgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDEwOSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgODYgPT09IHJvd1N0YXRlXG4gICAgICAgICAgICAgICAgPyAoKHJvd1RhZyA9IHJvd1N0YXRlKSwgKHJvd1N0YXRlID0gMiksIGkrKylcbiAgICAgICAgICAgICAgICA6ICg2NCA8IHJvd1N0YXRlICYmIDkxID4gcm93U3RhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgIDM1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgICAxMTQgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAgIDEyMCA9PT0gcm93U3RhdGVcbiAgICAgICAgICAgICAgICAgID8gKChyb3dUYWcgPSByb3dTdGF0ZSksIChyb3dTdGF0ZSA9IDMpLCBpKyspXG4gICAgICAgICAgICAgICAgICA6ICgocm93VGFnID0gMCksIChyb3dTdGF0ZSA9IDMpKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIGxhc3RJZHggPSBjaHVua1tpKytdO1xuICAgICAgICAgICAgICA0NCA9PT0gbGFzdElkeFxuICAgICAgICAgICAgICAgID8gKHJvd1N0YXRlID0gNClcbiAgICAgICAgICAgICAgICA6IChyb3dMZW5ndGggPVxuICAgICAgICAgICAgICAgICAgICAocm93TGVuZ3RoIDw8IDQpIHxcbiAgICAgICAgICAgICAgICAgICAgKDk2IDwgbGFzdElkeCA/IGxhc3RJZHggLSA4NyA6IGxhc3RJZHggLSA0OCkpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgbGFzdElkeCA9IGNodW5rLmluZGV4T2YoMTAsIGkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgKGxhc3RJZHggPSBpICsgcm93TGVuZ3RoKSxcbiAgICAgICAgICAgICAgICBsYXN0SWR4ID4gY2h1bmsubGVuZ3RoICYmIChsYXN0SWR4ID0gLTEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gY2h1bmsuYnl0ZU9mZnNldCArIGk7XG4gICAgICAgICAgaWYgKC0xIDwgbGFzdElkeClcbiAgICAgICAgICAgIChyb3dMZW5ndGggPSBuZXcgVWludDhBcnJheShjaHVuay5idWZmZXIsIG9mZnNldCwgbGFzdElkeCAtIGkpKSxcbiAgICAgICAgICAgICAgcHJvY2Vzc0Z1bGxCaW5hcnlSb3coXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgd2Vha1Jlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJvd1RhZyxcbiAgICAgICAgICAgICAgICBidWZmZXIsXG4gICAgICAgICAgICAgICAgcm93TGVuZ3RoXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChpID0gbGFzdElkeCksXG4gICAgICAgICAgICAgIDMgPT09IHJvd1N0YXRlICYmIGkrKyxcbiAgICAgICAgICAgICAgKHJvd0xlbmd0aCA9IHdlYWtSZXNwb25zZSA9IHJvd1RhZyA9IHJvd1N0YXRlID0gMCksXG4gICAgICAgICAgICAgIChidWZmZXIubGVuZ3RoID0gMCk7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjaHVuayA9IG5ldyBVaW50OEFycmF5KGNodW5rLmJ1ZmZlciwgb2Zmc2V0LCBjaHVuay5ieXRlTGVuZ3RoIC0gaSk7XG4gICAgICAgICAgICBidWZmZXIucHVzaChjaHVuayk7XG4gICAgICAgICAgICByb3dMZW5ndGggLT0gY2h1bmsuYnl0ZUxlbmd0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdHJlYW1TdGF0ZS5fcm93U3RhdGUgPSByb3dTdGF0ZTtcbiAgICAgICAgc3RyZWFtU3RhdGUuX3Jvd0lEID0gd2Vha1Jlc3BvbnNlO1xuICAgICAgICBzdHJlYW1TdGF0ZS5fcm93VGFnID0gcm93VGFnO1xuICAgICAgICBzdHJlYW1TdGF0ZS5fcm93TGVuZ3RoID0gcm93TGVuZ3RoO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGcm9tSlNPTkNhbGxiYWNrKHJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB2YWx1ZSlcbiAgICAgICAgICByZXR1cm4gcGFyc2VNb2RlbFN0cmluZyhyZXNwb25zZSwgdGhpcywga2V5LCB2YWx1ZSk7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdmFsdWUgJiYgbnVsbCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICBpZiAodmFsdWVbMF0gPT09IFJFQUNUX0VMRU1FTlRfVFlQRSlcbiAgICAgICAgICAgIGI6IHtcbiAgICAgICAgICAgICAgdmFyIG93bmVyID0gdmFsdWVbNF07XG4gICAgICAgICAgICAgIGtleSA9IHZhbHVlWzVdO1xuICAgICAgICAgICAgICB2YXIgdmFsaWRhdGVkID0gdmFsdWVbNl07XG4gICAgICAgICAgICAgIHZhbHVlID0ge1xuICAgICAgICAgICAgICAgICQkdHlwZW9mOiBSRUFDVF9FTEVNRU5UX1RZUEUsXG4gICAgICAgICAgICAgICAgdHlwZTogdmFsdWVbMV0sXG4gICAgICAgICAgICAgICAga2V5OiB2YWx1ZVsyXSxcbiAgICAgICAgICAgICAgICBwcm9wczogdmFsdWVbM10sXG4gICAgICAgICAgICAgICAgX293bmVyOiB2b2lkIDAgPT09IG93bmVyID8gbnVsbCA6IG93bmVyXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgXCJyZWZcIiwge1xuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgICAgIGdldDogbnVsbFJlZkdldHRlclxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdmFsdWUuX3N0b3JlID0ge307XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZS5fc3RvcmUsIFwidmFsaWRhdGVkXCIsIHtcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsaWRhdGVkXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgXCJfZGVidWdTdGFja1wiLCB7XG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZvaWQgMCA9PT0ga2V5ID8gbnVsbCA6IGtleVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBcIl9kZWJ1Z1Rhc2tcIiwge1xuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gaW5pdGlhbGl6aW5nSGFuZGxlcikge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRlZCA9IGluaXRpYWxpemluZ0hhbmRsZXI7XG4gICAgICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlciA9IHZhbGlkYXRlZC5wYXJlbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlZC5lcnJvcmVkKSB7XG4gICAgICAgICAgICAgICAgICBrZXkgPSBuZXcgUmVhY3RQcm9taXNlKFwicmVqZWN0ZWRcIiwgbnVsbCwgdmFsaWRhdGVkLnJlYXNvbik7XG4gICAgICAgICAgICAgICAgICBpbml0aWFsaXplRWxlbWVudChyZXNwb25zZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgdmFsaWRhdGVkID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodmFsdWUudHlwZSkgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgb3duZXI6IHZhbHVlLl9vd25lclxuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRlZC5kZWJ1Z1N0YWNrID0gdmFsdWUuX2RlYnVnU3RhY2s7XG4gICAgICAgICAgICAgICAgICBzdXBwb3J0c0NyZWF0ZVRhc2sgJiZcbiAgICAgICAgICAgICAgICAgICAgKHZhbGlkYXRlZC5kZWJ1Z1Rhc2sgPSB2YWx1ZS5fZGVidWdUYXNrKTtcbiAgICAgICAgICAgICAgICAgIGtleS5fZGVidWdJbmZvID0gW3ZhbGlkYXRlZF07XG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9IGNyZWF0ZUxhenlDaHVua1dyYXBwZXIoa2V5KTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgwIDwgdmFsaWRhdGVkLmRlcHMpIHtcbiAgICAgICAgICAgICAgICAgIGtleSA9IG5ldyBSZWFjdFByb21pc2UoXCJibG9ja2VkXCIsIG51bGwsIG51bGwpO1xuICAgICAgICAgICAgICAgICAgdmFsaWRhdGVkLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQuY2h1bmsgPSBrZXk7XG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9IGluaXRpYWxpemVFbGVtZW50LmJpbmQobnVsbCwgcmVzcG9uc2UsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGtleS50aGVuKHZhbHVlLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9IGNyZWF0ZUxhenlDaHVua1dyYXBwZXIoa2V5KTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGluaXRpYWxpemVFbGVtZW50KHJlc3BvbnNlLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNsb3NlKHdlYWtSZXNwb25zZSkge1xuICAgICAgcmVwb3J0R2xvYmFsRXJyb3Iod2Vha1Jlc3BvbnNlLCBFcnJvcihcIkNvbm5lY3Rpb24gY2xvc2VkLlwiKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vU2VydmVyQ2FsbCQxKCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIFwiU2VydmVyIEZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGR1cmluZyBpbml0aWFsIHJlbmRlci4gVGhpcyB3b3VsZCBjcmVhdGUgYSBmZXRjaCB3YXRlcmZhbGwuIFRyeSB0byB1c2UgYSBTZXJ2ZXIgQ29tcG9uZW50IHRvIHBhc3MgZGF0YSB0byBDbGllbnQgQ29tcG9uZW50cyBpbnN0ZWFkLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVSZXNwb25zZUZyb21PcHRpb25zKG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBuZXcgUmVzcG9uc2VJbnN0YW5jZShcbiAgICAgICAgb3B0aW9ucy5zZXJ2ZXJDb25zdW1lck1hbmlmZXN0Lm1vZHVsZU1hcCxcbiAgICAgICAgb3B0aW9ucy5zZXJ2ZXJDb25zdW1lck1hbmlmZXN0LnNlcnZlck1vZHVsZU1hcCxcbiAgICAgICAgb3B0aW9ucy5zZXJ2ZXJDb25zdW1lck1hbmlmZXN0Lm1vZHVsZUxvYWRpbmcsXG4gICAgICAgIG5vU2VydmVyQ2FsbCQxLFxuICAgICAgICBvcHRpb25zLmVuY29kZUZvcm1BY3Rpb24sXG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLm5vbmNlID8gb3B0aW9ucy5ub25jZSA6IHZvaWQgMCxcbiAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLnRlbXBvcmFyeVJlZmVyZW5jZXNcbiAgICAgICAgICA/IG9wdGlvbnMudGVtcG9yYXJ5UmVmZXJlbmNlc1xuICAgICAgICAgIDogdm9pZCAwLFxuICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuZmluZFNvdXJjZU1hcFVSTCA/IG9wdGlvbnMuZmluZFNvdXJjZU1hcFVSTCA6IHZvaWQgMCxcbiAgICAgICAgb3B0aW9ucyA/ICEwID09PSBvcHRpb25zLnJlcGxheUNvbnNvbGVMb2dzIDogITEsXG4gICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5lbnZpcm9ubWVudE5hbWUgPyBvcHRpb25zLmVudmlyb25tZW50TmFtZSA6IHZvaWQgMCxcbiAgICAgICAgdm9pZCAwXG4gICAgICApLl93ZWFrUmVzcG9uc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0UmVhZGluZ0Zyb21TdHJlYW0ocmVzcG9uc2UsIHN0cmVhbSkge1xuICAgICAgZnVuY3Rpb24gcHJvZ3Jlc3MoX3JlZikge1xuICAgICAgICB2YXIgdmFsdWUgPSBfcmVmLnZhbHVlO1xuICAgICAgICBpZiAoX3JlZi5kb25lKSBjbG9zZShyZXNwb25zZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcHJvY2Vzc0JpbmFyeUNodW5rKHJlc3BvbnNlLCBzdHJlYW1TdGF0ZSwgdmFsdWUpLFxuICAgICAgICAgICAgcmVhZGVyLnJlYWQoKS50aGVuKHByb2dyZXNzKS5jYXRjaChlcnJvcilcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZXJyb3IoZSkge1xuICAgICAgICByZXBvcnRHbG9iYWxFcnJvcihyZXNwb25zZSwgZSk7XG4gICAgICB9XG4gICAgICB2YXIgc3RyZWFtU3RhdGUgPSBjcmVhdGVTdHJlYW1TdGF0ZSgpLFxuICAgICAgICByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZCgpLnRoZW4ocHJvZ3Jlc3MpLmNhdGNoKGVycm9yKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9TZXJ2ZXJDYWxsKCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIFwiU2VydmVyIEZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGR1cmluZyBpbml0aWFsIHJlbmRlci4gVGhpcyB3b3VsZCBjcmVhdGUgYSBmZXRjaCB3YXRlcmZhbGwuIFRyeSB0byB1c2UgYSBTZXJ2ZXIgQ29tcG9uZW50IHRvIHBhc3MgZGF0YSB0byBDbGllbnQgQ29tcG9uZW50cyBpbnN0ZWFkLlwiXG4gICAgICApO1xuICAgIH1cbiAgICB2YXIgdXRpbCA9IHJlcXVpcmUoXCJ1dGlsXCIpLFxuICAgICAgUmVhY3RET00gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpLFxuICAgICAgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIiksXG4gICAgICBkZWNvZGVyT3B0aW9ucyA9IHsgc3RyZWFtOiAhMCB9LFxuICAgICAgYmluZCQxID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsXG4gICAgICBjaHVua0NhY2hlID0gbmV3IE1hcCgpLFxuICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMgPVxuICAgICAgICBSZWFjdERPTS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIiksXG4gICAgICBSRUFDVF9QT1JUQUxfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIiksXG4gICAgICBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLFxuICAgICAgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxcbiAgICAgIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIiksXG4gICAgICBSRUFDVF9DT05TVU1FUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnN1bWVyXCIpLFxuICAgICAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIiksXG4gICAgICBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpLFxuICAgICAgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksXG4gICAgICBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSxcbiAgICAgIFJFQUNUX0FDVElWSVRZX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuYWN0aXZpdHlcIiksXG4gICAgICBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3IsXG4gICAgICBBU1lOQ19JVEVSQVRPUiA9IFN5bWJvbC5hc3luY0l0ZXJhdG9yLFxuICAgICAgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5LFxuICAgICAgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YsXG4gICAgICBqc3hQcm9wc1BhcmVudHMgPSBuZXcgV2Vha01hcCgpLFxuICAgICAganN4Q2hpbGRyZW5QYXJlbnRzID0gbmV3IFdlYWtNYXAoKSxcbiAgICAgIENMSUVOVF9SRUZFUkVOQ0VfVEFHID0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIiksXG4gICAgICBPYmplY3RQcm90b3R5cGUgPSBPYmplY3QucHJvdG90eXBlLFxuICAgICAga25vd25TZXJ2ZXJSZWZlcmVuY2VzID0gbmV3IFdlYWtNYXAoKSxcbiAgICAgIGJvdW5kQ2FjaGUgPSBuZXcgV2Vha01hcCgpLFxuICAgICAgZmFrZVNlcnZlckZ1bmN0aW9uSWR4ID0gMCxcbiAgICAgIEZ1bmN0aW9uQmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLFxuICAgICAgQXJyYXlTbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZSxcbiAgICAgIHY4RnJhbWVSZWdFeHAgPVxuICAgICAgICAvXiB7M30gYXQgKD86KC4rKSBcXCgoLispOihcXGQrKTooXFxkKylcXCl8KD86YXN5bmMgKT8oLispOihcXGQrKTooXFxkKykpJC8sXG4gICAgICBqc2NTcGlkZXJNb25rZXlGcmFtZVJlZ0V4cCA9IC8oPzooLiopQCk/KC4qKTooXFxkKyk6KFxcZCspLyxcbiAgICAgIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSxcbiAgICAgIHByZWZpeCxcbiAgICAgIHN1ZmZpeDtcbiAgICBuZXcgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFdlYWtNYXAgPyBXZWFrTWFwIDogTWFwKSgpO1xuICAgIHZhciBSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyID1cbiAgICAgICAgUmVhY3QuX19TRVJWRVJfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFxuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPVxuICAgICAgICBSZWFjdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUgfHxcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcmFsc1NlcnZlcjtcbiAgICBSZWFjdFByb21pc2UucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShQcm9taXNlLnByb3RvdHlwZSk7XG4gICAgUmVhY3RQcm9taXNlLnByb3RvdHlwZS50aGVuID0gZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZGVsXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsodGhpcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2R1bGVcIjpcbiAgICAgICAgICBpbml0aWFsaXplTW9kdWxlQ2h1bmsodGhpcyk7XG4gICAgICB9XG4gICAgICB2YXIgcmVzb2x2ZUNhbGxiYWNrID0gcmVzb2x2ZSxcbiAgICAgICAgcmVqZWN0Q2FsbGJhY2sgPSByZWplY3QsXG4gICAgICAgIHdyYXBwZXJQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcywgcmVqKSB7XG4gICAgICAgICAgcmVzb2x2ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgd3JhcHBlclByb21pc2UuX2RlYnVnSW5mbyA9IF90aGlzLl9kZWJ1Z0luZm87XG4gICAgICAgICAgICByZXModmFsdWUpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgcmVqZWN0ID0gZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgICAgd3JhcHBlclByb21pc2UuX2RlYnVnSW5mbyA9IF90aGlzLl9kZWJ1Z0luZm87XG4gICAgICAgICAgICByZWoocmVhc29uKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIHdyYXBwZXJQcm9taXNlLnRoZW4ocmVzb2x2ZUNhbGxiYWNrLCByZWplY3RDYWxsYmFjayk7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXNvbHZlICYmIHJlc29sdmUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmVzb2x2ZSAmJlxuICAgICAgICAgICAgKG51bGwgPT09IHRoaXMudmFsdWUgJiYgKHRoaXMudmFsdWUgPSBbXSksXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnB1c2gocmVzb2x2ZSkpO1xuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlamVjdCAmJlxuICAgICAgICAgICAgKG51bGwgPT09IHRoaXMucmVhc29uICYmICh0aGlzLnJlYXNvbiA9IFtdKSxcbiAgICAgICAgICAgIHRoaXMucmVhc29uLnB1c2gocmVqZWN0KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJoYWx0ZWRcIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZWplY3QgJiYgcmVqZWN0KHRoaXMucmVhc29uKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBkZWJ1Z0NoYW5uZWxSZWdpc3RyeSA9XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5XG4gICAgICAgICAgPyBuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoY2xlYW51cERlYnVnQ2hhbm5lbClcbiAgICAgICAgICA6IG51bGwsXG4gICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gbnVsbCxcbiAgICAgIG1pZ2h0SGF2ZVN0YXRpY0NvbnN0cnVjdG9yID0gL1xcYmNsYXNzXFxiLipcXGJzdGF0aWNcXGIvLFxuICAgICAgc3VwcG9ydHNDcmVhdGVUYXNrID0gISFjb25zb2xlLmNyZWF0ZVRhc2ssXG4gICAgICBmYWtlRnVuY3Rpb25DYWNoZSA9IG5ldyBNYXAoKSxcbiAgICAgIGZha2VGdW5jdGlvbklkeCA9IDAsXG4gICAgICBjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrID0ge1xuICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uIChyZXNwb25zZSwgc3RhY2ssIGVudmlyb25tZW50TmFtZSkge1xuICAgICAgICAgIHJldHVybiBidWlsZEZha2VDYWxsU3RhY2soXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICAgZW52aXJvbm1lbnROYW1lLFxuICAgICAgICAgICAgITEsXG4gICAgICAgICAgICBmYWtlSlNYQ2FsbFNpdGVcbiAgICAgICAgICApKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrSW5ERVYgPVxuICAgICAgICBjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrLnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKFxuICAgICAgICAgIGNyZWF0ZUZha2VKU1hDYWxsU3RhY2tcbiAgICAgICAgKSxcbiAgICAgIGN1cnJlbnRPd25lckluREVWID0gbnVsbCxcbiAgICAgIHJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrID0ge1xuICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uIChyZXNwb25zZSwgcGF5bG9hZCkge1xuICAgICAgICAgIHZhciBtZXRob2ROYW1lID0gcGF5bG9hZFswXSxcbiAgICAgICAgICAgIHN0YWNrVHJhY2UgPSBwYXlsb2FkWzFdLFxuICAgICAgICAgICAgb3duZXIgPSBwYXlsb2FkWzJdLFxuICAgICAgICAgICAgZW52ID0gcGF5bG9hZFszXTtcbiAgICAgICAgICBwYXlsb2FkID0gcGF5bG9hZC5zbGljZSg0KTtcbiAgICAgICAgICB2YXIgcHJldlN0YWNrID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrO1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IGdldEN1cnJlbnRTdGFja0luREVWO1xuICAgICAgICAgIGN1cnJlbnRPd25lckluREVWID0gbnVsbCA9PT0gb3duZXIgPyByZXNwb25zZS5fZGVidWdSb290T3duZXIgOiBvd25lcjtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYToge1xuICAgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgc3dpdGNoIChtZXRob2ROYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRpclwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJkaXJ4bWxcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZ3JvdXBFbmRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwidGFibGVcIjpcbiAgICAgICAgICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBiaW5kJDEuYXBwbHkoXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVbbWV0aG9kTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgIFtjb25zb2xlXS5jb25jYXQocGF5bG9hZClcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJhc3NlcnRcIjpcbiAgICAgICAgICAgICAgICAgIG9mZnNldCA9IDE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIG5ld0FyZ3MgPSBwYXlsb2FkLnNsaWNlKDApO1xuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgbmV3QXJnc1tvZmZzZXRdXG4gICAgICAgICAgICAgICAgPyBuZXdBcmdzLnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgICAgICBcIlxcdTAwMWJbMG1cXHUwMDFiWzdtJWMlc1xcdTAwMWJbMG0lYyBcIiArIG5ld0FyZ3Nbb2Zmc2V0XSxcbiAgICAgICAgICAgICAgICAgICAgXCJiYWNrZ3JvdW5kOiAjZTZlNmU2O2JhY2tncm91bmQ6IGxpZ2h0LWRhcmsocmdiYSgwLDAsMCwwLjEpLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpKTtjb2xvcjogIzAwMDAwMDtjb2xvcjogbGlnaHQtZGFyaygjMDAwMDAwLCAjZmZmZmZmKTtib3JkZXItcmFkaXVzOiAycHhcIixcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgKyBlbnYgKyBcIiBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogbmV3QXJncy5zcGxpY2UoXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgXCJcXHUwMDFiWzBtXFx1MDAxYls3bSVjJXNcXHUwMDFiWzBtJWNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWNrZ3JvdW5kOiAjZTZlNmU2O2JhY2tncm91bmQ6IGxpZ2h0LWRhcmsocmdiYSgwLDAsMCwwLjEpLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpKTtjb2xvcjogIzAwMDAwMDtjb2xvcjogbGlnaHQtZGFyaygjMDAwMDAwLCAjZmZmZmZmKTtib3JkZXItcmFkaXVzOiAycHhcIixcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgKyBlbnYgKyBcIiBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgbmV3QXJncy51bnNoaWZ0KGNvbnNvbGUpO1xuICAgICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBiaW5kJDEuYXBwbHkoXG4gICAgICAgICAgICAgICAgY29uc29sZVttZXRob2ROYW1lXSxcbiAgICAgICAgICAgICAgICBuZXdBcmdzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgY2FsbFN0YWNrID0gYnVpbGRGYWtlQ2FsbFN0YWNrKFxuICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgc3RhY2tUcmFjZSxcbiAgICAgICAgICAgICAgZW52LFxuICAgICAgICAgICAgICAhMSxcbiAgICAgICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKG51bGwgIT0gb3duZXIpIHtcbiAgICAgICAgICAgICAgdmFyIHRhc2sgPSBpbml0aWFsaXplRmFrZVRhc2socmVzcG9uc2UsIG93bmVyKTtcbiAgICAgICAgICAgICAgaW5pdGlhbGl6ZUZha2VTdGFjayhyZXNwb25zZSwgb3duZXIpO1xuICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gdGFzaykge1xuICAgICAgICAgICAgICAgIHRhc2sucnVuKGNhbGxTdGFjayk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcm9vdFRhc2sgPSBnZXRSb290VGFzayhyZXNwb25zZSwgZW52KTtcbiAgICAgICAgICAgIG51bGwgIT0gcm9vdFRhc2sgPyByb290VGFzay5ydW4oY2FsbFN0YWNrKSA6IGNhbGxTdGFjaygpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAoY3VycmVudE93bmVySW5ERVYgPSBudWxsKSxcbiAgICAgICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IHByZXZTdGFjayk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2tJbkRFViA9XG4gICAgICAgIHJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrLnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKFxuICAgICAgICAgIHJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrXG4gICAgICAgICk7XG4gICAgZXhwb3J0cy5jcmVhdGVGcm9tRmV0Y2ggPSBmdW5jdGlvbiAocHJvbWlzZUZvclJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgICB2YXIgcmVzcG9uc2UgPSBjcmVhdGVSZXNwb25zZUZyb21PcHRpb25zKG9wdGlvbnMpO1xuICAgICAgcHJvbWlzZUZvclJlc3BvbnNlLnRoZW4oXG4gICAgICAgIGZ1bmN0aW9uIChyKSB7XG4gICAgICAgICAgc3RhcnRSZWFkaW5nRnJvbVN0cmVhbShyZXNwb25zZSwgci5ib2R5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICByZXBvcnRHbG9iYWxFcnJvcihyZXNwb25zZSwgZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gZ2V0Um9vdChyZXNwb25zZSk7XG4gICAgfTtcbiAgICBleHBvcnRzLmNyZWF0ZUZyb21Ob2RlU3RyZWFtID0gZnVuY3Rpb24gKFxuICAgICAgc3RyZWFtLFxuICAgICAgc2VydmVyQ29uc3VtZXJNYW5pZmVzdCxcbiAgICAgIG9wdGlvbnNcbiAgICApIHtcbiAgICAgIHZhciByZXNwb25zZSRqc2NvbXAkMCA9IG5ldyBSZXNwb25zZUluc3RhbmNlKFxuICAgICAgICAgIHNlcnZlckNvbnN1bWVyTWFuaWZlc3QubW9kdWxlTWFwLFxuICAgICAgICAgIHNlcnZlckNvbnN1bWVyTWFuaWZlc3Quc2VydmVyTW9kdWxlTWFwLFxuICAgICAgICAgIHNlcnZlckNvbnN1bWVyTWFuaWZlc3QubW9kdWxlTG9hZGluZyxcbiAgICAgICAgICBub1NlcnZlckNhbGwsXG4gICAgICAgICAgb3B0aW9ucyA/IG9wdGlvbnMuZW5jb2RlRm9ybUFjdGlvbiA6IHZvaWQgMCxcbiAgICAgICAgICBvcHRpb25zICYmIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLm5vbmNlID8gb3B0aW9ucy5ub25jZSA6IHZvaWQgMCxcbiAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLmZpbmRTb3VyY2VNYXBVUkxcbiAgICAgICAgICAgID8gb3B0aW9ucy5maW5kU291cmNlTWFwVVJMXG4gICAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgICBvcHRpb25zID8gITAgPT09IG9wdGlvbnMucmVwbGF5Q29uc29sZUxvZ3MgOiAhMSxcbiAgICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuZW52aXJvbm1lbnROYW1lID8gb3B0aW9ucy5lbnZpcm9ubWVudE5hbWUgOiB2b2lkIDAsXG4gICAgICAgICAgdm9pZCAwXG4gICAgICAgICkuX3dlYWtSZXNwb25zZSxcbiAgICAgICAgc3RyZWFtU3RhdGUgPSBjcmVhdGVTdHJlYW1TdGF0ZSgpO1xuICAgICAgc3RyZWFtLm9uKFwiZGF0YVwiLCBmdW5jdGlvbiAoY2h1bmspIHtcbiAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBjaHVuaykge1xuICAgICAgICAgIGlmICh2b2lkIDAgIT09IHJlc3BvbnNlJGpzY29tcCQwLndlYWsuZGVyZWYoKSkge1xuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gdW53cmFwV2Vha1Jlc3BvbnNlKHJlc3BvbnNlJGpzY29tcCQwKSxcbiAgICAgICAgICAgICAgICBpID0gMCxcbiAgICAgICAgICAgICAgICByb3dTdGF0ZSA9IHN0cmVhbVN0YXRlLl9yb3dTdGF0ZSxcbiAgICAgICAgICAgICAgICByb3dJRCA9IHN0cmVhbVN0YXRlLl9yb3dJRCxcbiAgICAgICAgICAgICAgICByb3dUYWcgPSBzdHJlYW1TdGF0ZS5fcm93VGFnLFxuICAgICAgICAgICAgICAgIHJvd0xlbmd0aCA9IHN0cmVhbVN0YXRlLl9yb3dMZW5ndGgsXG4gICAgICAgICAgICAgICAgYnVmZmVyID0gc3RyZWFtU3RhdGUuX2J1ZmZlcixcbiAgICAgICAgICAgICAgICBjaHVua0xlbmd0aCA9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgICAgICAgaSA8IGNodW5rTGVuZ3RoO1xuXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdmFyIGxhc3RJZHggPSAtMTtcbiAgICAgICAgICAgICAgc3dpdGNoIChyb3dTdGF0ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgIGxhc3RJZHggPSBjaHVuay5jaGFyQ29kZUF0KGkrKyk7XG4gICAgICAgICAgICAgICAgICA1OCA9PT0gbGFzdElkeFxuICAgICAgICAgICAgICAgICAgICA/IChyb3dTdGF0ZSA9IDEpXG4gICAgICAgICAgICAgICAgICAgIDogKHJvd0lEID1cbiAgICAgICAgICAgICAgICAgICAgICAgIChyb3dJRCA8PCA0KSB8XG4gICAgICAgICAgICAgICAgICAgICAgICAoOTYgPCBsYXN0SWR4ID8gbGFzdElkeCAtIDg3IDogbGFzdElkeCAtIDQ4KSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICByb3dTdGF0ZSA9IGNodW5rLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICAgICAgICA4NCA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDY1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgNzkgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAxMTEgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICA4NSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDgzID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgMTE1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgNzYgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAxMDggPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICA3MSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDEwMyA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDc3ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgMTA5ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgODYgPT09IHJvd1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8gKChyb3dUYWcgPSByb3dTdGF0ZSksIChyb3dTdGF0ZSA9IDIpLCBpKyspXG4gICAgICAgICAgICAgICAgICAgIDogKDY0IDwgcm93U3RhdGUgJiYgOTEgPiByb3dTdGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIDExNCA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIDEyMCA9PT0gcm93U3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICA/ICgocm93VGFnID0gcm93U3RhdGUpLCAocm93U3RhdGUgPSAzKSwgaSsrKVxuICAgICAgICAgICAgICAgICAgICAgIDogKChyb3dUYWcgPSAwKSwgKHJvd1N0YXRlID0gMykpO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgbGFzdElkeCA9IGNodW5rLmNoYXJDb2RlQXQoaSsrKTtcbiAgICAgICAgICAgICAgICAgIDQ0ID09PSBsYXN0SWR4XG4gICAgICAgICAgICAgICAgICAgID8gKHJvd1N0YXRlID0gNClcbiAgICAgICAgICAgICAgICAgICAgOiAocm93TGVuZ3RoID1cbiAgICAgICAgICAgICAgICAgICAgICAgIChyb3dMZW5ndGggPDwgNCkgfFxuICAgICAgICAgICAgICAgICAgICAgICAgKDk2IDwgbGFzdElkeCA/IGxhc3RJZHggLSA4NyA6IGxhc3RJZHggLSA0OCkpO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgbGFzdElkeCA9IGNodW5rLmluZGV4T2YoXCJcXG5cIiwgaSk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICBpZiAoODQgIT09IHJvd1RhZylcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJCaW5hcnkgUlNDIGNodW5rcyBjYW5ub3QgYmUgZW5jb2RlZCBhcyBzdHJpbmdzLiBUaGlzIGlzIGEgYnVnIGluIHRoZSB3aXJpbmcgb2YgdGhlIFJlYWN0IHN0cmVhbXMuXCJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGlmIChyb3dMZW5ndGggPCBjaHVuay5sZW5ndGggfHwgY2h1bmsubGVuZ3RoID4gMyAqIHJvd0xlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJTdHJpbmcgY2h1bmtzIG5lZWQgdG8gYmUgcGFzc2VkIGluIHRoZWlyIG9yaWdpbmFsIHNoYXBlLiBOb3Qgc3BsaXQgaW50byBzbWFsbGVyIHN0cmluZyBjaHVua3MuIFRoaXMgaXMgYSBidWcgaW4gdGhlIHdpcmluZyBvZiB0aGUgUmVhY3Qgc3RyZWFtcy5cIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgbGFzdElkeCA9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoLTEgPCBsYXN0SWR4KSB7XG4gICAgICAgICAgICAgICAgaWYgKDAgPCBidWZmZXIubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiU3RyaW5nIGNodW5rcyBuZWVkIHRvIGJlIHBhc3NlZCBpbiB0aGVpciBvcmlnaW5hbCBzaGFwZS4gTm90IHNwbGl0IGludG8gc21hbGxlciBzdHJpbmcgY2h1bmtzLiBUaGlzIGlzIGEgYnVnIGluIHRoZSB3aXJpbmcgb2YgdGhlIFJlYWN0IHN0cmVhbXMuXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaSA9IGNodW5rLnNsaWNlKGksIGxhc3RJZHgpO1xuICAgICAgICAgICAgICAgIHByb2Nlc3NGdWxsU3RyaW5nUm93KHJlc3BvbnNlLCByb3dJRCwgcm93VGFnLCBpKTtcbiAgICAgICAgICAgICAgICBpID0gbGFzdElkeDtcbiAgICAgICAgICAgICAgICAzID09PSByb3dTdGF0ZSAmJiBpKys7XG4gICAgICAgICAgICAgICAgcm93TGVuZ3RoID0gcm93SUQgPSByb3dUYWcgPSByb3dTdGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgYnVmZmVyLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2h1bmsubGVuZ3RoICE9PSBpKVxuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJTdHJpbmcgY2h1bmtzIG5lZWQgdG8gYmUgcGFzc2VkIGluIHRoZWlyIG9yaWdpbmFsIHNoYXBlLiBOb3Qgc3BsaXQgaW50byBzbWFsbGVyIHN0cmluZyBjaHVua3MuIFRoaXMgaXMgYSBidWcgaW4gdGhlIHdpcmluZyBvZiB0aGUgUmVhY3Qgc3RyZWFtcy5cIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdHJlYW1TdGF0ZS5fcm93U3RhdGUgPSByb3dTdGF0ZTtcbiAgICAgICAgICAgIHN0cmVhbVN0YXRlLl9yb3dJRCA9IHJvd0lEO1xuICAgICAgICAgICAgc3RyZWFtU3RhdGUuX3Jvd1RhZyA9IHJvd1RhZztcbiAgICAgICAgICAgIHN0cmVhbVN0YXRlLl9yb3dMZW5ndGggPSByb3dMZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgcHJvY2Vzc0JpbmFyeUNodW5rKHJlc3BvbnNlJGpzY29tcCQwLCBzdHJlYW1TdGF0ZSwgY2h1bmspO1xuICAgICAgfSk7XG4gICAgICBzdHJlYW0ub24oXCJlcnJvclwiLCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgcmVwb3J0R2xvYmFsRXJyb3IocmVzcG9uc2UkanNjb21wJDAsIGVycm9yKTtcbiAgICAgIH0pO1xuICAgICAgc3RyZWFtLm9uKFwiZW5kXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGNsb3NlKHJlc3BvbnNlJGpzY29tcCQwKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGdldFJvb3QocmVzcG9uc2UkanNjb21wJDApO1xuICAgIH07XG4gICAgZXhwb3J0cy5jcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0gPSBmdW5jdGlvbiAoc3RyZWFtLCBvcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0gY3JlYXRlUmVzcG9uc2VGcm9tT3B0aW9ucyhvcHRpb25zKTtcbiAgICAgIHN0YXJ0UmVhZGluZ0Zyb21TdHJlYW0ob3B0aW9ucywgc3RyZWFtKTtcbiAgICAgIHJldHVybiBnZXRSb290KG9wdGlvbnMpO1xuICAgIH07XG4gICAgZXhwb3J0cy5jcmVhdGVTZXJ2ZXJSZWZlcmVuY2UgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2UkMShpZCwgbm9TZXJ2ZXJDYWxsJDEpO1xuICAgIH07XG4gICAgZXhwb3J0cy5jcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gbmV3IE1hcCgpO1xuICAgIH07XG4gICAgZXhwb3J0cy5lbmNvZGVSZXBseSA9IGZ1bmN0aW9uICh2YWx1ZSwgb3B0aW9ucykge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgdmFyIGFib3J0ID0gcHJvY2Vzc1JlcGx5KFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLnRlbXBvcmFyeVJlZmVyZW5jZXNcbiAgICAgICAgICAgID8gb3B0aW9ucy50ZW1wb3JhcnlSZWZlcmVuY2VzXG4gICAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgICByZXNvbHZlLFxuICAgICAgICAgIHJlamVjdFxuICAgICAgICApO1xuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNpZ25hbCkge1xuICAgICAgICAgIHZhciBzaWduYWwgPSBvcHRpb25zLnNpZ25hbDtcbiAgICAgICAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIGFib3J0KHNpZ25hbC5yZWFzb24pO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFyIGxpc3RlbmVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICBhYm9ydChzaWduYWwucmVhc29uKTtcbiAgICAgICAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBsaXN0ZW5lcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBsaXN0ZW5lcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGV4cG9ydHMucmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2UgPSBmdW5jdGlvbiAoXG4gICAgICByZWZlcmVuY2UsXG4gICAgICBpZCxcbiAgICAgIGVuY29kZUZvcm1BY3Rpb25cbiAgICApIHtcbiAgICAgIHJlZ2lzdGVyQm91bmRTZXJ2ZXJSZWZlcmVuY2UocmVmZXJlbmNlLCBpZCwgbnVsbCwgZW5jb2RlRm9ybUFjdGlvbik7XG4gICAgICByZXR1cm4gcmVmZXJlbmNlO1xuICAgIH07XG4gIH0pKCk7XG4iXSwibmFtZXMiOlsicmVzb2x2ZUNsaWVudFJlZmVyZW5jZSIsImJ1bmRsZXJDb25maWciLCJtZXRhZGF0YSIsIm1vZHVsZUV4cG9ydHMiLCJuYW1lIiwiRXJyb3IiLCJsZW5ndGgiLCJpZCIsImNodW5rcyIsInJlc29sdmVTZXJ2ZXJSZWZlcmVuY2UiLCJyZXNvbHZlZE1vZHVsZURhdGEiLCJpZHgiLCJsYXN0SW5kZXhPZiIsInNsaWNlIiwiYXN5bmMiLCJyZXF1aXJlQXN5bmNNb2R1bGUiLCJwcm9taXNlIiwiZ2xvYmFsVGhpcyIsIl9fbmV4dF9yZXF1aXJlX18iLCJ0aGVuIiwic3RhdHVzIiwidmFsdWUiLCJyZWFzb24iLCJpZ25vcmVSZWplY3QiLCJwcmVsb2FkTW9kdWxlIiwicHJvbWlzZXMiLCJpIiwiY2h1bmtJZCIsImVudHJ5IiwiY2h1bmtDYWNoZSIsImdldCIsIl9fd2VicGFja19jaHVua19sb2FkX18iLCJwdXNoIiwicmVzb2x2ZSIsInNldCIsImJpbmQiLCJQcm9taXNlIiwiYWxsIiwicmVxdWlyZU1vZHVsZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwicHJlcGFyZURlc3RpbmF0aW9uV2l0aENodW5rcyIsIm1vZHVsZUxvYWRpbmciLCJub25jZSRqc2NvbXAkMCIsIm5vbmNlIiwiSlNDb21waWxlcl90ZW1wX2NvbnN0IiwiUmVhY3RET01TaGFyZWRJbnRlcm5hbHMiLCJkIiwiSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQwIiwiWCIsIkpTQ29tcGlsZXJfdGVtcF9jb25zdCRqc2NvbXAkMSIsInByZWZpeCIsIkpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCIsImNyb3NzT3JpZ2luIiwiY2FsbCIsImdldEl0ZXJhdG9yRm4iLCJtYXliZUl0ZXJhYmxlIiwiTUFZQkVfSVRFUkFUT1JfU1lNQk9MIiwiaXNPYmplY3RQcm90b3R5cGUiLCJvYmplY3QiLCJPYmplY3RQcm90b3R5cGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsImdldE93blByb3BlcnR5TmFtZXMiLCJpc1NpbXBsZU9iamVjdCIsIm5hbWVzIiwiZGVzY3JpcHRvciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJvYmplY3ROYW1lIiwidG9TdHJpbmciLCJkZXNjcmliZUtleUZvckVycm9yTWVzc2FnZSIsImtleSIsImVuY29kZWRLZXkiLCJKU09OIiwic3RyaW5naWZ5IiwiZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZSIsImlzQXJyYXlJbXBsIiwiJCR0eXBlb2YiLCJDTElFTlRfUkVGRVJFTkNFX1RBRyIsImRpc3BsYXlOYW1lIiwiU3RyaW5nIiwiZGVzY3JpYmVFbGVtZW50VHlwZSIsInR5cGUiLCJSRUFDVF9TVVNQRU5TRV9UWVBFIiwiUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsInJlbmRlciIsIlJFQUNUX01FTU9fVFlQRSIsIlJFQUNUX0xBWllfVFlQRSIsInBheWxvYWQiLCJfcGF5bG9hZCIsIl9pbml0IiwieCIsImRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlIiwib2JqZWN0T3JBcnJheSIsImV4cGFuZGVkTmFtZSIsIm9iaktpbmQiLCJzdGFydCIsImpzeENoaWxkcmVuUGFyZW50cyIsImhhcyIsIlJFQUNUX0VMRU1FTlRfVFlQRSIsImpzeFByb3BzUGFyZW50cyIsImtleXMiLCJfdmFsdWUyIiwiX3N1YnN0cjIiLCJyZXBlYXQiLCJzZXJpYWxpemVOdW1iZXIiLCJudW1iZXIiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIkluZmluaXR5IiwicHJvY2Vzc1JlcGx5Iiwicm9vdCIsImZvcm1GaWVsZFByZWZpeCIsInRlbXBvcmFyeVJlZmVyZW5jZXMiLCJyZWplY3QiLCJzZXJpYWxpemVUeXBlZEFycmF5IiwidGFnIiwidHlwZWRBcnJheSIsIkJsb2IiLCJVaW50OEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJibG9iSWQiLCJuZXh0UGFydElkIiwiZm9ybURhdGEiLCJGb3JtRGF0YSIsImFwcGVuZCIsInNlcmlhbGl6ZUJpbmFyeVJlYWRlciIsInJlYWRlciIsInByb2dyZXNzIiwiZG9uZSIsImRhdGEiLCJzdHJlYW1JZCIsInBlbmRpbmdQYXJ0cyIsInJlYWQiLCJzZXJpYWxpemVSZWFkZXIiLCJwYXJ0SlNPTiIsInJlc29sdmVUb0pTT04iLCJzZXJpYWxpemVSZWFkYWJsZVN0cmVhbSIsInN0cmVhbSIsImJpbmFyeVJlYWRlciIsImdldFJlYWRlciIsIm1vZGUiLCJzZXJpYWxpemVBc3luY0l0ZXJhYmxlIiwiaXRlcmFibGUiLCJpdGVyYXRvciIsIl9wYXJ0SlNPTiIsIm5leHQiLCJ4JDAiLCJvcmlnaW5hbFZhbHVlIiwiRGF0ZSIsImNvbnNvbGUiLCJlcnJvciIsImluZGV4T2YiLCJwYXJlbnRSZWZlcmVuY2UiLCJ3cml0dGVuT2JqZWN0cyIsImluaXQiLCJsYXp5SWQiLCJzZXJpYWxpemVNb2RlbCIsIl9sYXp5SWQiLCJfcGFydEpTT04yIiwiX2RhdGEiLCJwcm9taXNlSWQiLCJwYXJ0VmFsdWUiLCJfcGFydEpTT04zIiwibW9kZWxSb290IiwiX2RhdGEzIiwiZm9yRWFjaCIsIm9yaWdpbmFsS2V5IiwiTWFwIiwiQXJyYXkiLCJmcm9tIiwiU2V0IiwiQXJyYXlCdWZmZXIiLCJJbnQ4QXJyYXkiLCJVaW50OENsYW1wZWRBcnJheSIsIkludDE2QXJyYXkiLCJVaW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJVaW50MzJBcnJheSIsIkZsb2F0MzJBcnJheSIsIkZsb2F0NjRBcnJheSIsIkJpZ0ludDY0QXJyYXkiLCJCaWdVaW50NjRBcnJheSIsIkRhdGFWaWV3IiwiUmVhZGFibGVTdHJlYW0iLCJBU1lOQ19JVEVSQVRPUiIsIlJFQUNUX0NPTlRFWFRfVFlQRSIsImdldE93blByb3BlcnR5U3ltYm9scyIsImRlc2NyaXB0aW9uIiwia25vd25TZXJ2ZXJSZWZlcmVuY2VzIiwiYm91bmQiLCJtb2RlbCIsIldlYWtNYXAiLCJqc29uIiwiZW5jb2RlRm9ybURhdGEiLCJyZWZlcmVuY2UiLCJ0aGVuYWJsZSIsInJlcyIsInJlaiIsImJvZHkiLCJlIiwiZGVmYXVsdEVuY29kZUZvcm1BY3Rpb24iLCJpZGVudGlmaWVyUHJlZml4IiwicmVmZXJlbmNlQ2xvc3VyZSIsImJvdW5kQ2FjaGUiLCJwcmVmaXhlZERhdGEiLCJtZXRob2QiLCJlbmNUeXBlIiwiaXNTaWduYXR1cmVFcXVhbCIsInJlZmVyZW5jZUlkIiwibnVtYmVyT2ZCb3VuZEFyZ3MiLCJib3VuZFByb21pc2UiLCJib3VuZEFyZ3MiLCJjcmVhdGVGYWtlU2VydmVyRnVuY3Rpb24iLCJmaWxlbmFtZSIsInNvdXJjZU1hcCIsImxpbmUiLCJjb2wiLCJlbnZpcm9ubWVudE5hbWUiLCJpbm5lckZ1bmN0aW9uIiwiZW5jb2RlZE5hbWUiLCJzdGFydHNXaXRoIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZmFrZVNlcnZlckZ1bmN0aW9uSWR4IiwiZXZhbCIsInJlZ2lzdGVyQm91bmRTZXJ2ZXJSZWZlcmVuY2UiLCJlbmNvZGVGb3JtQWN0aW9uIiwib3JpZ2luYWxCaW5kIiwiZGVmaW5lUHJvcGVydGllcyIsIiQkRk9STV9BQ1RJT04iLCIkJElTX1NJR05BVFVSRV9FUVVBTCIsIkZ1bmN0aW9uQmluZCIsImFwcGx5IiwiYXJndW1lbnRzIiwibmV3Rm4iLCJhcmdzIiwiQXJyYXlTbGljZSIsImNvbmNhdCIsImNyZWF0ZUJvdW5kU2VydmVyUmVmZXJlbmNlIiwibWV0YURhdGEiLCJjYWxsU2VydmVyIiwiZmluZFNvdXJjZU1hcFVSTCIsImFjdGlvbiIsImxvY2F0aW9uIiwiZnVuY3Rpb25OYW1lIiwiZW52IiwicGFyc2VTdGFja0xvY2F0aW9uIiwic3RhY2siLCJlbmRPZkZpcnN0IiwiZW5kT2ZTZWNvbmQiLCJ2OEZyYW1lUmVnRXhwIiwiZXhlYyIsImpzY1NwaWRlck1vbmtleUZyYW1lUmVnRXhwIiwiY3JlYXRlU2VydmVyUmVmZXJlbmNlJDEiLCJnZXRDb21wb25lbnROYW1lRnJvbVR5cGUiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFIiwiUkVBQ1RfRlJBR01FTlRfVFlQRSIsIlJFQUNUX1BST0ZJTEVSX1RZUEUiLCJSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIiwiUkVBQ1RfQUNUSVZJVFlfVFlQRSIsIlJFQUNUX1BPUlRBTF9UWVBFIiwiUkVBQ1RfQ09OU1VNRVJfVFlQRSIsIl9jb250ZXh0IiwiaW5uZXJUeXBlIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJzdHJ1Y3R1cmVkU3RhY2tUcmFjZSIsIm1lc3NhZ2UiLCJSZWFjdFByb21pc2UiLCJfZGVidWdJbmZvIiwiX2RlYnVnQ2h1bmsiLCJ1bndyYXBXZWFrUmVzcG9uc2UiLCJ3ZWFrUmVzcG9uc2UiLCJ3ZWFrIiwiZGVyZWYiLCJjbGVhbnVwRGVidWdDaGFubmVsIiwiZGVidWdDaGFubmVsIiwicmVhZENodW5rIiwiY2h1bmsiLCJpbml0aWFsaXplTW9kZWxDaHVuayIsImluaXRpYWxpemVNb2R1bGVDaHVuayIsImdldFJvb3QiLCJnZXRDaHVuayIsImNyZWF0ZVBlbmRpbmdDaHVuayIsInJlc3BvbnNlIiwiX3BlbmRpbmdDaHVua3MiLCJfd2Vha1Jlc3BvbnNlIiwiX3BlbmRpbmdJbml0aWFsUmVuZGVyIiwiY2xlYXJUaW1lb3V0IiwicmVsZWFzZVBlbmRpbmdDaHVuayIsInNldFRpbWVvdXQiLCJmbHVzaEluaXRpYWxSZW5kZXJQZXJmb3JtYW5jZSIsIndha2VDaHVuayIsImxpc3RlbmVycyIsImxpc3RlbmVyIiwiZnVsZmlsbFJlZmVyZW5jZSIsInJlamVjdENodW5rIiwicmVqZWN0UmVmZXJlbmNlIiwicmVzb2x2ZUJsb2NrZWRDeWNsZSIsInJlc29sdmVkQ2h1bmsiLCJyZWZlcmVuY2VkQ2h1bmsiLCJoYW5kbGVyIiwid2FrZUNodW5rSWZJbml0aWFsaXplZCIsInJlc29sdmVMaXN0ZW5lcnMiLCJyZWplY3RMaXN0ZW5lcnMiLCJjeWNsaWNIYW5kbGVyIiwic3BsaWNlIiwidHJpZ2dlckVycm9yT25DaHVuayIsInByZXZIYW5kbGVyIiwiaW5pdGlhbGl6aW5nSGFuZGxlciIsImluaXRpYWxpemVEZWJ1Z0NodW5rIiwiY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rIiwiY3JlYXRlUmVzb2x2ZWRJdGVyYXRvclJlc3VsdENodW5rIiwicmVzb2x2ZUl0ZXJhdG9yUmVzdWx0Q2h1bmsiLCJyZXNvbHZlTW9kZWxDaHVuayIsImVucXVldWVNb2RlbCIsInJlc29sdmVNb2R1bGVDaHVuayIsImRlYnVnQ2h1bmsiLCJkZWJ1Z0luZm8iLCJjIiwiaW5pdGlhbGl6ZURlYnVnSW5mbyIsIndhaXRGb3JSZWZlcmVuY2UiLCJyZXNvbHZlZE1vZGVsIiwicGFyc2UiLCJfZnJvbUpTT04iLCJlcnJvcmVkIiwiZGVwcyIsInJlcG9ydEdsb2JhbEVycm9yIiwiX2Nsb3NlZCIsIl9jbG9zZWRSZWFzb24iLCJfY2h1bmtzIiwiX2RlYnVnQ2hhbm5lbCIsIm51bGxSZWZHZXR0ZXIiLCJnZXRUYXNrTmFtZSIsImluaXRpYWxpemVFbGVtZW50IiwiZWxlbWVudCIsIl9kZWJ1Z1N0YWNrIiwib3duZXIiLCJfb3duZXIiLCJfZGVidWdSb290T3duZXIiLCJfcm9vdEVudmlyb25tZW50TmFtZSIsIm5vcm1hbGl6ZWRTdGFja1RyYWNlIiwiX2RlYnVnUm9vdFN0YWNrIiwiY3JlYXRlRmFrZUpTWENhbGxTdGFja0luREVWIiwic3VwcG9ydHNDcmVhdGVUYXNrIiwiY3JlYXRlVGFzayIsImJ1aWxkRmFrZUNhbGxTdGFjayIsImluaXRpYWxpemVGYWtlVGFzayIsIl9kZWJ1Z1Jvb3RUYXNrIiwicnVuIiwiX2RlYnVnVGFzayIsImluaXRpYWxpemVGYWtlU3RhY2siLCJmcmVlemUiLCJwcm9wcyIsImNyZWF0ZUxhenlDaHVua1dyYXBwZXIiLCJsYXp5VHlwZSIsInBhcmVudE9iamVjdCIsIm1hcCIsInBhdGgiLCJibG9ja2VkVmFsdWUiLCJlcnJvcmVkQ29tcG9uZW50IiwiZGVidWdTdGFjayIsImRlYnVnVGFzayIsInBhcmVudCIsImxvYWRTZXJ2ZXJSZWZlcmVuY2UiLCJfc2VydmVyUmVmZXJlbmNlQ29uZmlnIiwiX2NhbGxTZXJ2ZXIiLCJfZW5jb2RlRm9ybUFjdGlvbiIsIl9kZWJ1Z0ZpbmRTb3VyY2VNYXBVUkwiLCJzZXJ2ZXJSZWZlcmVuY2UiLCJyZXNvbHZlZFZhbHVlIiwidW5zaGlmdCIsImdldE91dGxpbmVkTW9kZWwiLCJzcGxpdCIsInBhcnNlSW50IiwiZGVmaW5lUHJvcGVydHkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImNyZWF0ZU1hcCIsImNyZWF0ZVNldCIsImNyZWF0ZUJsb2IiLCJjcmVhdGVGb3JtRGF0YSIsImFwcGx5Q29uc3RydWN0b3IiLCJzZXRQcm90b3R5cGVPZiIsImRlZmluZUxhenlHZXR0ZXIiLCJleHRyYWN0SXRlcmF0b3IiLCJTeW1ib2wiLCJjcmVhdGVNb2RlbCIsImdldEluZmVycmVkRnVuY3Rpb25BcHByb3hpbWF0ZSIsImNvZGUiLCJ0cmltIiwicGFyc2VNb2RlbFN0cmluZyIsImZvciIsInJlZiIsIl90ZW1wUmVmcyIsInJlc29sdmVFcnJvckRldiIsIk5hTiIsIkJpZ0ludCIsIm1pZ2h0SGF2ZVN0YXRpY0NvbnN0cnVjdG9yIiwidGVzdCIsIl8iLCJtaXNzaW5nQ2FsbCIsIlJlc3BvbnNlSW5zdGFuY2UiLCJzZXJ2ZXJSZWZlcmVuY2VDb25maWciLCJyZXBsYXlDb25zb2xlIiwiX2J1bmRsZXJDb25maWciLCJfbW9kdWxlTG9hZGluZyIsIl9ub25jZSIsIl9zdHJpbmdEZWNvZGVyIiwidXRpbCIsIlRleHREZWNvZGVyIiwiV2Vha1JlZiIsIlJlYWN0U2hhcmVkSW50ZXJhbHNTZXJ2ZXIiLCJBIiwiZ2V0T3duZXIiLCJ0b0xvd2VyQ2FzZSIsIl9ibG9ja2VkQ29uc29sZSIsIl9yZXBsYXlDb25zb2xlIiwiZGVidWdDaGFubmVsUmVnaXN0cnkiLCJyZWdpc3RlciIsImNyZWF0ZUZyb21KU09OQ2FsbGJhY2siLCJjcmVhdGVTdHJlYW1TdGF0ZSIsIl9yb3dTdGF0ZSIsIl9yb3dJRCIsIl9yb3dUYWciLCJfcm93TGVuZ3RoIiwiX2J1ZmZlciIsInJlc29sdmVCdWZmZXIiLCJlbnF1ZXVlVmFsdWUiLCJyZXNvbHZlTW9kdWxlIiwiY2xpZW50UmVmZXJlbmNlIiwiYmxvY2tlZENodW5rIiwicmVzb2x2ZVN0cmVhbSIsImNvbnRyb2xsZXIiLCJzdGFydFJlYWRhYmxlU3RyZWFtIiwicHJldmlvdXNCbG9ja2VkQ2h1bmsiLCJlbnF1ZXVlIiwidiIsIl9jaHVuazMiLCJjbG9zZSIsImFzeW5jSXRlcmF0b3IiLCJjcmVhdGVJdGVyYXRvciIsInN0YXJ0QXN5bmNJdGVyYWJsZSIsImNsb3NlZCIsIm5leHRXcml0ZUluZGV4IiwibmV4dFJlYWRJbmRleCIsImFyZyIsImVycm9ySW5mbyIsImdldFJvb3RUYXNrIiwiY3JlYXRlRmFrZUZ1bmN0aW9uIiwiZW5jbG9zaW5nTGluZSIsImVuY2xvc2luZ0NvbCIsImZha2VGdW5jdGlvbklkeCIsImZuIiwidXNlRW5jbG9zaW5nTGluZSIsImlubmVyQ2FsbCIsImZyYW1lIiwiZnJhbWVLZXkiLCJqb2luIiwiZmFrZUZ1bmN0aW9uQ2FjaGUiLCJjaGlsZEVudmlyb25tZW50TmFtZSIsInJvb3RUYXNrIiwiY2FjaGVkRW50cnkiLCJvd25lclRhc2siLCJhd2FpdGVkIiwiZmFrZUpTWENhbGxTaXRlIiwiZGVidWdMb2NhdGlvbiIsImdldEN1cnJlbnRTdGFja0luREVWIiwiY3VycmVudE93bmVySW5ERVYiLCJpbmZvIiwib3duZXJTdGFjayIsInByZXZQcmVwYXJlU3RhY2tUcmFjZSIsIkpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCIsIm1hdGNoIiwic3VmZml4IiwicmVzb2x2ZUNvbnNvbGVFbnRyeSIsInJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrSW5ERVYiLCJfY2h1bms0IiwidW5ibG9jayIsImluaXRpYWxpemVJT0luZm8iLCJpb0luZm8iLCJfdGltZU9yaWdpbiIsImVuZCIsInJlc29sdmVJT0luZm8iLCJtZXJnZUJ1ZmZlciIsImxhc3RDaHVuayIsImwiLCJfaTMiLCJyZXNvbHZlVHlwZWRBcnJheSIsImNvbnN0cnVjdG9yIiwiYnl0ZXNQZXJFbGVtZW50IiwicHJvY2Vzc0Z1bGxCaW5hcnlSb3ciLCJzdHJpbmdEZWNvZGVyIiwicm93IiwiZGVjb2RlIiwiZGVjb2Rlck9wdGlvbnMiLCJwcm9jZXNzRnVsbFN0cmluZ1JvdyIsIkQiLCJDIiwiTCIsIm0iLCJTIiwiTSIsImRpZ2VzdCIsInBlcmZvcm1hbmNlIiwidGltZU9yaWdpbiIsInByb2Nlc3NCaW5hcnlDaHVuayIsInN0cmVhbVN0YXRlIiwicm93U3RhdGUiLCJyb3dUYWciLCJyb3dMZW5ndGgiLCJjaHVua0xlbmd0aCIsImxhc3RJZHgiLCJvZmZzZXQiLCJiIiwidmFsaWRhdGVkIiwiX3N0b3JlIiwibm9TZXJ2ZXJDYWxsJDEiLCJjcmVhdGVSZXNwb25zZUZyb21PcHRpb25zIiwib3B0aW9ucyIsInNlcnZlckNvbnN1bWVyTWFuaWZlc3QiLCJtb2R1bGVNYXAiLCJzZXJ2ZXJNb2R1bGVNYXAiLCJyZXBsYXlDb25zb2xlTG9ncyIsInN0YXJ0UmVhZGluZ0Zyb21TdHJlYW0iLCJfcmVmIiwiY2F0Y2giLCJub1NlcnZlckNhbGwiLCJyZXF1aXJlIiwiUmVhY3RET00iLCJSZWFjdCIsImJpbmQkMSIsIkZ1bmN0aW9uIiwiX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFIiwiaXNBcnJheSIsIl9fU0VSVkVSX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSIsIlJlYWN0U2hhcmVkSW50ZXJuYWxzIiwiX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFIiwiY3JlYXRlIiwiX3RoaXMiLCJyZXNvbHZlQ2FsbGJhY2siLCJyZWplY3RDYWxsYmFjayIsIndyYXBwZXJQcm9taXNlIiwiRmluYWxpemF0aW9uUmVnaXN0cnkiLCJjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrIiwicmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lIiwicmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2siLCJtZXRob2ROYW1lIiwic3RhY2tUcmFjZSIsInByZXZTdGFjayIsImdldEN1cnJlbnRTdGFjayIsImEiLCJuZXdBcmdzIiwiY2FsbFN0YWNrIiwidGFzayIsImV4cG9ydHMiLCJjcmVhdGVGcm9tRmV0Y2giLCJwcm9taXNlRm9yUmVzcG9uc2UiLCJyIiwiY3JlYXRlRnJvbU5vZGVTdHJlYW0iLCJyZXNwb25zZSRqc2NvbXAkMCIsIm9uIiwicm93SUQiLCJjaGFyQ29kZUF0IiwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIiwiY3JlYXRlU2VydmVyUmVmZXJlbmNlIiwiY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0IiwiZW5jb2RlUmVwbHkiLCJhYm9ydCIsInNpZ25hbCIsImFib3J0ZWQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlIl0sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js ***! \*********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-server-dom-webpack-client.node.development.js */ \"(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQubm9kZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsaU9BQXFGO0FBQ3ZGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudC5ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50Lm5vZGUucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50Lm5vZGUuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/server-only/empty.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/compiled/server-only/empty.js ***! \**************************************************************/ /***/ (() => { /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/string-hash/index.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/compiled/string-hash/index.js ***! \**************************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";var e={328:e=>{function hash(e){var r=5381,_=e.length;while(_){r=r*33^e.charCodeAt(--_)}return r>>>0}e.exports=hash}};var r={};function __nccwpck_require__(_){var a=r[_];if(a!==undefined){return a.exports}var t=r[_]={exports:{}};var i=true;try{e[_](t,t.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return t.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var _=__nccwpck_require__(328);module.exports=_})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmluZy1oYXNoL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPLFFBQVEsaUJBQWlCLHNCQUFzQixTQUFTLHlCQUF5QixhQUFhLGlCQUFpQixTQUFTLGdDQUFnQyxXQUFXLGtCQUFrQixpQkFBaUIsWUFBWSxZQUFZLFdBQVcsSUFBSSxzQ0FBc0MsUUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsaUZBQWlGLCtCQUErQixpQkFBaUIiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpbmctaGFzaC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17MzI4OmU9PntmdW5jdGlvbiBoYXNoKGUpe3ZhciByPTUzODEsXz1lLmxlbmd0aDt3aGlsZShfKXtyPXIqMzNeZS5jaGFyQ29kZUF0KC0tXyl9cmV0dXJuIHI+Pj4wfWUuZXhwb3J0cz1oYXNofX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhfKXt2YXIgYT1yW19dO2lmKGEhPT11bmRlZmluZWQpe3JldHVybiBhLmV4cG9ydHN9dmFyIHQ9cltfXT17ZXhwb3J0czp7fX07dmFyIGk9dHJ1ZTt0cnl7ZVtfXSh0LHQuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtpPWZhbHNlfWZpbmFsbHl7aWYoaSlkZWxldGUgcltfXX1yZXR1cm4gdC5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgXz1fX25jY3dwY2tfcmVxdWlyZV9fKDMyOCk7bW9kdWxlLmV4cG9ydHM9X30pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/string-hash/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/superstruct/index.cjs": /*!***************************************************************!*\ !*** ./node_modules/next/dist/compiled/superstruct/index.cjs ***! \***************************************************************/ /***/ ((module) => { eval("(()=>{var e={318:function(e,t){(function(e,n){ true?n(t):0})(this,(function(e){\"use strict\";class StructError extends TypeError{constructor(e,t){let n;const{message:r,explanation:i,...c}=e;const{path:o}=e;const a=o.length===0?r:`At path: ${o.join(\".\")} -- ${r}`;super(i??a);if(i!=null)this.cause=a;Object.assign(this,c);this.name=this.constructor.name;this.failures=()=>n??(n=[e,...t()])}}function isIterable(e){return isObject(e)&&typeof e[Symbol.iterator]===\"function\"}function isObject(e){return typeof e===\"object\"&&e!=null}function isPlainObject(e){if(Object.prototype.toString.call(e)!==\"[object Object]\"){return false}const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function print(e){if(typeof e===\"symbol\"){return e.toString()}return typeof e===\"string\"?JSON.stringify(e):`${e}`}function shiftIterator(e){const{done:t,value:n}=e.next();return t?undefined:n}function toFailure(e,t,n,r){if(e===true){return}else if(e===false){e={}}else if(typeof e===\"string\"){e={message:e}}const{path:i,branch:c}=t;const{type:o}=n;const{refinement:a,message:s=`Expected a value of type \\`${o}\\`${a?` with refinement \\`${a}\\``:\"\"}, but received: \\`${print(r)}\\``}=e;return{value:r,type:o,refinement:a,key:i[i.length-1],path:i,branch:c,...e,message:s}}function*toFailures(e,t,n,r){if(!isIterable(e)){e=[e]}for(const i of e){const e=toFailure(i,t,n,r);if(e){yield e}}}function*run(e,t,n={}){const{path:r=[],branch:i=[e],coerce:c=false,mask:o=false}=n;const a={path:r,branch:i};if(c){e=t.coercer(e,a);if(o&&t.type!==\"type\"&&isObject(t.schema)&&isObject(e)&&!Array.isArray(e)){for(const n in e){if(t.schema[n]===undefined){delete e[n]}}}}let s=\"valid\";for(const r of t.validator(e,a)){r.explanation=n.message;s=\"not_valid\";yield[r,undefined]}for(let[u,f,l]of t.entries(e,a)){const t=run(f,l,{path:u===undefined?r:[...r,u],branch:u===undefined?i:[...i,f],coerce:c,mask:o,message:n.message});for(const n of t){if(n[0]){s=n[0].refinement!=null?\"not_refined\":\"not_valid\";yield[n[0],undefined]}else if(c){f=n[1];if(u===undefined){e=f}else if(e instanceof Map){e.set(u,f)}else if(e instanceof Set){e.add(f)}else if(isObject(e)){if(f!==undefined||u in e)e[u]=f}}}}if(s!==\"not_valid\"){for(const r of t.refiner(e,a)){r.explanation=n.message;s=\"not_refined\";yield[r,undefined]}}if(s===\"valid\"){yield[undefined,e]}}class Struct{constructor(e){const{type:t,schema:n,validator:r,refiner:i,coercer:c=(e=>e),entries:o=function*(){}}=e;this.type=t;this.schema=n;this.entries=o;this.coercer=c;if(r){this.validator=(e,t)=>{const n=r(e,t);return toFailures(n,t,this,e)}}else{this.validator=()=>[]}if(i){this.refiner=(e,t)=>{const n=i(e,t);return toFailures(n,t,this,e)}}else{this.refiner=()=>[]}}assert(e,t){return assert(e,this,t)}create(e,t){return create(e,this,t)}is(e){return is(e,this)}mask(e,t){return mask(e,this,t)}validate(e,t={}){return validate(e,this,t)}}function assert(e,t,n){const r=validate(e,t,{message:n});if(r[0]){throw r[0]}}function create(e,t,n){const r=validate(e,t,{coerce:true,message:n});if(r[0]){throw r[0]}else{return r[1]}}function mask(e,t,n){const r=validate(e,t,{coerce:true,mask:true,message:n});if(r[0]){throw r[0]}else{return r[1]}}function is(e,t){const n=validate(e,t);return!n[0]}function validate(e,t,n={}){const r=run(e,t,n);const i=shiftIterator(r);if(i[0]){const e=new StructError(i[0],(function*(){for(const e of r){if(e[0]){yield e[0]}}}));return[e,undefined]}else{const e=i[1];return[undefined,e]}}function assign(...e){const t=e[0].type===\"type\";const n=e.map((e=>e.schema));const r=Object.assign({},...n);return t?type(r):object(r)}function define(e,t){return new Struct({type:e,schema:null,validator:t})}function deprecated(e,t){return new Struct({...e,refiner:(t,n)=>t===undefined||e.refiner(t,n),validator(n,r){if(n===undefined){return true}else{t(n,r);return e.validator(n,r)}}})}function dynamic(e){return new Struct({type:\"dynamic\",schema:null,*entries(t,n){const r=e(t,n);yield*r.entries(t,n)},validator(t,n){const r=e(t,n);return r.validator(t,n)},coercer(t,n){const r=e(t,n);return r.coercer(t,n)},refiner(t,n){const r=e(t,n);return r.refiner(t,n)}})}function lazy(e){let t;return new Struct({type:\"lazy\",schema:null,*entries(n,r){t??(t=e());yield*t.entries(n,r)},validator(n,r){t??(t=e());return t.validator(n,r)},coercer(n,r){t??(t=e());return t.coercer(n,r)},refiner(n,r){t??(t=e());return t.refiner(n,r)}})}function omit(e,t){const{schema:n}=e;const r={...n};for(const e of t){delete r[e]}switch(e.type){case\"type\":return type(r);default:return object(r)}}function partial(e){const t=e instanceof Struct?{...e.schema}:{...e};for(const e in t){t[e]=optional(t[e])}return object(t)}function pick(e,t){const{schema:n}=e;const r={};for(const e of t){r[e]=n[e]}return object(r)}function struct(e,t){console.warn(\"superstruct@0.11 - The `struct` helper has been renamed to `define`.\");return define(e,t)}function any(){return define(\"any\",(()=>true))}function array(e){return new Struct({type:\"array\",schema:e,*entries(t){if(e&&Array.isArray(t)){for(const[n,r]of t.entries()){yield[n,r,e]}}},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${print(e)}`}})}function bigint(){return define(\"bigint\",(e=>typeof e===\"bigint\"))}function boolean(){return define(\"boolean\",(e=>typeof e===\"boolean\"))}function date(){return define(\"date\",(e=>e instanceof Date&&!isNaN(e.getTime())||`Expected a valid \\`Date\\` object, but received: ${print(e)}`))}function enums(e){const t={};const n=e.map((e=>print(e))).join();for(const n of e){t[n]=n}return new Struct({type:\"enums\",schema:t,validator(t){return e.includes(t)||`Expected one of \\`${n}\\`, but received: ${print(t)}`}})}function func(){return define(\"func\",(e=>typeof e===\"function\"||`Expected a function, but received: ${print(e)}`))}function instance(e){return define(\"instance\",(t=>t instanceof e||`Expected a \\`${e.name}\\` instance, but received: ${print(t)}`))}function integer(){return define(\"integer\",(e=>typeof e===\"number\"&&!isNaN(e)&&Number.isInteger(e)||`Expected an integer, but received: ${print(e)}`))}function intersection(e){return new Struct({type:\"intersection\",schema:null,*entries(t,n){for(const r of e){yield*r.entries(t,n)}},*validator(t,n){for(const r of e){yield*r.validator(t,n)}},*refiner(t,n){for(const r of e){yield*r.refiner(t,n)}}})}function literal(e){const t=print(e);const n=typeof e;return new Struct({type:\"literal\",schema:n===\"string\"||n===\"number\"||n===\"boolean\"?e:null,validator(n){return n===e||`Expected the literal \\`${t}\\`, but received: ${print(n)}`}})}function map(e,t){return new Struct({type:\"map\",schema:null,*entries(n){if(e&&t&&n instanceof Map){for(const[r,i]of n.entries()){yield[r,r,e];yield[r,i,t]}}},coercer(e){return e instanceof Map?new Map(e):e},validator(e){return e instanceof Map||`Expected a \\`Map\\` object, but received: ${print(e)}`}})}function never(){return define(\"never\",(()=>false))}function nullable(e){return new Struct({...e,validator:(t,n)=>t===null||e.validator(t,n),refiner:(t,n)=>t===null||e.refiner(t,n)})}function number(){return define(\"number\",(e=>typeof e===\"number\"&&!isNaN(e)||`Expected a number, but received: ${print(e)}`))}function object(e){const t=e?Object.keys(e):[];const n=never();return new Struct({type:\"object\",schema:e?e:null,*entries(r){if(e&&isObject(r)){const i=new Set(Object.keys(r));for(const n of t){i.delete(n);yield[n,r[n],e[n]]}for(const e of i){yield[e,r[e],n]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`},coercer(e){return isObject(e)?{...e}:e}})}function optional(e){return new Struct({...e,validator:(t,n)=>t===undefined||e.validator(t,n),refiner:(t,n)=>t===undefined||e.refiner(t,n)})}function record(e,t){return new Struct({type:\"record\",schema:null,*entries(n){if(isObject(n)){for(const r in n){const i=n[r];yield[r,r,e];yield[r,i,t]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`}})}function regexp(){return define(\"regexp\",(e=>e instanceof RegExp))}function set(e){return new Struct({type:\"set\",schema:null,*entries(t){if(e&&t instanceof Set){for(const n of t){yield[n,n,e]}}},coercer(e){return e instanceof Set?new Set(e):e},validator(e){return e instanceof Set||`Expected a \\`Set\\` object, but received: ${print(e)}`}})}function string(){return define(\"string\",(e=>typeof e===\"string\"||`Expected a string, but received: ${print(e)}`))}function tuple(e){const t=never();return new Struct({type:\"tuple\",schema:null,*entries(n){if(Array.isArray(n)){const r=Math.max(e.length,n.length);for(let i=0;i<r;i++){yield[i,n[i],e[i]||t]}}},validator(e){return Array.isArray(e)||`Expected an array, but received: ${print(e)}`}})}function type(e){const t=Object.keys(e);return new Struct({type:\"type\",schema:e,*entries(n){if(isObject(n)){for(const r of t){yield[r,n[r],e[r]]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`},coercer(e){return isObject(e)?{...e}:e}})}function union(e){const t=e.map((e=>e.type)).join(\" | \");return new Struct({type:\"union\",schema:null,coercer(t){for(const n of e){const[e,r]=n.validate(t,{coerce:true});if(!e){return r}}return t},validator(n,r){const i=[];for(const t of e){const[...e]=run(n,t,r);const[c]=e;if(!c[0]){return[]}else{for(const[t]of e){if(t){i.push(t)}}}}return[`Expected the value to satisfy a union of \\`${t}\\`, but received: ${print(n)}`,...i]}})}function unknown(){return define(\"unknown\",(()=>true))}function coerce(e,t,n){return new Struct({...e,coercer:(r,i)=>is(r,t)?e.coercer(n(r,i),i):e.coercer(r,i)})}function defaulted(e,t,n={}){return coerce(e,unknown(),(e=>{const r=typeof t===\"function\"?t():t;if(e===undefined){return r}if(!n.strict&&isPlainObject(e)&&isPlainObject(r)){const t={...e};let n=false;for(const e in r){if(t[e]===undefined){t[e]=r[e];n=true}}if(n){return t}}return e}))}function trimmed(e){return coerce(e,string(),(e=>e.trim()))}function empty(e){return refine(e,\"empty\",(t=>{const n=getSize(t);return n===0||`Expected an empty ${e.type} but received one with a size of \\`${n}\\``}))}function getSize(e){if(e instanceof Map||e instanceof Set){return e.size}else{return e.length}}function max(e,t,n={}){const{exclusive:r}=n;return refine(e,\"max\",(n=>r?n<t:n<=t||`Expected a ${e.type} less than ${r?\"\":\"or equal to \"}${t} but received \\`${n}\\``))}function min(e,t,n={}){const{exclusive:r}=n;return refine(e,\"min\",(n=>r?n>t:n>=t||`Expected a ${e.type} greater than ${r?\"\":\"or equal to \"}${t} but received \\`${n}\\``))}function nonempty(e){return refine(e,\"nonempty\",(t=>{const n=getSize(t);return n>0||`Expected a nonempty ${e.type} but received an empty one`}))}function pattern(e,t){return refine(e,\"pattern\",(n=>t.test(n)||`Expected a ${e.type} matching \\`/${t.source}/\\` but received \"${n}\"`))}function size(e,t,n=t){const r=`Expected a ${e.type}`;const i=t===n?`of \\`${t}\\``:`between \\`${t}\\` and \\`${n}\\``;return refine(e,\"size\",(e=>{if(typeof e===\"number\"||e instanceof Date){return t<=e&&e<=n||`${r} ${i} but received \\`${e}\\``}else if(e instanceof Map||e instanceof Set){const{size:c}=e;return t<=c&&c<=n||`${r} with a size ${i} but received one with a size of \\`${c}\\``}else{const{length:c}=e;return t<=c&&c<=n||`${r} with a length ${i} but received one with a length of \\`${c}\\``}}))}function refine(e,t,n){return new Struct({...e,*refiner(r,i){yield*e.refiner(r,i);const c=n(r,i);const o=toFailures(c,i,e,r);for(const e of o){yield{...e,refinement:t}}}})}e.Struct=Struct;e.StructError=StructError;e.any=any;e.array=array;e.assert=assert;e.assign=assign;e.bigint=bigint;e.boolean=boolean;e.coerce=coerce;e.create=create;e.date=date;e.defaulted=defaulted;e.define=define;e.deprecated=deprecated;e.dynamic=dynamic;e.empty=empty;e.enums=enums;e.func=func;e.instance=instance;e.integer=integer;e.intersection=intersection;e.is=is;e.lazy=lazy;e.literal=literal;e.map=map;e.mask=mask;e.max=max;e.min=min;e.never=never;e.nonempty=nonempty;e.nullable=nullable;e.number=number;e.object=object;e.omit=omit;e.optional=optional;e.partial=partial;e.pattern=pattern;e.pick=pick;e.record=record;e.refine=refine;e.regexp=regexp;e.set=set;e.size=size;e.string=string;e.struct=struct;e.trimmed=trimmed;e.tuple=tuple;e.type=type;e.union=union;e.unknown=unknown;e.validate=validate}))}};if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t={};e[318](0,t);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N1cGVyc3RydWN0L2luZGV4LmNqcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCLGVBQWUsS0FBSSxNQUFNLENBQUMsQ0FBQyxvQkFBb0IsYUFBYSxvQ0FBb0MsaUJBQWlCLE1BQU0sTUFBTSw2QkFBNkIsR0FBRyxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsYUFBYSxLQUFLLEVBQUUsRUFBRSxZQUFZLHdCQUF3QixzQkFBc0IsZ0NBQWdDLHFDQUFxQyx1QkFBdUIsMkRBQTJELHFCQUFxQixvQ0FBb0MsMEJBQTBCLDBEQUEwRCxhQUFhLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLHdCQUF3QixvQkFBb0IsZ0RBQWdELEVBQUUsRUFBRSwwQkFBMEIsTUFBTSxlQUFlLFVBQVUscUJBQXFCLDRCQUE0QixhQUFhLE9BQU8sbUJBQW1CLEtBQUssNkJBQTZCLEdBQUcsV0FBVyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sT0FBTyxHQUFHLE1BQU0scURBQXFELEVBQUUsSUFBSSx3QkFBd0IsRUFBRSxPQUFPLG9CQUFvQixTQUFTLElBQUksR0FBRyxPQUFPLDhFQUE4RSw2QkFBNkIsbUJBQW1CLE1BQU0sa0JBQWtCLDJCQUEyQixNQUFNLFVBQVUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsR0FBRyxTQUFTLGlCQUFpQixNQUFNLGlCQUFpQiwyRUFBMkUsa0JBQWtCLDRCQUE0QixlQUFlLGNBQWMsaUNBQWlDLHdCQUF3QixjQUFjLG1CQUFtQixpQ0FBaUMsaUJBQWlCLGdHQUFnRyxFQUFFLGtCQUFrQixTQUFTLGtEQUFrRCxzQkFBc0IsV0FBVyxPQUFPLGtCQUFrQixJQUFJLDBCQUEwQixXQUFXLDBCQUEwQixTQUFTLHFCQUFxQixtQ0FBbUMsb0JBQW9CLCtCQUErQix3QkFBd0IsZ0JBQWdCLG9CQUFvQixnQkFBZ0Isb0JBQW9CLGFBQWEsZUFBZSxNQUFNLCtFQUErRSxHQUFHLFlBQVksY0FBYyxlQUFl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LEVBQUUsV0FBVyxFQUFFLElBQUksNEJBQTRCLDJDQUEyQyxzQkFBc0IsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsSUFBSSw0Q0FBNEMsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLEdBQUcsY0FBYyxHQUFHLG9DQUFvQyxFQUFFLElBQUksS0FBSyxNQUFNLFNBQVMsR0FBRyxzQkFBc0IsR0FBRyxnQkFBZ0IsR0FBRyxzQ0FBc0MsRUFBRSxLQUFLLEdBQUcsdUJBQXVCLG1CQUFtQixtQkFBbUIscUJBQXFCLGVBQWUsNEJBQTRCLGtCQUFrQixNQUFNLHFCQUFxQixFQUFFLGdCQUFnQiwwQkFBMEIsVUFBVSxjQUFjLGdCQUFnQixnQkFBZ0IsZ0JBQWdCLGtCQUFrQixnQkFBZ0IsZ0JBQWdCLFlBQVksc0JBQXNCLGdCQUFnQix3QkFBd0Isa0JBQWtCLGNBQWMsY0FBYyxZQUFZLG9CQUFvQixrQkFBa0IsNEJBQTRCLFFBQVEsWUFBWSxrQkFBa0IsVUFBVSxZQUFZLFVBQVUsVUFBVSxjQUFjLG9CQUFvQixvQkFBb0IsZ0JBQWdCLGdCQUFnQixZQUFZLG9CQUFvQixrQkFBa0Isa0JBQWtCLFlBQVksZ0JBQWdCLGdCQUFnQixnQkFBZ0IsVUFBVSxZQUFZLGdCQUFnQixnQkFBZ0Isa0JBQWtCLGNBQWMsWUFBWSxjQUFjLGtCQUFrQixvQkFBb0IsS0FBSyxpRkFBaUYsU0FBUyxZQUFZLGlCQUFpQiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N1cGVyc3RydWN0L2luZGV4LmNqcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9Pnt2YXIgZT17MzE4OmZ1bmN0aW9uKGUsdCl7KGZ1bmN0aW9uKGUsbil7dHJ1ZT9uKHQpOjB9KSh0aGlzLChmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtjbGFzcyBTdHJ1Y3RFcnJvciBleHRlbmRzIFR5cGVFcnJvcntjb25zdHJ1Y3RvcihlLHQpe2xldCBuO2NvbnN0e21lc3NhZ2U6cixleHBsYW5hdGlvbjppLC4uLmN9PWU7Y29uc3R7cGF0aDpvfT1lO2NvbnN0IGE9by5sZW5ndGg9PT0wP3I6YEF0IHBhdGg6ICR7by5qb2luKFwiLlwiKX0gLS0gJHtyfWA7c3VwZXIoaT8/YSk7aWYoaSE9bnVsbCl0aGlzLmNhdXNlPWE7T2JqZWN0LmFzc2lnbih0aGlzLGMpO3RoaXMubmFtZT10aGlzLmNvbnN0cnVjdG9yLm5hbWU7dGhpcy5mYWlsdXJlcz0oKT0+bj8/KG49W2UsLi4udCgpXSl9fWZ1bmN0aW9uIGlzSXRlcmFibGUoZSl7cmV0dXJuIGlzT2JqZWN0KGUpJiZ0eXBlb2YgZVtTeW1ib2wuaXRlcmF0b3JdPT09XCJmdW5jdGlvblwifWZ1bmN0aW9uIGlzT2JqZWN0KGUpe3JldHVybiB0eXBlb2YgZT09PVwib2JqZWN0XCImJmUhPW51bGx9ZnVuY3Rpb24gaXNQbGFpbk9iamVjdChlKXtpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkhPT1cIltvYmplY3QgT2JqZWN0XVwiKXtyZXR1cm4gZmFsc2V9Y29uc3QgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiBwcmludChlKXtpZih0eXBlb2YgZT09PVwic3ltYm9sXCIpe3JldHVybiBlLnRvU3RyaW5nKCl9cmV0dXJuIHR5cGVvZiBlPT09XCJzdHJpbmdcIj9KU09OLnN0cmluZ2lmeShlKTpgJHtlfWB9ZnVuY3Rpb24gc2hpZnRJdGVyYXRvcihlKXtjb25zdHtkb25lOnQsdmFsdWU6bn09ZS5uZXh0KCk7cmV0dXJuIHQ/dW5kZWZpbmVkOm59ZnVuY3Rpb24gdG9GYWlsdXJlKGUsdCxuLHIpe2lmKGU9PT10cnVlKXtyZXR1cm59ZWxzZSBpZihlPT09ZmFsc2Upe2U9e319ZWxzZSBpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe2U9e21lc3NhZ2U6ZX19Y29uc3R7cGF0aDppLGJyYW5jaDpjfT10O2NvbnN0e3R5cGU6b309bjtjb25zdHtyZWZpbmVtZW50OmEsbWVzc2FnZTpzPWBFeHBlY3RlZCBhIHZhbHVlIG9mIHR5cGUgXFxgJHtvfVxcYCR7YT9gIHdpdGggcmVmaW5lbWVudCBcXGAke2F9XFxgYDpcIlwifSwgYnV0IHJlY2VpdmVkOiBcXGAke3ByaW50KHIpfVxcYGB9PWU7cmV0dXJue3ZhbHVlOnIsdHlwZTpvLHJlZmluZW1lbnQ6YSxrZXk6aVtpLmxlbmd0aC0xXSxwYXRoOmksYnJhbmNoOmMsLi4uZSxtZXNzYWdlOnN9fWZ1bmN0aW9uKnRvRmFpbHVyZXMoZSx0LG4scil7aWYoIWlzSXRlcmFibGUoZSkpe2U9W2VdfWZvcihjb25zdCBpIG9mIGUpe2NvbnN0IGU9dG9GYWlsdXJlKGksdCxuLHIpO2lmKGUpe3lpZWxkIGV9fX1mdW5jdGlvbipydW4oZSx0LG49e30pe2NvbnN0e3BhdGg6cj1bXSxicmFuY2g6aT1bZV0sY29lcmNlOmM9ZmFsc2UsbWFzazpvPWZhbHNlfT1uO2NvbnN0IGE9e3BhdGg6cixicmFuY2g6aX07aWYoYyl7ZT10LmNvZXJjZXIoZSxhKTtpZihvJiZ0LnR5cGUhPT1cInR5cGVcIiYmaXNPYmplY3QodC5zY2hlbWEpJiZpc09iamVjdChlKSYmIUFycmF5LmlzQXJyYXkoZSkpe2Zvcihjb25zdCBuIGluIGUpe2lmKHQuc2NoZW1hW25dPT09dW5kZWZpbmVkKXtkZWxldGUgZVtuXX19fX1sZXQgcz1cInZhbGlkXCI7Zm9yKGNvbnN0IHIgb2YgdC52YWxpZGF0b3IoZSxhKSl7ci5leHBsYW5hdGlvbj1uLm1lc3NhZ2U7cz1cIm5vdF92YWxpZFwiO3lpZWxkW3IsdW5kZWZpbmVkXX1mb3IobGV0W3UsZixsXW9mIHQuZW50cmllcyhlLGEpKXtjb25zdCB0PXJ1bihmLGwse3BhdGg6dT09PXVuZGVmaW5lZD9yOlsuLi5yLHVdLGJyYW5jaDp1PT09dW5kZWZpbmVkP2k6Wy4uLmksZl0sY29lcmNlOmMsbWFzazpvLG1lc3NhZ2U6bi5tZXNzYWdlfSk7Zm9yKGNvbnN0IG4gb2YgdCl7aWYoblswXSl7cz1uWzBdLnJlZmluZW1lbnQhPW51bGw/XCJub3RfcmVmaW5lZFwiOlwibm90X3ZhbGlkXCI7eWllbGRbblswXSx1bmRlZmluZWRdfWVsc2UgaWYoYyl7Zj1uWzFdO2lmKHU9PT11bmRlZmluZWQpe2U9Zn1lbHNlIGlmKGUgaW5zdGFuY2VvZiBNYXApe2Uuc2V0KHUsZil9ZWxzZSBpZihlIGluc3RhbmNlb2YgU2V0KXtlLmFkZChmKX1lbHNlIGlmKGlzT2JqZWN0KGUpKXtpZihmIT09dW5kZWZpbmVkfHx1IGluIGUpZVt1XT1mfX19fWlmKHMhPT1cIm5vdF92YWxpZFwiKXtmb3IoY29uc3QgciBvZiB0LnJlZmluZXIoZSxhKSl7ci5leHBsYW5hdGlvbj1uLm1lc3NhZ2U7cz1cIm5vdF9yZWZpbmVkXCI7eWllbGRbcix1bmRlZmluZWRdfX1pZihzPT09XCJ2YWxpZFwiKXt5aWVsZFt1bmRlZmluZWQsZV19fWNsYXNzIFN0cnVjdHtjb25zdHJ1Y3RvcihlKXtjb25zdHt0eXBlOnQsc2NoZW1hOm4sdmFsaWRhdG9yOnIscmVmaW5lcjppLGNvZXJjZXI6Yz0oZT0+ZSksZW50cmllczpvPWZ1bmN0aW9uKigpe319PWU7dGhpcy50eXBlPXQ7dGhpcy5zY2hlbWE9bjt0aGlzLmVudHJpZXM9bzt0aGlzLmNvZXJjZXI9YztpZihyKXt0aGlzLnZhbGlkYXRvcj0oZSx0KT0+e2NvbnN0IG49cihlLHQpO3JldHVybiB0b0ZhaWx1cmVzKG4sdCx0aGlzLGUpfX1lbHNle3RoaXMudmFsaWRhdG9yPSgpPT5bXX1pZihpKXt0aGlzLnJlZmluZXI9KGUsdCk9Pntjb25zdCBuPWkoZSx0KTtyZXR1cm4gdG9GYWlsdXJlcyhuLHQsdGhpcyxlKX19ZWxzZXt0aGlzLnJlZmluZXI9KCk9PltdfX1hc3NlcnQoZSx0KXtyZXR1cm4gYXNzZXJ0KGUsdGhpcyx0KX1jcmVhdGUoZSx0KXtyZXR1cm4gY3JlYXRlKGUsdGhpcyx0KX1pcyhlKXtyZXR1cm4gaXMoZSx0aGlzKX1tYXNrKGUsdCl7cmV0dXJuIG1hc2soZSx0aGlzLHQpfXZhbGlkYXRlKGUsdD17fSl7cmV0dXJuIHZhbGlkYXRlKGUsdGhpcyx0KX19ZnVuY3Rpb24gYXNzZXJ0KGUsdCxuKXtjb25zdCByPXZhbGlkYXRlKGUsdCx7bWVzc2FnZTpufSk7aWYoclswXSl7dGhyb3cgclswXX19ZnVuY3Rpb24gY3JlYXRlKGUsdCxuKXtjb25zdCByPXZhbGlkYXRlKGUsdCx7Y29lcmNlOnRydWUsbWVzc2FnZTpufSk7aWYoclswXSl7dGhyb3cgclswXX1lbHNle3JldHVybiByWzFdfX1mdW5jdGlvbiBtYXNrKGUsdCxuKXtjb25zdCByPXZhbGlkYXRlKGUsdCx7Y29lcmNlOnRydWUsbWFzazp0cnVlLG1lc3NhZ2U6bn0pO2lmKHJbMF0pe3Rocm93IHJbMF19ZWxzZXtyZXR1cm4gclsxXX19ZnVuY3Rpb24gaXMoZSx0KXtjb25zdCBuPXZhbGlkYXRlKGUsdCk7cmV0dXJuIW5bMF19ZnVuY3Rpb24gdmFsaWRhdGUoZSx0LG49e30pe2NvbnN0IHI9cnVuKGUsdCxuKTtjb25zdCBpPXNoaWZ0SXRlcmF0b3Iocik7aWYoaVswXSl7Y29uc3QgZT1uZXcgU3RydWN0RXJyb3IoaVswXSwoZnVuY3Rpb24qKCl7Zm9yKGNvbnN0IGUgb2Ygcil7aWYoZVswXSl7eWllbGQgZVswXX19fSkpO3JldHVybltlLHVuZGVmaW5lZF19ZWxzZXtjb25zdCBlPWlbMV07cmV0dXJuW3VuZGVmaW5lZCxlXX19ZnVuY3Rpb24gYXNzaWduKC4uLmUpe2NvbnN0IHQ9ZVswXS50eXBlPT09XCJ0eXBlXCI7Y29uc3Qgbj1lLm1hcCgoZT0+ZS5zY2hlbWEpKTtjb25zdCByPU9iamVjdC5hc3NpZ24oe30sLi4ubik7cmV0dXJuIHQ/dHlwZShyKTpvYmplY3Qocil9ZnVuY3Rpb24gZGVmaW5lKGUsdCl7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6ZSxzY2hlbWE6bnVsbCx2YWxpZGF0b3I6dH0pfWZ1bmN0aW9uIGRlcHJlY2F0ZWQoZSx0KXtyZXR1cm4gbmV3IFN0cnVjdCh7Li4uZSxyZWZpbmVyOih0LG4pPT50PT09dW5kZWZpbmVkfHxlLnJlZmluZXIodCxuKSx2YWxpZGF0b3IobixyKXtpZihuPT09dW5kZWZpbmVkKXtyZXR1cm4gdHJ1ZX1lbHNle3QobixyKTtyZXR1cm4gZS52YWxpZGF0b3IobixyKX19fSl9ZnVuY3Rpb24gZHluYW1pYyhlKXtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcImR5bmFtaWNcIixzY2hlbWE6bnVsbCwqZW50cmllcyh0LG4pe2NvbnN0IHI9ZSh0LG4pO3lpZWxkKnIuZW50cmllcyh0LG4pfSx2YWxpZGF0b3IodCxuKXtjb25zdCByPWUodCxuKTtyZXR1cm4gci52YWxpZGF0b3IodCxuKX0sY29lcmNlcih0LG4pe2NvbnN0IHI9ZSh0LG4pO3JldHVybiByLmNvZXJjZXIodCxuKX0scmVmaW5lcih0LG4pe2NvbnN0IHI9ZSh0LG4pO3JldHVybiByLnJlZmluZXIodCxuKX19KX1mdW5jdGlvbiBsYXp5KGUpe2xldCB0O3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwibGF6eVwiLHNjaGVtYTpudWxsLCplbnRyaWVzKG4scil7dD8/KHQ9ZSgpKTt5aWVsZCp0LmVudHJpZXMobixyKX0sdmFsaWRhdG9yKG4scil7dD8/KHQ9ZSgpKTtyZXR1cm4gdC52YWxpZGF0b3IobixyKX0sY29lcmNlcihuLHIpe3Q/Pyh0PWUoKSk7cmV0dXJuIHQuY29lcmNlcihuLHIpfSxyZWZpbmVyKG4scil7dD8/KHQ9ZSgpKTtyZXR1cm4gdC5yZWZpbmVyKG4scil9fSl9ZnVuY3Rpb24gb21pdChlLHQpe2NvbnN0e3NjaGVtYTpufT1lO2NvbnN0IHI9ey4uLm59O2Zvcihjb25zdCBlIG9mIHQpe2RlbGV0ZSByW2VdfXN3aXRjaChlLnR5cGUpe2Nhc2VcInR5cGVcIjpyZXR1cm4gdHlwZShyKTtkZWZhdWx0OnJldHVybiBvYmplY3Qocil9fWZ1bmN0aW9uIHBhcnRpYWwoZSl7Y29uc3QgdD1lIGluc3RhbmNlb2YgU3RydWN0P3suLi5lLnNjaGVtYX06ey4uLmV9O2Zvcihjb25zdCBlIGluIHQpe3RbZV09b3B0aW9uYWwodFtlXSl9cmV0dXJuIG9iamVjdCh0KX1mdW5jdGlvbiBwaWNrKGUsdCl7Y29uc3R7c2NoZW1hOm59PWU7Y29uc3Qgcj17fTtmb3IoY29uc3QgZSBvZiB0KXtyW2VdPW5bZV19cmV0dXJuIG9iamVjdChyKX1mdW5jdGlvbiBzdHJ1Y3QoZSx0KXtjb25zb2xlLndhcm4oXCJzdXBlcnN0cnVjdEAwLjExIC0gVGhlIGBzdHJ1Y3RgIGhlbHBlciBoYXMgYmVlbiByZW5hbWVkIHRvIGBkZWZpbmVgLlwiKTtyZXR1cm4gZGVmaW5lKGUsdCl9ZnVuY3Rpb24gYW55KCl7cmV0dXJuIGRlZmluZShcImFueVwiLCgoKT0+dHJ1ZSkpfWZ1bmN0aW9uIGFycmF5KGUpe3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwiYXJyYXlcIixzY2hlbWE6ZSwqZW50cmllcyh0KXtpZihlJiZBcnJheS5pc0FycmF5KHQpKXtmb3IoY29uc3RbbixyXW9mIHQuZW50cmllcygpKXt5aWVsZFtuLHIsZV19fX0sY29lcmNlcihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLnNsaWNlKCk6ZX0sdmFsaWRhdG9yKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpfHxgRXhwZWN0ZWQgYW4gYXJyYXkgdmFsdWUsIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gfX0pfWZ1bmN0aW9uIGJpZ2ludCgpe3JldHVybiBkZWZpbmUoXCJiaWdpbnRcIiwoZT0+dHlwZW9mIGU9PT1cImJpZ2ludFwiKSl9ZnVuY3Rpb24gYm9vbGVhbigpe3JldHVybiBkZWZpbmUoXCJib29sZWFuXCIsKGU9PnR5cGVvZiBlPT09XCJib29sZWFuXCIpKX1mdW5jdGlvbiBkYXRlKCl7cmV0dXJuIGRlZmluZShcImRhdGVcIiwoZT0+ZSBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihlLmdldFRpbWUoKSl8fGBFeHBlY3RlZCBhIHZhbGlkIFxcYERhdGVcXGAgb2JqZWN0LCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YCkpfWZ1bmN0aW9uIGVudW1zKGUpe2NvbnN0IHQ9e307Y29uc3Qgbj1lLm1hcCgoZT0+cHJpbnQoZSkpKS5qb2luKCk7Zm9yKGNvbnN0IG4gb2YgZSl7dFtuXT1ufXJldHVybiBuZXcgU3RydWN0KHt0eXBlOlwiZW51bXNcIixzY2hlbWE6dCx2YWxpZGF0b3IodCl7cmV0dXJuIGUuaW5jbHVkZXModCl8fGBFeHBlY3RlZCBvbmUgb2YgXFxgJHtufVxcYCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KHQpfWB9fSl9ZnVuY3Rpb24gZnVuYygpe3JldHVybiBkZWZpbmUoXCJmdW5jXCIsKGU9PnR5cGVvZiBlPT09XCJmdW5jdGlvblwifHxgRXhwZWN0ZWQgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWApKX1mdW5jdGlvbiBpbnN0YW5jZShlKXtyZXR1cm4gZGVmaW5lKFwiaW5zdGFuY2VcIiwodD0+dCBpbnN0YW5jZW9mIGV8fGBFeHBlY3RlZCBhIFxcYCR7ZS5uYW1lfVxcYCBpbnN0YW5jZSwgYnV0IHJlY2VpdmVkOiAke3ByaW50KHQpfWApKX1mdW5jdGlvbiBpbnRlZ2VyKCl7cmV0dXJuIGRlZmluZShcImludGVnZXJcIiwoZT0+dHlwZW9mIGU9PT1cIm51bWJlclwiJiYhaXNOYU4oZSkmJk51bWJlci5pc0ludGVnZXIoZSl8fGBFeHBlY3RlZCBhbiBpbnRlZ2VyLCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YCkpfWZ1bmN0aW9uIGludGVyc2VjdGlvbihlKXtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcImludGVyc2VjdGlvblwiLHNjaGVtYTpudWxsLCplbnRyaWVzKHQsbil7Zm9yKGNvbnN0IHIgb2YgZSl7eWllbGQqci5lbnRyaWVzKHQsbil9fSwqdmFsaWRhdG9yKHQsbil7Zm9yKGNvbnN0IHIgb2YgZSl7eWllbGQqci52YWxpZGF0b3IodCxuKX19LCpyZWZpbmVyKHQsbil7Zm9yKGNvbnN0IHIgb2YgZSl7eWllbGQqci5yZWZpbmVyKHQsbil9fX0pfWZ1bmN0aW9uIGxpdGVyYWwoZSl7Y29uc3QgdD1wcmludChlKTtjb25zdCBuPXR5cGVvZiBlO3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwibGl0ZXJhbFwiLHNjaGVtYTpuPT09XCJzdHJpbmdcInx8bj09PVwibnVtYmVyXCJ8fG49PT1cImJvb2xlYW5cIj9lOm51bGwsdmFsaWRhdG9yKG4pe3JldHVybiBuPT09ZXx8YEV4cGVjdGVkIHRoZSBsaXRlcmFsIFxcYCR7dH1cXGAsIGJ1dCByZWNlaXZlZDogJHtwcmludChuKX1gfX0pfWZ1bmN0aW9uIG1hcChlLHQpe3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwibWFwXCIsc2NoZW1hOm51bGwsKmVudHJpZXMobil7aWYoZSYmdCYmbiBpbnN0YW5jZW9mIE1hcCl7Zm9yKGNvbnN0W3IsaV1vZiBuLmVudHJpZXMoKSl7eWllbGRbcixyLGVdO3lpZWxkW3IsaSx0XX19fSxjb2VyY2VyKGUpe3JldHVybiBlIGluc3RhbmNlb2YgTWFwP25ldyBNYXAoZSk6ZX0sdmFsaWRhdG9yKGUpe3JldHVybiBlIGluc3RhbmNlb2YgTWFwfHxgRXhwZWN0ZWQgYSBcXGBNYXBcXGAgb2JqZWN0LCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YH19KX1mdW5jdGlvbiBuZXZlcigpe3JldHVybiBkZWZpbmUoXCJuZXZlclwiLCgoKT0+ZmFsc2UpKX1mdW5jdGlvbiBudWxsYWJsZShlKXtyZXR1cm4gbmV3IFN0cnVjdCh7Li4uZSx2YWxpZGF0b3I6KHQsbik9PnQ9PT1udWxsfHxlLnZhbGlkYXRvcih0LG4pLHJlZmluZXI6KHQsbik9PnQ9PT1udWxsfHxlLnJlZmluZXIodCxuKX0pfWZ1bmN0aW9uIG51bWJlcigpe3JldHVybiBkZWZpbmUoXCJudW1iZXJcIiwoZT0+dHlwZW9mIGU9PT1cIm51bWJlclwiJiYhaXNOYU4oZSl8fGBFeHBlY3RlZCBhIG51bWJlciwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWApKX1mdW5jdGlvbiBvYmplY3QoZSl7Y29uc3QgdD1lP09iamVjdC5rZXlzKGUpOltdO2NvbnN0IG49bmV2ZXIoKTtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcIm9iamVjdFwiLHNjaGVtYTplP2U6bnVsbCwqZW50cmllcyhyKXtpZihlJiZpc09iamVjdChyKSl7Y29uc3QgaT1uZXcgU2V0KE9iamVjdC5rZXlzKHIpKTtmb3IoY29uc3QgbiBvZiB0KXtpLmRlbGV0ZShuKTt5aWVsZFtuLHJbbl0sZVtuXV19Zm9yKGNvbnN0IGUgb2YgaSl7eWllbGRbZSxyW2VdLG5dfX19LHZhbGlkYXRvcihlKXtyZXR1cm4gaXNPYmplY3QoZSl8fGBFeHBlY3RlZCBhbiBvYmplY3QsIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gfSxjb2VyY2VyKGUpe3JldHVybiBpc09iamVjdChlKT97Li4uZX06ZX19KX1mdW5jdGlvbiBvcHRpb25hbChlKXtyZXR1cm4gbmV3IFN0cnVjdCh7Li4uZSx2YWxpZGF0b3I6KHQsbik9PnQ9PT11bmRlZmluZWR8fGUudmFsaWRhdG9yKHQsbikscmVmaW5lcjoodCxuKT0+dD09PXVuZGVmaW5lZHx8ZS5yZWZpbmVyKHQsbil9KX1mdW5jdGlvbiByZWNvcmQoZSx0KXtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcInJlY29yZFwiLHNjaGVtYTpudWxsLCplbnRyaWVzKG4pe2lmKGlzT2JqZWN0KG4pKXtmb3IoY29uc3QgciBpbiBuKXtjb25zdCBpPW5bcl07eWllbGRbcixyLGVdO3lpZWxkW3IsaSx0XX19fSx2YWxpZGF0b3IoZSl7cmV0dXJuIGlzT2JqZWN0KGUpfHxgRXhwZWN0ZWQgYW4gb2JqZWN0LCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YH19KX1mdW5jdGlvbiByZWdleHAoKXtyZXR1cm4gZGVmaW5lKFwicmVnZXhwXCIsKGU9PmUgaW5zdGFuY2VvZiBSZWdFeHApKX1mdW5jdGlvbiBzZXQoZSl7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJzZXRcIixzY2hlbWE6bnVsbCwqZW50cmllcyh0KXtpZihlJiZ0IGluc3RhbmNlb2YgU2V0KXtmb3IoY29uc3QgbiBvZiB0KXt5aWVsZFtuLG4sZV19fX0sY29lcmNlcihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFNldD9uZXcgU2V0KGUpOmV9LHZhbGlkYXRvcihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFNldHx8YEV4cGVjdGVkIGEgXFxgU2V0XFxgIG9iamVjdCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWB9fSl9ZnVuY3Rpb24gc3RyaW5nKCl7cmV0dXJuIGRlZmluZShcInN0cmluZ1wiLChlPT50eXBlb2YgZT09PVwic3RyaW5nXCJ8fGBFeHBlY3RlZCBhIHN0cmluZywgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWApKX1mdW5jdGlvbiB0dXBsZShlKXtjb25zdCB0PW5ldmVyKCk7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJ0dXBsZVwiLHNjaGVtYTpudWxsLCplbnRyaWVzKG4pe2lmKEFycmF5LmlzQXJyYXkobikpe2NvbnN0IHI9TWF0aC5tYXgoZS5sZW5ndGgsbi5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8cjtpKyspe3lpZWxkW2ksbltpXSxlW2ldfHx0XX19fSx2YWxpZGF0b3IoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSl8fGBFeHBlY3RlZCBhbiBhcnJheSwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWB9fSl9ZnVuY3Rpb24gdHlwZShlKXtjb25zdCB0PU9iamVjdC5rZXlzKGUpO3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwidHlwZVwiLHNjaGVtYTplLCplbnRyaWVzKG4pe2lmKGlzT2JqZWN0KG4pKXtmb3IoY29uc3QgciBvZiB0KXt5aWVsZFtyLG5bcl0sZVtyXV19fX0sdmFsaWRhdG9yKGUpe3JldHVybiBpc09iamVjdChlKXx8YEV4cGVjdGVkIGFuIG9iamVjdCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWB9LGNvZXJjZXIoZSl7cmV0dXJuIGlzT2JqZWN0KGUpP3suLi5lfTplfX0pfWZ1bmN0aW9uIHVuaW9uKGUpe2NvbnN0IHQ9ZS5tYXAoKGU9PmUudHlwZSkpLmpvaW4oXCIgfCBcIik7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJ1bmlvblwiLHNjaGVtYTpudWxsLGNvZXJjZXIodCl7Zm9yKGNvbnN0IG4gb2YgZSl7Y29uc3RbZSxyXT1uLnZhbGlkYXRlKHQse2NvZXJjZTp0cnVlfSk7aWYoIWUpe3JldHVybiByfX1yZXR1cm4gdH0sdmFsaWRhdG9yKG4scil7Y29uc3QgaT1bXTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdFsuLi5lXT1ydW4obix0LHIpO2NvbnN0W2NdPWU7aWYoIWNbMF0pe3JldHVybltdfWVsc2V7Zm9yKGNvbnN0W3Rdb2YgZSl7aWYodCl7aS5wdXNoKHQpfX19fXJldHVybltgRXhwZWN0ZWQgdGhlIHZhbHVlIHRvIHNhdGlzZnkgYSB1bmlvbiBvZiBcXGAke3R9XFxgLCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQobil9YCwuLi5pXX19KX1mdW5jdGlvbiB1bmtub3duKCl7cmV0dXJuIGRlZmluZShcInVua25vd25cIiwoKCk9PnRydWUpKX1mdW5jdGlvbiBjb2VyY2UoZSx0LG4pe3JldHVybiBuZXcgU3RydWN0KHsuLi5lLGNvZXJjZXI6KHIsaSk9PmlzKHIsdCk/ZS5jb2VyY2VyKG4ocixpKSxpKTplLmNvZXJjZXIocixpKX0pfWZ1bmN0aW9uIGRlZmF1bHRlZChlLHQsbj17fSl7cmV0dXJuIGNvZXJjZShlLHVua25vd24oKSwoZT0+e2NvbnN0IHI9dHlwZW9mIHQ9PT1cImZ1bmN0aW9uXCI/dCgpOnQ7aWYoZT09PXVuZGVmaW5lZCl7cmV0dXJuIHJ9aWYoIW4uc3RyaWN0JiZpc1BsYWluT2JqZWN0KGUpJiZpc1BsYWluT2JqZWN0KHIpKXtjb25zdCB0PXsuLi5lfTtsZXQgbj1mYWxzZTtmb3IoY29uc3QgZSBpbiByKXtpZih0W2VdPT09dW5kZWZpbmVkKXt0W2VdPXJbZV07bj10cnVlfX1pZihuKXtyZXR1cm4gdH19cmV0dXJuIGV9KSl9ZnVuY3Rpb24gdHJpbW1lZChlKXtyZXR1cm4gY29lcmNlKGUsc3RyaW5nKCksKGU9PmUudHJpbSgpKSl9ZnVuY3Rpb24gZW1wdHkoZSl7cmV0dXJuIHJlZmluZShlLFwiZW1wdHlcIiwodD0+e2NvbnN0IG49Z2V0U2l6ZSh0KTtyZXR1cm4gbj09PTB8fGBFeHBlY3RlZCBhbiBlbXB0eSAke2UudHlwZX0gYnV0IHJlY2VpdmVkIG9uZSB3aXRoIGEgc2l6ZSBvZiBcXGAke259XFxgYH0pKX1mdW5jdGlvbiBnZXRTaXplKGUpe2lmKGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBTZXQpe3JldHVybiBlLnNpemV9ZWxzZXtyZXR1cm4gZS5sZW5ndGh9fWZ1bmN0aW9uIG1heChlLHQsbj17fSl7Y29uc3R7ZXhjbHVzaXZlOnJ9PW47cmV0dXJuIHJlZmluZShlLFwibWF4XCIsKG49PnI/bjx0Om48PXR8fGBFeHBlY3RlZCBhICR7ZS50eXBlfSBsZXNzIHRoYW4gJHtyP1wiXCI6XCJvciBlcXVhbCB0byBcIn0ke3R9IGJ1dCByZWNlaXZlZCBcXGAke259XFxgYCkpfWZ1bmN0aW9uIG1pbihlLHQsbj17fSl7Y29uc3R7ZXhjbHVzaXZlOnJ9PW47cmV0dXJuIHJlZmluZShlLFwibWluXCIsKG49PnI/bj50Om4+PXR8fGBFeHBlY3RlZCBhICR7ZS50eXBlfSBncmVhdGVyIHRoYW4gJHtyP1wiXCI6XCJvciBlcXVhbCB0byBcIn0ke3R9IGJ1dCByZWNlaXZlZCBcXGAke259XFxgYCkpfWZ1bmN0aW9uIG5vbmVtcHR5KGUpe3JldHVybiByZWZpbmUoZSxcIm5vbmVtcHR5XCIsKHQ9Pntjb25zdCBuPWdldFNpemUodCk7cmV0dXJuIG4+MHx8YEV4cGVjdGVkIGEgbm9uZW1wdHkgJHtlLnR5cGV9IGJ1dCByZWNlaXZlZCBhbiBlbXB0eSBvbmVgfSkpfWZ1bmN0aW9uIHBhdHRlcm4oZSx0KXtyZXR1cm4gcmVmaW5lKGUsXCJwYXR0ZXJuXCIsKG49PnQudGVzdChuKXx8YEV4cGVjdGVkIGEgJHtlLnR5cGV9IG1hdGNoaW5nIFxcYC8ke3Quc291cmNlfS9cXGAgYnV0IHJlY2VpdmVkIFwiJHtufVwiYCkpfWZ1bmN0aW9uIHNpemUoZSx0LG49dCl7Y29uc3Qgcj1gRXhwZWN0ZWQgYSAke2UudHlwZX1gO2NvbnN0IGk9dD09PW4/YG9mIFxcYCR7dH1cXGBgOmBiZXR3ZWVuIFxcYCR7dH1cXGAgYW5kIFxcYCR7bn1cXGBgO3JldHVybiByZWZpbmUoZSxcInNpemVcIiwoZT0+e2lmKHR5cGVvZiBlPT09XCJudW1iZXJcInx8ZSBpbnN0YW5jZW9mIERhdGUpe3JldHVybiB0PD1lJiZlPD1ufHxgJHtyfSAke2l9IGJ1dCByZWNlaXZlZCBcXGAke2V9XFxgYH1lbHNlIGlmKGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBTZXQpe2NvbnN0e3NpemU6Y309ZTtyZXR1cm4gdDw9YyYmYzw9bnx8YCR7cn0gd2l0aCBhIHNpemUgJHtpfSBidXQgcmVjZWl2ZWQgb25lIHdpdGggYSBzaXplIG9mIFxcYCR7Y31cXGBgfWVsc2V7Y29uc3R7bGVuZ3RoOmN9PWU7cmV0dXJuIHQ8PWMmJmM8PW58fGAke3J9IHdpdGggYSBsZW5ndGggJHtpfSBidXQgcmVjZWl2ZWQgb25lIHdpdGggYSBsZW5ndGggb2YgXFxgJHtjfVxcYGB9fSkpfWZ1bmN0aW9uIHJlZmluZShlLHQsbil7cmV0dXJuIG5ldyBTdHJ1Y3Qoey4uLmUsKnJlZmluZXIocixpKXt5aWVsZCplLnJlZmluZXIocixpKTtjb25zdCBjPW4ocixpKTtjb25zdCBvPXRvRmFpbHVyZXMoYyxpLGUscik7Zm9yKGNvbnN0IGUgb2Ygbyl7eWllbGR7Li4uZSxyZWZpbmVtZW50OnR9fX19KX1lLlN0cnVjdD1TdHJ1Y3Q7ZS5TdHJ1Y3RFcnJvcj1TdHJ1Y3RFcnJvcjtlLmFueT1hbnk7ZS5hcnJheT1hcnJheTtlLmFzc2VydD1hc3NlcnQ7ZS5hc3NpZ249YXNzaWduO2UuYmlnaW50PWJpZ2ludDtlLmJvb2xlYW49Ym9vbGVhbjtlLmNvZXJjZT1jb2VyY2U7ZS5jcmVhdGU9Y3JlYXRlO2UuZGF0ZT1kYXRlO2UuZGVmYXVsdGVkPWRlZmF1bHRlZDtlLmRlZmluZT1kZWZpbmU7ZS5kZXByZWNhdGVkPWRlcHJlY2F0ZWQ7ZS5keW5hbWljPWR5bmFtaWM7ZS5lbXB0eT1lbXB0eTtlLmVudW1zPWVudW1zO2UuZnVuYz1mdW5jO2UuaW5zdGFuY2U9aW5zdGFuY2U7ZS5pbnRlZ2VyPWludGVnZXI7ZS5pbnRlcnNlY3Rpb249aW50ZXJzZWN0aW9uO2UuaXM9aXM7ZS5sYXp5PWxhenk7ZS5saXRlcmFsPWxpdGVyYWw7ZS5tYXA9bWFwO2UubWFzaz1tYXNrO2UubWF4PW1heDtlLm1pbj1taW47ZS5uZXZlcj1uZXZlcjtlLm5vbmVtcHR5PW5vbmVtcHR5O2UubnVsbGFibGU9bnVsbGFibGU7ZS5udW1iZXI9bnVtYmVyO2Uub2JqZWN0PW9iamVjdDtlLm9taXQ9b21pdDtlLm9wdGlvbmFsPW9wdGlvbmFsO2UucGFydGlhbD1wYXJ0aWFsO2UucGF0dGVybj1wYXR0ZXJuO2UucGljaz1waWNrO2UucmVjb3JkPXJlY29yZDtlLnJlZmluZT1yZWZpbmU7ZS5yZWdleHA9cmVnZXhwO2Uuc2V0PXNldDtlLnNpemU9c2l6ZTtlLnN0cmluZz1zdHJpbmc7ZS5zdHJ1Y3Q9c3RydWN0O2UudHJpbW1lZD10cmltbWVkO2UudHVwbGU9dHVwbGU7ZS50eXBlPXR5cGU7ZS51bmlvbj11bmlvbjtlLnVua25vd249dW5rbm93bjtlLnZhbGlkYXRlPXZhbGlkYXRlfSkpfX07aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB0PXt9O2VbMzE4XSgwLHQpO21vZHVsZS5leHBvcnRzPXR9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/superstruct/index.cjs\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js ***! \*******************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_RESULT__;(()=>{var i={226:function(i,e){(function(o,a){\"use strict\";var r=\"1.0.35\",t=\"\",n=\"?\",s=\"function\",b=\"undefined\",w=\"object\",l=\"string\",d=\"major\",c=\"model\",u=\"name\",p=\"type\",m=\"vendor\",f=\"version\",h=\"architecture\",v=\"console\",g=\"mobile\",k=\"tablet\",x=\"smarttv\",_=\"wearable\",y=\"embedded\",q=350;var T=\"Amazon\",S=\"Apple\",z=\"ASUS\",N=\"BlackBerry\",A=\"Browser\",C=\"Chrome\",E=\"Edge\",O=\"Firefox\",U=\"Google\",j=\"Huawei\",P=\"LG\",R=\"Microsoft\",M=\"Motorola\",B=\"Opera\",V=\"Samsung\",D=\"Sharp\",I=\"Sony\",W=\"Viera\",F=\"Xiaomi\",G=\"Zebra\",H=\"Facebook\",L=\"Chromium OS\",Z=\"Mac OS\";var extend=function(i,e){var o={};for(var a in i){if(e[a]&&e[a].length%2===0){o[a]=e[a].concat(i[a])}else{o[a]=i[a]}}return o},enumerize=function(i){var e={};for(var o=0;o<i.length;o++){e[i[o].toUpperCase()]=i[o]}return e},has=function(i,e){return typeof i===l?lowerize(e).indexOf(lowerize(i))!==-1:false},lowerize=function(i){return i.toLowerCase()},majorize=function(i){return typeof i===l?i.replace(/[^\\d\\.]/g,t).split(\".\")[0]:a},trim=function(i,e){if(typeof i===l){i=i.replace(/^\\s\\s*/,t);return typeof e===b?i:i.substring(0,q)}};var rgxMapper=function(i,e){var o=0,r,t,n,b,l,d;while(o<e.length&&!l){var c=e[o],u=e[o+1];r=t=0;while(r<c.length&&!l){if(!c[r]){break}l=c[r++].exec(i);if(!!l){for(n=0;n<u.length;n++){d=l[++t];b=u[n];if(typeof b===w&&b.length>0){if(b.length===2){if(typeof b[1]==s){this[b[0]]=b[1].call(this,d)}else{this[b[0]]=b[1]}}else if(b.length===3){if(typeof b[1]===s&&!(b[1].exec&&b[1].test)){this[b[0]]=d?b[1].call(this,d,b[2]):a}else{this[b[0]]=d?d.replace(b[1],b[2]):a}}else if(b.length===4){this[b[0]]=d?b[3].call(this,d.replace(b[1],b[2])):a}}else{this[b]=d?d:a}}}}o+=2}},strMapper=function(i,e){for(var o in e){if(typeof e[o]===w&&e[o].length>0){for(var r=0;r<e[o].length;r++){if(has(e[o][r],i)){return o===n?a:o}}}else if(has(e[o],i)){return o===n?a:o}}return i};var $={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},X={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var K={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[f,[u,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[f,[u,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[u,f],[/opios[\\/ ]+([\\w\\.]+)/i],[f,[u,B+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[f,[u,B]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[u,f],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[f,[u,\"UC\"+A]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[f,[u,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[f,[u,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[f,[u,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[f,[u,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[f,[u,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 Secure \"+A],f],[/\\bfocus\\/([\\w\\.]+)/i],[f,[u,O+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[f,[u,B+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[f,[u,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[f,[u,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[f,[u,B+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[f,[u,\"MIUI \"+A]],[/fxios\\/([-\\w\\.]+)/i],[f,[u,O]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[u,\"360 \"+A]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 \"+A],f],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[u,/_/g,\" \"],f],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[u,f],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[u],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[u,H],f],[/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[u,f],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[f,[u,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[f,[u,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[f,[u,C+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[u,C+\" WebView\"],f],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[f,[u,\"Android \"+A]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[u,f],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[f,[u,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[f,u],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[u,[f,strMapper,$]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[u,f],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[u,\"Netscape\"],f],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[f,[u,O+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[u,f],[/(cobalt)\\/([\\w\\.]+)/i],[u,[f,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[h,\"amd64\"]],[/(ia32(?=;))/i],[[h,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[h,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[h,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[h,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[h,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[h,/ower/,t,lowerize]],[/(sun4\\w)[;\\)]/i],[[h,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[h,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[c,[m,V],[p,k]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[c,[m,V],[p,g]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[c,[m,S],[p,g]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[c,[m,S],[p,k]],[/(macintosh);/i],[c,[m,S]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[c,[m,D],[p,g]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[c,[m,j],[p,k]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[c,[m,j],[p,g]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[c,/_/g,\" \"],[m,F],[p,g]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[c,/_/g,\" \"],[m,F],[p,k]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[c,[m,\"OPPO\"],[p,g]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[c,[m,\"Vivo\"],[p,g]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[c,[m,\"Realme\"],[p,g]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[c,[m,M],[p,g]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[c,[m,M],[p,k]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[c,[m,P],[p,k]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[c,[m,P],[p,g]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[c,[m,\"Lenovo\"],[p,k]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[c,/_/g,\" \"],[m,\"Nokia\"],[p,g]],[/(pixel c)\\b/i],[c,[m,U],[p,k]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[c,[m,U],[p,g]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[c,[m,I],[p,g]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[c,\"Xperia Tablet\"],[m,I],[p,k]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[c,[m,\"OnePlus\"],[p,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[c,[m,T],[p,k]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[c,/(.+)/g,\"Fire Phone $1\"],[m,T],[p,g]],[/(playbook);[-\\w\\),; ]+(rim)/i],[c,m,[p,k]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[c,[m,N],[p,g]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[c,[m,z],[p,k]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[c,[m,z],[p,g]],[/(nexus 9)/i],[c,[m,\"HTC\"],[p,k]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[m,[c,/_/g,\" \"],[p,g]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[c,[m,\"Acer\"],[p,k]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[c,[m,\"Meizu\"],[p,g]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[m,c,[p,g]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[m,c,[p,k]],[/(surface duo)/i],[c,[m,R],[p,k]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[c,[m,\"Fairphone\"],[p,g]],[/(u304aa)/i],[c,[m,\"AT&T\"],[p,g]],[/\\bsie-(\\w*)/i],[c,[m,\"Siemens\"],[p,g]],[/\\b(rct\\w+) b/i],[c,[m,\"RCA\"],[p,k]],[/\\b(venue[\\d ]{2,7}) b/i],[c,[m,\"Dell\"],[p,k]],[/\\b(q(?:mv|ta)\\w+) b/i],[c,[m,\"Verizon\"],[p,k]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[c,[m,\"Barnes & Noble\"],[p,k]],[/\\b(tm\\d{3}\\w+) b/i],[c,[m,\"NuVision\"],[p,k]],[/\\b(k88) b/i],[c,[m,\"ZTE\"],[p,k]],[/\\b(nx\\d{3}j) b/i],[c,[m,\"ZTE\"],[p,g]],[/\\b(gen\\d{3}) b.+49h/i],[c,[m,\"Swiss\"],[p,g]],[/\\b(zur\\d{3}) b/i],[c,[m,\"Swiss\"],[p,k]],[/\\b((zeki)?tb.*\\b) b/i],[c,[m,\"Zeki\"],[p,k]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[m,\"Dragon Touch\"],c,[p,k]],[/\\b(ns-?\\w{0,9}) b/i],[c,[m,\"Insignia\"],[p,k]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[c,[m,\"NextBook\"],[p,k]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[m,\"Voice\"],c,[p,g]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[m,\"LvTel\"],c,[p,g]],[/\\b(ph-1) /i],[c,[m,\"Essential\"],[p,g]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[c,[m,\"Envizen\"],[p,k]],[/\\b(trio[-\\w\\. ]+) b/i],[c,[m,\"MachSpeed\"],[p,k]],[/\\btu_(1491) b/i],[c,[m,\"Rotor\"],[p,k]],[/(shield[\\w ]+) b/i],[c,[m,\"Nvidia\"],[p,k]],[/(sprint) (\\w+)/i],[m,c,[p,g]],[/(kin\\.[onetw]{3})/i],[[c,/\\./g,\" \"],[m,R],[p,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[c,[m,G],[p,k]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[c,[m,G],[p,g]],[/smart-tv.+(samsung)/i],[m,[p,x]],[/hbbtv.+maple;(\\d+)/i],[[c,/^/,\"SmartTV\"],[m,V],[p,x]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[m,P],[p,x]],[/(apple) ?tv/i],[m,[c,S+\" TV\"],[p,x]],[/crkey/i],[[c,C+\"cast\"],[m,U],[p,x]],[/droid.+aft(\\w)( bui|\\))/i],[c,[m,T],[p,x]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[c,[m,D],[p,x]],[/(bravia[\\w ]+)( bui|\\))/i],[c,[m,I],[p,x]],[/(mitv-\\w{5}) bui/i],[c,[m,F],[p,x]],[/Hbbtv.*(technisat) (.*);/i],[m,c,[p,x]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[m,trim],[c,trim],[p,x]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[p,x]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[m,c,[p,v]],[/droid.+; (shield) bui/i],[c,[m,\"Nvidia\"],[p,v]],[/(playstation [345portablevi]+)/i],[c,[m,I],[p,v]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[c,[m,R],[p,v]],[/((pebble))app/i],[m,c,[p,_]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[c,[m,S],[p,_]],[/droid.+; (glass) \\d/i],[c,[m,U],[p,_]],[/droid.+; (wt63?0{2,3})\\)/i],[c,[m,G],[p,_]],[/(quest( 2| pro)?)/i],[c,[m,H],[p,_]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[m,[p,y]],[/(aeobc)\\b/i],[c,[m,T],[p,y]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[c,[p,g]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[c,[p,k]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[p,k]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[p,g]],[/(android[-\\w\\. ]{0,9});.+buil/i],[c,[m,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[f,[u,E+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[f,[u,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[u,f],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[f,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,f],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[u,[f,strMapper,X]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[u,\"Windows\"],[f,strMapper,X]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/ios;fbsv\\/([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[f,/_/g,\".\"],[u,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[u,Z],[f,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[f,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[u,f],[/\\(bb(10);/i],[f,[u,N]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[f,[u,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[f,[u,O+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[f,[u,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[f,[u,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[f,[u,C+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[u,L],f],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[u,f],[/(sunos) ?([\\w\\.\\d]*)/i],[[u,\"Solaris\"],f],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[u,f]]};var UAParser=function(i,e){if(typeof i===w){e=i;i=a}if(!(this instanceof UAParser)){return new UAParser(i,e).getResult()}var r=typeof o!==b&&o.navigator?o.navigator:a;var n=i||(r&&r.userAgent?r.userAgent:t);var v=r&&r.userAgentData?r.userAgentData:a;var x=e?extend(K,e):K;var _=r&&r.userAgent==n;this.getBrowser=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.browser);i[d]=majorize(i[f]);if(_&&r&&r.brave&&typeof r.brave.isBrave==s){i[u]=\"Brave\"}return i};this.getCPU=function(){var i={};i[h]=a;rgxMapper.call(i,n,x.cpu);return i};this.getDevice=function(){var i={};i[m]=a;i[c]=a;i[p]=a;rgxMapper.call(i,n,x.device);if(_&&!i[p]&&v&&v.mobile){i[p]=g}if(_&&i[c]==\"Macintosh\"&&r&&typeof r.standalone!==b&&r.maxTouchPoints&&r.maxTouchPoints>2){i[c]=\"iPad\";i[p]=k}return i};this.getEngine=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.engine);return i};this.getOS=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.os);if(_&&!i[u]&&v&&v.platform!=\"Unknown\"){i[u]=v.platform.replace(/chrome os/i,L).replace(/macos/i,Z)}return i};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return n};this.setUA=function(i){n=typeof i===l&&i.length>q?trim(i,q):i;return this};this.setUA(n);return this};UAParser.VERSION=r;UAParser.BROWSER=enumerize([u,f,d]);UAParser.CPU=enumerize([h]);UAParser.DEVICE=enumerize([c,m,p,v,g,x,k,_,y]);UAParser.ENGINE=UAParser.OS=enumerize([u,f]);if(typeof e!==b){if(\"object\"!==b&&i.exports){e=i.exports=UAParser}e.UAParser=UAParser}else{if(\"function\"===s&&__webpack_require__.amdO){!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return UAParser}).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof o!==b){o.UAParser=UAParser}}var Q=typeof o!==b&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var Y=new UAParser;Q.ua=Y.getResult();Q.ua.get=function(){return Y.getUA()};Q.ua.set=function(i){Y.setUA(i);var e=Y.getResult();for(var o in e){Q.ua[o]=e[o]}}}})(typeof window===\"object\"?window:this)}};var e={};function __nccwpck_require__(o){var a=e[o];if(a!==undefined){return a.exports}var r=e[o]={exports:{}};var t=true;try{i[o].call(r.exports,r,r.exports,__nccwpck_require__);t=false}finally{if(t)delete e[o]}return r.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var o=__nccwpck_require__(226);module.exports=o})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3VhLXBhcnNlci1qcy91YS1wYXJzZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEsd0NBQU0sT0FBTyxrQkFBa0IsZUFBZSxhQUFhLHVPQUF1TyxxUUFBcVEseUJBQXlCLFNBQVMsZ0JBQWdCLDRCQUE0Qix1QkFBdUIsS0FBSyxXQUFXLFNBQVMsdUJBQXVCLFNBQVMsWUFBWSxXQUFXLEtBQUssMkJBQTJCLFNBQVMsbUJBQW1CLGdFQUFnRSxzQkFBc0IsdUJBQXVCLHNCQUFzQiw0REFBNEQsb0JBQW9CLGlCQUFpQix3QkFBd0IseUNBQXlDLDRCQUE0QixvQkFBb0Isc0JBQXNCLG9CQUFvQixNQUFNLHNCQUFzQixVQUFVLE1BQU0saUJBQWlCLFFBQVEsUUFBUSxXQUFXLEtBQUssU0FBUyxPQUFPLDZCQUE2QixpQkFBaUIsbUJBQW1CLDZCQUE2QixLQUFLLGlCQUFpQixzQkFBc0IsNkNBQTZDLHNDQUFzQyxLQUFLLHFDQUFxQyxzQkFBc0IscURBQXFELEtBQUssaUJBQWlCLE1BQU0seUJBQXlCLGdCQUFnQixtQ0FBbUMsWUFBWSxjQUFjLEtBQUssbUJBQW1CLG1CQUFtQixxQkFBcUIsa0JBQWtCLFVBQVUsT0FBTywrRkFBK0YsSUFBSSxzS0FBc0ssT0FBTywySkFBMkosSUFBSSx3M0JBQXczQixJQUFJLHEyQkFBcTJCLGdCQUFnQixraEJBQWtoQixHQUFHLHlWQUF5ViwyZkFBMmYscUhBQXFILGdDQUFnQyx5Q0FBeUMsZ0pBQWdKLElBQUksbURBQW1ELDRDQUE0Qyx5Q0FBeUMsMENBQTBDLDZIQUE2SCxJQUFJLFdBQVcsSUFBSSxvTUFBb00sZ0NBQWdDLFNBQVMsb0VBQW9FLDBDQUEwQyw2R0FBNkcsRUFBRSw4REFBOEQsc0JBQXNCLElBQUkscUdBQXFHLDhUQUE4VCxpQ0FBaUMsRUFBRSw4R0FBOEcsRUFBRSxpQkFBaUIseUNBQXlDLEVBQUUsVUFBVSxzS0FBc0ssSUFBSSw4REFBOEQsSUFBSSxrREFBa0QsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsSUFBSSxxRkFBcUYseUpBQXlKLEVBQUUsV0FBVyxFQUFFLHlLQUF5SyxlQUFlLElBQUkscURBQXFELEVBQUUsV0FBVyxFQUFFLHlEQUF5RCxJQUFJLHFQQUFxUCxFQUFFLFlBQVksRUFBRSxzS0FBc0ssU0FBUyxpRUFBaUUsd0RBQXdELE1BQU0sZ0xBQWdMLElBQUksSUFBSSwwR0FBMEcsdUVBQXVFLDZEQUE2RCxpQ0FBaUMsR0FBRyxnTEFBZ0wsK1JBQStSLElBQUksNEJBQTRCLEVBQUUsNEJBQTRCLElBQUksMkdBQTJHLGlMQUFpTCxJQUFJLHNLQUFzSyxFQUFFLGdGQUFnRixFQUFFLHVDQUF1QyxFQUFFLDZDQUE2QyxFQUFFLHVGQUF1RixFQUFFLG1DQUFtQyxFQUFFLGdEQUFnRCxJQUFJLG9EQUFvRCxJQUFJLCtiQUErYixFQUFFLDRDQUE0QywwRUFBMEUsaUdBQWlHLGlEQUFpRCwwTUFBME0sNEdBQTRHLEVBQUUsbURBQW1ELDhGQUE4RixXQUFXLElBQUksSUFBSSwyRUFBMkUsa0ZBQWtGLGtIQUFrSCxXQUFXLHdIQUF3SCx5Q0FBeUMsUUFBUSxJQUFJLDZKQUE2SixJQUFJLGtFQUFrRSxJQUFJLDRFQUE0RSwwREFBMEQsMEVBQTBFLElBQUksRUFBRSxxWEFBcVgsSUFBSSwwRkFBMEYsc05BQXNOLElBQUksNkJBQTZCLGNBQWMsZ1hBQWdYLHFCQUFxQiw2Q0FBNkMsa0dBQWtHLFNBQVMsa0RBQWtELGdPQUFnTyxrSEFBa0gsWUFBWSwrRkFBK0Ysb1hBQW9YLElBQUksbUNBQW1DLElBQUksNlBBQTZQLDJCQUEyQixpQkFBaUIsSUFBSSxJQUFJLGdDQUFnQyxxQ0FBcUMsOENBQThDLHdDQUF3QywyQ0FBMkMsc0JBQXNCLHdCQUF3QiwyQkFBMkIsU0FBUyxPQUFPLE9BQU8sOEJBQThCLG9CQUFvQiw2Q0FBNkMsYUFBYSxVQUFVLHVCQUF1QixTQUFTLE9BQU8sMEJBQTBCLFVBQVUsMEJBQTBCLFNBQVMsT0FBTyxPQUFPLE9BQU8sNkJBQTZCLDBCQUEwQixPQUFPLDJGQUEyRixZQUFZLE9BQU8sVUFBVSwwQkFBMEIsU0FBUyxPQUFPLE9BQU8sNkJBQTZCLFVBQVUsc0JBQXNCLFNBQVMsT0FBTyxPQUFPLHlCQUF5Qix1Q0FBdUMsNERBQTRELFVBQVUsMEJBQTBCLE9BQU8sOEhBQThILHNCQUFzQixVQUFVLHVCQUF1Qix1Q0FBdUMsYUFBYSxjQUFjLGFBQWEsbUJBQW1CLG9DQUFvQyw0QkFBNEIsK0NBQStDLDZDQUE2QyxpQkFBaUIsNEJBQTRCLHFCQUFxQixvQkFBb0IsS0FBSyxHQUFHLFVBQWEsTUFBTSx3QkFBVSxFQUFFLG1DQUFRLFdBQVcsZ0JBQWdCO0FBQUEsa0dBQUUsQ0FBQyxzQkFBc0IscUJBQXFCLHdDQUF3QyxhQUFhLG1CQUFtQixtQkFBbUIsb0JBQW9CLGtCQUFrQixxQkFBcUIsV0FBVyxvQkFBb0IsZ0JBQWdCLGdCQUFnQiwwQ0FBMEMsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvdWEtcGFyc2VyLWpzL3VhLXBhcnNlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9Pnt2YXIgaT17MjI2OmZ1bmN0aW9uKGksZSl7KGZ1bmN0aW9uKG8sYSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9XCIxLjAuMzVcIix0PVwiXCIsbj1cIj9cIixzPVwiZnVuY3Rpb25cIixiPVwidW5kZWZpbmVkXCIsdz1cIm9iamVjdFwiLGw9XCJzdHJpbmdcIixkPVwibWFqb3JcIixjPVwibW9kZWxcIix1PVwibmFtZVwiLHA9XCJ0eXBlXCIsbT1cInZlbmRvclwiLGY9XCJ2ZXJzaW9uXCIsaD1cImFyY2hpdGVjdHVyZVwiLHY9XCJjb25zb2xlXCIsZz1cIm1vYmlsZVwiLGs9XCJ0YWJsZXRcIix4PVwic21hcnR0dlwiLF89XCJ3ZWFyYWJsZVwiLHk9XCJlbWJlZGRlZFwiLHE9MzUwO3ZhciBUPVwiQW1hem9uXCIsUz1cIkFwcGxlXCIsej1cIkFTVVNcIixOPVwiQmxhY2tCZXJyeVwiLEE9XCJCcm93c2VyXCIsQz1cIkNocm9tZVwiLEU9XCJFZGdlXCIsTz1cIkZpcmVmb3hcIixVPVwiR29vZ2xlXCIsaj1cIkh1YXdlaVwiLFA9XCJMR1wiLFI9XCJNaWNyb3NvZnRcIixNPVwiTW90b3JvbGFcIixCPVwiT3BlcmFcIixWPVwiU2Ftc3VuZ1wiLEQ9XCJTaGFycFwiLEk9XCJTb255XCIsVz1cIlZpZXJhXCIsRj1cIlhpYW9taVwiLEc9XCJaZWJyYVwiLEg9XCJGYWNlYm9va1wiLEw9XCJDaHJvbWl1bSBPU1wiLFo9XCJNYWMgT1NcIjt2YXIgZXh0ZW5kPWZ1bmN0aW9uKGksZSl7dmFyIG89e307Zm9yKHZhciBhIGluIGkpe2lmKGVbYV0mJmVbYV0ubGVuZ3RoJTI9PT0wKXtvW2FdPWVbYV0uY29uY2F0KGlbYV0pfWVsc2V7b1thXT1pW2FdfX1yZXR1cm4gb30sZW51bWVyaXplPWZ1bmN0aW9uKGkpe3ZhciBlPXt9O2Zvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKXtlW2lbb10udG9VcHBlckNhc2UoKV09aVtvXX1yZXR1cm4gZX0saGFzPWZ1bmN0aW9uKGksZSl7cmV0dXJuIHR5cGVvZiBpPT09bD9sb3dlcml6ZShlKS5pbmRleE9mKGxvd2VyaXplKGkpKSE9PS0xOmZhbHNlfSxsb3dlcml6ZT1mdW5jdGlvbihpKXtyZXR1cm4gaS50b0xvd2VyQ2FzZSgpfSxtYWpvcml6ZT1mdW5jdGlvbihpKXtyZXR1cm4gdHlwZW9mIGk9PT1sP2kucmVwbGFjZSgvW15cXGRcXC5dL2csdCkuc3BsaXQoXCIuXCIpWzBdOmF9LHRyaW09ZnVuY3Rpb24oaSxlKXtpZih0eXBlb2YgaT09PWwpe2k9aS5yZXBsYWNlKC9eXFxzXFxzKi8sdCk7cmV0dXJuIHR5cGVvZiBlPT09Yj9pOmkuc3Vic3RyaW5nKDAscSl9fTt2YXIgcmd4TWFwcGVyPWZ1bmN0aW9uKGksZSl7dmFyIG89MCxyLHQsbixiLGwsZDt3aGlsZShvPGUubGVuZ3RoJiYhbCl7dmFyIGM9ZVtvXSx1PWVbbysxXTtyPXQ9MDt3aGlsZShyPGMubGVuZ3RoJiYhbCl7aWYoIWNbcl0pe2JyZWFrfWw9Y1tyKytdLmV4ZWMoaSk7aWYoISFsKXtmb3Iobj0wO248dS5sZW5ndGg7bisrKXtkPWxbKyt0XTtiPXVbbl07aWYodHlwZW9mIGI9PT13JiZiLmxlbmd0aD4wKXtpZihiLmxlbmd0aD09PTIpe2lmKHR5cGVvZiBiWzFdPT1zKXt0aGlzW2JbMF1dPWJbMV0uY2FsbCh0aGlzLGQpfWVsc2V7dGhpc1tiWzBdXT1iWzFdfX1lbHNlIGlmKGIubGVuZ3RoPT09Myl7aWYodHlwZW9mIGJbMV09PT1zJiYhKGJbMV0uZXhlYyYmYlsxXS50ZXN0KSl7dGhpc1tiWzBdXT1kP2JbMV0uY2FsbCh0aGlzLGQsYlsyXSk6YX1lbHNle3RoaXNbYlswXV09ZD9kLnJlcGxhY2UoYlsxXSxiWzJdKTphfX1lbHNlIGlmKGIubGVuZ3RoPT09NCl7dGhpc1tiWzBdXT1kP2JbM10uY2FsbCh0aGlzLGQucmVwbGFjZShiWzFdLGJbMl0pKTphfX1lbHNle3RoaXNbYl09ZD9kOmF9fX19bys9Mn19LHN0ck1hcHBlcj1mdW5jdGlvbihpLGUpe2Zvcih2YXIgbyBpbiBlKXtpZih0eXBlb2YgZVtvXT09PXcmJmVbb10ubGVuZ3RoPjApe2Zvcih2YXIgcj0wO3I8ZVtvXS5sZW5ndGg7cisrKXtpZihoYXMoZVtvXVtyXSxpKSl7cmV0dXJuIG89PT1uP2E6b319fWVsc2UgaWYoaGFzKGVbb10saSkpe3JldHVybiBvPT09bj9hOm99fXJldHVybiBpfTt2YXIgJD17XCIxLjBcIjpcIi84XCIsMS4yOlwiLzFcIiwxLjM6XCIvM1wiLFwiMi4wXCI6XCIvNDEyXCIsXCIyLjAuMlwiOlwiLzQxNlwiLFwiMi4wLjNcIjpcIi80MTdcIixcIjIuMC40XCI6XCIvNDE5XCIsXCI/XCI6XCIvXCJ9LFg9e01FOlwiNC45MFwiLFwiTlQgMy4xMVwiOlwiTlQzLjUxXCIsXCJOVCA0LjBcIjpcIk5UNC4wXCIsMmUzOlwiTlQgNS4wXCIsWFA6W1wiTlQgNS4xXCIsXCJOVCA1LjJcIl0sVmlzdGE6XCJOVCA2LjBcIiw3OlwiTlQgNi4xXCIsODpcIk5UIDYuMlwiLDguMTpcIk5UIDYuM1wiLDEwOltcIk5UIDYuNFwiLFwiTlQgMTAuMFwiXSxSVDpcIkFSTVwifTt2YXIgSz17YnJvd3NlcjpbWy9cXGIoPzpjcm1vfGNyaW9zKVxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiQ2hyb21lXCJdXSxbL2VkZyg/OmV8aW9zfGEpP1xcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiRWRnZVwiXV0sWy8ob3BlcmEgbWluaSlcXC8oWy1cXHdcXC5dKykvaSwvKG9wZXJhIFttb2JpbGV0YWJdezMsNn0pXFxiLit2ZXJzaW9uXFwvKFstXFx3XFwuXSspL2ksLyhvcGVyYSkoPzouK3ZlcnNpb25cXC98W1xcLyBdKykoW1xcd1xcLl0rKS9pXSxbdSxmXSxbL29waW9zW1xcLyBdKyhbXFx3XFwuXSspL2ldLFtmLFt1LEIrXCIgTWluaVwiXV0sWy9cXGJvcHJcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxCXV0sWy8oa2luZGxlKVxcLyhbXFx3XFwuXSspL2ksLyhsdW5hc2NhcGV8bWF4dGhvbnxuZXRmcm9udHxqYXNtaW5lfGJsYXplcilbXFwvIF0/KFtcXHdcXC5dKikvaSwvKGF2YW50IHxpZW1vYmlsZXxzbGltKSg/OmJyb3dzZXIpP1tcXC8gXT8oW1xcd1xcLl0qKS9pLC8oYmE/aWR1YnJvd3NlcilbXFwvIF0/KFtcXHdcXC5dKykvaSwvKD86bXN8XFwoKShpZSkgKFtcXHdcXC5dKykvaSwvKGZsb2NrfHJvY2ttZWx0fG1pZG9yaXxlcGlwaGFueXxzaWxrfHNreWZpcmV8Ym9sdHxpcm9ufHZpdmFsZGl8aXJpZGl1bXxwaGFudG9tanN8Ym93c2VyfHF1YXJrfHF1cHppbGxhfGZhbGtvbnxyZWtvbnF8cHVmZmlufGJyYXZlfHdoYWxlKD8hLituYXZlcil8cXFicm93c2VybGl0ZXxxcXxkdWNrZHVja2dvKVxcLyhbLVxcd1xcLl0rKS9pLC8oaGV5dGFwfG92aSlicm93c2VyXFwvKFtcXGRcXC5dKykvaSwvKHdlaWJvKV9fKFtcXGRcXC5dKykvaV0sW3UsZl0sWy8oPzpcXGJ1Yz8gP2Jyb3dzZXJ8KD86anVjLispdWN3ZWIpW1xcLyBdPyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiVUNcIitBXV0sWy9taWNyb20uK1xcYnFiY29yZVxcLyhbXFx3XFwuXSspL2ksL1xcYnFiY29yZVxcLyhbXFx3XFwuXSspLittaWNyb20vaV0sW2YsW3UsXCJXZUNoYXQoV2luKSBEZXNrdG9wXCJdXSxbL21pY3JvbWVzc2VuZ2VyXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJXZUNoYXRcIl1dLFsva29ucXVlcm9yXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJLb25xdWVyb3JcIl1dLFsvdHJpZGVudC4rcnZbOiBdKFtcXHdcXC5dezEsOX0pXFxiLitsaWtlIGdlY2tvL2ldLFtmLFt1LFwiSUVcIl1dLFsveWEoPzpzZWFyY2gpP2Jyb3dzZXJcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIllhbmRleFwiXV0sWy8oYXZhc3R8YXZnKVxcLyhbXFx3XFwuXSspL2ldLFtbdSwvKC4rKS8sXCIkMSBTZWN1cmUgXCIrQV0sZl0sWy9cXGJmb2N1c1xcLyhbXFx3XFwuXSspL2ldLFtmLFt1LE8rXCIgRm9jdXNcIl1dLFsvXFxib3B0XFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsQitcIiBUb3VjaFwiXV0sWy9jb2NfY29jXFx3K1xcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiQ29jIENvY1wiXV0sWy9kb2xmaW5cXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIkRvbHBoaW5cIl1dLFsvY29hc3RcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxCK1wiIENvYXN0XCJdXSxbL21pdWlicm93c2VyXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJNSVVJIFwiK0FdXSxbL2Z4aW9zXFwvKFstXFx3XFwuXSspL2ldLFtmLFt1LE9dXSxbL1xcYnFpaHV8KHFpP2hvP28/fDM2MClicm93c2VyL2ldLFtbdSxcIjM2MCBcIitBXV0sWy8ob2N1bHVzfHNhbXN1bmd8c2FpbGZpc2h8aHVhd2VpKWJyb3dzZXJcXC8oW1xcd1xcLl0rKS9pXSxbW3UsLyguKykvLFwiJDEgXCIrQV0sZl0sWy8oY29tb2RvX2RyYWdvbilcXC8oW1xcd1xcLl0rKS9pXSxbW3UsL18vZyxcIiBcIl0sZl0sWy8oZWxlY3Ryb24pXFwvKFtcXHdcXC5dKykgc2FmYXJpL2ksLyh0ZXNsYSkoPzogcXRjYXJicm93c2VyfFxcLygyMFxcZFxcZFxcLlstXFx3XFwuXSspKS9pLC9tPyhxcWJyb3dzZXJ8YmFpZHVib3hhcHB8MjM0NUV4cGxvcmVyKVtcXC8gXT8oW1xcd1xcLl0rKS9pXSxbdSxmXSxbLyhtZXRhc3IpW1xcLyBdPyhbXFx3XFwuXSspL2ksLyhsYmJyb3dzZXIpL2ksL1xcWyhsaW5rZWRpbilhcHBcXF0vaV0sW3VdLFsvKCg/OmZiYW5cXC9mYmlvc3xmYl9pYWJcXC9mYjRhKSg/IS4rZmJhdil8O2ZiYXZcXC8oW1xcd1xcLl0rKTspL2ldLFtbdSxIXSxmXSxbLyhrYWthbyg/OnRhbGt8c3RvcnkpKVtcXC8gXShbXFx3XFwuXSspL2ksLyhuYXZlcilcXCguKj8oXFxkK1xcLltcXHdcXC5dKykuKlxcKS9pLC9zYWZhcmkgKGxpbmUpXFwvKFtcXHdcXC5dKykvaSwvXFxiKGxpbmUpXFwvKFtcXHdcXC5dKylcXC9pYWIvaSwvKGNocm9taXVtfGluc3RhZ3JhbSlbXFwvIF0oWy1cXHdcXC5dKykvaV0sW3UsZl0sWy9cXGJnc2FcXC8oW1xcd1xcLl0rKSAuKnNhZmFyaVxcLy9pXSxbZixbdSxcIkdTQVwiXV0sWy9tdXNpY2FsX2x5KD86LithcHBfP3ZlcnNpb25cXC98XykoW1xcd1xcLl0rKS9pXSxbZixbdSxcIlRpa1Rva1wiXV0sWy9oZWFkbGVzc2Nocm9tZSg/OlxcLyhbXFx3XFwuXSspfCApL2ldLFtmLFt1LEMrXCIgSGVhZGxlc3NcIl1dLFsvIHd2XFwpLisoY2hyb21lKVxcLyhbXFx3XFwuXSspL2ldLFtbdSxDK1wiIFdlYlZpZXdcIl0sZl0sWy9kcm9pZC4rIHZlcnNpb25cXC8oW1xcd1xcLl0rKVxcYi4rKD86bW9iaWxlIHNhZmFyaXxzYWZhcmkpL2ldLFtmLFt1LFwiQW5kcm9pZCBcIitBXV0sWy8oY2hyb21lfG9tbml3ZWJ8YXJvcmF8W3RpemVub2thXXs1fSA/YnJvd3NlcilcXC92PyhbXFx3XFwuXSspL2ldLFt1LGZdLFsvdmVyc2lvblxcLyhbXFx3XFwuXFwsXSspIC4qbW9iaWxlXFwvXFx3KyAoc2FmYXJpKS9pXSxbZixbdSxcIk1vYmlsZSBTYWZhcmlcIl1dLFsvdmVyc2lvblxcLyhbXFx3KFxcLnxcXCwpXSspIC4qKG1vYmlsZSA/c2FmYXJpfHNhZmFyaSkvaV0sW2YsdV0sWy93ZWJraXQuKz8obW9iaWxlID9zYWZhcml8c2FmYXJpKShcXC9bXFx3XFwuXSspL2ldLFt1LFtmLHN0ck1hcHBlciwkXV0sWy8od2Via2l0fGtodG1sKVxcLyhbXFx3XFwuXSspL2ldLFt1LGZdLFsvKG5hdmlnYXRvcnxuZXRzY2FwZVxcZD8pXFwvKFstXFx3XFwuXSspL2ldLFtbdSxcIk5ldHNjYXBlXCJdLGZdLFsvbW9iaWxlIHZyOyBydjooW1xcd1xcLl0rKVxcKS4rZmlyZWZveC9pXSxbZixbdSxPK1wiIFJlYWxpdHlcIl1dLFsvZWtpb2hmLisoZmxvdylcXC8oW1xcd1xcLl0rKS9pLC8oc3dpZnRmb3gpL2ksLyhpY2VkcmFnb258aWNld2Vhc2VsfGNhbWlub3xjaGltZXJhfGZlbm5lY3xtYWVtbyBicm93c2VyfG1pbmltb3xjb25rZXJvcnxrbGFyKVtcXC8gXT8oW1xcd1xcLlxcK10rKS9pLC8oc2VhbW9ua2V5fGstbWVsZW9ufGljZWNhdHxpY2VhcGV8ZmlyZWJpcmR8cGhvZW5peHxwYWxlbW9vbnxiYXNpbGlza3x3YXRlcmZveClcXC8oWy1cXHdcXC5dKykkL2ksLyhmaXJlZm94KVxcLyhbXFx3XFwuXSspL2ksLyhtb3ppbGxhKVxcLyhbXFx3XFwuXSspIC4rcnZcXDouK2dlY2tvXFwvXFxkKy9pLC8ocG9sYXJpc3xseW54fGRpbGxvfGljYWJ8ZG9yaXN8YW1heWF8dzNtfG5ldHN1cmZ8c2xlaXBuaXJ8b2JpZ298bW9zYWljfCg/OmdvfGljZXx1cClbXFwuIF0/YnJvd3NlcilbLVxcLyBdP3Y/KFtcXHdcXC5dKykvaSwvKGxpbmtzKSBcXCgoW1xcd1xcLl0rKS9pLC9wYW5hc29uaWM7KHZpZXJhKS9pXSxbdSxmXSxbLyhjb2JhbHQpXFwvKFtcXHdcXC5dKykvaV0sW3UsW2YsL21hc3Rlci58bHRzLi8sXCJcIl1dXSxjcHU6W1svKD86KGFtZHx4KD86KD86ODZ8NjQpWy1fXSk/fHdvd3x3aW4pNjQpWztcXCldL2ldLFtbaCxcImFtZDY0XCJdXSxbLyhpYTMyKD89OykpL2ldLFtbaCxsb3dlcml6ZV1dLFsvKCg/OmlbMzQ2XXx4KTg2KVs7XFwpXS9pXSxbW2gsXCJpYTMyXCJdXSxbL1xcYihhYXJjaDY0fGFybSh2PzhlP2w/fF8/NjQpKVxcYi9pXSxbW2gsXCJhcm02NFwiXV0sWy9cXGIoYXJtKD86dls2N10pP2h0P24/W2ZsXXA/KVxcYi9pXSxbW2gsXCJhcm1oZlwiXV0sWy93aW5kb3dzIChjZXxtb2JpbGUpOyBwcGM7L2ldLFtbaCxcImFybVwiXV0sWy8oKD86cHBjfHBvd2VycGMpKD86NjQpPykoPzogbWFjfDt8XFwpKS9pXSxbW2gsL293ZXIvLHQsbG93ZXJpemVdXSxbLyhzdW40XFx3KVs7XFwpXS9pXSxbW2gsXCJzcGFyY1wiXV0sWy8oKD86YXZyMzJ8aWE2NCg/PTspKXw2OGsoPz1cXCkpfFxcYmFybSg/PXYoPzpbMS03XXxbNS03XTEpbD98O3xlYWJpKXwoPz1hdG1lbCApYXZyfCg/OmlyaXh8bWlwc3xzcGFyYykoPzo2NCk/XFxifHBhLXJpc2MpL2ldLFtbaCxsb3dlcml6ZV1dXSxkZXZpY2U6W1svXFxiKHNjaC1pWzg5XTBcXGR8c2h3LW0zODBzfHNtLVtwdHhdXFx3ezIsNH18Z3QtW3BuXVxcZHsyLDR9fHNnaC10OFs1Nl05fG5leHVzIDEwKS9pXSxbYyxbbSxWXSxbcCxrXV0sWy9cXGIoKD86c1tjZ3BdaHxndHxzbSktXFx3K3xzY1tnLV0/W1xcZF0rYT98Z2FsYXh5IG5leHVzKS9pLC9zYW1zdW5nWy0gXShbLVxcd10rKS9pLC9zZWMtKHNnaFxcdyspL2ldLFtjLFttLFZdLFtwLGddXSxbLyg/OlxcL3xcXCgpKGlwKD86aG9uZXxvZClbXFx3LCBdKikoPzpcXC98OykvaV0sW2MsW20sU10sW3AsZ11dLFsvXFwoKGlwYWQpO1stXFx3XFwpLDsgXSthcHBsZS9pLC9hcHBsZWNvcmVtZWRpYVxcL1tcXHdcXC5dKyBcXCgoaXBhZCkvaSwvXFxiKGlwYWQpXFxkXFxkPyxcXGRcXGQ/WztcXF1dLitpb3MvaV0sW2MsW20sU10sW3Asa11dLFsvKG1hY2ludG9zaCk7L2ldLFtjLFttLFNdXSxbL1xcYihzaC0/W2FsdHZ6XT9cXGRcXGRbYS1la21dPykvaV0sW2MsW20sRF0sW3AsZ11dLFsvXFxiKCg/OmFnW3JzXVsyM10/fGJhaDI/fHNodD98YnR2KS1hP1tsd11cXGR7Mn0pXFxiKD8hLitkXFwvcykvaV0sW2MsW20sal0sW3Asa11dLFsvKD86aHVhd2VpfGhvbm9yKShbLVxcdyBdKylbO1xcKV0vaSwvXFxiKG5leHVzIDZwfFxcd3syLDR9ZT8tW2F0dV0/W2xuXVtcXGR4XVswMTIzNTljXVthZG5dPylcXGIoPyEuK2RcXC9zKS9pXSxbYyxbbSxqXSxbcCxnXV0sWy9cXGIocG9jb1tcXHcgXSspKD86IGJ1aXxcXCkpL2ksL1xcYjsgKFxcdyspIGJ1aWxkXFwvaG1cXDEvaSwvXFxiKGhtWy1fIF0/bm90ZT9bXyBdPyg/OlxcZFxcdyk/KSBidWkvaSwvXFxiKHJlZG1pW1xcLV8gXT8oPzpub3RlfGspP1tcXHdfIF0rKSg/OiBidWl8XFwpKS9pLC9cXGIobWlbLV8gXT8oPzphXFxkfG9uZXxvbmVbXyBdcGx1c3xub3RlIGx0ZXxtYXh8Y2MpP1tfIF0/KD86XFxkP1xcdz8pW18gXT8oPzpwbHVzfHNlfGxpdGUpPykoPzogYnVpfFxcKSkvaV0sW1tjLC9fL2csXCIgXCJdLFttLEZdLFtwLGddXSxbL1xcYihtaVstXyBdPyg/OnBhZCkoPzpbXFx3XyBdKykpKD86IGJ1aXxcXCkpL2ldLFtbYywvXy9nLFwiIFwiXSxbbSxGXSxbcCxrXV0sWy87IChcXHcrKSBidWkuKyBvcHBvL2ksL1xcYihjcGhbMTJdXFxkezN9fHAoPzphZnxjW2FsXXxkXFx3fGVbYXJdKVttdF1cXGQwfHg5MDA3fGExMDFvcClcXGIvaV0sW2MsW20sXCJPUFBPXCJdLFtwLGddXSxbL3Zpdm8gKFxcdyspKD86IGJ1aXxcXCkpL2ksL1xcYih2WzEyXVxcZHszfVxcdz9bYXRdKSg/OiBidWl8OykvaV0sW2MsW20sXCJWaXZvXCJdLFtwLGddXSxbL1xcYihybXhbMTJdXFxkezN9KSg/OiBidWl8O3xcXCkpL2ldLFtjLFttLFwiUmVhbG1lXCJdLFtwLGddXSxbL1xcYihtaWxlc3RvbmV8ZHJvaWQoPzpbMi00eF18ICg/OmJpb25pY3x4Mnxwcm98cmF6cikpPzo/KCA0Zyk/KVxcYltcXHcgXStidWlsZFxcLy9pLC9cXGJtb3QoPzpvcm9sYSk/Wy0gXShcXHcqKS9pLC8oKD86bW90b1tcXHdcXChcXCkgXSt8eHRcXGR7Myw0fXxuZXh1cyA2KSg/PSBidWl8XFwpKSkvaV0sW2MsW20sTV0sW3AsZ11dLFsvXFxiKG16NjBcXGR8eG9vbVsyIF17MCwyfSkgYnVpbGRcXC8vaV0sW2MsW20sTV0sW3Asa11dLFsvKCg/PWxnKT9bdmxda1xcLT9cXGR7M30pIGJ1aXwgM1xcLlstXFx3OyBdezEwfWxnPy0oWzA2Y3Y5XXszLDR9KS9pXSxbYyxbbSxQXSxbcCxrXV0sWy8obG0oPzotP2YxMDBbbnZdP3wtW1xcd1xcLl0rKSg/PSBidWl8XFwpKXxuZXh1cyBbNDVdKS9pLC9cXGJsZ1stZTtcXC8gXSsoKD8hYnJvd3NlcnxuZXRjYXN0fGFuZHJvaWQgdHYpXFx3KykvaSwvXFxibGctPyhbXFxkXFx3XSspIGJ1aS9pXSxbYyxbbSxQXSxbcCxnXV0sWy8oaWRlYXRhYlstXFx3IF0rKS9pLC9sZW5vdm8gPyhzWzU2XTAwMFstXFx3XSt8dGFiKD86W1xcdyBdKyl8eXRbLVxcZFxcd117Nn18dGJbLVxcZFxcd117Nn0pL2ldLFtjLFttLFwiTGVub3ZvXCJdLFtwLGtdXSxbLyg/Om1hZW1vfG5va2lhKS4qKG45MDB8bHVtaWEgXFxkKykvaSwvbm9raWFbLV8gXT8oWy1cXHdcXC5dKikvaV0sW1tjLC9fL2csXCIgXCJdLFttLFwiTm9raWFcIl0sW3AsZ11dLFsvKHBpeGVsIGMpXFxiL2ldLFtjLFttLFVdLFtwLGtdXSxbL2Ryb2lkLis7IChwaXhlbFtcXGRheGwgXXswLDZ9KSg/OiBidWl8XFwpKS9pXSxbYyxbbSxVXSxbcCxnXV0sWy9kcm9pZC4rIChhP1xcZFswLTJdezJ9c298W2MtZ11cXGR7NH18c29bLWdsXVxcdyt8eHEtYVxcd1s0LTddWzEyXSkoPz0gYnVpfFxcKS4rY2hyb21lXFwvKD8hWzEtNl17MCwxfVxcZFxcLikpL2ldLFtjLFttLEldLFtwLGddXSxbL3NvbnkgdGFibGV0IFtwc10vaSwvXFxiKD86c29ueSk/c2dwXFx3Kyg/OiBidWl8XFwpKS9pXSxbW2MsXCJYcGVyaWEgVGFibGV0XCJdLFttLEldLFtwLGtdXSxbLyAoa2IyMDA1fGluMjBbMTJdNXxiZTIwWzEyXVs1OV0pXFxiL2ksLyg/Om9uZSk/KD86cGx1cyk/IChhXFxkMFxcZFxcZCkoPzogYnxcXCkpL2ldLFtjLFttLFwiT25lUGx1c1wiXSxbcCxnXV0sWy8oYWxleGEpd2VibS9pLC8oa2ZbYS16XXsyfXdpfGFlb1tjLXJdezJ9KSggYnVpfFxcKSkvaSwvKGtmW2Etel0rKSggYnVpfFxcKSkuK3NpbGtcXC8vaV0sW2MsW20sVF0sW3Asa11dLFsvKCg/OnNkfGtmKVswMzQ5aGlqb3JzdHV3XSspKCBidWl8XFwpKS4rc2lsa1xcLy9pXSxbW2MsLyguKykvZyxcIkZpcmUgUGhvbmUgJDFcIl0sW20sVF0sW3AsZ11dLFsvKHBsYXlib29rKTtbLVxcd1xcKSw7IF0rKHJpbSkvaV0sW2MsbSxbcCxrXV0sWy9cXGIoKD86YmJbYS1mXXxzdFtodl0pMTAwLVxcZCkvaSwvXFwoYmIxMDsgKFxcdyspL2ldLFtjLFttLE5dLFtwLGddXSxbLyg/OlxcYnxhc3VzXykodHJhbnNmb1twcmltZSBdezQsMTB9IFxcdyt8ZWVlcGN8c2xpZGVyIFxcdyt8bmV4dXMgN3xwYWRmb25lfHAwMFtjal0pL2ldLFtjLFttLHpdLFtwLGtdXSxbLyAoeltiZXNdNlswMjddWzAxMl1ba21dW2xzXXx6ZW5mb25lIFxcZFxcdz8pXFxiL2ldLFtjLFttLHpdLFtwLGddXSxbLyhuZXh1cyA5KS9pXSxbYyxbbSxcIkhUQ1wiXSxbcCxrXV0sWy8oaHRjKVstO18gXXsxLDJ9KFtcXHcgXSsoPz1cXCl8IGJ1aSl8XFx3KykvaSwvKHp0ZSlbLSBdKFtcXHcgXSs/KSg/OiBidWl8XFwvfFxcKSkvaSwvKGFsY2F0ZWx8Z2Vla3NwaG9uZXxuZXhpYW58cGFuYXNvbmljKD8hKD86O3xcXC4pKXxzb255KD8hLWJyYSkpWy1fIF0/KFstXFx3XSopL2ldLFttLFtjLC9fL2csXCIgXCJdLFtwLGddXSxbL2Ryb2lkLis7IChbYWJdWzEtN10tP1swMTc4YV1cXGRcXGQ/KS9pXSxbYyxbbSxcIkFjZXJcIl0sW3Asa11dLFsvZHJvaWQuKzsgKG1bMS01XSBub3RlKSBidWkvaSwvXFxibXotKFstXFx3XXsyLH0pL2ldLFtjLFttLFwiTWVpenVcIl0sW3AsZ11dLFsvKGJsYWNrYmVycnl8YmVucXxwYWxtKD89XFwtKXxzb255ZXJpY3Nzb258YWNlcnxhc3VzfGRlbGx8bWVpenV8bW90b3JvbGF8cG9seXRyb24pWy1fIF0/KFstXFx3XSopL2ksLyhocCkgKFtcXHcgXStcXHcpL2ksLyhhc3VzKS0/KFxcdyspL2ksLyhtaWNyb3NvZnQpOyAobHVtaWFbXFx3IF0rKS9pLC8obGVub3ZvKVstXyBdPyhbLVxcd10rKS9pLC8oam9sbGEpL2ksLyhvcHBvKSA/KFtcXHcgXSspIGJ1aS9pXSxbbSxjLFtwLGddXSxbLyhrb2JvKVxccyhlcmVhZGVyfHRvdWNoKS9pLC8oYXJjaG9zKSAoZ2FtZXBhZDI/KS9pLC8oaHApLisodG91Y2hwYWQoPyEuK3RhYmxldCl8dGFibGV0KS9pLC8oa2luZGxlKVxcLyhbXFx3XFwuXSspL2ksLyhub29rKVtcXHcgXStidWlsZFxcLyhcXHcrKS9pLC8oZGVsbCkgKHN0cmVhW2twclxcZCBdKltcXGRrb10pL2ksLyhsZVstIF0rcGFuKVstIF0rKFxcd3sxLDl9KSBidWkvaSwvKHRyaW5pdHkpWy0gXSoodFxcZHszfSkgYnVpL2ksLyhnaWdhc2V0KVstIF0rKHFcXHd7MSw5fSkgYnVpL2ksLyh2b2RhZm9uZSkgKFtcXHcgXSspKD86XFwpfCBidWkpL2ldLFttLGMsW3Asa11dLFsvKHN1cmZhY2UgZHVvKS9pXSxbYyxbbSxSXSxbcCxrXV0sWy9kcm9pZCBbXFxkXFwuXSs7IChmcFxcZHU/KSg/OiBifFxcKSkvaV0sW2MsW20sXCJGYWlycGhvbmVcIl0sW3AsZ11dLFsvKHUzMDRhYSkvaV0sW2MsW20sXCJBVCZUXCJdLFtwLGddXSxbL1xcYnNpZS0oXFx3KikvaV0sW2MsW20sXCJTaWVtZW5zXCJdLFtwLGddXSxbL1xcYihyY3RcXHcrKSBiL2ldLFtjLFttLFwiUkNBXCJdLFtwLGtdXSxbL1xcYih2ZW51ZVtcXGQgXXsyLDd9KSBiL2ldLFtjLFttLFwiRGVsbFwiXSxbcCxrXV0sWy9cXGIocSg/Om12fHRhKVxcdyspIGIvaV0sW2MsW20sXCJWZXJpem9uXCJdLFtwLGtdXSxbL1xcYig/OmJhcm5lc1smIF0rbm9ibGUgfGJuW3J0XSkoW1xcd1xcKyBdKikgYi9pXSxbYyxbbSxcIkJhcm5lcyAmIE5vYmxlXCJdLFtwLGtdXSxbL1xcYih0bVxcZHszfVxcdyspIGIvaV0sW2MsW20sXCJOdVZpc2lvblwiXSxbcCxrXV0sWy9cXGIoazg4KSBiL2ldLFtjLFttLFwiWlRFXCJdLFtwLGtdXSxbL1xcYihueFxcZHszfWopIGIvaV0sW2MsW20sXCJaVEVcIl0sW3AsZ11dLFsvXFxiKGdlblxcZHszfSkgYi4rNDloL2ldLFtjLFttLFwiU3dpc3NcIl0sW3AsZ11dLFsvXFxiKHp1clxcZHszfSkgYi9pXSxbYyxbbSxcIlN3aXNzXCJdLFtwLGtdXSxbL1xcYigoemVraSk/dGIuKlxcYikgYi9pXSxbYyxbbSxcIlpla2lcIl0sW3Asa11dLFsvXFxiKFt5cl1cXGR7Mn0pIGIvaSwvXFxiKGRyYWdvblstIF0rdG91Y2ggfGR0KShcXHd7NX0pIGIvaV0sW1ttLFwiRHJhZ29uIFRvdWNoXCJdLGMsW3Asa11dLFsvXFxiKG5zLT9cXHd7MCw5fSkgYi9pXSxbYyxbbSxcIkluc2lnbmlhXCJdLFtwLGtdXSxbL1xcYigobnhhfG5leHQpLT9cXHd7MCw5fSkgYi9pXSxbYyxbbSxcIk5leHRCb29rXCJdLFtwLGtdXSxbL1xcYih4dHJlbWVcXF8pPyh2KDFbMDQ1XXwyWzAxNV18WzM0NjldMHw3WzA1XSkpIGIvaV0sW1ttLFwiVm9pY2VcIl0sYyxbcCxnXV0sWy9cXGIobHZ0ZWxcXC0pPyh2MVsxMl0pIGIvaV0sW1ttLFwiTHZUZWxcIl0sYyxbcCxnXV0sWy9cXGIocGgtMSkgL2ldLFtjLFttLFwiRXNzZW50aWFsXCJdLFtwLGddXSxbL1xcYih2KDEwMG1kfDcwMG5hfDcwMTF8OTE3ZykuKlxcYikgYi9pXSxbYyxbbSxcIkVudml6ZW5cIl0sW3Asa11dLFsvXFxiKHRyaW9bLVxcd1xcLiBdKykgYi9pXSxbYyxbbSxcIk1hY2hTcGVlZFwiXSxbcCxrXV0sWy9cXGJ0dV8oMTQ5MSkgYi9pXSxbYyxbbSxcIlJvdG9yXCJdLFtwLGtdXSxbLyhzaGllbGRbXFx3IF0rKSBiL2ldLFtjLFttLFwiTnZpZGlhXCJdLFtwLGtdXSxbLyhzcHJpbnQpIChcXHcrKS9pXSxbbSxjLFtwLGddXSxbLyhraW5cXC5bb25ldHddezN9KS9pXSxbW2MsL1xcLi9nLFwiIFwiXSxbbSxSXSxbcCxnXV0sWy9kcm9pZC4rOyAoY2M2NjY2P3xldDVbMTZdfG1jWzIzOV1bMjNdeD98dmM4WzAzXXg/KVxcKS9pXSxbYyxbbSxHXSxbcCxrXV0sWy9kcm9pZC4rOyAoZWMzMHxwczIwfHRjWzItOF1cXGRba3hdKVxcKS9pXSxbYyxbbSxHXSxbcCxnXV0sWy9zbWFydC10di4rKHNhbXN1bmcpL2ldLFttLFtwLHhdXSxbL2hiYnR2LittYXBsZTsoXFxkKykvaV0sW1tjLC9eLyxcIlNtYXJ0VFZcIl0sW20sVl0sW3AseF1dLFsvKG51eDsgbmV0Y2FzdC4rc21hcnR0dnxsZyAobmV0Y2FzdFxcLnR2LTIwMVxcZHxhbmRyb2lkIHR2KSkvaV0sW1ttLFBdLFtwLHhdXSxbLyhhcHBsZSkgP3R2L2ldLFttLFtjLFMrXCIgVFZcIl0sW3AseF1dLFsvY3JrZXkvaV0sW1tjLEMrXCJjYXN0XCJdLFttLFVdLFtwLHhdXSxbL2Ryb2lkLithZnQoXFx3KSggYnVpfFxcKSkvaV0sW2MsW20sVF0sW3AseF1dLFsvXFwoZHR2W1xcKTtdLisoYXF1b3MpL2ksLyhhcXVvcy10dltcXHcgXSspXFwpL2ldLFtjLFttLERdLFtwLHhdXSxbLyhicmF2aWFbXFx3IF0rKSggYnVpfFxcKSkvaV0sW2MsW20sSV0sW3AseF1dLFsvKG1pdHYtXFx3ezV9KSBidWkvaV0sW2MsW20sRl0sW3AseF1dLFsvSGJidHYuKih0ZWNobmlzYXQpICguKik7L2ldLFttLGMsW3AseF1dLFsvXFxiKHJva3UpW1xcZHhdKltcXClcXC9dKCg/OmR2cC0pP1tcXGRcXC5dKikvaSwvaGJidHZcXC9cXGQrXFwuXFxkK1xcLlxcZCsgK1xcKFtcXHdcXCsgXSo7ICooW1xcd1xcZF1bXjtdKik7KFteO10qKS9pXSxbW20sdHJpbV0sW2MsdHJpbV0sW3AseF1dLFsvXFxiKGFuZHJvaWQgdHZ8c21hcnRbLSBdP3R2fG9wZXJhIHR2fHR2OyBydjopXFxiL2ldLFtbcCx4XV0sWy8ob3V5YSkvaSwvKG5pbnRlbmRvKSAoW3dpZHMzdXRjaF0rKS9pXSxbbSxjLFtwLHZdXSxbL2Ryb2lkLis7IChzaGllbGQpIGJ1aS9pXSxbYyxbbSxcIk52aWRpYVwiXSxbcCx2XV0sWy8ocGxheXN0YXRpb24gWzM0NXBvcnRhYmxldmldKykvaV0sW2MsW20sSV0sW3Asdl1dLFsvXFxiKHhib3goPzogb25lKT8oPyE7IHhib3gpKVtcXCk7IF0vaV0sW2MsW20sUl0sW3Asdl1dLFsvKChwZWJibGUpKWFwcC9pXSxbbSxjLFtwLF9dXSxbLyh3YXRjaCkoPzogP29zWyxcXC9dfFxcZCxcXGRcXC8pW1xcZFxcLl0rL2ldLFtjLFttLFNdLFtwLF9dXSxbL2Ryb2lkLis7IChnbGFzcykgXFxkL2ldLFtjLFttLFVdLFtwLF9dXSxbL2Ryb2lkLis7ICh3dDYzPzB7MiwzfSlcXCkvaV0sW2MsW20sR10sW3AsX11dLFsvKHF1ZXN0KCAyfCBwcm8pPykvaV0sW2MsW20sSF0sW3AsX11dLFsvKHRlc2xhKSg/OiBxdGNhcmJyb3dzZXJ8XFwvWy1cXHdcXC5dKykvaV0sW20sW3AseV1dLFsvKGFlb2JjKVxcYi9pXSxbYyxbbSxUXSxbcCx5XV0sWy9kcm9pZCAuKz87IChbXjtdKz8pKD86IGJ1aXxcXCkgYXBwbGV3KS4rPyBtb2JpbGUgc2FmYXJpL2ldLFtjLFtwLGddXSxbL2Ryb2lkIC4rPzsgKFteO10rPykoPzogYnVpfFxcKSBhcHBsZXcpLis/KD8hIG1vYmlsZSkgc2FmYXJpL2ldLFtjLFtwLGtdXSxbL1xcYigodGFibGV0fHRhYilbO1xcL118Zm9jdXNcXC9cXGQoPyEuK21vYmlsZSkpL2ldLFtbcCxrXV0sWy8ocGhvbmV8bW9iaWxlKD86WztcXC9dfCBbIFxcd1xcL1xcLl0qc2FmYXJpKXxwZGEoPz0uK3dpbmRvd3MgY2UpKS9pXSxbW3AsZ11dLFsvKGFuZHJvaWRbLVxcd1xcLiBdezAsOX0pOy4rYnVpbC9pXSxbYyxbbSxcIkdlbmVyaWNcIl1dXSxlbmdpbmU6W1svd2luZG93cy4rIGVkZ2VcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxFK1wiSFRNTFwiXV0sWy93ZWJraXRcXC81MzdcXC4zNi4rY2hyb21lXFwvKD8hMjcpKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJCbGlua1wiXV0sWy8ocHJlc3RvKVxcLyhbXFx3XFwuXSspL2ksLyh3ZWJraXR8dHJpZGVudHxuZXRmcm9udHxuZXRzdXJmfGFtYXlhfGx5bnh8dzNtfGdvYW5uYSlcXC8oW1xcd1xcLl0rKS9pLC9la2lvaChmbG93KVxcLyhbXFx3XFwuXSspL2ksLyhraHRtbHx0YXNtYW58bGlua3MpW1xcLyBdXFwoPyhbXFx3XFwuXSspL2ksLyhpY2FiKVtcXC8gXShbMjNdXFwuW1xcZFxcLl0rKS9pLC9cXGIobGlid2ViKS9pXSxbdSxmXSxbL3J2XFw6KFtcXHdcXC5dezEsOX0pXFxiLisoZ2Vja28pL2ldLFtmLHVdXSxvczpbWy9taWNyb3NvZnQgKHdpbmRvd3MpICh2aXN0YXx4cCkvaV0sW3UsZl0sWy8od2luZG93cykgbnQgNlxcLjI7IChhcm0pL2ksLyh3aW5kb3dzICg/OnBob25lKD86IG9zKT98bW9iaWxlKSlbXFwvIF0/KFtcXGRcXC5cXHcgXSopL2ksLyh3aW5kb3dzKVtcXC8gXT8oW250Y2VcXGRcXC4gXStcXHcpKD8hLit4Ym94KS9pXSxbdSxbZixzdHJNYXBwZXIsWF1dLFsvKHdpbig/PTN8OXxuKXx3aW4gOXggKShbbnRcXGRcXC5dKykvaV0sW1t1LFwiV2luZG93c1wiXSxbZixzdHJNYXBwZXIsWF1dLFsvaXBbaG9uZWFkXXsyLDR9XFxiKD86LipvcyAoW1xcd10rKSBsaWtlIG1hY3w7IG9wZXJhKS9pLC9pb3M7ZmJzdlxcLyhbXFxkXFwuXSspL2ksL2NmbmV0d29ya1xcLy4rZGFyd2luL2ldLFtbZiwvXy9nLFwiLlwiXSxbdSxcImlPU1wiXV0sWy8obWFjIG9zIHgpID8oW1xcd1xcLiBdKikvaSwvKG1hY2ludG9zaHxtYWNfcG93ZXJwY1xcYikoPyEuK2hhaWt1KS9pXSxbW3UsWl0sW2YsL18vZyxcIi5cIl1dLFsvZHJvaWQgKFtcXHdcXC5dKylcXGIuKyhhbmRyb2lkWy0gXXg4NnxoYXJtb255b3MpL2ldLFtmLHVdLFsvKGFuZHJvaWR8d2Vib3N8cW54fGJhZGF8cmltIHRhYmxldCBvc3xtYWVtb3xtZWVnb3xzYWlsZmlzaClbLVxcLyBdPyhbXFx3XFwuXSopL2ksLyhibGFja2JlcnJ5KVxcdypcXC8oW1xcd1xcLl0qKS9pLC8odGl6ZW58a2Fpb3MpW1xcLyBdKFtcXHdcXC5dKykvaSwvXFwoKHNlcmllczQwKTsvaV0sW3UsZl0sWy9cXChiYigxMCk7L2ldLFtmLFt1LE5dXSxbLyg/OnN5bWJpYW4gP29zfHN5bWJvc3xzNjAoPz07KXxzZXJpZXM2MClbLVxcLyBdPyhbXFx3XFwuXSopL2ldLFtmLFt1LFwiU3ltYmlhblwiXV0sWy9tb3ppbGxhXFwvW1xcZFxcLl0rIFxcKCg/Om1vYmlsZXx0YWJsZXR8dHZ8bW9iaWxlOyBbXFx3IF0rKTsgcnY6LisgZ2Vja29cXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxPK1wiIE9TXCJdXSxbL3dlYjBzOy4rcnQodHYpL2ksL1xcYig/OmhwKT93b3MoPzpicm93c2VyKT9cXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIndlYk9TXCJdXSxbL3dhdGNoKD86ID9vc1ssXFwvXXxcXGQsXFxkXFwvKShbXFxkXFwuXSspL2ldLFtmLFt1LFwid2F0Y2hPU1wiXV0sWy9jcmtleVxcLyhbXFxkXFwuXSspL2ldLFtmLFt1LEMrXCJjYXN0XCJdXSxbLyhjcm9zKSBbXFx3XSsoPzpcXCl8IChbXFx3XFwuXSspXFxiKS9pXSxbW3UsTF0sZl0sWy9wYW5hc29uaWM7KHZpZXJhKS9pLC8obmV0cmFuZ2UpbW1oL2ksLyhuZXR0dilcXC8oXFxkK1xcLltcXHdcXC5dKykvaSwvKG5pbnRlbmRvfHBsYXlzdGF0aW9uKSAoW3dpZHMzNDVwb3J0YWJsZXZ1Y2hdKykvaSwvKHhib3gpOyAreGJveCAoW15cXCk7XSspL2ksL1xcYihqb2xpfHBhbG0pXFxiID8oPzpvcyk/XFwvPyhbXFx3XFwuXSopL2ksLyhtaW50KVtcXC9cXChcXCkgXT8oXFx3KikvaSwvKG1hZ2VpYXx2ZWN0b3JsaW51eClbOyBdL2ksLyhba3hsbl0/dWJ1bnR1fGRlYmlhbnxzdXNlfG9wZW5zdXNlfGdlbnRvb3xhcmNoKD89IGxpbnV4KXxzbGFja3dhcmV8ZmVkb3JhfG1hbmRyaXZhfGNlbnRvc3xwY2xpbnV4b3N8cmVkID9oYXR8emVud2Fsa3xsaW5wdXN8cmFzcGJpYW58cGxhbiA5fG1pbml4fHJpc2Mgb3N8Y29udGlraXxkZWVwaW58bWFuamFyb3xlbGVtZW50YXJ5IG9zfHNhYmF5b258bGluc3BpcmUpKD86IGdudVxcL2xpbnV4KT8oPzogZW50ZXJwcmlzZSk/KD86Wy0gXWxpbnV4KT8oPzotZ251KT9bLVxcLyBdPyg/IWNocm9tfHBhY2thZ2UpKFstXFx3XFwuXSopL2ksLyhodXJkfGxpbnV4KSA/KFtcXHdcXC5dKikvaSwvKGdudSkgPyhbXFx3XFwuXSopL2ksL1xcYihbLWZyZW50b3BjZ2hzXXswLDV9YnNkfGRyYWdvbmZseSlbXFwvIF0/KD8hYW1kfFtpeDM0Nl17MSwyfTg2KShbXFx3XFwuXSopL2ksLyhoYWlrdSkgKFxcdyspL2ldLFt1LGZdLFsvKHN1bm9zKSA/KFtcXHdcXC5cXGRdKikvaV0sW1t1LFwiU29sYXJpc1wiXSxmXSxbLygoPzpvcGVuKT9zb2xhcmlzKVstXFwvIF0/KFtcXHdcXC5dKikvaSwvKGFpeCkgKChcXGQpKD89XFwufFxcKXwgKVtcXHdcXC5dKSovaSwvXFxiKGJlb3N8b3NcXC8yfGFtaWdhb3N8bW9ycGhvc3xvcGVudm1zfGZ1Y2hzaWF8aHAtdXh8c2VyZW5pdHlvcykvaSwvKHVuaXgpID8oW1xcd1xcLl0qKS9pXSxbdSxmXV19O3ZhciBVQVBhcnNlcj1mdW5jdGlvbihpLGUpe2lmKHR5cGVvZiBpPT09dyl7ZT1pO2k9YX1pZighKHRoaXMgaW5zdGFuY2VvZiBVQVBhcnNlcikpe3JldHVybiBuZXcgVUFQYXJzZXIoaSxlKS5nZXRSZXN1bHQoKX12YXIgcj10eXBlb2YgbyE9PWImJm8ubmF2aWdhdG9yP28ubmF2aWdhdG9yOmE7dmFyIG49aXx8KHImJnIudXNlckFnZW50P3IudXNlckFnZW50OnQpO3ZhciB2PXImJnIudXNlckFnZW50RGF0YT9yLnVzZXJBZ2VudERhdGE6YTt2YXIgeD1lP2V4dGVuZChLLGUpOks7dmFyIF89ciYmci51c2VyQWdlbnQ9PW47dGhpcy5nZXRCcm93c2VyPWZ1bmN0aW9uKCl7dmFyIGk9e307aVt1XT1hO2lbZl09YTtyZ3hNYXBwZXIuY2FsbChpLG4seC5icm93c2VyKTtpW2RdPW1ham9yaXplKGlbZl0pO2lmKF8mJnImJnIuYnJhdmUmJnR5cGVvZiByLmJyYXZlLmlzQnJhdmU9PXMpe2lbdV09XCJCcmF2ZVwifXJldHVybiBpfTt0aGlzLmdldENQVT1mdW5jdGlvbigpe3ZhciBpPXt9O2lbaF09YTtyZ3hNYXBwZXIuY2FsbChpLG4seC5jcHUpO3JldHVybiBpfTt0aGlzLmdldERldmljZT1mdW5jdGlvbigpe3ZhciBpPXt9O2lbbV09YTtpW2NdPWE7aVtwXT1hO3JneE1hcHBlci5jYWxsKGksbix4LmRldmljZSk7aWYoXyYmIWlbcF0mJnYmJnYubW9iaWxlKXtpW3BdPWd9aWYoXyYmaVtjXT09XCJNYWNpbnRvc2hcIiYmciYmdHlwZW9mIHIuc3RhbmRhbG9uZSE9PWImJnIubWF4VG91Y2hQb2ludHMmJnIubWF4VG91Y2hQb2ludHM+Mil7aVtjXT1cImlQYWRcIjtpW3BdPWt9cmV0dXJuIGl9O3RoaXMuZ2V0RW5naW5lPWZ1bmN0aW9uKCl7dmFyIGk9e307aVt1XT1hO2lbZl09YTtyZ3hNYXBwZXIuY2FsbChpLG4seC5lbmdpbmUpO3JldHVybiBpfTt0aGlzLmdldE9TPWZ1bmN0aW9uKCl7dmFyIGk9e307aVt1XT1hO2lbZl09YTtyZ3hNYXBwZXIuY2FsbChpLG4seC5vcyk7aWYoXyYmIWlbdV0mJnYmJnYucGxhdGZvcm0hPVwiVW5rbm93blwiKXtpW3VdPXYucGxhdGZvcm0ucmVwbGFjZSgvY2hyb21lIG9zL2ksTCkucmVwbGFjZSgvbWFjb3MvaSxaKX1yZXR1cm4gaX07dGhpcy5nZXRSZXN1bHQ9ZnVuY3Rpb24oKXtyZXR1cm57dWE6dGhpcy5nZXRVQSgpLGJyb3dzZXI6dGhpcy5nZXRCcm93c2VyKCksZW5naW5lOnRoaXMuZ2V0RW5naW5lKCksb3M6dGhpcy5nZXRPUygpLGRldmljZTp0aGlzLmdldERldmljZSgpLGNwdTp0aGlzLmdldENQVSgpfX07dGhpcy5nZXRVQT1mdW5jdGlvbigpe3JldHVybiBufTt0aGlzLnNldFVBPWZ1bmN0aW9uKGkpe249dHlwZW9mIGk9PT1sJiZpLmxlbmd0aD5xP3RyaW0oaSxxKTppO3JldHVybiB0aGlzfTt0aGlzLnNldFVBKG4pO3JldHVybiB0aGlzfTtVQVBhcnNlci5WRVJTSU9OPXI7VUFQYXJzZXIuQlJPV1NFUj1lbnVtZXJpemUoW3UsZixkXSk7VUFQYXJzZXIuQ1BVPWVudW1lcml6ZShbaF0pO1VBUGFyc2VyLkRFVklDRT1lbnVtZXJpemUoW2MsbSxwLHYsZyx4LGssXyx5XSk7VUFQYXJzZXIuRU5HSU5FPVVBUGFyc2VyLk9TPWVudW1lcml6ZShbdSxmXSk7aWYodHlwZW9mIGUhPT1iKXtpZihcIm9iamVjdFwiIT09YiYmaS5leHBvcnRzKXtlPWkuZXhwb3J0cz1VQVBhcnNlcn1lLlVBUGFyc2VyPVVBUGFyc2VyfWVsc2V7aWYodHlwZW9mIGRlZmluZT09PXMmJmRlZmluZS5hbWQpe2RlZmluZSgoZnVuY3Rpb24oKXtyZXR1cm4gVUFQYXJzZXJ9KSl9ZWxzZSBpZih0eXBlb2YgbyE9PWIpe28uVUFQYXJzZXI9VUFQYXJzZXJ9fXZhciBRPXR5cGVvZiBvIT09YiYmKG8ualF1ZXJ5fHxvLlplcHRvKTtpZihRJiYhUS51YSl7dmFyIFk9bmV3IFVBUGFyc2VyO1EudWE9WS5nZXRSZXN1bHQoKTtRLnVhLmdldD1mdW5jdGlvbigpe3JldHVybiBZLmdldFVBKCl9O1EudWEuc2V0PWZ1bmN0aW9uKGkpe1kuc2V0VUEoaSk7dmFyIGU9WS5nZXRSZXN1bHQoKTtmb3IodmFyIG8gaW4gZSl7US51YVtvXT1lW29dfX19fSkodHlwZW9mIHdpbmRvdz09PVwib2JqZWN0XCI/d2luZG93OnRoaXMpfX07dmFyIGU9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhvKXt2YXIgYT1lW29dO2lmKGEhPT11bmRlZmluZWQpe3JldHVybiBhLmV4cG9ydHN9dmFyIHI9ZVtvXT17ZXhwb3J0czp7fX07dmFyIHQ9dHJ1ZTt0cnl7aVtvXS5jYWxsKHIuZXhwb3J0cyxyLHIuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTt0PWZhbHNlfWZpbmFsbHl7aWYodClkZWxldGUgZVtvXX1yZXR1cm4gci5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgbz1fX25jY3dwY2tfcmVxdWlyZV9fKDIyNik7bW9kdWxlLmV4cG9ydHM9b30pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/batcher.js": /*!***********************************************!*\ !*** ./node_modules/next/dist/lib/batcher.js ***! \***********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Batcher\", ({\n enumerable: true,\n get: function() {\n return Batcher;\n }\n}));\nconst _detachedpromise = __webpack_require__(/*! ./detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nclass Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn(cacheKey, Promise.resolve);\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = new _detachedpromise.DetachedPromise();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn(cacheKey, resolve);\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9iYXRjaGVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseUJBQXlCLG1CQUFPLENBQUMsa0ZBQW9CO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMkJBQTJCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2JhdGNoZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCYXRjaGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXRjaGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuL2RldGFjaGVkLXByb21pc2VcIik7XG5jbGFzcyBCYXRjaGVyIHtcbiAgICBjb25zdHJ1Y3RvcihjYWNoZUtleUZuLCAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgdG8gc2NoZWR1bGUgdGhlIHdyYXBwZWQgZnVuY3Rpb24gdG8gYmVcbiAgICAgKiBleGVjdXRlZC4gVGhpcyBkZWZhdWx0cyB0byBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAqIGltbWVkaWF0ZWx5LlxuICAgICAqLyBzY2hlZHVsZXJGbiA9IChmbik9PmZuKCkpe1xuICAgICAgICB0aGlzLmNhY2hlS2V5Rm4gPSBjYWNoZUtleUZuO1xuICAgICAgICB0aGlzLnNjaGVkdWxlckZuID0gc2NoZWR1bGVyRm47XG4gICAgICAgIHRoaXMucGVuZGluZyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmF0Y2hlcihvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLmNhY2hlS2V5Rm4sIG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMuc2NoZWR1bGVyRm4pO1xuICAgIH1cbiAgICAvKipcbiAgICogV3JhcHMgYSBmdW5jdGlvbiBpbiBhIHByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIG9yIHJlamVjdGVkIG9ubHkgb25jZVxuICAgKiBmb3IgYSBnaXZlbiBrZXkuIFRoaXMgd2lsbCBhbGxvdyBtdWx0aXBsZSBjYWxscyB0byB0aGUgZnVuY3Rpb24gdG8gYmVcbiAgICogbWFkZSwgYnV0IG9ubHkgb25lIHdpbGwgYmUgZXhlY3V0ZWQgYXQgYSB0aW1lLiBUaGUgcmVzdWx0IG9mIHRoZSBmaXJzdFxuICAgKiBjYWxsIHdpbGwgYmUgcmV0dXJuZWQgdG8gYWxsIGNhbGxlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBjYWNoZVxuICAgKiBAcGFyYW0gZm4gdGhlIGZ1bmN0aW9uIHRvIHdyYXBcbiAgICogQHJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb25cbiAgICovIGFzeW5jIGJhdGNoKGtleSwgZm4pIHtcbiAgICAgICAgY29uc3QgY2FjaGVLZXkgPSB0aGlzLmNhY2hlS2V5Rm4gPyBhd2FpdCB0aGlzLmNhY2hlS2V5Rm4oa2V5KSA6IGtleTtcbiAgICAgICAgaWYgKGNhY2hlS2V5ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oY2FjaGVLZXksIFByb21pc2UucmVzb2x2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGVuZGluZyA9IHRoaXMucGVuZGluZy5nZXQoY2FjaGVLZXkpO1xuICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuIHBlbmRpbmc7XG4gICAgICAgIGNvbnN0IHsgcHJvbWlzZSwgcmVzb2x2ZSwgcmVqZWN0IH0gPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nLnNldChjYWNoZUtleSwgcHJvbWlzZSk7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVyRm4oYXN5bmMgKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm4oY2FjaGVLZXksIHJlc29sdmUpO1xuICAgICAgICAgICAgICAgIC8vIFJlc29sdmluZyBhIHByb21pc2UgbXVsdGlwbGUgdGltZXMgaXMgYSBuby1vcCwgc28gd2UgY2FuIHNhZmVseVxuICAgICAgICAgICAgICAgIC8vIHJlc29sdmUgYWxsIHBlbmRpbmcgcHJvbWlzZXMgd2l0aCB0aGUgc2FtZSByZXN1bHQuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/batcher.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/constants.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/lib/constants.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n HTML_CONTENT_TYPE_HEADER: function() {\n return HTML_CONTENT_TYPE_HEADER;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n JSON_CONTENT_TYPE_HEADER: function() {\n return JSON_CONTENT_TYPE_HEADER;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() {\n return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n TEXT_PLAIN_CONTENT_TYPE_HEADER: function() {\n return TEXT_PLAIN_CONTENT_TYPE_HEADER;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain';\nconst HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8';\nconst JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8';\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\nconst PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate';\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated';\nconst RSC_PREFETCH_SUFFIX = '.prefetch.rsc';\nconst RSC_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\nconst NEXT_DATA_SUFFIX = '.json';\nconst NEXT_META_SUFFIX = '.meta';\nconst NEXT_BODY_SUFFIX = '.body';\nconst NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\nconst PAGES_DIR_ALIAS = 'private-next-pages';\nconst DOT_NEXT_ALIAS = 'private-dot-next';\nconst ROOT_DIR_ALIAS = 'private-next-root-dir';\nconst APP_DIR_ALIAS = 'private-next-app-dir';\nconst RSC_MOD_REF_PROXY_ALIAS = 'next/dist/build/webpack/loaders/next-flight-loader/module-proxy';\nconst RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate';\nconst RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import';\nconst RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption';\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper';\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?';\nconst GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?';\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\\n' + 'Please use `revalidate` instead.';\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n 'app',\n 'pages',\n 'components',\n 'lib',\n 'src'\n];\nconst SERVER_RUNTIME = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs'\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */ reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */ edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__'\n};\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBeURMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsNkNBQTZDO0FBQzdDLG9EQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0Msb0JBQW9CO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFDVElPTl9TVUZGSVg6IG51bGwsXG4gICAgQVBQX0RJUl9BTElBUzogbnVsbCxcbiAgICBDQUNIRV9PTkVfWUVBUjogbnVsbCxcbiAgICBET1RfTkVYVF9BTElBUzogbnVsbCxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBudWxsLFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IG51bGwsXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVI6IG51bGwsXG4gICAgSU5GSU5JVEVfQ0FDSEU6IG51bGwsXG4gICAgSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUU6IG51bGwsXG4gICAgSlNPTl9DT05URU5UX1RZUEVfSEVBREVSOiBudWxsLFxuICAgIE1BVENIRURfUEFUSF9IRUFERVI6IG51bGwsXG4gICAgTUlERExFV0FSRV9GSUxFTkFNRTogbnVsbCxcbiAgICBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDogbnVsbCxcbiAgICBORVhUX0JPRFlfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg6IG51bGwsXG4gICAgTkVYVF9EQVRBX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBudWxsLFxuICAgIE5FWFRfTUVUQV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVg6IG51bGwsXG4gICAgTkVYVF9SRVNVTUVfSEVBREVSOiBudWxsLFxuICAgIE5PTl9TVEFOREFSRF9OT0RFX0VOVjogbnVsbCxcbiAgICBQQUdFU19ESVJfQUxJQVM6IG51bGwsXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSOiBudWxsLFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjogbnVsbCxcbiAgICBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q6IG51bGwsXG4gICAgUk9PVF9ESVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9QUk9YWV9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTOiBudWxsLFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19EWU5BTUlDX0lNUE9SVF9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTOiBudWxsLFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TVUZGSVg6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjogbnVsbCxcbiAgICBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDogbnVsbCxcbiAgICBTRVJWRVJfUlVOVElNRTogbnVsbCxcbiAgICBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SOiBudWxsLFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogbnVsbCxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IG51bGwsXG4gICAgVEVYVF9QTEFJTl9DT05URU5UX1RZUEVfSEVBREVSOiBudWxsLFxuICAgIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SOiBudWxsLFxuICAgIFdFQlBBQ0tfTEFZRVJTOiBudWxsLFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBQ1RJT05fU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFDVElPTl9TVUZGSVg7XG4gICAgfSxcbiAgICBBUFBfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFQUF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBDQUNIRV9PTkVfWUVBUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDQUNIRV9PTkVfWUVBUjtcbiAgICB9LFxuICAgIERPVF9ORVhUX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIERPVF9ORVhUX0FMSUFTO1xuICAgIH0sXG4gICAgRVNMSU5UX0RFRkFVTFRfRElSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFU0xJTlRfREVGQVVMVF9ESVJTO1xuICAgIH0sXG4gICAgR1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTUF9OT19SRVRVUk5FRF9WQUxVRTtcbiAgICB9LFxuICAgIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I7XG4gICAgfSxcbiAgICBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTU1BfTk9fUkVUVVJORURfVkFMVUU7XG4gICAgfSxcbiAgICBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSFRNTF9DT05URU5UX1RZUEVfSEVBREVSO1xuICAgIH0sXG4gICAgSU5GSU5JVEVfQ0FDSEU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSU5GSU5JVEVfQ0FDSEU7XG4gICAgfSxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTtcbiAgICB9LFxuICAgIEpTT05fQ09OVEVOVF9UWVBFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBKU09OX0NPTlRFTlRfVFlQRV9IRUFERVI7XG4gICAgfSxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1BVENIRURfUEFUSF9IRUFERVI7XG4gICAgfSxcbiAgICBNSURETEVXQVJFX0ZJTEVOQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1JRERMRVdBUkVfRklMRU5BTUU7XG4gICAgfSxcbiAgICBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDtcbiAgICB9LFxuICAgIE5FWFRfQk9EWV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9CT0RZX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUztcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfREFUQV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9EQVRBX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfTUVUQV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9NRVRBX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYO1xuICAgIH0sXG4gICAgTkVYVF9SRVNVTUVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVTVU1FX0hFQURFUjtcbiAgICB9LFxuICAgIE5PTl9TVEFOREFSRF9OT0RFX0VOVjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOT05fU1RBTkRBUkRfTk9ERV9FTlY7XG4gICAgfSxcbiAgICBQQUdFU19ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUEFHRVNfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjtcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI7XG4gICAgfSxcbiAgICBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgUk9PVF9ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUk9PVF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX1BST1hZX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX1BSRUZFVENIX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfUFJFRkVUQ0hfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg7XG4gICAgfSxcbiAgICBSU0NfU0VHTUVOVF9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NFR01FTlRfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfU1VGRklYO1xuICAgIH0sXG4gICAgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SO1xuICAgIH0sXG4gICAgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDtcbiAgICB9LFxuICAgIFNFUlZFUl9SVU5USU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9SVU5USU1FO1xuICAgIH0sXG4gICAgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SO1xuICAgIH0sXG4gICAgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDtcbiAgICB9LFxuICAgIFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I7XG4gICAgfSxcbiAgICBURVhUX1BMQUlOX0NPTlRFTlRfVFlQRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVEVYVF9QTEFJTl9DT05URU5UX1RZUEVfSEVBREVSO1xuICAgIH0sXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I7XG4gICAgfSxcbiAgICBXRUJQQUNLX0xBWUVSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX0xBWUVSUztcbiAgICB9LFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM7XG4gICAgfVxufSk7XG5jb25zdCBURVhUX1BMQUlOX0NPTlRFTlRfVFlQRV9IRUFERVIgPSAndGV4dC9wbGFpbic7XG5jb25zdCBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIgPSAndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04JztcbmNvbnN0IEpTT05fQ09OVEVOVF9UWVBFX0hFQURFUiA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbmNvbnN0IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYID0gJ254dFAnO1xuY29uc3QgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCA9ICdueHRJJztcbmNvbnN0IE1BVENIRURfUEFUSF9IRUFERVIgPSAneC1tYXRjaGVkLXBhdGgnO1xuY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSID0gJ3gtcHJlcmVuZGVyLXJldmFsaWRhdGUnO1xuY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSID0gJ3gtcHJlcmVuZGVyLXJldmFsaWRhdGUtaWYtZ2VuZXJhdGVkJztcbmNvbnN0IFJTQ19QUkVGRVRDSF9TVUZGSVggPSAnLnByZWZldGNoLnJzYyc7XG5jb25zdCBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWCA9ICcuc2VnbWVudHMnO1xuY29uc3QgUlNDX1NFR01FTlRfU1VGRklYID0gJy5zZWdtZW50LnJzYyc7XG5jb25zdCBSU0NfU1VGRklYID0gJy5yc2MnO1xuY29uc3QgQUNUSU9OX1NVRkZJWCA9ICcuYWN0aW9uJztcbmNvbnN0IE5FWFRfREFUQV9TVUZGSVggPSAnLmpzb24nO1xuY29uc3QgTkVYVF9NRVRBX1NVRkZJWCA9ICcubWV0YSc7XG5jb25zdCBORVhUX0JPRFlfU1VGRklYID0gJy5ib2R5JztcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHU19IRUFERVIgPSAneC1uZXh0LWNhY2hlLXRhZ3MnO1xuY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUiA9ICd4LW5leHQtcmV2YWxpZGF0ZWQtdGFncyc7XG5jb25zdCBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUiA9ICd4LW5leHQtcmV2YWxpZGF0ZS10YWctdG9rZW4nO1xuY29uc3QgTkVYVF9SRVNVTUVfSEVBREVSID0gJ25leHQtcmVzdW1lJztcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUyA9IDEyODtcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEggPSAyNTY7XG5jb25zdCBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEggPSAxMDI0O1xuY29uc3QgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQgPSAnX05fVF8nO1xuY29uc3QgQ0FDSEVfT05FX1lFQVIgPSAzMTUzNjAwMDtcbmNvbnN0IElORklOSVRFX0NBQ0hFID0gMHhmZmZmZmZmZTtcbmNvbnN0IE1JRERMRVdBUkVfRklMRU5BTUUgPSAnbWlkZGxld2FyZSc7XG5jb25zdCBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUCA9IGAoPzpzcmMvKT8ke01JRERMRVdBUkVfRklMRU5BTUV9YDtcbmNvbnN0IElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FID0gJ2luc3RydW1lbnRhdGlvbic7XG5jb25zdCBQQUdFU19ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXBhZ2VzJztcbmNvbnN0IERPVF9ORVhUX0FMSUFTID0gJ3ByaXZhdGUtZG90LW5leHQnO1xuY29uc3QgUk9PVF9ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJvb3QtZGlyJztcbmNvbnN0IEFQUF9ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LWFwcC1kaXInO1xuY29uc3QgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVMgPSAnbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5JztcbmNvbnN0IFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tdmFsaWRhdGUnO1xuY29uc3QgUlNDX0FDVElPTl9QUk9YWV9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLXNlcnZlci1yZWZlcmVuY2UnO1xuY29uc3QgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1jYWNoZS13cmFwcGVyJztcbmNvbnN0IFJTQ19EWU5BTUlDX0lNUE9SVF9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtdHJhY2stZHluYW1pYy1pbXBvcnQnO1xuY29uc3QgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWVuY3J5cHRpb24nO1xuY29uc3QgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1jbGllbnQtd3JhcHBlcic7XG5jb25zdCBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgaGF2ZSBhICdfbmV4dCcgZm9sZGVyIGluc2lkZSBvZiB5b3VyIHB1YmxpYyBmb2xkZXIuIFRoaXMgY29uZmxpY3RzIHdpdGggdGhlIGludGVybmFsICcvX25leHQnIHJvdXRlLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wdWJsaWMtbmV4dC1mb2xkZXItY29uZmxpY3RgO1xuY29uc3QgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTdGF0aWNQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSB5b3VyIGdldEluaXRpYWxQcm9wc2A7XG5jb25zdCBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldEluaXRpYWxQcm9wcyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gUGxlYXNlIHJlbW92ZSBnZXRJbml0aWFsUHJvcHMuYDtcbmNvbnN0IFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldFN0YXRpY1Byb3BzIG9yIGdldFN0YXRpY1BhdGhzIHdpdGggZ2V0U2VydmVyU2lkZVByb3BzLiBUbyB1c2UgU1NHLCBwbGVhc2UgcmVtb3ZlIGdldFNlcnZlclNpZGVQcm9wc2A7XG5jb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1IgPSBgY2FuIG5vdCBoYXZlIGdldEluaXRpYWxQcm9wcy9nZXRTZXJ2ZXJTaWRlUHJvcHMsIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLzQwNC1nZXQtaW5pdGlhbC1wcm9wc2A7XG5jb25zdCBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SID0gYHBhZ2VzIHdpdGggXFxgZ2V0U2VydmVyU2lkZVByb3BzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1leHBvcnRgO1xuY29uc3QgR1NQX05PX1JFVFVSTkVEX1ZBTFVFID0gJ1lvdXIgYGdldFN0YXRpY1Byb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gPyc7XG5jb25zdCBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFID0gJ1lvdXIgYGdldFNlcnZlclNpZGVQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD8nO1xuY29uc3QgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1IgPSAnVGhlIGB1bnN0YWJsZV9yZXZhbGlkYXRlYCBwcm9wZXJ0eSBpcyBhdmFpbGFibGUgZm9yIGdlbmVyYWwgdXNlLlxcbicgKyAnUGxlYXNlIHVzZSBgcmV2YWxpZGF0ZWAgaW5zdGVhZC4nO1xuY29uc3QgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SID0gYGNhbiBub3QgYmUgYXR0YWNoZWQgdG8gYSBwYWdlJ3MgY29tcG9uZW50IGFuZCBtdXN0IGJlIGV4cG9ydGVkIGZyb20gdGhlIHBhZ2UuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1jb21wb25lbnQtbWVtYmVyYDtcbmNvbnN0IE5PTl9TVEFOREFSRF9OT0RFX0VOViA9IGBZb3UgYXJlIHVzaW5nIGEgbm9uLXN0YW5kYXJkIFwiTk9ERV9FTlZcIiB2YWx1ZSBpbiB5b3VyIGVudmlyb25tZW50LiBUaGlzIGNyZWF0ZXMgaW5jb25zaXN0ZW5jaWVzIGluIHRoZSBwcm9qZWN0IGFuZCBpcyBzdHJvbmdseSBhZHZpc2VkIGFnYWluc3QuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm9uLXN0YW5kYXJkLW5vZGUtZW52YDtcbmNvbnN0IFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1IgPSBgUGFnZXMgd2l0aCBcXGBmYWxsYmFja1xcYCBlbmFibGVkIGluIFxcYGdldFN0YXRpY1BhdGhzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3NnLWZhbGxiYWNrLXRydWUtZXhwb3J0YDtcbmNvbnN0IEVTTElOVF9ERUZBVUxUX0RJUlMgPSBbXG4gICAgJ2FwcCcsXG4gICAgJ3BhZ2VzJyxcbiAgICAnY29tcG9uZW50cycsXG4gICAgJ2xpYicsXG4gICAgJ3NyYydcbl07XG5jb25zdCBTRVJWRVJfUlVOVElNRSA9IHtcbiAgICBlZGdlOiAnZWRnZScsXG4gICAgZXhwZXJpbWVudGFsRWRnZTogJ2V4cGVyaW1lbnRhbC1lZGdlJyxcbiAgICBub2RlanM6ICdub2RlanMnXG59O1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHdlYnBhY2sgbGF5ZXJzLiBUaGVzZSBsYXllcnMgYXJlIHRoZSBwcmltaXRpdmVzIGZvciB0aGVcbiAqIHdlYnBhY2sgY2h1bmtzLlxuICovIGNvbnN0IFdFQlBBQ0tfTEFZRVJTX05BTUVTID0ge1xuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBzaGFyZWQgY29kZSBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlciBidW5kbGVzLlxuICAgKi8gc2hhcmVkOiAnc2hhcmVkJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBzZXJ2ZXItb25seSBydW50aW1lIGFuZCBwaWNraW5nIHVwIGByZWFjdC1zZXJ2ZXJgIGV4cG9ydCBjb25kaXRpb25zLlxuICAgKiBJbmNsdWRpbmcgYXBwIHJvdXRlciBSU0MgcGFnZXMgYW5kIGFwcCByb3V0ZXIgY3VzdG9tIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzLlxuICAgKi8gcmVhY3RTZXJ2ZXJDb21wb25lbnRzOiAncnNjJyxcbiAgICAvKipcbiAgICogU2VydmVyIFNpZGUgUmVuZGVyaW5nIGxheWVyIGZvciBhcHAgKHNzcikuXG4gICAqLyBzZXJ2ZXJTaWRlUmVuZGVyaW5nOiAnc3NyJyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgYWN0aW9ucy5cbiAgICovIGFjdGlvbkJyb3dzZXI6ICdhY3Rpb24tYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBOb2RlLmpzIGJ1bmRsZSBsYXllciBmb3IgdGhlIEFQSSByb3V0ZXMuXG4gICAqLyBhcGlOb2RlOiAnYXBpLW5vZGUnLFxuICAgIC8qKlxuICAgKiBUaGUgRWRnZSBMaXRlIGJ1bmRsZSBsYXllciBmb3IgdGhlIEFQSSByb3V0ZXMuXG4gICAqLyBhcGlFZGdlOiAnYXBpLWVkZ2UnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBtaWRkbGV3YXJlIGNvZGUuXG4gICAqLyBtaWRkbGV3YXJlOiAnbWlkZGxld2FyZScsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIGluc3RydW1lbnRhdGlvbiBob29rcy5cbiAgICovIGluc3RydW1lbnQ6ICdpbnN0cnVtZW50JyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBhc3NldHMgb24gdGhlIGVkZ2UuXG4gICAqLyBlZGdlQXNzZXQ6ICdlZGdlLWFzc2V0JyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgQXBwIGRpcmVjdG9yeS5cbiAgICovIGFwcFBhZ2VzQnJvd3NlcjogJ2FwcC1wYWdlcy1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgUGFnZXMgZGlyZWN0b3J5LlxuICAgKi8gcGFnZXNEaXJCcm93c2VyOiAncGFnZXMtZGlyLWJyb3dzZXInLFxuICAgIC8qKlxuICAgKiBUaGUgRWRnZSBMaXRlIGJ1bmRsZSBsYXllciBmb3IgUGFnZXMgZGlyZWN0b3J5LlxuICAgKi8gcGFnZXNEaXJFZGdlOiAncGFnZXMtZGlyLWVkZ2UnLFxuICAgIC8qKlxuICAgKiBUaGUgTm9kZS5qcyBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyTm9kZTogJ3BhZ2VzLWRpci1ub2RlJ1xufTtcbmNvbnN0IFdFQlBBQ0tfTEFZRVJTID0ge1xuICAgIC4uLldFQlBBQ0tfTEFZRVJTX05BTUVTLFxuICAgIEdST1VQOiB7XG4gICAgICAgIGJ1aWx0aW5SZWFjdDogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBzZXJ2ZXJPbmx5OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuaW5zdHJ1bWVudCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLm1pZGRsZXdhcmVcbiAgICAgICAgXSxcbiAgICAgICAgbmV1dHJhbFRhcmdldDogW1xuICAgICAgICAgICAgLy8gcGFnZXMgYXBpXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcGlOb2RlLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBpRWRnZVxuICAgICAgICBdLFxuICAgICAgICBjbGllbnRPbmx5OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyXG4gICAgICAgIF0sXG4gICAgICAgIGJ1bmRsZWQ6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2hhcmVkLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuaW5zdHJ1bWVudCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLm1pZGRsZXdhcmVcbiAgICAgICAgXSxcbiAgICAgICAgYXBwUGFnZXM6IFtcbiAgICAgICAgICAgIC8vIGFwcCByb3V0ZXIgcGFnZXMgYW5kIGxheW91dHNcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNlcnZlclNpZGVSZW5kZXJpbmcsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBQYWdlc0Jyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyXG4gICAgICAgIF1cbiAgICB9XG59O1xuY29uc3QgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTID0ge1xuICAgIGVkZ2VTU1JFbnRyeTogJ19fbmV4dF9lZGdlX3Nzcl9lbnRyeV9fJyxcbiAgICBtZXRhZGF0YTogJ19fbmV4dF9tZXRhZGF0YV9fJyxcbiAgICBtZXRhZGF0YVJvdXRlOiAnX19uZXh0X21ldGFkYXRhX3JvdXRlX18nLFxuICAgIG1ldGFkYXRhSW1hZ2VNZXRhOiAnX19uZXh0X21ldGFkYXRhX2ltYWdlX21ldGFfXydcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/constants.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/detached-promise.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/lib/detached-promise.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * A `Promise.withResolvers` implementation that exposes the `resolve` and\n * `reject` functions on a `Promise`.\n *\n * @see https://tc39.es/proposal-promise-with-resolvers/\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DetachedPromise\", ({\n enumerable: true,\n get: function() {\n return DetachedPromise;\n }\n}));\nclass DetachedPromise {\n constructor(){\n let resolve;\n let reject;\n // Create the promise and assign the resolvers to the object.\n this.promise = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n // We know that resolvers is defined because the Promise constructor runs\n // synchronously.\n this.resolve = resolve;\n this.reject = reject;\n }\n}\n\n//# sourceMappingURL=detached-promise.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBgUHJvbWlzZS53aXRoUmVzb2x2ZXJzYCBpbXBsZW1lbnRhdGlvbiB0aGF0IGV4cG9zZXMgdGhlIGByZXNvbHZlYCBhbmRcbiAqIGByZWplY3RgIGZ1bmN0aW9ucyBvbiBhIGBQcm9taXNlYC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1wcm9taXNlLXdpdGgtcmVzb2x2ZXJzL1xuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGV0YWNoZWRQcm9taXNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBEZXRhY2hlZFByb21pc2U7XG4gICAgfVxufSk7XG5jbGFzcyBEZXRhY2hlZFByb21pc2Uge1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIGxldCByZXNvbHZlO1xuICAgICAgICBsZXQgcmVqZWN0O1xuICAgICAgICAvLyBDcmVhdGUgdGhlIHByb21pc2UgYW5kIGFzc2lnbiB0aGUgcmVzb2x2ZXJzIHRvIHRoZSBvYmplY3QuXG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgICAgIHJlc29sdmUgPSByZXM7XG4gICAgICAgICAgICByZWplY3QgPSByZWo7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBXZSBrbm93IHRoYXQgcmVzb2x2ZXJzIGlzIGRlZmluZWQgYmVjYXVzZSB0aGUgUHJvbWlzZSBjb25zdHJ1Y3RvciBydW5zXG4gICAgICAgIC8vIHN5bmNocm9ub3VzbHkuXG4gICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIHRoaXMucmVqZWN0ID0gcmVqZWN0O1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV0YWNoZWQtcHJvbWlzZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/detached-promise.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js": /*!*************************************************************!*\ !*** ./node_modules/next/dist/lib/error-telemetry-utils.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createDigestWithErrorCode: function() {\n return createDigestWithErrorCode;\n },\n extractNextErrorCode: function() {\n return extractNextErrorCode;\n }\n});\nconst ERROR_CODE_DELIMITER = '@';\nconst createDigestWithErrorCode = (thrownValue, originalDigest)=>{\n if (typeof thrownValue === 'object' && thrownValue !== null && '__NEXT_ERROR_CODE' in thrownValue) {\n return `${originalDigest}${ERROR_CODE_DELIMITER}${thrownValue.__NEXT_ERROR_CODE}`;\n }\n return originalDigest;\n};\nconst extractNextErrorCode = (error)=>{\n if (typeof error === 'object' && error !== null && '__NEXT_ERROR_CODE' in error && typeof error.__NEXT_ERROR_CODE === 'string') {\n return error.__NEXT_ERROR_CODE;\n }\n if (typeof error === 'object' && error !== null && 'digest' in error && typeof error.digest === 'string') {\n const segments = error.digest.split(ERROR_CODE_DELIMITER);\n const errorCode = segments.find((segment)=>segment.startsWith('E'));\n return errorCode;\n }\n return undefined;\n};\n\n//# sourceMappingURL=error-telemetry-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9lcnJvci10ZWxlbWV0cnktdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEI7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9lcnJvci10ZWxlbWV0cnktdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVEaWdlc3RXaXRoRXJyb3JDb2RlOiBudWxsLFxuICAgIGV4dHJhY3ROZXh0RXJyb3JDb2RlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNyZWF0ZURpZ2VzdFdpdGhFcnJvckNvZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGlnZXN0V2l0aEVycm9yQ29kZTtcbiAgICB9LFxuICAgIGV4dHJhY3ROZXh0RXJyb3JDb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3ROZXh0RXJyb3JDb2RlO1xuICAgIH1cbn0pO1xuY29uc3QgRVJST1JfQ09ERV9ERUxJTUlURVIgPSAnQCc7XG5jb25zdCBjcmVhdGVEaWdlc3RXaXRoRXJyb3JDb2RlID0gKHRocm93blZhbHVlLCBvcmlnaW5hbERpZ2VzdCk9PntcbiAgICBpZiAodHlwZW9mIHRocm93blZhbHVlID09PSAnb2JqZWN0JyAmJiB0aHJvd25WYWx1ZSAhPT0gbnVsbCAmJiAnX19ORVhUX0VSUk9SX0NPREUnIGluIHRocm93blZhbHVlKSB7XG4gICAgICAgIHJldHVybiBgJHtvcmlnaW5hbERpZ2VzdH0ke0VSUk9SX0NPREVfREVMSU1JVEVSfSR7dGhyb3duVmFsdWUuX19ORVhUX0VSUk9SX0NPREV9YDtcbiAgICB9XG4gICAgcmV0dXJuIG9yaWdpbmFsRGlnZXN0O1xufTtcbmNvbnN0IGV4dHJhY3ROZXh0RXJyb3JDb2RlID0gKGVycm9yKT0+e1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmIGVycm9yICE9PSBudWxsICYmICdfX05FWFRfRVJST1JfQ09ERScgaW4gZXJyb3IgJiYgdHlwZW9mIGVycm9yLl9fTkVYVF9FUlJPUl9DT0RFID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gZXJyb3IuX19ORVhUX0VSUk9SX0NPREU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmIGVycm9yICE9PSBudWxsICYmICdkaWdlc3QnIGluIGVycm9yICYmIHR5cGVvZiBlcnJvci5kaWdlc3QgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHNlZ21lbnRzID0gZXJyb3IuZGlnZXN0LnNwbGl0KEVSUk9SX0NPREVfREVMSU1JVEVSKTtcbiAgICAgICAgY29uc3QgZXJyb3JDb2RlID0gc2VnbWVudHMuZmluZCgoc2VnbWVudCk9PnNlZ21lbnQuc3RhcnRzV2l0aCgnRScpKTtcbiAgICAgICAgcmV0dXJuIGVycm9yQ29kZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLXRlbGVtZXRyeS11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/fallback.js": /*!************************************************!*\ !*** ./node_modules/next/dist/lib/fallback.js ***! \************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Describes the different fallback modes that a given page can have.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n FallbackMode: function() {\n return FallbackMode;\n },\n fallbackModeToFallbackField: function() {\n return fallbackModeToFallbackField;\n },\n parseFallbackField: function() {\n return parseFallbackField;\n },\n parseStaticPathsResult: function() {\n return parseStaticPathsResult;\n }\n});\nvar FallbackMode = /*#__PURE__*/ function(FallbackMode) {\n /**\n * A BLOCKING_STATIC_RENDER fallback will block the request until the page is\n * generated. No fallback page will be rendered, and users will have to wait\n * to render the page.\n */ FallbackMode[\"BLOCKING_STATIC_RENDER\"] = \"BLOCKING_STATIC_RENDER\";\n /**\n * When set to PRERENDER, a fallback page will be sent to users in place of\n * forcing them to wait for the page to be generated. This allows the user to\n * see a rendered page earlier.\n */ FallbackMode[\"PRERENDER\"] = \"PRERENDER\";\n /**\n * When set to NOT_FOUND, pages that are not already prerendered will result\n * in a not found response.\n */ FallbackMode[\"NOT_FOUND\"] = \"NOT_FOUND\";\n return FallbackMode;\n}({});\nfunction parseFallbackField(fallbackField) {\n if (typeof fallbackField === 'string') {\n return \"PRERENDER\";\n } else if (fallbackField === null) {\n return \"BLOCKING_STATIC_RENDER\";\n } else if (fallbackField === false) {\n return \"NOT_FOUND\";\n } else if (fallbackField === undefined) {\n return undefined;\n } else {\n throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), \"__NEXT_ERROR_CODE\", {\n value: \"E285\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction fallbackModeToFallbackField(fallback, page) {\n switch(fallback){\n case \"BLOCKING_STATIC_RENDER\":\n return null;\n case \"NOT_FOUND\":\n return false;\n case \"PRERENDER\":\n if (!page) {\n throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is \"${fallback}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E422\",\n enumerable: false,\n configurable: true\n });\n }\n return page;\n default:\n throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), \"__NEXT_ERROR_CODE\", {\n value: \"E254\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction parseStaticPathsResult(result) {\n if (result === true) {\n return \"PRERENDER\";\n } else if (result === 'blocking') {\n return \"BLOCKING_STATIC_RENDER\";\n } else {\n return \"NOT_FOUND\";\n }\n}\n\n//# sourceMappingURL=fallback.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTiwwRUFBMEUsY0FBYztBQUN4RjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwSEFBMEgsU0FBUztBQUNuSTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsNEVBQTRFLFNBQVM7QUFDckY7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2ZhbGxiYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVzY3JpYmVzIHRoZSBkaWZmZXJlbnQgZmFsbGJhY2sgbW9kZXMgdGhhdCBhIGdpdmVuIHBhZ2UgY2FuIGhhdmUuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBGYWxsYmFja01vZGU6IG51bGwsXG4gICAgZmFsbGJhY2tNb2RlVG9GYWxsYmFja0ZpZWxkOiBudWxsLFxuICAgIHBhcnNlRmFsbGJhY2tGaWVsZDogbnVsbCxcbiAgICBwYXJzZVN0YXRpY1BhdGhzUmVzdWx0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEZhbGxiYWNrTW9kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBGYWxsYmFja01vZGU7XG4gICAgfSxcbiAgICBmYWxsYmFja01vZGVUb0ZhbGxiYWNrRmllbGQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZmFsbGJhY2tNb2RlVG9GYWxsYmFja0ZpZWxkO1xuICAgIH0sXG4gICAgcGFyc2VGYWxsYmFja0ZpZWxkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRmFsbGJhY2tGaWVsZDtcbiAgICB9LFxuICAgIHBhcnNlU3RhdGljUGF0aHNSZXN1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGFyc2VTdGF0aWNQYXRoc1Jlc3VsdDtcbiAgICB9XG59KTtcbnZhciBGYWxsYmFja01vZGUgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEZhbGxiYWNrTW9kZSkge1xuICAgIC8qKlxuICAgKiBBIEJMT0NLSU5HX1NUQVRJQ19SRU5ERVIgZmFsbGJhY2sgd2lsbCBibG9jayB0aGUgcmVxdWVzdCB1bnRpbCB0aGUgcGFnZSBpc1xuICAgKiBnZW5lcmF0ZWQuIE5vIGZhbGxiYWNrIHBhZ2Ugd2lsbCBiZSByZW5kZXJlZCwgYW5kIHVzZXJzIHdpbGwgaGF2ZSB0byB3YWl0XG4gICAqIHRvIHJlbmRlciB0aGUgcGFnZS5cbiAgICovIEZhbGxiYWNrTW9kZVtcIkJMT0NLSU5HX1NUQVRJQ19SRU5ERVJcIl0gPSBcIkJMT0NLSU5HX1NUQVRJQ19SRU5ERVJcIjtcbiAgICAvKipcbiAgICogV2hlbiBzZXQgdG8gUFJFUkVOREVSLCBhIGZhbGxiYWNrIHBhZ2Ugd2lsbCBiZSBzZW50IHRvIHVzZXJzIGluIHBsYWNlIG9mXG4gICAqIGZvcmNpbmcgdGhlbSB0byB3YWl0IGZvciB0aGUgcGFnZSB0byBiZSBnZW5lcmF0ZWQuIFRoaXMgYWxsb3dzIHRoZSB1c2VyIHRvXG4gICAqIHNlZSBhIHJlbmRlcmVkIHBhZ2UgZWFybGllci5cbiAgICovIEZhbGxiYWNrTW9kZVtcIlBSRVJFTkRFUlwiXSA9IFwiUFJFUkVOREVSXCI7XG4gICAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIE5PVF9GT1VORCwgcGFnZXMgdGhhdCBhcmUgbm90IGFscmVhZHkgcHJlcmVuZGVyZWQgd2lsbCByZXN1bHRcbiAgICogaW4gYSBub3QgZm91bmQgcmVzcG9uc2UuXG4gICAqLyBGYWxsYmFja01vZGVbXCJOT1RfRk9VTkRcIl0gPSBcIk5PVF9GT1VORFwiO1xuICAgIHJldHVybiBGYWxsYmFja01vZGU7XG59KHt9KTtcbmZ1bmN0aW9uIHBhcnNlRmFsbGJhY2tGaWVsZChmYWxsYmFja0ZpZWxkKSB7XG4gICAgaWYgKHR5cGVvZiBmYWxsYmFja0ZpZWxkID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gXCJQUkVSRU5ERVJcIjtcbiAgICB9IGVsc2UgaWYgKGZhbGxiYWNrRmllbGQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFwiQkxPQ0tJTkdfU1RBVElDX1JFTkRFUlwiO1xuICAgIH0gZWxzZSBpZiAoZmFsbGJhY2tGaWVsZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIFwiTk9UX0ZPVU5EXCI7XG4gICAgfSBlbHNlIGlmIChmYWxsYmFja0ZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhbGlkIGZhbGxiYWNrIG9wdGlvbjogJHtmYWxsYmFja0ZpZWxkfS4gRmFsbGJhY2sgb3B0aW9uIG11c3QgYmUgYSBzdHJpbmcsIG51bGwsIHVuZGVmaW5lZCwgb3IgZmFsc2UuYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTI4NVwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuZnVuY3Rpb24gZmFsbGJhY2tNb2RlVG9GYWxsYmFja0ZpZWxkKGZhbGxiYWNrLCBwYWdlKSB7XG4gICAgc3dpdGNoKGZhbGxiYWNrKXtcbiAgICAgICAgY2FzZSBcIkJMT0NLSU5HX1NUQVRJQ19SRU5ERVJcIjpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFwiTk9UX0ZPVU5EXCI6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNhc2UgXCJQUkVSRU5ERVJcIjpcbiAgICAgICAgICAgIGlmICghcGFnZSkge1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFyaWFudDogZXhwZWN0ZWQgYSBwYWdlIHRvIGJlIHByb3ZpZGVkIHdoZW4gZmFsbGJhY2sgbW9kZSBpcyBcIiR7ZmFsbGJhY2t9XCJgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU0MjJcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBhZ2U7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhbGlkIGZhbGxiYWNrIG1vZGU6ICR7ZmFsbGJhY2t9YCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUyNTRcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHBhcnNlU3RhdGljUGF0aHNSZXN1bHQocmVzdWx0KSB7XG4gICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gXCJQUkVSRU5ERVJcIjtcbiAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gJ2Jsb2NraW5nJykge1xuICAgICAgICByZXR1cm4gXCJCTE9DS0lOR19TVEFUSUNfUkVOREVSXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFwiTk9UX0ZPVU5EXCI7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mYWxsYmFjay5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/fallback.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/format-server-error.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/lib/format-server-error.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatServerError: function() {\n return formatServerError;\n },\n getStackWithoutErrorMessage: function() {\n return getStackWithoutErrorMessage;\n }\n});\nconst invalidServerComponentReactHooks = [\n 'useDeferredValue',\n 'useEffect',\n 'useImperativeHandle',\n 'useInsertionEffect',\n 'useLayoutEffect',\n 'useReducer',\n 'useRef',\n 'useState',\n 'useSyncExternalStore',\n 'useTransition',\n 'experimental_useOptimistic',\n 'useOptimistic'\n];\nfunction setMessage(error, message) {\n error.message = message;\n if (error.stack) {\n const lines = error.stack.split('\\n');\n lines[0] = message;\n error.stack = lines.join('\\n');\n }\n}\nfunction getStackWithoutErrorMessage(error) {\n const stack = error.stack;\n if (!stack) return '';\n return stack.replace(/^[^\\n]*\\n/, '');\n}\nfunction formatServerError(error) {\n if (typeof (error == null ? void 0 : error.message) !== 'string') return;\n if (error.message.includes('Class extends value undefined is not a constructor or null')) {\n const addedMessage = 'This might be caused by a React Class Component being rendered in a Server Component, React Class Components only works in Client Components. Read more: https://nextjs.org/docs/messages/class-component-in-server-component';\n // If this error instance already has the message, don't add it again\n if (error.message.includes(addedMessage)) return;\n setMessage(error, `${error.message}\n\n${addedMessage}`);\n return;\n }\n if (error.message.includes('createContext is not a function')) {\n setMessage(error, 'createContext only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component');\n return;\n }\n for (const clientHook of invalidServerComponentReactHooks){\n const regex = new RegExp(`\\\\b${clientHook}\\\\b.*is not a function`);\n if (regex.test(error.message)) {\n setMessage(error, `${clientHook} only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`);\n return;\n }\n }\n} //# sourceMappingURL=format-server-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mb3JtYXQtc2VydmVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdDZ0JBLGlCQUFpQjtlQUFqQkE7O0lBTkFDLDJCQUEyQjtlQUEzQkE7OztBQWxDaEIsTUFBTUMsbUNBQW1DO0lBQ3ZDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsU0FBU0MsV0FBV0MsS0FBWSxFQUFFQyxPQUFlO0lBQy9DRCxNQUFNQyxPQUFPLEdBQUdBO0lBQ2hCLElBQUlELE1BQU1FLEtBQUssRUFBRTtRQUNmLE1BQU1DLFFBQVFILE1BQU1FLEtBQUssQ0FBQ0UsS0FBSyxDQUFDO1FBQ2hDRCxLQUFLLENBQUMsRUFBRSxHQUFHRjtRQUNYRCxNQUFNRSxLQUFLLEdBQUdDLE1BQU1FLElBQUksQ0FBQztJQUMzQjtBQUNGO0FBWU8sU0FBU1IsNEJBQTRCRyxLQUFZO0lBQ3RELE1BQU1FLFFBQVFGLE1BQU1FLEtBQUs7SUFDekIsSUFBSSxDQUFDQSxPQUFPLE9BQU87SUFDbkIsT0FBT0EsTUFBTUksT0FBTyxDQUFDLGFBQWE7QUFDcEM7QUFFTyxTQUFTVixrQkFBa0JJLEtBQVk7SUFDNUMsSUFBSSxRQUFPQSxTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxNQUFPQyxPQUFBQSxNQUFZLFVBQVU7SUFFeEMsSUFDRUQsTUFBTUMsT0FBTyxDQUFDTSxRQUFRLENBQ3BCLCtEQUVGO1FBQ0EsTUFBTUMsZUFDSjtRQUVGLHFFQUFxRTtRQUNyRSxJQUFJUixNQUFNQyxPQUFPLENBQUNNLFFBQVEsQ0FBQ0MsZUFBZTtRQUUxQ1QsV0FDRUMsT0FDQSxHQUFHQSxNQUFNQyxPQUFPLENBQUM7O0FBRXZCLEVBQUVPLGNBQWM7UUFFWjtJQUNGO0lBRUEsSUFBSVIsTUFBTUMsT0FBTyxDQUFDTSxRQUFRLENBQUMsb0NBQW9DO1FBQzdEUixXQUNFQyxPQUNBO1FBRUY7SUFDRjtJQUVBLEtBQUssTUFBTVMsY0FBY1gsaUNBQWtDO1FBQ3pELE1BQU1ZLFFBQVEsSUFBSUMsT0FBTyxDQUFDLEdBQUcsRUFBRUYsV0FBVyxzQkFBc0IsQ0FBQztRQUNqRSxJQUFJQyxNQUFNRSxJQUFJLENBQUNaLE1BQU1DLE9BQU8sR0FBRztZQUM3QkYsV0FDRUMsT0FDQSxHQUFHUyxXQUFXLG9MQUFvTCxDQUFDO1lBRXJNO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvc3JjL2xpYi9mb3JtYXQtc2VydmVyLWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGludmFsaWRTZXJ2ZXJDb21wb25lbnRSZWFjdEhvb2tzID0gW1xuICAndXNlRGVmZXJyZWRWYWx1ZScsXG4gICd1c2VFZmZlY3QnLFxuICAndXNlSW1wZXJhdGl2ZUhhbmRsZScsXG4gICd1c2VJbnNlcnRpb25FZmZlY3QnLFxuICAndXNlTGF5b3V0RWZmZWN0JyxcbiAgJ3VzZVJlZHVjZXInLFxuICAndXNlUmVmJyxcbiAgJ3VzZVN0YXRlJyxcbiAgJ3VzZVN5bmNFeHRlcm5hbFN0b3JlJyxcbiAgJ3VzZVRyYW5zaXRpb24nLFxuICAnZXhwZXJpbWVudGFsX3VzZU9wdGltaXN0aWMnLFxuICAndXNlT3B0aW1pc3RpYycsXG5dXG5cbmZ1bmN0aW9uIHNldE1lc3NhZ2UoZXJyb3I6IEVycm9yLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgZXJyb3IubWVzc2FnZSA9IG1lc3NhZ2VcbiAgaWYgKGVycm9yLnN0YWNrKSB7XG4gICAgY29uc3QgbGluZXMgPSBlcnJvci5zdGFjay5zcGxpdCgnXFxuJylcbiAgICBsaW5lc1swXSA9IG1lc3NhZ2VcbiAgICBlcnJvci5zdGFjayA9IGxpbmVzLmpvaW4oJ1xcbicpXG4gIH1cbn1cblxuLyoqXG4gKiBJbnB1dDpcbiAqIEVycm9yOiBTb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgIGF0IGZ1bmNOYW1lICgvcGF0aC90by9maWxlLmpzOjEwOjUpXG4gICAgYXQgYW5vdGhlckZ1bmMgKC9wYXRoL3RvL2ZpbGUuanM6MTU6MTApXG4gXG4gKiBPdXRwdXQ6XG4gICAgYXQgZnVuY05hbWUgKC9wYXRoL3RvL2ZpbGUuanM6MTA6NSlcbiAgICBhdCBhbm90aGVyRnVuYyAoL3BhdGgvdG8vZmlsZS5qczoxNToxMCkgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFja1dpdGhvdXRFcnJvck1lc3NhZ2UoZXJyb3I6IEVycm9yKTogc3RyaW5nIHtcbiAgY29uc3Qgc3RhY2sgPSBlcnJvci5zdGFja1xuICBpZiAoIXN0YWNrKSByZXR1cm4gJydcbiAgcmV0dXJuIHN0YWNrLnJlcGxhY2UoL15bXlxcbl0qXFxuLywgJycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTZXJ2ZXJFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiBlcnJvcj8ubWVzc2FnZSAhPT0gJ3N0cmluZycpIHJldHVyblxuXG4gIGlmIChcbiAgICBlcnJvci5tZXNzYWdlLmluY2x1ZGVzKFxuICAgICAgJ0NsYXNzIGV4dGVuZHMgdmFsdWUgdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwnXG4gICAgKVxuICApIHtcbiAgICBjb25zdCBhZGRlZE1lc3NhZ2UgPVxuICAgICAgJ1RoaXMgbWlnaHQgYmUgY2F1c2VkIGJ5IGEgUmVhY3QgQ2xhc3MgQ29tcG9uZW50IGJlaW5nIHJlbmRlcmVkIGluIGEgU2VydmVyIENvbXBvbmVudCwgUmVhY3QgQ2xhc3MgQ29tcG9uZW50cyBvbmx5IHdvcmtzIGluIENsaWVudCBDb21wb25lbnRzLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NsYXNzLWNvbXBvbmVudC1pbi1zZXJ2ZXItY29tcG9uZW50J1xuXG4gICAgLy8gSWYgdGhpcyBlcnJvciBpbnN0YW5jZSBhbHJlYWR5IGhhcyB0aGUgbWVzc2FnZSwgZG9uJ3QgYWRkIGl0IGFnYWluXG4gICAgaWYgKGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoYWRkZWRNZXNzYWdlKSkgcmV0dXJuXG5cbiAgICBzZXRNZXNzYWdlKFxuICAgICAgZXJyb3IsXG4gICAgICBgJHtlcnJvci5tZXNzYWdlfVxuXG4ke2FkZGVkTWVzc2FnZX1gXG4gICAgKVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoJ2NyZWF0ZUNvbnRleHQgaXMgbm90IGEgZnVuY3Rpb24nKSkge1xuICAgIHNldE1lc3NhZ2UoXG4gICAgICBlcnJvcixcbiAgICAgICdjcmVhdGVDb250ZXh0IG9ubHkgd29ya3MgaW4gQ2xpZW50IENvbXBvbmVudHMuIEFkZCB0aGUgXCJ1c2UgY2xpZW50XCIgZGlyZWN0aXZlIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUgdG8gdXNlIGl0LiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NvbnRleHQtaW4tc2VydmVyLWNvbXBvbmVudCdcbiAgICApXG4gICAgcmV0dXJuXG4gIH1cblxuICBmb3IgKGNvbnN0IGNsaWVudEhvb2sgb2YgaW52YWxpZFNlcnZlckNvbXBvbmVudFJlYWN0SG9va3MpIHtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxiJHtjbGllbnRIb29rfVxcXFxiLippcyBub3QgYSBmdW5jdGlvbmApXG4gICAgaWYgKHJlZ2V4LnRlc3QoZXJyb3IubWVzc2FnZSkpIHtcbiAgICAgIHNldE1lc3NhZ2UoXG4gICAgICAgIGVycm9yLFxuICAgICAgICBgJHtjbGllbnRIb29rfSBvbmx5IHdvcmtzIGluIENsaWVudCBDb21wb25lbnRzLiBBZGQgdGhlIFwidXNlIGNsaWVudFwiIGRpcmVjdGl2ZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlIHRvIHVzZSBpdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9yZWFjdC1jbGllbnQtaG9vay1pbi1zZXJ2ZXItY29tcG9uZW50YFxuICAgICAgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0U2VydmVyRXJyb3IiLCJnZXRTdGFja1dpdGhvdXRFcnJvck1lc3NhZ2UiLCJpbnZhbGlkU2VydmVyQ29tcG9uZW50UmVhY3RIb29rcyIsInNldE1lc3NhZ2UiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsImxpbmVzIiwic3BsaXQiLCJqb2luIiwicmVwbGFjZSIsImluY2x1ZGVzIiwiYWRkZWRNZXNzYWdlIiwiY2xpZW50SG9vayIsInJlZ2V4IiwiUmVnRXhwIiwidGVzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/format-server-error.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/framework/boundary-components.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/lib/framework/boundary-components.js ***! \*********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/lib/framework/boundary-components.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29tcG9uZW50cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsiX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb21wb25lbnRzLmpzL19fbmV4dGpzLWludGVybmFsLXByb3h5LmNqcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBXZWJwYWNrIG5leHQtZmxpZ2h0LWxvYWRlci5cbmNvbnN0IHsgY3JlYXRlUHJveHkgfSA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9tb2R1bGUtcHJveHlcIilcblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVQcm94eShcIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvZnJhbWV3b3JrL2JvdW5kYXJ5LWNvbXBvbmVudHMuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/framework/boundary-components.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/framework/boundary-constants.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/lib/framework/boundary-constants.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_BOUNDARY_NAME;\n },\n ROOT_LAYOUT_BOUNDARY_NAME: function() {\n return ROOT_LAYOUT_BOUNDARY_NAME;\n },\n VIEWPORT_BOUNDARY_NAME: function() {\n return VIEWPORT_BOUNDARY_NAME;\n }\n});\nconst METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';\nconst VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';\nconst OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';\nconst ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__';\n\n//# sourceMappingURL=boundary-constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTUVUQURBVEFfQk9VTkRBUllfTkFNRTogbnVsbCxcbiAgICBPVVRMRVRfQk9VTkRBUllfTkFNRTogbnVsbCxcbiAgICBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FOiBudWxsLFxuICAgIFZJRVdQT1JUX0JPVU5EQVJZX05BTUU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTUVUQURBVEFfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNRVRBREFUQV9CT1VOREFSWV9OQU1FO1xuICAgIH0sXG4gICAgT1VUTEVUX0JPVU5EQVJZX05BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gT1VUTEVUX0JPVU5EQVJZX05BTUU7XG4gICAgfSxcbiAgICBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUU7XG4gICAgfSxcbiAgICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFZJRVdQT1JUX0JPVU5EQVJZX05BTUU7XG4gICAgfVxufSk7XG5jb25zdCBNRVRBREFUQV9CT1VOREFSWV9OQU1FID0gJ19fbmV4dF9tZXRhZGF0YV9ib3VuZGFyeV9fJztcbmNvbnN0IFZJRVdQT1JUX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X3ZpZXdwb3J0X2JvdW5kYXJ5X18nO1xuY29uc3QgT1VUTEVUX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X291dGxldF9ib3VuZGFyeV9fJztcbmNvbnN0IFJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X3Jvb3RfbGF5b3V0X2JvdW5kYXJ5X18nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib3VuZGFyeS1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/framework/boundary-constants.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/generate-interception-routes-rewrites.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/lib/generate-interception-routes-rewrites.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n generateInterceptionRoutesRewrites: function() {\n return generateInterceptionRoutesRewrites;\n },\n isInterceptionRouteRewrite: function() {\n return isInterceptionRouteRewrite;\n }\n});\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _interceptionroutes = __webpack_require__(/*! ../shared/lib/router/utils/interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _routematchutils = __webpack_require__(/*! ../shared/lib/router/utils/route-match-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js\");\n// a function that converts normalised paths (e.g. /foo/[bar]/[baz]) to the format expected by pathToRegexp (e.g. /foo/:bar/:baz)\nfunction toPathToRegexpPath(path) {\n return path.replace(/\\[\\[?([^\\]]+)\\]\\]?/g, (_, capture)=>{\n // path-to-regexp only supports word characters, so we replace any non-word characters with underscores\n const paramName = capture.replace(/\\W+/g, '_');\n // handle catch-all segments (e.g. /foo/bar/[...baz] or /foo/bar/[[...baz]])\n if (capture.startsWith('...')) {\n return `:${capture.slice(3)}*`;\n }\n return ':' + paramName;\n });\n}\nfunction generateInterceptionRoutesRewrites(appPaths, basePath = '') {\n const rewrites = [];\n for (const appPath of appPaths){\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(appPath)) {\n const { interceptingRoute, interceptedRoute } = (0, _interceptionroutes.extractInterceptionRouteInformation)(appPath);\n const normalizedInterceptingRoute = `${interceptingRoute !== '/' ? toPathToRegexpPath(interceptingRoute) : ''}/(.*)?`;\n const normalizedInterceptedRoute = toPathToRegexpPath(interceptedRoute);\n const normalizedAppPath = toPathToRegexpPath(appPath);\n // pathToRegexp returns a regex that matches the path, but we need to\n // convert it to a string that can be used in a header value\n // to the format that Next/the proxy expects\n let interceptingRouteRegex = (0, _routematchutils.safePathToRegexp)(normalizedInterceptingRoute).toString().slice(2, -3);\n rewrites.push({\n source: `${basePath}${normalizedInterceptedRoute}`,\n destination: `${basePath}${normalizedAppPath}`,\n has: [\n {\n type: 'header',\n key: _approuterheaders.NEXT_URL,\n value: interceptingRouteRegex\n }\n ]\n });\n }\n }\n return rewrites;\n}\nfunction isInterceptionRouteRewrite(route) {\n var _route_has_, _route_has;\n // When we generate interception rewrites in the above implementation, we always do so with only a single `has` condition.\n return ((_route_has = route.has) == null ? void 0 : (_route_has_ = _route_has[0]) == null ? void 0 : _route_has_.key) === _approuterheaders.NEXT_URL;\n}\n\n//# sourceMappingURL=generate-interception-routes-rewrites.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9nZW5lcmF0ZS1pbnRlcmNlcHRpb24tcm91dGVzLXJld3JpdGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDBCQUEwQixtQkFBTyxDQUFDLHVIQUF5QztBQUMzRSw0QkFBNEIsbUJBQU8sQ0FBQyxxSUFBZ0Q7QUFDcEYseUJBQXlCLG1CQUFPLENBQUMsaUlBQThDO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLGlCQUFpQjtBQUN4QztBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isc0NBQXNDO0FBQzFELG1EQUFtRCx1RUFBdUU7QUFDMUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsU0FBUyxFQUFFLDJCQUEyQjtBQUNqRSxnQ0FBZ0MsU0FBUyxFQUFFLGtCQUFrQjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvZ2VuZXJhdGUtaW50ZXJjZXB0aW9uLXJvdXRlcy1yZXdyaXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdlbmVyYXRlSW50ZXJjZXB0aW9uUm91dGVzUmV3cml0ZXM6IG51bGwsXG4gICAgaXNJbnRlcmNlcHRpb25Sb3V0ZVJld3JpdGU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZ2VuZXJhdGVJbnRlcmNlcHRpb25Sb3V0ZXNSZXdyaXRlczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZW5lcmF0ZUludGVyY2VwdGlvblJvdXRlc1Jld3JpdGVzO1xuICAgIH0sXG4gICAgaXNJbnRlcmNlcHRpb25Sb3V0ZVJld3JpdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNJbnRlcmNlcHRpb25Sb3V0ZVJld3JpdGU7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwcm91dGVyaGVhZGVycyA9IHJlcXVpcmUoXCIuLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIik7XG5jb25zdCBfaW50ZXJjZXB0aW9ucm91dGVzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXNcIik7XG5jb25zdCBfcm91dGVtYXRjaHV0aWxzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoLXV0aWxzXCIpO1xuLy8gYSBmdW5jdGlvbiB0aGF0IGNvbnZlcnRzIG5vcm1hbGlzZWQgcGF0aHMgKGUuZy4gL2Zvby9bYmFyXS9bYmF6XSkgdG8gdGhlIGZvcm1hdCBleHBlY3RlZCBieSBwYXRoVG9SZWdleHAgKGUuZy4gL2Zvby86YmFyLzpiYXopXG5mdW5jdGlvbiB0b1BhdGhUb1JlZ2V4cFBhdGgocGF0aCkge1xuICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcW1xcWz8oW15cXF1dKylcXF1cXF0/L2csIChfLCBjYXB0dXJlKT0+e1xuICAgICAgICAvLyBwYXRoLXRvLXJlZ2V4cCBvbmx5IHN1cHBvcnRzIHdvcmQgY2hhcmFjdGVycywgc28gd2UgcmVwbGFjZSBhbnkgbm9uLXdvcmQgY2hhcmFjdGVycyB3aXRoIHVuZGVyc2NvcmVzXG4gICAgICAgIGNvbnN0IHBhcmFtTmFtZSA9IGNhcHR1cmUucmVwbGFjZSgvXFxXKy9nLCAnXycpO1xuICAgICAgICAvLyBoYW5kbGUgY2F0Y2gtYWxsIHNlZ21lbnRzIChlLmcuIC9mb28vYmFyL1suLi5iYXpdIG9yIC9mb28vYmFyL1tbLi4uYmF6XV0pXG4gICAgICAgIGlmIChjYXB0dXJlLnN0YXJ0c1dpdGgoJy4uLicpKSB7XG4gICAgICAgICAgICByZXR1cm4gYDoke2NhcHR1cmUuc2xpY2UoMyl9KmA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICc6JyArIHBhcmFtTmFtZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdlbmVyYXRlSW50ZXJjZXB0aW9uUm91dGVzUmV3cml0ZXMoYXBwUGF0aHMsIGJhc2VQYXRoID0gJycpIHtcbiAgICBjb25zdCByZXdyaXRlcyA9IFtdO1xuICAgIGZvciAoY29uc3QgYXBwUGF0aCBvZiBhcHBQYXRocyl7XG4gICAgICAgIGlmICgoMCwgX2ludGVyY2VwdGlvbnJvdXRlcy5pc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCkoYXBwUGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGUgfSA9ICgwLCBfaW50ZXJjZXB0aW9ucm91dGVzLmV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uKShhcHBQYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRJbnRlcmNlcHRpbmdSb3V0ZSA9IGAke2ludGVyY2VwdGluZ1JvdXRlICE9PSAnLycgPyB0b1BhdGhUb1JlZ2V4cFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIDogJyd9LyguKik/YDtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRJbnRlcmNlcHRlZFJvdXRlID0gdG9QYXRoVG9SZWdleHBQYXRoKGludGVyY2VwdGVkUm91dGUpO1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEFwcFBhdGggPSB0b1BhdGhUb1JlZ2V4cFBhdGgoYXBwUGF0aCk7XG4gICAgICAgICAgICAvLyBwYXRoVG9SZWdleHAgcmV0dXJucyBhIHJlZ2V4IHRoYXQgbWF0Y2hlcyB0aGUgcGF0aCwgYnV0IHdlIG5lZWQgdG9cbiAgICAgICAgICAgIC8vIGNvbnZlcnQgaXQgdG8gYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBpbiBhIGhlYWRlciB2YWx1ZVxuICAgICAgICAgICAgLy8gdG8gdGhlIGZvcm1hdCB0aGF0IE5leHQvdGhlIHByb3h5IGV4cGVjdHNcbiAgICAgICAgICAgIGxldCBpbnRlcmNlcHRpbmdSb3V0ZVJlZ2V4ID0gKDAsIF9yb3V0ZW1hdGNodXRpbHMuc2FmZVBhdGhUb1JlZ2V4cCkobm9ybWFsaXplZEludGVyY2VwdGluZ1JvdXRlKS50b1N0cmluZygpLnNsaWNlKDIsIC0zKTtcbiAgICAgICAgICAgIHJld3JpdGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIHNvdXJjZTogYCR7YmFzZVBhdGh9JHtub3JtYWxpemVkSW50ZXJjZXB0ZWRSb3V0ZX1gLFxuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBgJHtiYXNlUGF0aH0ke25vcm1hbGl6ZWRBcHBQYXRofWAsXG4gICAgICAgICAgICAgICAgaGFzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBfYXBwcm91dGVyaGVhZGVycy5ORVhUX1VSTCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpbnRlcmNlcHRpbmdSb3V0ZVJlZ2V4XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV3cml0ZXM7XG59XG5mdW5jdGlvbiBpc0ludGVyY2VwdGlvblJvdXRlUmV3cml0ZShyb3V0ZSkge1xuICAgIHZhciBfcm91dGVfaGFzXywgX3JvdXRlX2hhcztcbiAgICAvLyBXaGVuIHdlIGdlbmVyYXRlIGludGVyY2VwdGlvbiByZXdyaXRlcyBpbiB0aGUgYWJvdmUgaW1wbGVtZW50YXRpb24sIHdlIGFsd2F5cyBkbyBzbyB3aXRoIG9ubHkgYSBzaW5nbGUgYGhhc2AgY29uZGl0aW9uLlxuICAgIHJldHVybiAoKF9yb3V0ZV9oYXMgPSByb3V0ZS5oYXMpID09IG51bGwgPyB2b2lkIDAgOiAoX3JvdXRlX2hhc18gPSBfcm91dGVfaGFzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3JvdXRlX2hhc18ua2V5KSA9PT0gX2FwcHJvdXRlcmhlYWRlcnMuTkVYVF9VUkw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdlbmVyYXRlLWludGVyY2VwdGlvbi1yb3V0ZXMtcmV3cml0ZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/generate-interception-routes-rewrites.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/interop-default.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/lib/interop-default.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pbnRlcm9wLWRlZmF1bHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaW50ZXJvcC1kZWZhdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaW50ZXJvcERlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGludGVyb3BEZWZhdWx0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaW50ZXJvcERlZmF1bHQobW9kKSB7XG4gICAgcmV0dXJuIG1vZC5kZWZhdWx0IHx8IG1vZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJvcC1kZWZhdWx0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/interop-default.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/is-app-route-route.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/lib/is-app-route-route.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isAppRouteRoute\", ({\n enumerable: true,\n get: function() {\n return isAppRouteRoute;\n }\n}));\nfunction isAppRouteRoute(route) {\n return route.endsWith('/route');\n}\n\n//# sourceMappingURL=is-app-route-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1hcHAtcm91dGUtcm91dGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaXMtYXBwLXJvdXRlLXJvdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaXNBcHBSb3V0ZVJvdXRlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0FwcFJvdXRlUm91dGU7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpc0FwcFJvdXRlUm91dGUocm91dGUpIHtcbiAgICByZXR1cm4gcm91dGUuZW5kc1dpdGgoJy9yb3V0ZScpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1hcHAtcm91dGUtcm91dGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/is-app-route-route.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/is-error.js": /*!************************************************!*\ !*** ./node_modules/next/dist/lib/is-error.js ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZGVmYXVsdDogbnVsbCxcbiAgICBnZXRQcm9wZXJFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICAvKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIE5leHRFcnJvci5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gcHJpbnQgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCBwcm9wZXJ0aWVzIGxpa2UgYGNvZGVgICYgYGRpZ2VzdGAuXG4gKi8gZGVmYXVsdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Vycm9yO1xuICAgIH0sXG4gICAgZ2V0UHJvcGVyRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UHJvcGVyRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfaXNwbGFpbm9iamVjdCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2lzLXBsYWluLW9iamVjdFwiKTtcbmZ1bmN0aW9uIGlzRXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnICYmIGVyciAhPT0gbnVsbCAmJiAnbmFtZScgaW4gZXJyICYmICdtZXNzYWdlJyBpbiBlcnI7XG59XG5mdW5jdGlvbiBzYWZlU3RyaW5naWZ5KG9iaikge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgV2Vha1NldCgpO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIChfa2V5LCB2YWx1ZSk9PntcbiAgICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gb2JqZWN0IGFuZCBhbHJlYWR5IHNlZW4sIHJlcGxhY2Ugd2l0aCBcIltDaXJjdWxhcl1cIlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWVuLmFkZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0UHJvcGVyRXJyb3IoZXJyKSB7XG4gICAgaWYgKGlzRXJyb3IoZXJyKSkge1xuICAgICAgICByZXR1cm4gZXJyO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gcHJvdmlkZSBiZXR0ZXIgZXJyb3IgZm9yIGNhc2Ugd2hlcmUgYHRocm93IHVuZGVmaW5lZGBcbiAgICAgICAgLy8gaXMgY2FsbGVkIGluIGRldmVsb3BtZW50XG4gICAgICAgIGlmICh0eXBlb2YgZXJyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0FuIHVuZGVmaW5lZCBlcnJvciB3YXMgdGhyb3duLCAnICsgJ3NlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3RocmV3LXVuZGVmaW5lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFOThcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBIG51bGwgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTMzNlwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoKDAsIF9pc3BsYWlub2JqZWN0LmlzUGxhaW5PYmplY3QpKGVycikgPyBzYWZlU3RyaW5naWZ5KGVycikgOiBlcnIgKyAnJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/is-error.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/clone-metadata.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"cloneMetadata\", ({\n enumerable: true,\n get: function() {\n return cloneMetadata;\n }\n}));\nconst TYPE_URL = '__METADATA_URL';\nfunction replacer(_key, val) {\n // clone URL as string but recover it as URL\n if (val instanceof URL) {\n return {\n _type: TYPE_URL,\n value: val.href\n };\n }\n return val;\n}\nfunction reviver(_key, val) {\n if (typeof val === 'object' && val !== null && val._type === TYPE_URL) {\n return new URL(val.value);\n }\n return val;\n}\nfunction cloneMetadata(metadata) {\n const jsonString = JSON.stringify(metadata, replacer);\n return JSON.parse(jsonString, reviver);\n}\n\n//# sourceMappingURL=clone-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jbG9uZS1tZXRhZGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jbG9uZS1tZXRhZGF0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNsb25lTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNsb25lTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBUWVBFX1VSTCA9ICdfX01FVEFEQVRBX1VSTCc7XG5mdW5jdGlvbiByZXBsYWNlcihfa2V5LCB2YWwpIHtcbiAgICAvLyBjbG9uZSBVUkwgYXMgc3RyaW5nIGJ1dCByZWNvdmVyIGl0IGFzIFVSTFxuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIF90eXBlOiBUWVBFX1VSTCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWwuaHJlZlxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufVxuZnVuY3Rpb24gcmV2aXZlcihfa2V5LCB2YWwpIHtcbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsICE9PSBudWxsICYmIHZhbC5fdHlwZSA9PT0gVFlQRV9VUkwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVUkwodmFsLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn1cbmZ1bmN0aW9uIGNsb25lTWV0YWRhdGEobWV0YWRhdGEpIHtcbiAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEsIHJlcGxhY2VyKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uU3RyaW5nLCByZXZpdmVyKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xvbmUtbWV0YWRhdGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/constants.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/constants.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n IconKeys: function() {\n return IconKeys;\n },\n ViewportMetaKeys: function() {\n return ViewportMetaKeys;\n }\n});\nconst ViewportMetaKeys = {\n width: 'width',\n height: 'height',\n initialScale: 'initial-scale',\n minimumScale: 'minimum-scale',\n maximumScale: 'maximum-scale',\n viewportFit: 'viewport-fit',\n userScalable: 'user-scalable',\n interactiveWidget: 'interactive-widget'\n};\nconst IconKeys = [\n 'icon',\n 'shortcut',\n 'apple',\n 'other'\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSWNvbktleXM6IG51bGwsXG4gICAgVmlld3BvcnRNZXRhS2V5czogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBJY29uS2V5czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJY29uS2V5cztcbiAgICB9LFxuICAgIFZpZXdwb3J0TWV0YUtleXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVmlld3BvcnRNZXRhS2V5cztcbiAgICB9XG59KTtcbmNvbnN0IFZpZXdwb3J0TWV0YUtleXMgPSB7XG4gICAgd2lkdGg6ICd3aWR0aCcsXG4gICAgaGVpZ2h0OiAnaGVpZ2h0JyxcbiAgICBpbml0aWFsU2NhbGU6ICdpbml0aWFsLXNjYWxlJyxcbiAgICBtaW5pbXVtU2NhbGU6ICdtaW5pbXVtLXNjYWxlJyxcbiAgICBtYXhpbXVtU2NhbGU6ICdtYXhpbXVtLXNjYWxlJyxcbiAgICB2aWV3cG9ydEZpdDogJ3ZpZXdwb3J0LWZpdCcsXG4gICAgdXNlclNjYWxhYmxlOiAndXNlci1zY2FsYWJsZScsXG4gICAgaW50ZXJhY3RpdmVXaWRnZXQ6ICdpbnRlcmFjdGl2ZS13aWRnZXQnXG59O1xuY29uc3QgSWNvbktleXMgPSBbXG4gICAgJ2ljb24nLFxuICAgICdzaG9ydGN1dCcsXG4gICAgJ2FwcGxlJyxcbiAgICAnb3RoZXInXG5dO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/constants.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/default-metadata.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createDefaultMetadata: function() {\n return createDefaultMetadata;\n },\n createDefaultViewport: function() {\n return createDefaultViewport;\n }\n});\nfunction createDefaultViewport() {\n return {\n // name=viewport\n width: 'device-width',\n initialScale: 1,\n // visual metadata\n themeColor: null,\n colorScheme: null\n };\n}\nfunction createDefaultMetadata() {\n return {\n // Deprecated ones\n viewport: null,\n themeColor: null,\n colorScheme: null,\n metadataBase: null,\n // Other values are all null\n title: null,\n description: null,\n applicationName: null,\n authors: null,\n generator: null,\n keywords: null,\n referrer: null,\n creator: null,\n publisher: null,\n robots: null,\n manifest: null,\n alternates: {\n canonical: null,\n languages: null,\n media: null,\n types: null\n },\n icons: null,\n openGraph: null,\n twitter: null,\n verification: {},\n appleWebApp: null,\n formatDetection: null,\n itunes: null,\n facebook: null,\n pinterest: null,\n abstract: null,\n appLinks: null,\n archives: null,\n assets: null,\n bookmarks: null,\n category: null,\n classification: null,\n pagination: {\n previous: null,\n next: null\n },\n other: {}\n };\n}\n\n//# sourceMappingURL=default-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9kZWZhdWx0LW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2RlZmF1bHQtbWV0YWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVEZWZhdWx0TWV0YWRhdGE6IG51bGwsXG4gICAgY3JlYXRlRGVmYXVsdFZpZXdwb3J0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNyZWF0ZURlZmF1bHRNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEZWZhdWx0TWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVEZWZhdWx0Vmlld3BvcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGVmYXVsdFZpZXdwb3J0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gY3JlYXRlRGVmYXVsdFZpZXdwb3J0KCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIC8vIG5hbWU9dmlld3BvcnRcbiAgICAgICAgd2lkdGg6ICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICBpbml0aWFsU2NhbGU6IDEsXG4gICAgICAgIC8vIHZpc3VhbCBtZXRhZGF0YVxuICAgICAgICB0aGVtZUNvbG9yOiBudWxsLFxuICAgICAgICBjb2xvclNjaGVtZTogbnVsbFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVEZWZhdWx0TWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLy8gRGVwcmVjYXRlZCBvbmVzXG4gICAgICAgIHZpZXdwb3J0OiBudWxsLFxuICAgICAgICB0aGVtZUNvbG9yOiBudWxsLFxuICAgICAgICBjb2xvclNjaGVtZTogbnVsbCxcbiAgICAgICAgbWV0YWRhdGFCYXNlOiBudWxsLFxuICAgICAgICAvLyBPdGhlciB2YWx1ZXMgYXJlIGFsbCBudWxsXG4gICAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgICBkZXNjcmlwdGlvbjogbnVsbCxcbiAgICAgICAgYXBwbGljYXRpb25OYW1lOiBudWxsLFxuICAgICAgICBhdXRob3JzOiBudWxsLFxuICAgICAgICBnZW5lcmF0b3I6IG51bGwsXG4gICAgICAgIGtleXdvcmRzOiBudWxsLFxuICAgICAgICByZWZlcnJlcjogbnVsbCxcbiAgICAgICAgY3JlYXRvcjogbnVsbCxcbiAgICAgICAgcHVibGlzaGVyOiBudWxsLFxuICAgICAgICByb2JvdHM6IG51bGwsXG4gICAgICAgIG1hbmlmZXN0OiBudWxsLFxuICAgICAgICBhbHRlcm5hdGVzOiB7XG4gICAgICAgICAgICBjYW5vbmljYWw6IG51bGwsXG4gICAgICAgICAgICBsYW5ndWFnZXM6IG51bGwsXG4gICAgICAgICAgICBtZWRpYTogbnVsbCxcbiAgICAgICAgICAgIHR5cGVzOiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIGljb25zOiBudWxsLFxuICAgICAgICBvcGVuR3JhcGg6IG51bGwsXG4gICAgICAgIHR3aXR0ZXI6IG51bGwsXG4gICAgICAgIHZlcmlmaWNhdGlvbjoge30sXG4gICAgICAgIGFwcGxlV2ViQXBwOiBudWxsLFxuICAgICAgICBmb3JtYXREZXRlY3Rpb246IG51bGwsXG4gICAgICAgIGl0dW5lczogbnVsbCxcbiAgICAgICAgZmFjZWJvb2s6IG51bGwsXG4gICAgICAgIHBpbnRlcmVzdDogbnVsbCxcbiAgICAgICAgYWJzdHJhY3Q6IG51bGwsXG4gICAgICAgIGFwcExpbmtzOiBudWxsLFxuICAgICAgICBhcmNoaXZlczogbnVsbCxcbiAgICAgICAgYXNzZXRzOiBudWxsLFxuICAgICAgICBib29rbWFya3M6IG51bGwsXG4gICAgICAgIGNhdGVnb3J5OiBudWxsLFxuICAgICAgICBjbGFzc2lmaWNhdGlvbjogbnVsbCxcbiAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgICAgcHJldmlvdXM6IG51bGwsXG4gICAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIG90aGVyOiB7fVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQtbWV0YWRhdGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/alternate.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AlternatesMetadata\", ({\n enumerable: true,\n get: function() {\n return AlternatesMetadata;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction AlternateLink({ descriptor, ...props }) {\n if (!descriptor.url) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n ...props,\n ...descriptor.title && {\n title: descriptor.title\n },\n href: descriptor.url.toString()\n });\n}\nfunction AlternatesMetadata({ alternates }) {\n if (!alternates) return null;\n const { canonical, languages, media, types } = alternates;\n return (0, _meta.MetaFilter)([\n canonical ? AlternateLink({\n rel: 'canonical',\n descriptor: canonical\n }) : null,\n languages ? Object.entries(languages).flatMap(([locale, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: 'alternate',\n hrefLang: locale,\n descriptor\n }))) : null,\n media ? Object.entries(media).flatMap(([mediaName, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: 'alternate',\n media: mediaName,\n descriptor\n }))) : null,\n types ? Object.entries(types).flatMap(([type, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: 'alternate',\n type,\n descriptor\n }))) : null\n ]);\n}\n\n//# sourceMappingURL=alternate.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9hbHRlcm5hdGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixzREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixvQkFBb0IsbUJBQU8sQ0FBQyx5SEFBbUI7QUFDL0Msc0RBQXNELG1CQUFPLENBQUMsaUdBQU87QUFDckUsY0FBYyxtQkFBTyxDQUFDLDRFQUFRO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsc0JBQXNCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQSw4QkFBOEIsWUFBWTtBQUMxQztBQUNBLFlBQVkscUNBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvYWx0ZXJuYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQWx0ZXJuYXRlc01ldGFkYXRhXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBbHRlcm5hdGVzTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfbWV0YSA9IHJlcXVpcmUoXCIuL21ldGFcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIEFsdGVybmF0ZUxpbmsoeyBkZXNjcmlwdG9yLCAuLi5wcm9wcyB9KSB7XG4gICAgaWYgKCFkZXNjcmlwdG9yLnVybCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC4uLmRlc2NyaXB0b3IudGl0bGUgJiYge1xuICAgICAgICAgICAgdGl0bGU6IGRlc2NyaXB0b3IudGl0bGVcbiAgICAgICAgfSxcbiAgICAgICAgaHJlZjogZGVzY3JpcHRvci51cmwudG9TdHJpbmcoKVxuICAgIH0pO1xufVxuZnVuY3Rpb24gQWx0ZXJuYXRlc01ldGFkYXRhKHsgYWx0ZXJuYXRlcyB9KSB7XG4gICAgaWYgKCFhbHRlcm5hdGVzKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGNhbm9uaWNhbCwgbGFuZ3VhZ2VzLCBtZWRpYSwgdHlwZXMgfSA9IGFsdGVybmF0ZXM7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIGNhbm9uaWNhbCA/IEFsdGVybmF0ZUxpbmsoe1xuICAgICAgICAgICAgcmVsOiAnY2Fub25pY2FsJyxcbiAgICAgICAgICAgIGRlc2NyaXB0b3I6IGNhbm9uaWNhbFxuICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgIGxhbmd1YWdlcyA/IE9iamVjdC5lbnRyaWVzKGxhbmd1YWdlcykuZmxhdE1hcCgoW2xvY2FsZSwgZGVzY3JpcHRvcnNdKT0+ZGVzY3JpcHRvcnMgPT0gbnVsbCA/IHZvaWQgMCA6IGRlc2NyaXB0b3JzLm1hcCgoZGVzY3JpcHRvcik9PkFsdGVybmF0ZUxpbmsoe1xuICAgICAgICAgICAgICAgICAgICByZWw6ICdhbHRlcm5hdGUnLFxuICAgICAgICAgICAgICAgICAgICBocmVmTGFuZzogbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgfSkpKSA6IG51bGwsXG4gICAgICAgIG1lZGlhID8gT2JqZWN0LmVudHJpZXMobWVkaWEpLmZsYXRNYXAoKFttZWRpYU5hbWUsIGRlc2NyaXB0b3JzXSk9PmRlc2NyaXB0b3JzID09IG51bGwgPyB2b2lkIDAgOiBkZXNjcmlwdG9ycy5tYXAoKGRlc2NyaXB0b3IpPT5BbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgICAgICAgICAgcmVsOiAnYWx0ZXJuYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgbWVkaWE6IG1lZGlhTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIH0pKSkgOiBudWxsLFxuICAgICAgICB0eXBlcyA/IE9iamVjdC5lbnRyaWVzKHR5cGVzKS5mbGF0TWFwKChbdHlwZSwgZGVzY3JpcHRvcnNdKT0+ZGVzY3JpcHRvcnMgPT0gbnVsbCA/IHZvaWQgMCA6IGRlc2NyaXB0b3JzLm1hcCgoZGVzY3JpcHRvcik9PkFsdGVybmF0ZUxpbmsoe1xuICAgICAgICAgICAgICAgICAgICByZWw6ICdhbHRlcm5hdGUnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgfSkpKSA6IG51bGxcbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWx0ZXJuYXRlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/basic.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppleWebAppMeta: function() {\n return AppleWebAppMeta;\n },\n BasicMeta: function() {\n return BasicMeta;\n },\n FacebookMeta: function() {\n return FacebookMeta;\n },\n FormatDetectionMeta: function() {\n return FormatDetectionMeta;\n },\n ItunesMeta: function() {\n return ItunesMeta;\n },\n PinterestMeta: function() {\n return PinterestMeta;\n },\n VerificationMeta: function() {\n return VerificationMeta;\n },\n ViewportMeta: function() {\n return ViewportMeta;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nconst _constants = __webpack_require__(/*! ../constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/constants.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\n// convert viewport object to string for viewport meta tag\nfunction resolveViewportLayout(viewport) {\n let resolved = null;\n if (viewport && typeof viewport === 'object') {\n resolved = '';\n for(const viewportKey_ in _constants.ViewportMetaKeys){\n const viewportKey = viewportKey_;\n if (viewportKey in viewport) {\n let value = viewport[viewportKey];\n if (typeof value === 'boolean') {\n value = value ? 'yes' : 'no';\n } else if (!value && viewportKey === 'initialScale') {\n value = undefined;\n }\n if (value) {\n if (resolved) resolved += ', ';\n resolved += `${_constants.ViewportMetaKeys[viewportKey]}=${value}`;\n }\n }\n }\n }\n return resolved;\n}\nfunction ViewportMeta({ viewport }) {\n return (0, _meta.MetaFilter)([\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }),\n (0, _meta.Meta)({\n name: 'viewport',\n content: resolveViewportLayout(viewport)\n }),\n ...viewport.themeColor ? viewport.themeColor.map((themeColor)=>(0, _meta.Meta)({\n name: 'theme-color',\n content: themeColor.color,\n media: themeColor.media\n })) : [],\n (0, _meta.Meta)({\n name: 'color-scheme',\n content: viewport.colorScheme\n })\n ]);\n}\nfunction BasicMeta({ metadata }) {\n var _metadata_keywords, _metadata_robots, _metadata_robots1;\n const manifestOrigin = metadata.manifest ? (0, _utils.getOrigin)(metadata.manifest) : undefined;\n return (0, _meta.MetaFilter)([\n metadata.title !== null && metadata.title.absolute ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: metadata.title.absolute\n }) : null,\n (0, _meta.Meta)({\n name: 'description',\n content: metadata.description\n }),\n (0, _meta.Meta)({\n name: 'application-name',\n content: metadata.applicationName\n }),\n ...metadata.authors ? metadata.authors.map((author)=>[\n author.url ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"author\",\n href: author.url.toString()\n }) : null,\n (0, _meta.Meta)({\n name: 'author',\n content: author.name\n })\n ]) : [],\n metadata.manifest ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"manifest\",\n href: metadata.manifest.toString(),\n // If it's same origin, and it's a preview deployment,\n // including credentials for manifest request.\n crossOrigin: !manifestOrigin && process.env.VERCEL_ENV === 'preview' ? 'use-credentials' : undefined\n }) : null,\n (0, _meta.Meta)({\n name: 'generator',\n content: metadata.generator\n }),\n (0, _meta.Meta)({\n name: 'keywords',\n content: (_metadata_keywords = metadata.keywords) == null ? void 0 : _metadata_keywords.join(',')\n }),\n (0, _meta.Meta)({\n name: 'referrer',\n content: metadata.referrer\n }),\n (0, _meta.Meta)({\n name: 'creator',\n content: metadata.creator\n }),\n (0, _meta.Meta)({\n name: 'publisher',\n content: metadata.publisher\n }),\n (0, _meta.Meta)({\n name: 'robots',\n content: (_metadata_robots = metadata.robots) == null ? void 0 : _metadata_robots.basic\n }),\n (0, _meta.Meta)({\n name: 'googlebot',\n content: (_metadata_robots1 = metadata.robots) == null ? void 0 : _metadata_robots1.googleBot\n }),\n (0, _meta.Meta)({\n name: 'abstract',\n content: metadata.abstract\n }),\n ...metadata.archives ? metadata.archives.map((archive)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"archives\",\n href: archive\n })) : [],\n ...metadata.assets ? metadata.assets.map((asset)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"assets\",\n href: asset\n })) : [],\n ...metadata.bookmarks ? metadata.bookmarks.map((bookmark)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"bookmarks\",\n href: bookmark\n })) : [],\n ...metadata.pagination ? [\n metadata.pagination.previous ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"prev\",\n href: metadata.pagination.previous\n }) : null,\n metadata.pagination.next ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"next\",\n href: metadata.pagination.next\n }) : null\n ] : [],\n (0, _meta.Meta)({\n name: 'category',\n content: metadata.category\n }),\n (0, _meta.Meta)({\n name: 'classification',\n content: metadata.classification\n }),\n ...metadata.other ? Object.entries(metadata.other).map(([name, content])=>{\n if (Array.isArray(content)) {\n return content.map((contentItem)=>(0, _meta.Meta)({\n name,\n content: contentItem\n }));\n } else {\n return (0, _meta.Meta)({\n name,\n content\n });\n }\n }) : []\n ]);\n}\nfunction ItunesMeta({ itunes }) {\n if (!itunes) return null;\n const { appId, appArgument } = itunes;\n let content = `app-id=${appId}`;\n if (appArgument) {\n content += `, app-argument=${appArgument}`;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"apple-itunes-app\",\n content: content\n });\n}\nfunction FacebookMeta({ facebook }) {\n if (!facebook) return null;\n const { appId, admins } = facebook;\n return (0, _meta.MetaFilter)([\n appId ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"fb:app_id\",\n content: appId\n }) : null,\n ...admins ? admins.map((admin)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"fb:admins\",\n content: admin\n })) : []\n ]);\n}\nfunction PinterestMeta({ pinterest }) {\n if (!pinterest || !pinterest.richPin) return null;\n const { richPin } = pinterest;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"pinterest-rich-pin\",\n content: richPin.toString()\n });\n}\nconst formatDetectionKeys = [\n 'telephone',\n 'date',\n 'address',\n 'email',\n 'url'\n];\nfunction FormatDetectionMeta({ formatDetection }) {\n if (!formatDetection) return null;\n let content = '';\n for (const key of formatDetectionKeys){\n if (key in formatDetection) {\n if (content) content += ', ';\n content += `${key}=no`;\n }\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"format-detection\",\n content: content\n });\n}\nfunction AppleWebAppMeta({ appleWebApp }) {\n if (!appleWebApp) return null;\n const { capable, title, startupImage, statusBarStyle } = appleWebApp;\n return (0, _meta.MetaFilter)([\n capable ? (0, _meta.Meta)({\n name: 'mobile-web-app-capable',\n content: 'yes'\n }) : null,\n (0, _meta.Meta)({\n name: 'apple-mobile-web-app-title',\n content: title\n }),\n startupImage ? startupImage.map((image)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n href: image.url,\n media: image.media,\n rel: \"apple-touch-startup-image\"\n })) : null,\n statusBarStyle ? (0, _meta.Meta)({\n name: 'apple-mobile-web-app-status-bar-style',\n content: statusBarStyle\n }) : null\n ]);\n}\nfunction VerificationMeta({ verification }) {\n if (!verification) return null;\n return (0, _meta.MetaFilter)([\n (0, _meta.MultiMeta)({\n namePrefix: 'google-site-verification',\n contents: verification.google\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'y_key',\n contents: verification.yahoo\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'yandex-verification',\n contents: verification.yandex\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'me',\n contents: verification.me\n }),\n ...verification.other ? Object.entries(verification.other).map(([key, value])=>(0, _meta.MultiMeta)({\n namePrefix: key,\n contents: value\n })) : []\n ]);\n}\n\n//# sourceMappingURL=basic.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9iYXNpYy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FTTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxvQkFBb0IsbUJBQU8sQ0FBQyx5SEFBbUI7QUFDL0MsY0FBYyxtQkFBTyxDQUFDLDRFQUFRO0FBQzlCLG1CQUFtQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3pDLGVBQWUsbUJBQU8sQ0FBQyw4RUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHlDQUF5QyxHQUFHLE1BQU07QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHFCQUFxQixVQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esc0JBQXNCLFFBQVE7QUFDOUI7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQyw0QkFBNEIsTUFBTTtBQUNsQztBQUNBLHFDQUFxQyxZQUFZO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQSxZQUFZLGdCQUFnQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLHlCQUF5QixXQUFXO0FBQ3BDO0FBQ0EsWUFBWSxVQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLGlCQUFpQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLElBQUk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJCQUEyQixhQUFhO0FBQ3hDO0FBQ0EsWUFBWSwrQ0FBK0M7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsNEJBQTRCLGNBQWM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9iYXNpYy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFwcGxlV2ViQXBwTWV0YTogbnVsbCxcbiAgICBCYXNpY01ldGE6IG51bGwsXG4gICAgRmFjZWJvb2tNZXRhOiBudWxsLFxuICAgIEZvcm1hdERldGVjdGlvbk1ldGE6IG51bGwsXG4gICAgSXR1bmVzTWV0YTogbnVsbCxcbiAgICBQaW50ZXJlc3RNZXRhOiBudWxsLFxuICAgIFZlcmlmaWNhdGlvbk1ldGE6IG51bGwsXG4gICAgVmlld3BvcnRNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFwcGxlV2ViQXBwTWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBsZVdlYkFwcE1ldGE7XG4gICAgfSxcbiAgICBCYXNpY01ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmFzaWNNZXRhO1xuICAgIH0sXG4gICAgRmFjZWJvb2tNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZhY2Vib29rTWV0YTtcbiAgICB9LFxuICAgIEZvcm1hdERldGVjdGlvbk1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRm9ybWF0RGV0ZWN0aW9uTWV0YTtcbiAgICB9LFxuICAgIEl0dW5lc01ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSXR1bmVzTWV0YTtcbiAgICB9LFxuICAgIFBpbnRlcmVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUGludGVyZXN0TWV0YTtcbiAgICB9LFxuICAgIFZlcmlmaWNhdGlvbk1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVmVyaWZpY2F0aW9uTWV0YTtcbiAgICB9LFxuICAgIFZpZXdwb3J0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBWaWV3cG9ydE1ldGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9tZXRhID0gcmVxdWlyZShcIi4vbWV0YVwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vY29uc3RhbnRzXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG4vLyBjb252ZXJ0IHZpZXdwb3J0IG9iamVjdCB0byBzdHJpbmcgZm9yIHZpZXdwb3J0IG1ldGEgdGFnXG5mdW5jdGlvbiByZXNvbHZlVmlld3BvcnRMYXlvdXQodmlld3BvcnQpIHtcbiAgICBsZXQgcmVzb2x2ZWQgPSBudWxsO1xuICAgIGlmICh2aWV3cG9ydCAmJiB0eXBlb2Ygdmlld3BvcnQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJlc29sdmVkID0gJyc7XG4gICAgICAgIGZvcihjb25zdCB2aWV3cG9ydEtleV8gaW4gX2NvbnN0YW50cy5WaWV3cG9ydE1ldGFLZXlzKXtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0S2V5ID0gdmlld3BvcnRLZXlfO1xuICAgICAgICAgICAgaWYgKHZpZXdwb3J0S2V5IGluIHZpZXdwb3J0KSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdmlld3BvcnRbdmlld3BvcnRLZXldO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID8gJ3llcycgOiAnbm8nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXZhbHVlICYmIHZpZXdwb3J0S2V5ID09PSAnaW5pdGlhbFNjYWxlJykge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCkgcmVzb2x2ZWQgKz0gJywgJztcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQgKz0gYCR7X2NvbnN0YW50cy5WaWV3cG9ydE1ldGFLZXlzW3ZpZXdwb3J0S2V5XX09JHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59XG5mdW5jdGlvbiBWaWV3cG9ydE1ldGEoeyB2aWV3cG9ydCB9KSB7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJtZXRhXCIsIHtcbiAgICAgICAgICAgIGNoYXJTZXQ6IFwidXRmLThcIlxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd2aWV3cG9ydCcsXG4gICAgICAgICAgICBjb250ZW50OiByZXNvbHZlVmlld3BvcnRMYXlvdXQodmlld3BvcnQpXG4gICAgICAgIH0pLFxuICAgICAgICAuLi52aWV3cG9ydC50aGVtZUNvbG9yID8gdmlld3BvcnQudGhlbWVDb2xvci5tYXAoKHRoZW1lQ29sb3IpPT4oMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgIG5hbWU6ICd0aGVtZS1jb2xvcicsXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhlbWVDb2xvci5jb2xvcixcbiAgICAgICAgICAgICAgICBtZWRpYTogdGhlbWVDb2xvci5tZWRpYVxuICAgICAgICAgICAgfSkpIDogW10sXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnY29sb3Itc2NoZW1lJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHZpZXdwb3J0LmNvbG9yU2NoZW1lXG4gICAgICAgIH0pXG4gICAgXSk7XG59XG5mdW5jdGlvbiBCYXNpY01ldGEoeyBtZXRhZGF0YSB9KSB7XG4gICAgdmFyIF9tZXRhZGF0YV9rZXl3b3JkcywgX21ldGFkYXRhX3JvYm90cywgX21ldGFkYXRhX3JvYm90czE7XG4gICAgY29uc3QgbWFuaWZlc3RPcmlnaW4gPSBtZXRhZGF0YS5tYW5pZmVzdCA/ICgwLCBfdXRpbHMuZ2V0T3JpZ2luKShtZXRhZGF0YS5tYW5pZmVzdCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIG1ldGFkYXRhLnRpdGxlICE9PSBudWxsICYmIG1ldGFkYXRhLnRpdGxlLmFic29sdXRlID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcInRpdGxlXCIsIHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBtZXRhZGF0YS50aXRsZS5hYnNvbHV0ZVxuICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuZGVzY3JpcHRpb25cbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnYXBwbGljYXRpb24tbmFtZScsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5hcHBsaWNhdGlvbk5hbWVcbiAgICAgICAgfSksXG4gICAgICAgIC4uLm1ldGFkYXRhLmF1dGhvcnMgPyBtZXRhZGF0YS5hdXRob3JzLm1hcCgoYXV0aG9yKT0+W1xuICAgICAgICAgICAgICAgIGF1dGhvci51cmwgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIHJlbDogXCJhdXRob3JcIixcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogYXV0aG9yLnVybC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdhdXRob3InLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdXRob3IubmFtZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdKSA6IFtdLFxuICAgICAgICBtZXRhZGF0YS5tYW5pZmVzdCA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgIHJlbDogXCJtYW5pZmVzdFwiLFxuICAgICAgICAgICAgaHJlZjogbWV0YWRhdGEubWFuaWZlc3QudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIC8vIElmIGl0J3Mgc2FtZSBvcmlnaW4sIGFuZCBpdCdzIGEgcHJldmlldyBkZXBsb3ltZW50LFxuICAgICAgICAgICAgLy8gaW5jbHVkaW5nIGNyZWRlbnRpYWxzIGZvciBtYW5pZmVzdCByZXF1ZXN0LlxuICAgICAgICAgICAgY3Jvc3NPcmlnaW46ICFtYW5pZmVzdE9yaWdpbiAmJiBwcm9jZXNzLmVudi5WRVJDRUxfRU5WID09PSAncHJldmlldycgPyAndXNlLWNyZWRlbnRpYWxzJyA6IHVuZGVmaW5lZFxuICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnZ2VuZXJhdG9yJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmdlbmVyYXRvclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdrZXl3b3JkcycsXG4gICAgICAgICAgICBjb250ZW50OiAoX21ldGFkYXRhX2tleXdvcmRzID0gbWV0YWRhdGEua2V5d29yZHMpID09IG51bGwgPyB2b2lkIDAgOiBfbWV0YWRhdGFfa2V5d29yZHMuam9pbignLCcpXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ3JlZmVycmVyJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLnJlZmVycmVyXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2NyZWF0b3InLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuY3JlYXRvclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdwdWJsaXNoZXInLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEucHVibGlzaGVyXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ3JvYm90cycsXG4gICAgICAgICAgICBjb250ZW50OiAoX21ldGFkYXRhX3JvYm90cyA9IG1ldGFkYXRhLnJvYm90cykgPT0gbnVsbCA/IHZvaWQgMCA6IF9tZXRhZGF0YV9yb2JvdHMuYmFzaWNcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnZ29vZ2xlYm90JyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfbWV0YWRhdGFfcm9ib3RzMSA9IG1ldGFkYXRhLnJvYm90cykgPT0gbnVsbCA/IHZvaWQgMCA6IF9tZXRhZGF0YV9yb2JvdHMxLmdvb2dsZUJvdFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdhYnN0cmFjdCcsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5hYnN0cmFjdFxuICAgICAgICB9KSxcbiAgICAgICAgLi4ubWV0YWRhdGEuYXJjaGl2ZXMgPyBtZXRhZGF0YS5hcmNoaXZlcy5tYXAoKGFyY2hpdmUpPT4vKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgcmVsOiBcImFyY2hpdmVzXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogYXJjaGl2ZVxuICAgICAgICAgICAgfSkpIDogW10sXG4gICAgICAgIC4uLm1ldGFkYXRhLmFzc2V0cyA/IG1ldGFkYXRhLmFzc2V0cy5tYXAoKGFzc2V0KT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgIHJlbDogXCJhc3NldHNcIixcbiAgICAgICAgICAgICAgICBocmVmOiBhc3NldFxuICAgICAgICAgICAgfSkpIDogW10sXG4gICAgICAgIC4uLm1ldGFkYXRhLmJvb2ttYXJrcyA/IG1ldGFkYXRhLmJvb2ttYXJrcy5tYXAoKGJvb2ttYXJrKT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgIHJlbDogXCJib29rbWFya3NcIixcbiAgICAgICAgICAgICAgICBocmVmOiBib29rbWFya1xuICAgICAgICAgICAgfSkpIDogW10sXG4gICAgICAgIC4uLm1ldGFkYXRhLnBhZ2luYXRpb24gPyBbXG4gICAgICAgICAgICBtZXRhZGF0YS5wYWdpbmF0aW9uLnByZXZpb3VzID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgIHJlbDogXCJwcmV2XCIsXG4gICAgICAgICAgICAgICAgaHJlZjogbWV0YWRhdGEucGFnaW5hdGlvbi5wcmV2aW91c1xuICAgICAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICAgICAgbWV0YWRhdGEucGFnaW5hdGlvbi5uZXh0ID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgIHJlbDogXCJuZXh0XCIsXG4gICAgICAgICAgICAgICAgaHJlZjogbWV0YWRhdGEucGFnaW5hdGlvbi5uZXh0XG4gICAgICAgICAgICB9KSA6IG51bGxcbiAgICAgICAgXSA6IFtdLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2NhdGVnb3J5JyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmNhdGVnb3J5XG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2NsYXNzaWZpY2F0aW9uJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmNsYXNzaWZpY2F0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5tZXRhZGF0YS5vdGhlciA/IE9iamVjdC5lbnRyaWVzKG1ldGFkYXRhLm90aGVyKS5tYXAoKFtuYW1lLCBjb250ZW50XSk9PntcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQubWFwKChjb250ZW50SXRlbSk9PigwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogY29udGVudEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSA6IFtdXG4gICAgXSk7XG59XG5mdW5jdGlvbiBJdHVuZXNNZXRhKHsgaXR1bmVzIH0pIHtcbiAgICBpZiAoIWl0dW5lcykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyBhcHBJZCwgYXBwQXJndW1lbnQgfSA9IGl0dW5lcztcbiAgICBsZXQgY29udGVudCA9IGBhcHAtaWQ9JHthcHBJZH1gO1xuICAgIGlmIChhcHBBcmd1bWVudCkge1xuICAgICAgICBjb250ZW50ICs9IGAsIGFwcC1hcmd1bWVudD0ke2FwcEFyZ3VtZW50fWA7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgIG5hbWU6IFwiYXBwbGUtaXR1bmVzLWFwcFwiLFxuICAgICAgICBjb250ZW50OiBjb250ZW50XG4gICAgfSk7XG59XG5mdW5jdGlvbiBGYWNlYm9va01ldGEoeyBmYWNlYm9vayB9KSB7XG4gICAgaWYgKCFmYWNlYm9vaykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyBhcHBJZCwgYWRtaW5zIH0gPSBmYWNlYm9vaztcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgYXBwSWQgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgICAgICBwcm9wZXJ0eTogXCJmYjphcHBfaWRcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IGFwcElkXG4gICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgLi4uYWRtaW5zID8gYWRtaW5zLm1hcCgoYWRtaW4pPT4vKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgICAgICAgICAgcHJvcGVydHk6IFwiZmI6YWRtaW5zXCIsXG4gICAgICAgICAgICAgICAgY29udGVudDogYWRtaW5cbiAgICAgICAgICAgIH0pKSA6IFtdXG4gICAgXSk7XG59XG5mdW5jdGlvbiBQaW50ZXJlc3RNZXRhKHsgcGludGVyZXN0IH0pIHtcbiAgICBpZiAoIXBpbnRlcmVzdCB8fCAhcGludGVyZXN0LnJpY2hQaW4pIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgcmljaFBpbiB9ID0gcGludGVyZXN0O1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgIHByb3BlcnR5OiBcInBpbnRlcmVzdC1yaWNoLXBpblwiLFxuICAgICAgICBjb250ZW50OiByaWNoUGluLnRvU3RyaW5nKClcbiAgICB9KTtcbn1cbmNvbnN0IGZvcm1hdERldGVjdGlvbktleXMgPSBbXG4gICAgJ3RlbGVwaG9uZScsXG4gICAgJ2RhdGUnLFxuICAgICdhZGRyZXNzJyxcbiAgICAnZW1haWwnLFxuICAgICd1cmwnXG5dO1xuZnVuY3Rpb24gRm9ybWF0RGV0ZWN0aW9uTWV0YSh7IGZvcm1hdERldGVjdGlvbiB9KSB7XG4gICAgaWYgKCFmb3JtYXREZXRlY3Rpb24pIHJldHVybiBudWxsO1xuICAgIGxldCBjb250ZW50ID0gJyc7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgZm9ybWF0RGV0ZWN0aW9uS2V5cyl7XG4gICAgICAgIGlmIChrZXkgaW4gZm9ybWF0RGV0ZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoY29udGVudCkgY29udGVudCArPSAnLCAnO1xuICAgICAgICAgICAgY29udGVudCArPSBgJHtrZXl9PW5vYDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICBuYW1lOiBcImZvcm1hdC1kZXRlY3Rpb25cIixcbiAgICAgICAgY29udGVudDogY29udGVudFxuICAgIH0pO1xufVxuZnVuY3Rpb24gQXBwbGVXZWJBcHBNZXRhKHsgYXBwbGVXZWJBcHAgfSkge1xuICAgIGlmICghYXBwbGVXZWJBcHApIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgY2FwYWJsZSwgdGl0bGUsIHN0YXJ0dXBJbWFnZSwgc3RhdHVzQmFyU3R5bGUgfSA9IGFwcGxlV2ViQXBwO1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICBjYXBhYmxlID8gKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdtb2JpbGUtd2ViLWFwcC1jYXBhYmxlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICd5ZXMnXG4gICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZScsXG4gICAgICAgICAgICBjb250ZW50OiB0aXRsZVxuICAgICAgICB9KSxcbiAgICAgICAgc3RhcnR1cEltYWdlID8gc3RhcnR1cEltYWdlLm1hcCgoaW1hZ2UpPT4vKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgaHJlZjogaW1hZ2UudXJsLFxuICAgICAgICAgICAgICAgIG1lZGlhOiBpbWFnZS5tZWRpYSxcbiAgICAgICAgICAgICAgICByZWw6IFwiYXBwbGUtdG91Y2gtc3RhcnR1cC1pbWFnZVwiXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBzdGF0dXNCYXJTdHlsZSA/ICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZScsXG4gICAgICAgICAgICBjb250ZW50OiBzdGF0dXNCYXJTdHlsZVxuICAgICAgICB9KSA6IG51bGxcbiAgICBdKTtcbn1cbmZ1bmN0aW9uIFZlcmlmaWNhdGlvbk1ldGEoeyB2ZXJpZmljYXRpb24gfSkge1xuICAgIGlmICghdmVyaWZpY2F0aW9uKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgbmFtZVByZWZpeDogJ2dvb2dsZS1zaXRlLXZlcmlmaWNhdGlvbicsXG4gICAgICAgICAgICBjb250ZW50czogdmVyaWZpY2F0aW9uLmdvb2dsZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgbmFtZVByZWZpeDogJ3lfa2V5JyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiB2ZXJpZmljYXRpb24ueWFob29cbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6ICd5YW5kZXgtdmVyaWZpY2F0aW9uJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiB2ZXJpZmljYXRpb24ueWFuZGV4XG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiAnbWUnLFxuICAgICAgICAgICAgY29udGVudHM6IHZlcmlmaWNhdGlvbi5tZVxuICAgICAgICB9KSxcbiAgICAgICAgLi4udmVyaWZpY2F0aW9uLm90aGVyID8gT2JqZWN0LmVudHJpZXModmVyaWZpY2F0aW9uLm90aGVyKS5tYXAoKFtrZXksIHZhbHVlXSk9PigwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICBuYW1lUHJlZml4OiBrZXksXG4gICAgICAgICAgICAgICAgY29udGVudHM6IHZhbHVlXG4gICAgICAgICAgICB9KSkgOiBbXVxuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXNpYy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/icon-mark.js ***! \*******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/lib/metadata/generate/icon-mark.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanMvX19uZXh0anMtaW50ZXJuYWwtcHJveHkuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuY29uc3QgeyBjcmVhdGVQcm94eSB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eVwiKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVByb3h5KFwiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/icons.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"IconsMetadata\", ({\n enumerable: true,\n get: function() {\n return IconsMetadata;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _iconmark = __webpack_require__(/*! ./icon-mark */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\");\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nfunction IconDescriptorLink({ icon }) {\n const { url, rel = 'icon', ...props } = icon;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: rel,\n href: url.toString(),\n ...props\n });\n}\nfunction IconLink({ rel, icon }) {\n if (typeof icon === 'object' && !(icon instanceof URL)) {\n if (!icon.rel && rel) icon.rel = rel;\n return IconDescriptorLink({\n icon\n });\n } else {\n const href = icon.toString();\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: rel,\n href: href\n });\n }\n}\nfunction IconsMetadata({ icons }) {\n if (!icons) return null;\n const shortcutList = icons.shortcut;\n const iconList = icons.icon;\n const appleList = icons.apple;\n const otherList = icons.other;\n const hasIcon = Boolean((shortcutList == null ? void 0 : shortcutList.length) || (iconList == null ? void 0 : iconList.length) || (appleList == null ? void 0 : appleList.length) || (otherList == null ? void 0 : otherList.length));\n if (!hasIcon) return null;\n return (0, _meta.MetaFilter)([\n shortcutList ? shortcutList.map((icon)=>IconLink({\n rel: 'shortcut icon',\n icon\n })) : null,\n iconList ? iconList.map((icon)=>IconLink({\n rel: 'icon',\n icon\n })) : null,\n appleList ? appleList.map((icon)=>IconLink({\n rel: 'apple-touch-icon',\n icon\n })) : null,\n otherList ? otherList.map((icon)=>IconDescriptorLink({\n icon\n })) : null,\n hasIcon ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_iconmark.IconMark, {}) : null\n ]);\n}\n\n//# sourceMappingURL=icons.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29ucy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQixtQkFBTyxDQUFDLHlIQUFtQjtBQUMvQyxrQkFBa0IsbUJBQU8sQ0FBQyxzRkFBYTtBQUN2QyxjQUFjLG1CQUFPLENBQUMsNEVBQVE7QUFDOUIsOEJBQThCLE1BQU07QUFDcEMsWUFBWSw4QkFBOEI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHlCQUF5QixPQUFPO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiLDJFQUEyRTtBQUMzRTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dlbmVyYXRlL2ljb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSWNvbnNNZXRhZGF0YVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSWNvbnNNZXRhZGF0YTtcbiAgICB9XG59KTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX2ljb25tYXJrID0gcmVxdWlyZShcIi4vaWNvbi1tYXJrXCIpO1xuY29uc3QgX21ldGEgPSByZXF1aXJlKFwiLi9tZXRhXCIpO1xuZnVuY3Rpb24gSWNvbkRlc2NyaXB0b3JMaW5rKHsgaWNvbiB9KSB7XG4gICAgY29uc3QgeyB1cmwsIHJlbCA9ICdpY29uJywgLi4ucHJvcHMgfSA9IGljb247XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgcmVsOiByZWwsXG4gICAgICAgIGhyZWY6IHVybC50b1N0cmluZygpLFxuICAgICAgICAuLi5wcm9wc1xuICAgIH0pO1xufVxuZnVuY3Rpb24gSWNvbkxpbmsoeyByZWwsIGljb24gfSkge1xuICAgIGlmICh0eXBlb2YgaWNvbiA9PT0gJ29iamVjdCcgJiYgIShpY29uIGluc3RhbmNlb2YgVVJMKSkge1xuICAgICAgICBpZiAoIWljb24ucmVsICYmIHJlbCkgaWNvbi5yZWwgPSByZWw7XG4gICAgICAgIHJldHVybiBJY29uRGVzY3JpcHRvckxpbmsoe1xuICAgICAgICAgICAgaWNvblxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBocmVmID0gaWNvbi50b1N0cmluZygpO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgcmVsOiByZWwsXG4gICAgICAgICAgICBocmVmOiBocmVmXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIEljb25zTWV0YWRhdGEoeyBpY29ucyB9KSB7XG4gICAgaWYgKCFpY29ucykgcmV0dXJuIG51bGw7XG4gICAgY29uc3Qgc2hvcnRjdXRMaXN0ID0gaWNvbnMuc2hvcnRjdXQ7XG4gICAgY29uc3QgaWNvbkxpc3QgPSBpY29ucy5pY29uO1xuICAgIGNvbnN0IGFwcGxlTGlzdCA9IGljb25zLmFwcGxlO1xuICAgIGNvbnN0IG90aGVyTGlzdCA9IGljb25zLm90aGVyO1xuICAgIGNvbnN0IGhhc0ljb24gPSBCb29sZWFuKChzaG9ydGN1dExpc3QgPT0gbnVsbCA/IHZvaWQgMCA6IHNob3J0Y3V0TGlzdC5sZW5ndGgpIHx8IChpY29uTGlzdCA9PSBudWxsID8gdm9pZCAwIDogaWNvbkxpc3QubGVuZ3RoKSB8fCAoYXBwbGVMaXN0ID09IG51bGwgPyB2b2lkIDAgOiBhcHBsZUxpc3QubGVuZ3RoKSB8fCAob3RoZXJMaXN0ID09IG51bGwgPyB2b2lkIDAgOiBvdGhlckxpc3QubGVuZ3RoKSk7XG4gICAgaWYgKCFoYXNJY29uKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgc2hvcnRjdXRMaXN0ID8gc2hvcnRjdXRMaXN0Lm1hcCgoaWNvbik9Pkljb25MaW5rKHtcbiAgICAgICAgICAgICAgICByZWw6ICdzaG9ydGN1dCBpY29uJyxcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBpY29uTGlzdCA/IGljb25MaXN0Lm1hcCgoaWNvbik9Pkljb25MaW5rKHtcbiAgICAgICAgICAgICAgICByZWw6ICdpY29uJyxcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBhcHBsZUxpc3QgPyBhcHBsZUxpc3QubWFwKChpY29uKT0+SWNvbkxpbmsoe1xuICAgICAgICAgICAgICAgIHJlbDogJ2FwcGxlLXRvdWNoLWljb24nLFxuICAgICAgICAgICAgICAgIGljb25cbiAgICAgICAgICAgIH0pKSA6IG51bGwsXG4gICAgICAgIG90aGVyTGlzdCA/IG90aGVyTGlzdC5tYXAoKGljb24pPT5JY29uRGVzY3JpcHRvckxpbmsoe1xuICAgICAgICAgICAgICAgIGljb25cbiAgICAgICAgICAgIH0pKSA6IG51bGwsXG4gICAgICAgIGhhc0ljb24gPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9pY29ubWFyay5JY29uTWFyaywge30pIDogbnVsbFxuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pY29ucy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/meta.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Meta: function() {\n return Meta;\n },\n MetaFilter: function() {\n return MetaFilter;\n },\n MultiMeta: function() {\n return MultiMeta;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _nonnullable = __webpack_require__(/*! ../../non-nullable */ \"(rsc)/./node_modules/next/dist/lib/non-nullable.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction Meta({ name, property, content, media }) {\n if (typeof content !== 'undefined' && content !== null && content !== '') {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n ...name ? {\n name\n } : {\n property\n },\n ...media ? {\n media\n } : undefined,\n content: typeof content === 'string' ? content : content.toString()\n });\n }\n return null;\n}\nfunction MetaFilter(items) {\n const acc = [];\n for (const item of items){\n if (Array.isArray(item)) {\n acc.push(...item.filter(_nonnullable.nonNullable));\n } else if ((0, _nonnullable.nonNullable)(item)) {\n acc.push(item);\n }\n }\n return acc;\n}\nfunction camelToSnake(camelCaseStr) {\n return camelCaseStr.replace(/([A-Z])/g, function(match) {\n return '_' + match.toLowerCase();\n });\n}\nconst aliasPropPrefixes = new Set([\n 'og:image',\n 'twitter:image',\n 'og:video',\n 'og:audio'\n]);\nfunction getMetaKey(prefix, key) {\n // Use `twitter:image` and `og:image` instead of `twitter:image:url` and `og:image:url`\n // to be more compatible as it's a more common format.\n // `og:video` & `og:audio` do not have a `:url` suffix alias\n if (aliasPropPrefixes.has(prefix) && key === 'url') {\n return prefix;\n }\n if (prefix.startsWith('og:') || prefix.startsWith('twitter:')) {\n key = camelToSnake(key);\n }\n return prefix + ':' + key;\n}\nfunction ExtendMeta({ content, namePrefix, propertyPrefix }) {\n if (!content) return null;\n return MetaFilter(Object.entries(content).map(([k, v])=>{\n return typeof v === 'undefined' ? null : Meta({\n ...propertyPrefix && {\n property: getMetaKey(propertyPrefix, k)\n },\n ...namePrefix && {\n name: getMetaKey(namePrefix, k)\n },\n content: typeof v === 'string' ? v : v == null ? void 0 : v.toString()\n });\n }));\n}\nfunction MultiMeta({ propertyPrefix, namePrefix, contents }) {\n if (typeof contents === 'undefined' || contents === null) {\n return null;\n }\n return MetaFilter(contents.map((content)=>{\n if (typeof content === 'string' || typeof content === 'number' || content instanceof URL) {\n return Meta({\n ...propertyPrefix ? {\n property: propertyPrefix\n } : {\n name: namePrefix\n },\n content\n });\n } else {\n return ExtendMeta({\n namePrefix,\n propertyPrefix,\n content\n });\n }\n }));\n}\n\n//# sourceMappingURL=meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9tZXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLHNEQUFzRCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3JFLHFCQUFxQixtQkFBTyxDQUFDLDhFQUFvQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdDQUFnQztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixxQ0FBcUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBLHFCQUFxQixzQ0FBc0M7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvbWV0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE1ldGE6IG51bGwsXG4gICAgTWV0YUZpbHRlcjogbnVsbCxcbiAgICBNdWx0aU1ldGE6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNZXRhO1xuICAgIH0sXG4gICAgTWV0YUZpbHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNZXRhRmlsdGVyO1xuICAgIH0sXG4gICAgTXVsdGlNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE11bHRpTWV0YTtcbiAgICB9XG59KTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF9ub25udWxsYWJsZSA9IHJlcXVpcmUoXCIuLi8uLi9ub24tbnVsbGFibGVcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIE1ldGEoeyBuYW1lLCBwcm9wZXJ0eSwgY29udGVudCwgbWVkaWEgfSkge1xuICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgY29udGVudCAhPT0gbnVsbCAmJiBjb250ZW50ICE9PSAnJykge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgLi4ubmFtZSA/IHtcbiAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgIHByb3BlcnR5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4ubWVkaWEgPyB7XG4gICAgICAgICAgICAgICAgbWVkaWFcbiAgICAgICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjb250ZW50OiB0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycgPyBjb250ZW50IDogY29udGVudC50b1N0cmluZygpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIE1ldGFGaWx0ZXIoaXRlbXMpIHtcbiAgICBjb25zdCBhY2MgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpe1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xuICAgICAgICAgICAgYWNjLnB1c2goLi4uaXRlbS5maWx0ZXIoX25vbm51bGxhYmxlLm5vbk51bGxhYmxlKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoKDAsIF9ub25udWxsYWJsZS5ub25OdWxsYWJsZSkoaXRlbSkpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG59XG5mdW5jdGlvbiBjYW1lbFRvU25ha2UoY2FtZWxDYXNlU3RyKSB7XG4gICAgcmV0dXJuIGNhbWVsQ2FzZVN0ci5yZXBsYWNlKC8oW0EtWl0pL2csIGZ1bmN0aW9uKG1hdGNoKSB7XG4gICAgICAgIHJldHVybiAnXycgKyBtYXRjaC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xufVxuY29uc3QgYWxpYXNQcm9wUHJlZml4ZXMgPSBuZXcgU2V0KFtcbiAgICAnb2c6aW1hZ2UnLFxuICAgICd0d2l0dGVyOmltYWdlJyxcbiAgICAnb2c6dmlkZW8nLFxuICAgICdvZzphdWRpbydcbl0pO1xuZnVuY3Rpb24gZ2V0TWV0YUtleShwcmVmaXgsIGtleSkge1xuICAgIC8vIFVzZSBgdHdpdHRlcjppbWFnZWAgYW5kIGBvZzppbWFnZWAgaW5zdGVhZCBvZiBgdHdpdHRlcjppbWFnZTp1cmxgIGFuZCBgb2c6aW1hZ2U6dXJsYFxuICAgIC8vIHRvIGJlIG1vcmUgY29tcGF0aWJsZSBhcyBpdCdzIGEgbW9yZSBjb21tb24gZm9ybWF0LlxuICAgIC8vIGBvZzp2aWRlb2AgJiBgb2c6YXVkaW9gIGRvIG5vdCBoYXZlIGEgYDp1cmxgIHN1ZmZpeCBhbGlhc1xuICAgIGlmIChhbGlhc1Byb3BQcmVmaXhlcy5oYXMocHJlZml4KSAmJiBrZXkgPT09ICd1cmwnKSB7XG4gICAgICAgIHJldHVybiBwcmVmaXg7XG4gICAgfVxuICAgIGlmIChwcmVmaXguc3RhcnRzV2l0aCgnb2c6JykgfHwgcHJlZml4LnN0YXJ0c1dpdGgoJ3R3aXR0ZXI6JykpIHtcbiAgICAgICAga2V5ID0gY2FtZWxUb1NuYWtlKGtleSk7XG4gICAgfVxuICAgIHJldHVybiBwcmVmaXggKyAnOicgKyBrZXk7XG59XG5mdW5jdGlvbiBFeHRlbmRNZXRhKHsgY29udGVudCwgbmFtZVByZWZpeCwgcHJvcGVydHlQcmVmaXggfSkge1xuICAgIGlmICghY29udGVudCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIE1ldGFGaWx0ZXIoT2JqZWN0LmVudHJpZXMoY29udGVudCkubWFwKChbaywgdl0pPT57XG4gICAgICAgIHJldHVybiB0eXBlb2YgdiA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogTWV0YSh7XG4gICAgICAgICAgICAuLi5wcm9wZXJ0eVByZWZpeCAmJiB7XG4gICAgICAgICAgICAgICAgcHJvcGVydHk6IGdldE1ldGFLZXkocHJvcGVydHlQcmVmaXgsIGspXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4ubmFtZVByZWZpeCAmJiB7XG4gICAgICAgICAgICAgICAgbmFtZTogZ2V0TWV0YUtleShuYW1lUHJlZml4LCBrKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IHYgOiB2ID09IG51bGwgPyB2b2lkIDAgOiB2LnRvU3RyaW5nKClcbiAgICAgICAgfSk7XG4gICAgfSkpO1xufVxuZnVuY3Rpb24gTXVsdGlNZXRhKHsgcHJvcGVydHlQcmVmaXgsIG5hbWVQcmVmaXgsIGNvbnRlbnRzIH0pIHtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnRzID09PSAndW5kZWZpbmVkJyB8fCBjb250ZW50cyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIE1ldGFGaWx0ZXIoY29udGVudHMubWFwKChjb250ZW50KT0+e1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjb250ZW50ID09PSAnbnVtYmVyJyB8fCBjb250ZW50IGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgICAgICByZXR1cm4gTWV0YSh7XG4gICAgICAgICAgICAgICAgLi4ucHJvcGVydHlQcmVmaXggPyB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBwcm9wZXJ0eVByZWZpeFxuICAgICAgICAgICAgICAgIH0gOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWVQcmVmaXhcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEV4dGVuZE1ldGEoe1xuICAgICAgICAgICAgICAgIG5hbWVQcmVmaXgsXG4gICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXgsXG4gICAgICAgICAgICAgICAgY29udGVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1ldGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/opengraph.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppLinksMeta: function() {\n return AppLinksMeta;\n },\n OpenGraphMetadata: function() {\n return OpenGraphMetadata;\n },\n TwitterMetadata: function() {\n return TwitterMetadata;\n }\n});\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nfunction OpenGraphMetadata({ openGraph }) {\n var _openGraph_title, _openGraph_url, _openGraph_ttl;\n if (!openGraph) {\n return null;\n }\n let typedOpenGraph;\n if ('type' in openGraph) {\n const openGraphType = openGraph.type;\n switch(openGraphType){\n case 'website':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'website'\n })\n ];\n break;\n case 'article':\n var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime;\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'article'\n }),\n (0, _meta.Meta)({\n property: 'article:published_time',\n content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString()\n }),\n (0, _meta.Meta)({\n property: 'article:modified_time',\n content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString()\n }),\n (0, _meta.Meta)({\n property: 'article:expiration_time',\n content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'article:author',\n contents: openGraph.authors\n }),\n (0, _meta.Meta)({\n property: 'article:section',\n content: openGraph.section\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'article:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'book':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'book'\n }),\n (0, _meta.Meta)({\n property: 'book:isbn',\n content: openGraph.isbn\n }),\n (0, _meta.Meta)({\n property: 'book:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'book:author',\n contents: openGraph.authors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'book:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'profile':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'profile'\n }),\n (0, _meta.Meta)({\n property: 'profile:first_name',\n content: openGraph.firstName\n }),\n (0, _meta.Meta)({\n property: 'profile:last_name',\n content: openGraph.lastName\n }),\n (0, _meta.Meta)({\n property: 'profile:username',\n content: openGraph.username\n }),\n (0, _meta.Meta)({\n property: 'profile:gender',\n content: openGraph.gender\n })\n ];\n break;\n case 'music.song':\n var _openGraph_duration;\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.song'\n }),\n (0, _meta.Meta)({\n property: 'music:duration',\n content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:album',\n contents: openGraph.albums\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:musician',\n contents: openGraph.musicians\n })\n ];\n break;\n case 'music.album':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.album'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:song',\n contents: openGraph.songs\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:musician',\n contents: openGraph.musicians\n }),\n (0, _meta.Meta)({\n property: 'music:release_date',\n content: openGraph.releaseDate\n })\n ];\n break;\n case 'music.playlist':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.playlist'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:song',\n contents: openGraph.songs\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:creator',\n contents: openGraph.creators\n })\n ];\n break;\n case 'music.radio_station':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.radio_station'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:creator',\n contents: openGraph.creators\n })\n ];\n break;\n case 'video.movie':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.movie'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:actor',\n contents: openGraph.actors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:director',\n contents: openGraph.directors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:writer',\n contents: openGraph.writers\n }),\n (0, _meta.Meta)({\n property: 'video:duration',\n content: openGraph.duration\n }),\n (0, _meta.Meta)({\n property: 'video:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'video.episode':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.episode'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:actor',\n contents: openGraph.actors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:director',\n contents: openGraph.directors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:writer',\n contents: openGraph.writers\n }),\n (0, _meta.Meta)({\n property: 'video:duration',\n content: openGraph.duration\n }),\n (0, _meta.Meta)({\n property: 'video:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:tag',\n contents: openGraph.tags\n }),\n (0, _meta.Meta)({\n property: 'video:series',\n content: openGraph.series\n })\n ];\n break;\n case 'video.tv_show':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.tv_show'\n })\n ];\n break;\n case 'video.other':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.other'\n })\n ];\n break;\n default:\n const _exhaustiveCheck = openGraphType;\n throw Object.defineProperty(new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`), \"__NEXT_ERROR_CODE\", {\n value: \"E237\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return (0, _meta.MetaFilter)([\n (0, _meta.Meta)({\n property: 'og:determiner',\n content: openGraph.determiner\n }),\n (0, _meta.Meta)({\n property: 'og:title',\n content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute\n }),\n (0, _meta.Meta)({\n property: 'og:description',\n content: openGraph.description\n }),\n (0, _meta.Meta)({\n property: 'og:url',\n content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString()\n }),\n (0, _meta.Meta)({\n property: 'og:site_name',\n content: openGraph.siteName\n }),\n (0, _meta.Meta)({\n property: 'og:locale',\n content: openGraph.locale\n }),\n (0, _meta.Meta)({\n property: 'og:country_name',\n content: openGraph.countryName\n }),\n (0, _meta.Meta)({\n property: 'og:ttl',\n content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:image',\n contents: openGraph.images\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:video',\n contents: openGraph.videos\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:audio',\n contents: openGraph.audio\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:email',\n contents: openGraph.emails\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:phone_number',\n contents: openGraph.phoneNumbers\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:fax_number',\n contents: openGraph.faxNumbers\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:locale:alternate',\n contents: openGraph.alternateLocale\n }),\n ...typedOpenGraph ? typedOpenGraph : []\n ]);\n}\nfunction TwitterAppItem({ app, type }) {\n var _app_url_type, _app_url;\n return [\n (0, _meta.Meta)({\n name: `twitter:app:name:${type}`,\n content: app.name\n }),\n (0, _meta.Meta)({\n name: `twitter:app:id:${type}`,\n content: app.id[type]\n }),\n (0, _meta.Meta)({\n name: `twitter:app:url:${type}`,\n content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString()\n })\n ];\n}\nfunction TwitterMetadata({ twitter }) {\n var _twitter_title;\n if (!twitter) return null;\n const { card } = twitter;\n return (0, _meta.MetaFilter)([\n (0, _meta.Meta)({\n name: 'twitter:card',\n content: card\n }),\n (0, _meta.Meta)({\n name: 'twitter:site',\n content: twitter.site\n }),\n (0, _meta.Meta)({\n name: 'twitter:site:id',\n content: twitter.siteId\n }),\n (0, _meta.Meta)({\n name: 'twitter:creator',\n content: twitter.creator\n }),\n (0, _meta.Meta)({\n name: 'twitter:creator:id',\n content: twitter.creatorId\n }),\n (0, _meta.Meta)({\n name: 'twitter:title',\n content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute\n }),\n (0, _meta.Meta)({\n name: 'twitter:description',\n content: twitter.description\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'twitter:image',\n contents: twitter.images\n }),\n ...card === 'player' ? twitter.players.flatMap((player)=>[\n (0, _meta.Meta)({\n name: 'twitter:player',\n content: player.playerUrl.toString()\n }),\n (0, _meta.Meta)({\n name: 'twitter:player:stream',\n content: player.streamUrl.toString()\n }),\n (0, _meta.Meta)({\n name: 'twitter:player:width',\n content: player.width\n }),\n (0, _meta.Meta)({\n name: 'twitter:player:height',\n content: player.height\n })\n ]) : [],\n ...card === 'app' ? [\n TwitterAppItem({\n app: twitter.app,\n type: 'iphone'\n }),\n TwitterAppItem({\n app: twitter.app,\n type: 'ipad'\n }),\n TwitterAppItem({\n app: twitter.app,\n type: 'googleplay'\n })\n ] : []\n ]);\n}\nfunction AppLinksMeta({ appLinks }) {\n if (!appLinks) return null;\n return (0, _meta.MetaFilter)([\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:ios',\n contents: appLinks.ios\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:iphone',\n contents: appLinks.iphone\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:ipad',\n contents: appLinks.ipad\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:android',\n contents: appLinks.android\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows_phone',\n contents: appLinks.windows_phone\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows',\n contents: appLinks.windows\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows_universal',\n contents: appLinks.windows_universal\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:web',\n contents: appLinks.web\n })\n ]);\n}\n\n//# sourceMappingURL=opengraph.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9vcGVuZ3JhcGguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxjQUFjLG1CQUFPLENBQUMsNEVBQVE7QUFDOUIsNkJBQTZCLFdBQVc7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUZBQWlGLGlCQUFpQjtBQUNsRztBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLFdBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLEtBQUs7QUFDM0M7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxvQ0FBb0MsS0FBSztBQUN6QztBQUNBLFNBQVM7QUFDVDtBQUNBLHFDQUFxQyxLQUFLO0FBQzFDO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSwyQkFBMkIsU0FBUztBQUNwQztBQUNBO0FBQ0EsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9vcGVuZ3JhcGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBBcHBMaW5rc01ldGE6IG51bGwsXG4gICAgT3BlbkdyYXBoTWV0YWRhdGE6IG51bGwsXG4gICAgVHdpdHRlck1ldGFkYXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFwcExpbmtzTWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBMaW5rc01ldGE7XG4gICAgfSxcbiAgICBPcGVuR3JhcGhNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBPcGVuR3JhcGhNZXRhZGF0YTtcbiAgICB9LFxuICAgIFR3aXR0ZXJNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBUd2l0dGVyTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfbWV0YSA9IHJlcXVpcmUoXCIuL21ldGFcIik7XG5mdW5jdGlvbiBPcGVuR3JhcGhNZXRhZGF0YSh7IG9wZW5HcmFwaCB9KSB7XG4gICAgdmFyIF9vcGVuR3JhcGhfdGl0bGUsIF9vcGVuR3JhcGhfdXJsLCBfb3BlbkdyYXBoX3R0bDtcbiAgICBpZiAoIW9wZW5HcmFwaCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgbGV0IHR5cGVkT3BlbkdyYXBoO1xuICAgIGlmICgndHlwZScgaW4gb3BlbkdyYXBoKSB7XG4gICAgICAgIGNvbnN0IG9wZW5HcmFwaFR5cGUgPSBvcGVuR3JhcGgudHlwZTtcbiAgICAgICAgc3dpdGNoKG9wZW5HcmFwaFR5cGUpe1xuICAgICAgICAgICAgY2FzZSAnd2Vic2l0ZSc6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3dlYnNpdGUnXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FydGljbGUnOlxuICAgICAgICAgICAgICAgIHZhciBfb3BlbkdyYXBoX3B1Ymxpc2hlZFRpbWUsIF9vcGVuR3JhcGhfbW9kaWZpZWRUaW1lLCBfb3BlbkdyYXBoX2V4cGlyYXRpb25UaW1lO1xuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdhcnRpY2xlJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYXJ0aWNsZTpwdWJsaXNoZWRfdGltZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lID0gb3BlbkdyYXBoLnB1Ymxpc2hlZFRpbWUpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX3B1Ymxpc2hlZFRpbWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYXJ0aWNsZTptb2RpZmllZF90aW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IChfb3BlbkdyYXBoX21vZGlmaWVkVGltZSA9IG9wZW5HcmFwaC5tb2RpZmllZFRpbWUpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX21vZGlmaWVkVGltZS50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdhcnRpY2xlOmV4cGlyYXRpb25fdGltZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF9leHBpcmF0aW9uVGltZSA9IG9wZW5HcmFwaC5leHBpcmF0aW9uVGltZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcGVuR3JhcGhfZXhwaXJhdGlvblRpbWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhcnRpY2xlOmF1dGhvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmF1dGhvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2FydGljbGU6c2VjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguc2VjdGlvblxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhcnRpY2xlOnRhZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnRhZ3NcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm9vayc6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ2Jvb2snXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdib29rOmlzYm4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmlzYm5cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2Jvb2s6cmVsZWFzZV9kYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5yZWxlYXNlRGF0ZVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdib29rOmF1dGhvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmF1dGhvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYm9vazp0YWcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC50YWdzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Byb2ZpbGUnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdwcm9maWxlJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAncHJvZmlsZTpmaXJzdF9uYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5maXJzdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3Byb2ZpbGU6bGFzdF9uYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5sYXN0TmFtZVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAncHJvZmlsZTp1c2VybmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgudXNlcm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3Byb2ZpbGU6Z2VuZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5nZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbXVzaWMuc29uZyc6XG4gICAgICAgICAgICAgICAgdmFyIF9vcGVuR3JhcGhfZHVyYXRpb247XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ211c2ljLnNvbmcnXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdtdXNpYzpkdXJhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF9kdXJhdGlvbiA9IG9wZW5HcmFwaC5kdXJhdGlvbikgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcGVuR3JhcGhfZHVyYXRpb24udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdtdXNpYzphbGJ1bScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmFsYnVtc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdtdXNpYzptdXNpY2lhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLm11c2ljaWFuc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtdXNpYy5hbGJ1bSc6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ211c2ljLmFsYnVtJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdtdXNpYzpzb25nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguc29uZ3NcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6bXVzaWNpYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5tdXNpY2lhbnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ211c2ljOnJlbGVhc2VfZGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbXVzaWMucGxheWxpc3QnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdtdXNpYy5wbGF5bGlzdCdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6c29uZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnNvbmdzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOmNyZWF0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5jcmVhdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtdXNpYy5yYWRpb19zdGF0aW9uJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnbXVzaWMucmFkaW9fc3RhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6Y3JlYXRvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmNyZWF0b3JzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvLm1vdmllJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAndmlkZW8ubW92aWUnXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ3ZpZGVvOmFjdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguYWN0b3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ3ZpZGVvOmRpcmVjdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguZGlyZWN0b3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ3ZpZGVvOndyaXRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLndyaXRlcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3ZpZGVvOmR1cmF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5kdXJhdGlvblxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAndmlkZW86cmVsZWFzZV9kYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5yZWxlYXNlRGF0ZVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzp0YWcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC50YWdzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvLmVwaXNvZGUnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd2aWRlby5lcGlzb2RlJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzphY3RvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmFjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzpkaXJlY3RvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmRpcmVjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzp3cml0ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC53cml0ZXJzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICd2aWRlbzpkdXJhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZHVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3ZpZGVvOnJlbGVhc2VfZGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86dGFnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAndmlkZW86c2VyaWVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5zZXJpZXNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlkZW8udHZfc2hvdyc6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3ZpZGVvLnR2X3Nob3cnXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvLm90aGVyJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAndmlkZW8ub3RoZXInXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY29uc3QgX2V4aGF1c3RpdmVDaGVjayA9IG9wZW5HcmFwaFR5cGU7XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCBPcGVuR3JhcGggdHlwZTogJHtfZXhoYXVzdGl2ZUNoZWNrfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTIzN1wiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eTogJ29nOmRldGVybWluZXInLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmRldGVybWluZXJcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnRpdGxlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfb3BlbkdyYXBoX3RpdGxlID0gb3BlbkdyYXBoLnRpdGxlKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF90aXRsZS5hYnNvbHV0ZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmRlc2NyaXB0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp1cmwnLFxuICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfdXJsID0gb3BlbkdyYXBoLnVybCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcGVuR3JhcGhfdXJsLnRvU3RyaW5nKClcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnNpdGVfbmFtZScsXG4gICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguc2l0ZU5hbWVcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eTogJ29nOmxvY2FsZScsXG4gICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgubG9jYWxlXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzpjb3VudHJ5X25hbWUnLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmNvdW50cnlOYW1lXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0dGwnLFxuICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfdHRsID0gb3BlbkdyYXBoLnR0bCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcGVuR3JhcGhfdHRsLnRvU3RyaW5nKClcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6aW1hZ2UnLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5pbWFnZXNcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6dmlkZW8nLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC52aWRlb3NcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6YXVkaW8nLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdWRpb1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdvZzplbWFpbCcsXG4gICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmVtYWlsc1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdvZzpwaG9uZV9udW1iZXInLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5waG9uZU51bWJlcnNcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6ZmF4X251bWJlcicsXG4gICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmZheE51bWJlcnNcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6bG9jYWxlOmFsdGVybmF0ZScsXG4gICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmFsdGVybmF0ZUxvY2FsZVxuICAgICAgICB9KSxcbiAgICAgICAgLi4udHlwZWRPcGVuR3JhcGggPyB0eXBlZE9wZW5HcmFwaCA6IFtdXG4gICAgXSk7XG59XG5mdW5jdGlvbiBUd2l0dGVyQXBwSXRlbSh7IGFwcCwgdHlwZSB9KSB7XG4gICAgdmFyIF9hcHBfdXJsX3R5cGUsIF9hcHBfdXJsO1xuICAgIHJldHVybiBbXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiBgdHdpdHRlcjphcHA6bmFtZToke3R5cGV9YCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGFwcC5uYW1lXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogYHR3aXR0ZXI6YXBwOmlkOiR7dHlwZX1gLFxuICAgICAgICAgICAgY29udGVudDogYXBwLmlkW3R5cGVdXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogYHR3aXR0ZXI6YXBwOnVybDoke3R5cGV9YCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfYXBwX3VybCA9IGFwcC51cmwpID09IG51bGwgPyB2b2lkIDAgOiAoX2FwcF91cmxfdHlwZSA9IF9hcHBfdXJsW3R5cGVdKSA9PSBudWxsID8gdm9pZCAwIDogX2FwcF91cmxfdHlwZS50b1N0cmluZygpXG4gICAgICAgIH0pXG4gICAgXTtcbn1cbmZ1bmN0aW9uIFR3aXR0ZXJNZXRhZGF0YSh7IHR3aXR0ZXIgfSkge1xuICAgIHZhciBfdHdpdHRlcl90aXRsZTtcbiAgICBpZiAoIXR3aXR0ZXIpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgY2FyZCB9ID0gdHdpdHRlcjtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOmNhcmQnLFxuICAgICAgICAgICAgY29udGVudDogY2FyZFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOnNpdGUnLFxuICAgICAgICAgICAgY29udGVudDogdHdpdHRlci5zaXRlXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ3R3aXR0ZXI6c2l0ZTppZCcsXG4gICAgICAgICAgICBjb250ZW50OiB0d2l0dGVyLnNpdGVJZFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOmNyZWF0b3InLFxuICAgICAgICAgICAgY29udGVudDogdHdpdHRlci5jcmVhdG9yXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ3R3aXR0ZXI6Y3JlYXRvcjppZCcsXG4gICAgICAgICAgICBjb250ZW50OiB0d2l0dGVyLmNyZWF0b3JJZFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOnRpdGxlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfdHdpdHRlcl90aXRsZSA9IHR3aXR0ZXIudGl0bGUpID09IG51bGwgPyB2b2lkIDAgOiBfdHdpdHRlcl90aXRsZS5hYnNvbHV0ZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOmRlc2NyaXB0aW9uJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR3aXR0ZXIuZGVzY3JpcHRpb25cbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6ICd0d2l0dGVyOmltYWdlJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiB0d2l0dGVyLmltYWdlc1xuICAgICAgICB9KSxcbiAgICAgICAgLi4uY2FyZCA9PT0gJ3BsYXllcicgPyB0d2l0dGVyLnBsYXllcnMuZmxhdE1hcCgocGxheWVyKT0+W1xuICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOnBsYXllcicsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHBsYXllci5wbGF5ZXJVcmwudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOnBsYXllcjpzdHJlYW0nLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBwbGF5ZXIuc3RyZWFtVXJsLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpwbGF5ZXI6d2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBwbGF5ZXIud2lkdGhcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpwbGF5ZXI6aGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogcGxheWVyLmhlaWdodFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdKSA6IFtdLFxuICAgICAgICAuLi5jYXJkID09PSAnYXBwJyA/IFtcbiAgICAgICAgICAgIFR3aXR0ZXJBcHBJdGVtKHtcbiAgICAgICAgICAgICAgICBhcHA6IHR3aXR0ZXIuYXBwLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdpcGhvbmUnXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFR3aXR0ZXJBcHBJdGVtKHtcbiAgICAgICAgICAgICAgICBhcHA6IHR3aXR0ZXIuYXBwLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdpcGFkJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBUd2l0dGVyQXBwSXRlbSh7XG4gICAgICAgICAgICAgICAgYXBwOiB0d2l0dGVyLmFwcCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZ29vZ2xlcGxheSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF0gOiBbXVxuICAgIF0pO1xufVxuZnVuY3Rpb24gQXBwTGlua3NNZXRhKHsgYXBwTGlua3MgfSkge1xuICAgIGlmICghYXBwTGlua3MpIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOmlvcycsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3MuaW9zXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOmlwaG9uZScsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3MuaXBob25lXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOmlwYWQnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLmlwYWRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYWw6YW5kcm9pZCcsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3MuYW5kcm9pZFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDp3aW5kb3dzX3Bob25lJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy53aW5kb3dzX3Bob25lXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOndpbmRvd3MnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLndpbmRvd3NcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYWw6d2luZG93c191bml2ZXJzYWwnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLndpbmRvd3NfdW5pdmVyc2FsXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOndlYicsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3Mud2ViXG4gICAgICAgIH0pXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9wZW5ncmFwaC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/utils.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getOrigin: function() {\n return getOrigin;\n },\n resolveArray: function() {\n return resolveArray;\n },\n resolveAsArrayOrUndefined: function() {\n return resolveAsArrayOrUndefined;\n }\n});\nfunction resolveArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return [\n value\n ];\n}\nfunction resolveAsArrayOrUndefined(value) {\n if (typeof value === 'undefined' || value === null) {\n return undefined;\n }\n return resolveArray(value);\n}\nfunction getOrigin(url) {\n let origin = undefined;\n if (typeof url === 'string') {\n try {\n url = new URL(url);\n origin = url.origin;\n } catch {}\n }\n return origin;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dlbmVyYXRlL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZ2V0T3JpZ2luOiBudWxsLFxuICAgIHJlc29sdmVBcnJheTogbnVsbCxcbiAgICByZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldE9yaWdpbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRPcmlnaW47XG4gICAgfSxcbiAgICByZXNvbHZlQXJyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFycmF5O1xuICAgIH0sXG4gICAgcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gcmVzb2x2ZUFycmF5KHZhbHVlKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgICAgdmFsdWVcbiAgICBdO1xufVxuZnVuY3Rpb24gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlQXJyYXkodmFsdWUpO1xufVxuZnVuY3Rpb24gZ2V0T3JpZ2luKHVybCkge1xuICAgIGxldCBvcmlnaW4gPSB1bmRlZmluZWQ7XG4gICAgaWYgKHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHVybCk7XG4gICAgICAgICAgICBvcmlnaW4gPSB1cmwub3JpZ2luO1xuICAgICAgICB9IGNhdGNoICB7fVxuICAgIH1cbiAgICByZXR1cm4gb3JpZ2luO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/get-metadata-route.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fillMetadataSegment: function() {\n return fillMetadataSegment;\n },\n normalizeMetadataPageToRoute: function() {\n return normalizeMetadataPageToRoute;\n },\n normalizeMetadataRoute: function() {\n return normalizeMetadataRoute;\n }\n});\nconst _ismetadataroute = __webpack_require__(/*! ./is-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/is-metadata-route.js\");\nconst _path = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../shared/lib/isomorphic/path */ \"(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\"));\nconst _serverutils = __webpack_require__(/*! ../../server/server-utils */ \"(rsc)/./node_modules/next/dist/server/server-utils.js\");\nconst _routeregex = __webpack_require__(/*! ../../shared/lib/router/utils/route-regex */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nconst _hash = __webpack_require__(/*! ../../shared/lib/hash */ \"(rsc)/./node_modules/next/dist/shared/lib/hash.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _normalizepathsep = __webpack_require__(/*! ../../shared/lib/page-path/normalize-path-sep */ \"(rsc)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/*\n * If there's special convention like (...) or @ in the page path,\n * Give it a unique hash suffix to avoid conflicts\n *\n * e.g.\n * /opengraph-image -> /opengraph-image\n * /(post)/opengraph-image.tsx -> /opengraph-image-[0-9a-z]{6}\n *\n * Sitemap is an exception, it should not have a suffix.\n * Each sitemap contains all the urls of sub routes, we don't have the case of duplicates `/(group)/sitemap.[ext]` and `/sitemap.[ext]` since they should be the same.\n * Hence we always normalize the urls for sitemap and do not append hash suffix, and ensure user-land only contains one sitemap per pathname.\n *\n * /sitemap -> /sitemap\n * /(post)/sitemap -> /sitemap\n */ function getMetadataRouteSuffix(page) {\n // Remove the last segment and get the parent pathname\n // e.g. /parent/a/b/c -> /parent/a/b\n // e.g. /parent/opengraph-image -> /parent\n const parentPathname = _path.default.dirname(page);\n // Only apply suffix to metadata routes except for sitemaps\n if (page.endsWith('/sitemap')) {\n return '';\n }\n // Calculate the hash suffix based on the parent path\n let suffix = '';\n // Check if there's any special characters in the parent pathname.\n const segments = parentPathname.split('/');\n if (segments.some((seg)=>(0, _segment.isGroupSegment)(seg) || (0, _segment.isParallelRouteSegment)(seg))) {\n // Hash the parent path to get a unique suffix\n suffix = (0, _hash.djb2Hash)(parentPathname).toString(36).slice(0, 6);\n }\n return suffix;\n}\nfunction fillMetadataSegment(segment, params, lastSegment) {\n const pathname = (0, _apppaths.normalizeAppPath)(segment);\n const routeRegex = (0, _routeregex.getNamedRouteRegex)(pathname, {\n prefixRouteKeys: false\n });\n const route = (0, _serverutils.interpolateDynamicPath)(pathname, params, routeRegex);\n const { name, ext } = _path.default.parse(lastSegment);\n const pagePath = _path.default.posix.join(segment, name);\n const suffix = getMetadataRouteSuffix(pagePath);\n const routeSuffix = suffix ? `-${suffix}` : '';\n return (0, _normalizepathsep.normalizePathSep)(_path.default.join(route, `${name}${routeSuffix}${ext}`));\n}\nfunction normalizeMetadataRoute(page) {\n if (!(0, _ismetadataroute.isMetadataPage)(page)) {\n return page;\n }\n let route = page;\n let suffix = '';\n if (page === '/robots') {\n route += '.txt';\n } else if (page === '/manifest') {\n route += '.webmanifest';\n } else {\n suffix = getMetadataRouteSuffix(page);\n }\n // Support both /<metadata-route.ext> and custom routes /<metadata-route>/route.ts.\n // If it's a metadata file route, we need to append /[id]/route to the page.\n if (!route.endsWith('/route')) {\n const { dir, name: baseName, ext } = _path.default.parse(route);\n route = _path.default.posix.join(dir, `${baseName}${suffix ? `-${suffix}` : ''}${ext}`, 'route');\n }\n return route;\n}\nfunction normalizeMetadataPageToRoute(page, isDynamic) {\n const isRoute = page.endsWith('/route');\n const routePagePath = isRoute ? page.slice(0, -'/route'.length) : page;\n const metadataRouteExtension = routePagePath.endsWith('/sitemap') ? '.xml' : '';\n const mapped = isDynamic ? `${routePagePath}/[__metadata_id__]` : `${routePagePath}${metadataRouteExtension}`;\n return mapped + (isRoute ? '/route' : '');\n}\n\n//# sourceMappingURL=get-metadata-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZXQtbWV0YWRhdGEtcm91dGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5QkFBeUIsbUJBQU8sQ0FBQyw2RkFBcUI7QUFDdEQscURBQXFELG1CQUFPLENBQUMsc0dBQWtDO0FBQy9GLHFCQUFxQixtQkFBTyxDQUFDLHdGQUEyQjtBQUN4RCxvQkFBb0IsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDdkUsY0FBYyxtQkFBTyxDQUFDLGdGQUF1QjtBQUM3QyxrQkFBa0IsbUJBQU8sQ0FBQyxvSEFBeUM7QUFDbkUsMEJBQTBCLG1CQUFPLENBQUMsZ0lBQStDO0FBQ2pGLGlCQUFpQixtQkFBTyxDQUFDLHNGQUEwQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFlBQVksWUFBWTtBQUN4QjtBQUNBO0FBQ0EscUNBQXFDLE9BQU87QUFDNUMsZ0ZBQWdGLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSTtBQUN6RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyQkFBMkI7QUFDM0MsaURBQWlELFNBQVMsRUFBRSxhQUFhLE9BQU8sT0FBTyxFQUFFLElBQUk7QUFDN0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsY0FBYyx5QkFBeUIsY0FBYyxFQUFFLHVCQUF1QjtBQUNoSDtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dldC1tZXRhZGF0YS1yb3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZpbGxNZXRhZGF0YVNlZ21lbnQ6IG51bGwsXG4gICAgbm9ybWFsaXplTWV0YWRhdGFQYWdlVG9Sb3V0ZTogbnVsbCxcbiAgICBub3JtYWxpemVNZXRhZGF0YVJvdXRlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGZpbGxNZXRhZGF0YVNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZmlsbE1ldGFkYXRhU2VnbWVudDtcbiAgICB9LFxuICAgIG5vcm1hbGl6ZU1ldGFkYXRhUGFnZVRvUm91dGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplTWV0YWRhdGFQYWdlVG9Sb3V0ZTtcbiAgICB9LFxuICAgIG5vcm1hbGl6ZU1ldGFkYXRhUm91dGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplTWV0YWRhdGFSb3V0ZTtcbiAgICB9XG59KTtcbmNvbnN0IF9pc21ldGFkYXRhcm91dGUgPSByZXF1aXJlKFwiLi9pcy1tZXRhZGF0YS1yb3V0ZVwiKTtcbmNvbnN0IF9wYXRoID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaXNvbW9ycGhpYy9wYXRoXCIpKTtcbmNvbnN0IF9zZXJ2ZXJ1dGlscyA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvc2VydmVyLXV0aWxzXCIpO1xuY29uc3QgX3JvdXRlcmVnZXggPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXhcIik7XG5jb25zdCBfaGFzaCA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2hhc2hcIik7XG5jb25zdCBfYXBwcGF0aHMgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCIpO1xuY29uc3QgX25vcm1hbGl6ZXBhdGhzZXAgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhdGgtc2VwXCIpO1xuY29uc3QgX3NlZ21lbnQgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50XCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG4vKlxuICogSWYgdGhlcmUncyBzcGVjaWFsIGNvbnZlbnRpb24gbGlrZSAoLi4uKSBvciBAIGluIHRoZSBwYWdlIHBhdGgsXG4gKiBHaXZlIGl0IGEgdW5pcXVlIGhhc2ggc3VmZml4IHRvIGF2b2lkIGNvbmZsaWN0c1xuICpcbiAqIGUuZy5cbiAqIC9vcGVuZ3JhcGgtaW1hZ2UgLT4gL29wZW5ncmFwaC1pbWFnZVxuICogLyhwb3N0KS9vcGVuZ3JhcGgtaW1hZ2UudHN4IC0+IC9vcGVuZ3JhcGgtaW1hZ2UtWzAtOWEtel17Nn1cbiAqXG4gKiBTaXRlbWFwIGlzIGFuIGV4Y2VwdGlvbiwgaXQgc2hvdWxkIG5vdCBoYXZlIGEgc3VmZml4LlxuICogRWFjaCBzaXRlbWFwIGNvbnRhaW5zIGFsbCB0aGUgdXJscyBvZiBzdWIgcm91dGVzLCB3ZSBkb24ndCBoYXZlIHRoZSBjYXNlIG9mIGR1cGxpY2F0ZXMgYC8oZ3JvdXApL3NpdGVtYXAuW2V4dF1gIGFuZCBgL3NpdGVtYXAuW2V4dF1gIHNpbmNlIHRoZXkgc2hvdWxkIGJlIHRoZSBzYW1lLlxuICogSGVuY2Ugd2UgYWx3YXlzIG5vcm1hbGl6ZSB0aGUgdXJscyBmb3Igc2l0ZW1hcCBhbmQgZG8gbm90IGFwcGVuZCBoYXNoIHN1ZmZpeCwgYW5kIGVuc3VyZSB1c2VyLWxhbmQgb25seSBjb250YWlucyBvbmUgc2l0ZW1hcCBwZXIgcGF0aG5hbWUuXG4gKlxuICogL3NpdGVtYXAgLT4gL3NpdGVtYXBcbiAqIC8ocG9zdCkvc2l0ZW1hcCAtPiAvc2l0ZW1hcFxuICovIGZ1bmN0aW9uIGdldE1ldGFkYXRhUm91dGVTdWZmaXgocGFnZSkge1xuICAgIC8vIFJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IGFuZCBnZXQgdGhlIHBhcmVudCBwYXRobmFtZVxuICAgIC8vIGUuZy4gL3BhcmVudC9hL2IvYyAtPiAvcGFyZW50L2EvYlxuICAgIC8vIGUuZy4gL3BhcmVudC9vcGVuZ3JhcGgtaW1hZ2UgLT4gL3BhcmVudFxuICAgIGNvbnN0IHBhcmVudFBhdGhuYW1lID0gX3BhdGguZGVmYXVsdC5kaXJuYW1lKHBhZ2UpO1xuICAgIC8vIE9ubHkgYXBwbHkgc3VmZml4IHRvIG1ldGFkYXRhIHJvdXRlcyBleGNlcHQgZm9yIHNpdGVtYXBzXG4gICAgaWYgKHBhZ2UuZW5kc1dpdGgoJy9zaXRlbWFwJykpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICAvLyBDYWxjdWxhdGUgdGhlIGhhc2ggc3VmZml4IGJhc2VkIG9uIHRoZSBwYXJlbnQgcGF0aFxuICAgIGxldCBzdWZmaXggPSAnJztcbiAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGFueSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gdGhlIHBhcmVudCBwYXRobmFtZS5cbiAgICBjb25zdCBzZWdtZW50cyA9IHBhcmVudFBhdGhuYW1lLnNwbGl0KCcvJyk7XG4gICAgaWYgKHNlZ21lbnRzLnNvbWUoKHNlZyk9PigwLCBfc2VnbWVudC5pc0dyb3VwU2VnbWVudCkoc2VnKSB8fCAoMCwgX3NlZ21lbnQuaXNQYXJhbGxlbFJvdXRlU2VnbWVudCkoc2VnKSkpIHtcbiAgICAgICAgLy8gSGFzaCB0aGUgcGFyZW50IHBhdGggdG8gZ2V0IGEgdW5pcXVlIHN1ZmZpeFxuICAgICAgICBzdWZmaXggPSAoMCwgX2hhc2guZGpiMkhhc2gpKHBhcmVudFBhdGhuYW1lKS50b1N0cmluZygzNikuc2xpY2UoMCwgNik7XG4gICAgfVxuICAgIHJldHVybiBzdWZmaXg7XG59XG5mdW5jdGlvbiBmaWxsTWV0YWRhdGFTZWdtZW50KHNlZ21lbnQsIHBhcmFtcywgbGFzdFNlZ21lbnQpIHtcbiAgICBjb25zdCBwYXRobmFtZSA9ICgwLCBfYXBwcGF0aHMubm9ybWFsaXplQXBwUGF0aCkoc2VnbWVudCk7XG4gICAgY29uc3Qgcm91dGVSZWdleCA9ICgwLCBfcm91dGVyZWdleC5nZXROYW1lZFJvdXRlUmVnZXgpKHBhdGhuYW1lLCB7XG4gICAgICAgIHByZWZpeFJvdXRlS2V5czogZmFsc2VcbiAgICB9KTtcbiAgICBjb25zdCByb3V0ZSA9ICgwLCBfc2VydmVydXRpbHMuaW50ZXJwb2xhdGVEeW5hbWljUGF0aCkocGF0aG5hbWUsIHBhcmFtcywgcm91dGVSZWdleCk7XG4gICAgY29uc3QgeyBuYW1lLCBleHQgfSA9IF9wYXRoLmRlZmF1bHQucGFyc2UobGFzdFNlZ21lbnQpO1xuICAgIGNvbnN0IHBhZ2VQYXRoID0gX3BhdGguZGVmYXVsdC5wb3NpeC5qb2luKHNlZ21lbnQsIG5hbWUpO1xuICAgIGNvbnN0IHN1ZmZpeCA9IGdldE1ldGFkYXRhUm91dGVTdWZmaXgocGFnZVBhdGgpO1xuICAgIGNvbnN0IHJvdXRlU3VmZml4ID0gc3VmZml4ID8gYC0ke3N1ZmZpeH1gIDogJyc7XG4gICAgcmV0dXJuICgwLCBfbm9ybWFsaXplcGF0aHNlcC5ub3JtYWxpemVQYXRoU2VwKShfcGF0aC5kZWZhdWx0LmpvaW4ocm91dGUsIGAke25hbWV9JHtyb3V0ZVN1ZmZpeH0ke2V4dH1gKSk7XG59XG5mdW5jdGlvbiBub3JtYWxpemVNZXRhZGF0YVJvdXRlKHBhZ2UpIHtcbiAgICBpZiAoISgwLCBfaXNtZXRhZGF0YXJvdXRlLmlzTWV0YWRhdGFQYWdlKShwYWdlKSkge1xuICAgICAgICByZXR1cm4gcGFnZTtcbiAgICB9XG4gICAgbGV0IHJvdXRlID0gcGFnZTtcbiAgICBsZXQgc3VmZml4ID0gJyc7XG4gICAgaWYgKHBhZ2UgPT09ICcvcm9ib3RzJykge1xuICAgICAgICByb3V0ZSArPSAnLnR4dCc7XG4gICAgfSBlbHNlIGlmIChwYWdlID09PSAnL21hbmlmZXN0Jykge1xuICAgICAgICByb3V0ZSArPSAnLndlYm1hbmlmZXN0JztcbiAgICB9IGVsc2Uge1xuICAgICAgICBzdWZmaXggPSBnZXRNZXRhZGF0YVJvdXRlU3VmZml4KHBhZ2UpO1xuICAgIH1cbiAgICAvLyBTdXBwb3J0IGJvdGggLzxtZXRhZGF0YS1yb3V0ZS5leHQ+IGFuZCBjdXN0b20gcm91dGVzIC88bWV0YWRhdGEtcm91dGU+L3JvdXRlLnRzLlxuICAgIC8vIElmIGl0J3MgYSBtZXRhZGF0YSBmaWxlIHJvdXRlLCB3ZSBuZWVkIHRvIGFwcGVuZCAvW2lkXS9yb3V0ZSB0byB0aGUgcGFnZS5cbiAgICBpZiAoIXJvdXRlLmVuZHNXaXRoKCcvcm91dGUnKSkge1xuICAgICAgICBjb25zdCB7IGRpciwgbmFtZTogYmFzZU5hbWUsIGV4dCB9ID0gX3BhdGguZGVmYXVsdC5wYXJzZShyb3V0ZSk7XG4gICAgICAgIHJvdXRlID0gX3BhdGguZGVmYXVsdC5wb3NpeC5qb2luKGRpciwgYCR7YmFzZU5hbWV9JHtzdWZmaXggPyBgLSR7c3VmZml4fWAgOiAnJ30ke2V4dH1gLCAncm91dGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplTWV0YWRhdGFQYWdlVG9Sb3V0ZShwYWdlLCBpc0R5bmFtaWMpIHtcbiAgICBjb25zdCBpc1JvdXRlID0gcGFnZS5lbmRzV2l0aCgnL3JvdXRlJyk7XG4gICAgY29uc3Qgcm91dGVQYWdlUGF0aCA9IGlzUm91dGUgPyBwYWdlLnNsaWNlKDAsIC0nL3JvdXRlJy5sZW5ndGgpIDogcGFnZTtcbiAgICBjb25zdCBtZXRhZGF0YVJvdXRlRXh0ZW5zaW9uID0gcm91dGVQYWdlUGF0aC5lbmRzV2l0aCgnL3NpdGVtYXAnKSA/ICcueG1sJyA6ICcnO1xuICAgIGNvbnN0IG1hcHBlZCA9IGlzRHluYW1pYyA/IGAke3JvdXRlUGFnZVBhdGh9L1tfX21ldGFkYXRhX2lkX19dYCA6IGAke3JvdXRlUGFnZVBhdGh9JHttZXRhZGF0YVJvdXRlRXh0ZW5zaW9ufWA7XG4gICAgcmV0dXJuIG1hcHBlZCArIChpc1JvdXRlID8gJy9yb3V0ZScgOiAnJyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1tZXRhZGF0YS1yb3V0ZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/is-metadata-route.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/is-metadata-route.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_METADATA_ROUTE_EXTENSIONS: function() {\n return DEFAULT_METADATA_ROUTE_EXTENSIONS;\n },\n STATIC_METADATA_IMAGES: function() {\n return STATIC_METADATA_IMAGES;\n },\n getExtensionRegexString: function() {\n return getExtensionRegexString;\n },\n isMetadataPage: function() {\n return isMetadataPage;\n },\n isMetadataRoute: function() {\n return isMetadataRoute;\n },\n isMetadataRouteFile: function() {\n return isMetadataRouteFile;\n },\n isStaticMetadataRoute: function() {\n return isStaticMetadataRoute;\n }\n});\nconst _normalizepathsep = __webpack_require__(/*! ../../shared/lib/page-path/normalize-path-sep */ \"(rsc)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _isapprouteroute = __webpack_require__(/*! ../is-app-route-route */ \"(rsc)/./node_modules/next/dist/lib/is-app-route-route.js\");\nconst STATIC_METADATA_IMAGES = {\n icon: {\n filename: 'icon',\n extensions: [\n 'ico',\n 'jpg',\n 'jpeg',\n 'png',\n 'svg'\n ]\n },\n apple: {\n filename: 'apple-icon',\n extensions: [\n 'jpg',\n 'jpeg',\n 'png'\n ]\n },\n favicon: {\n filename: 'favicon',\n extensions: [\n 'ico'\n ]\n },\n openGraph: {\n filename: 'opengraph-image',\n extensions: [\n 'jpg',\n 'jpeg',\n 'png',\n 'gif'\n ]\n },\n twitter: {\n filename: 'twitter-image',\n extensions: [\n 'jpg',\n 'jpeg',\n 'png',\n 'gif'\n ]\n }\n};\nconst DEFAULT_METADATA_ROUTE_EXTENSIONS = [\n 'js',\n 'jsx',\n 'ts',\n 'tsx'\n];\nconst getExtensionRegexString = (staticExtensions, dynamicExtensions)=>{\n // If there's no possible multi dynamic routes, will not match any <name>[].<ext> files\n if (!dynamicExtensions || dynamicExtensions.length === 0) {\n return `(\\\\.(?:${staticExtensions.join('|')}))`;\n }\n return `(?:\\\\.(${staticExtensions.join('|')})|(\\\\.(${dynamicExtensions.join('|')})))`;\n};\nfunction isMetadataRouteFile(appDirRelativePath, pageExtensions, strictlyMatchExtensions) {\n // End with the extension or optional to have the extension\n // When strictlyMatchExtensions is true, it's used for match file path;\n // When strictlyMatchExtensions, the dynamic extension is skipped but\n // static extension is kept, which is usually used for matching route path.\n const trailingMatcher = (strictlyMatchExtensions ? '' : '?') + '$';\n // Match the optional variants like /opengraph-image2, /icon-a102f4.png, etc.\n const variantsMatcher = '\\\\d?';\n // The -\\w{6} is the suffix that normalized from group routes;\n const groupSuffix = strictlyMatchExtensions ? '' : '(-\\\\w{6})?';\n const suffixMatcher = `${variantsMatcher}${groupSuffix}`;\n const metadataRouteFilesRegex = [\n new RegExp(`^[\\\\\\\\/]robots${getExtensionRegexString(pageExtensions.concat('txt'), null)}${trailingMatcher}`),\n new RegExp(`^[\\\\\\\\/]manifest${getExtensionRegexString(pageExtensions.concat('webmanifest', 'json'), null)}${trailingMatcher}`),\n new RegExp(`^[\\\\\\\\/]favicon\\\\.ico$`),\n new RegExp(`[\\\\\\\\/]sitemap${getExtensionRegexString([\n 'xml'\n ], pageExtensions)}${trailingMatcher}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.icon.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.icon.extensions, pageExtensions)}${trailingMatcher}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.apple.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.apple.extensions, pageExtensions)}${trailingMatcher}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.openGraph.extensions, pageExtensions)}${trailingMatcher}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.twitter.extensions, pageExtensions)}${trailingMatcher}`)\n ];\n const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath);\n const matched = metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath));\n return matched;\n}\nfunction isStaticMetadataRoute(route) {\n // extract ext with regex\n const pathname = route.replace(/\\/route$/, '');\n const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(pathname, [], true) && // These routes can either be built by static or dynamic entrypoints,\n // so we assume they're dynamic\n pathname !== '/robots.txt' && pathname !== '/manifest.webmanifest' && !pathname.endsWith('/sitemap.xml');\n return matched;\n}\nfunction isMetadataPage(page) {\n const matched = !(0, _isapprouteroute.isAppRouteRoute)(page) && isMetadataRouteFile(page, [], false);\n return matched;\n}\nfunction isMetadataRoute(route) {\n let page = (0, _apppaths.normalizeAppPath)(route).replace(/^\\/?app\\//, '')// Remove the dynamic route id\n .replace('/[__metadata_id__]', '')// Remove the /route suffix\n .replace(/\\/route$/, '');\n if (page[0] !== '/') page = '/' + page;\n const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(page, [], false);\n return matched;\n}\n\n//# sourceMappingURL=is-metadata-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9pcy1tZXRhZGF0YS1yb3V0ZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FRTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsMEJBQTBCLG1CQUFPLENBQUMsZ0lBQStDO0FBQ2pGLGtCQUFrQixtQkFBTyxDQUFDLG9IQUF5QztBQUNuRSx5QkFBeUIsbUJBQU8sQ0FBQyx1RkFBdUI7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDJCQUEyQjtBQUNwRDtBQUNBLHFCQUFxQiwyQkFBMkIsU0FBUyw0QkFBNEI7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxHQUFHO0FBQ2xCLDhEQUE4RCxFQUFFO0FBQ2hFLDZCQUE2QixnQkFBZ0IsRUFBRSxZQUFZO0FBQzNEO0FBQ0Esb0NBQW9DLDREQUE0RCxFQUFFLGdCQUFnQjtBQUNsSCxzQ0FBc0MsNEVBQTRFLEVBQUUsZ0JBQWdCO0FBQ3BJO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0EsMkJBQTJCLEVBQUUsZ0JBQWdCO0FBQzdDLDZCQUE2QixxQ0FBcUMsRUFBRSxjQUFjLEVBQUUsZ0ZBQWdGLEVBQUUsZ0JBQWdCO0FBQ3RMLDZCQUE2QixzQ0FBc0MsRUFBRSxjQUFjLEVBQUUsaUZBQWlGLEVBQUUsZ0JBQWdCO0FBQ3hMLDZCQUE2QiwwQ0FBMEMsRUFBRSxjQUFjLEVBQUUscUZBQXFGLEVBQUUsZ0JBQWdCO0FBQ2hNLDZCQUE2Qix3Q0FBd0MsRUFBRSxjQUFjLEVBQUUsbUZBQW1GLEVBQUUsZ0JBQWdCO0FBQzVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2lzLW1ldGFkYXRhLXJvdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgREVGQVVMVF9NRVRBREFUQV9ST1VURV9FWFRFTlNJT05TOiBudWxsLFxuICAgIFNUQVRJQ19NRVRBREFUQV9JTUFHRVM6IG51bGwsXG4gICAgZ2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmc6IG51bGwsXG4gICAgaXNNZXRhZGF0YVBhZ2U6IG51bGwsXG4gICAgaXNNZXRhZGF0YVJvdXRlOiBudWxsLFxuICAgIGlzTWV0YWRhdGFSb3V0ZUZpbGU6IG51bGwsXG4gICAgaXNTdGF0aWNNZXRhZGF0YVJvdXRlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIERFRkFVTFRfTUVUQURBVEFfUk9VVEVfRVhURU5TSU9OUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBERUZBVUxUX01FVEFEQVRBX1JPVVRFX0VYVEVOU0lPTlM7XG4gICAgfSxcbiAgICBTVEFUSUNfTUVUQURBVEFfSU1BR0VTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNUQVRJQ19NRVRBREFUQV9JTUFHRVM7XG4gICAgfSxcbiAgICBnZXRFeHRlbnNpb25SZWdleFN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRFeHRlbnNpb25SZWdleFN0cmluZztcbiAgICB9LFxuICAgIGlzTWV0YWRhdGFQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTWV0YWRhdGFQYWdlO1xuICAgIH0sXG4gICAgaXNNZXRhZGF0YVJvdXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTWV0YWRhdGFSb3V0ZTtcbiAgICB9LFxuICAgIGlzTWV0YWRhdGFSb3V0ZUZpbGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNNZXRhZGF0YVJvdXRlRmlsZTtcbiAgICB9LFxuICAgIGlzU3RhdGljTWV0YWRhdGFSb3V0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1N0YXRpY01ldGFkYXRhUm91dGU7XG4gICAgfVxufSk7XG5jb25zdCBfbm9ybWFsaXplcGF0aHNlcCA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXBcIik7XG5jb25zdCBfYXBwcGF0aHMgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCIpO1xuY29uc3QgX2lzYXBwcm91dGVyb3V0ZSA9IHJlcXVpcmUoXCIuLi9pcy1hcHAtcm91dGUtcm91dGVcIik7XG5jb25zdCBTVEFUSUNfTUVUQURBVEFfSU1BR0VTID0ge1xuICAgIGljb246IHtcbiAgICAgICAgZmlsZW5hbWU6ICdpY29uJyxcbiAgICAgICAgZXh0ZW5zaW9uczogW1xuICAgICAgICAgICAgJ2ljbycsXG4gICAgICAgICAgICAnanBnJyxcbiAgICAgICAgICAgICdqcGVnJyxcbiAgICAgICAgICAgICdwbmcnLFxuICAgICAgICAgICAgJ3N2ZydcbiAgICAgICAgXVxuICAgIH0sXG4gICAgYXBwbGU6IHtcbiAgICAgICAgZmlsZW5hbWU6ICdhcHBsZS1pY29uJyxcbiAgICAgICAgZXh0ZW5zaW9uczogW1xuICAgICAgICAgICAgJ2pwZycsXG4gICAgICAgICAgICAnanBlZycsXG4gICAgICAgICAgICAncG5nJ1xuICAgICAgICBdXG4gICAgfSxcbiAgICBmYXZpY29uOiB7XG4gICAgICAgIGZpbGVuYW1lOiAnZmF2aWNvbicsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICAgICdpY28nXG4gICAgICAgIF1cbiAgICB9LFxuICAgIG9wZW5HcmFwaDoge1xuICAgICAgICBmaWxlbmFtZTogJ29wZW5ncmFwaC1pbWFnZScsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICAgICdqcGcnLFxuICAgICAgICAgICAgJ2pwZWcnLFxuICAgICAgICAgICAgJ3BuZycsXG4gICAgICAgICAgICAnZ2lmJ1xuICAgICAgICBdXG4gICAgfSxcbiAgICB0d2l0dGVyOiB7XG4gICAgICAgIGZpbGVuYW1lOiAndHdpdHRlci1pbWFnZScsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICAgICdqcGcnLFxuICAgICAgICAgICAgJ2pwZWcnLFxuICAgICAgICAgICAgJ3BuZycsXG4gICAgICAgICAgICAnZ2lmJ1xuICAgICAgICBdXG4gICAgfVxufTtcbmNvbnN0IERFRkFVTFRfTUVUQURBVEFfUk9VVEVfRVhURU5TSU9OUyA9IFtcbiAgICAnanMnLFxuICAgICdqc3gnLFxuICAgICd0cycsXG4gICAgJ3RzeCdcbl07XG5jb25zdCBnZXRFeHRlbnNpb25SZWdleFN0cmluZyA9IChzdGF0aWNFeHRlbnNpb25zLCBkeW5hbWljRXh0ZW5zaW9ucyk9PntcbiAgICAvLyBJZiB0aGVyZSdzIG5vIHBvc3NpYmxlIG11bHRpIGR5bmFtaWMgcm91dGVzLCB3aWxsIG5vdCBtYXRjaCBhbnkgPG5hbWU+W10uPGV4dD4gZmlsZXNcbiAgICBpZiAoIWR5bmFtaWNFeHRlbnNpb25zIHx8IGR5bmFtaWNFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gYChcXFxcLig/OiR7c3RhdGljRXh0ZW5zaW9ucy5qb2luKCd8Jyl9KSlgO1xuICAgIH1cbiAgICByZXR1cm4gYCg/OlxcXFwuKCR7c3RhdGljRXh0ZW5zaW9ucy5qb2luKCd8Jyl9KXwoXFxcXC4oJHtkeW5hbWljRXh0ZW5zaW9ucy5qb2luKCd8Jyl9KSkpYDtcbn07XG5mdW5jdGlvbiBpc01ldGFkYXRhUm91dGVGaWxlKGFwcERpclJlbGF0aXZlUGF0aCwgcGFnZUV4dGVuc2lvbnMsIHN0cmljdGx5TWF0Y2hFeHRlbnNpb25zKSB7XG4gICAgLy8gRW5kIHdpdGggdGhlIGV4dGVuc2lvbiBvciBvcHRpb25hbCB0byBoYXZlIHRoZSBleHRlbnNpb25cbiAgICAvLyBXaGVuIHN0cmljdGx5TWF0Y2hFeHRlbnNpb25zIGlzIHRydWUsIGl0J3MgdXNlZCBmb3IgbWF0Y2ggZmlsZSBwYXRoO1xuICAgIC8vIFdoZW4gc3RyaWN0bHlNYXRjaEV4dGVuc2lvbnMsIHRoZSBkeW5hbWljIGV4dGVuc2lvbiBpcyBza2lwcGVkIGJ1dFxuICAgIC8vIHN0YXRpYyBleHRlbnNpb24gaXMga2VwdCwgd2hpY2ggaXMgdXN1YWxseSB1c2VkIGZvciBtYXRjaGluZyByb3V0ZSBwYXRoLlxuICAgIGNvbnN0IHRyYWlsaW5nTWF0Y2hlciA9IChzdHJpY3RseU1hdGNoRXh0ZW5zaW9ucyA/ICcnIDogJz8nKSArICckJztcbiAgICAvLyBNYXRjaCB0aGUgb3B0aW9uYWwgdmFyaWFudHMgbGlrZSAvb3BlbmdyYXBoLWltYWdlMiwgL2ljb24tYTEwMmY0LnBuZywgZXRjLlxuICAgIGNvbnN0IHZhcmlhbnRzTWF0Y2hlciA9ICdcXFxcZD8nO1xuICAgIC8vIFRoZSAtXFx3ezZ9IGlzIHRoZSBzdWZmaXggdGhhdCBub3JtYWxpemVkIGZyb20gZ3JvdXAgcm91dGVzO1xuICAgIGNvbnN0IGdyb3VwU3VmZml4ID0gc3RyaWN0bHlNYXRjaEV4dGVuc2lvbnMgPyAnJyA6ICcoLVxcXFx3ezZ9KT8nO1xuICAgIGNvbnN0IHN1ZmZpeE1hdGNoZXIgPSBgJHt2YXJpYW50c01hdGNoZXJ9JHtncm91cFN1ZmZpeH1gO1xuICAgIGNvbnN0IG1ldGFkYXRhUm91dGVGaWxlc1JlZ2V4ID0gW1xuICAgICAgICBuZXcgUmVnRXhwKGBeW1xcXFxcXFxcL11yb2JvdHMke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKHBhZ2VFeHRlbnNpb25zLmNvbmNhdCgndHh0JyksIG51bGwpfSR7dHJhaWxpbmdNYXRjaGVyfWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBeW1xcXFxcXFxcL11tYW5pZmVzdCR7Z2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmcocGFnZUV4dGVuc2lvbnMuY29uY2F0KCd3ZWJtYW5pZmVzdCcsICdqc29uJyksIG51bGwpfSR7dHJhaWxpbmdNYXRjaGVyfWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBeW1xcXFxcXFxcL11mYXZpY29uXFxcXC5pY28kYCksXG4gICAgICAgIG5ldyBSZWdFeHAoYFtcXFxcXFxcXC9dc2l0ZW1hcCR7Z2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmcoW1xuICAgICAgICAgICAgJ3htbCdcbiAgICAgICAgXSwgcGFnZUV4dGVuc2lvbnMpfSR7dHJhaWxpbmdNYXRjaGVyfWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBbXFxcXFxcXFwvXSR7U1RBVElDX01FVEFEQVRBX0lNQUdFUy5pY29uLmZpbGVuYW1lfSR7c3VmZml4TWF0Y2hlcn0ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKFNUQVRJQ19NRVRBREFUQV9JTUFHRVMuaWNvbi5leHRlbnNpb25zLCBwYWdlRXh0ZW5zaW9ucyl9JHt0cmFpbGluZ01hdGNoZXJ9YCksXG4gICAgICAgIG5ldyBSZWdFeHAoYFtcXFxcXFxcXC9dJHtTVEFUSUNfTUVUQURBVEFfSU1BR0VTLmFwcGxlLmZpbGVuYW1lfSR7c3VmZml4TWF0Y2hlcn0ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKFNUQVRJQ19NRVRBREFUQV9JTUFHRVMuYXBwbGUuZXh0ZW5zaW9ucywgcGFnZUV4dGVuc2lvbnMpfSR7dHJhaWxpbmdNYXRjaGVyfWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBbXFxcXFxcXFwvXSR7U1RBVElDX01FVEFEQVRBX0lNQUdFUy5vcGVuR3JhcGguZmlsZW5hbWV9JHtzdWZmaXhNYXRjaGVyfSR7Z2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmcoU1RBVElDX01FVEFEQVRBX0lNQUdFUy5vcGVuR3JhcGguZXh0ZW5zaW9ucywgcGFnZUV4dGVuc2lvbnMpfSR7dHJhaWxpbmdNYXRjaGVyfWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBbXFxcXFxcXFwvXSR7U1RBVElDX01FVEFEQVRBX0lNQUdFUy50d2l0dGVyLmZpbGVuYW1lfSR7c3VmZml4TWF0Y2hlcn0ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKFNUQVRJQ19NRVRBREFUQV9JTUFHRVMudHdpdHRlci5leHRlbnNpb25zLCBwYWdlRXh0ZW5zaW9ucyl9JHt0cmFpbGluZ01hdGNoZXJ9YClcbiAgICBdO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRBcHBEaXJSZWxhdGl2ZVBhdGggPSAoMCwgX25vcm1hbGl6ZXBhdGhzZXAubm9ybWFsaXplUGF0aFNlcCkoYXBwRGlyUmVsYXRpdmVQYXRoKTtcbiAgICBjb25zdCBtYXRjaGVkID0gbWV0YWRhdGFSb3V0ZUZpbGVzUmVnZXguc29tZSgocik9PnIudGVzdChub3JtYWxpemVkQXBwRGlyUmVsYXRpdmVQYXRoKSk7XG4gICAgcmV0dXJuIG1hdGNoZWQ7XG59XG5mdW5jdGlvbiBpc1N0YXRpY01ldGFkYXRhUm91dGUocm91dGUpIHtcbiAgICAvLyBleHRyYWN0IGV4dCB3aXRoIHJlZ2V4XG4gICAgY29uc3QgcGF0aG5hbWUgPSByb3V0ZS5yZXBsYWNlKC9cXC9yb3V0ZSQvLCAnJyk7XG4gICAgY29uc3QgbWF0Y2hlZCA9ICgwLCBfaXNhcHByb3V0ZXJvdXRlLmlzQXBwUm91dGVSb3V0ZSkocm91dGUpICYmIGlzTWV0YWRhdGFSb3V0ZUZpbGUocGF0aG5hbWUsIFtdLCB0cnVlKSAmJiAvLyBUaGVzZSByb3V0ZXMgY2FuIGVpdGhlciBiZSBidWlsdCBieSBzdGF0aWMgb3IgZHluYW1pYyBlbnRyeXBvaW50cyxcbiAgICAvLyBzbyB3ZSBhc3N1bWUgdGhleSdyZSBkeW5hbWljXG4gICAgcGF0aG5hbWUgIT09ICcvcm9ib3RzLnR4dCcgJiYgcGF0aG5hbWUgIT09ICcvbWFuaWZlc3Qud2VibWFuaWZlc3QnICYmICFwYXRobmFtZS5lbmRzV2l0aCgnL3NpdGVtYXAueG1sJyk7XG4gICAgcmV0dXJuIG1hdGNoZWQ7XG59XG5mdW5jdGlvbiBpc01ldGFkYXRhUGFnZShwYWdlKSB7XG4gICAgY29uc3QgbWF0Y2hlZCA9ICEoMCwgX2lzYXBwcm91dGVyb3V0ZS5pc0FwcFJvdXRlUm91dGUpKHBhZ2UpICYmIGlzTWV0YWRhdGFSb3V0ZUZpbGUocGFnZSwgW10sIGZhbHNlKTtcbiAgICByZXR1cm4gbWF0Y2hlZDtcbn1cbmZ1bmN0aW9uIGlzTWV0YWRhdGFSb3V0ZShyb3V0ZSkge1xuICAgIGxldCBwYWdlID0gKDAsIF9hcHBwYXRocy5ub3JtYWxpemVBcHBQYXRoKShyb3V0ZSkucmVwbGFjZSgvXlxcLz9hcHBcXC8vLCAnJykvLyBSZW1vdmUgdGhlIGR5bmFtaWMgcm91dGUgaWRcbiAgICAucmVwbGFjZSgnL1tfX21ldGFkYXRhX2lkX19dJywgJycpLy8gUmVtb3ZlIHRoZSAvcm91dGUgc3VmZml4XG4gICAgLnJlcGxhY2UoL1xcL3JvdXRlJC8sICcnKTtcbiAgICBpZiAocGFnZVswXSAhPT0gJy8nKSBwYWdlID0gJy8nICsgcGFnZTtcbiAgICBjb25zdCBtYXRjaGVkID0gKDAsIF9pc2FwcHJvdXRlcm91dGUuaXNBcHBSb3V0ZVJvdXRlKShyb3V0ZSkgJiYgaXNNZXRhZGF0YVJvdXRlRmlsZShwYWdlLCBbXSwgZmFsc2UpO1xuICAgIHJldHVybiBtYXRjaGVkO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1tZXRhZGF0YS1yb3V0ZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/is-metadata-route.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/metadata.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/metadata.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createMetadataComponents\", ({\n enumerable: true,\n get: function() {\n return createMetadataComponents;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _basic = __webpack_require__(/*! ./generate/basic */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js\");\nconst _alternate = __webpack_require__(/*! ./generate/alternate */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js\");\nconst _opengraph = __webpack_require__(/*! ./generate/opengraph */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js\");\nconst _icons = __webpack_require__(/*! ./generate/icons */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js\");\nconst _resolvemetadata = __webpack_require__(/*! ./resolve-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js\");\nconst _meta = __webpack_require__(/*! ./generate/meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nconst _httpaccessfallback = __webpack_require__(/*! ../../client/components/http-access-fallback/http-access-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _boundaryconstants = __webpack_require__(/*! ../framework/boundary-constants */ \"(rsc)/./node_modules/next/dist/lib/framework/boundary-constants.js\");\nconst _asyncmetadata = __webpack_require__(/*! ../../client/components/metadata/async-metadata */ \"(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js\");\nconst _ispostpone = __webpack_require__(/*! ../../server/lib/router-utils/is-postpone */ \"(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\");\nconst _searchparams = __webpack_require__(/*! ../../server/request/search-params */ \"(rsc)/./node_modules/next/dist/server/request/search-params.js\");\nconst _pathname = __webpack_require__(/*! ../../server/request/pathname */ \"(rsc)/./node_modules/next/dist/server/request/pathname.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction createMetadataComponents({ tree, pathname, parsedQuery, metadataContext, getDynamicParamFromSegment, appUsingSizeAdjustment, errorType, workStore, MetadataBoundary, ViewportBoundary, serveStreamingMetadata }) {\n const searchParams = (0, _searchparams.createServerSearchParamsForMetadata)(parsedQuery, workStore);\n const pathnameForMetadata = (0, _pathname.createServerPathnameForMetadata)(pathname, workStore);\n function ViewportTree() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(ViewportBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Viewport, {})\n }),\n appUsingSizeAdjustment ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"next-size-adjust\",\n content: \"\"\n }) : null\n ]\n });\n }\n function MetadataTree() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Metadata, {})\n });\n }\n function viewport() {\n return getResolvedViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorType);\n }\n async function Viewport() {\n try {\n return await viewport();\n } catch (error) {\n if (!errorType && (0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) {\n try {\n return await getNotFoundViewport(tree, searchParams, getDynamicParamFromSegment, workStore);\n } catch {}\n }\n // We don't actually want to error in this component. We will\n // also error in the MetadataOutlet which causes the error to\n // bubble from the right position in the page to be caught by the\n // appropriate boundaries\n return null;\n }\n }\n Viewport.displayName = _boundaryconstants.VIEWPORT_BOUNDARY_NAME;\n function metadata() {\n return getResolvedMetadata(tree, pathnameForMetadata, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorType);\n }\n async function resolveFinalMetadata() {\n let result;\n let error = null;\n try {\n result = await metadata();\n return {\n metadata: result,\n error: null,\n digest: undefined\n };\n } catch (metadataErr) {\n error = metadataErr;\n if (!errorType && (0, _httpaccessfallback.isHTTPAccessFallbackError)(metadataErr)) {\n try {\n result = await getNotFoundMetadata(tree, pathnameForMetadata, searchParams, getDynamicParamFromSegment, metadataContext, workStore);\n return {\n metadata: result,\n error,\n digest: error == null ? void 0 : error.digest\n };\n } catch (notFoundMetadataErr) {\n error = notFoundMetadataErr;\n // In PPR rendering we still need to throw the postpone error.\n // If metadata is postponed, React needs to be aware of the location of error.\n if (serveStreamingMetadata && (0, _ispostpone.isPostpone)(notFoundMetadataErr)) {\n throw notFoundMetadataErr;\n }\n }\n }\n // In PPR rendering we still need to throw the postpone error.\n // If metadata is postponed, React needs to be aware of the location of error.\n if (serveStreamingMetadata && (0, _ispostpone.isPostpone)(metadataErr)) {\n throw metadataErr;\n }\n // We don't actually want to error in this component. We will\n // also error in the MetadataOutlet which causes the error to\n // bubble from the right position in the page to be caught by the\n // appropriate boundaries\n return {\n metadata: result,\n error,\n digest: error == null ? void 0 : error.digest\n };\n }\n }\n function Metadata() {\n if (!serveStreamingMetadata) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataResolver, {});\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n hidden: true,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: null,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataResolver, {})\n })\n });\n }\n async function MetadataResolver() {\n const metadataState = await resolveFinalMetadata();\n return metadataState.metadata;\n }\n Metadata.displayName = _boundaryconstants.METADATA_BOUNDARY_NAME;\n async function getMetadataReady() {\n // Only warm up metadata() call when it's blocking metadata,\n // otherwise it will be fully managed by AsyncMetadata component.\n if (!serveStreamingMetadata) {\n await metadata();\n }\n return undefined;\n }\n async function getViewportReady() {\n await viewport();\n return undefined;\n }\n function StreamingMetadataOutletImpl() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_asyncmetadata.AsyncMetadataOutlet, {\n promise: resolveFinalMetadata()\n });\n }\n const StreamingMetadataOutlet = serveStreamingMetadata ? StreamingMetadataOutletImpl : null;\n return {\n ViewportTree,\n MetadataTree,\n getViewportReady,\n getMetadataReady,\n StreamingMetadataOutlet\n };\n}\nconst getResolvedMetadata = (0, _react.cache)(getResolvedMetadataImpl);\nasync function getResolvedMetadataImpl(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n return renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorConvention);\n}\nconst getNotFoundMetadata = (0, _react.cache)(getNotFoundMetadataImpl);\nasync function getNotFoundMetadataImpl(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore) {\n const notFoundErrorConvention = 'not-found';\n return renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, notFoundErrorConvention);\n}\nconst getResolvedViewport = (0, _react.cache)(getResolvedViewportImpl);\nasync function getResolvedViewportImpl(tree, searchParams, getDynamicParamFromSegment, workStore, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n return renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorConvention);\n}\nconst getNotFoundViewport = (0, _react.cache)(getNotFoundViewportImpl);\nasync function getNotFoundViewportImpl(tree, searchParams, getDynamicParamFromSegment, workStore) {\n const notFoundErrorConvention = 'not-found';\n return renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, notFoundErrorConvention);\n}\nasync function renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorConvention) {\n const resolvedMetadata = await (0, _resolvemetadata.resolveMetadata)(tree, pathname, searchParams, errorConvention, getDynamicParamFromSegment, workStore, metadataContext);\n const elements = createMetadataElements(resolvedMetadata);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: elements.map((el, index)=>{\n return /*#__PURE__*/ (0, _react.cloneElement)(el, {\n key: index\n });\n })\n });\n}\nasync function renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorConvention) {\n const resolvedViewport = await (0, _resolvemetadata.resolveViewport)(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n const elements = createViewportElements(resolvedViewport);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: elements.map((el, index)=>{\n return /*#__PURE__*/ (0, _react.cloneElement)(el, {\n key: index\n });\n })\n });\n}\nfunction createMetadataElements(metadata) {\n return (0, _meta.MetaFilter)([\n (0, _basic.BasicMeta)({\n metadata\n }),\n (0, _alternate.AlternatesMetadata)({\n alternates: metadata.alternates\n }),\n (0, _basic.ItunesMeta)({\n itunes: metadata.itunes\n }),\n (0, _basic.FacebookMeta)({\n facebook: metadata.facebook\n }),\n (0, _basic.PinterestMeta)({\n pinterest: metadata.pinterest\n }),\n (0, _basic.FormatDetectionMeta)({\n formatDetection: metadata.formatDetection\n }),\n (0, _basic.VerificationMeta)({\n verification: metadata.verification\n }),\n (0, _basic.AppleWebAppMeta)({\n appleWebApp: metadata.appleWebApp\n }),\n (0, _opengraph.OpenGraphMetadata)({\n openGraph: metadata.openGraph\n }),\n (0, _opengraph.TwitterMetadata)({\n twitter: metadata.twitter\n }),\n (0, _opengraph.AppLinksMeta)({\n appLinks: metadata.appLinks\n }),\n (0, _icons.IconsMetadata)({\n icons: metadata.icons\n })\n ]);\n}\nfunction createViewportElements(viewport) {\n return (0, _meta.MetaFilter)([\n (0, _basic.ViewportMeta)({\n viewport: viewport\n })\n ]);\n}\n\n//# sourceMappingURL=metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDREQUEyRDtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQixtQkFBTyxDQUFDLHlIQUFtQjtBQUMvQyx1REFBdUQsbUJBQU8sQ0FBQyxpR0FBTztBQUN0RSxlQUFlLG1CQUFPLENBQUMsdUZBQWtCO0FBQ3pDLG1CQUFtQixtQkFBTyxDQUFDLCtGQUFzQjtBQUNqRCxtQkFBbUIsbUJBQU8sQ0FBQywrRkFBc0I7QUFDakQsZUFBZSxtQkFBTyxDQUFDLHVGQUFrQjtBQUN6Qyx5QkFBeUIsbUJBQU8sQ0FBQywyRkFBb0I7QUFDckQsY0FBYyxtQkFBTyxDQUFDLHFGQUFpQjtBQUN2Qyw0QkFBNEIsbUJBQU8sQ0FBQyx3S0FBbUU7QUFDdkcsMkJBQTJCLG1CQUFPLENBQUMsMkdBQWlDO0FBQ3BFLHVCQUF1QixtQkFBTyxDQUFDLG9JQUFpRDtBQUNoRixvQkFBb0IsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDdkUsc0JBQXNCLG1CQUFPLENBQUMsMEdBQW9DO0FBQ2xFLGtCQUFrQixtQkFBTyxDQUFDLGdHQUErQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxvTEFBb0w7QUFDeE47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkVBQTZFO0FBQzdFLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EscUVBQXFFO0FBQ3JFLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwRUFBMEU7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlGQUFpRjtBQUNqRixhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50c1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTWV0YWRhdGFDb21wb25lbnRzO1xuICAgIH1cbn0pO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF9iYXNpYyA9IHJlcXVpcmUoXCIuL2dlbmVyYXRlL2Jhc2ljXCIpO1xuY29uc3QgX2FsdGVybmF0ZSA9IHJlcXVpcmUoXCIuL2dlbmVyYXRlL2FsdGVybmF0ZVwiKTtcbmNvbnN0IF9vcGVuZ3JhcGggPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9vcGVuZ3JhcGhcIik7XG5jb25zdCBfaWNvbnMgPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9pY29uc1wiKTtcbmNvbnN0IF9yZXNvbHZlbWV0YWRhdGEgPSByZXF1aXJlKFwiLi9yZXNvbHZlLW1ldGFkYXRhXCIpO1xuY29uc3QgX21ldGEgPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9tZXRhXCIpO1xuY29uc3QgX2h0dHBhY2Nlc3NmYWxsYmFjayA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFja1wiKTtcbmNvbnN0IF9ib3VuZGFyeWNvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzXCIpO1xuY29uc3QgX2FzeW5jbWV0YWRhdGEgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbWV0YWRhdGEvYXN5bmMtbWV0YWRhdGFcIik7XG5jb25zdCBfaXNwb3N0cG9uZSA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL3JvdXRlci11dGlscy9pcy1wb3N0cG9uZVwiKTtcbmNvbnN0IF9zZWFyY2hwYXJhbXMgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL3JlcXVlc3Qvc2VhcmNoLXBhcmFtc1wiKTtcbmNvbnN0IF9wYXRobmFtZSA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXRobmFtZVwiKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuZnVuY3Rpb24gY3JlYXRlTWV0YWRhdGFDb21wb25lbnRzKHsgdHJlZSwgcGF0aG5hbWUsIHBhcnNlZFF1ZXJ5LCBtZXRhZGF0YUNvbnRleHQsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBhcHBVc2luZ1NpemVBZGp1c3RtZW50LCBlcnJvclR5cGUsIHdvcmtTdG9yZSwgTWV0YWRhdGFCb3VuZGFyeSwgVmlld3BvcnRCb3VuZGFyeSwgc2VydmVTdHJlYW1pbmdNZXRhZGF0YSB9KSB7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gKDAsIF9zZWFyY2hwYXJhbXMuY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGEpKHBhcnNlZFF1ZXJ5LCB3b3JrU3RvcmUpO1xuICAgIGNvbnN0IHBhdGhuYW1lRm9yTWV0YWRhdGEgPSAoMCwgX3BhdGhuYW1lLmNyZWF0ZVNlcnZlclBhdGhuYW1lRm9yTWV0YWRhdGEpKHBhdGhuYW1lLCB3b3JrU3RvcmUpO1xuICAgIGZ1bmN0aW9uIFZpZXdwb3J0VHJlZSgpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoVmlld3BvcnRCb3VuZGFyeSwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShWaWV3cG9ydCwge30pXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYXBwVXNpbmdTaXplQWRqdXN0bWVudCA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJtZXRhXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJuZXh0LXNpemUtYWRqdXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCJcbiAgICAgICAgICAgICAgICB9KSA6IG51bGxcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIE1ldGFkYXRhVHJlZSgpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoTWV0YWRhdGFCb3VuZGFyeSwge1xuICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoTWV0YWRhdGEsIHt9KVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmlld3BvcnQoKSB7XG4gICAgICAgIHJldHVybiBnZXRSZXNvbHZlZFZpZXdwb3J0KHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSwgZXJyb3JUeXBlKTtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gVmlld3BvcnQoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdmlld3BvcnQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmICghZXJyb3JUeXBlICYmICgwLCBfaHR0cGFjY2Vzc2ZhbGxiYWNrLmlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBnZXROb3RGb3VuZFZpZXdwb3J0KHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IHdhbnQgdG8gZXJyb3IgaW4gdGhpcyBjb21wb25lbnQuIFdlIHdpbGxcbiAgICAgICAgICAgIC8vIGFsc28gZXJyb3IgaW4gdGhlIE1ldGFkYXRhT3V0bGV0IHdoaWNoIGNhdXNlcyB0aGUgZXJyb3IgdG9cbiAgICAgICAgICAgIC8vIGJ1YmJsZSBmcm9tIHRoZSByaWdodCBwb3NpdGlvbiBpbiB0aGUgcGFnZSB0byBiZSBjYXVnaHQgYnkgdGhlXG4gICAgICAgICAgICAvLyBhcHByb3ByaWF0ZSBib3VuZGFyaWVzXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBWaWV3cG9ydC5kaXNwbGF5TmFtZSA9IF9ib3VuZGFyeWNvbnN0YW50cy5WSUVXUE9SVF9CT1VOREFSWV9OQU1FO1xuICAgIGZ1bmN0aW9uIG1ldGFkYXRhKCkge1xuICAgICAgICByZXR1cm4gZ2V0UmVzb2x2ZWRNZXRhZGF0YSh0cmVlLCBwYXRobmFtZUZvck1ldGFkYXRhLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBtZXRhZGF0YUNvbnRleHQsIHdvcmtTdG9yZSwgZXJyb3JUeXBlKTtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUZpbmFsTWV0YWRhdGEoKSB7XG4gICAgICAgIGxldCByZXN1bHQ7XG4gICAgICAgIGxldCBlcnJvciA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBtZXRhZGF0YSgpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogcmVzdWx0LFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgIGRpZ2VzdDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGNhdGNoIChtZXRhZGF0YUVycikge1xuICAgICAgICAgICAgZXJyb3IgPSBtZXRhZGF0YUVycjtcbiAgICAgICAgICAgIGlmICghZXJyb3JUeXBlICYmICgwLCBfaHR0cGFjY2Vzc2ZhbGxiYWNrLmlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpKG1ldGFkYXRhRXJyKSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGdldE5vdEZvdW5kTWV0YWRhdGEodHJlZSwgcGF0aG5hbWVGb3JNZXRhZGF0YSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlnZXN0OiBlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IuZGlnZXN0XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAobm90Rm91bmRNZXRhZGF0YUVycikge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IG5vdEZvdW5kTWV0YWRhdGFFcnI7XG4gICAgICAgICAgICAgICAgICAgIC8vIEluIFBQUiByZW5kZXJpbmcgd2Ugc3RpbGwgbmVlZCB0byB0aHJvdyB0aGUgcG9zdHBvbmUgZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIG1ldGFkYXRhIGlzIHBvc3Rwb25lZCwgUmVhY3QgbmVlZHMgdG8gYmUgYXdhcmUgb2YgdGhlIGxvY2F0aW9uIG9mIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICBpZiAoc2VydmVTdHJlYW1pbmdNZXRhZGF0YSAmJiAoMCwgX2lzcG9zdHBvbmUuaXNQb3N0cG9uZSkobm90Rm91bmRNZXRhZGF0YUVycikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5vdEZvdW5kTWV0YWRhdGFFcnI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJbiBQUFIgcmVuZGVyaW5nIHdlIHN0aWxsIG5lZWQgdG8gdGhyb3cgdGhlIHBvc3Rwb25lIGVycm9yLlxuICAgICAgICAgICAgLy8gSWYgbWV0YWRhdGEgaXMgcG9zdHBvbmVkLCBSZWFjdCBuZWVkcyB0byBiZSBhd2FyZSBvZiB0aGUgbG9jYXRpb24gb2YgZXJyb3IuXG4gICAgICAgICAgICBpZiAoc2VydmVTdHJlYW1pbmdNZXRhZGF0YSAmJiAoMCwgX2lzcG9zdHBvbmUuaXNQb3N0cG9uZSkobWV0YWRhdGFFcnIpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbWV0YWRhdGFFcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBhY3R1YWxseSB3YW50IHRvIGVycm9yIGluIHRoaXMgY29tcG9uZW50LiBXZSB3aWxsXG4gICAgICAgICAgICAvLyBhbHNvIGVycm9yIGluIHRoZSBNZXRhZGF0YU91dGxldCB3aGljaCBjYXVzZXMgdGhlIGVycm9yIHRvXG4gICAgICAgICAgICAvLyBidWJibGUgZnJvbSB0aGUgcmlnaHQgcG9zaXRpb24gaW4gdGhlIHBhZ2UgdG8gYmUgY2F1Z2h0IGJ5IHRoZVxuICAgICAgICAgICAgLy8gYXBwcm9wcmlhdGUgYm91bmRhcmllc1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogcmVzdWx0LFxuICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgIGRpZ2VzdDogZXJyb3IgPT0gbnVsbCA/IHZvaWQgMCA6IGVycm9yLmRpZ2VzdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBNZXRhZGF0YSgpIHtcbiAgICAgICAgaWYgKCFzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShNZXRhZGF0YVJlc29sdmVyLCB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJkaXZcIiwge1xuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX3JlYWN0LlN1c3BlbnNlLCB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IG51bGwsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoTWV0YWRhdGFSZXNvbHZlciwge30pXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gTWV0YWRhdGFSZXNvbHZlcigpIHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFTdGF0ZSA9IGF3YWl0IHJlc29sdmVGaW5hbE1ldGFkYXRhKCk7XG4gICAgICAgIHJldHVybiBtZXRhZGF0YVN0YXRlLm1ldGFkYXRhO1xuICAgIH1cbiAgICBNZXRhZGF0YS5kaXNwbGF5TmFtZSA9IF9ib3VuZGFyeWNvbnN0YW50cy5NRVRBREFUQV9CT1VOREFSWV9OQU1FO1xuICAgIGFzeW5jIGZ1bmN0aW9uIGdldE1ldGFkYXRhUmVhZHkoKSB7XG4gICAgICAgIC8vIE9ubHkgd2FybSB1cCBtZXRhZGF0YSgpIGNhbGwgd2hlbiBpdCdzIGJsb2NraW5nIG1ldGFkYXRhLFxuICAgICAgICAvLyBvdGhlcndpc2UgaXQgd2lsbCBiZSBmdWxseSBtYW5hZ2VkIGJ5IEFzeW5jTWV0YWRhdGEgY29tcG9uZW50LlxuICAgICAgICBpZiAoIXNlcnZlU3RyZWFtaW5nTWV0YWRhdGEpIHtcbiAgICAgICAgICAgIGF3YWl0IG1ldGFkYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWFkeSgpIHtcbiAgICAgICAgYXdhaXQgdmlld3BvcnQoKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gU3RyZWFtaW5nTWV0YWRhdGFPdXRsZXRJbXBsKCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfYXN5bmNtZXRhZGF0YS5Bc3luY01ldGFkYXRhT3V0bGV0LCB7XG4gICAgICAgICAgICBwcm9taXNlOiByZXNvbHZlRmluYWxNZXRhZGF0YSgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBTdHJlYW1pbmdNZXRhZGF0YU91dGxldCA9IHNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgPyBTdHJlYW1pbmdNZXRhZGF0YU91dGxldEltcGwgOiBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIFZpZXdwb3J0VHJlZSxcbiAgICAgICAgTWV0YWRhdGFUcmVlLFxuICAgICAgICBnZXRWaWV3cG9ydFJlYWR5LFxuICAgICAgICBnZXRNZXRhZGF0YVJlYWR5LFxuICAgICAgICBTdHJlYW1pbmdNZXRhZGF0YU91dGxldFxuICAgIH07XG59XG5jb25zdCBnZXRSZXNvbHZlZE1ldGFkYXRhID0gKDAsIF9yZWFjdC5jYWNoZSkoZ2V0UmVzb2x2ZWRNZXRhZGF0YUltcGwpO1xuYXN5bmMgZnVuY3Rpb24gZ2V0UmVzb2x2ZWRNZXRhZGF0YUltcGwodHJlZSwgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIG1ldGFkYXRhQ29udGV4dCwgd29ya1N0b3JlLCBlcnJvclR5cGUpIHtcbiAgICBjb25zdCBlcnJvckNvbnZlbnRpb24gPSBlcnJvclR5cGUgPT09ICdyZWRpcmVjdCcgPyB1bmRlZmluZWQgOiBlcnJvclR5cGU7XG4gICAgcmV0dXJuIHJlbmRlck1ldGFkYXRhKHRyZWUsIHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBtZXRhZGF0YUNvbnRleHQsIHdvcmtTdG9yZSwgZXJyb3JDb252ZW50aW9uKTtcbn1cbmNvbnN0IGdldE5vdEZvdW5kTWV0YWRhdGEgPSAoMCwgX3JlYWN0LmNhY2hlKShnZXROb3RGb3VuZE1ldGFkYXRhSW1wbCk7XG5hc3luYyBmdW5jdGlvbiBnZXROb3RGb3VuZE1ldGFkYXRhSW1wbCh0cmVlLCBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBub3RGb3VuZEVycm9yQ29udmVudGlvbiA9ICdub3QtZm91bmQnO1xuICAgIHJldHVybiByZW5kZXJNZXRhZGF0YSh0cmVlLCBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCB3b3JrU3RvcmUsIG5vdEZvdW5kRXJyb3JDb252ZW50aW9uKTtcbn1cbmNvbnN0IGdldFJlc29sdmVkVmlld3BvcnQgPSAoMCwgX3JlYWN0LmNhY2hlKShnZXRSZXNvbHZlZFZpZXdwb3J0SW1wbCk7XG5hc3luYyBmdW5jdGlvbiBnZXRSZXNvbHZlZFZpZXdwb3J0SW1wbCh0cmVlLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUsIGVycm9yVHlwZSkge1xuICAgIGNvbnN0IGVycm9yQ29udmVudGlvbiA9IGVycm9yVHlwZSA9PT0gJ3JlZGlyZWN0JyA/IHVuZGVmaW5lZCA6IGVycm9yVHlwZTtcbiAgICByZXR1cm4gcmVuZGVyVmlld3BvcnQodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlLCBlcnJvckNvbnZlbnRpb24pO1xufVxuY29uc3QgZ2V0Tm90Rm91bmRWaWV3cG9ydCA9ICgwLCBfcmVhY3QuY2FjaGUpKGdldE5vdEZvdW5kVmlld3BvcnRJbXBsKTtcbmFzeW5jIGZ1bmN0aW9uIGdldE5vdEZvdW5kVmlld3BvcnRJbXBsKHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IG5vdEZvdW5kRXJyb3JDb252ZW50aW9uID0gJ25vdC1mb3VuZCc7XG4gICAgcmV0dXJuIHJlbmRlclZpZXdwb3J0KHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSwgbm90Rm91bmRFcnJvckNvbnZlbnRpb24pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyTWV0YWRhdGEodHJlZSwgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIG1ldGFkYXRhQ29udGV4dCwgd29ya1N0b3JlLCBlcnJvckNvbnZlbnRpb24pIHtcbiAgICBjb25zdCByZXNvbHZlZE1ldGFkYXRhID0gYXdhaXQgKDAsIF9yZXNvbHZlbWV0YWRhdGEucmVzb2x2ZU1ldGFkYXRhKSh0cmVlLCBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUsIG1ldGFkYXRhQ29udGV4dCk7XG4gICAgY29uc3QgZWxlbWVudHMgPSBjcmVhdGVNZXRhZGF0YUVsZW1lbnRzKHJlc29sdmVkTWV0YWRhdGEpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiBlbGVtZW50cy5tYXAoKGVsLCBpbmRleCk9PntcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShlbCwge1xuICAgICAgICAgICAgICAgIGtleTogaW5kZXhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyVmlld3BvcnQodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlLCBlcnJvckNvbnZlbnRpb24pIHtcbiAgICBjb25zdCByZXNvbHZlZFZpZXdwb3J0ID0gYXdhaXQgKDAsIF9yZXNvbHZlbWV0YWRhdGEucmVzb2x2ZVZpZXdwb3J0KSh0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSk7XG4gICAgY29uc3QgZWxlbWVudHMgPSBjcmVhdGVWaWV3cG9ydEVsZW1lbnRzKHJlc29sdmVkVmlld3BvcnQpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiBlbGVtZW50cy5tYXAoKGVsLCBpbmRleCk9PntcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShlbCwge1xuICAgICAgICAgICAgICAgIGtleTogaW5kZXhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlTWV0YWRhdGFFbGVtZW50cyhtZXRhZGF0YSkge1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAoMCwgX2Jhc2ljLkJhc2ljTWV0YSkoe1xuICAgICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfYWx0ZXJuYXRlLkFsdGVybmF0ZXNNZXRhZGF0YSkoe1xuICAgICAgICAgICAgYWx0ZXJuYXRlczogbWV0YWRhdGEuYWx0ZXJuYXRlc1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9iYXNpYy5JdHVuZXNNZXRhKSh7XG4gICAgICAgICAgICBpdHVuZXM6IG1ldGFkYXRhLml0dW5lc1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9iYXNpYy5GYWNlYm9va01ldGEpKHtcbiAgICAgICAgICAgIGZhY2Vib29rOiBtZXRhZGF0YS5mYWNlYm9va1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9iYXNpYy5QaW50ZXJlc3RNZXRhKSh7XG4gICAgICAgICAgICBwaW50ZXJlc3Q6IG1ldGFkYXRhLnBpbnRlcmVzdFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9iYXNpYy5Gb3JtYXREZXRlY3Rpb25NZXRhKSh7XG4gICAgICAgICAgICBmb3JtYXREZXRlY3Rpb246IG1ldGFkYXRhLmZvcm1hdERldGVjdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9iYXNpYy5WZXJpZmljYXRpb25NZXRhKSh7XG4gICAgICAgICAgICB2ZXJpZmljYXRpb246IG1ldGFkYXRhLnZlcmlmaWNhdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9iYXNpYy5BcHBsZVdlYkFwcE1ldGEpKHtcbiAgICAgICAgICAgIGFwcGxlV2ViQXBwOiBtZXRhZGF0YS5hcHBsZVdlYkFwcFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9vcGVuZ3JhcGguT3BlbkdyYXBoTWV0YWRhdGEpKHtcbiAgICAgICAgICAgIG9wZW5HcmFwaDogbWV0YWRhdGEub3BlbkdyYXBoXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX29wZW5ncmFwaC5Ud2l0dGVyTWV0YWRhdGEpKHtcbiAgICAgICAgICAgIHR3aXR0ZXI6IG1ldGFkYXRhLnR3aXR0ZXJcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfb3BlbmdyYXBoLkFwcExpbmtzTWV0YSkoe1xuICAgICAgICAgICAgYXBwTGlua3M6IG1ldGFkYXRhLmFwcExpbmtzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2ljb25zLkljb25zTWV0YWRhdGEpKHtcbiAgICAgICAgICAgIGljb25zOiBtZXRhZGF0YS5pY29uc1xuICAgICAgICB9KVxuICAgIF0pO1xufVxuZnVuY3Rpb24gY3JlYXRlVmlld3BvcnRFbGVtZW50cyh2aWV3cG9ydCkge1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAoMCwgX2Jhc2ljLlZpZXdwb3J0TWV0YSkoe1xuICAgICAgICAgICAgdmlld3BvcnQ6IHZpZXdwb3J0XG4gICAgICAgIH0pXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/metadata.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/resolve-metadata.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n accumulateMetadata: function() {\n return accumulateMetadata;\n },\n accumulateViewport: function() {\n return accumulateViewport;\n },\n resolveMetadata: function() {\n return resolveMetadata;\n },\n resolveViewport: function() {\n return resolveViewport;\n }\n});\n__webpack_require__(/*! server-only */ \"(rsc)/./node_modules/next/dist/compiled/server-only/empty.js\");\nconst _react = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\nconst _defaultmetadata = __webpack_require__(/*! ./default-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js\");\nconst _resolveopengraph = __webpack_require__(/*! ./resolvers/resolve-opengraph */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js\");\nconst _resolvetitle = __webpack_require__(/*! ./resolvers/resolve-title */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\");\nconst _utils = __webpack_require__(/*! ./generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _appdirmodule = __webpack_require__(/*! ../../server/lib/app-dir-module */ \"(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js\");\nconst _interopdefault = __webpack_require__(/*! ../interop-default */ \"(rsc)/./node_modules/next/dist/lib/interop-default.js\");\nconst _resolvebasics = __webpack_require__(/*! ./resolvers/resolve-basics */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js\");\nconst _resolveicons = __webpack_require__(/*! ./resolvers/resolve-icons */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js\");\nconst _tracer = __webpack_require__(/*! ../../server/lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../../server/lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _log = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! ../../build/output/log */ \"(rsc)/./node_modules/next/dist/build/output/log.js\"));\nconst _params = __webpack_require__(/*! ../../server/request/params */ \"(rsc)/./node_modules/next/dist/server/request/params.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction isFavicon(icon) {\n if (!icon) {\n return false;\n }\n // turbopack appends a hash to all images\n return (icon.url === '/favicon.ico' || icon.url.toString().startsWith('/favicon.ico?')) && icon.type === 'image/x-icon';\n}\nasync function mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons, pathname) {\n var _source_twitter, _source_openGraph;\n if (!staticFilesMetadata) return target;\n const { icon, apple, openGraph, twitter, manifest } = staticFilesMetadata;\n // Keep updating the static icons in the most leaf node\n if (icon) {\n leafSegmentStaticIcons.icon = icon;\n }\n if (apple) {\n leafSegmentStaticIcons.apple = apple;\n }\n // file based metadata is specified and current level metadata twitter.images is not specified\n if (twitter && !(source == null ? void 0 : (_source_twitter = source.twitter) == null ? void 0 : _source_twitter.hasOwnProperty('images'))) {\n const resolvedTwitter = (0, _resolveopengraph.resolveTwitter)({\n ...target.twitter,\n images: twitter\n }, target.metadataBase, {\n ...metadataContext,\n isStaticMetadataRouteFile: true\n }, titleTemplates.twitter);\n target.twitter = resolvedTwitter;\n }\n // file based metadata is specified and current level metadata openGraph.images is not specified\n if (openGraph && !(source == null ? void 0 : (_source_openGraph = source.openGraph) == null ? void 0 : _source_openGraph.hasOwnProperty('images'))) {\n const resolvedOpenGraph = await (0, _resolveopengraph.resolveOpenGraph)({\n ...target.openGraph,\n images: openGraph\n }, target.metadataBase, pathname, {\n ...metadataContext,\n isStaticMetadataRouteFile: true\n }, titleTemplates.openGraph);\n target.openGraph = resolvedOpenGraph;\n }\n if (manifest) {\n target.manifest = manifest;\n }\n return target;\n}\n// Merge the source metadata into the resolved target metadata.\nasync function mergeMetadata(route, pathname, { source, target, staticFilesMetadata, titleTemplates, metadataContext, buildState, leafSegmentStaticIcons }) {\n // If there's override metadata, prefer it otherwise fallback to the default metadata.\n const metadataBase = typeof (source == null ? void 0 : source.metadataBase) !== 'undefined' ? source.metadataBase : target.metadataBase;\n for(const key_ in source){\n const key = key_;\n switch(key){\n case 'title':\n {\n target.title = (0, _resolvetitle.resolveTitle)(source.title, titleTemplates.title);\n break;\n }\n case 'alternates':\n {\n target.alternates = await (0, _resolvebasics.resolveAlternates)(source.alternates, metadataBase, pathname, metadataContext);\n break;\n }\n case 'openGraph':\n {\n target.openGraph = await (0, _resolveopengraph.resolveOpenGraph)(source.openGraph, metadataBase, pathname, metadataContext, titleTemplates.openGraph);\n break;\n }\n case 'twitter':\n {\n target.twitter = (0, _resolveopengraph.resolveTwitter)(source.twitter, metadataBase, metadataContext, titleTemplates.twitter);\n break;\n }\n case 'facebook':\n target.facebook = (0, _resolvebasics.resolveFacebook)(source.facebook);\n break;\n case 'verification':\n target.verification = (0, _resolvebasics.resolveVerification)(source.verification);\n break;\n case 'icons':\n {\n target.icons = (0, _resolveicons.resolveIcons)(source.icons);\n break;\n }\n case 'appleWebApp':\n target.appleWebApp = (0, _resolvebasics.resolveAppleWebApp)(source.appleWebApp);\n break;\n case 'appLinks':\n target.appLinks = (0, _resolvebasics.resolveAppLinks)(source.appLinks);\n break;\n case 'robots':\n {\n target.robots = (0, _resolvebasics.resolveRobots)(source.robots);\n break;\n }\n case 'archives':\n case 'assets':\n case 'bookmarks':\n case 'keywords':\n {\n target[key] = (0, _utils.resolveAsArrayOrUndefined)(source[key]);\n break;\n }\n case 'authors':\n {\n target[key] = (0, _utils.resolveAsArrayOrUndefined)(source.authors);\n break;\n }\n case 'itunes':\n {\n target[key] = await (0, _resolvebasics.resolveItunes)(source.itunes, metadataBase, pathname, metadataContext);\n break;\n }\n case 'pagination':\n {\n target.pagination = await (0, _resolvebasics.resolvePagination)(source.pagination, metadataBase, pathname, metadataContext);\n break;\n }\n // directly assign fields that fallback to null\n case 'abstract':\n case 'applicationName':\n case 'description':\n case 'generator':\n case 'creator':\n case 'publisher':\n case 'category':\n case 'classification':\n case 'referrer':\n case 'formatDetection':\n case 'manifest':\n case 'pinterest':\n // @ts-ignore TODO: support inferring\n target[key] = source[key] || null;\n break;\n case 'other':\n target.other = Object.assign({}, target.other, source.other);\n break;\n case 'metadataBase':\n target.metadataBase = metadataBase;\n break;\n case 'apple-touch-fullscreen':\n {\n buildState.warnings.add(`Use appleWebApp instead\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);\n break;\n }\n case 'apple-touch-icon-precomposed':\n {\n buildState.warnings.add(`Use icons.apple instead\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);\n break;\n }\n case 'themeColor':\n case 'colorScheme':\n case 'viewport':\n if (source[key] != null) {\n buildState.warnings.add(`Unsupported metadata ${key} is configured in metadata export in ${route}. Please move it to viewport export instead.\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-viewport`);\n }\n break;\n default:\n {\n key;\n }\n }\n }\n return mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons, pathname);\n}\nfunction mergeViewport({ target, source }) {\n if (!source) return;\n for(const key_ in source){\n const key = key_;\n switch(key){\n case 'themeColor':\n {\n target.themeColor = (0, _resolvebasics.resolveThemeColor)(source.themeColor);\n break;\n }\n case 'colorScheme':\n target.colorScheme = source.colorScheme || null;\n break;\n case 'width':\n case 'height':\n case 'initialScale':\n case 'minimumScale':\n case 'maximumScale':\n case 'userScalable':\n case 'viewportFit':\n case 'interactiveWidget':\n // always override the target with the source\n // @ts-ignore viewport properties\n target[key] = source[key];\n break;\n default:\n key;\n }\n }\n}\nfunction getDefinedViewport(mod, props, tracingProps) {\n if (typeof mod.generateViewport === 'function') {\n const { route } = tracingProps;\n return (parent)=>(0, _tracer.getTracer)().trace(_constants.ResolveMetadataSpan.generateViewport, {\n spanName: `generateViewport ${route}`,\n attributes: {\n 'next.page': route\n }\n }, ()=>mod.generateViewport(props, parent));\n }\n return mod.viewport || null;\n}\nfunction getDefinedMetadata(mod, props, tracingProps) {\n if (typeof mod.generateMetadata === 'function') {\n const { route } = tracingProps;\n return (parent)=>(0, _tracer.getTracer)().trace(_constants.ResolveMetadataSpan.generateMetadata, {\n spanName: `generateMetadata ${route}`,\n attributes: {\n 'next.page': route\n }\n }, ()=>mod.generateMetadata(props, parent));\n }\n return mod.metadata || null;\n}\nasync function collectStaticImagesFiles(metadata, props, type) {\n var _this;\n if (!(metadata == null ? void 0 : metadata[type])) return undefined;\n const iconPromises = metadata[type].map(async (imageModule)=>(0, _interopdefault.interopDefault)(await imageModule(props)));\n return (iconPromises == null ? void 0 : iconPromises.length) > 0 ? (_this = await Promise.all(iconPromises)) == null ? void 0 : _this.flat() : undefined;\n}\nasync function resolveStaticMetadata(modules, props) {\n const { metadata } = modules;\n if (!metadata) return null;\n const [icon, apple, openGraph, twitter] = await Promise.all([\n collectStaticImagesFiles(metadata, props, 'icon'),\n collectStaticImagesFiles(metadata, props, 'apple'),\n collectStaticImagesFiles(metadata, props, 'openGraph'),\n collectStaticImagesFiles(metadata, props, 'twitter')\n ]);\n const staticMetadata = {\n icon,\n apple,\n openGraph,\n twitter,\n manifest: metadata.manifest\n };\n return staticMetadata;\n}\n// [layout.metadata, static files metadata] -> ... -> [page.metadata, static files metadata]\nasync function collectMetadata({ tree, metadataItems, errorMetadataItem, props, route, errorConvention }) {\n let mod;\n let modType;\n const hasErrorConventionComponent = Boolean(errorConvention && tree[2][errorConvention]);\n if (errorConvention) {\n mod = await (0, _appdirmodule.getComponentTypeModule)(tree, 'layout');\n modType = errorConvention;\n } else {\n const { mod: layoutOrPageMod, modType: layoutOrPageModType } = await (0, _appdirmodule.getLayoutOrPageModule)(tree);\n mod = layoutOrPageMod;\n modType = layoutOrPageModType;\n }\n if (modType) {\n route += `/${modType}`;\n }\n const staticFilesMetadata = await resolveStaticMetadata(tree[2], props);\n const metadataExport = mod ? getDefinedMetadata(mod, props, {\n route\n }) : null;\n metadataItems.push([\n metadataExport,\n staticFilesMetadata\n ]);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await (0, _appdirmodule.getComponentTypeModule)(tree, errorConvention);\n const errorMetadataExport = errorMod ? getDefinedMetadata(errorMod, props, {\n route\n }) : null;\n errorMetadataItem[0] = errorMetadataExport;\n errorMetadataItem[1] = staticFilesMetadata;\n }\n}\n// [layout.metadata, static files metadata] -> ... -> [page.metadata, static files metadata]\nasync function collectViewport({ tree, viewportItems, errorViewportItemRef, props, route, errorConvention }) {\n let mod;\n let modType;\n const hasErrorConventionComponent = Boolean(errorConvention && tree[2][errorConvention]);\n if (errorConvention) {\n mod = await (0, _appdirmodule.getComponentTypeModule)(tree, 'layout');\n modType = errorConvention;\n } else {\n const { mod: layoutOrPageMod, modType: layoutOrPageModType } = await (0, _appdirmodule.getLayoutOrPageModule)(tree);\n mod = layoutOrPageMod;\n modType = layoutOrPageModType;\n }\n if (modType) {\n route += `/${modType}`;\n }\n const viewportExport = mod ? getDefinedViewport(mod, props, {\n route\n }) : null;\n viewportItems.push(viewportExport);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await (0, _appdirmodule.getComponentTypeModule)(tree, errorConvention);\n const errorViewportExport = errorMod ? getDefinedViewport(errorMod, props, {\n route\n }) : null;\n errorViewportItemRef.current = errorViewportExport;\n }\n}\nconst resolveMetadataItems = (0, _react.cache)(async function(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const parentParams = {};\n const metadataItems = [];\n const errorMetadataItem = [\n null,\n null\n ];\n const treePrefix = undefined;\n return resolveMetadataItemsImpl(metadataItems, tree, treePrefix, parentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore);\n});\nasync function resolveMetadataItemsImpl(metadataItems, tree, /** Provided tree can be nested subtree, this argument says what is the path of such subtree */ treePrefix, parentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = treePrefix && treePrefix.length ? [\n ...treePrefix,\n segment\n ] : [\n segment\n ];\n const isPage = typeof page !== 'undefined';\n // Handle dynamic segment params.\n const segmentParam = getDynamicParamFromSegment(segment);\n /**\n * Create object holding the parent params and current params\n */ let currentParams = parentParams;\n if (segmentParam && segmentParam.value !== null) {\n currentParams = {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n };\n }\n const params = (0, _params.createServerParamsForMetadata)(currentParams, workStore);\n let layerProps;\n if (isPage) {\n layerProps = {\n params,\n searchParams\n };\n } else {\n layerProps = {\n params\n };\n }\n await collectMetadata({\n tree,\n metadataItems,\n errorMetadataItem,\n errorConvention,\n props: layerProps,\n route: currentTreePrefix// __PAGE__ shouldn't be shown in a route\n .filter((s)=>s !== _segment.PAGE_SEGMENT_KEY).join('/')\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveMetadataItemsImpl(metadataItems, childTree, currentTreePrefix, currentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore);\n }\n if (Object.keys(parallelRoutes).length === 0 && errorConvention) {\n // If there are no parallel routes, place error metadata as the last item.\n // e.g. layout -> layout -> not-found\n metadataItems.push(errorMetadataItem);\n }\n return metadataItems;\n}\nconst resolveViewportItems = (0, _react.cache)(async function(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const parentParams = {};\n const viewportItems = [];\n const errorViewportItemRef = {\n current: null\n };\n const treePrefix = undefined;\n return resolveViewportItemsImpl(viewportItems, tree, treePrefix, parentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore);\n});\nasync function resolveViewportItemsImpl(viewportItems, tree, /** Provided tree can be nested subtree, this argument says what is the path of such subtree */ treePrefix, parentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = treePrefix && treePrefix.length ? [\n ...treePrefix,\n segment\n ] : [\n segment\n ];\n const isPage = typeof page !== 'undefined';\n // Handle dynamic segment params.\n const segmentParam = getDynamicParamFromSegment(segment);\n /**\n * Create object holding the parent params and current params\n */ let currentParams = parentParams;\n if (segmentParam && segmentParam.value !== null) {\n currentParams = {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n };\n }\n const params = (0, _params.createServerParamsForMetadata)(currentParams, workStore);\n let layerProps;\n if (isPage) {\n layerProps = {\n params,\n searchParams\n };\n } else {\n layerProps = {\n params\n };\n }\n await collectViewport({\n tree,\n viewportItems,\n errorViewportItemRef,\n errorConvention,\n props: layerProps,\n route: currentTreePrefix// __PAGE__ shouldn't be shown in a route\n .filter((s)=>s !== _segment.PAGE_SEGMENT_KEY).join('/')\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveViewportItemsImpl(viewportItems, childTree, currentTreePrefix, currentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore);\n }\n if (Object.keys(parallelRoutes).length === 0 && errorConvention) {\n // If there are no parallel routes, place error metadata as the last item.\n // e.g. layout -> layout -> not-found\n viewportItems.push(errorViewportItemRef.current);\n }\n return viewportItems;\n}\nconst isTitleTruthy = (title)=>!!(title == null ? void 0 : title.absolute);\nconst hasTitle = (metadata)=>isTitleTruthy(metadata == null ? void 0 : metadata.title);\nfunction inheritFromMetadata(target, metadata) {\n if (target) {\n if (!hasTitle(target) && hasTitle(metadata)) {\n target.title = metadata.title;\n }\n if (!target.description && metadata.description) {\n target.description = metadata.description;\n }\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst commonOgKeys = [\n 'title',\n 'description',\n 'images'\n];\nfunction postProcessMetadata(metadata, favicon, titleTemplates, metadataContext) {\n const { openGraph, twitter } = metadata;\n if (openGraph) {\n // If there's openGraph information but not configured in twitter,\n // inherit them from openGraph metadata.\n let autoFillProps = {};\n const hasTwTitle = hasTitle(twitter);\n const hasTwDescription = twitter == null ? void 0 : twitter.description;\n const hasTwImages = Boolean((twitter == null ? void 0 : twitter.hasOwnProperty('images')) && twitter.images);\n if (!hasTwTitle) {\n if (isTitleTruthy(openGraph.title)) {\n autoFillProps.title = openGraph.title;\n } else if (metadata.title && isTitleTruthy(metadata.title)) {\n autoFillProps.title = metadata.title;\n }\n }\n if (!hasTwDescription) autoFillProps.description = openGraph.description || metadata.description || undefined;\n if (!hasTwImages) autoFillProps.images = openGraph.images;\n if (Object.keys(autoFillProps).length > 0) {\n const partialTwitter = (0, _resolveopengraph.resolveTwitter)(autoFillProps, metadata.metadataBase, metadataContext, titleTemplates.twitter);\n if (metadata.twitter) {\n metadata.twitter = Object.assign({}, metadata.twitter, {\n ...!hasTwTitle && {\n title: partialTwitter == null ? void 0 : partialTwitter.title\n },\n ...!hasTwDescription && {\n description: partialTwitter == null ? void 0 : partialTwitter.description\n },\n ...!hasTwImages && {\n images: partialTwitter == null ? void 0 : partialTwitter.images\n }\n });\n } else {\n metadata.twitter = partialTwitter;\n }\n }\n }\n // If there's no title and description configured in openGraph or twitter,\n // use the title and description from metadata.\n inheritFromMetadata(openGraph, metadata);\n inheritFromMetadata(twitter, metadata);\n if (favicon) {\n if (!metadata.icons) {\n metadata.icons = {\n icon: [],\n apple: []\n };\n }\n metadata.icons.icon.unshift(favicon);\n }\n return metadata;\n}\nfunction prerenderMetadata(metadataItems) {\n // If the index is a function then it is a resolver and the next slot\n // is the corresponding result. If the index is not a function it is the result\n // itself.\n const resolversAndResults = [];\n for(let i = 0; i < metadataItems.length; i++){\n const metadataExport = metadataItems[i][0];\n getResult(resolversAndResults, metadataExport);\n }\n return resolversAndResults;\n}\nfunction prerenderViewport(viewportItems) {\n // If the index is a function then it is a resolver and the next slot\n // is the corresponding result. If the index is not a function it is the result\n // itself.\n const resolversAndResults = [];\n for(let i = 0; i < viewportItems.length; i++){\n const viewportExport = viewportItems[i];\n getResult(resolversAndResults, viewportExport);\n }\n return resolversAndResults;\n}\nfunction getResult(resolversAndResults, exportForResult) {\n if (typeof exportForResult === 'function') {\n const result = exportForResult(new Promise((resolve)=>resolversAndResults.push(resolve)));\n resolversAndResults.push(result);\n if (result instanceof Promise) {\n // since we eager execute generateMetadata and\n // they can reject at anytime we need to ensure\n // we attach the catch handler right away to\n // prevent unhandled rejections crashing the process\n result.catch((err)=>{\n return {\n __nextError: err\n };\n });\n }\n } else if (typeof exportForResult === 'object') {\n resolversAndResults.push(exportForResult);\n } else {\n resolversAndResults.push(null);\n }\n}\nfunction resolvePendingResult(parentResult, resolveParentResult) {\n // In dev we clone and freeze to prevent relying on mutating resolvedMetadata directly.\n // In prod we just pass resolvedMetadata through without any copying.\n if (true) {\n // @ts-expect-error -- DeepReadonly<T> is by definition not assignable to T\n // Instead, we should only accept DeepReadonly<ResolvedType>\n parentResult = (__webpack_require__(/*! ../../shared/lib/deep-freeze */ \"(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js\").deepFreeze)((__webpack_require__(/*! ./clone-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js\").cloneMetadata)(parentResult));\n }\n resolveParentResult(parentResult);\n}\nasync function accumulateMetadata(route, metadataItems, pathname, metadataContext) {\n let resolvedMetadata = (0, _defaultmetadata.createDefaultMetadata)();\n let titleTemplates = {\n title: null,\n twitter: null,\n openGraph: null\n };\n const buildState = {\n warnings: new Set()\n };\n let favicon;\n // Collect the static icons in the most leaf node,\n // since we don't collect all the static metadata icons in the parent segments.\n const leafSegmentStaticIcons = {\n icon: [],\n apple: []\n };\n const resolversAndResults = prerenderMetadata(metadataItems);\n let resultIndex = 0;\n for(let i = 0; i < metadataItems.length; i++){\n var _staticFilesMetadata_icon;\n const staticFilesMetadata = metadataItems[i][1];\n // Treat favicon as special case, it should be the first icon in the list\n // i <= 1 represents root layout, and if current page is also at root\n if (i <= 1 && isFavicon(staticFilesMetadata == null ? void 0 : (_staticFilesMetadata_icon = staticFilesMetadata.icon) == null ? void 0 : _staticFilesMetadata_icon[0])) {\n var _staticFilesMetadata_icon1;\n const iconMod = staticFilesMetadata == null ? void 0 : (_staticFilesMetadata_icon1 = staticFilesMetadata.icon) == null ? void 0 : _staticFilesMetadata_icon1.shift();\n if (i === 0) favicon = iconMod;\n }\n let pendingMetadata = resolversAndResults[resultIndex++];\n if (typeof pendingMetadata === 'function') {\n // This metadata item had a `generateMetadata` and\n // we need to provide the currently resolved metadata\n // to it before we continue;\n const resolveParentMetadata = pendingMetadata;\n // we know that the next item is a result if this item\n // was a resolver\n pendingMetadata = resolversAndResults[resultIndex++];\n resolvePendingResult(resolvedMetadata, resolveParentMetadata);\n }\n // Otherwise the item was either null or a static export\n let metadata;\n if (isPromiseLike(pendingMetadata)) {\n metadata = await pendingMetadata;\n } else {\n metadata = pendingMetadata;\n }\n resolvedMetadata = await mergeMetadata(route, pathname, {\n target: resolvedMetadata,\n source: metadata,\n metadataContext,\n staticFilesMetadata,\n titleTemplates,\n buildState,\n leafSegmentStaticIcons\n });\n // If the layout is the same layer with page, skip the leaf layout and leaf page\n // The leaf layout and page are the last two items\n if (i < metadataItems.length - 2) {\n var _resolvedMetadata_title, _resolvedMetadata_openGraph, _resolvedMetadata_twitter;\n titleTemplates = {\n title: ((_resolvedMetadata_title = resolvedMetadata.title) == null ? void 0 : _resolvedMetadata_title.template) || null,\n openGraph: ((_resolvedMetadata_openGraph = resolvedMetadata.openGraph) == null ? void 0 : _resolvedMetadata_openGraph.title.template) || null,\n twitter: ((_resolvedMetadata_twitter = resolvedMetadata.twitter) == null ? void 0 : _resolvedMetadata_twitter.title.template) || null\n };\n }\n }\n if (leafSegmentStaticIcons.icon.length > 0 || leafSegmentStaticIcons.apple.length > 0) {\n if (!resolvedMetadata.icons) {\n resolvedMetadata.icons = {\n icon: [],\n apple: []\n };\n if (leafSegmentStaticIcons.icon.length > 0) {\n resolvedMetadata.icons.icon.unshift(...leafSegmentStaticIcons.icon);\n }\n if (leafSegmentStaticIcons.apple.length > 0) {\n resolvedMetadata.icons.apple.unshift(...leafSegmentStaticIcons.apple);\n }\n }\n }\n // Only log warnings if there are any, and only once after the metadata resolving process is finished\n if (buildState.warnings.size > 0) {\n for (const warning of buildState.warnings){\n _log.warn(warning);\n }\n }\n return postProcessMetadata(resolvedMetadata, favicon, titleTemplates, metadataContext);\n}\nasync function accumulateViewport(viewportItems) {\n const resolvedViewport = (0, _defaultmetadata.createDefaultViewport)();\n const resolversAndResults = prerenderViewport(viewportItems);\n let i = 0;\n while(i < resolversAndResults.length){\n let pendingViewport = resolversAndResults[i++];\n if (typeof pendingViewport === 'function') {\n // this viewport item had a `generateViewport` and\n // we need to provide the currently resolved viewport\n // to it before we continue;\n const resolveParentViewport = pendingViewport;\n // we know that the next item is a result if this item\n // was a resolver\n pendingViewport = resolversAndResults[i++];\n resolvePendingResult(resolvedViewport, resolveParentViewport);\n }\n // Otherwise the item was either null or a static export\n let viewport;\n if (isPromiseLike(pendingViewport)) {\n viewport = await pendingViewport;\n } else {\n viewport = pendingViewport;\n }\n mergeViewport({\n target: resolvedViewport,\n source: viewport\n });\n }\n return resolvedViewport;\n}\nasync function resolveMetadata(tree, pathname, searchParams, errorConvention, getDynamicParamFromSegment, workStore, metadataContext) {\n const metadataItems = await resolveMetadataItems(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n return accumulateMetadata(workStore.route, metadataItems, pathname, metadataContext);\n}\nasync function resolveViewport(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const viewportItems = await resolveViewportItems(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n return accumulateViewport(viewportItems);\n}\nfunction isPromiseLike(value) {\n return typeof value === 'object' && value !== null && typeof value.then === 'function';\n}\n\n//# sourceMappingURL=resolve-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxtQkFBTyxDQUFDLGlGQUFhO0FBQ3JCLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5Qix5QkFBeUIsbUJBQU8sQ0FBQywyRkFBb0I7QUFDckQsMEJBQTBCLG1CQUFPLENBQUMsaUhBQStCO0FBQ2pFLHNCQUFzQixtQkFBTyxDQUFDLHlHQUEyQjtBQUN6RCxlQUFlLG1CQUFPLENBQUMsdUZBQWtCO0FBQ3pDLHNCQUFzQixtQkFBTyxDQUFDLG9HQUFpQztBQUMvRCx3QkFBd0IsbUJBQU8sQ0FBQyxpRkFBb0I7QUFDcEQsdUJBQXVCLG1CQUFPLENBQUMsMkdBQTRCO0FBQzNELHNCQUFzQixtQkFBTyxDQUFDLHlHQUEyQjtBQUN6RCxnQkFBZ0IsbUJBQU8sQ0FBQyxnR0FBK0I7QUFDdkQsbUJBQW1CLG1CQUFPLENBQUMsc0dBQWtDO0FBQzdELGlCQUFpQixtQkFBTyxDQUFDLHNGQUEwQjtBQUNuRCxxREFBcUQsbUJBQU8sQ0FBQyxrRkFBd0I7QUFDckYsZ0JBQWdCLG1CQUFPLENBQUMsNEZBQTZCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDRDQUE0QztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsMEdBQTBHO0FBQzFKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvRUFBb0UsS0FBSyxzQ0FBc0MsTUFBTTtBQUNySDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixnQkFBZ0I7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsUUFBUTtBQUN4QjtBQUNBLDhDQUE4QyxNQUFNO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEI7QUFDQSw4Q0FBOEMsTUFBTTtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFdBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyx1RUFBdUU7QUFDeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLGdCQUFnQixxREFBcUQ7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsMEVBQTBFO0FBQzNHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixnQkFBZ0IscURBQXFEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esc0NBQXNDLE1BQU07QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esc0NBQXNDLE1BQU07QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkscUJBQXFCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDBCQUEwQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBc0M7QUFDOUM7QUFDQTtBQUNBLHVCQUF1QixnSUFBa0QsQ0FBQyw0SEFBeUM7QUFDbkg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsMEJBQTBCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlLW1ldGFkYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWNjdW11bGF0ZU1ldGFkYXRhOiBudWxsLFxuICAgIGFjY3VtdWxhdGVWaWV3cG9ydDogbnVsbCxcbiAgICByZXNvbHZlTWV0YWRhdGE6IG51bGwsXG4gICAgcmVzb2x2ZVZpZXdwb3J0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGFjY3VtdWxhdGVNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRlTWV0YWRhdGE7XG4gICAgfSxcbiAgICBhY2N1bXVsYXRlVmlld3BvcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWNjdW11bGF0ZVZpZXdwb3J0O1xuICAgIH0sXG4gICAgcmVzb2x2ZU1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVNZXRhZGF0YTtcbiAgICB9LFxuICAgIHJlc29sdmVWaWV3cG9ydDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVmlld3BvcnQ7XG4gICAgfVxufSk7XG5yZXF1aXJlKFwic2VydmVyLW9ubHlcIik7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfZGVmYXVsdG1ldGFkYXRhID0gcmVxdWlyZShcIi4vZGVmYXVsdC1tZXRhZGF0YVwiKTtcbmNvbnN0IF9yZXNvbHZlb3BlbmdyYXBoID0gcmVxdWlyZShcIi4vcmVzb2x2ZXJzL3Jlc29sdmUtb3BlbmdyYXBoXCIpO1xuY29uc3QgX3Jlc29sdmV0aXRsZSA9IHJlcXVpcmUoXCIuL3Jlc29sdmVycy9yZXNvbHZlLXRpdGxlXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvdXRpbHNcIik7XG5jb25zdCBfYXBwZGlybW9kdWxlID0gcmVxdWlyZShcIi4uLy4uL3NlcnZlci9saWIvYXBwLWRpci1tb2R1bGVcIik7XG5jb25zdCBfaW50ZXJvcGRlZmF1bHQgPSByZXF1aXJlKFwiLi4vaW50ZXJvcC1kZWZhdWx0XCIpO1xuY29uc3QgX3Jlc29sdmViYXNpY3MgPSByZXF1aXJlKFwiLi9yZXNvbHZlcnMvcmVzb2x2ZS1iYXNpY3NcIik7XG5jb25zdCBfcmVzb2x2ZWljb25zID0gcmVxdWlyZShcIi4vcmVzb2x2ZXJzL3Jlc29sdmUtaWNvbnNcIik7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4uLy4uL3NlcnZlci9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL3RyYWNlL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9zZWdtZW50ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiKTtcbmNvbnN0IF9sb2cgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcIi4uLy4uL2J1aWxkL291dHB1dC9sb2dcIikpO1xuY29uc3QgX3BhcmFtcyA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXNcIik7XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgICAgIH07XG4gICAgfVxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQob2JqKTtcbiAgICB9XG4gICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgX19wcm90b19fOiBudWxsXG4gICAgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmZ1bmN0aW9uIGlzRmF2aWNvbihpY29uKSB7XG4gICAgaWYgKCFpY29uKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gdHVyYm9wYWNrIGFwcGVuZHMgYSBoYXNoIHRvIGFsbCBpbWFnZXNcbiAgICByZXR1cm4gKGljb24udXJsID09PSAnL2Zhdmljb24uaWNvJyB8fCBpY29uLnVybC50b1N0cmluZygpLnN0YXJ0c1dpdGgoJy9mYXZpY29uLmljbz8nKSkgJiYgaWNvbi50eXBlID09PSAnaW1hZ2UveC1pY29uJztcbn1cbmFzeW5jIGZ1bmN0aW9uIG1lcmdlU3RhdGljTWV0YWRhdGEoc291cmNlLCB0YXJnZXQsIHN0YXRpY0ZpbGVzTWV0YWRhdGEsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZXMsIGxlYWZTZWdtZW50U3RhdGljSWNvbnMsIHBhdGhuYW1lKSB7XG4gICAgdmFyIF9zb3VyY2VfdHdpdHRlciwgX3NvdXJjZV9vcGVuR3JhcGg7XG4gICAgaWYgKCFzdGF0aWNGaWxlc01ldGFkYXRhKSByZXR1cm4gdGFyZ2V0O1xuICAgIGNvbnN0IHsgaWNvbiwgYXBwbGUsIG9wZW5HcmFwaCwgdHdpdHRlciwgbWFuaWZlc3QgfSA9IHN0YXRpY0ZpbGVzTWV0YWRhdGE7XG4gICAgLy8gS2VlcCB1cGRhdGluZyB0aGUgc3RhdGljIGljb25zIGluIHRoZSBtb3N0IGxlYWYgbm9kZVxuICAgIGlmIChpY29uKSB7XG4gICAgICAgIGxlYWZTZWdtZW50U3RhdGljSWNvbnMuaWNvbiA9IGljb247XG4gICAgfVxuICAgIGlmIChhcHBsZSkge1xuICAgICAgICBsZWFmU2VnbWVudFN0YXRpY0ljb25zLmFwcGxlID0gYXBwbGU7XG4gICAgfVxuICAgIC8vIGZpbGUgYmFzZWQgbWV0YWRhdGEgaXMgc3BlY2lmaWVkIGFuZCBjdXJyZW50IGxldmVsIG1ldGFkYXRhIHR3aXR0ZXIuaW1hZ2VzIGlzIG5vdCBzcGVjaWZpZWRcbiAgICBpZiAodHdpdHRlciAmJiAhKHNvdXJjZSA9PSBudWxsID8gdm9pZCAwIDogKF9zb3VyY2VfdHdpdHRlciA9IHNvdXJjZS50d2l0dGVyKSA9PSBudWxsID8gdm9pZCAwIDogX3NvdXJjZV90d2l0dGVyLmhhc093blByb3BlcnR5KCdpbWFnZXMnKSkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRUd2l0dGVyID0gKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVUd2l0dGVyKSh7XG4gICAgICAgICAgICAuLi50YXJnZXQudHdpdHRlcixcbiAgICAgICAgICAgIGltYWdlczogdHdpdHRlclxuICAgICAgICB9LCB0YXJnZXQubWV0YWRhdGFCYXNlLCB7XG4gICAgICAgICAgICAuLi5tZXRhZGF0YUNvbnRleHQsXG4gICAgICAgICAgICBpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlOiB0cnVlXG4gICAgICAgIH0sIHRpdGxlVGVtcGxhdGVzLnR3aXR0ZXIpO1xuICAgICAgICB0YXJnZXQudHdpdHRlciA9IHJlc29sdmVkVHdpdHRlcjtcbiAgICB9XG4gICAgLy8gZmlsZSBiYXNlZCBtZXRhZGF0YSBpcyBzcGVjaWZpZWQgYW5kIGN1cnJlbnQgbGV2ZWwgbWV0YWRhdGEgb3BlbkdyYXBoLmltYWdlcyBpcyBub3Qgc3BlY2lmaWVkXG4gICAgaWYgKG9wZW5HcmFwaCAmJiAhKHNvdXJjZSA9PSBudWxsID8gdm9pZCAwIDogKF9zb3VyY2Vfb3BlbkdyYXBoID0gc291cmNlLm9wZW5HcmFwaCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zb3VyY2Vfb3BlbkdyYXBoLmhhc093blByb3BlcnR5KCdpbWFnZXMnKSkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRPcGVuR3JhcGggPSBhd2FpdCAoMCwgX3Jlc29sdmVvcGVuZ3JhcGgucmVzb2x2ZU9wZW5HcmFwaCkoe1xuICAgICAgICAgICAgLi4udGFyZ2V0Lm9wZW5HcmFwaCxcbiAgICAgICAgICAgIGltYWdlczogb3BlbkdyYXBoXG4gICAgICAgIH0sIHRhcmdldC5tZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCB7XG4gICAgICAgICAgICAuLi5tZXRhZGF0YUNvbnRleHQsXG4gICAgICAgICAgICBpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlOiB0cnVlXG4gICAgICAgIH0sIHRpdGxlVGVtcGxhdGVzLm9wZW5HcmFwaCk7XG4gICAgICAgIHRhcmdldC5vcGVuR3JhcGggPSByZXNvbHZlZE9wZW5HcmFwaDtcbiAgICB9XG4gICAgaWYgKG1hbmlmZXN0KSB7XG4gICAgICAgIHRhcmdldC5tYW5pZmVzdCA9IG1hbmlmZXN0O1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuLy8gTWVyZ2UgdGhlIHNvdXJjZSBtZXRhZGF0YSBpbnRvIHRoZSByZXNvbHZlZCB0YXJnZXQgbWV0YWRhdGEuXG5hc3luYyBmdW5jdGlvbiBtZXJnZU1ldGFkYXRhKHJvdXRlLCBwYXRobmFtZSwgeyBzb3VyY2UsIHRhcmdldCwgc3RhdGljRmlsZXNNZXRhZGF0YSwgdGl0bGVUZW1wbGF0ZXMsIG1ldGFkYXRhQ29udGV4dCwgYnVpbGRTdGF0ZSwgbGVhZlNlZ21lbnRTdGF0aWNJY29ucyB9KSB7XG4gICAgLy8gSWYgdGhlcmUncyBvdmVycmlkZSBtZXRhZGF0YSwgcHJlZmVyIGl0IG90aGVyd2lzZSBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBtZXRhZGF0YS5cbiAgICBjb25zdCBtZXRhZGF0YUJhc2UgPSB0eXBlb2YgKHNvdXJjZSA9PSBudWxsID8gdm9pZCAwIDogc291cmNlLm1ldGFkYXRhQmFzZSkgIT09ICd1bmRlZmluZWQnID8gc291cmNlLm1ldGFkYXRhQmFzZSA6IHRhcmdldC5tZXRhZGF0YUJhc2U7XG4gICAgZm9yKGNvbnN0IGtleV8gaW4gc291cmNlKXtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5XztcbiAgICAgICAgc3dpdGNoKGtleSl7XG4gICAgICAgICAgICBjYXNlICd0aXRsZSc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQudGl0bGUgPSAoMCwgX3Jlc29sdmV0aXRsZS5yZXNvbHZlVGl0bGUpKHNvdXJjZS50aXRsZSwgdGl0bGVUZW1wbGF0ZXMudGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdhbHRlcm5hdGVzJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5hbHRlcm5hdGVzID0gYXdhaXQgKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVBbHRlcm5hdGVzKShzb3VyY2UuYWx0ZXJuYXRlcywgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnb3BlbkdyYXBoJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5vcGVuR3JhcGggPSBhd2FpdCAoMCwgX3Jlc29sdmVvcGVuZ3JhcGgucmVzb2x2ZU9wZW5HcmFwaCkoc291cmNlLm9wZW5HcmFwaCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcy5vcGVuR3JhcGgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd0d2l0dGVyJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC50d2l0dGVyID0gKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVUd2l0dGVyKShzb3VyY2UudHdpdHRlciwgbWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGVzLnR3aXR0ZXIpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdmYWNlYm9vayc6XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmZhY2Vib29rID0gKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVGYWNlYm9vaykoc291cmNlLmZhY2Vib29rKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZlcmlmaWNhdGlvbic6XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnZlcmlmaWNhdGlvbiA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlVmVyaWZpY2F0aW9uKShzb3VyY2UudmVyaWZpY2F0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ljb25zJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5pY29ucyA9ICgwLCBfcmVzb2x2ZWljb25zLnJlc29sdmVJY29ucykoc291cmNlLmljb25zKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXBwbGVXZWJBcHAnOlxuICAgICAgICAgICAgICAgIHRhcmdldC5hcHBsZVdlYkFwcCA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlQXBwbGVXZWJBcHApKHNvdXJjZS5hcHBsZVdlYkFwcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhcHBMaW5rcyc6XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmFwcExpbmtzID0gKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVBcHBMaW5rcykoc291cmNlLmFwcExpbmtzKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JvYm90cyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQucm9ib3RzID0gKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVSb2JvdHMpKHNvdXJjZS5yb2JvdHMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdhcmNoaXZlcyc6XG4gICAgICAgICAgICBjYXNlICdhc3NldHMnOlxuICAgICAgICAgICAgY2FzZSAnYm9va21hcmtzJzpcbiAgICAgICAgICAgIGNhc2UgJ2tleXdvcmRzJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShzb3VyY2Vba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2F1dGhvcnMnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKHNvdXJjZS5hdXRob3JzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaXR1bmVzJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gYXdhaXQgKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVJdHVuZXMpKHNvdXJjZS5pdHVuZXMsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3BhZ2luYXRpb24nOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnBhZ2luYXRpb24gPSBhd2FpdCAoMCwgX3Jlc29sdmViYXNpY3MucmVzb2x2ZVBhZ2luYXRpb24pKHNvdXJjZS5wYWdpbmF0aW9uLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBkaXJlY3RseSBhc3NpZ24gZmllbGRzIHRoYXQgZmFsbGJhY2sgdG8gbnVsbFxuICAgICAgICAgICAgY2FzZSAnYWJzdHJhY3QnOlxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb25OYW1lJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rlc2NyaXB0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ2dlbmVyYXRvcic6XG4gICAgICAgICAgICBjYXNlICdjcmVhdG9yJzpcbiAgICAgICAgICAgIGNhc2UgJ3B1Ymxpc2hlcic6XG4gICAgICAgICAgICBjYXNlICdjYXRlZ29yeSc6XG4gICAgICAgICAgICBjYXNlICdjbGFzc2lmaWNhdGlvbic6XG4gICAgICAgICAgICBjYXNlICdyZWZlcnJlcic6XG4gICAgICAgICAgICBjYXNlICdmb3JtYXREZXRlY3Rpb24nOlxuICAgICAgICAgICAgY2FzZSAnbWFuaWZlc3QnOlxuICAgICAgICAgICAgY2FzZSAncGludGVyZXN0JzpcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlIFRPRE86IHN1cHBvcnQgaW5mZXJyaW5nXG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnb3RoZXInOlxuICAgICAgICAgICAgICAgIHRhcmdldC5vdGhlciA9IE9iamVjdC5hc3NpZ24oe30sIHRhcmdldC5vdGhlciwgc291cmNlLm90aGVyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21ldGFkYXRhQmFzZSc6XG4gICAgICAgICAgICAgICAgdGFyZ2V0Lm1ldGFkYXRhQmFzZSA9IG1ldGFkYXRhQmFzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxlLXRvdWNoLWZ1bGxzY3JlZW4nOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRTdGF0ZS53YXJuaW5ncy5hZGQoYFVzZSBhcHBsZVdlYkFwcCBpbnN0ZWFkXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvZ2VuZXJhdGUtbWV0YWRhdGFgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXBwbGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBidWlsZFN0YXRlLndhcm5pbmdzLmFkZChgVXNlIGljb25zLmFwcGxlIGluc3RlYWRcXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9nZW5lcmF0ZS1tZXRhZGF0YWApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd0aGVtZUNvbG9yJzpcbiAgICAgICAgICAgIGNhc2UgJ2NvbG9yU2NoZW1lJzpcbiAgICAgICAgICAgIGNhc2UgJ3ZpZXdwb3J0JzpcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlW2tleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBidWlsZFN0YXRlLndhcm5pbmdzLmFkZChgVW5zdXBwb3J0ZWQgbWV0YWRhdGEgJHtrZXl9IGlzIGNvbmZpZ3VyZWQgaW4gbWV0YWRhdGEgZXhwb3J0IGluICR7cm91dGV9LiBQbGVhc2UgbW92ZSBpdCB0byB2aWV3cG9ydCBleHBvcnQgaW5zdGVhZC5cXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9nZW5lcmF0ZS12aWV3cG9ydGApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBrZXk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtZXJnZVN0YXRpY01ldGFkYXRhKHNvdXJjZSwgdGFyZ2V0LCBzdGF0aWNGaWxlc01ldGFkYXRhLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGVzLCBsZWFmU2VnbWVudFN0YXRpY0ljb25zLCBwYXRobmFtZSk7XG59XG5mdW5jdGlvbiBtZXJnZVZpZXdwb3J0KHsgdGFyZ2V0LCBzb3VyY2UgfSkge1xuICAgIGlmICghc291cmNlKSByZXR1cm47XG4gICAgZm9yKGNvbnN0IGtleV8gaW4gc291cmNlKXtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5XztcbiAgICAgICAgc3dpdGNoKGtleSl7XG4gICAgICAgICAgICBjYXNlICd0aGVtZUNvbG9yJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC50aGVtZUNvbG9yID0gKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVUaGVtZUNvbG9yKShzb3VyY2UudGhlbWVDb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2NvbG9yU2NoZW1lJzpcbiAgICAgICAgICAgICAgICB0YXJnZXQuY29sb3JTY2hlbWUgPSBzb3VyY2UuY29sb3JTY2hlbWUgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3dpZHRoJzpcbiAgICAgICAgICAgIGNhc2UgJ2hlaWdodCc6XG4gICAgICAgICAgICBjYXNlICdpbml0aWFsU2NhbGUnOlxuICAgICAgICAgICAgY2FzZSAnbWluaW11bVNjYWxlJzpcbiAgICAgICAgICAgIGNhc2UgJ21heGltdW1TY2FsZSc6XG4gICAgICAgICAgICBjYXNlICd1c2VyU2NhbGFibGUnOlxuICAgICAgICAgICAgY2FzZSAndmlld3BvcnRGaXQnOlxuICAgICAgICAgICAgY2FzZSAnaW50ZXJhY3RpdmVXaWRnZXQnOlxuICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBvdmVycmlkZSB0aGUgdGFyZ2V0IHdpdGggdGhlIHNvdXJjZVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgdmlld3BvcnQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGtleTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGdldERlZmluZWRWaWV3cG9ydChtb2QsIHByb3BzLCB0cmFjaW5nUHJvcHMpIHtcbiAgICBpZiAodHlwZW9mIG1vZC5nZW5lcmF0ZVZpZXdwb3J0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHsgcm91dGUgfSA9IHRyYWNpbmdQcm9wcztcbiAgICAgICAgcmV0dXJuIChwYXJlbnQpPT4oMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoX2NvbnN0YW50cy5SZXNvbHZlTWV0YWRhdGFTcGFuLmdlbmVyYXRlVmlld3BvcnQsIHtcbiAgICAgICAgICAgICAgICBzcGFuTmFtZTogYGdlbmVyYXRlVmlld3BvcnQgJHtyb3V0ZX1gLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ25leHQucGFnZSc6IHJvdXRlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgKCk9Pm1vZC5nZW5lcmF0ZVZpZXdwb3J0KHByb3BzLCBwYXJlbnQpKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZC52aWV3cG9ydCB8fCBudWxsO1xufVxuZnVuY3Rpb24gZ2V0RGVmaW5lZE1ldGFkYXRhKG1vZCwgcHJvcHMsIHRyYWNpbmdQcm9wcykge1xuICAgIGlmICh0eXBlb2YgbW9kLmdlbmVyYXRlTWV0YWRhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgeyByb3V0ZSB9ID0gdHJhY2luZ1Byb3BzO1xuICAgICAgICByZXR1cm4gKHBhcmVudCk9PigwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLlJlc29sdmVNZXRhZGF0YVNwYW4uZ2VuZXJhdGVNZXRhZGF0YSwge1xuICAgICAgICAgICAgICAgIHNwYW5OYW1lOiBgZ2VuZXJhdGVNZXRhZGF0YSAke3JvdXRlfWAsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAnbmV4dC5wYWdlJzogcm91dGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAoKT0+bW9kLmdlbmVyYXRlTWV0YWRhdGEocHJvcHMsIHBhcmVudCkpO1xuICAgIH1cbiAgICByZXR1cm4gbW9kLm1ldGFkYXRhIHx8IG51bGw7XG59XG5hc3luYyBmdW5jdGlvbiBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCB0eXBlKSB7XG4gICAgdmFyIF90aGlzO1xuICAgIGlmICghKG1ldGFkYXRhID09IG51bGwgPyB2b2lkIDAgOiBtZXRhZGF0YVt0eXBlXSkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgaWNvblByb21pc2VzID0gbWV0YWRhdGFbdHlwZV0ubWFwKGFzeW5jIChpbWFnZU1vZHVsZSk9PigwLCBfaW50ZXJvcGRlZmF1bHQuaW50ZXJvcERlZmF1bHQpKGF3YWl0IGltYWdlTW9kdWxlKHByb3BzKSkpO1xuICAgIHJldHVybiAoaWNvblByb21pc2VzID09IG51bGwgPyB2b2lkIDAgOiBpY29uUHJvbWlzZXMubGVuZ3RoKSA+IDAgPyAoX3RoaXMgPSBhd2FpdCBQcm9taXNlLmFsbChpY29uUHJvbWlzZXMpKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXMuZmxhdCgpIDogdW5kZWZpbmVkO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVN0YXRpY01ldGFkYXRhKG1vZHVsZXMsIHByb3BzKSB7XG4gICAgY29uc3QgeyBtZXRhZGF0YSB9ID0gbW9kdWxlcztcbiAgICBpZiAoIW1ldGFkYXRhKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbaWNvbiwgYXBwbGUsIG9wZW5HcmFwaCwgdHdpdHRlcl0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIGNvbGxlY3RTdGF0aWNJbWFnZXNGaWxlcyhtZXRhZGF0YSwgcHJvcHMsICdpY29uJyksXG4gICAgICAgIGNvbGxlY3RTdGF0aWNJbWFnZXNGaWxlcyhtZXRhZGF0YSwgcHJvcHMsICdhcHBsZScpLFxuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCAnb3BlbkdyYXBoJyksXG4gICAgICAgIGNvbGxlY3RTdGF0aWNJbWFnZXNGaWxlcyhtZXRhZGF0YSwgcHJvcHMsICd0d2l0dGVyJylcbiAgICBdKTtcbiAgICBjb25zdCBzdGF0aWNNZXRhZGF0YSA9IHtcbiAgICAgICAgaWNvbixcbiAgICAgICAgYXBwbGUsXG4gICAgICAgIG9wZW5HcmFwaCxcbiAgICAgICAgdHdpdHRlcixcbiAgICAgICAgbWFuaWZlc3Q6IG1ldGFkYXRhLm1hbmlmZXN0XG4gICAgfTtcbiAgICByZXR1cm4gc3RhdGljTWV0YWRhdGE7XG59XG4vLyBbbGF5b3V0Lm1ldGFkYXRhLCBzdGF0aWMgZmlsZXMgbWV0YWRhdGFdIC0+IC4uLiAtPiBbcGFnZS5tZXRhZGF0YSwgc3RhdGljIGZpbGVzIG1ldGFkYXRhXVxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdE1ldGFkYXRhKHsgdHJlZSwgbWV0YWRhdGFJdGVtcywgZXJyb3JNZXRhZGF0YUl0ZW0sIHByb3BzLCByb3V0ZSwgZXJyb3JDb252ZW50aW9uIH0pIHtcbiAgICBsZXQgbW9kO1xuICAgIGxldCBtb2RUeXBlO1xuICAgIGNvbnN0IGhhc0Vycm9yQ29udmVudGlvbkNvbXBvbmVudCA9IEJvb2xlYW4oZXJyb3JDb252ZW50aW9uICYmIHRyZWVbMl1bZXJyb3JDb252ZW50aW9uXSk7XG4gICAgaWYgKGVycm9yQ29udmVudGlvbikge1xuICAgICAgICBtb2QgPSBhd2FpdCAoMCwgX2FwcGRpcm1vZHVsZS5nZXRDb21wb25lbnRUeXBlTW9kdWxlKSh0cmVlLCAnbGF5b3V0Jyk7XG4gICAgICAgIG1vZFR5cGUgPSBlcnJvckNvbnZlbnRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBtb2Q6IGxheW91dE9yUGFnZU1vZCwgbW9kVHlwZTogbGF5b3V0T3JQYWdlTW9kVHlwZSB9ID0gYXdhaXQgKDAsIF9hcHBkaXJtb2R1bGUuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlKSh0cmVlKTtcbiAgICAgICAgbW9kID0gbGF5b3V0T3JQYWdlTW9kO1xuICAgICAgICBtb2RUeXBlID0gbGF5b3V0T3JQYWdlTW9kVHlwZTtcbiAgICB9XG4gICAgaWYgKG1vZFR5cGUpIHtcbiAgICAgICAgcm91dGUgKz0gYC8ke21vZFR5cGV9YDtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGljRmlsZXNNZXRhZGF0YSA9IGF3YWl0IHJlc29sdmVTdGF0aWNNZXRhZGF0YSh0cmVlWzJdLCBwcm9wcyk7XG4gICAgY29uc3QgbWV0YWRhdGFFeHBvcnQgPSBtb2QgPyBnZXREZWZpbmVkTWV0YWRhdGEobW9kLCBwcm9wcywge1xuICAgICAgICByb3V0ZVxuICAgIH0pIDogbnVsbDtcbiAgICBtZXRhZGF0YUl0ZW1zLnB1c2goW1xuICAgICAgICBtZXRhZGF0YUV4cG9ydCxcbiAgICAgICAgc3RhdGljRmlsZXNNZXRhZGF0YVxuICAgIF0pO1xuICAgIGlmIChoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQgJiYgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTW9kID0gYXdhaXQgKDAsIF9hcHBkaXJtb2R1bGUuZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSkodHJlZSwgZXJyb3JDb252ZW50aW9uKTtcbiAgICAgICAgY29uc3QgZXJyb3JNZXRhZGF0YUV4cG9ydCA9IGVycm9yTW9kID8gZ2V0RGVmaW5lZE1ldGFkYXRhKGVycm9yTW9kLCBwcm9wcywge1xuICAgICAgICAgICAgcm91dGVcbiAgICAgICAgfSkgOiBudWxsO1xuICAgICAgICBlcnJvck1ldGFkYXRhSXRlbVswXSA9IGVycm9yTWV0YWRhdGFFeHBvcnQ7XG4gICAgICAgIGVycm9yTWV0YWRhdGFJdGVtWzFdID0gc3RhdGljRmlsZXNNZXRhZGF0YTtcbiAgICB9XG59XG4vLyBbbGF5b3V0Lm1ldGFkYXRhLCBzdGF0aWMgZmlsZXMgbWV0YWRhdGFdIC0+IC4uLiAtPiBbcGFnZS5tZXRhZGF0YSwgc3RhdGljIGZpbGVzIG1ldGFkYXRhXVxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdFZpZXdwb3J0KHsgdHJlZSwgdmlld3BvcnRJdGVtcywgZXJyb3JWaWV3cG9ydEl0ZW1SZWYsIHByb3BzLCByb3V0ZSwgZXJyb3JDb252ZW50aW9uIH0pIHtcbiAgICBsZXQgbW9kO1xuICAgIGxldCBtb2RUeXBlO1xuICAgIGNvbnN0IGhhc0Vycm9yQ29udmVudGlvbkNvbXBvbmVudCA9IEJvb2xlYW4oZXJyb3JDb252ZW50aW9uICYmIHRyZWVbMl1bZXJyb3JDb252ZW50aW9uXSk7XG4gICAgaWYgKGVycm9yQ29udmVudGlvbikge1xuICAgICAgICBtb2QgPSBhd2FpdCAoMCwgX2FwcGRpcm1vZHVsZS5nZXRDb21wb25lbnRUeXBlTW9kdWxlKSh0cmVlLCAnbGF5b3V0Jyk7XG4gICAgICAgIG1vZFR5cGUgPSBlcnJvckNvbnZlbnRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBtb2Q6IGxheW91dE9yUGFnZU1vZCwgbW9kVHlwZTogbGF5b3V0T3JQYWdlTW9kVHlwZSB9ID0gYXdhaXQgKDAsIF9hcHBkaXJtb2R1bGUuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlKSh0cmVlKTtcbiAgICAgICAgbW9kID0gbGF5b3V0T3JQYWdlTW9kO1xuICAgICAgICBtb2RUeXBlID0gbGF5b3V0T3JQYWdlTW9kVHlwZTtcbiAgICB9XG4gICAgaWYgKG1vZFR5cGUpIHtcbiAgICAgICAgcm91dGUgKz0gYC8ke21vZFR5cGV9YDtcbiAgICB9XG4gICAgY29uc3Qgdmlld3BvcnRFeHBvcnQgPSBtb2QgPyBnZXREZWZpbmVkVmlld3BvcnQobW9kLCBwcm9wcywge1xuICAgICAgICByb3V0ZVxuICAgIH0pIDogbnVsbDtcbiAgICB2aWV3cG9ydEl0ZW1zLnB1c2godmlld3BvcnRFeHBvcnQpO1xuICAgIGlmIChoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQgJiYgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTW9kID0gYXdhaXQgKDAsIF9hcHBkaXJtb2R1bGUuZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSkodHJlZSwgZXJyb3JDb252ZW50aW9uKTtcbiAgICAgICAgY29uc3QgZXJyb3JWaWV3cG9ydEV4cG9ydCA9IGVycm9yTW9kID8gZ2V0RGVmaW5lZFZpZXdwb3J0KGVycm9yTW9kLCBwcm9wcywge1xuICAgICAgICAgICAgcm91dGVcbiAgICAgICAgfSkgOiBudWxsO1xuICAgICAgICBlcnJvclZpZXdwb3J0SXRlbVJlZi5jdXJyZW50ID0gZXJyb3JWaWV3cG9ydEV4cG9ydDtcbiAgICB9XG59XG5jb25zdCByZXNvbHZlTWV0YWRhdGFJdGVtcyA9ICgwLCBfcmVhY3QuY2FjaGUpKGFzeW5jIGZ1bmN0aW9uKHRyZWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgcGFyZW50UGFyYW1zID0ge307XG4gICAgY29uc3QgbWV0YWRhdGFJdGVtcyA9IFtdO1xuICAgIGNvbnN0IGVycm9yTWV0YWRhdGFJdGVtID0gW1xuICAgICAgICBudWxsLFxuICAgICAgICBudWxsXG4gICAgXTtcbiAgICBjb25zdCB0cmVlUHJlZml4ID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXNvbHZlTWV0YWRhdGFJdGVtc0ltcGwobWV0YWRhdGFJdGVtcywgdHJlZSwgdHJlZVByZWZpeCwgcGFyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JNZXRhZGF0YUl0ZW0sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xufSk7XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlTWV0YWRhdGFJdGVtc0ltcGwobWV0YWRhdGFJdGVtcywgdHJlZSwgLyoqIFByb3ZpZGVkIHRyZWUgY2FuIGJlIG5lc3RlZCBzdWJ0cmVlLCB0aGlzIGFyZ3VtZW50IHNheXMgd2hhdCBpcyB0aGUgcGF0aCBvZiBzdWNoIHN1YnRyZWUgKi8gdHJlZVByZWZpeCwgcGFyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JNZXRhZGF0YUl0ZW0sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZXMsIHsgcGFnZSB9XSA9IHRyZWU7XG4gICAgY29uc3QgY3VycmVudFRyZWVQcmVmaXggPSB0cmVlUHJlZml4ICYmIHRyZWVQcmVmaXgubGVuZ3RoID8gW1xuICAgICAgICAuLi50cmVlUHJlZml4LFxuICAgICAgICBzZWdtZW50XG4gICAgXSA6IFtcbiAgICAgICAgc2VnbWVudFxuICAgIF07XG4gICAgY29uc3QgaXNQYWdlID0gdHlwZW9mIHBhZ2UgIT09ICd1bmRlZmluZWQnO1xuICAgIC8vIEhhbmRsZSBkeW5hbWljIHNlZ21lbnQgcGFyYW1zLlxuICAgIGNvbnN0IHNlZ21lbnRQYXJhbSA9IGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50KHNlZ21lbnQpO1xuICAgIC8qKlxuICAgKiBDcmVhdGUgb2JqZWN0IGhvbGRpbmcgdGhlIHBhcmVudCBwYXJhbXMgYW5kIGN1cnJlbnQgcGFyYW1zXG4gICAqLyBsZXQgY3VycmVudFBhcmFtcyA9IHBhcmVudFBhcmFtcztcbiAgICBpZiAoc2VnbWVudFBhcmFtICYmIHNlZ21lbnRQYXJhbS52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBjdXJyZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgLi4ucGFyZW50UGFyYW1zLFxuICAgICAgICAgICAgW3NlZ21lbnRQYXJhbS5wYXJhbV06IHNlZ21lbnRQYXJhbS52YWx1ZVxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMgPSAoMCwgX3BhcmFtcy5jcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSkoY3VycmVudFBhcmFtcywgd29ya1N0b3JlKTtcbiAgICBsZXQgbGF5ZXJQcm9wcztcbiAgICBpZiAoaXNQYWdlKSB7XG4gICAgICAgIGxheWVyUHJvcHMgPSB7XG4gICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICBzZWFyY2hQYXJhbXNcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsYXllclByb3BzID0ge1xuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgIH07XG4gICAgfVxuICAgIGF3YWl0IGNvbGxlY3RNZXRhZGF0YSh7XG4gICAgICAgIHRyZWUsXG4gICAgICAgIG1ldGFkYXRhSXRlbXMsXG4gICAgICAgIGVycm9yTWV0YWRhdGFJdGVtLFxuICAgICAgICBlcnJvckNvbnZlbnRpb24sXG4gICAgICAgIHByb3BzOiBsYXllclByb3BzLFxuICAgICAgICByb3V0ZTogY3VycmVudFRyZWVQcmVmaXgvLyBfX1BBR0VfXyBzaG91bGRuJ3QgYmUgc2hvd24gaW4gYSByb3V0ZVxuICAgICAgICAuZmlsdGVyKChzKT0+cyAhPT0gX3NlZ21lbnQuUEFHRV9TRUdNRU5UX0tFWSkuam9pbignLycpXG4gICAgfSk7XG4gICAgZm9yKGNvbnN0IGtleSBpbiBwYXJhbGxlbFJvdXRlcyl7XG4gICAgICAgIGNvbnN0IGNoaWxkVHJlZSA9IHBhcmFsbGVsUm91dGVzW2tleV07XG4gICAgICAgIGF3YWl0IHJlc29sdmVNZXRhZGF0YUl0ZW1zSW1wbChtZXRhZGF0YUl0ZW1zLCBjaGlsZFRyZWUsIGN1cnJlbnRUcmVlUHJlZml4LCBjdXJyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JNZXRhZGF0YUl0ZW0sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpLmxlbmd0aCA9PT0gMCAmJiBlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHBhcmFsbGVsIHJvdXRlcywgcGxhY2UgZXJyb3IgbWV0YWRhdGEgYXMgdGhlIGxhc3QgaXRlbS5cbiAgICAgICAgLy8gZS5nLiBsYXlvdXQgLT4gbGF5b3V0IC0+IG5vdC1mb3VuZFxuICAgICAgICBtZXRhZGF0YUl0ZW1zLnB1c2goZXJyb3JNZXRhZGF0YUl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gbWV0YWRhdGFJdGVtcztcbn1cbmNvbnN0IHJlc29sdmVWaWV3cG9ydEl0ZW1zID0gKDAsIF9yZWFjdC5jYWNoZSkoYXN5bmMgZnVuY3Rpb24odHJlZSwgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBwYXJlbnRQYXJhbXMgPSB7fTtcbiAgICBjb25zdCB2aWV3cG9ydEl0ZW1zID0gW107XG4gICAgY29uc3QgZXJyb3JWaWV3cG9ydEl0ZW1SZWYgPSB7XG4gICAgICAgIGN1cnJlbnQ6IG51bGxcbiAgICB9O1xuICAgIGNvbnN0IHRyZWVQcmVmaXggPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc29sdmVWaWV3cG9ydEl0ZW1zSW1wbCh2aWV3cG9ydEl0ZW1zLCB0cmVlLCB0cmVlUHJlZml4LCBwYXJlbnRQYXJhbXMsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBlcnJvclZpZXdwb3J0SXRlbVJlZiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSk7XG59KTtcbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVWaWV3cG9ydEl0ZW1zSW1wbCh2aWV3cG9ydEl0ZW1zLCB0cmVlLCAvKiogUHJvdmlkZWQgdHJlZSBjYW4gYmUgbmVzdGVkIHN1YnRyZWUsIHRoaXMgYXJndW1lbnQgc2F5cyB3aGF0IGlzIHRoZSBwYXRoIG9mIHN1Y2ggc3VidHJlZSAqLyB0cmVlUHJlZml4LCBwYXJlbnRQYXJhbXMsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBlcnJvclZpZXdwb3J0SXRlbVJlZiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlcywgeyBwYWdlIH1dID0gdHJlZTtcbiAgICBjb25zdCBjdXJyZW50VHJlZVByZWZpeCA9IHRyZWVQcmVmaXggJiYgdHJlZVByZWZpeC5sZW5ndGggPyBbXG4gICAgICAgIC4uLnRyZWVQcmVmaXgsXG4gICAgICAgIHNlZ21lbnRcbiAgICBdIDogW1xuICAgICAgICBzZWdtZW50XG4gICAgXTtcbiAgICBjb25zdCBpc1BhZ2UgPSB0eXBlb2YgcGFnZSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgLy8gSGFuZGxlIGR5bmFtaWMgc2VnbWVudCBwYXJhbXMuXG4gICAgY29uc3Qgc2VnbWVudFBhcmFtID0gZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQoc2VnbWVudCk7XG4gICAgLyoqXG4gICAqIENyZWF0ZSBvYmplY3QgaG9sZGluZyB0aGUgcGFyZW50IHBhcmFtcyBhbmQgY3VycmVudCBwYXJhbXNcbiAgICovIGxldCBjdXJyZW50UGFyYW1zID0gcGFyZW50UGFyYW1zO1xuICAgIGlmIChzZWdtZW50UGFyYW0gJiYgc2VnbWVudFBhcmFtLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIGN1cnJlbnRQYXJhbXMgPSB7XG4gICAgICAgICAgICAuLi5wYXJlbnRQYXJhbXMsXG4gICAgICAgICAgICBbc2VnbWVudFBhcmFtLnBhcmFtXTogc2VnbWVudFBhcmFtLnZhbHVlXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtcyA9ICgwLCBfcGFyYW1zLmNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhKShjdXJyZW50UGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgIGxldCBsYXllclByb3BzO1xuICAgIGlmIChpc1BhZ2UpIHtcbiAgICAgICAgbGF5ZXJQcm9wcyA9IHtcbiAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtc1xuICAgICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGxheWVyUHJvcHMgPSB7XG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXdhaXQgY29sbGVjdFZpZXdwb3J0KHtcbiAgICAgICAgdHJlZSxcbiAgICAgICAgdmlld3BvcnRJdGVtcyxcbiAgICAgICAgZXJyb3JWaWV3cG9ydEl0ZW1SZWYsXG4gICAgICAgIGVycm9yQ29udmVudGlvbixcbiAgICAgICAgcHJvcHM6IGxheWVyUHJvcHMsXG4gICAgICAgIHJvdXRlOiBjdXJyZW50VHJlZVByZWZpeC8vIF9fUEFHRV9fIHNob3VsZG4ndCBiZSBzaG93biBpbiBhIHJvdXRlXG4gICAgICAgIC5maWx0ZXIoKHMpPT5zICE9PSBfc2VnbWVudC5QQUdFX1NFR01FTlRfS0VZKS5qb2luKCcvJylcbiAgICB9KTtcbiAgICBmb3IoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKXtcbiAgICAgICAgY29uc3QgY2hpbGRUcmVlID0gcGFyYWxsZWxSb3V0ZXNba2V5XTtcbiAgICAgICAgYXdhaXQgcmVzb2x2ZVZpZXdwb3J0SXRlbXNJbXBsKHZpZXdwb3J0SXRlbXMsIGNoaWxkVHJlZSwgY3VycmVudFRyZWVQcmVmaXgsIGN1cnJlbnRQYXJhbXMsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBlcnJvclZpZXdwb3J0SXRlbVJlZiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSk7XG4gICAgfVxuICAgIGlmIChPYmplY3Qua2V5cyhwYXJhbGxlbFJvdXRlcykubGVuZ3RoID09PSAwICYmIGVycm9yQ29udmVudGlvbikge1xuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gcGFyYWxsZWwgcm91dGVzLCBwbGFjZSBlcnJvciBtZXRhZGF0YSBhcyB0aGUgbGFzdCBpdGVtLlxuICAgICAgICAvLyBlLmcuIGxheW91dCAtPiBsYXlvdXQgLT4gbm90LWZvdW5kXG4gICAgICAgIHZpZXdwb3J0SXRlbXMucHVzaChlcnJvclZpZXdwb3J0SXRlbVJlZi5jdXJyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHZpZXdwb3J0SXRlbXM7XG59XG5jb25zdCBpc1RpdGxlVHJ1dGh5ID0gKHRpdGxlKT0+ISEodGl0bGUgPT0gbnVsbCA/IHZvaWQgMCA6IHRpdGxlLmFic29sdXRlKTtcbmNvbnN0IGhhc1RpdGxlID0gKG1ldGFkYXRhKT0+aXNUaXRsZVRydXRoeShtZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogbWV0YWRhdGEudGl0bGUpO1xuZnVuY3Rpb24gaW5oZXJpdEZyb21NZXRhZGF0YSh0YXJnZXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgICBpZiAoIWhhc1RpdGxlKHRhcmdldCkgJiYgaGFzVGl0bGUobWV0YWRhdGEpKSB7XG4gICAgICAgICAgICB0YXJnZXQudGl0bGUgPSBtZXRhZGF0YS50aXRsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRhcmdldC5kZXNjcmlwdGlvbiAmJiBtZXRhZGF0YS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGFyZ2V0LmRlc2NyaXB0aW9uID0gbWV0YWRhdGEuZGVzY3JpcHRpb247XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5jb25zdCBjb21tb25PZ0tleXMgPSBbXG4gICAgJ3RpdGxlJyxcbiAgICAnZGVzY3JpcHRpb24nLFxuICAgICdpbWFnZXMnXG5dO1xuZnVuY3Rpb24gcG9zdFByb2Nlc3NNZXRhZGF0YShtZXRhZGF0YSwgZmF2aWNvbiwgdGl0bGVUZW1wbGF0ZXMsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIGNvbnN0IHsgb3BlbkdyYXBoLCB0d2l0dGVyIH0gPSBtZXRhZGF0YTtcbiAgICBpZiAob3BlbkdyYXBoKSB7XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgb3BlbkdyYXBoIGluZm9ybWF0aW9uIGJ1dCBub3QgY29uZmlndXJlZCBpbiB0d2l0dGVyLFxuICAgICAgICAvLyBpbmhlcml0IHRoZW0gZnJvbSBvcGVuR3JhcGggbWV0YWRhdGEuXG4gICAgICAgIGxldCBhdXRvRmlsbFByb3BzID0ge307XG4gICAgICAgIGNvbnN0IGhhc1R3VGl0bGUgPSBoYXNUaXRsZSh0d2l0dGVyKTtcbiAgICAgICAgY29uc3QgaGFzVHdEZXNjcmlwdGlvbiA9IHR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHR3aXR0ZXIuZGVzY3JpcHRpb247XG4gICAgICAgIGNvbnN0IGhhc1R3SW1hZ2VzID0gQm9vbGVhbigodHdpdHRlciA9PSBudWxsID8gdm9pZCAwIDogdHdpdHRlci5oYXNPd25Qcm9wZXJ0eSgnaW1hZ2VzJykpICYmIHR3aXR0ZXIuaW1hZ2VzKTtcbiAgICAgICAgaWYgKCFoYXNUd1RpdGxlKSB7XG4gICAgICAgICAgICBpZiAoaXNUaXRsZVRydXRoeShvcGVuR3JhcGgudGl0bGUpKSB7XG4gICAgICAgICAgICAgICAgYXV0b0ZpbGxQcm9wcy50aXRsZSA9IG9wZW5HcmFwaC50aXRsZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWV0YWRhdGEudGl0bGUgJiYgaXNUaXRsZVRydXRoeShtZXRhZGF0YS50aXRsZSkpIHtcbiAgICAgICAgICAgICAgICBhdXRvRmlsbFByb3BzLnRpdGxlID0gbWV0YWRhdGEudGl0bGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFoYXNUd0Rlc2NyaXB0aW9uKSBhdXRvRmlsbFByb3BzLmRlc2NyaXB0aW9uID0gb3BlbkdyYXBoLmRlc2NyaXB0aW9uIHx8IG1ldGFkYXRhLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFoYXNUd0ltYWdlcykgYXV0b0ZpbGxQcm9wcy5pbWFnZXMgPSBvcGVuR3JhcGguaW1hZ2VzO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoYXV0b0ZpbGxQcm9wcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcGFydGlhbFR3aXR0ZXIgPSAoMCwgX3Jlc29sdmVvcGVuZ3JhcGgucmVzb2x2ZVR3aXR0ZXIpKGF1dG9GaWxsUHJvcHMsIG1ldGFkYXRhLm1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcy50d2l0dGVyKTtcbiAgICAgICAgICAgIGlmIChtZXRhZGF0YS50d2l0dGVyKSB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEudHdpdHRlciA9IE9iamVjdC5hc3NpZ24oe30sIG1ldGFkYXRhLnR3aXR0ZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uIWhhc1R3VGl0bGUgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnRpYWxUd2l0dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYXJ0aWFsVHdpdHRlci50aXRsZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4haGFzVHdEZXNjcmlwdGlvbiAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcGFydGlhbFR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcnRpYWxUd2l0dGVyLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLiFoYXNUd0ltYWdlcyAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZXM6IHBhcnRpYWxUd2l0dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYXJ0aWFsVHdpdHRlci5pbWFnZXNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YS50d2l0dGVyID0gcGFydGlhbFR3aXR0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSWYgdGhlcmUncyBubyB0aXRsZSBhbmQgZGVzY3JpcHRpb24gY29uZmlndXJlZCBpbiBvcGVuR3JhcGggb3IgdHdpdHRlcixcbiAgICAvLyB1c2UgdGhlIHRpdGxlIGFuZCBkZXNjcmlwdGlvbiBmcm9tIG1ldGFkYXRhLlxuICAgIGluaGVyaXRGcm9tTWV0YWRhdGEob3BlbkdyYXBoLCBtZXRhZGF0YSk7XG4gICAgaW5oZXJpdEZyb21NZXRhZGF0YSh0d2l0dGVyLCBtZXRhZGF0YSk7XG4gICAgaWYgKGZhdmljb24pIHtcbiAgICAgICAgaWYgKCFtZXRhZGF0YS5pY29ucykge1xuICAgICAgICAgICAgbWV0YWRhdGEuaWNvbnMgPSB7XG4gICAgICAgICAgICAgICAgaWNvbjogW10sXG4gICAgICAgICAgICAgICAgYXBwbGU6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIG1ldGFkYXRhLmljb25zLmljb24udW5zaGlmdChmYXZpY29uKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xufVxuZnVuY3Rpb24gcHJlcmVuZGVyTWV0YWRhdGEobWV0YWRhdGFJdGVtcykge1xuICAgIC8vIElmIHRoZSBpbmRleCBpcyBhIGZ1bmN0aW9uIHRoZW4gaXQgaXMgYSByZXNvbHZlciBhbmQgdGhlIG5leHQgc2xvdFxuICAgIC8vIGlzIHRoZSBjb3JyZXNwb25kaW5nIHJlc3VsdC4gSWYgdGhlIGluZGV4IGlzIG5vdCBhIGZ1bmN0aW9uIGl0IGlzIHRoZSByZXN1bHRcbiAgICAvLyBpdHNlbGYuXG4gICAgY29uc3QgcmVzb2x2ZXJzQW5kUmVzdWx0cyA9IFtdO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBtZXRhZGF0YUl0ZW1zLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFFeHBvcnQgPSBtZXRhZGF0YUl0ZW1zW2ldWzBdO1xuICAgICAgICBnZXRSZXN1bHQocmVzb2x2ZXJzQW5kUmVzdWx0cywgbWV0YWRhdGFFeHBvcnQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZXJzQW5kUmVzdWx0cztcbn1cbmZ1bmN0aW9uIHByZXJlbmRlclZpZXdwb3J0KHZpZXdwb3J0SXRlbXMpIHtcbiAgICAvLyBJZiB0aGUgaW5kZXggaXMgYSBmdW5jdGlvbiB0aGVuIGl0IGlzIGEgcmVzb2x2ZXIgYW5kIHRoZSBuZXh0IHNsb3RcbiAgICAvLyBpcyB0aGUgY29ycmVzcG9uZGluZyByZXN1bHQuIElmIHRoZSBpbmRleCBpcyBub3QgYSBmdW5jdGlvbiBpdCBpcyB0aGUgcmVzdWx0XG4gICAgLy8gaXRzZWxmLlxuICAgIGNvbnN0IHJlc29sdmVyc0FuZFJlc3VsdHMgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgdmlld3BvcnRJdGVtcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0RXhwb3J0ID0gdmlld3BvcnRJdGVtc1tpXTtcbiAgICAgICAgZ2V0UmVzdWx0KHJlc29sdmVyc0FuZFJlc3VsdHMsIHZpZXdwb3J0RXhwb3J0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVyc0FuZFJlc3VsdHM7XG59XG5mdW5jdGlvbiBnZXRSZXN1bHQocmVzb2x2ZXJzQW5kUmVzdWx0cywgZXhwb3J0Rm9yUmVzdWx0KSB7XG4gICAgaWYgKHR5cGVvZiBleHBvcnRGb3JSZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0Rm9yUmVzdWx0KG5ldyBQcm9taXNlKChyZXNvbHZlKT0+cmVzb2x2ZXJzQW5kUmVzdWx0cy5wdXNoKHJlc29sdmUpKSk7XG4gICAgICAgIHJlc29sdmVyc0FuZFJlc3VsdHMucHVzaChyZXN1bHQpO1xuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgLy8gc2luY2Ugd2UgZWFnZXIgZXhlY3V0ZSBnZW5lcmF0ZU1ldGFkYXRhIGFuZFxuICAgICAgICAgICAgLy8gdGhleSBjYW4gcmVqZWN0IGF0IGFueXRpbWUgd2UgbmVlZCB0byBlbnN1cmVcbiAgICAgICAgICAgIC8vIHdlIGF0dGFjaCB0aGUgY2F0Y2ggaGFuZGxlciByaWdodCBhd2F5IHRvXG4gICAgICAgICAgICAvLyBwcmV2ZW50IHVuaGFuZGxlZCByZWplY3Rpb25zIGNyYXNoaW5nIHRoZSBwcm9jZXNzXG4gICAgICAgICAgICByZXN1bHQuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBfX25leHRFcnJvcjogZXJyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0Rm9yUmVzdWx0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXNvbHZlcnNBbmRSZXN1bHRzLnB1c2goZXhwb3J0Rm9yUmVzdWx0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlcnNBbmRSZXN1bHRzLnB1c2gobnVsbCk7XG4gICAgfVxufVxuZnVuY3Rpb24gcmVzb2x2ZVBlbmRpbmdSZXN1bHQocGFyZW50UmVzdWx0LCByZXNvbHZlUGFyZW50UmVzdWx0KSB7XG4gICAgLy8gSW4gZGV2IHdlIGNsb25lIGFuZCBmcmVlemUgdG8gcHJldmVudCByZWx5aW5nIG9uIG11dGF0aW5nIHJlc29sdmVkTWV0YWRhdGEgZGlyZWN0bHkuXG4gICAgLy8gSW4gcHJvZCB3ZSBqdXN0IHBhc3MgcmVzb2x2ZWRNZXRhZGF0YSB0aHJvdWdoIHdpdGhvdXQgYW55IGNvcHlpbmcuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gRGVlcFJlYWRvbmx5PFQ+IGlzIGJ5IGRlZmluaXRpb24gbm90IGFzc2lnbmFibGUgdG8gVFxuICAgICAgICAvLyBJbnN0ZWFkLCB3ZSBzaG91bGQgb25seSBhY2NlcHQgRGVlcFJlYWRvbmx5PFJlc29sdmVkVHlwZT5cbiAgICAgICAgcGFyZW50UmVzdWx0ID0gcmVxdWlyZSgnLi4vLi4vc2hhcmVkL2xpYi9kZWVwLWZyZWV6ZScpLmRlZXBGcmVlemUocmVxdWlyZSgnLi9jbG9uZS1tZXRhZGF0YScpLmNsb25lTWV0YWRhdGEocGFyZW50UmVzdWx0KSk7XG4gICAgfVxuICAgIHJlc29sdmVQYXJlbnRSZXN1bHQocGFyZW50UmVzdWx0KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGFjY3VtdWxhdGVNZXRhZGF0YShyb3V0ZSwgbWV0YWRhdGFJdGVtcywgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIGxldCByZXNvbHZlZE1ldGFkYXRhID0gKDAsIF9kZWZhdWx0bWV0YWRhdGEuY3JlYXRlRGVmYXVsdE1ldGFkYXRhKSgpO1xuICAgIGxldCB0aXRsZVRlbXBsYXRlcyA9IHtcbiAgICAgICAgdGl0bGU6IG51bGwsXG4gICAgICAgIHR3aXR0ZXI6IG51bGwsXG4gICAgICAgIG9wZW5HcmFwaDogbnVsbFxuICAgIH07XG4gICAgY29uc3QgYnVpbGRTdGF0ZSA9IHtcbiAgICAgICAgd2FybmluZ3M6IG5ldyBTZXQoKVxuICAgIH07XG4gICAgbGV0IGZhdmljb247XG4gICAgLy8gQ29sbGVjdCB0aGUgc3RhdGljIGljb25zIGluIHRoZSBtb3N0IGxlYWYgbm9kZSxcbiAgICAvLyBzaW5jZSB3ZSBkb24ndCBjb2xsZWN0IGFsbCB0aGUgc3RhdGljIG1ldGFkYXRhIGljb25zIGluIHRoZSBwYXJlbnQgc2VnbWVudHMuXG4gICAgY29uc3QgbGVhZlNlZ21lbnRTdGF0aWNJY29ucyA9IHtcbiAgICAgICAgaWNvbjogW10sXG4gICAgICAgIGFwcGxlOiBbXVxuICAgIH07XG4gICAgY29uc3QgcmVzb2x2ZXJzQW5kUmVzdWx0cyA9IHByZXJlbmRlck1ldGFkYXRhKG1ldGFkYXRhSXRlbXMpO1xuICAgIGxldCByZXN1bHRJbmRleCA9IDA7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IG1ldGFkYXRhSXRlbXMubGVuZ3RoOyBpKyspe1xuICAgICAgICB2YXIgX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbjtcbiAgICAgICAgY29uc3Qgc3RhdGljRmlsZXNNZXRhZGF0YSA9IG1ldGFkYXRhSXRlbXNbaV1bMV07XG4gICAgICAgIC8vIFRyZWF0IGZhdmljb24gYXMgc3BlY2lhbCBjYXNlLCBpdCBzaG91bGQgYmUgdGhlIGZpcnN0IGljb24gaW4gdGhlIGxpc3RcbiAgICAgICAgLy8gaSA8PSAxIHJlcHJlc2VudHMgcm9vdCBsYXlvdXQsIGFuZCBpZiBjdXJyZW50IHBhZ2UgaXMgYWxzbyBhdCByb290XG4gICAgICAgIGlmIChpIDw9IDEgJiYgaXNGYXZpY29uKHN0YXRpY0ZpbGVzTWV0YWRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IChfc3RhdGljRmlsZXNNZXRhZGF0YV9pY29uID0gc3RhdGljRmlsZXNNZXRhZGF0YS5pY29uKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvblswXSkpIHtcbiAgICAgICAgICAgIHZhciBfc3RhdGljRmlsZXNNZXRhZGF0YV9pY29uMTtcbiAgICAgICAgICAgIGNvbnN0IGljb25Nb2QgPSBzdGF0aWNGaWxlc01ldGFkYXRhID09IG51bGwgPyB2b2lkIDAgOiAoX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbjEgPSBzdGF0aWNGaWxlc01ldGFkYXRhLmljb24pID09IG51bGwgPyB2b2lkIDAgOiBfc3RhdGljRmlsZXNNZXRhZGF0YV9pY29uMS5zaGlmdCgpO1xuICAgICAgICAgICAgaWYgKGkgPT09IDApIGZhdmljb24gPSBpY29uTW9kO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwZW5kaW5nTWV0YWRhdGEgPSByZXNvbHZlcnNBbmRSZXN1bHRzW3Jlc3VsdEluZGV4KytdO1xuICAgICAgICBpZiAodHlwZW9mIHBlbmRpbmdNZXRhZGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgLy8gVGhpcyBtZXRhZGF0YSBpdGVtIGhhZCBhIGBnZW5lcmF0ZU1ldGFkYXRhYCBhbmRcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gcHJvdmlkZSB0aGUgY3VycmVudGx5IHJlc29sdmVkIG1ldGFkYXRhXG4gICAgICAgICAgICAvLyB0byBpdCBiZWZvcmUgd2UgY29udGludWU7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlUGFyZW50TWV0YWRhdGEgPSBwZW5kaW5nTWV0YWRhdGE7XG4gICAgICAgICAgICAvLyB3ZSBrbm93IHRoYXQgdGhlIG5leHQgaXRlbSBpcyBhIHJlc3VsdCBpZiB0aGlzIGl0ZW1cbiAgICAgICAgICAgIC8vIHdhcyBhIHJlc29sdmVyXG4gICAgICAgICAgICBwZW5kaW5nTWV0YWRhdGEgPSByZXNvbHZlcnNBbmRSZXN1bHRzW3Jlc3VsdEluZGV4KytdO1xuICAgICAgICAgICAgcmVzb2x2ZVBlbmRpbmdSZXN1bHQocmVzb2x2ZWRNZXRhZGF0YSwgcmVzb2x2ZVBhcmVudE1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBPdGhlcndpc2UgdGhlIGl0ZW0gd2FzIGVpdGhlciBudWxsIG9yIGEgc3RhdGljIGV4cG9ydFxuICAgICAgICBsZXQgbWV0YWRhdGE7XG4gICAgICAgIGlmIChpc1Byb21pc2VMaWtlKHBlbmRpbmdNZXRhZGF0YSkpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhID0gYXdhaXQgcGVuZGluZ01ldGFkYXRhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWV0YWRhdGEgPSBwZW5kaW5nTWV0YWRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZWRNZXRhZGF0YSA9IGF3YWl0IG1lcmdlTWV0YWRhdGEocm91dGUsIHBhdGhuYW1lLCB7XG4gICAgICAgICAgICB0YXJnZXQ6IHJlc29sdmVkTWV0YWRhdGEsXG4gICAgICAgICAgICBzb3VyY2U6IG1ldGFkYXRhLFxuICAgICAgICAgICAgbWV0YWRhdGFDb250ZXh0LFxuICAgICAgICAgICAgc3RhdGljRmlsZXNNZXRhZGF0YSxcbiAgICAgICAgICAgIHRpdGxlVGVtcGxhdGVzLFxuICAgICAgICAgICAgYnVpbGRTdGF0ZSxcbiAgICAgICAgICAgIGxlYWZTZWdtZW50U3RhdGljSWNvbnNcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIElmIHRoZSBsYXlvdXQgaXMgdGhlIHNhbWUgbGF5ZXIgd2l0aCBwYWdlLCBza2lwIHRoZSBsZWFmIGxheW91dCBhbmQgbGVhZiBwYWdlXG4gICAgICAgIC8vIFRoZSBsZWFmIGxheW91dCBhbmQgcGFnZSBhcmUgdGhlIGxhc3QgdHdvIGl0ZW1zXG4gICAgICAgIGlmIChpIDwgbWV0YWRhdGFJdGVtcy5sZW5ndGggLSAyKSB7XG4gICAgICAgICAgICB2YXIgX3Jlc29sdmVkTWV0YWRhdGFfdGl0bGUsIF9yZXNvbHZlZE1ldGFkYXRhX29wZW5HcmFwaCwgX3Jlc29sdmVkTWV0YWRhdGFfdHdpdHRlcjtcbiAgICAgICAgICAgIHRpdGxlVGVtcGxhdGVzID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAoKF9yZXNvbHZlZE1ldGFkYXRhX3RpdGxlID0gcmVzb2x2ZWRNZXRhZGF0YS50aXRsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlZE1ldGFkYXRhX3RpdGxlLnRlbXBsYXRlKSB8fCBudWxsLFxuICAgICAgICAgICAgICAgIG9wZW5HcmFwaDogKChfcmVzb2x2ZWRNZXRhZGF0YV9vcGVuR3JhcGggPSByZXNvbHZlZE1ldGFkYXRhLm9wZW5HcmFwaCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlZE1ldGFkYXRhX29wZW5HcmFwaC50aXRsZS50ZW1wbGF0ZSkgfHwgbnVsbCxcbiAgICAgICAgICAgICAgICB0d2l0dGVyOiAoKF9yZXNvbHZlZE1ldGFkYXRhX3R3aXR0ZXIgPSByZXNvbHZlZE1ldGFkYXRhLnR3aXR0ZXIpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRNZXRhZGF0YV90d2l0dGVyLnRpdGxlLnRlbXBsYXRlKSB8fCBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChsZWFmU2VnbWVudFN0YXRpY0ljb25zLmljb24ubGVuZ3RoID4gMCB8fCBsZWFmU2VnbWVudFN0YXRpY0ljb25zLmFwcGxlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKCFyZXNvbHZlZE1ldGFkYXRhLmljb25zKSB7XG4gICAgICAgICAgICByZXNvbHZlZE1ldGFkYXRhLmljb25zID0ge1xuICAgICAgICAgICAgICAgIGljb246IFtdLFxuICAgICAgICAgICAgICAgIGFwcGxlOiBbXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChsZWFmU2VnbWVudFN0YXRpY0ljb25zLmljb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkTWV0YWRhdGEuaWNvbnMuaWNvbi51bnNoaWZ0KC4uLmxlYWZTZWdtZW50U3RhdGljSWNvbnMuaWNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVhZlNlZ21lbnRTdGF0aWNJY29ucy5hcHBsZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRNZXRhZGF0YS5pY29ucy5hcHBsZS51bnNoaWZ0KC4uLmxlYWZTZWdtZW50U3RhdGljSWNvbnMuYXBwbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE9ubHkgbG9nIHdhcm5pbmdzIGlmIHRoZXJlIGFyZSBhbnksIGFuZCBvbmx5IG9uY2UgYWZ0ZXIgdGhlIG1ldGFkYXRhIHJlc29sdmluZyBwcm9jZXNzIGlzIGZpbmlzaGVkXG4gICAgaWYgKGJ1aWxkU3RhdGUud2FybmluZ3Muc2l6ZSA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCB3YXJuaW5nIG9mIGJ1aWxkU3RhdGUud2FybmluZ3Mpe1xuICAgICAgICAgICAgX2xvZy53YXJuKHdhcm5pbmcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwb3N0UHJvY2Vzc01ldGFkYXRhKHJlc29sdmVkTWV0YWRhdGEsIGZhdmljb24sIHRpdGxlVGVtcGxhdGVzLCBtZXRhZGF0YUNvbnRleHQpO1xufVxuYXN5bmMgZnVuY3Rpb24gYWNjdW11bGF0ZVZpZXdwb3J0KHZpZXdwb3J0SXRlbXMpIHtcbiAgICBjb25zdCByZXNvbHZlZFZpZXdwb3J0ID0gKDAsIF9kZWZhdWx0bWV0YWRhdGEuY3JlYXRlRGVmYXVsdFZpZXdwb3J0KSgpO1xuICAgIGNvbnN0IHJlc29sdmVyc0FuZFJlc3VsdHMgPSBwcmVyZW5kZXJWaWV3cG9ydCh2aWV3cG9ydEl0ZW1zKTtcbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUoaSA8IHJlc29sdmVyc0FuZFJlc3VsdHMubGVuZ3RoKXtcbiAgICAgICAgbGV0IHBlbmRpbmdWaWV3cG9ydCA9IHJlc29sdmVyc0FuZFJlc3VsdHNbaSsrXTtcbiAgICAgICAgaWYgKHR5cGVvZiBwZW5kaW5nVmlld3BvcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIHRoaXMgdmlld3BvcnQgaXRlbSBoYWQgYSBgZ2VuZXJhdGVWaWV3cG9ydGAgYW5kXG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHByb3ZpZGUgdGhlIGN1cnJlbnRseSByZXNvbHZlZCB2aWV3cG9ydFxuICAgICAgICAgICAgLy8gdG8gaXQgYmVmb3JlIHdlIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZVBhcmVudFZpZXdwb3J0ID0gcGVuZGluZ1ZpZXdwb3J0O1xuICAgICAgICAgICAgLy8gd2Uga25vdyB0aGF0IHRoZSBuZXh0IGl0ZW0gaXMgYSByZXN1bHQgaWYgdGhpcyBpdGVtXG4gICAgICAgICAgICAvLyB3YXMgYSByZXNvbHZlclxuICAgICAgICAgICAgcGVuZGluZ1ZpZXdwb3J0ID0gcmVzb2x2ZXJzQW5kUmVzdWx0c1tpKytdO1xuICAgICAgICAgICAgcmVzb2x2ZVBlbmRpbmdSZXN1bHQocmVzb2x2ZWRWaWV3cG9ydCwgcmVzb2x2ZVBhcmVudFZpZXdwb3J0KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBPdGhlcndpc2UgdGhlIGl0ZW0gd2FzIGVpdGhlciBudWxsIG9yIGEgc3RhdGljIGV4cG9ydFxuICAgICAgICBsZXQgdmlld3BvcnQ7XG4gICAgICAgIGlmIChpc1Byb21pc2VMaWtlKHBlbmRpbmdWaWV3cG9ydCkpIHtcbiAgICAgICAgICAgIHZpZXdwb3J0ID0gYXdhaXQgcGVuZGluZ1ZpZXdwb3J0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmlld3BvcnQgPSBwZW5kaW5nVmlld3BvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgbWVyZ2VWaWV3cG9ydCh7XG4gICAgICAgICAgICB0YXJnZXQ6IHJlc29sdmVkVmlld3BvcnQsXG4gICAgICAgICAgICBzb3VyY2U6IHZpZXdwb3J0XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWRWaWV3cG9ydDtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVNZXRhZGF0YSh0cmVlLCBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIGNvbnN0IG1ldGFkYXRhSXRlbXMgPSBhd2FpdCByZXNvbHZlTWV0YWRhdGFJdGVtcyh0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdGVNZXRhZGF0YSh3b3JrU3RvcmUucm91dGUsIG1ldGFkYXRhSXRlbXMsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVZpZXdwb3J0KHRyZWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgdmlld3BvcnRJdGVtcyA9IGF3YWl0IHJlc29sdmVWaWV3cG9ydEl0ZW1zKHRyZWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKTtcbiAgICByZXR1cm4gYWNjdW11bGF0ZVZpZXdwb3J0KHZpZXdwb3J0SXRlbXMpO1xufVxuZnVuY3Rpb24gaXNQcm9taXNlTGlrZSh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAnZnVuY3Rpb24nO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n resolveAlternates: function() {\n return resolveAlternates;\n },\n resolveAppLinks: function() {\n return resolveAppLinks;\n },\n resolveAppleWebApp: function() {\n return resolveAppleWebApp;\n },\n resolveFacebook: function() {\n return resolveFacebook;\n },\n resolveItunes: function() {\n return resolveItunes;\n },\n resolvePagination: function() {\n return resolvePagination;\n },\n resolveRobots: function() {\n return resolveRobots;\n },\n resolveThemeColor: function() {\n return resolveThemeColor;\n },\n resolveVerification: function() {\n return resolveVerification;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nfunction resolveAlternateUrl(url, metadataBase, pathname, metadataContext) {\n // If alter native url is an URL instance,\n // we treat it as a URL base and resolve with current pathname\n if (url instanceof URL) {\n const newUrl = new URL(pathname, url);\n url.searchParams.forEach((value, key)=>newUrl.searchParams.set(key, value));\n url = newUrl;\n }\n return (0, _resolveurl.resolveAbsoluteUrlWithPathname)(url, metadataBase, pathname, metadataContext);\n}\nconst resolveThemeColor = (themeColor)=>{\n var _resolveAsArrayOrUndefined;\n if (!themeColor) return null;\n const themeColorDescriptors = [];\n (_resolveAsArrayOrUndefined = (0, _utils.resolveAsArrayOrUndefined)(themeColor)) == null ? void 0 : _resolveAsArrayOrUndefined.forEach((descriptor)=>{\n if (typeof descriptor === 'string') themeColorDescriptors.push({\n color: descriptor\n });\n else if (typeof descriptor === 'object') themeColorDescriptors.push({\n color: descriptor.color,\n media: descriptor.media\n });\n });\n return themeColorDescriptors;\n};\nasync function resolveUrlValuesOfObject(obj, metadataBase, pathname, metadataContext) {\n if (!obj) return null;\n const result = {};\n for (const [key, value] of Object.entries(obj)){\n if (typeof value === 'string' || value instanceof URL) {\n const pathnameForUrl = await pathname;\n result[key] = [\n {\n url: resolveAlternateUrl(value, metadataBase, pathnameForUrl, metadataContext)\n }\n ];\n } else if (value && value.length) {\n result[key] = [];\n const pathnameForUrl = await pathname;\n value.forEach((item, index)=>{\n const url = resolveAlternateUrl(item.url, metadataBase, pathnameForUrl, metadataContext);\n result[key][index] = {\n url,\n title: item.title\n };\n });\n }\n }\n return result;\n}\nasync function resolveCanonicalUrl(urlOrDescriptor, metadataBase, pathname, metadataContext) {\n if (!urlOrDescriptor) return null;\n const url = typeof urlOrDescriptor === 'string' || urlOrDescriptor instanceof URL ? urlOrDescriptor : urlOrDescriptor.url;\n const pathnameForUrl = await pathname;\n // Return string url because structureClone can't handle URL instance\n return {\n url: resolveAlternateUrl(url, metadataBase, pathnameForUrl, metadataContext)\n };\n}\nconst resolveAlternates = async (alternates, metadataBase, pathname, context)=>{\n if (!alternates) return null;\n const canonical = await resolveCanonicalUrl(alternates.canonical, metadataBase, pathname, context);\n const languages = await resolveUrlValuesOfObject(alternates.languages, metadataBase, pathname, context);\n const media = await resolveUrlValuesOfObject(alternates.media, metadataBase, pathname, context);\n const types = await resolveUrlValuesOfObject(alternates.types, metadataBase, pathname, context);\n const result = {\n canonical,\n languages,\n media,\n types\n };\n return result;\n};\nconst robotsKeys = [\n 'noarchive',\n 'nosnippet',\n 'noimageindex',\n 'nocache',\n 'notranslate',\n 'indexifembedded',\n 'nositelinkssearchbox',\n 'unavailable_after',\n 'max-video-preview',\n 'max-image-preview',\n 'max-snippet'\n];\nconst resolveRobotsValue = (robots)=>{\n if (!robots) return null;\n if (typeof robots === 'string') return robots;\n const values = [];\n if (robots.index) values.push('index');\n else if (typeof robots.index === 'boolean') values.push('noindex');\n if (robots.follow) values.push('follow');\n else if (typeof robots.follow === 'boolean') values.push('nofollow');\n for (const key of robotsKeys){\n const value = robots[key];\n if (typeof value !== 'undefined' && value !== false) {\n values.push(typeof value === 'boolean' ? key : `${key}:${value}`);\n }\n }\n return values.join(', ');\n};\nconst resolveRobots = (robots)=>{\n if (!robots) return null;\n return {\n basic: resolveRobotsValue(robots),\n googleBot: typeof robots !== 'string' ? resolveRobotsValue(robots.googleBot) : null\n };\n};\nconst VerificationKeys = [\n 'google',\n 'yahoo',\n 'yandex',\n 'me',\n 'other'\n];\nconst resolveVerification = (verification)=>{\n if (!verification) return null;\n const res = {};\n for (const key of VerificationKeys){\n const value = verification[key];\n if (value) {\n if (key === 'other') {\n res.other = {};\n for(const otherKey in verification.other){\n const otherValue = (0, _utils.resolveAsArrayOrUndefined)(verification.other[otherKey]);\n if (otherValue) res.other[otherKey] = otherValue;\n }\n } else res[key] = (0, _utils.resolveAsArrayOrUndefined)(value);\n }\n }\n return res;\n};\nconst resolveAppleWebApp = (appWebApp)=>{\n var _resolveAsArrayOrUndefined;\n if (!appWebApp) return null;\n if (appWebApp === true) {\n return {\n capable: true\n };\n }\n const startupImages = appWebApp.startupImage ? (_resolveAsArrayOrUndefined = (0, _utils.resolveAsArrayOrUndefined)(appWebApp.startupImage)) == null ? void 0 : _resolveAsArrayOrUndefined.map((item)=>typeof item === 'string' ? {\n url: item\n } : item) : null;\n return {\n capable: 'capable' in appWebApp ? !!appWebApp.capable : true,\n title: appWebApp.title || null,\n startupImage: startupImages,\n statusBarStyle: appWebApp.statusBarStyle || 'default'\n };\n};\nconst resolveAppLinks = (appLinks)=>{\n if (!appLinks) return null;\n for(const key in appLinks){\n // @ts-ignore // TODO: type infer\n appLinks[key] = (0, _utils.resolveAsArrayOrUndefined)(appLinks[key]);\n }\n return appLinks;\n};\nconst resolveItunes = async (itunes, metadataBase, pathname, context)=>{\n if (!itunes) return null;\n return {\n appId: itunes.appId,\n appArgument: itunes.appArgument ? resolveAlternateUrl(itunes.appArgument, metadataBase, await pathname, context) : undefined\n };\n};\nconst resolveFacebook = (facebook)=>{\n if (!facebook) return null;\n return {\n appId: facebook.appId,\n admins: (0, _utils.resolveAsArrayOrUndefined)(facebook.admins)\n };\n};\nconst resolvePagination = async (pagination, metadataBase, pathname, context)=>{\n return {\n previous: (pagination == null ? void 0 : pagination.previous) ? resolveAlternateUrl(pagination.previous, metadataBase, await pathname, context) : null,\n next: (pagination == null ? void 0 : pagination.next) ? resolveAlternateUrl(pagination.next, metadataBase, await pathname, context) : null\n };\n};\n\n//# sourceMappingURL=resolve-basics.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1iYXNpY3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBVUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxJQUFJLEdBQUcsTUFBTTtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLWJhc2ljcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHJlc29sdmVBbHRlcm5hdGVzOiBudWxsLFxuICAgIHJlc29sdmVBcHBMaW5rczogbnVsbCxcbiAgICByZXNvbHZlQXBwbGVXZWJBcHA6IG51bGwsXG4gICAgcmVzb2x2ZUZhY2Vib29rOiBudWxsLFxuICAgIHJlc29sdmVJdHVuZXM6IG51bGwsXG4gICAgcmVzb2x2ZVBhZ2luYXRpb246IG51bGwsXG4gICAgcmVzb2x2ZVJvYm90czogbnVsbCxcbiAgICByZXNvbHZlVGhlbWVDb2xvcjogbnVsbCxcbiAgICByZXNvbHZlVmVyaWZpY2F0aW9uOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHJlc29sdmVBbHRlcm5hdGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBbHRlcm5hdGVzO1xuICAgIH0sXG4gICAgcmVzb2x2ZUFwcExpbmtzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcHBMaW5rcztcbiAgICB9LFxuICAgIHJlc29sdmVBcHBsZVdlYkFwcDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXBwbGVXZWJBcHA7XG4gICAgfSxcbiAgICByZXNvbHZlRmFjZWJvb2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUZhY2Vib29rO1xuICAgIH0sXG4gICAgcmVzb2x2ZUl0dW5lczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSXR1bmVzO1xuICAgIH0sXG4gICAgcmVzb2x2ZVBhZ2luYXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVBhZ2luYXRpb247XG4gICAgfSxcbiAgICByZXNvbHZlUm9ib3RzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVSb2JvdHM7XG4gICAgfSxcbiAgICByZXNvbHZlVGhlbWVDb2xvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVGhlbWVDb2xvcjtcbiAgICB9LFxuICAgIHJlc29sdmVWZXJpZmljYXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVZlcmlmaWNhdGlvbjtcbiAgICB9XG59KTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi9nZW5lcmF0ZS91dGlsc1wiKTtcbmNvbnN0IF9yZXNvbHZldXJsID0gcmVxdWlyZShcIi4vcmVzb2x2ZS11cmxcIik7XG5mdW5jdGlvbiByZXNvbHZlQWx0ZXJuYXRlVXJsKHVybCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KSB7XG4gICAgLy8gSWYgYWx0ZXIgbmF0aXZlIHVybCBpcyBhbiBVUkwgaW5zdGFuY2UsXG4gICAgLy8gd2UgdHJlYXQgaXQgYXMgYSBVUkwgYmFzZSBhbmQgcmVzb2x2ZSB3aXRoIGN1cnJlbnQgcGF0aG5hbWVcbiAgICBpZiAodXJsIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgIGNvbnN0IG5ld1VybCA9IG5ldyBVUkwocGF0aG5hbWUsIHVybCk7XG4gICAgICAgIHVybC5zZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9Pm5ld1VybC5zZWFyY2hQYXJhbXMuc2V0KGtleSwgdmFsdWUpKTtcbiAgICAgICAgdXJsID0gbmV3VXJsO1xuICAgIH1cbiAgICByZXR1cm4gKDAsIF9yZXNvbHZldXJsLnJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZSkodXJsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpO1xufVxuY29uc3QgcmVzb2x2ZVRoZW1lQ29sb3IgPSAodGhlbWVDb2xvcik9PntcbiAgICB2YXIgX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQ7XG4gICAgaWYgKCF0aGVtZUNvbG9yKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB0aGVtZUNvbG9yRGVzY3JpcHRvcnMgPSBbXTtcbiAgICAoX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQgPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKHRoZW1lQ29sb3IpKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQuZm9yRWFjaCgoZGVzY3JpcHRvcik9PntcbiAgICAgICAgaWYgKHR5cGVvZiBkZXNjcmlwdG9yID09PSAnc3RyaW5nJykgdGhlbWVDb2xvckRlc2NyaXB0b3JzLnB1c2goe1xuICAgICAgICAgICAgY29sb3I6IGRlc2NyaXB0b3JcbiAgICAgICAgfSk7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBkZXNjcmlwdG9yID09PSAnb2JqZWN0JykgdGhlbWVDb2xvckRlc2NyaXB0b3JzLnB1c2goe1xuICAgICAgICAgICAgY29sb3I6IGRlc2NyaXB0b3IuY29sb3IsXG4gICAgICAgICAgICBtZWRpYTogZGVzY3JpcHRvci5tZWRpYVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhlbWVDb2xvckRlc2NyaXB0b3JzO1xufTtcbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChvYmosIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIGlmICghb2JqKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKXtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdmFsdWUgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lRm9yVXJsID0gYXdhaXQgcGF0aG5hbWU7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHVybDogcmVzb2x2ZUFsdGVybmF0ZVVybCh2YWx1ZSwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZUZvclVybCwgbWV0YWRhdGFDb250ZXh0KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IFtdO1xuICAgICAgICAgICAgY29uc3QgcGF0aG5hbWVGb3JVcmwgPSBhd2FpdCBwYXRobmFtZTtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW0sIGluZGV4KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHJlc29sdmVBbHRlcm5hdGVVcmwoaXRlbS51cmwsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWVGb3JVcmwsIG1ldGFkYXRhQ29udGV4dCk7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV1baW5kZXhdID0ge1xuICAgICAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlQ2Fub25pY2FsVXJsKHVybE9yRGVzY3JpcHRvciwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KSB7XG4gICAgaWYgKCF1cmxPckRlc2NyaXB0b3IpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHVybCA9IHR5cGVvZiB1cmxPckRlc2NyaXB0b3IgPT09ICdzdHJpbmcnIHx8IHVybE9yRGVzY3JpcHRvciBpbnN0YW5jZW9mIFVSTCA/IHVybE9yRGVzY3JpcHRvciA6IHVybE9yRGVzY3JpcHRvci51cmw7XG4gICAgY29uc3QgcGF0aG5hbWVGb3JVcmwgPSBhd2FpdCBwYXRobmFtZTtcbiAgICAvLyBSZXR1cm4gc3RyaW5nIHVybCBiZWNhdXNlIHN0cnVjdHVyZUNsb25lIGNhbid0IGhhbmRsZSBVUkwgaW5zdGFuY2VcbiAgICByZXR1cm4ge1xuICAgICAgICB1cmw6IHJlc29sdmVBbHRlcm5hdGVVcmwodXJsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lRm9yVXJsLCBtZXRhZGF0YUNvbnRleHQpXG4gICAgfTtcbn1cbmNvbnN0IHJlc29sdmVBbHRlcm5hdGVzID0gYXN5bmMgKGFsdGVybmF0ZXMsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIGNvbnRleHQpPT57XG4gICAgaWYgKCFhbHRlcm5hdGVzKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBjYW5vbmljYWwgPSBhd2FpdCByZXNvbHZlQ2Fub25pY2FsVXJsKGFsdGVybmF0ZXMuY2Fub25pY2FsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KTtcbiAgICBjb25zdCBsYW5ndWFnZXMgPSBhd2FpdCByZXNvbHZlVXJsVmFsdWVzT2ZPYmplY3QoYWx0ZXJuYXRlcy5sYW5ndWFnZXMsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIGNvbnRleHQpO1xuICAgIGNvbnN0IG1lZGlhID0gYXdhaXQgcmVzb2x2ZVVybFZhbHVlc09mT2JqZWN0KGFsdGVybmF0ZXMubWVkaWEsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIGNvbnRleHQpO1xuICAgIGNvbnN0IHR5cGVzID0gYXdhaXQgcmVzb2x2ZVVybFZhbHVlc09mT2JqZWN0KGFsdGVybmF0ZXMudHlwZXMsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIGNvbnRleHQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgY2Fub25pY2FsLFxuICAgICAgICBsYW5ndWFnZXMsXG4gICAgICAgIG1lZGlhLFxuICAgICAgICB0eXBlc1xuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5jb25zdCByb2JvdHNLZXlzID0gW1xuICAgICdub2FyY2hpdmUnLFxuICAgICdub3NuaXBwZXQnLFxuICAgICdub2ltYWdlaW5kZXgnLFxuICAgICdub2NhY2hlJyxcbiAgICAnbm90cmFuc2xhdGUnLFxuICAgICdpbmRleGlmZW1iZWRkZWQnLFxuICAgICdub3NpdGVsaW5rc3NlYXJjaGJveCcsXG4gICAgJ3VuYXZhaWxhYmxlX2FmdGVyJyxcbiAgICAnbWF4LXZpZGVvLXByZXZpZXcnLFxuICAgICdtYXgtaW1hZ2UtcHJldmlldycsXG4gICAgJ21heC1zbmlwcGV0J1xuXTtcbmNvbnN0IHJlc29sdmVSb2JvdHNWYWx1ZSA9IChyb2JvdHMpPT57XG4gICAgaWYgKCFyb2JvdHMpIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygcm9ib3RzID09PSAnc3RyaW5nJykgcmV0dXJuIHJvYm90cztcbiAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICBpZiAocm9ib3RzLmluZGV4KSB2YWx1ZXMucHVzaCgnaW5kZXgnKTtcbiAgICBlbHNlIGlmICh0eXBlb2Ygcm9ib3RzLmluZGV4ID09PSAnYm9vbGVhbicpIHZhbHVlcy5wdXNoKCdub2luZGV4Jyk7XG4gICAgaWYgKHJvYm90cy5mb2xsb3cpIHZhbHVlcy5wdXNoKCdmb2xsb3cnKTtcbiAgICBlbHNlIGlmICh0eXBlb2Ygcm9ib3RzLmZvbGxvdyA9PT0gJ2Jvb2xlYW4nKSB2YWx1ZXMucHVzaCgnbm9mb2xsb3cnKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiByb2JvdHNLZXlzKXtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByb2JvdHNba2V5XTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyA/IGtleSA6IGAke2tleX06JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzLmpvaW4oJywgJyk7XG59O1xuY29uc3QgcmVzb2x2ZVJvYm90cyA9IChyb2JvdHMpPT57XG4gICAgaWYgKCFyb2JvdHMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJhc2ljOiByZXNvbHZlUm9ib3RzVmFsdWUocm9ib3RzKSxcbiAgICAgICAgZ29vZ2xlQm90OiB0eXBlb2Ygcm9ib3RzICE9PSAnc3RyaW5nJyA/IHJlc29sdmVSb2JvdHNWYWx1ZShyb2JvdHMuZ29vZ2xlQm90KSA6IG51bGxcbiAgICB9O1xufTtcbmNvbnN0IFZlcmlmaWNhdGlvbktleXMgPSBbXG4gICAgJ2dvb2dsZScsXG4gICAgJ3lhaG9vJyxcbiAgICAneWFuZGV4JyxcbiAgICAnbWUnLFxuICAgICdvdGhlcidcbl07XG5jb25zdCByZXNvbHZlVmVyaWZpY2F0aW9uID0gKHZlcmlmaWNhdGlvbik9PntcbiAgICBpZiAoIXZlcmlmaWNhdGlvbikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgVmVyaWZpY2F0aW9uS2V5cyl7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmVyaWZpY2F0aW9uW2tleV07XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ290aGVyJykge1xuICAgICAgICAgICAgICAgIHJlcy5vdGhlciA9IHt9O1xuICAgICAgICAgICAgICAgIGZvcihjb25zdCBvdGhlcktleSBpbiB2ZXJpZmljYXRpb24ub3RoZXIpe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvdGhlclZhbHVlID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKSh2ZXJpZmljYXRpb24ub3RoZXJbb3RoZXJLZXldKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyVmFsdWUpIHJlcy5vdGhlcltvdGhlcktleV0gPSBvdGhlclZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSByZXNba2V5XSA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59O1xuY29uc3QgcmVzb2x2ZUFwcGxlV2ViQXBwID0gKGFwcFdlYkFwcCk9PntcbiAgICB2YXIgX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQ7XG4gICAgaWYgKCFhcHBXZWJBcHApIHJldHVybiBudWxsO1xuICAgIGlmIChhcHBXZWJBcHAgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNhcGFibGU6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgc3RhcnR1cEltYWdlcyA9IGFwcFdlYkFwcC5zdGFydHVwSW1hZ2UgPyAoX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQgPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKGFwcFdlYkFwcC5zdGFydHVwSW1hZ2UpKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQubWFwKChpdGVtKT0+dHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8ge1xuICAgICAgICAgICAgdXJsOiBpdGVtXG4gICAgICAgIH0gOiBpdGVtKSA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2FwYWJsZTogJ2NhcGFibGUnIGluIGFwcFdlYkFwcCA/ICEhYXBwV2ViQXBwLmNhcGFibGUgOiB0cnVlLFxuICAgICAgICB0aXRsZTogYXBwV2ViQXBwLnRpdGxlIHx8IG51bGwsXG4gICAgICAgIHN0YXJ0dXBJbWFnZTogc3RhcnR1cEltYWdlcyxcbiAgICAgICAgc3RhdHVzQmFyU3R5bGU6IGFwcFdlYkFwcC5zdGF0dXNCYXJTdHlsZSB8fCAnZGVmYXVsdCdcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVBcHBMaW5rcyA9IChhcHBMaW5rcyk9PntcbiAgICBpZiAoIWFwcExpbmtzKSByZXR1cm4gbnVsbDtcbiAgICBmb3IoY29uc3Qga2V5IGluIGFwcExpbmtzKXtcbiAgICAgICAgLy8gQHRzLWlnbm9yZSAvLyBUT0RPOiB0eXBlIGluZmVyXG4gICAgICAgIGFwcExpbmtzW2tleV0gPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKGFwcExpbmtzW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gYXBwTGlua3M7XG59O1xuY29uc3QgcmVzb2x2ZUl0dW5lcyA9IGFzeW5jIChpdHVuZXMsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIGNvbnRleHQpPT57XG4gICAgaWYgKCFpdHVuZXMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwcElkOiBpdHVuZXMuYXBwSWQsXG4gICAgICAgIGFwcEFyZ3VtZW50OiBpdHVuZXMuYXBwQXJndW1lbnQgPyByZXNvbHZlQWx0ZXJuYXRlVXJsKGl0dW5lcy5hcHBBcmd1bWVudCwgbWV0YWRhdGFCYXNlLCBhd2FpdCBwYXRobmFtZSwgY29udGV4dCkgOiB1bmRlZmluZWRcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVGYWNlYm9vayA9IChmYWNlYm9vayk9PntcbiAgICBpZiAoIWZhY2Vib29rKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcHBJZDogZmFjZWJvb2suYXBwSWQsXG4gICAgICAgIGFkbWluczogKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShmYWNlYm9vay5hZG1pbnMpXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlUGFnaW5hdGlvbiA9IGFzeW5jIChwYWdpbmF0aW9uLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KT0+e1xuICAgIHJldHVybiB7XG4gICAgICAgIHByZXZpb3VzOiAocGFnaW5hdGlvbiA9PSBudWxsID8gdm9pZCAwIDogcGFnaW5hdGlvbi5wcmV2aW91cykgPyByZXNvbHZlQWx0ZXJuYXRlVXJsKHBhZ2luYXRpb24ucHJldmlvdXMsIG1ldGFkYXRhQmFzZSwgYXdhaXQgcGF0aG5hbWUsIGNvbnRleHQpIDogbnVsbCxcbiAgICAgICAgbmV4dDogKHBhZ2luYXRpb24gPT0gbnVsbCA/IHZvaWQgMCA6IHBhZ2luYXRpb24ubmV4dCkgPyByZXNvbHZlQWx0ZXJuYXRlVXJsKHBhZ2luYXRpb24ubmV4dCwgbWV0YWRhdGFCYXNlLCBhd2FpdCBwYXRobmFtZSwgY29udGV4dCkgOiBudWxsXG4gICAgfTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtYmFzaWNzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n resolveIcon: function() {\n return resolveIcon;\n },\n resolveIcons: function() {\n return resolveIcons;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nconst _constants = __webpack_require__(/*! ../constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/constants.js\");\nfunction resolveIcon(icon) {\n if ((0, _resolveurl.isStringOrURL)(icon)) return {\n url: icon\n };\n else if (Array.isArray(icon)) return icon;\n return icon;\n}\nconst resolveIcons = (icons)=>{\n if (!icons) {\n return null;\n }\n const resolved = {\n icon: [],\n apple: []\n };\n if (Array.isArray(icons)) {\n resolved.icon = icons.map(resolveIcon).filter(Boolean);\n } else if ((0, _resolveurl.isStringOrURL)(icons)) {\n resolved.icon = [\n resolveIcon(icons)\n ];\n } else {\n for (const key of _constants.IconKeys){\n const values = (0, _utils.resolveAsArrayOrUndefined)(icons[key]);\n if (values) resolved[key] = values.map(resolveIcon);\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-icons.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1pY29ucy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDLG1CQUFtQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLWljb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgcmVzb2x2ZUljb246IG51bGwsXG4gICAgcmVzb2x2ZUljb25zOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHJlc29sdmVJY29uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVJY29uO1xuICAgIH0sXG4gICAgcmVzb2x2ZUljb25zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVJY29ucztcbiAgICB9XG59KTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi9nZW5lcmF0ZS91dGlsc1wiKTtcbmNvbnN0IF9yZXNvbHZldXJsID0gcmVxdWlyZShcIi4vcmVzb2x2ZS11cmxcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIHJlc29sdmVJY29uKGljb24pIHtcbiAgICBpZiAoKDAsIF9yZXNvbHZldXJsLmlzU3RyaW5nT3JVUkwpKGljb24pKSByZXR1cm4ge1xuICAgICAgICB1cmw6IGljb25cbiAgICB9O1xuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaWNvbikpIHJldHVybiBpY29uO1xuICAgIHJldHVybiBpY29uO1xufVxuY29uc3QgcmVzb2x2ZUljb25zID0gKGljb25zKT0+e1xuICAgIGlmICghaWNvbnMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHJlc29sdmVkID0ge1xuICAgICAgICBpY29uOiBbXSxcbiAgICAgICAgYXBwbGU6IFtdXG4gICAgfTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpY29ucykpIHtcbiAgICAgICAgcmVzb2x2ZWQuaWNvbiA9IGljb25zLm1hcChyZXNvbHZlSWNvbikuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH0gZWxzZSBpZiAoKDAsIF9yZXNvbHZldXJsLmlzU3RyaW5nT3JVUkwpKGljb25zKSkge1xuICAgICAgICByZXNvbHZlZC5pY29uID0gW1xuICAgICAgICAgICAgcmVzb2x2ZUljb24oaWNvbnMpXG4gICAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgX2NvbnN0YW50cy5JY29uS2V5cyl7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKGljb25zW2tleV0pO1xuICAgICAgICAgICAgaWYgKHZhbHVlcykgcmVzb2x2ZWRba2V5XSA9IHZhbHVlcy5tYXAocmVzb2x2ZUljb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZDtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtaWNvbnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n resolveImages: function() {\n return resolveImages;\n },\n resolveOpenGraph: function() {\n return resolveOpenGraph;\n },\n resolveTwitter: function() {\n return resolveTwitter;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nconst _resolvetitle = __webpack_require__(/*! ./resolve-title */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\");\nconst _url = __webpack_require__(/*! ../../url */ \"(rsc)/./node_modules/next/dist/lib/url.js\");\nconst _log = __webpack_require__(/*! ../../../build/output/log */ \"(rsc)/./node_modules/next/dist/build/output/log.js\");\nconst OgTypeFields = {\n article: [\n 'authors',\n 'tags'\n ],\n song: [\n 'albums',\n 'musicians'\n ],\n playlist: [\n 'albums',\n 'musicians'\n ],\n radio: [\n 'creators'\n ],\n video: [\n 'actors',\n 'directors',\n 'writers',\n 'tags'\n ],\n basic: [\n 'emails',\n 'phoneNumbers',\n 'faxNumbers',\n 'alternateLocale',\n 'audio',\n 'videos'\n ]\n};\nfunction resolveAndValidateImage(item, metadataBase, isStaticMetadataRouteFile) {\n if (!item) return undefined;\n const isItemUrl = (0, _resolveurl.isStringOrURL)(item);\n const inputUrl = isItemUrl ? item : item.url;\n if (!inputUrl) return undefined;\n // process.env.VERCEL is set to \"1\" when System Environment Variables are\n // exposed. When exposed, validation is not necessary since we are falling back to\n // process.env.VERCEL_PROJECT_PRODUCTION_URL, process.env.VERCEL_BRANCH_URL, or\n // process.env.VERCEL_URL for the `metadataBase`. process.env.VERCEL is undefined\n // when System Environment Variables are not exposed. When not exposed, we cannot\n // detect in the build environment if the deployment is a Vercel deployment or not.\n //\n // x-ref: https://vercel.com/docs/projects/environment-variables/system-environment-variables#system-environment-variables\n const isUsingVercelSystemEnvironmentVariables = Boolean(process.env.VERCEL);\n const isRelativeUrl = typeof inputUrl === 'string' && !(0, _url.isFullStringUrl)(inputUrl);\n // When no explicit metadataBase is specified by the user, we'll override it with the fallback metadata\n // under the following conditions:\n // - The provided URL is relative (ie ./og-image).\n // - The image is statically generated by Next.js (such as the special `opengraph-image` route)\n // In both cases, we want to ensure that across all environments, the ogImage is a fully qualified URL.\n // In the `opengraph-image` case, since the user isn't explicitly passing a relative path, this ensures\n // the ogImage will be properly discovered across different environments without the user needing to\n // have a bunch of `process.env` checks when defining their `metadataBase`.\n if (isRelativeUrl && (!metadataBase || isStaticMetadataRouteFile)) {\n const fallbackMetadataBase = (0, _resolveurl.getSocialImageMetadataBaseFallback)(metadataBase);\n // When not using Vercel environment variables for URL injection, we aren't able to determine\n // a fallback value for `metadataBase`. For self-hosted setups, we want to warn\n // about this since the only fallback we'll be able to generate is `localhost`.\n // In development, we'll only warn for relative metadata that isn't part of the static\n // metadata conventions (eg `opengraph-image`), as otherwise it's currently very noisy\n // for common cases. Eventually we should remove this warning all together in favor of\n // devtools.\n const shouldWarn = !isUsingVercelSystemEnvironmentVariables && !metadataBase && ( false || !isStaticMetadataRouteFile);\n if (shouldWarn) {\n (0, _log.warnOnce)(`metadataBase property in metadata export is not set for resolving social open graph or twitter images, using \"${fallbackMetadataBase.origin}\". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase`);\n }\n metadataBase = fallbackMetadataBase;\n }\n return isItemUrl ? {\n url: (0, _resolveurl.resolveUrl)(inputUrl, metadataBase)\n } : {\n ...item,\n // Update image descriptor url\n url: (0, _resolveurl.resolveUrl)(inputUrl, metadataBase)\n };\n}\nfunction resolveImages(images, metadataBase, isStaticMetadataRouteFile) {\n const resolvedImages = (0, _utils.resolveAsArrayOrUndefined)(images);\n if (!resolvedImages) return resolvedImages;\n const nonNullableImages = [];\n for (const item of resolvedImages){\n const resolvedItem = resolveAndValidateImage(item, metadataBase, isStaticMetadataRouteFile);\n if (!resolvedItem) continue;\n nonNullableImages.push(resolvedItem);\n }\n return nonNullableImages;\n}\nconst ogTypeToFields = {\n article: OgTypeFields.article,\n book: OgTypeFields.article,\n 'music.song': OgTypeFields.song,\n 'music.album': OgTypeFields.song,\n 'music.playlist': OgTypeFields.playlist,\n 'music.radio_station': OgTypeFields.radio,\n 'video.movie': OgTypeFields.video,\n 'video.episode': OgTypeFields.video\n};\nfunction getFieldsByOgType(ogType) {\n if (!ogType || !(ogType in ogTypeToFields)) return OgTypeFields.basic;\n return ogTypeToFields[ogType].concat(OgTypeFields.basic);\n}\nconst resolveOpenGraph = async (openGraph, metadataBase, pathname, metadataContext, titleTemplate)=>{\n if (!openGraph) return null;\n function resolveProps(target, og) {\n const ogType = og && 'type' in og ? og.type : undefined;\n const keys = getFieldsByOgType(ogType);\n for (const k of keys){\n const key = k;\n if (key in og && key !== 'url') {\n const value = og[key];\n target[key] = value ? (0, _utils.resolveArray)(value) : null;\n }\n }\n target.images = resolveImages(og.images, metadataBase, metadataContext.isStaticMetadataRouteFile);\n }\n const resolved = {\n ...openGraph,\n title: (0, _resolvetitle.resolveTitle)(openGraph.title, titleTemplate)\n };\n resolveProps(resolved, openGraph);\n resolved.url = openGraph.url ? (0, _resolveurl.resolveAbsoluteUrlWithPathname)(openGraph.url, metadataBase, await pathname, metadataContext) : null;\n return resolved;\n};\nconst TwitterBasicInfoKeys = [\n 'site',\n 'siteId',\n 'creator',\n 'creatorId',\n 'description'\n];\nconst resolveTwitter = (twitter, metadataBase, metadataContext, titleTemplate)=>{\n var _resolved_images;\n if (!twitter) return null;\n let card = 'card' in twitter ? twitter.card : undefined;\n const resolved = {\n ...twitter,\n title: (0, _resolvetitle.resolveTitle)(twitter.title, titleTemplate)\n };\n for (const infoKey of TwitterBasicInfoKeys){\n resolved[infoKey] = twitter[infoKey] || null;\n }\n resolved.images = resolveImages(twitter.images, metadataBase, metadataContext.isStaticMetadataRouteFile);\n card = card || (((_resolved_images = resolved.images) == null ? void 0 : _resolved_images.length) ? 'summary_large_image' : 'summary');\n resolved.card = card;\n if ('card' in resolved) {\n switch(resolved.card){\n case 'player':\n {\n resolved.players = (0, _utils.resolveAsArrayOrUndefined)(resolved.players) || [];\n break;\n }\n case 'app':\n {\n resolved.app = resolved.app || {};\n break;\n }\n case 'summary':\n case 'summary_large_image':\n break;\n default:\n resolved;\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-opengraph.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1vcGVuZ3JhcGguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDLHNCQUFzQixtQkFBTyxDQUFDLCtGQUFpQjtBQUMvQyxhQUFhLG1CQUFPLENBQUMsNERBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHFGQUEyQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5RkFBeUYsTUFBcUM7QUFDOUg7QUFDQSxnSkFBZ0osNEJBQTRCO0FBQzVLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvcmVzb2x2ZXJzL3Jlc29sdmUtb3BlbmdyYXBoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgcmVzb2x2ZUltYWdlczogbnVsbCxcbiAgICByZXNvbHZlT3BlbkdyYXBoOiBudWxsLFxuICAgIHJlc29sdmVUd2l0dGVyOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHJlc29sdmVJbWFnZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUltYWdlcztcbiAgICB9LFxuICAgIHJlc29sdmVPcGVuR3JhcGg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZU9wZW5HcmFwaDtcbiAgICB9LFxuICAgIHJlc29sdmVUd2l0dGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVUd2l0dGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL2dlbmVyYXRlL3V0aWxzXCIpO1xuY29uc3QgX3Jlc29sdmV1cmwgPSByZXF1aXJlKFwiLi9yZXNvbHZlLXVybFwiKTtcbmNvbnN0IF9yZXNvbHZldGl0bGUgPSByZXF1aXJlKFwiLi9yZXNvbHZlLXRpdGxlXCIpO1xuY29uc3QgX3VybCA9IHJlcXVpcmUoXCIuLi8uLi91cmxcIik7XG5jb25zdCBfbG9nID0gcmVxdWlyZShcIi4uLy4uLy4uL2J1aWxkL291dHB1dC9sb2dcIik7XG5jb25zdCBPZ1R5cGVGaWVsZHMgPSB7XG4gICAgYXJ0aWNsZTogW1xuICAgICAgICAnYXV0aG9ycycsXG4gICAgICAgICd0YWdzJ1xuICAgIF0sXG4gICAgc29uZzogW1xuICAgICAgICAnYWxidW1zJyxcbiAgICAgICAgJ211c2ljaWFucydcbiAgICBdLFxuICAgIHBsYXlsaXN0OiBbXG4gICAgICAgICdhbGJ1bXMnLFxuICAgICAgICAnbXVzaWNpYW5zJ1xuICAgIF0sXG4gICAgcmFkaW86IFtcbiAgICAgICAgJ2NyZWF0b3JzJ1xuICAgIF0sXG4gICAgdmlkZW86IFtcbiAgICAgICAgJ2FjdG9ycycsXG4gICAgICAgICdkaXJlY3RvcnMnLFxuICAgICAgICAnd3JpdGVycycsXG4gICAgICAgICd0YWdzJ1xuICAgIF0sXG4gICAgYmFzaWM6IFtcbiAgICAgICAgJ2VtYWlscycsXG4gICAgICAgICdwaG9uZU51bWJlcnMnLFxuICAgICAgICAnZmF4TnVtYmVycycsXG4gICAgICAgICdhbHRlcm5hdGVMb2NhbGUnLFxuICAgICAgICAnYXVkaW8nLFxuICAgICAgICAndmlkZW9zJ1xuICAgIF1cbn07XG5mdW5jdGlvbiByZXNvbHZlQW5kVmFsaWRhdGVJbWFnZShpdGVtLCBtZXRhZGF0YUJhc2UsIGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpIHtcbiAgICBpZiAoIWl0ZW0pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgaXNJdGVtVXJsID0gKDAsIF9yZXNvbHZldXJsLmlzU3RyaW5nT3JVUkwpKGl0ZW0pO1xuICAgIGNvbnN0IGlucHV0VXJsID0gaXNJdGVtVXJsID8gaXRlbSA6IGl0ZW0udXJsO1xuICAgIGlmICghaW5wdXRVcmwpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgLy8gcHJvY2Vzcy5lbnYuVkVSQ0VMIGlzIHNldCB0byBcIjFcIiB3aGVuIFN5c3RlbSBFbnZpcm9ubWVudCBWYXJpYWJsZXMgYXJlXG4gICAgLy8gZXhwb3NlZC4gV2hlbiBleHBvc2VkLCB2YWxpZGF0aW9uIGlzIG5vdCBuZWNlc3Nhcnkgc2luY2Ugd2UgYXJlIGZhbGxpbmcgYmFjayB0b1xuICAgIC8vIHByb2Nlc3MuZW52LlZFUkNFTF9QUk9KRUNUX1BST0RVQ1RJT05fVVJMLCBwcm9jZXNzLmVudi5WRVJDRUxfQlJBTkNIX1VSTCwgb3JcbiAgICAvLyBwcm9jZXNzLmVudi5WRVJDRUxfVVJMIGZvciB0aGUgYG1ldGFkYXRhQmFzZWAuIHByb2Nlc3MuZW52LlZFUkNFTCBpcyB1bmRlZmluZWRcbiAgICAvLyB3aGVuIFN5c3RlbSBFbnZpcm9ubWVudCBWYXJpYWJsZXMgYXJlIG5vdCBleHBvc2VkLiBXaGVuIG5vdCBleHBvc2VkLCB3ZSBjYW5ub3RcbiAgICAvLyBkZXRlY3QgaW4gdGhlIGJ1aWxkIGVudmlyb25tZW50IGlmIHRoZSBkZXBsb3ltZW50IGlzIGEgVmVyY2VsIGRlcGxveW1lbnQgb3Igbm90LlxuICAgIC8vXG4gICAgLy8geC1yZWY6IGh0dHBzOi8vdmVyY2VsLmNvbS9kb2NzL3Byb2plY3RzL2Vudmlyb25tZW50LXZhcmlhYmxlcy9zeXN0ZW0tZW52aXJvbm1lbnQtdmFyaWFibGVzI3N5c3RlbS1lbnZpcm9ubWVudC12YXJpYWJsZXNcbiAgICBjb25zdCBpc1VzaW5nVmVyY2VsU3lzdGVtRW52aXJvbm1lbnRWYXJpYWJsZXMgPSBCb29sZWFuKHByb2Nlc3MuZW52LlZFUkNFTCk7XG4gICAgY29uc3QgaXNSZWxhdGl2ZVVybCA9IHR5cGVvZiBpbnB1dFVybCA9PT0gJ3N0cmluZycgJiYgISgwLCBfdXJsLmlzRnVsbFN0cmluZ1VybCkoaW5wdXRVcmwpO1xuICAgIC8vIFdoZW4gbm8gZXhwbGljaXQgbWV0YWRhdGFCYXNlIGlzIHNwZWNpZmllZCBieSB0aGUgdXNlciwgd2UnbGwgb3ZlcnJpZGUgaXQgd2l0aCB0aGUgZmFsbGJhY2sgbWV0YWRhdGFcbiAgICAvLyB1bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gICAgLy8gLSBUaGUgcHJvdmlkZWQgVVJMIGlzIHJlbGF0aXZlIChpZSAuL29nLWltYWdlKS5cbiAgICAvLyAtIFRoZSBpbWFnZSBpcyBzdGF0aWNhbGx5IGdlbmVyYXRlZCBieSBOZXh0LmpzIChzdWNoIGFzIHRoZSBzcGVjaWFsIGBvcGVuZ3JhcGgtaW1hZ2VgIHJvdXRlKVxuICAgIC8vIEluIGJvdGggY2FzZXMsIHdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgYWNyb3NzIGFsbCBlbnZpcm9ubWVudHMsIHRoZSBvZ0ltYWdlIGlzIGEgZnVsbHkgcXVhbGlmaWVkIFVSTC5cbiAgICAvLyBJbiB0aGUgYG9wZW5ncmFwaC1pbWFnZWAgY2FzZSwgc2luY2UgdGhlIHVzZXIgaXNuJ3QgZXhwbGljaXRseSBwYXNzaW5nIGEgcmVsYXRpdmUgcGF0aCwgdGhpcyBlbnN1cmVzXG4gICAgLy8gdGhlIG9nSW1hZ2Ugd2lsbCBiZSBwcm9wZXJseSBkaXNjb3ZlcmVkIGFjcm9zcyBkaWZmZXJlbnQgZW52aXJvbm1lbnRzIHdpdGhvdXQgdGhlIHVzZXIgbmVlZGluZyB0b1xuICAgIC8vIGhhdmUgYSBidW5jaCBvZiBgcHJvY2Vzcy5lbnZgIGNoZWNrcyB3aGVuIGRlZmluaW5nIHRoZWlyIGBtZXRhZGF0YUJhc2VgLlxuICAgIGlmIChpc1JlbGF0aXZlVXJsICYmICghbWV0YWRhdGFCYXNlIHx8IGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpKSB7XG4gICAgICAgIGNvbnN0IGZhbGxiYWNrTWV0YWRhdGFCYXNlID0gKDAsIF9yZXNvbHZldXJsLmdldFNvY2lhbEltYWdlTWV0YWRhdGFCYXNlRmFsbGJhY2spKG1ldGFkYXRhQmFzZSk7XG4gICAgICAgIC8vIFdoZW4gbm90IHVzaW5nIFZlcmNlbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIFVSTCBpbmplY3Rpb24sIHdlIGFyZW4ndCBhYmxlIHRvIGRldGVybWluZVxuICAgICAgICAvLyBhIGZhbGxiYWNrIHZhbHVlIGZvciBgbWV0YWRhdGFCYXNlYC4gRm9yIHNlbGYtaG9zdGVkIHNldHVwcywgd2Ugd2FudCB0byB3YXJuXG4gICAgICAgIC8vIGFib3V0IHRoaXMgc2luY2UgdGhlIG9ubHkgZmFsbGJhY2sgd2UnbGwgYmUgYWJsZSB0byBnZW5lcmF0ZSBpcyBgbG9jYWxob3N0YC5cbiAgICAgICAgLy8gSW4gZGV2ZWxvcG1lbnQsIHdlJ2xsIG9ubHkgd2FybiBmb3IgcmVsYXRpdmUgbWV0YWRhdGEgdGhhdCBpc24ndCBwYXJ0IG9mIHRoZSBzdGF0aWNcbiAgICAgICAgLy8gbWV0YWRhdGEgY29udmVudGlvbnMgKGVnIGBvcGVuZ3JhcGgtaW1hZ2VgKSwgYXMgb3RoZXJ3aXNlIGl0J3MgY3VycmVudGx5IHZlcnkgbm9pc3lcbiAgICAgICAgLy8gZm9yIGNvbW1vbiBjYXNlcy4gRXZlbnR1YWxseSB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgd2FybmluZyBhbGwgdG9nZXRoZXIgaW4gZmF2b3Igb2ZcbiAgICAgICAgLy8gZGV2dG9vbHMuXG4gICAgICAgIGNvbnN0IHNob3VsZFdhcm4gPSAhaXNVc2luZ1ZlcmNlbFN5c3RlbUVudmlyb25tZW50VmFyaWFibGVzICYmICFtZXRhZGF0YUJhc2UgJiYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgfHwgIWlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpO1xuICAgICAgICBpZiAoc2hvdWxkV2Fybikge1xuICAgICAgICAgICAgKDAsIF9sb2cud2Fybk9uY2UpKGBtZXRhZGF0YUJhc2UgcHJvcGVydHkgaW4gbWV0YWRhdGEgZXhwb3J0IGlzIG5vdCBzZXQgZm9yIHJlc29sdmluZyBzb2NpYWwgb3BlbiBncmFwaCBvciB0d2l0dGVyIGltYWdlcywgdXNpbmcgXCIke2ZhbGxiYWNrTWV0YWRhdGFCYXNlLm9yaWdpbn1cIi4gU2VlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9nZW5lcmF0ZS1tZXRhZGF0YSNtZXRhZGF0YWJhc2VgKTtcbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YUJhc2UgPSBmYWxsYmFja01ldGFkYXRhQmFzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzSXRlbVVybCA/IHtcbiAgICAgICAgdXJsOiAoMCwgX3Jlc29sdmV1cmwucmVzb2x2ZVVybCkoaW5wdXRVcmwsIG1ldGFkYXRhQmFzZSlcbiAgICB9IDoge1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICAvLyBVcGRhdGUgaW1hZ2UgZGVzY3JpcHRvciB1cmxcbiAgICAgICAgdXJsOiAoMCwgX3Jlc29sdmV1cmwucmVzb2x2ZVVybCkoaW5wdXRVcmwsIG1ldGFkYXRhQmFzZSlcbiAgICB9O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUltYWdlcyhpbWFnZXMsIG1ldGFkYXRhQmFzZSwgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSkge1xuICAgIGNvbnN0IHJlc29sdmVkSW1hZ2VzID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShpbWFnZXMpO1xuICAgIGlmICghcmVzb2x2ZWRJbWFnZXMpIHJldHVybiByZXNvbHZlZEltYWdlcztcbiAgICBjb25zdCBub25OdWxsYWJsZUltYWdlcyA9IFtdO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiByZXNvbHZlZEltYWdlcyl7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkSXRlbSA9IHJlc29sdmVBbmRWYWxpZGF0ZUltYWdlKGl0ZW0sIG1ldGFkYXRhQmFzZSwgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSk7XG4gICAgICAgIGlmICghcmVzb2x2ZWRJdGVtKSBjb250aW51ZTtcbiAgICAgICAgbm9uTnVsbGFibGVJbWFnZXMucHVzaChyZXNvbHZlZEl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gbm9uTnVsbGFibGVJbWFnZXM7XG59XG5jb25zdCBvZ1R5cGVUb0ZpZWxkcyA9IHtcbiAgICBhcnRpY2xlOiBPZ1R5cGVGaWVsZHMuYXJ0aWNsZSxcbiAgICBib29rOiBPZ1R5cGVGaWVsZHMuYXJ0aWNsZSxcbiAgICAnbXVzaWMuc29uZyc6IE9nVHlwZUZpZWxkcy5zb25nLFxuICAgICdtdXNpYy5hbGJ1bSc6IE9nVHlwZUZpZWxkcy5zb25nLFxuICAgICdtdXNpYy5wbGF5bGlzdCc6IE9nVHlwZUZpZWxkcy5wbGF5bGlzdCxcbiAgICAnbXVzaWMucmFkaW9fc3RhdGlvbic6IE9nVHlwZUZpZWxkcy5yYWRpbyxcbiAgICAndmlkZW8ubW92aWUnOiBPZ1R5cGVGaWVsZHMudmlkZW8sXG4gICAgJ3ZpZGVvLmVwaXNvZGUnOiBPZ1R5cGVGaWVsZHMudmlkZW9cbn07XG5mdW5jdGlvbiBnZXRGaWVsZHNCeU9nVHlwZShvZ1R5cGUpIHtcbiAgICBpZiAoIW9nVHlwZSB8fCAhKG9nVHlwZSBpbiBvZ1R5cGVUb0ZpZWxkcykpIHJldHVybiBPZ1R5cGVGaWVsZHMuYmFzaWM7XG4gICAgcmV0dXJuIG9nVHlwZVRvRmllbGRzW29nVHlwZV0uY29uY2F0KE9nVHlwZUZpZWxkcy5iYXNpYyk7XG59XG5jb25zdCByZXNvbHZlT3BlbkdyYXBoID0gYXN5bmMgKG9wZW5HcmFwaCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlKT0+e1xuICAgIGlmICghb3BlbkdyYXBoKSByZXR1cm4gbnVsbDtcbiAgICBmdW5jdGlvbiByZXNvbHZlUHJvcHModGFyZ2V0LCBvZykge1xuICAgICAgICBjb25zdCBvZ1R5cGUgPSBvZyAmJiAndHlwZScgaW4gb2cgPyBvZy50eXBlIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBrZXlzID0gZ2V0RmllbGRzQnlPZ1R5cGUob2dUeXBlKTtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpe1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaztcbiAgICAgICAgICAgIGlmIChrZXkgaW4gb2cgJiYga2V5ICE9PSAndXJsJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb2dba2V5XTtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlID8gKDAsIF91dGlscy5yZXNvbHZlQXJyYXkpKHZhbHVlKSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0LmltYWdlcyA9IHJlc29sdmVJbWFnZXMob2cuaW1hZ2VzLCBtZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dC5pc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKTtcbiAgICB9XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB7XG4gICAgICAgIC4uLm9wZW5HcmFwaCxcbiAgICAgICAgdGl0bGU6ICgwLCBfcmVzb2x2ZXRpdGxlLnJlc29sdmVUaXRsZSkob3BlbkdyYXBoLnRpdGxlLCB0aXRsZVRlbXBsYXRlKVxuICAgIH07XG4gICAgcmVzb2x2ZVByb3BzKHJlc29sdmVkLCBvcGVuR3JhcGgpO1xuICAgIHJlc29sdmVkLnVybCA9IG9wZW5HcmFwaC51cmwgPyAoMCwgX3Jlc29sdmV1cmwucmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lKShvcGVuR3JhcGgudXJsLCBtZXRhZGF0YUJhc2UsIGF3YWl0IHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpIDogbnVsbDtcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59O1xuY29uc3QgVHdpdHRlckJhc2ljSW5mb0tleXMgPSBbXG4gICAgJ3NpdGUnLFxuICAgICdzaXRlSWQnLFxuICAgICdjcmVhdG9yJyxcbiAgICAnY3JlYXRvcklkJyxcbiAgICAnZGVzY3JpcHRpb24nXG5dO1xuY29uc3QgcmVzb2x2ZVR3aXR0ZXIgPSAodHdpdHRlciwgbWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGUpPT57XG4gICAgdmFyIF9yZXNvbHZlZF9pbWFnZXM7XG4gICAgaWYgKCF0d2l0dGVyKSByZXR1cm4gbnVsbDtcbiAgICBsZXQgY2FyZCA9ICdjYXJkJyBpbiB0d2l0dGVyID8gdHdpdHRlci5jYXJkIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlc29sdmVkID0ge1xuICAgICAgICAuLi50d2l0dGVyLFxuICAgICAgICB0aXRsZTogKDAsIF9yZXNvbHZldGl0bGUucmVzb2x2ZVRpdGxlKSh0d2l0dGVyLnRpdGxlLCB0aXRsZVRlbXBsYXRlKVxuICAgIH07XG4gICAgZm9yIChjb25zdCBpbmZvS2V5IG9mIFR3aXR0ZXJCYXNpY0luZm9LZXlzKXtcbiAgICAgICAgcmVzb2x2ZWRbaW5mb0tleV0gPSB0d2l0dGVyW2luZm9LZXldIHx8IG51bGw7XG4gICAgfVxuICAgIHJlc29sdmVkLmltYWdlcyA9IHJlc29sdmVJbWFnZXModHdpdHRlci5pbWFnZXMsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LmlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpO1xuICAgIGNhcmQgPSBjYXJkIHx8ICgoKF9yZXNvbHZlZF9pbWFnZXMgPSByZXNvbHZlZC5pbWFnZXMpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRfaW1hZ2VzLmxlbmd0aCkgPyAnc3VtbWFyeV9sYXJnZV9pbWFnZScgOiAnc3VtbWFyeScpO1xuICAgIHJlc29sdmVkLmNhcmQgPSBjYXJkO1xuICAgIGlmICgnY2FyZCcgaW4gcmVzb2x2ZWQpIHtcbiAgICAgICAgc3dpdGNoKHJlc29sdmVkLmNhcmQpe1xuICAgICAgICAgICAgY2FzZSAncGxheWVyJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkLnBsYXllcnMgPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKHJlc29sdmVkLnBsYXllcnMpIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdhcHAnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQuYXBwID0gcmVzb2x2ZWQuYXBwIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdzdW1tYXJ5JzpcbiAgICAgICAgICAgIGNhc2UgJ3N1bW1hcnlfbGFyZ2VfaW1hZ2UnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXNvbHZlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLW9wZW5ncmFwaC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveTitle\", ({\n enumerable: true,\n get: function() {\n return resolveTitle;\n }\n}));\nfunction resolveTitleTemplate(template, title) {\n return template ? template.replace(/%s/g, title) : title;\n}\nfunction resolveTitle(title, stashedTemplate) {\n let resolved;\n const template = typeof title !== 'string' && title && 'template' in title ? title.template : null;\n if (typeof title === 'string') {\n resolved = resolveTitleTemplate(stashedTemplate, title);\n } else if (title) {\n if ('default' in title) {\n resolved = resolveTitleTemplate(stashedTemplate, title.default);\n }\n if ('absolute' in title && title.absolute) {\n resolved = title.absolute;\n }\n }\n if (title && typeof title !== 'string') {\n return {\n template,\n absolute: resolved || ''\n };\n } else {\n return {\n absolute: resolved || title || '',\n template\n };\n }\n}\n\n//# sourceMappingURL=resolve-title.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGdEQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInJlc29sdmVUaXRsZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVRpdGxlO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gcmVzb2x2ZVRpdGxlVGVtcGxhdGUodGVtcGxhdGUsIHRpdGxlKSB7XG4gICAgcmV0dXJuIHRlbXBsYXRlID8gdGVtcGxhdGUucmVwbGFjZSgvJXMvZywgdGl0bGUpIDogdGl0bGU7XG59XG5mdW5jdGlvbiByZXNvbHZlVGl0bGUodGl0bGUsIHN0YXNoZWRUZW1wbGF0ZSkge1xuICAgIGxldCByZXNvbHZlZDtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHR5cGVvZiB0aXRsZSAhPT0gJ3N0cmluZycgJiYgdGl0bGUgJiYgJ3RlbXBsYXRlJyBpbiB0aXRsZSA/IHRpdGxlLnRlbXBsYXRlIDogbnVsbDtcbiAgICBpZiAodHlwZW9mIHRpdGxlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXNvbHZlZCA9IHJlc29sdmVUaXRsZVRlbXBsYXRlKHN0YXNoZWRUZW1wbGF0ZSwgdGl0bGUpO1xuICAgIH0gZWxzZSBpZiAodGl0bGUpIHtcbiAgICAgICAgaWYgKCdkZWZhdWx0JyBpbiB0aXRsZSkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSByZXNvbHZlVGl0bGVUZW1wbGF0ZShzdGFzaGVkVGVtcGxhdGUsIHRpdGxlLmRlZmF1bHQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgnYWJzb2x1dGUnIGluIHRpdGxlICYmIHRpdGxlLmFic29sdXRlKSB7XG4gICAgICAgICAgICByZXNvbHZlZCA9IHRpdGxlLmFic29sdXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0aXRsZSAmJiB0eXBlb2YgdGl0bGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZSxcbiAgICAgICAgICAgIGFic29sdXRlOiByZXNvbHZlZCB8fCAnJ1xuICAgICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhYnNvbHV0ZTogcmVzb2x2ZWQgfHwgdGl0bGUgfHwgJycsXG4gICAgICAgICAgICB0ZW1wbGF0ZVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS10aXRsZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSocialImageMetadataBaseFallback: function() {\n return getSocialImageMetadataBaseFallback;\n },\n isStringOrURL: function() {\n return isStringOrURL;\n },\n resolveAbsoluteUrlWithPathname: function() {\n return resolveAbsoluteUrlWithPathname;\n },\n resolveRelativeUrl: function() {\n return resolveRelativeUrl;\n },\n resolveUrl: function() {\n return resolveUrl;\n }\n});\nconst _path = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../../shared/lib/isomorphic/path */ \"(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isStringOrURL(icon) {\n return typeof icon === 'string' || icon instanceof URL;\n}\nfunction createLocalMetadataBase() {\n // Check if experimental HTTPS is enabled\n const isExperimentalHttps = Boolean(process.env.__NEXT_EXPERIMENTAL_HTTPS);\n const protocol = isExperimentalHttps ? 'https' : 'http';\n return new URL(`${protocol}://localhost:${process.env.PORT || 3000}`);\n}\nfunction getPreviewDeploymentUrl() {\n const origin = process.env.VERCEL_BRANCH_URL || process.env.VERCEL_URL;\n return origin ? new URL(`https://${origin}`) : undefined;\n}\nfunction getProductionDeploymentUrl() {\n const origin = process.env.VERCEL_PROJECT_PRODUCTION_URL;\n return origin ? new URL(`https://${origin}`) : undefined;\n}\nfunction getSocialImageMetadataBaseFallback(metadataBase) {\n const defaultMetadataBase = createLocalMetadataBase();\n const previewDeploymentUrl = getPreviewDeploymentUrl();\n const productionDeploymentUrl = getProductionDeploymentUrl();\n let fallbackMetadataBase;\n if (true) {\n fallbackMetadataBase = defaultMetadataBase;\n } else {}\n return fallbackMetadataBase;\n}\nfunction resolveUrl(url, metadataBase) {\n if (url instanceof URL) return url;\n if (!url) return null;\n try {\n // If we can construct a URL instance from url, ignore metadataBase\n const parsedUrl = new URL(url);\n return parsedUrl;\n } catch {}\n if (!metadataBase) {\n metadataBase = createLocalMetadataBase();\n }\n // Handle relative or absolute paths\n const pathname = metadataBase.pathname || '';\n const joinedPath = _path.default.posix.join(pathname, url);\n return new URL(joinedPath, metadataBase);\n}\n// Resolve with `pathname` if `url` is a relative path.\nfunction resolveRelativeUrl(url, pathname) {\n if (typeof url === 'string' && url.startsWith('./')) {\n return _path.default.posix.resolve(pathname, url);\n }\n return url;\n}\n// The regex is matching logic from packages/next/src/lib/load-custom-routes.ts\nconst FILE_REGEX = /^(?:\\/((?!\\.well-known(?:\\/.*)?)(?:[^/]+\\/)*[^/]+\\.\\w+))(\\/?|$)/i;\nfunction isFilePattern(pathname) {\n return FILE_REGEX.test(pathname);\n}\n// Resolve `pathname` if `url` is a relative path the compose with `metadataBase`.\nfunction resolveAbsoluteUrlWithPathname(url, metadataBase, pathname, { trailingSlash }) {\n // Resolve url with pathname that always starts with `/`\n url = resolveRelativeUrl(url, pathname);\n // Convert string url or URL instance to absolute url string,\n // if there's case needs to be resolved with metadataBase\n let resolvedUrl = '';\n const result = metadataBase ? resolveUrl(url, metadataBase) : url;\n if (typeof result === 'string') {\n resolvedUrl = result;\n } else {\n resolvedUrl = result.pathname === '/' ? result.origin : result.href;\n }\n // Add trailing slash if it's enabled for urls matches the condition\n // - Not external, same origin with metadataBase\n // - Doesn't have query\n if (trailingSlash && !resolvedUrl.endsWith('/')) {\n let isRelative = resolvedUrl.startsWith('/');\n let hasQuery = resolvedUrl.includes('?');\n let isExternal = false;\n let isFileUrl = false;\n if (!isRelative) {\n try {\n const parsedUrl = new URL(resolvedUrl);\n isExternal = metadataBase != null && parsedUrl.origin !== metadataBase.origin;\n isFileUrl = isFilePattern(parsedUrl.pathname);\n } catch {\n // If it's not a valid URL, treat it as external\n isExternal = true;\n }\n if (// Do not apply trailing slash for file like urls, aligning with the behavior with `trailingSlash`\n !isFileUrl && !isExternal && !hasQuery) return `${resolvedUrl}/`;\n }\n }\n return resolvedUrl;\n}\n\n//# sourceMappingURL=resolve-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscURBQXFELG1CQUFPLENBQUMseUdBQXFDO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixTQUFTLGVBQWUseUJBQXlCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxPQUFPO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxPQUFPO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBc0M7QUFDOUM7QUFDQSxNQUFNLEtBQUssRUFFTjtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1RUFBdUUsZUFBZTtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxZQUFZO0FBQzFFO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLXVybC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldFNvY2lhbEltYWdlTWV0YWRhdGFCYXNlRmFsbGJhY2s6IG51bGwsXG4gICAgaXNTdHJpbmdPclVSTDogbnVsbCxcbiAgICByZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWU6IG51bGwsXG4gICAgcmVzb2x2ZVJlbGF0aXZlVXJsOiBudWxsLFxuICAgIHJlc29sdmVVcmw6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZ2V0U29jaWFsSW1hZ2VNZXRhZGF0YUJhc2VGYWxsYmFjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRTb2NpYWxJbWFnZU1ldGFkYXRhQmFzZUZhbGxiYWNrO1xuICAgIH0sXG4gICAgaXNTdHJpbmdPclVSTDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZ09yVVJMO1xuICAgIH0sXG4gICAgcmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZTtcbiAgICB9LFxuICAgIHJlc29sdmVSZWxhdGl2ZVVybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlUmVsYXRpdmVVcmw7XG4gICAgfSxcbiAgICByZXNvbHZlVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVVcmw7XG4gICAgfVxufSk7XG5jb25zdCBfcGF0aCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL2lzb21vcnBoaWMvcGF0aFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzU3RyaW5nT3JVUkwoaWNvbikge1xuICAgIHJldHVybiB0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZycgfHwgaWNvbiBpbnN0YW5jZW9mIFVSTDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUxvY2FsTWV0YWRhdGFCYXNlKCkge1xuICAgIC8vIENoZWNrIGlmIGV4cGVyaW1lbnRhbCBIVFRQUyBpcyBlbmFibGVkXG4gICAgY29uc3QgaXNFeHBlcmltZW50YWxIdHRwcyA9IEJvb2xlYW4ocHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9IVFRQUyk7XG4gICAgY29uc3QgcHJvdG9jb2wgPSBpc0V4cGVyaW1lbnRhbEh0dHBzID8gJ2h0dHBzJyA6ICdodHRwJztcbiAgICByZXR1cm4gbmV3IFVSTChgJHtwcm90b2NvbH06Ly9sb2NhbGhvc3Q6JHtwcm9jZXNzLmVudi5QT1JUIHx8IDMwMDB9YCk7XG59XG5mdW5jdGlvbiBnZXRQcmV2aWV3RGVwbG95bWVudFVybCgpIHtcbiAgICBjb25zdCBvcmlnaW4gPSBwcm9jZXNzLmVudi5WRVJDRUxfQlJBTkNIX1VSTCB8fCBwcm9jZXNzLmVudi5WRVJDRUxfVVJMO1xuICAgIHJldHVybiBvcmlnaW4gPyBuZXcgVVJMKGBodHRwczovLyR7b3JpZ2lufWApIDogdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gZ2V0UHJvZHVjdGlvbkRlcGxveW1lbnRVcmwoKSB7XG4gICAgY29uc3Qgb3JpZ2luID0gcHJvY2Vzcy5lbnYuVkVSQ0VMX1BST0pFQ1RfUFJPRFVDVElPTl9VUkw7XG4gICAgcmV0dXJuIG9yaWdpbiA/IG5ldyBVUkwoYGh0dHBzOi8vJHtvcmlnaW59YCkgOiB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBnZXRTb2NpYWxJbWFnZU1ldGFkYXRhQmFzZUZhbGxiYWNrKG1ldGFkYXRhQmFzZSkge1xuICAgIGNvbnN0IGRlZmF1bHRNZXRhZGF0YUJhc2UgPSBjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSgpO1xuICAgIGNvbnN0IHByZXZpZXdEZXBsb3ltZW50VXJsID0gZ2V0UHJldmlld0RlcGxveW1lbnRVcmwoKTtcbiAgICBjb25zdCBwcm9kdWN0aW9uRGVwbG95bWVudFVybCA9IGdldFByb2R1Y3Rpb25EZXBsb3ltZW50VXJsKCk7XG4gICAgbGV0IGZhbGxiYWNrTWV0YWRhdGFCYXNlO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBmYWxsYmFja01ldGFkYXRhQmFzZSA9IGRlZmF1bHRNZXRhZGF0YUJhc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmFsbGJhY2tNZXRhZGF0YUJhc2UgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmIHByZXZpZXdEZXBsb3ltZW50VXJsICYmIHByb2Nlc3MuZW52LlZFUkNFTF9FTlYgPT09ICdwcmV2aWV3JyA/IHByZXZpZXdEZXBsb3ltZW50VXJsIDogbWV0YWRhdGFCYXNlIHx8IHByb2R1Y3Rpb25EZXBsb3ltZW50VXJsIHx8IGRlZmF1bHRNZXRhZGF0YUJhc2U7XG4gICAgfVxuICAgIHJldHVybiBmYWxsYmFja01ldGFkYXRhQmFzZTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVVcmwodXJsLCBtZXRhZGF0YUJhc2UpIHtcbiAgICBpZiAodXJsIGluc3RhbmNlb2YgVVJMKSByZXR1cm4gdXJsO1xuICAgIGlmICghdXJsKSByZXR1cm4gbnVsbDtcbiAgICB0cnkge1xuICAgICAgICAvLyBJZiB3ZSBjYW4gY29uc3RydWN0IGEgVVJMIGluc3RhbmNlIGZyb20gdXJsLCBpZ25vcmUgbWV0YWRhdGFCYXNlXG4gICAgICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwodXJsKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlZFVybDtcbiAgICB9IGNhdGNoICB7fVxuICAgIGlmICghbWV0YWRhdGFCYXNlKSB7XG4gICAgICAgIG1ldGFkYXRhQmFzZSA9IGNyZWF0ZUxvY2FsTWV0YWRhdGFCYXNlKCk7XG4gICAgfVxuICAgIC8vIEhhbmRsZSByZWxhdGl2ZSBvciBhYnNvbHV0ZSBwYXRoc1xuICAgIGNvbnN0IHBhdGhuYW1lID0gbWV0YWRhdGFCYXNlLnBhdGhuYW1lIHx8ICcnO1xuICAgIGNvbnN0IGpvaW5lZFBhdGggPSBfcGF0aC5kZWZhdWx0LnBvc2l4LmpvaW4ocGF0aG5hbWUsIHVybCk7XG4gICAgcmV0dXJuIG5ldyBVUkwoam9pbmVkUGF0aCwgbWV0YWRhdGFCYXNlKTtcbn1cbi8vIFJlc29sdmUgd2l0aCBgcGF0aG5hbWVgIGlmIGB1cmxgIGlzIGEgcmVsYXRpdmUgcGF0aC5cbmZ1bmN0aW9uIHJlc29sdmVSZWxhdGl2ZVVybCh1cmwsIHBhdGhuYW1lKSB7XG4gICAgaWYgKHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnICYmIHVybC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgICAgIHJldHVybiBfcGF0aC5kZWZhdWx0LnBvc2l4LnJlc29sdmUocGF0aG5hbWUsIHVybCk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG59XG4vLyBUaGUgcmVnZXggaXMgbWF0Y2hpbmcgbG9naWMgZnJvbSBwYWNrYWdlcy9uZXh0L3NyYy9saWIvbG9hZC1jdXN0b20tcm91dGVzLnRzXG5jb25zdCBGSUxFX1JFR0VYID0gL14oPzpcXC8oKD8hXFwud2VsbC1rbm93big/OlxcLy4qKT8pKD86W14vXStcXC8pKlteL10rXFwuXFx3KykpKFxcLz98JCkvaTtcbmZ1bmN0aW9uIGlzRmlsZVBhdHRlcm4ocGF0aG5hbWUpIHtcbiAgICByZXR1cm4gRklMRV9SRUdFWC50ZXN0KHBhdGhuYW1lKTtcbn1cbi8vIFJlc29sdmUgYHBhdGhuYW1lYCBpZiBgdXJsYCBpcyBhIHJlbGF0aXZlIHBhdGggdGhlIGNvbXBvc2Ugd2l0aCBgbWV0YWRhdGFCYXNlYC5cbmZ1bmN0aW9uIHJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZSh1cmwsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIHsgdHJhaWxpbmdTbGFzaCB9KSB7XG4gICAgLy8gUmVzb2x2ZSB1cmwgd2l0aCBwYXRobmFtZSB0aGF0IGFsd2F5cyBzdGFydHMgd2l0aCBgL2BcbiAgICB1cmwgPSByZXNvbHZlUmVsYXRpdmVVcmwodXJsLCBwYXRobmFtZSk7XG4gICAgLy8gQ29udmVydCBzdHJpbmcgdXJsIG9yIFVSTCBpbnN0YW5jZSB0byBhYnNvbHV0ZSB1cmwgc3RyaW5nLFxuICAgIC8vIGlmIHRoZXJlJ3MgY2FzZSBuZWVkcyB0byBiZSByZXNvbHZlZCB3aXRoIG1ldGFkYXRhQmFzZVxuICAgIGxldCByZXNvbHZlZFVybCA9ICcnO1xuICAgIGNvbnN0IHJlc3VsdCA9IG1ldGFkYXRhQmFzZSA/IHJlc29sdmVVcmwodXJsLCBtZXRhZGF0YUJhc2UpIDogdXJsO1xuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXNvbHZlZFVybCA9IHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlZFVybCA9IHJlc3VsdC5wYXRobmFtZSA9PT0gJy8nID8gcmVzdWx0Lm9yaWdpbiA6IHJlc3VsdC5ocmVmO1xuICAgIH1cbiAgICAvLyBBZGQgdHJhaWxpbmcgc2xhc2ggaWYgaXQncyBlbmFibGVkIGZvciB1cmxzIG1hdGNoZXMgdGhlIGNvbmRpdGlvblxuICAgIC8vIC0gTm90IGV4dGVybmFsLCBzYW1lIG9yaWdpbiB3aXRoIG1ldGFkYXRhQmFzZVxuICAgIC8vIC0gRG9lc24ndCBoYXZlIHF1ZXJ5XG4gICAgaWYgKHRyYWlsaW5nU2xhc2ggJiYgIXJlc29sdmVkVXJsLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgICAgbGV0IGlzUmVsYXRpdmUgPSByZXNvbHZlZFVybC5zdGFydHNXaXRoKCcvJyk7XG4gICAgICAgIGxldCBoYXNRdWVyeSA9IHJlc29sdmVkVXJsLmluY2x1ZGVzKCc/Jyk7XG4gICAgICAgIGxldCBpc0V4dGVybmFsID0gZmFsc2U7XG4gICAgICAgIGxldCBpc0ZpbGVVcmwgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFpc1JlbGF0aXZlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwocmVzb2x2ZWRVcmwpO1xuICAgICAgICAgICAgICAgIGlzRXh0ZXJuYWwgPSBtZXRhZGF0YUJhc2UgIT0gbnVsbCAmJiBwYXJzZWRVcmwub3JpZ2luICE9PSBtZXRhZGF0YUJhc2Uub3JpZ2luO1xuICAgICAgICAgICAgICAgIGlzRmlsZVVybCA9IGlzRmlsZVBhdHRlcm4ocGFyc2VkVXJsLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBpdCdzIG5vdCBhIHZhbGlkIFVSTCwgdHJlYXQgaXQgYXMgZXh0ZXJuYWxcbiAgICAgICAgICAgICAgICBpc0V4dGVybmFsID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgvLyBEbyBub3QgYXBwbHkgdHJhaWxpbmcgc2xhc2ggZm9yIGZpbGUgbGlrZSB1cmxzLCBhbGlnbmluZyB3aXRoIHRoZSBiZWhhdmlvciB3aXRoIGB0cmFpbGluZ1NsYXNoYFxuICAgICAgICAgICAgIWlzRmlsZVVybCAmJiAhaXNFeHRlcm5hbCAmJiAhaGFzUXVlcnkpIHJldHVybiBgJHtyZXNvbHZlZFVybH0vYDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWRVcmw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdXJsLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/non-nullable.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/lib/non-nullable.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"nonNullable\", ({\n enumerable: true,\n get: function() {\n return nonNullable;\n }\n}));\nfunction nonNullable(value) {\n return value !== null && value !== undefined;\n}\n\n//# sourceMappingURL=non-nullable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9ub24tbnVsbGFibGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbm9uLW51bGxhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibm9uTnVsbGFibGVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vbk51bGxhYmxlO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gbm9uTnVsbGFibGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9uLW51bGxhYmxlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/non-nullable.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/picocolors.js": /*!**************************************************!*\ !*** ./node_modules/next/dist/lib/picocolors.js ***! \**************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// ISC License\n// Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n//\n// https://github.com/alexeyraspopov/picocolors/blob/b6261487e7b81aaab2440e397a356732cad9e342/picocolors.js#L1\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n bgBlack: function() {\n return bgBlack;\n },\n bgBlue: function() {\n return bgBlue;\n },\n bgCyan: function() {\n return bgCyan;\n },\n bgGreen: function() {\n return bgGreen;\n },\n bgMagenta: function() {\n return bgMagenta;\n },\n bgRed: function() {\n return bgRed;\n },\n bgWhite: function() {\n return bgWhite;\n },\n bgYellow: function() {\n return bgYellow;\n },\n black: function() {\n return black;\n },\n blue: function() {\n return blue;\n },\n bold: function() {\n return bold;\n },\n cyan: function() {\n return cyan;\n },\n dim: function() {\n return dim;\n },\n gray: function() {\n return gray;\n },\n green: function() {\n return green;\n },\n hidden: function() {\n return hidden;\n },\n inverse: function() {\n return inverse;\n },\n italic: function() {\n return italic;\n },\n magenta: function() {\n return magenta;\n },\n purple: function() {\n return purple;\n },\n red: function() {\n return red;\n },\n reset: function() {\n return reset;\n },\n strikethrough: function() {\n return strikethrough;\n },\n underline: function() {\n return underline;\n },\n white: function() {\n return white;\n },\n yellow: function() {\n return yellow;\n }\n});\nvar _globalThis;\nconst { env, stdout } = ((_globalThis = globalThis) == null ? void 0 : _globalThis.process) ?? {};\nconst enabled = env && !env.NO_COLOR && (env.FORCE_COLOR || (stdout == null ? void 0 : stdout.isTTY) && !env.CI && env.TERM !== 'dumb');\nconst replaceClose = (str, close, replace, index)=>{\n const start = str.substring(0, index) + replace;\n const end = str.substring(index + close.length);\n const nextIndex = end.indexOf(close);\n return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;\n};\nconst formatter = (open, close, replace = open)=>{\n if (!enabled) return String;\n return (input)=>{\n const string = '' + input;\n const index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n};\nconst reset = enabled ? (s)=>`\\x1b[0m${s}\\x1b[0m` : String;\nconst bold = formatter('\\x1b[1m', '\\x1b[22m', '\\x1b[22m\\x1b[1m');\nconst dim = formatter('\\x1b[2m', '\\x1b[22m', '\\x1b[22m\\x1b[2m');\nconst italic = formatter('\\x1b[3m', '\\x1b[23m');\nconst underline = formatter('\\x1b[4m', '\\x1b[24m');\nconst inverse = formatter('\\x1b[7m', '\\x1b[27m');\nconst hidden = formatter('\\x1b[8m', '\\x1b[28m');\nconst strikethrough = formatter('\\x1b[9m', '\\x1b[29m');\nconst black = formatter('\\x1b[30m', '\\x1b[39m');\nconst red = formatter('\\x1b[31m', '\\x1b[39m');\nconst green = formatter('\\x1b[32m', '\\x1b[39m');\nconst yellow = formatter('\\x1b[33m', '\\x1b[39m');\nconst blue = formatter('\\x1b[34m', '\\x1b[39m');\nconst magenta = formatter('\\x1b[35m', '\\x1b[39m');\nconst purple = formatter('\\x1b[38;2;173;127;168m', '\\x1b[39m');\nconst cyan = formatter('\\x1b[36m', '\\x1b[39m');\nconst white = formatter('\\x1b[37m', '\\x1b[39m');\nconst gray = formatter('\\x1b[90m', '\\x1b[39m');\nconst bgBlack = formatter('\\x1b[40m', '\\x1b[49m');\nconst bgRed = formatter('\\x1b[41m', '\\x1b[49m');\nconst bgGreen = formatter('\\x1b[42m', '\\x1b[49m');\nconst bgYellow = formatter('\\x1b[43m', '\\x1b[49m');\nconst bgBlue = formatter('\\x1b[44m', '\\x1b[49m');\nconst bgMagenta = formatter('\\x1b[45m', '\\x1b[49m');\nconst bgCyan = formatter('\\x1b[46m', '\\x1b[49m');\nconst bgWhite = formatter('\\x1b[47m', '\\x1b[49m');\n\n//# sourceMappingURL=picocolors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9waWNvY29sb3JzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0EyQkw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSxRQUFRLGNBQWM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLEVBQUU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsRUFBRSxJQUFJLElBQUk7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9waWNvY29sb3JzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIElTQyBMaWNlbnNlXG4vLyBDb3B5cmlnaHQgKGMpIDIwMjEgQWxleGV5IFJhc3BvcG92LCBLb3N0aWFudHluIERlbnlzb3YsIEFudG9uIFZlcmlub3Zcbi8vIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuLy8gcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZVxuLy8gY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy5cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTXG4vLyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUlxuLy8gQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFU1xuLy8gV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOXG4vLyBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRlxuLy8gT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbi8vXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYWxleGV5cmFzcG9wb3YvcGljb2NvbG9ycy9ibG9iL2I2MjYxNDg3ZTdiODFhYWFiMjQ0MGUzOTdhMzU2NzMyY2FkOWUzNDIvcGljb2NvbG9ycy5qcyNMMVxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBiZ0JsYWNrOiBudWxsLFxuICAgIGJnQmx1ZTogbnVsbCxcbiAgICBiZ0N5YW46IG51bGwsXG4gICAgYmdHcmVlbjogbnVsbCxcbiAgICBiZ01hZ2VudGE6IG51bGwsXG4gICAgYmdSZWQ6IG51bGwsXG4gICAgYmdXaGl0ZTogbnVsbCxcbiAgICBiZ1llbGxvdzogbnVsbCxcbiAgICBibGFjazogbnVsbCxcbiAgICBibHVlOiBudWxsLFxuICAgIGJvbGQ6IG51bGwsXG4gICAgY3lhbjogbnVsbCxcbiAgICBkaW06IG51bGwsXG4gICAgZ3JheTogbnVsbCxcbiAgICBncmVlbjogbnVsbCxcbiAgICBoaWRkZW46IG51bGwsXG4gICAgaW52ZXJzZTogbnVsbCxcbiAgICBpdGFsaWM6IG51bGwsXG4gICAgbWFnZW50YTogbnVsbCxcbiAgICBwdXJwbGU6IG51bGwsXG4gICAgcmVkOiBudWxsLFxuICAgIHJlc2V0OiBudWxsLFxuICAgIHN0cmlrZXRocm91Z2g6IG51bGwsXG4gICAgdW5kZXJsaW5lOiBudWxsLFxuICAgIHdoaXRlOiBudWxsLFxuICAgIHllbGxvdzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBiZ0JsYWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnQmxhY2s7XG4gICAgfSxcbiAgICBiZ0JsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdCbHVlO1xuICAgIH0sXG4gICAgYmdDeWFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnQ3lhbjtcbiAgICB9LFxuICAgIGJnR3JlZW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdHcmVlbjtcbiAgICB9LFxuICAgIGJnTWFnZW50YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ01hZ2VudGE7XG4gICAgfSxcbiAgICBiZ1JlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ1JlZDtcbiAgICB9LFxuICAgIGJnV2hpdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdXaGl0ZTtcbiAgICB9LFxuICAgIGJnWWVsbG93OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnWWVsbG93O1xuICAgIH0sXG4gICAgYmxhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmxhY2s7XG4gICAgfSxcbiAgICBibHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJsdWU7XG4gICAgfSxcbiAgICBib2xkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJvbGQ7XG4gICAgfSxcbiAgICBjeWFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGN5YW47XG4gICAgfSxcbiAgICBkaW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGltO1xuICAgIH0sXG4gICAgZ3JheTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBncmF5O1xuICAgIH0sXG4gICAgZ3JlZW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ3JlZW47XG4gICAgfSxcbiAgICBoaWRkZW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGlkZGVuO1xuICAgIH0sXG4gICAgaW52ZXJzZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlO1xuICAgIH0sXG4gICAgaXRhbGljOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGl0YWxpYztcbiAgICB9LFxuICAgIG1hZ2VudGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbWFnZW50YTtcbiAgICB9LFxuICAgIHB1cnBsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwdXJwbGU7XG4gICAgfSxcbiAgICByZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVkO1xuICAgIH0sXG4gICAgcmVzZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzZXQ7XG4gICAgfSxcbiAgICBzdHJpa2V0aHJvdWdoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmlrZXRocm91Z2g7XG4gICAgfSxcbiAgICB1bmRlcmxpbmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdW5kZXJsaW5lO1xuICAgIH0sXG4gICAgd2hpdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2hpdGU7XG4gICAgfSxcbiAgICB5ZWxsb3c6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4geWVsbG93O1xuICAgIH1cbn0pO1xudmFyIF9nbG9iYWxUaGlzO1xuY29uc3QgeyBlbnYsIHN0ZG91dCB9ID0gKChfZ2xvYmFsVGhpcyA9IGdsb2JhbFRoaXMpID09IG51bGwgPyB2b2lkIDAgOiBfZ2xvYmFsVGhpcy5wcm9jZXNzKSA/PyB7fTtcbmNvbnN0IGVuYWJsZWQgPSBlbnYgJiYgIWVudi5OT19DT0xPUiAmJiAoZW52LkZPUkNFX0NPTE9SIHx8IChzdGRvdXQgPT0gbnVsbCA/IHZvaWQgMCA6IHN0ZG91dC5pc1RUWSkgJiYgIWVudi5DSSAmJiBlbnYuVEVSTSAhPT0gJ2R1bWInKTtcbmNvbnN0IHJlcGxhY2VDbG9zZSA9IChzdHIsIGNsb3NlLCByZXBsYWNlLCBpbmRleCk9PntcbiAgICBjb25zdCBzdGFydCA9IHN0ci5zdWJzdHJpbmcoMCwgaW5kZXgpICsgcmVwbGFjZTtcbiAgICBjb25zdCBlbmQgPSBzdHIuc3Vic3RyaW5nKGluZGV4ICsgY2xvc2UubGVuZ3RoKTtcbiAgICBjb25zdCBuZXh0SW5kZXggPSBlbmQuaW5kZXhPZihjbG9zZSk7XG4gICAgcmV0dXJuIH5uZXh0SW5kZXggPyBzdGFydCArIHJlcGxhY2VDbG9zZShlbmQsIGNsb3NlLCByZXBsYWNlLCBuZXh0SW5kZXgpIDogc3RhcnQgKyBlbmQ7XG59O1xuY29uc3QgZm9ybWF0dGVyID0gKG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3Blbik9PntcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybiBTdHJpbmc7XG4gICAgcmV0dXJuIChpbnB1dCk9PntcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gJycgKyBpbnB1dDtcbiAgICAgICAgY29uc3QgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihjbG9zZSwgb3Blbi5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gfmluZGV4ID8gb3BlbiArIHJlcGxhY2VDbG9zZShzdHJpbmcsIGNsb3NlLCByZXBsYWNlLCBpbmRleCkgKyBjbG9zZSA6IG9wZW4gKyBzdHJpbmcgKyBjbG9zZTtcbiAgICB9O1xufTtcbmNvbnN0IHJlc2V0ID0gZW5hYmxlZCA/IChzKT0+YFxceDFiWzBtJHtzfVxceDFiWzBtYCA6IFN0cmluZztcbmNvbnN0IGJvbGQgPSBmb3JtYXR0ZXIoJ1xceDFiWzFtJywgJ1xceDFiWzIybScsICdcXHgxYlsyMm1cXHgxYlsxbScpO1xuY29uc3QgZGltID0gZm9ybWF0dGVyKCdcXHgxYlsybScsICdcXHgxYlsyMm0nLCAnXFx4MWJbMjJtXFx4MWJbMm0nKTtcbmNvbnN0IGl0YWxpYyA9IGZvcm1hdHRlcignXFx4MWJbM20nLCAnXFx4MWJbMjNtJyk7XG5jb25zdCB1bmRlcmxpbmUgPSBmb3JtYXR0ZXIoJ1xceDFiWzRtJywgJ1xceDFiWzI0bScpO1xuY29uc3QgaW52ZXJzZSA9IGZvcm1hdHRlcignXFx4MWJbN20nLCAnXFx4MWJbMjdtJyk7XG5jb25zdCBoaWRkZW4gPSBmb3JtYXR0ZXIoJ1xceDFiWzhtJywgJ1xceDFiWzI4bScpO1xuY29uc3Qgc3RyaWtldGhyb3VnaCA9IGZvcm1hdHRlcignXFx4MWJbOW0nLCAnXFx4MWJbMjltJyk7XG5jb25zdCBibGFjayA9IGZvcm1hdHRlcignXFx4MWJbMzBtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgcmVkID0gZm9ybWF0dGVyKCdcXHgxYlszMW0nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBncmVlbiA9IGZvcm1hdHRlcignXFx4MWJbMzJtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgeWVsbG93ID0gZm9ybWF0dGVyKCdcXHgxYlszM20nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBibHVlID0gZm9ybWF0dGVyKCdcXHgxYlszNG0nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBtYWdlbnRhID0gZm9ybWF0dGVyKCdcXHgxYlszNW0nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBwdXJwbGUgPSBmb3JtYXR0ZXIoJ1xceDFiWzM4OzI7MTczOzEyNzsxNjhtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgY3lhbiA9IGZvcm1hdHRlcignXFx4MWJbMzZtJywgJ1xceDFiWzM5bScpO1xuY29uc3Qgd2hpdGUgPSBmb3JtYXR0ZXIoJ1xceDFiWzM3bScsICdcXHgxYlszOW0nKTtcbmNvbnN0IGdyYXkgPSBmb3JtYXR0ZXIoJ1xceDFiWzkwbScsICdcXHgxYlszOW0nKTtcbmNvbnN0IGJnQmxhY2sgPSBmb3JtYXR0ZXIoJ1xceDFiWzQwbScsICdcXHgxYls0OW0nKTtcbmNvbnN0IGJnUmVkID0gZm9ybWF0dGVyKCdcXHgxYls0MW0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ0dyZWVuID0gZm9ybWF0dGVyKCdcXHgxYls0Mm0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ1llbGxvdyA9IGZvcm1hdHRlcignXFx4MWJbNDNtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdCbHVlID0gZm9ybWF0dGVyKCdcXHgxYls0NG0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ01hZ2VudGEgPSBmb3JtYXR0ZXIoJ1xceDFiWzQ1bScsICdcXHgxYls0OW0nKTtcbmNvbnN0IGJnQ3lhbiA9IGZvcm1hdHRlcignXFx4MWJbNDZtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdXaGl0ZSA9IGZvcm1hdHRlcignXFx4MWJbNDdtJywgJ1xceDFiWzQ5bScpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1waWNvY29sb3JzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/picocolors.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/route-pattern-normalizer.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/lib/route-pattern-normalizer.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n hasAdjacentParameterIssues: function() {\n return hasAdjacentParameterIssues;\n },\n normalizeAdjacentParameters: function() {\n return normalizeAdjacentParameters;\n },\n normalizeTokensForRegexp: function() {\n return normalizeTokensForRegexp;\n },\n stripParameterSeparators: function() {\n return stripParameterSeparators;\n }\n});\n/**\n * Route pattern normalization utilities for path-to-regexp compatibility.\n *\n * path-to-regexp 6.3.0+ introduced stricter validation that rejects certain\n * patterns commonly used in Next.js interception routes. This module provides\n * normalization functions to make Next.js route patterns compatible with the\n * updated library while preserving all functionality.\n */ /**\n * Internal separator used to normalize adjacent parameter patterns.\n * This unique marker is inserted between adjacent parameters and stripped out\n * during parameter extraction to avoid conflicts with real URL content.\n */ const PARAM_SEPARATOR = '_NEXTSEP_';\nfunction hasAdjacentParameterIssues(route) {\n if (typeof route !== 'string') return false;\n // Check for interception route markers followed immediately by parameters\n // Pattern: /(.):param, /(..):param, /(...):param, /(.)(.):param etc.\n // These patterns cause \"Must have text between two parameters\" errors\n if (/\\/\\(\\.{1,3}\\):[^/\\s]+/.test(route)) {\n return true;\n }\n // Check for basic adjacent parameters without separators\n // Pattern: :param1:param2 (but not :param* or other URL patterns)\n if (/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(route)) {\n return true;\n }\n return false;\n}\nfunction normalizeAdjacentParameters(route) {\n let normalized = route;\n // Handle interception route patterns: (.):param -> (.)_NEXTSEP_:param\n normalized = normalized.replace(/(\\([^)]*\\)):([^/\\s]+)/g, `$1${PARAM_SEPARATOR}:$2`);\n // Handle other adjacent parameter patterns: :param1:param2 -> :param1_NEXTSEP_:param2\n normalized = normalized.replace(/:([^:/\\s)]+)(?=:)/g, `:$1${PARAM_SEPARATOR}`);\n return normalized;\n}\nfunction normalizeTokensForRegexp(tokens) {\n return tokens.map((token)=>{\n // Token union type: Token = string | TokenObject\n // Literal path segments are strings, parameters/wildcards are objects\n if (typeof token === 'object' && token !== null && // Not all token objects have 'modifier' property (e.g., simple text tokens)\n 'modifier' in token && // Only repeating modifiers (* or +) cause the validation error\n // Other modifiers like '?' (optional) are fine\n (token.modifier === '*' || token.modifier === '+') && // Token objects can have different shapes depending on route pattern\n 'prefix' in token && 'suffix' in token && // Both prefix and suffix must be empty strings\n // This is what causes the validation error in path-to-regexp\n token.prefix === '' && token.suffix === '') {\n // Add minimal prefix to satisfy path-to-regexp validation\n // We use '/' as it's the most common path delimiter and won't break route matching\n // The prefix gets used in regex generation but doesn't affect parameter extraction\n return {\n ...token,\n prefix: '/'\n };\n }\n return token;\n });\n}\nfunction stripParameterSeparators(params) {\n const cleaned = {};\n for (const [key, value] of Object.entries(params)){\n if (typeof value === 'string') {\n // Remove the separator if it appears at the start of parameter values\n cleaned[key] = value.replace(new RegExp(`^${PARAM_SEPARATOR}`), '');\n } else if (Array.isArray(value)) {\n // Handle array parameters (from repeated route segments)\n cleaned[key] = value.map((item)=>typeof item === 'string' ? item.replace(new RegExp(`^${PARAM_SEPARATOR}`), '') : item);\n } else {\n cleaned[key] = value;\n }\n }\n return cleaned;\n}\n\n//# sourceMappingURL=route-pattern-normalizer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9yb3V0ZS1wYXR0ZXJuLW5vcm1hbGl6ZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsSUFBSTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsZ0JBQWdCO0FBQ25GO0FBQ0EsZ0VBQWdFLGdCQUFnQjtBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3REFBd0QsZ0JBQWdCO0FBQ3hFLFVBQVU7QUFDVjtBQUNBLG9HQUFvRyxnQkFBZ0I7QUFDcEgsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvcm91dGUtcGF0dGVybi1ub3JtYWxpemVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaGFzQWRqYWNlbnRQYXJhbWV0ZXJJc3N1ZXM6IG51bGwsXG4gICAgbm9ybWFsaXplQWRqYWNlbnRQYXJhbWV0ZXJzOiBudWxsLFxuICAgIG5vcm1hbGl6ZVRva2Vuc0ZvclJlZ2V4cDogbnVsbCxcbiAgICBzdHJpcFBhcmFtZXRlclNlcGFyYXRvcnM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaGFzQWRqYWNlbnRQYXJhbWV0ZXJJc3N1ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGFzQWRqYWNlbnRQYXJhbWV0ZXJJc3N1ZXM7XG4gICAgfSxcbiAgICBub3JtYWxpemVBZGphY2VudFBhcmFtZXRlcnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplQWRqYWNlbnRQYXJhbWV0ZXJzO1xuICAgIH0sXG4gICAgbm9ybWFsaXplVG9rZW5zRm9yUmVnZXhwOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVRva2Vuc0ZvclJlZ2V4cDtcbiAgICB9LFxuICAgIHN0cmlwUGFyYW1ldGVyU2VwYXJhdG9yczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJpcFBhcmFtZXRlclNlcGFyYXRvcnM7XG4gICAgfVxufSk7XG4vKipcbiAqIFJvdXRlIHBhdHRlcm4gbm9ybWFsaXphdGlvbiB1dGlsaXRpZXMgZm9yIHBhdGgtdG8tcmVnZXhwIGNvbXBhdGliaWxpdHkuXG4gKlxuICogcGF0aC10by1yZWdleHAgNi4zLjArIGludHJvZHVjZWQgc3RyaWN0ZXIgdmFsaWRhdGlvbiB0aGF0IHJlamVjdHMgY2VydGFpblxuICogcGF0dGVybnMgY29tbW9ubHkgdXNlZCBpbiBOZXh0LmpzIGludGVyY2VwdGlvbiByb3V0ZXMuIFRoaXMgbW9kdWxlIHByb3ZpZGVzXG4gKiBub3JtYWxpemF0aW9uIGZ1bmN0aW9ucyB0byBtYWtlIE5leHQuanMgcm91dGUgcGF0dGVybnMgY29tcGF0aWJsZSB3aXRoIHRoZVxuICogdXBkYXRlZCBsaWJyYXJ5IHdoaWxlIHByZXNlcnZpbmcgYWxsIGZ1bmN0aW9uYWxpdHkuXG4gKi8gLyoqXG4gKiBJbnRlcm5hbCBzZXBhcmF0b3IgdXNlZCB0byBub3JtYWxpemUgYWRqYWNlbnQgcGFyYW1ldGVyIHBhdHRlcm5zLlxuICogVGhpcyB1bmlxdWUgbWFya2VyIGlzIGluc2VydGVkIGJldHdlZW4gYWRqYWNlbnQgcGFyYW1ldGVycyBhbmQgc3RyaXBwZWQgb3V0XG4gKiBkdXJpbmcgcGFyYW1ldGVyIGV4dHJhY3Rpb24gdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggcmVhbCBVUkwgY29udGVudC5cbiAqLyBjb25zdCBQQVJBTV9TRVBBUkFUT1IgPSAnX05FWFRTRVBfJztcbmZ1bmN0aW9uIGhhc0FkamFjZW50UGFyYW1ldGVySXNzdWVzKHJvdXRlKSB7XG4gICAgaWYgKHR5cGVvZiByb3V0ZSAhPT0gJ3N0cmluZycpIHJldHVybiBmYWxzZTtcbiAgICAvLyBDaGVjayBmb3IgaW50ZXJjZXB0aW9uIHJvdXRlIG1hcmtlcnMgZm9sbG93ZWQgaW1tZWRpYXRlbHkgYnkgcGFyYW1ldGVyc1xuICAgIC8vIFBhdHRlcm46IC8oLik6cGFyYW0sIC8oLi4pOnBhcmFtLCAvKC4uLik6cGFyYW0sIC8oLikoLik6cGFyYW0gZXRjLlxuICAgIC8vIFRoZXNlIHBhdHRlcm5zIGNhdXNlIFwiTXVzdCBoYXZlIHRleHQgYmV0d2VlbiB0d28gcGFyYW1ldGVyc1wiIGVycm9yc1xuICAgIGlmICgvXFwvXFwoXFwuezEsM31cXCk6W14vXFxzXSsvLnRlc3Qocm91dGUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBDaGVjayBmb3IgYmFzaWMgYWRqYWNlbnQgcGFyYW1ldGVycyB3aXRob3V0IHNlcGFyYXRvcnNcbiAgICAvLyBQYXR0ZXJuOiA6cGFyYW0xOnBhcmFtMiAoYnV0IG5vdCA6cGFyYW0qIG9yIG90aGVyIFVSTCBwYXR0ZXJucylcbiAgICBpZiAoLzpbYS16QS1aX11bYS16QS1aMC05X10qOlthLXpBLVpfXVthLXpBLVowLTlfXSovLnRlc3Qocm91dGUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBub3JtYWxpemVBZGphY2VudFBhcmFtZXRlcnMocm91dGUpIHtcbiAgICBsZXQgbm9ybWFsaXplZCA9IHJvdXRlO1xuICAgIC8vIEhhbmRsZSBpbnRlcmNlcHRpb24gcm91dGUgcGF0dGVybnM6ICguKTpwYXJhbSAtPiAoLilfTkVYVFNFUF86cGFyYW1cbiAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5yZXBsYWNlKC8oXFwoW14pXSpcXCkpOihbXi9cXHNdKykvZywgYCQxJHtQQVJBTV9TRVBBUkFUT1J9OiQyYCk7XG4gICAgLy8gSGFuZGxlIG90aGVyIGFkamFjZW50IHBhcmFtZXRlciBwYXR0ZXJuczogOnBhcmFtMTpwYXJhbTIgLT4gOnBhcmFtMV9ORVhUU0VQXzpwYXJhbTJcbiAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5yZXBsYWNlKC86KFteOi9cXHMpXSspKD89OikvZywgYDokMSR7UEFSQU1fU0VQQVJBVE9SfWApO1xuICAgIHJldHVybiBub3JtYWxpemVkO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplVG9rZW5zRm9yUmVnZXhwKHRva2Vucykge1xuICAgIHJldHVybiB0b2tlbnMubWFwKCh0b2tlbik9PntcbiAgICAgICAgLy8gVG9rZW4gdW5pb24gdHlwZTogVG9rZW4gPSBzdHJpbmcgfCBUb2tlbk9iamVjdFxuICAgICAgICAvLyBMaXRlcmFsIHBhdGggc2VnbWVudHMgYXJlIHN0cmluZ3MsIHBhcmFtZXRlcnMvd2lsZGNhcmRzIGFyZSBvYmplY3RzXG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09ICdvYmplY3QnICYmIHRva2VuICE9PSBudWxsICYmIC8vIE5vdCBhbGwgdG9rZW4gb2JqZWN0cyBoYXZlICdtb2RpZmllcicgcHJvcGVydHkgKGUuZy4sIHNpbXBsZSB0ZXh0IHRva2VucylcbiAgICAgICAgJ21vZGlmaWVyJyBpbiB0b2tlbiAmJiAvLyBPbmx5IHJlcGVhdGluZyBtb2RpZmllcnMgKCogb3IgKykgY2F1c2UgdGhlIHZhbGlkYXRpb24gZXJyb3JcbiAgICAgICAgLy8gT3RoZXIgbW9kaWZpZXJzIGxpa2UgJz8nIChvcHRpb25hbCkgYXJlIGZpbmVcbiAgICAgICAgKHRva2VuLm1vZGlmaWVyID09PSAnKicgfHwgdG9rZW4ubW9kaWZpZXIgPT09ICcrJykgJiYgLy8gVG9rZW4gb2JqZWN0cyBjYW4gaGF2ZSBkaWZmZXJlbnQgc2hhcGVzIGRlcGVuZGluZyBvbiByb3V0ZSBwYXR0ZXJuXG4gICAgICAgICdwcmVmaXgnIGluIHRva2VuICYmICdzdWZmaXgnIGluIHRva2VuICYmIC8vIEJvdGggcHJlZml4IGFuZCBzdWZmaXggbXVzdCBiZSBlbXB0eSBzdHJpbmdzXG4gICAgICAgIC8vIFRoaXMgaXMgd2hhdCBjYXVzZXMgdGhlIHZhbGlkYXRpb24gZXJyb3IgaW4gcGF0aC10by1yZWdleHBcbiAgICAgICAgdG9rZW4ucHJlZml4ID09PSAnJyAmJiB0b2tlbi5zdWZmaXggPT09ICcnKSB7XG4gICAgICAgICAgICAvLyBBZGQgbWluaW1hbCBwcmVmaXggdG8gc2F0aXNmeSBwYXRoLXRvLXJlZ2V4cCB2YWxpZGF0aW9uXG4gICAgICAgICAgICAvLyBXZSB1c2UgJy8nIGFzIGl0J3MgdGhlIG1vc3QgY29tbW9uIHBhdGggZGVsaW1pdGVyIGFuZCB3b24ndCBicmVhayByb3V0ZSBtYXRjaGluZ1xuICAgICAgICAgICAgLy8gVGhlIHByZWZpeCBnZXRzIHVzZWQgaW4gcmVnZXggZ2VuZXJhdGlvbiBidXQgZG9lc24ndCBhZmZlY3QgcGFyYW1ldGVyIGV4dHJhY3Rpb25cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udG9rZW4sXG4gICAgICAgICAgICAgICAgcHJlZml4OiAnLydcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gc3RyaXBQYXJhbWV0ZXJTZXBhcmF0b3JzKHBhcmFtcykge1xuICAgIGNvbnN0IGNsZWFuZWQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKXtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgc2VwYXJhdG9yIGlmIGl0IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIHBhcmFtZXRlciB2YWx1ZXNcbiAgICAgICAgICAgIGNsZWFuZWRba2V5XSA9IHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7UEFSQU1fU0VQQVJBVE9SfWApLCAnJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhcnJheSBwYXJhbWV0ZXJzIChmcm9tIHJlcGVhdGVkIHJvdXRlIHNlZ21lbnRzKVxuICAgICAgICAgICAgY2xlYW5lZFtrZXldID0gdmFsdWUubWFwKChpdGVtKT0+dHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8gaXRlbS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke1BBUkFNX1NFUEFSQVRPUn1gKSwgJycpIDogaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbGVhbmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xlYW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtcGF0dGVybi1ub3JtYWxpemVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/route-pattern-normalizer.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/scheduler.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/lib/scheduler.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBhdExlYXN0T25lVGFzazogbnVsbCxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogbnVsbCxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IG51bGwsXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXRMZWFzdE9uZVRhc2s7XG4gICAgfSxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZUltbWVkaWF0ZTtcbiAgICB9LFxuICAgIHNjaGVkdWxlT25OZXh0VGljazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZU9uTmV4dFRpY2s7XG4gICAgfSxcbiAgICB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaztcbiAgICB9XG59KTtcbmNvbnN0IHNjaGVkdWxlT25OZXh0VGljayA9IChjYik9PntcbiAgICAvLyBXZSB1c2UgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigpIGhlcmUgc28gdGhhdCB0aGUgb3BlcmF0aW9uIGlzIHNjaGVkdWxlZCBhdFxuICAgIC8vIHRoZSBlbmQgb2YgdGhlIHByb21pc2Ugam9iIHF1ZXVlLCB3ZSB0aGVuIGFkZCBpdCB0byB0aGUgbmV4dCBwcm9jZXNzIHRpY2tcbiAgICAvLyB0byBlbnN1cmUgaXQncyBldmFsdWF0ZWQgYWZ0ZXJ3YXJkcy5cbiAgICAvL1xuICAgIC8vIFRoaXMgd2FzIGluc3BpcmVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGF0YUxvYWRlciBpbnRlcmZhY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsL2RhdGFsb2FkZXIvYmxvYi9kMzM2YmQxNTI4MjY2NGUwYmU0YjRhNjU3Y2I3OTZmMDliYWZiYzZiL3NyYy9pbmRleC5qcyNMMjEzLUwyNTVcbiAgICAvL1xuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soY2IpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuY29uc3Qgc2NoZWR1bGVJbW1lZGlhdGUgPSAoY2IpPT57XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgIHNldFRpbWVvdXQoY2IsIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEltbWVkaWF0ZShjYik7XG4gICAgfVxufTtcbmZ1bmN0aW9uIGF0TGVhc3RPbmVUYXNrKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnNjaGVkdWxlSW1tZWRpYXRlKHJlc29sdmUpKTtcbn1cbmZ1bmN0aW9uIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRUaW1lb3V0KHIsIDApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRJbW1lZGlhdGUocikpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2NoZWR1bGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/scheduler.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/url.js": /*!*******************************************!*\ !*** ./node_modules/next/dist/lib/url.js ***! \*******************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isFullStringUrl: function() {\n return isFullStringUrl;\n },\n parseReqUrl: function() {\n return parseReqUrl;\n },\n parseUrl: function() {\n return parseUrl;\n },\n stripNextRscUnionQuery: function() {\n return stripNextRscUnionQuery;\n }\n});\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst DUMMY_ORIGIN = 'http://n';\nfunction isFullStringUrl(url) {\n return /https?:\\/\\//.test(url);\n}\nfunction parseUrl(url) {\n let parsed = undefined;\n try {\n parsed = new URL(url, DUMMY_ORIGIN);\n } catch {}\n return parsed;\n}\nfunction parseReqUrl(url) {\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n return;\n }\n const query = {};\n for (const key of parsedUrl.searchParams.keys()){\n const values = parsedUrl.searchParams.getAll(key);\n query[key] = values.length > 1 ? values : values[0];\n }\n const legacyUrl = {\n query,\n hash: parsedUrl.hash,\n search: parsedUrl.search,\n path: parsedUrl.pathname,\n pathname: parsedUrl.pathname,\n href: `${parsedUrl.pathname}${parsedUrl.search}${parsedUrl.hash}`,\n host: '',\n hostname: '',\n auth: '',\n protocol: '',\n slashes: null,\n port: ''\n };\n return legacyUrl;\n}\nfunction stripNextRscUnionQuery(relativeUrl) {\n const urlInstance = new URL(relativeUrl, DUMMY_ORIGIN);\n urlInstance.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n return urlInstance.pathname + urlInstance.search;\n}\n\n//# sourceMappingURL=url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi91cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDBCQUEwQixtQkFBTyxDQUFDLHVIQUF5QztBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvdXJsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNGdWxsU3RyaW5nVXJsOiBudWxsLFxuICAgIHBhcnNlUmVxVXJsOiBudWxsLFxuICAgIHBhcnNlVXJsOiBudWxsLFxuICAgIHN0cmlwTmV4dFJzY1VuaW9uUXVlcnk6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNGdWxsU3RyaW5nVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRnVsbFN0cmluZ1VybDtcbiAgICB9LFxuICAgIHBhcnNlUmVxVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlUmVxVXJsO1xuICAgIH0sXG4gICAgcGFyc2VVcmw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGFyc2VVcmw7XG4gICAgfSxcbiAgICBzdHJpcE5leHRSc2NVbmlvblF1ZXJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmlwTmV4dFJzY1VuaW9uUXVlcnk7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwcm91dGVyaGVhZGVycyA9IHJlcXVpcmUoXCIuLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIik7XG5jb25zdCBEVU1NWV9PUklHSU4gPSAnaHR0cDovL24nO1xuZnVuY3Rpb24gaXNGdWxsU3RyaW5nVXJsKHVybCkge1xuICAgIHJldHVybiAvaHR0cHM/OlxcL1xcLy8udGVzdCh1cmwpO1xufVxuZnVuY3Rpb24gcGFyc2VVcmwodXJsKSB7XG4gICAgbGV0IHBhcnNlZCA9IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgICBwYXJzZWQgPSBuZXcgVVJMKHVybCwgRFVNTVlfT1JJR0lOKTtcbiAgICB9IGNhdGNoICB7fVxuICAgIHJldHVybiBwYXJzZWQ7XG59XG5mdW5jdGlvbiBwYXJzZVJlcVVybCh1cmwpIHtcbiAgICBjb25zdCBwYXJzZWRVcmwgPSBwYXJzZVVybCh1cmwpO1xuICAgIGlmICghcGFyc2VkVXJsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcXVlcnkgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBwYXJzZWRVcmwuc2VhcmNoUGFyYW1zLmtleXMoKSl7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcnNlZFVybC5zZWFyY2hQYXJhbXMuZ2V0QWxsKGtleSk7XG4gICAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZXMubGVuZ3RoID4gMSA/IHZhbHVlcyA6IHZhbHVlc1swXTtcbiAgICB9XG4gICAgY29uc3QgbGVnYWN5VXJsID0ge1xuICAgICAgICBxdWVyeSxcbiAgICAgICAgaGFzaDogcGFyc2VkVXJsLmhhc2gsXG4gICAgICAgIHNlYXJjaDogcGFyc2VkVXJsLnNlYXJjaCxcbiAgICAgICAgcGF0aDogcGFyc2VkVXJsLnBhdGhuYW1lLFxuICAgICAgICBwYXRobmFtZTogcGFyc2VkVXJsLnBhdGhuYW1lLFxuICAgICAgICBocmVmOiBgJHtwYXJzZWRVcmwucGF0aG5hbWV9JHtwYXJzZWRVcmwuc2VhcmNofSR7cGFyc2VkVXJsLmhhc2h9YCxcbiAgICAgICAgaG9zdDogJycsXG4gICAgICAgIGhvc3RuYW1lOiAnJyxcbiAgICAgICAgYXV0aDogJycsXG4gICAgICAgIHByb3RvY29sOiAnJyxcbiAgICAgICAgc2xhc2hlczogbnVsbCxcbiAgICAgICAgcG9ydDogJydcbiAgICB9O1xuICAgIHJldHVybiBsZWdhY3lVcmw7XG59XG5mdW5jdGlvbiBzdHJpcE5leHRSc2NVbmlvblF1ZXJ5KHJlbGF0aXZlVXJsKSB7XG4gICAgY29uc3QgdXJsSW5zdGFuY2UgPSBuZXcgVVJMKHJlbGF0aXZlVXJsLCBEVU1NWV9PUklHSU4pO1xuICAgIHVybEluc3RhbmNlLnNlYXJjaFBhcmFtcy5kZWxldGUoX2FwcHJvdXRlcmhlYWRlcnMuTkVYVF9SU0NfVU5JT05fUVVFUlkpO1xuICAgIHJldHVybiB1cmxJbnN0YW5jZS5wYXRobmFtZSArIHVybEluc3RhbmNlLnNlYXJjaDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXJsLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/url.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js": /*!*************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js ***! \*************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/home/nicholai/Documents/dev/multi-agent_chat_interface/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUuanMvX19uZXh0anMtaW50ZXJuYWwtcHJveHkuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuY29uc3QgeyBjcmVhdGVQcm94eSB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eVwiKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVByb3h5KFwiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUuanNcIilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/after/after.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/server/after/after.js ***! \******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"after\", ({\n enumerable: true,\n get: function() {\n return after;\n }\n}));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nfunction after(task) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n // TODO(after): the linked docs page talks about *dynamic* APIs, which after soon won't be anymore\n throw Object.defineProperty(new Error('`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context'), \"__NEXT_ERROR_CODE\", {\n value: \"E468\",\n enumerable: false,\n configurable: true\n });\n }\n const { afterContext } = workStore;\n return afterContext.after(task);\n}\n\n//# sourceMappingURL=after.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9hZnRlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLGtDQUFrQyxtQkFBTyxDQUFDLGdGQUEyQztBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYWZ0ZXIvYWZ0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJhZnRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWZ0ZXI7XG4gICAgfVxufSk7XG5jb25zdCBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuZnVuY3Rpb24gYWZ0ZXIodGFzaykge1xuICAgIGNvbnN0IHdvcmtTdG9yZSA9IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICghd29ya1N0b3JlKSB7XG4gICAgICAgIC8vIFRPRE8oYWZ0ZXIpOiB0aGUgbGlua2VkIGRvY3MgcGFnZSB0YWxrcyBhYm91dCAqZHluYW1pYyogQVBJcywgd2hpY2ggYWZ0ZXIgc29vbiB3b24ndCBiZSBhbnltb3JlXG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2BhZnRlcmAgd2FzIGNhbGxlZCBvdXRzaWRlIGEgcmVxdWVzdCBzY29wZS4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWR5bmFtaWMtYXBpLXdyb25nLWNvbnRleHQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFNDY4XCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgeyBhZnRlckNvbnRleHQgfSA9IHdvcmtTdG9yZTtcbiAgICByZXR1cm4gYWZ0ZXJDb250ZXh0LmFmdGVyKHRhc2spO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZnRlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/after/after.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/after/index.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/server/after/index.js ***! \******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && 0;\n_export_star(__webpack_require__(/*! ./after */ \"(rsc)/./node_modules/next/dist/server/after/after.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsYUFBYSxtQkFBTyxDQUFDLHFFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgX19leHBvcnQocmVxdWlyZShcIi4vYWZ0ZXJcIikpO1xuX2V4cG9ydF9zdGFyKHJlcXVpcmUoXCIuL2FmdGVyXCIpLCBleHBvcnRzKTtcbmZ1bmN0aW9uIF9leHBvcnRfc3Rhcihmcm9tLCB0bykge1xuICAgIE9iamVjdC5rZXlzKGZyb20pLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgICAgICBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0bywgaykpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0bywgaywge1xuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb21ba107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZnJvbTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/after/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/server/api-utils/get-cookie-parser.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCookieParser\", ({\n enumerable: true,\n get: function() {\n return getCookieParser;\n }\n}));\nfunction getCookieParser(headers) {\n return function parseCookie() {\n const { cookie } = headers;\n if (!cookie) {\n return {};\n }\n const { parse: parseCookieFn } = __webpack_require__(/*! next/dist/compiled/cookie */ \"(rsc)/./node_modules/next/dist/compiled/cookie/index.js\");\n return parseCookieFn(Array.isArray(cookie) ? cookie.join('; ') : cookie);\n };\n}\n\n//# sourceMappingURL=get-cookie-parser.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcGktdXRpbHMvZ2V0LWNvb2tpZS1wYXJzZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVCQUF1QixFQUFFLG1CQUFPLENBQUMsMEZBQTJCO0FBQzVFLG9FQUFvRTtBQUNwRTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwaS11dGlscy9nZXQtY29va2llLXBhcnNlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldENvb2tpZVBhcnNlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q29va2llUGFyc2VyO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0Q29va2llUGFyc2VyKGhlYWRlcnMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gcGFyc2VDb29raWUoKSB7XG4gICAgICAgIGNvbnN0IHsgY29va2llIH0gPSBoZWFkZXJzO1xuICAgICAgICBpZiAoIWNvb2tpZSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgcGFyc2U6IHBhcnNlQ29va2llRm4gfSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9jb29raWUnKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ29va2llRm4oQXJyYXkuaXNBcnJheShjb29raWUpID8gY29va2llLmpvaW4oJzsgJykgOiBjb29raWUpO1xuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1jb29raWUtcGFyc2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/api-utils/index.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/server/api-utils/index.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ApiError: function() {\n return ApiError;\n },\n COOKIE_NAME_PRERENDER_BYPASS: function() {\n return COOKIE_NAME_PRERENDER_BYPASS;\n },\n COOKIE_NAME_PRERENDER_DATA: function() {\n return COOKIE_NAME_PRERENDER_DATA;\n },\n RESPONSE_LIMIT_DEFAULT: function() {\n return RESPONSE_LIMIT_DEFAULT;\n },\n SYMBOL_CLEARED_COOKIES: function() {\n return SYMBOL_CLEARED_COOKIES;\n },\n SYMBOL_PREVIEW_DATA: function() {\n return SYMBOL_PREVIEW_DATA;\n },\n checkIsOnDemandRevalidate: function() {\n return checkIsOnDemandRevalidate;\n },\n clearPreviewData: function() {\n return clearPreviewData;\n },\n redirect: function() {\n return redirect;\n },\n sendError: function() {\n return sendError;\n },\n sendStatusCode: function() {\n return sendStatusCode;\n },\n setLazyProp: function() {\n return setLazyProp;\n },\n wrapApiHandler: function() {\n return wrapApiHandler;\n }\n});\nconst _headers = __webpack_require__(/*! ../web/spec-extension/adapters/headers */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js\");\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants1 = __webpack_require__(/*! ../lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nfunction wrapApiHandler(page, handler) {\n return (...args)=>{\n (0, _tracer.getTracer)().setRootSpanAttribute('next.route', page);\n // Call API route method\n return (0, _tracer.getTracer)().trace(_constants1.NodeSpan.runHandler, {\n spanName: `executing api route (pages) ${page}`\n }, ()=>handler(...args));\n };\n}\nfunction sendStatusCode(res, statusCode) {\n res.statusCode = statusCode;\n return res;\n}\nfunction redirect(res, statusOrUrl, url) {\n if (typeof statusOrUrl === 'string') {\n url = statusOrUrl;\n statusOrUrl = 307;\n }\n if (typeof statusOrUrl !== 'number' || typeof url !== 'string') {\n throw Object.defineProperty(new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`), \"__NEXT_ERROR_CODE\", {\n value: \"E389\",\n enumerable: false,\n configurable: true\n });\n }\n res.writeHead(statusOrUrl, {\n Location: url\n });\n res.write(url);\n res.end();\n return res;\n}\nfunction checkIsOnDemandRevalidate(req, previewProps) {\n const headers = _headers.HeadersAdapter.from(req.headers);\n const previewModeId = headers.get(_constants.PRERENDER_REVALIDATE_HEADER);\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.has(_constants.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);\n return {\n isOnDemandRevalidate,\n revalidateOnlyGenerated\n };\n}\nconst COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`;\nconst COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`;\nconst RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024;\nconst SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA);\nconst SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS);\nfunction clearPreviewData(res, options = {}) {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res;\n }\n const { serialize } = __webpack_require__(/*! next/dist/compiled/cookie */ \"(rsc)/./node_modules/next/dist/compiled/cookie/index.js\");\n const previous = res.getHeader('Set-Cookie');\n res.setHeader(`Set-Cookie`, [\n ...typeof previous === 'string' ? [\n previous\n ] : Array.isArray(previous) ? previous : [],\n serialize(COOKIE_NAME_PRERENDER_BYPASS, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: false ? 0 : 'lax',\n secure: \"development\" !== 'development',\n path: '/',\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: false ? 0 : 'lax',\n secure: \"development\" !== 'development',\n path: '/',\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n })\n ]);\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false\n });\n return res;\n}\nclass ApiError extends Error {\n constructor(statusCode, message){\n super(message);\n this.statusCode = statusCode;\n }\n}\nfunction sendError(res, statusCode, message) {\n res.statusCode = statusCode;\n res.statusMessage = message;\n res.end(message);\n}\nfunction setLazyProp({ req }, prop, getter) {\n const opts = {\n configurable: true,\n enumerable: true\n };\n const optsReset = {\n ...opts,\n writable: true\n };\n Object.defineProperty(req, prop, {\n ...opts,\n get: ()=>{\n const value = getter();\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n return value;\n },\n set: (value)=>{\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n }\n });\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcGktdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBY0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLDRIQUF3QztBQUNqRSxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQsZ0JBQWdCLG1CQUFPLENBQUMsc0ZBQXFCO0FBQzdDLG9CQUFvQixtQkFBTyxDQUFDLDRGQUF3QjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELEtBQUs7QUFDMUQsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQSxZQUFZLFlBQVksRUFBRSxtQkFBTyxDQUFDLDBGQUEyQjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLE1BQXNDLEdBQUcsQ0FBTTtBQUNyRSxvQkFBb0IsYUFBb0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsTUFBc0MsR0FBRyxDQUFNO0FBQ3JFLG9CQUFvQixhQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLEtBQUs7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBpLXV0aWxzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQXBpRXJyb3I6IG51bGwsXG4gICAgQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUzogbnVsbCxcbiAgICBDT09LSUVfTkFNRV9QUkVSRU5ERVJfREFUQTogbnVsbCxcbiAgICBSRVNQT05TRV9MSU1JVF9ERUZBVUxUOiBudWxsLFxuICAgIFNZTUJPTF9DTEVBUkVEX0NPT0tJRVM6IG51bGwsXG4gICAgU1lNQk9MX1BSRVZJRVdfREFUQTogbnVsbCxcbiAgICBjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlOiBudWxsLFxuICAgIGNsZWFyUHJldmlld0RhdGE6IG51bGwsXG4gICAgcmVkaXJlY3Q6IG51bGwsXG4gICAgc2VuZEVycm9yOiBudWxsLFxuICAgIHNlbmRTdGF0dXNDb2RlOiBudWxsLFxuICAgIHNldExhenlQcm9wOiBudWxsLFxuICAgIHdyYXBBcGlIYW5kbGVyOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFwaUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwaUVycm9yO1xuICAgIH0sXG4gICAgQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTO1xuICAgIH0sXG4gICAgQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEE7XG4gICAgfSxcbiAgICBSRVNQT05TRV9MSU1JVF9ERUZBVUxUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJFU1BPTlNFX0xJTUlUX0RFRkFVTFQ7XG4gICAgfSxcbiAgICBTWU1CT0xfQ0xFQVJFRF9DT09LSUVTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNZTUJPTF9DTEVBUkVEX0NPT0tJRVM7XG4gICAgfSxcbiAgICBTWU1CT0xfUFJFVklFV19EQVRBOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNZTUJPTF9QUkVWSUVXX0RBVEE7XG4gICAgfSxcbiAgICBjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNoZWNrSXNPbkRlbWFuZFJldmFsaWRhdGU7XG4gICAgfSxcbiAgICBjbGVhclByZXZpZXdEYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNsZWFyUHJldmlld0RhdGE7XG4gICAgfSxcbiAgICByZWRpcmVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZWRpcmVjdDtcbiAgICB9LFxuICAgIHNlbmRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZW5kRXJyb3I7XG4gICAgfSxcbiAgICBzZW5kU3RhdHVzQ29kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZW5kU3RhdHVzQ29kZTtcbiAgICB9LFxuICAgIHNldExhenlQcm9wOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNldExhenlQcm9wO1xuICAgIH0sXG4gICAgd3JhcEFwaUhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd3JhcEFwaUhhbmRsZXI7XG4gICAgfVxufSk7XG5jb25zdCBfaGVhZGVycyA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvaGVhZGVyc1wiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi4vbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9jb25zdGFudHMxID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5mdW5jdGlvbiB3cmFwQXBpSGFuZGxlcihwYWdlLCBoYW5kbGVyKSB7XG4gICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkuc2V0Um9vdFNwYW5BdHRyaWJ1dGUoJ25leHQucm91dGUnLCBwYWdlKTtcbiAgICAgICAgLy8gQ2FsbCBBUEkgcm91dGUgbWV0aG9kXG4gICAgICAgIHJldHVybiAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoX2NvbnN0YW50czEuTm9kZVNwYW4ucnVuSGFuZGxlciwge1xuICAgICAgICAgICAgc3Bhbk5hbWU6IGBleGVjdXRpbmcgYXBpIHJvdXRlIChwYWdlcykgJHtwYWdlfWBcbiAgICAgICAgfSwgKCk9PmhhbmRsZXIoLi4uYXJncykpO1xuICAgIH07XG59XG5mdW5jdGlvbiBzZW5kU3RhdHVzQ29kZShyZXMsIHN0YXR1c0NvZGUpIHtcbiAgICByZXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgcmV0dXJuIHJlcztcbn1cbmZ1bmN0aW9uIHJlZGlyZWN0KHJlcywgc3RhdHVzT3JVcmwsIHVybCkge1xuICAgIGlmICh0eXBlb2Ygc3RhdHVzT3JVcmwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHVybCA9IHN0YXR1c09yVXJsO1xuICAgICAgICBzdGF0dXNPclVybCA9IDMwNztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzdGF0dXNPclVybCAhPT0gJ251bWJlcicgfHwgdHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCByZWRpcmVjdCBhcmd1bWVudHMuIFBsZWFzZSB1c2UgYSBzaW5nbGUgYXJndW1lbnQgVVJMLCBlLmcuIHJlcy5yZWRpcmVjdCgnL2Rlc3RpbmF0aW9uJykgb3IgdXNlIGEgc3RhdHVzIGNvZGUgYW5kIFVSTCwgZS5nLiByZXMucmVkaXJlY3QoMzA3LCAnL2Rlc3RpbmF0aW9uJykuYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTM4OVwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlcy53cml0ZUhlYWQoc3RhdHVzT3JVcmwsIHtcbiAgICAgICAgTG9jYXRpb246IHVybFxuICAgIH0pO1xuICAgIHJlcy53cml0ZSh1cmwpO1xuICAgIHJlcy5lbmQoKTtcbiAgICByZXR1cm4gcmVzO1xufVxuZnVuY3Rpb24gY2hlY2tJc09uRGVtYW5kUmV2YWxpZGF0ZShyZXEsIHByZXZpZXdQcm9wcykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBfaGVhZGVycy5IZWFkZXJzQWRhcHRlci5mcm9tKHJlcS5oZWFkZXJzKTtcbiAgICBjb25zdCBwcmV2aWV3TW9kZUlkID0gaGVhZGVycy5nZXQoX2NvbnN0YW50cy5QUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIpO1xuICAgIGNvbnN0IGlzT25EZW1hbmRSZXZhbGlkYXRlID0gcHJldmlld01vZGVJZCA9PT0gcHJldmlld1Byb3BzLnByZXZpZXdNb2RlSWQ7XG4gICAgY29uc3QgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQgPSBoZWFkZXJzLmhhcyhfY29uc3RhbnRzLlBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkXG4gICAgfTtcbn1cbmNvbnN0IENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1MgPSBgX19wcmVyZW5kZXJfYnlwYXNzYDtcbmNvbnN0IENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBID0gYF9fbmV4dF9wcmV2aWV3X2RhdGFgO1xuY29uc3QgUkVTUE9OU0VfTElNSVRfREVGQVVMVCA9IDQgKiAxMDI0ICogMTAyNDtcbmNvbnN0IFNZTUJPTF9QUkVWSUVXX0RBVEEgPSBTeW1ib2woQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEEpO1xuY29uc3QgU1lNQk9MX0NMRUFSRURfQ09PS0lFUyA9IFN5bWJvbChDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTKTtcbmZ1bmN0aW9uIGNsZWFyUHJldmlld0RhdGEocmVzLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAoU1lNQk9MX0NMRUFSRURfQ09PS0lFUyBpbiByZXMpIHtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgY29uc3QgeyBzZXJpYWxpemUgfSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9jb29raWUnKTtcbiAgICBjb25zdCBwcmV2aW91cyA9IHJlcy5nZXRIZWFkZXIoJ1NldC1Db29raWUnKTtcbiAgICByZXMuc2V0SGVhZGVyKGBTZXQtQ29va2llYCwgW1xuICAgICAgICAuLi50eXBlb2YgcHJldmlvdXMgPT09ICdzdHJpbmcnID8gW1xuICAgICAgICAgICAgcHJldmlvdXNcbiAgICAgICAgXSA6IEFycmF5LmlzQXJyYXkocHJldmlvdXMpID8gcHJldmlvdXMgOiBbXSxcbiAgICAgICAgc2VyaWFsaXplKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1MsICcnLCB7XG4gICAgICAgICAgICAvLyBUbyBkZWxldGUgYSBjb29raWUsIHNldCBgZXhwaXJlc2AgdG8gYSBkYXRlIGluIHRoZSBwYXN0OlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEuMVxuICAgICAgICAgICAgLy8gYE1heC1BZ2U6IDBgIGlzIG5vdCB2YWxpZCwgdGh1cyBpZ25vcmVkLCBhbmQgdGhlIGNvb2tpZSBpcyBwZXJzaXN0ZWQuXG4gICAgICAgICAgICBleHBpcmVzOiBuZXcgRGF0ZSgwKSxcbiAgICAgICAgICAgIGh0dHBPbmx5OiB0cnVlLFxuICAgICAgICAgICAgc2FtZVNpdGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnID8gJ25vbmUnIDogJ2xheCcsXG4gICAgICAgICAgICBzZWN1cmU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnLFxuICAgICAgICAgICAgcGF0aDogJy8nLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy5wYXRoICE9PSB1bmRlZmluZWQgPyB7XG4gICAgICAgICAgICAgICAgcGF0aDogb3B0aW9ucy5wYXRoXG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgIH0pLFxuICAgICAgICBzZXJpYWxpemUoQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEEsICcnLCB7XG4gICAgICAgICAgICAvLyBUbyBkZWxldGUgYSBjb29raWUsIHNldCBgZXhwaXJlc2AgdG8gYSBkYXRlIGluIHRoZSBwYXN0OlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEuMVxuICAgICAgICAgICAgLy8gYE1heC1BZ2U6IDBgIGlzIG5vdCB2YWxpZCwgdGh1cyBpZ25vcmVkLCBhbmQgdGhlIGNvb2tpZSBpcyBwZXJzaXN0ZWQuXG4gICAgICAgICAgICBleHBpcmVzOiBuZXcgRGF0ZSgwKSxcbiAgICAgICAgICAgIGh0dHBPbmx5OiB0cnVlLFxuICAgICAgICAgICAgc2FtZVNpdGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnID8gJ25vbmUnIDogJ2xheCcsXG4gICAgICAgICAgICBzZWN1cmU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnLFxuICAgICAgICAgICAgcGF0aDogJy8nLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy5wYXRoICE9PSB1bmRlZmluZWQgPyB7XG4gICAgICAgICAgICAgICAgcGF0aDogb3B0aW9ucy5wYXRoXG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgIH0pXG4gICAgXSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcywgU1lNQk9MX0NMRUFSRURfQ09PS0lFUywge1xuICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzO1xufVxuY2xhc3MgQXBpRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3Ioc3RhdHVzQ29kZSwgbWVzc2FnZSl7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHNlbmRFcnJvcihyZXMsIHN0YXR1c0NvZGUsIG1lc3NhZ2UpIHtcbiAgICByZXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgcmVzLnN0YXR1c01lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHJlcy5lbmQobWVzc2FnZSk7XG59XG5mdW5jdGlvbiBzZXRMYXp5UHJvcCh7IHJlcSB9LCBwcm9wLCBnZXR0ZXIpIHtcbiAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICB9O1xuICAgIGNvbnN0IG9wdHNSZXNldCA9IHtcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXEsIHByb3AsIHtcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgZ2V0OiAoKT0+e1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXR0ZXIoKTtcbiAgICAgICAgICAgIC8vIHdlIHNldCB0aGUgcHJvcGVydHkgb24gdGhlIG9iamVjdCB0byBhdm9pZCByZWNhbGN1bGF0aW5nIGl0XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgLi4ub3B0c1Jlc2V0LFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiAodmFsdWUpPT57XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgLi4ub3B0c1Jlc2V0LFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/api-utils/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/action-utils.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/action-utils.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createServerModuleMap: function() {\n return createServerModuleMap;\n },\n selectWorkerForForwarding: function() {\n return selectWorkerForForwarding;\n }\n});\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _pathhasprefix = __webpack_require__(/*! ../../shared/lib/router/utils/path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst _removepathprefix = __webpack_require__(/*! ../../shared/lib/router/utils/remove-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ./work-async-storage.external */ \"./work-async-storage.external\");\nfunction createServerModuleMap({ serverActionsManifest }) {\n return new Proxy({}, {\n get: (_, id)=>{\n var _serverActionsManifest__id, _serverActionsManifest_;\n const workers = (_serverActionsManifest_ = serverActionsManifest[ false ? 0 : 'node']) == null ? void 0 : (_serverActionsManifest__id = _serverActionsManifest_[id]) == null ? void 0 : _serverActionsManifest__id.workers;\n if (!workers) {\n return undefined;\n }\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n let workerEntry;\n if (workStore) {\n workerEntry = workers[normalizeWorkerPageName(workStore.page)];\n } else {\n // If there's no work store defined, we can assume that a server\n // module map is needed during module evaluation, e.g. to create a\n // server action using a higher-order function. Therefore it should be\n // safe to return any entry from the manifest that matches the action\n // ID. They all refer to the same module ID, which must also exist in\n // the current page bundle. TODO: This is currently not guaranteed in\n // Turbopack, and needs to be fixed.\n workerEntry = Object.values(workers).at(0);\n }\n if (!workerEntry) {\n return undefined;\n }\n const { moduleId, async } = workerEntry;\n return {\n id: moduleId,\n name: id,\n chunks: [],\n async\n };\n }\n });\n}\nfunction selectWorkerForForwarding(actionId, pageName, serverActionsManifest) {\n var _serverActionsManifest__actionId;\n const workers = (_serverActionsManifest__actionId = serverActionsManifest[ false ? 0 : 'node'][actionId]) == null ? void 0 : _serverActionsManifest__actionId.workers;\n const workerName = normalizeWorkerPageName(pageName);\n // no workers, nothing to forward to\n if (!workers) return;\n // if there is a worker for this page, no need to forward it.\n if (workers[workerName]) {\n return;\n }\n // otherwise, grab the first worker that has a handler for this action id\n return denormalizeWorkerPageName(Object.keys(workers)[0]);\n}\n/**\n * The flight entry loader keys actions by bundlePath.\n * bundlePath corresponds with the relative path (including 'app') to the page entrypoint.\n */ function normalizeWorkerPageName(pageName) {\n if ((0, _pathhasprefix.pathHasPrefix)(pageName, 'app')) {\n return pageName;\n }\n return 'app' + pageName;\n}\n/**\n * Converts a bundlePath (relative path to the entrypoint) to a routable page name\n */ function denormalizeWorkerPageName(bundlePath) {\n return (0, _apppaths.normalizeAppPath)((0, _removepathprefix.removePathPrefix)(bundlePath, 'app'));\n}\n\n//# sourceMappingURL=action-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2FjdGlvbi11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0IsbUJBQU8sQ0FBQyxvSEFBeUM7QUFDbkUsdUJBQXVCLG1CQUFPLENBQUMsZ0lBQStDO0FBQzlFLDBCQUEwQixtQkFBTyxDQUFDLHNJQUFrRDtBQUNwRixrQ0FBa0MsbUJBQU8sQ0FBQyxvRUFBK0I7QUFDekUsaUNBQWlDLHVCQUF1QjtBQUN4RCx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBLDZFQUE2RSxNQUFtQyxHQUFHLENBQU07QUFDekg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSw4RUFBOEUsTUFBbUMsR0FBRyxDQUFNO0FBQzFIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2FjdGlvbi11dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZVNlcnZlck1vZHVsZU1hcDogbnVsbCxcbiAgICBzZWxlY3RXb3JrZXJGb3JGb3J3YXJkaW5nOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNyZWF0ZVNlcnZlck1vZHVsZU1hcDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXA7XG4gICAgfSxcbiAgICBzZWxlY3RXb3JrZXJGb3JGb3J3YXJkaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdFdvcmtlckZvckZvcndhcmRpbmc7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwcGF0aHMgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCIpO1xuY29uc3QgX3BhdGhoYXNwcmVmaXggPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4XCIpO1xuY29uc3QgX3JlbW92ZXBhdGhwcmVmaXggPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4XCIpO1xuY29uc3QgX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlck1vZHVsZU1hcCh7IHNlcnZlckFjdGlvbnNNYW5pZmVzdCB9KSB7XG4gICAgcmV0dXJuIG5ldyBQcm94eSh7fSwge1xuICAgICAgICBnZXQ6IChfLCBpZCk9PntcbiAgICAgICAgICAgIHZhciBfc2VydmVyQWN0aW9uc01hbmlmZXN0X19pZCwgX3NlcnZlckFjdGlvbnNNYW5pZmVzdF87XG4gICAgICAgICAgICBjb25zdCB3b3JrZXJzID0gKF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfID0gc2VydmVyQWN0aW9uc01hbmlmZXN0W3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnID8gJ2VkZ2UnIDogJ25vZGUnXSkgPT0gbnVsbCA/IHZvaWQgMCA6IChfc2VydmVyQWN0aW9uc01hbmlmZXN0X19pZCA9IF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfW2lkXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfX2lkLndvcmtlcnM7XG4gICAgICAgICAgICBpZiAoIXdvcmtlcnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgd29ya1N0b3JlID0gX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgICAgICBsZXQgd29ya2VyRW50cnk7XG4gICAgICAgICAgICBpZiAod29ya1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgd29ya2VyRW50cnkgPSB3b3JrZXJzW25vcm1hbGl6ZVdvcmtlclBhZ2VOYW1lKHdvcmtTdG9yZS5wYWdlKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gd29yayBzdG9yZSBkZWZpbmVkLCB3ZSBjYW4gYXNzdW1lIHRoYXQgYSBzZXJ2ZXJcbiAgICAgICAgICAgICAgICAvLyBtb2R1bGUgbWFwIGlzIG5lZWRlZCBkdXJpbmcgbW9kdWxlIGV2YWx1YXRpb24sIGUuZy4gdG8gY3JlYXRlIGFcbiAgICAgICAgICAgICAgICAvLyBzZXJ2ZXIgYWN0aW9uIHVzaW5nIGEgaGlnaGVyLW9yZGVyIGZ1bmN0aW9uLiBUaGVyZWZvcmUgaXQgc2hvdWxkIGJlXG4gICAgICAgICAgICAgICAgLy8gc2FmZSB0byByZXR1cm4gYW55IGVudHJ5IGZyb20gdGhlIG1hbmlmZXN0IHRoYXQgbWF0Y2hlcyB0aGUgYWN0aW9uXG4gICAgICAgICAgICAgICAgLy8gSUQuIFRoZXkgYWxsIHJlZmVyIHRvIHRoZSBzYW1lIG1vZHVsZSBJRCwgd2hpY2ggbXVzdCBhbHNvIGV4aXN0IGluXG4gICAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgcGFnZSBidW5kbGUuIFRPRE86IFRoaXMgaXMgY3VycmVudGx5IG5vdCBndWFyYW50ZWVkIGluXG4gICAgICAgICAgICAgICAgLy8gVHVyYm9wYWNrLCBhbmQgbmVlZHMgdG8gYmUgZml4ZWQuXG4gICAgICAgICAgICAgICAgd29ya2VyRW50cnkgPSBPYmplY3QudmFsdWVzKHdvcmtlcnMpLmF0KDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF3b3JrZXJFbnRyeSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IG1vZHVsZUlkLCBhc3luYyB9ID0gd29ya2VyRW50cnk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlkOiBtb2R1bGVJZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBpZCxcbiAgICAgICAgICAgICAgICBjaHVua3M6IFtdLFxuICAgICAgICAgICAgICAgIGFzeW5jXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBzZWxlY3RXb3JrZXJGb3JGb3J3YXJkaW5nKGFjdGlvbklkLCBwYWdlTmFtZSwgc2VydmVyQWN0aW9uc01hbmlmZXN0KSB7XG4gICAgdmFyIF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfX2FjdGlvbklkO1xuICAgIGNvbnN0IHdvcmtlcnMgPSAoX3NlcnZlckFjdGlvbnNNYW5pZmVzdF9fYWN0aW9uSWQgPSBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RbcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScgPyAnZWRnZScgOiAnbm9kZSddW2FjdGlvbklkXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfX2FjdGlvbklkLndvcmtlcnM7XG4gICAgY29uc3Qgd29ya2VyTmFtZSA9IG5vcm1hbGl6ZVdvcmtlclBhZ2VOYW1lKHBhZ2VOYW1lKTtcbiAgICAvLyBubyB3b3JrZXJzLCBub3RoaW5nIHRvIGZvcndhcmQgdG9cbiAgICBpZiAoIXdvcmtlcnMpIHJldHVybjtcbiAgICAvLyBpZiB0aGVyZSBpcyBhIHdvcmtlciBmb3IgdGhpcyBwYWdlLCBubyBuZWVkIHRvIGZvcndhcmQgaXQuXG4gICAgaWYgKHdvcmtlcnNbd29ya2VyTmFtZV0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBvdGhlcndpc2UsIGdyYWIgdGhlIGZpcnN0IHdvcmtlciB0aGF0IGhhcyBhIGhhbmRsZXIgZm9yIHRoaXMgYWN0aW9uIGlkXG4gICAgcmV0dXJuIGRlbm9ybWFsaXplV29ya2VyUGFnZU5hbWUoT2JqZWN0LmtleXMod29ya2VycylbMF0pO1xufVxuLyoqXG4gKiBUaGUgZmxpZ2h0IGVudHJ5IGxvYWRlciBrZXlzIGFjdGlvbnMgYnkgYnVuZGxlUGF0aC5cbiAqIGJ1bmRsZVBhdGggY29ycmVzcG9uZHMgd2l0aCB0aGUgcmVsYXRpdmUgcGF0aCAoaW5jbHVkaW5nICdhcHAnKSB0byB0aGUgcGFnZSBlbnRyeXBvaW50LlxuICovIGZ1bmN0aW9uIG5vcm1hbGl6ZVdvcmtlclBhZ2VOYW1lKHBhZ2VOYW1lKSB7XG4gICAgaWYgKCgwLCBfcGF0aGhhc3ByZWZpeC5wYXRoSGFzUHJlZml4KShwYWdlTmFtZSwgJ2FwcCcpKSB7XG4gICAgICAgIHJldHVybiBwYWdlTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuICdhcHAnICsgcGFnZU5hbWU7XG59XG4vKipcbiAqIENvbnZlcnRzIGEgYnVuZGxlUGF0aCAocmVsYXRpdmUgcGF0aCB0byB0aGUgZW50cnlwb2ludCkgdG8gYSByb3V0YWJsZSBwYWdlIG5hbWVcbiAqLyBmdW5jdGlvbiBkZW5vcm1hbGl6ZVdvcmtlclBhZ2VOYW1lKGJ1bmRsZVBhdGgpIHtcbiAgICByZXR1cm4gKDAsIF9hcHBwYXRocy5ub3JtYWxpemVBcHBQYXRoKSgoMCwgX3JlbW92ZXBhdGhwcmVmaXgucmVtb3ZlUGF0aFByZWZpeCkoYnVuZGxlUGF0aCwgJ2FwcCcpKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWN0aW9uLXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/action-utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/collect-segment-data.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"collectSegmentData\", ({\n enumerable: true,\n get: function() {\n return collectSegmentData;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _client = __webpack_require__(/*! react-server-dom-webpack/client */ \"(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js\");\nconst _static = __webpack_require__(/*! react-server-dom-webpack/static */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\");\nconst _nodewebstreamshelper = __webpack_require__(/*! ../stream-utils/node-web-streams-helper */ \"(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _segmentvalueencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/segment-value-encoding */ \"(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\");\nconst _createerrorhandler = __webpack_require__(/*! ./create-error-handler */ \"(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js\");\nconst filterStackFrame = true ? (__webpack_require__(/*! ../lib/source-maps */ \"(rsc)/./node_modules/next/dist/server/lib/source-maps.js\").filterStackFrameDEV) : 0;\nconst findSourceMapURL = true ? (__webpack_require__(/*! ../lib/source-maps */ \"(rsc)/./node_modules/next/dist/server/lib/source-maps.js\").findSourceMapURLDEV) : 0;\nfunction onSegmentPrerenderError(error) {\n const digest = (0, _createerrorhandler.getDigestForWellKnownError)(error);\n if (digest) {\n return digest;\n }\n// We don't need to log the errors because we would have already done that\n// when generating the original Flight stream for the whole page.\n}\nasync function collectSegmentData(isClientParamParsingEnabled, fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest) {\n // Traverse the router tree and generate a prefetch response for each segment.\n // A mutable map to collect the results as we traverse the route tree.\n const resultMap = new Map();\n // Before we start, warm up the module cache by decoding the page data once.\n // Then we can assume that any remaining async tasks that occur the next time\n // are due to hanging promises caused by dynamic data access. Note we only\n // have to do this once per page, not per individual segment.\n //\n try {\n await (0, _client.createFromReadableStream)((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer), {\n findSourceMapURL,\n serverConsumerManifest\n });\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n } catch {}\n // Create an abort controller that we'll use to stop the stream.\n const abortController = new AbortController();\n const onCompletedProcessingRouteTree = async ()=>{\n // Since all we're doing is decoding and re-encoding a cached prerender, if\n // serializing the stream takes longer than a microtask, it must because of\n // hanging promises caused by dynamic data.\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n abortController.abort();\n };\n // Generate a stream for the route tree prefetch. While we're walking the\n // tree, we'll also spawn additional tasks to generate the segment prefetches.\n // The promises for these tasks are pushed to a mutable array that we will\n // await once the route tree is fully rendered.\n const segmentTasks = [];\n const { prelude: treeStream } = await (0, _static.unstable_prerender)(// RootTreePrefetch is not a valid return type for a React component, but\n // we need to use a component so that when we decode the original stream\n // inside of it, the side effects are transferred to the new stream.\n // @ts-expect-error\n /*#__PURE__*/ (0, _jsxruntime.jsx)(PrefetchTreeData, {\n isClientParamParsingEnabled: isClientParamParsingEnabled,\n fullPageDataBuffer: fullPageDataBuffer,\n serverConsumerManifest: serverConsumerManifest,\n clientModules: clientModules,\n staleTime: staleTime,\n segmentTasks: segmentTasks,\n onCompletedProcessingRouteTree: onCompletedProcessingRouteTree\n }), clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError: onSegmentPrerenderError\n });\n // Write the route tree to a special `/_tree` segment.\n const treeBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(treeStream);\n resultMap.set('/_tree', treeBuffer);\n // Now that we've finished rendering the route tree, all the segment tasks\n // should have been spawned. Await them in parallel and write the segment\n // prefetches to the result map.\n for (const [segmentPath, buffer] of (await Promise.all(segmentTasks))){\n resultMap.set(segmentPath, buffer);\n }\n return resultMap;\n}\nasync function PrefetchTreeData({ isClientParamParsingEnabled, fullPageDataBuffer, serverConsumerManifest, clientModules, staleTime, segmentTasks, onCompletedProcessingRouteTree }) {\n // We're currently rendering a Flight response for the route tree prefetch.\n // Inside this component, decode the Flight stream for the whole page. This is\n // a hack to transfer the side effects from the original Flight stream (e.g.\n // Float preloads) onto the Flight stream for the tree prefetch.\n // TODO: React needs a better way to do this. Needed for Server Actions, too.\n const initialRSCPayload = await (0, _client.createFromReadableStream)(createUnclosingPrefetchStream((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer)), {\n findSourceMapURL,\n serverConsumerManifest\n });\n const buildId = initialRSCPayload.b;\n // FlightDataPath is an unsound type, hence the additional checks.\n const flightDataPaths = initialRSCPayload.f;\n if (flightDataPaths.length !== 1 && flightDataPaths[0].length !== 3) {\n console.error('Internal Next.js error: InitialRSCPayload does not match the expected ' + 'shape for a prerendered page during segment prefetch generation.');\n return null;\n }\n const flightRouterState = flightDataPaths[0][0];\n const seedData = flightDataPaths[0][1];\n const head = flightDataPaths[0][2];\n // Compute the route metadata tree by traversing the FlightRouterState. As we\n // walk the tree, we will also spawn a task to produce a prefetch response for\n // each segment.\n const tree = collectSegmentDataImpl(isClientParamParsingEnabled, flightRouterState, buildId, seedData, clientModules, _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY, segmentTasks);\n const isHeadPartial = await isPartialRSCData(head, clientModules);\n // Notify the abort controller that we're done processing the route tree.\n // Anything async that happens after this point must be due to hanging\n // promises in the original stream.\n onCompletedProcessingRouteTree();\n // Render the route tree to a special `/_tree` segment.\n const treePrefetch = {\n buildId,\n tree,\n head,\n isHeadPartial,\n staleTime\n };\n return treePrefetch;\n}\nfunction collectSegmentDataImpl(isClientParamParsingEnabled, route, buildId, seedData, clientModules, requestKey, segmentTasks) {\n // Metadata about the segment. Sent as part of the tree prefetch. Null if\n // there are no children.\n let slotMetadata = null;\n const children = route[1];\n const seedDataChildren = seedData !== null ? seedData[2] : null;\n for(const parallelRouteKey in children){\n const childRoute = children[parallelRouteKey];\n const childSegment = childRoute[0];\n const childSeedData = seedDataChildren !== null ? seedDataChildren[parallelRouteKey] : null;\n const childRequestKey = (0, _segmentvalueencoding.appendSegmentRequestKeyPart)(requestKey, parallelRouteKey, (0, _segmentvalueencoding.createSegmentRequestKeyPart)(childSegment));\n const childTree = collectSegmentDataImpl(isClientParamParsingEnabled, childRoute, buildId, childSeedData, clientModules, childRequestKey, segmentTasks);\n if (slotMetadata === null) {\n slotMetadata = {};\n }\n slotMetadata[parallelRouteKey] = childTree;\n }\n if (seedData !== null) {\n // Spawn a task to write the segment data to a new Flight stream.\n segmentTasks.push(// Since we're already in the middle of a render, wait until after the\n // current task to escape the current rendering context.\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>renderSegmentPrefetch(buildId, seedData, requestKey, clientModules)));\n } else {\n // This segment does not have any seed data. Skip generating a prefetch\n // response for it. We'll still include it in the route tree, though.\n // TODO: We should encode in the route tree whether a segment is missing\n // so we don't attempt to fetch it for no reason. As of now this shouldn't\n // ever happen in practice, though.\n }\n const segment = route[0];\n let name;\n let paramType = null;\n let paramKey = null;\n if (typeof segment === 'string') {\n name = segment;\n paramKey = segment;\n paramType = null;\n } else {\n name = segment[0];\n paramKey = segment[1];\n paramType = segment[2];\n }\n // Metadata about the segment. Sent to the client as part of the\n // tree prefetch.\n return {\n name,\n paramType,\n // This value is ommitted from the prefetch response when clientParamParsing\n // is enabled. The flag only exists while we're testing the feature, in\n // case there's a bug and we need to revert.\n // TODO: Remove once clientParamParsing is enabled everywhere.\n paramKey: isClientParamParsingEnabled ? null : paramKey,\n slots: slotMetadata,\n isRootLayout: route[4] === true\n };\n}\nasync function renderSegmentPrefetch(buildId, seedData, requestKey, clientModules) {\n // Render the segment data to a stream.\n // In the future, this is where we can include additional metadata, like the\n // stale time and cache tags.\n const rsc = seedData[1];\n const loading = seedData[3];\n const segmentPrefetch = {\n buildId,\n rsc,\n loading,\n isPartial: await isPartialRSCData(rsc, clientModules)\n };\n // Since all we're doing is decoding and re-encoding a cached prerender, if\n // it takes longer than a microtask, it must because of hanging promises\n // caused by dynamic data. Abort the stream at the end of the current task.\n const abortController = new AbortController();\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>abortController.abort());\n const { prelude: segmentStream } = await (0, _static.unstable_prerender)(segmentPrefetch, clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError: onSegmentPrerenderError\n });\n const segmentBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(segmentStream);\n if (requestKey === _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY) {\n return [\n '/_index',\n segmentBuffer\n ];\n } else {\n return [\n requestKey,\n segmentBuffer\n ];\n }\n}\nasync function isPartialRSCData(rsc, clientModules) {\n // We can determine if a segment contains only partial data if it takes longer\n // than a task to encode, because dynamic data is encoded as an infinite\n // promise. We must do this in a separate Flight prerender from the one that\n // actually generates the prefetch stream because we need to include\n // `isPartial` in the stream itself.\n let isPartial = false;\n const abortController = new AbortController();\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>{\n // If we haven't yet finished the outer task, then it must be because we\n // accessed dynamic data.\n isPartial = true;\n abortController.abort();\n });\n await (0, _static.unstable_prerender)(rsc, clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError () {},\n onPostpone () {\n // If something postponed, i.e. when Cache Components is not enabled, we can\n // infer that the RSC data is partial.\n isPartial = true;\n }\n });\n return isPartial;\n}\nfunction createUnclosingPrefetchStream(originalFlightStream) {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader();\n return new ReadableStream({\n async pull (controller) {\n while(true){\n const { done, value } = await reader.read();\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value);\n continue;\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return;\n }\n }\n });\n}\n\n//# sourceMappingURL=collect-segment-data.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NvbGxlY3Qtc2VnbWVudC1kYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysc0RBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLGdCQUFnQixtQkFBTyxDQUFDLHdIQUFpQztBQUN6RCxnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQsOEJBQThCLG1CQUFPLENBQUMsOEhBQXlDO0FBQy9FLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCw4QkFBOEIsbUJBQU8sQ0FBQyxnSkFBdUQ7QUFDN0YsNEJBQTRCLG1CQUFPLENBQUMsd0dBQXdCO0FBQzVELHlCQUF5QixLQUFxQyxHQUFHLCtIQUFpRCxHQUFHLENBQVM7QUFDOUgseUJBQXlCLEtBQXFDLEdBQUcsK0hBQWlELEdBQUcsQ0FBUztBQUM5SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksc0JBQXNCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsaUpBQWlKO0FBQ25MO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkseUJBQXlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NvbGxlY3Qtc2VnbWVudC1kYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY29sbGVjdFNlZ21lbnREYXRhXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0U2VnbWVudERhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9jbGllbnQgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiKTtcbmNvbnN0IF9zdGF0aWMgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3N0YXRpY1wiKTtcbmNvbnN0IF9ub2Rld2Vic3RyZWFtc2hlbHBlciA9IHJlcXVpcmUoXCIuLi9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXJcIik7XG5jb25zdCBfc2NoZWR1bGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9zY2hlZHVsZXJcIik7XG5jb25zdCBfc2VnbWVudHZhbHVlZW5jb2RpbmcgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL3NlZ21lbnQtdmFsdWUtZW5jb2RpbmdcIik7XG5jb25zdCBfY3JlYXRlZXJyb3JoYW5kbGVyID0gcmVxdWlyZShcIi4vY3JlYXRlLWVycm9yLWhhbmRsZXJcIik7XG5jb25zdCBmaWx0ZXJTdGFja0ZyYW1lID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHJlcXVpcmUoJy4uL2xpYi9zb3VyY2UtbWFwcycpLmZpbHRlclN0YWNrRnJhbWVERVYgOiB1bmRlZmluZWQ7XG5jb25zdCBmaW5kU291cmNlTWFwVVJMID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHJlcXVpcmUoJy4uL2xpYi9zb3VyY2UtbWFwcycpLmZpbmRTb3VyY2VNYXBVUkxERVYgOiB1bmRlZmluZWQ7XG5mdW5jdGlvbiBvblNlZ21lbnRQcmVyZW5kZXJFcnJvcihlcnJvcikge1xuICAgIGNvbnN0IGRpZ2VzdCA9ICgwLCBfY3JlYXRlZXJyb3JoYW5kbGVyLmdldERpZ2VzdEZvcldlbGxLbm93bkVycm9yKShlcnJvcik7XG4gICAgaWYgKGRpZ2VzdCkge1xuICAgICAgICByZXR1cm4gZGlnZXN0O1xuICAgIH1cbi8vIFdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvcnMgYmVjYXVzZSB3ZSB3b3VsZCBoYXZlIGFscmVhZHkgZG9uZSB0aGF0XG4vLyB3aGVuIGdlbmVyYXRpbmcgdGhlIG9yaWdpbmFsIEZsaWdodCBzdHJlYW0gZm9yIHRoZSB3aG9sZSBwYWdlLlxufVxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdFNlZ21lbnREYXRhKGlzQ2xpZW50UGFyYW1QYXJzaW5nRW5hYmxlZCwgZnVsbFBhZ2VEYXRhQnVmZmVyLCBzdGFsZVRpbWUsIGNsaWVudE1vZHVsZXMsIHNlcnZlckNvbnN1bWVyTWFuaWZlc3QpIHtcbiAgICAvLyBUcmF2ZXJzZSB0aGUgcm91dGVyIHRyZWUgYW5kIGdlbmVyYXRlIGEgcHJlZmV0Y2ggcmVzcG9uc2UgZm9yIGVhY2ggc2VnbWVudC5cbiAgICAvLyBBIG11dGFibGUgbWFwIHRvIGNvbGxlY3QgdGhlIHJlc3VsdHMgYXMgd2UgdHJhdmVyc2UgdGhlIHJvdXRlIHRyZWUuXG4gICAgY29uc3QgcmVzdWx0TWFwID0gbmV3IE1hcCgpO1xuICAgIC8vIEJlZm9yZSB3ZSBzdGFydCwgd2FybSB1cCB0aGUgbW9kdWxlIGNhY2hlIGJ5IGRlY29kaW5nIHRoZSBwYWdlIGRhdGEgb25jZS5cbiAgICAvLyBUaGVuIHdlIGNhbiBhc3N1bWUgdGhhdCBhbnkgcmVtYWluaW5nIGFzeW5jIHRhc2tzIHRoYXQgb2NjdXIgdGhlIG5leHQgdGltZVxuICAgIC8vIGFyZSBkdWUgdG8gaGFuZ2luZyBwcm9taXNlcyBjYXVzZWQgYnkgZHluYW1pYyBkYXRhIGFjY2Vzcy4gTm90ZSB3ZSBvbmx5XG4gICAgLy8gaGF2ZSB0byBkbyB0aGlzIG9uY2UgcGVyIHBhZ2UsIG5vdCBwZXIgaW5kaXZpZHVhbCBzZWdtZW50LlxuICAgIC8vXG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgKDAsIF9jbGllbnQuY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtKSgoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21CdWZmZXIpKGZ1bGxQYWdlRGF0YUJ1ZmZlciksIHtcbiAgICAgICAgICAgIGZpbmRTb3VyY2VNYXBVUkwsXG4gICAgICAgICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0XG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci53YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaykoKTtcbiAgICB9IGNhdGNoICB7fVxuICAgIC8vIENyZWF0ZSBhbiBhYm9ydCBjb250cm9sbGVyIHRoYXQgd2UnbGwgdXNlIHRvIHN0b3AgdGhlIHN0cmVhbS5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgY29uc3Qgb25Db21wbGV0ZWRQcm9jZXNzaW5nUm91dGVUcmVlID0gYXN5bmMgKCk9PntcbiAgICAgICAgLy8gU2luY2UgYWxsIHdlJ3JlIGRvaW5nIGlzIGRlY29kaW5nIGFuZCByZS1lbmNvZGluZyBhIGNhY2hlZCBwcmVyZW5kZXIsIGlmXG4gICAgICAgIC8vIHNlcmlhbGl6aW5nIHRoZSBzdHJlYW0gdGFrZXMgbG9uZ2VyIHRoYW4gYSBtaWNyb3Rhc2ssIGl0IG11c3QgYmVjYXVzZSBvZlxuICAgICAgICAvLyBoYW5naW5nIHByb21pc2VzIGNhdXNlZCBieSBkeW5hbWljIGRhdGEuXG4gICAgICAgIGF3YWl0ICgwLCBfc2NoZWR1bGVyLndhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKSgpO1xuICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB9O1xuICAgIC8vIEdlbmVyYXRlIGEgc3RyZWFtIGZvciB0aGUgcm91dGUgdHJlZSBwcmVmZXRjaC4gV2hpbGUgd2UncmUgd2Fsa2luZyB0aGVcbiAgICAvLyB0cmVlLCB3ZSdsbCBhbHNvIHNwYXduIGFkZGl0aW9uYWwgdGFza3MgdG8gZ2VuZXJhdGUgdGhlIHNlZ21lbnQgcHJlZmV0Y2hlcy5cbiAgICAvLyBUaGUgcHJvbWlzZXMgZm9yIHRoZXNlIHRhc2tzIGFyZSBwdXNoZWQgdG8gYSBtdXRhYmxlIGFycmF5IHRoYXQgd2Ugd2lsbFxuICAgIC8vIGF3YWl0IG9uY2UgdGhlIHJvdXRlIHRyZWUgaXMgZnVsbHkgcmVuZGVyZWQuXG4gICAgY29uc3Qgc2VnbWVudFRhc2tzID0gW107XG4gICAgY29uc3QgeyBwcmVsdWRlOiB0cmVlU3RyZWFtIH0gPSBhd2FpdCAoMCwgX3N0YXRpYy51bnN0YWJsZV9wcmVyZW5kZXIpKC8vIFJvb3RUcmVlUHJlZmV0Y2ggaXMgbm90IGEgdmFsaWQgcmV0dXJuIHR5cGUgZm9yIGEgUmVhY3QgY29tcG9uZW50LCBidXRcbiAgICAvLyB3ZSBuZWVkIHRvIHVzZSBhIGNvbXBvbmVudCBzbyB0aGF0IHdoZW4gd2UgZGVjb2RlIHRoZSBvcmlnaW5hbCBzdHJlYW1cbiAgICAvLyBpbnNpZGUgb2YgaXQsIHRoZSBzaWRlIGVmZmVjdHMgYXJlIHRyYW5zZmVycmVkIHRvIHRoZSBuZXcgc3RyZWFtLlxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFByZWZldGNoVHJlZURhdGEsIHtcbiAgICAgICAgaXNDbGllbnRQYXJhbVBhcnNpbmdFbmFibGVkOiBpc0NsaWVudFBhcmFtUGFyc2luZ0VuYWJsZWQsXG4gICAgICAgIGZ1bGxQYWdlRGF0YUJ1ZmZlcjogZnVsbFBhZ2VEYXRhQnVmZmVyLFxuICAgICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0OiBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0LFxuICAgICAgICBjbGllbnRNb2R1bGVzOiBjbGllbnRNb2R1bGVzLFxuICAgICAgICBzdGFsZVRpbWU6IHN0YWxlVGltZSxcbiAgICAgICAgc2VnbWVudFRhc2tzOiBzZWdtZW50VGFza3MsXG4gICAgICAgIG9uQ29tcGxldGVkUHJvY2Vzc2luZ1JvdXRlVHJlZTogb25Db21wbGV0ZWRQcm9jZXNzaW5nUm91dGVUcmVlXG4gICAgfSksIGNsaWVudE1vZHVsZXMsIHtcbiAgICAgICAgZmlsdGVyU3RhY2tGcmFtZSxcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBvbkVycm9yOiBvblNlZ21lbnRQcmVyZW5kZXJFcnJvclxuICAgIH0pO1xuICAgIC8vIFdyaXRlIHRoZSByb3V0ZSB0cmVlIHRvIGEgc3BlY2lhbCBgL190cmVlYCBzZWdtZW50LlxuICAgIGNvbnN0IHRyZWVCdWZmZXIgPSBhd2FpdCAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvQnVmZmVyKSh0cmVlU3RyZWFtKTtcbiAgICByZXN1bHRNYXAuc2V0KCcvX3RyZWUnLCB0cmVlQnVmZmVyKTtcbiAgICAvLyBOb3cgdGhhdCB3ZSd2ZSBmaW5pc2hlZCByZW5kZXJpbmcgdGhlIHJvdXRlIHRyZWUsIGFsbCB0aGUgc2VnbWVudCB0YXNrc1xuICAgIC8vIHNob3VsZCBoYXZlIGJlZW4gc3Bhd25lZC4gQXdhaXQgdGhlbSBpbiBwYXJhbGxlbCBhbmQgd3JpdGUgdGhlIHNlZ21lbnRcbiAgICAvLyBwcmVmZXRjaGVzIHRvIHRoZSByZXN1bHQgbWFwLlxuICAgIGZvciAoY29uc3QgW3NlZ21lbnRQYXRoLCBidWZmZXJdIG9mIChhd2FpdCBQcm9taXNlLmFsbChzZWdtZW50VGFza3MpKSl7XG4gICAgICAgIHJlc3VsdE1hcC5zZXQoc2VnbWVudFBhdGgsIGJ1ZmZlcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRNYXA7XG59XG5hc3luYyBmdW5jdGlvbiBQcmVmZXRjaFRyZWVEYXRhKHsgaXNDbGllbnRQYXJhbVBhcnNpbmdFbmFibGVkLCBmdWxsUGFnZURhdGFCdWZmZXIsIHNlcnZlckNvbnN1bWVyTWFuaWZlc3QsIGNsaWVudE1vZHVsZXMsIHN0YWxlVGltZSwgc2VnbWVudFRhc2tzLCBvbkNvbXBsZXRlZFByb2Nlc3NpbmdSb3V0ZVRyZWUgfSkge1xuICAgIC8vIFdlJ3JlIGN1cnJlbnRseSByZW5kZXJpbmcgYSBGbGlnaHQgcmVzcG9uc2UgZm9yIHRoZSByb3V0ZSB0cmVlIHByZWZldGNoLlxuICAgIC8vIEluc2lkZSB0aGlzIGNvbXBvbmVudCwgZGVjb2RlIHRoZSBGbGlnaHQgc3RyZWFtIGZvciB0aGUgd2hvbGUgcGFnZS4gVGhpcyBpc1xuICAgIC8vIGEgaGFjayB0byB0cmFuc2ZlciB0aGUgc2lkZSBlZmZlY3RzIGZyb20gdGhlIG9yaWdpbmFsIEZsaWdodCBzdHJlYW0gKGUuZy5cbiAgICAvLyBGbG9hdCBwcmVsb2Fkcykgb250byB0aGUgRmxpZ2h0IHN0cmVhbSBmb3IgdGhlIHRyZWUgcHJlZmV0Y2guXG4gICAgLy8gVE9ETzogUmVhY3QgbmVlZHMgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMuIE5lZWRlZCBmb3IgU2VydmVyIEFjdGlvbnMsIHRvby5cbiAgICBjb25zdCBpbml0aWFsUlNDUGF5bG9hZCA9IGF3YWl0ICgwLCBfY2xpZW50LmNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSkoY3JlYXRlVW5jbG9zaW5nUHJlZmV0Y2hTdHJlYW0oKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKShmdWxsUGFnZURhdGFCdWZmZXIpKSwge1xuICAgICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0XG4gICAgfSk7XG4gICAgY29uc3QgYnVpbGRJZCA9IGluaXRpYWxSU0NQYXlsb2FkLmI7XG4gICAgLy8gRmxpZ2h0RGF0YVBhdGggaXMgYW4gdW5zb3VuZCB0eXBlLCBoZW5jZSB0aGUgYWRkaXRpb25hbCBjaGVja3MuXG4gICAgY29uc3QgZmxpZ2h0RGF0YVBhdGhzID0gaW5pdGlhbFJTQ1BheWxvYWQuZjtcbiAgICBpZiAoZmxpZ2h0RGF0YVBhdGhzLmxlbmd0aCAhPT0gMSAmJiBmbGlnaHREYXRhUGF0aHNbMF0ubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludGVybmFsIE5leHQuanMgZXJyb3I6IEluaXRpYWxSU0NQYXlsb2FkIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCAnICsgJ3NoYXBlIGZvciBhIHByZXJlbmRlcmVkIHBhZ2UgZHVyaW5nIHNlZ21lbnQgcHJlZmV0Y2ggZ2VuZXJhdGlvbi4nKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGZsaWdodFJvdXRlclN0YXRlID0gZmxpZ2h0RGF0YVBhdGhzWzBdWzBdO1xuICAgIGNvbnN0IHNlZWREYXRhID0gZmxpZ2h0RGF0YVBhdGhzWzBdWzFdO1xuICAgIGNvbnN0IGhlYWQgPSBmbGlnaHREYXRhUGF0aHNbMF1bMl07XG4gICAgLy8gQ29tcHV0ZSB0aGUgcm91dGUgbWV0YWRhdGEgdHJlZSBieSB0cmF2ZXJzaW5nIHRoZSBGbGlnaHRSb3V0ZXJTdGF0ZS4gQXMgd2VcbiAgICAvLyB3YWxrIHRoZSB0cmVlLCB3ZSB3aWxsIGFsc28gc3Bhd24gYSB0YXNrIHRvIHByb2R1Y2UgYSBwcmVmZXRjaCByZXNwb25zZSBmb3JcbiAgICAvLyBlYWNoIHNlZ21lbnQuXG4gICAgY29uc3QgdHJlZSA9IGNvbGxlY3RTZWdtZW50RGF0YUltcGwoaXNDbGllbnRQYXJhbVBhcnNpbmdFbmFibGVkLCBmbGlnaHRSb3V0ZXJTdGF0ZSwgYnVpbGRJZCwgc2VlZERhdGEsIGNsaWVudE1vZHVsZXMsIF9zZWdtZW50dmFsdWVlbmNvZGluZy5ST09UX1NFR01FTlRfUkVRVUVTVF9LRVksIHNlZ21lbnRUYXNrcyk7XG4gICAgY29uc3QgaXNIZWFkUGFydGlhbCA9IGF3YWl0IGlzUGFydGlhbFJTQ0RhdGEoaGVhZCwgY2xpZW50TW9kdWxlcyk7XG4gICAgLy8gTm90aWZ5IHRoZSBhYm9ydCBjb250cm9sbGVyIHRoYXQgd2UncmUgZG9uZSBwcm9jZXNzaW5nIHRoZSByb3V0ZSB0cmVlLlxuICAgIC8vIEFueXRoaW5nIGFzeW5jIHRoYXQgaGFwcGVucyBhZnRlciB0aGlzIHBvaW50IG11c3QgYmUgZHVlIHRvIGhhbmdpbmdcbiAgICAvLyBwcm9taXNlcyBpbiB0aGUgb3JpZ2luYWwgc3RyZWFtLlxuICAgIG9uQ29tcGxldGVkUHJvY2Vzc2luZ1JvdXRlVHJlZSgpO1xuICAgIC8vIFJlbmRlciB0aGUgcm91dGUgdHJlZSB0byBhIHNwZWNpYWwgYC9fdHJlZWAgc2VnbWVudC5cbiAgICBjb25zdCB0cmVlUHJlZmV0Y2ggPSB7XG4gICAgICAgIGJ1aWxkSWQsXG4gICAgICAgIHRyZWUsXG4gICAgICAgIGhlYWQsXG4gICAgICAgIGlzSGVhZFBhcnRpYWwsXG4gICAgICAgIHN0YWxlVGltZVxuICAgIH07XG4gICAgcmV0dXJuIHRyZWVQcmVmZXRjaDtcbn1cbmZ1bmN0aW9uIGNvbGxlY3RTZWdtZW50RGF0YUltcGwoaXNDbGllbnRQYXJhbVBhcnNpbmdFbmFibGVkLCByb3V0ZSwgYnVpbGRJZCwgc2VlZERhdGEsIGNsaWVudE1vZHVsZXMsIHJlcXVlc3RLZXksIHNlZ21lbnRUYXNrcykge1xuICAgIC8vIE1ldGFkYXRhIGFib3V0IHRoZSBzZWdtZW50LiBTZW50IGFzIHBhcnQgb2YgdGhlIHRyZWUgcHJlZmV0Y2guIE51bGwgaWZcbiAgICAvLyB0aGVyZSBhcmUgbm8gY2hpbGRyZW4uXG4gICAgbGV0IHNsb3RNZXRhZGF0YSA9IG51bGw7XG4gICAgY29uc3QgY2hpbGRyZW4gPSByb3V0ZVsxXTtcbiAgICBjb25zdCBzZWVkRGF0YUNoaWxkcmVuID0gc2VlZERhdGEgIT09IG51bGwgPyBzZWVkRGF0YVsyXSA6IG51bGw7XG4gICAgZm9yKGNvbnN0IHBhcmFsbGVsUm91dGVLZXkgaW4gY2hpbGRyZW4pe1xuICAgICAgICBjb25zdCBjaGlsZFJvdXRlID0gY2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV07XG4gICAgICAgIGNvbnN0IGNoaWxkU2VnbWVudCA9IGNoaWxkUm91dGVbMF07XG4gICAgICAgIGNvbnN0IGNoaWxkU2VlZERhdGEgPSBzZWVkRGF0YUNoaWxkcmVuICE9PSBudWxsID8gc2VlZERhdGFDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XSA6IG51bGw7XG4gICAgICAgIGNvbnN0IGNoaWxkUmVxdWVzdEtleSA9ICgwLCBfc2VnbWVudHZhbHVlZW5jb2RpbmcuYXBwZW5kU2VnbWVudFJlcXVlc3RLZXlQYXJ0KShyZXF1ZXN0S2V5LCBwYXJhbGxlbFJvdXRlS2V5LCAoMCwgX3NlZ21lbnR2YWx1ZWVuY29kaW5nLmNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydCkoY2hpbGRTZWdtZW50KSk7XG4gICAgICAgIGNvbnN0IGNoaWxkVHJlZSA9IGNvbGxlY3RTZWdtZW50RGF0YUltcGwoaXNDbGllbnRQYXJhbVBhcnNpbmdFbmFibGVkLCBjaGlsZFJvdXRlLCBidWlsZElkLCBjaGlsZFNlZWREYXRhLCBjbGllbnRNb2R1bGVzLCBjaGlsZFJlcXVlc3RLZXksIHNlZ21lbnRUYXNrcyk7XG4gICAgICAgIGlmIChzbG90TWV0YWRhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHNsb3RNZXRhZGF0YSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHNsb3RNZXRhZGF0YVtwYXJhbGxlbFJvdXRlS2V5XSA9IGNoaWxkVHJlZTtcbiAgICB9XG4gICAgaWYgKHNlZWREYXRhICE9PSBudWxsKSB7XG4gICAgICAgIC8vIFNwYXduIGEgdGFzayB0byB3cml0ZSB0aGUgc2VnbWVudCBkYXRhIHRvIGEgbmV3IEZsaWdodCBzdHJlYW0uXG4gICAgICAgIHNlZ21lbnRUYXNrcy5wdXNoKC8vIFNpbmNlIHdlJ3JlIGFscmVhZHkgaW4gdGhlIG1pZGRsZSBvZiBhIHJlbmRlciwgd2FpdCB1bnRpbCBhZnRlciB0aGVcbiAgICAgICAgLy8gY3VycmVudCB0YXNrIHRvIGVzY2FwZSB0aGUgY3VycmVudCByZW5kZXJpbmcgY29udGV4dC5cbiAgICAgICAgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCkudGhlbigoKT0+cmVuZGVyU2VnbWVudFByZWZldGNoKGJ1aWxkSWQsIHNlZWREYXRhLCByZXF1ZXN0S2V5LCBjbGllbnRNb2R1bGVzKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBzZWdtZW50IGRvZXMgbm90IGhhdmUgYW55IHNlZWQgZGF0YS4gU2tpcCBnZW5lcmF0aW5nIGEgcHJlZmV0Y2hcbiAgICAvLyByZXNwb25zZSBmb3IgaXQuIFdlJ2xsIHN0aWxsIGluY2x1ZGUgaXQgaW4gdGhlIHJvdXRlIHRyZWUsIHRob3VnaC5cbiAgICAvLyBUT0RPOiBXZSBzaG91bGQgZW5jb2RlIGluIHRoZSByb3V0ZSB0cmVlIHdoZXRoZXIgYSBzZWdtZW50IGlzIG1pc3NpbmdcbiAgICAvLyBzbyB3ZSBkb24ndCBhdHRlbXB0IHRvIGZldGNoIGl0IGZvciBubyByZWFzb24uIEFzIG9mIG5vdyB0aGlzIHNob3VsZG4ndFxuICAgIC8vIGV2ZXIgaGFwcGVuIGluIHByYWN0aWNlLCB0aG91Z2guXG4gICAgfVxuICAgIGNvbnN0IHNlZ21lbnQgPSByb3V0ZVswXTtcbiAgICBsZXQgbmFtZTtcbiAgICBsZXQgcGFyYW1UeXBlID0gbnVsbDtcbiAgICBsZXQgcGFyYW1LZXkgPSBudWxsO1xuICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgbmFtZSA9IHNlZ21lbnQ7XG4gICAgICAgIHBhcmFtS2V5ID0gc2VnbWVudDtcbiAgICAgICAgcGFyYW1UeXBlID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lID0gc2VnbWVudFswXTtcbiAgICAgICAgcGFyYW1LZXkgPSBzZWdtZW50WzFdO1xuICAgICAgICBwYXJhbVR5cGUgPSBzZWdtZW50WzJdO1xuICAgIH1cbiAgICAvLyBNZXRhZGF0YSBhYm91dCB0aGUgc2VnbWVudC4gU2VudCB0byB0aGUgY2xpZW50IGFzIHBhcnQgb2YgdGhlXG4gICAgLy8gdHJlZSBwcmVmZXRjaC5cbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBwYXJhbVR5cGUsXG4gICAgICAgIC8vIFRoaXMgdmFsdWUgaXMgb21taXR0ZWQgZnJvbSB0aGUgcHJlZmV0Y2ggcmVzcG9uc2Ugd2hlbiBjbGllbnRQYXJhbVBhcnNpbmdcbiAgICAgICAgLy8gaXMgZW5hYmxlZC4gVGhlIGZsYWcgb25seSBleGlzdHMgd2hpbGUgd2UncmUgdGVzdGluZyB0aGUgZmVhdHVyZSwgaW5cbiAgICAgICAgLy8gY2FzZSB0aGVyZSdzIGEgYnVnIGFuZCB3ZSBuZWVkIHRvIHJldmVydC5cbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIG9uY2UgY2xpZW50UGFyYW1QYXJzaW5nIGlzIGVuYWJsZWQgZXZlcnl3aGVyZS5cbiAgICAgICAgcGFyYW1LZXk6IGlzQ2xpZW50UGFyYW1QYXJzaW5nRW5hYmxlZCA/IG51bGwgOiBwYXJhbUtleSxcbiAgICAgICAgc2xvdHM6IHNsb3RNZXRhZGF0YSxcbiAgICAgICAgaXNSb290TGF5b3V0OiByb3V0ZVs0XSA9PT0gdHJ1ZVxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJTZWdtZW50UHJlZmV0Y2goYnVpbGRJZCwgc2VlZERhdGEsIHJlcXVlc3RLZXksIGNsaWVudE1vZHVsZXMpIHtcbiAgICAvLyBSZW5kZXIgdGhlIHNlZ21lbnQgZGF0YSB0byBhIHN0cmVhbS5cbiAgICAvLyBJbiB0aGUgZnV0dXJlLCB0aGlzIGlzIHdoZXJlIHdlIGNhbiBpbmNsdWRlIGFkZGl0aW9uYWwgbWV0YWRhdGEsIGxpa2UgdGhlXG4gICAgLy8gc3RhbGUgdGltZSBhbmQgY2FjaGUgdGFncy5cbiAgICBjb25zdCByc2MgPSBzZWVkRGF0YVsxXTtcbiAgICBjb25zdCBsb2FkaW5nID0gc2VlZERhdGFbM107XG4gICAgY29uc3Qgc2VnbWVudFByZWZldGNoID0ge1xuICAgICAgICBidWlsZElkLFxuICAgICAgICByc2MsXG4gICAgICAgIGxvYWRpbmcsXG4gICAgICAgIGlzUGFydGlhbDogYXdhaXQgaXNQYXJ0aWFsUlNDRGF0YShyc2MsIGNsaWVudE1vZHVsZXMpXG4gICAgfTtcbiAgICAvLyBTaW5jZSBhbGwgd2UncmUgZG9pbmcgaXMgZGVjb2RpbmcgYW5kIHJlLWVuY29kaW5nIGEgY2FjaGVkIHByZXJlbmRlciwgaWZcbiAgICAvLyBpdCB0YWtlcyBsb25nZXIgdGhhbiBhIG1pY3JvdGFzaywgaXQgbXVzdCBiZWNhdXNlIG9mIGhhbmdpbmcgcHJvbWlzZXNcbiAgICAvLyBjYXVzZWQgYnkgZHluYW1pYyBkYXRhLiBBYm9ydCB0aGUgc3RyZWFtIGF0IHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgdGFzay5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCkudGhlbigoKT0+YWJvcnRDb250cm9sbGVyLmFib3J0KCkpO1xuICAgIGNvbnN0IHsgcHJlbHVkZTogc2VnbWVudFN0cmVhbSB9ID0gYXdhaXQgKDAsIF9zdGF0aWMudW5zdGFibGVfcHJlcmVuZGVyKShzZWdtZW50UHJlZmV0Y2gsIGNsaWVudE1vZHVsZXMsIHtcbiAgICAgICAgZmlsdGVyU3RhY2tGcmFtZSxcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBvbkVycm9yOiBvblNlZ21lbnRQcmVyZW5kZXJFcnJvclxuICAgIH0pO1xuICAgIGNvbnN0IHNlZ21lbnRCdWZmZXIgPSBhd2FpdCAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvQnVmZmVyKShzZWdtZW50U3RyZWFtKTtcbiAgICBpZiAocmVxdWVzdEtleSA9PT0gX3NlZ21lbnR2YWx1ZWVuY29kaW5nLlJPT1RfU0VHTUVOVF9SRVFVRVNUX0tFWSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJy9faW5kZXgnLFxuICAgICAgICAgICAgc2VnbWVudEJ1ZmZlclxuICAgICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICByZXF1ZXN0S2V5LFxuICAgICAgICAgICAgc2VnbWVudEJ1ZmZlclxuICAgICAgICBdO1xuICAgIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIGlzUGFydGlhbFJTQ0RhdGEocnNjLCBjbGllbnRNb2R1bGVzKSB7XG4gICAgLy8gV2UgY2FuIGRldGVybWluZSBpZiBhIHNlZ21lbnQgY29udGFpbnMgb25seSBwYXJ0aWFsIGRhdGEgaWYgaXQgdGFrZXMgbG9uZ2VyXG4gICAgLy8gdGhhbiBhIHRhc2sgdG8gZW5jb2RlLCBiZWNhdXNlIGR5bmFtaWMgZGF0YSBpcyBlbmNvZGVkIGFzIGFuIGluZmluaXRlXG4gICAgLy8gcHJvbWlzZS4gV2UgbXVzdCBkbyB0aGlzIGluIGEgc2VwYXJhdGUgRmxpZ2h0IHByZXJlbmRlciBmcm9tIHRoZSBvbmUgdGhhdFxuICAgIC8vIGFjdHVhbGx5IGdlbmVyYXRlcyB0aGUgcHJlZmV0Y2ggc3RyZWFtIGJlY2F1c2Ugd2UgbmVlZCB0byBpbmNsdWRlXG4gICAgLy8gYGlzUGFydGlhbGAgaW4gdGhlIHN0cmVhbSBpdHNlbGYuXG4gICAgbGV0IGlzUGFydGlhbCA9IGZhbHNlO1xuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAoMCwgX3NjaGVkdWxlci53YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaykoKS50aGVuKCgpPT57XG4gICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgeWV0IGZpbmlzaGVkIHRoZSBvdXRlciB0YXNrLCB0aGVuIGl0IG11c3QgYmUgYmVjYXVzZSB3ZVxuICAgICAgICAvLyBhY2Nlc3NlZCBkeW5hbWljIGRhdGEuXG4gICAgICAgIGlzUGFydGlhbCA9IHRydWU7XG4gICAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH0pO1xuICAgIGF3YWl0ICgwLCBfc3RhdGljLnVuc3RhYmxlX3ByZXJlbmRlcikocnNjLCBjbGllbnRNb2R1bGVzLCB7XG4gICAgICAgIGZpbHRlclN0YWNrRnJhbWUsXG4gICAgICAgIHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgb25FcnJvciAoKSB7fSxcbiAgICAgICAgb25Qb3N0cG9uZSAoKSB7XG4gICAgICAgICAgICAvLyBJZiBzb21ldGhpbmcgcG9zdHBvbmVkLCBpLmUuIHdoZW4gQ2FjaGUgQ29tcG9uZW50cyBpcyBub3QgZW5hYmxlZCwgd2UgY2FuXG4gICAgICAgICAgICAvLyBpbmZlciB0aGF0IHRoZSBSU0MgZGF0YSBpcyBwYXJ0aWFsLlxuICAgICAgICAgICAgaXNQYXJ0aWFsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpc1BhcnRpYWw7XG59XG5mdW5jdGlvbiBjcmVhdGVVbmNsb3NpbmdQcmVmZXRjaFN0cmVhbShvcmlnaW5hbEZsaWdodFN0cmVhbSkge1xuICAgIC8vIFdoZW4gUFBSIGlzIGVuYWJsZWQsIHByZWZldGNoIHN0cmVhbXMgbWF5IGNvbnRhaW4gcmVmZXJlbmNlcyB0aGF0IG5ldmVyXG4gICAgLy8gcmVzb2x2ZSwgYmVjYXVzZSB0aGF0J3MgaG93IHdlIGVuY29kZSBkeW5hbWljIGRhdGEgYWNjZXNzLiBJbiB0aGUgZGVjb2RlZFxuICAgIC8vIG9iamVjdCByZXR1cm5lZCBieSB0aGUgRmxpZ2h0IGNsaWVudCwgdGhlc2UgYXJlIHJlaWZpZWQgaW50byBoYW5naW5nXG4gICAgLy8gcHJvbWlzZXMgdGhhdCBzdXNwZW5kIGR1cmluZyByZW5kZXIsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IHdoYXQgd2Ugd2FudC5cbiAgICAvLyBUaGUgVUkgcmVzb2x2ZXMgd2hlbiBpdCBzd2l0Y2hlcyB0byB0aGUgZHluYW1pYyBkYXRhIHN0cmVhbVxuICAgIC8vICh2aWEgdXNlRGVmZXJyZWRWYWx1ZShkeW5hbWljLCBzdGF0aWMpKS5cbiAgICAvL1xuICAgIC8vIEhvd2V2ZXIsIHRoZSBGbGlnaHQgaW1wbGVtZW50YXRpb24gY3VycmVudGx5IGVycm9ycyBpZiB0aGUgc2VydmVyIGNsb3Nlc1xuICAgIC8vIHRoZSByZXNwb25zZSBiZWZvcmUgYWxsIHRoZSByZWZlcmVuY2VzIGFyZSByZXNvbHZlZC4gQXMgYSBjaGVhdCB0byB3b3JrXG4gICAgLy8gYXJvdW5kIHRoaXMsIHdlIHdyYXAgdGhlIG9yaWdpbmFsIHN0cmVhbSBpbiBhIG5ldyBzdHJlYW0gdGhhdCBuZXZlciBjbG9zZXMsXG4gICAgLy8gYW5kIHRoZXJlZm9yZSBkb2Vzbid0IGVycm9yLlxuICAgIGNvbnN0IHJlYWRlciA9IG9yaWdpbmFsRmxpZ2h0U3RyZWFtLmdldFJlYWRlcigpO1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBhc3luYyBwdWxsIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICB3aGlsZSh0cnVlKXtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICAgICAgICAgIGlmICghZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIHRvIHRoZSB0YXJnZXQgc3RyZWFtIGFuZCBrZWVwIGNvbnN1bWluZyB0aGUgRmxpZ2h0IHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlIHNlcnZlci5cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFRoZSBzZXJ2ZXIgc3RyZWFtIGhhcyBjbG9zZWQuIEV4aXQsIGJ1dCBpbnRlbnRpb25hbGx5IGRvIG5vdCBjbG9zZVxuICAgICAgICAgICAgICAgIC8vIHRoZSB0YXJnZXQgc3RyZWFtLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb2xsZWN0LXNlZ21lbnQtZGF0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/create-error-handler.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createFlightReactServerErrorHandler: function() {\n return createFlightReactServerErrorHandler;\n },\n createHTMLErrorHandler: function() {\n return createHTMLErrorHandler;\n },\n createHTMLReactServerErrorHandler: function() {\n return createHTMLReactServerErrorHandler;\n },\n getDigestForWellKnownError: function() {\n return getDigestForWellKnownError;\n },\n isUserLandError: function() {\n return isUserLandError;\n }\n});\nconst _stringhash = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/string-hash */ \"(rsc)/./node_modules/next/dist/compiled/string-hash/index.js\"));\nconst _formatservererror = __webpack_require__(/*! ../../lib/format-server-error */ \"(rsc)/./node_modules/next/dist/lib/format-server-error.js\");\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _pipereadable = __webpack_require__(/*! ../pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../client/components/is-next-router-error */ \"(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ./dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _iserror = __webpack_require__(/*! ../../lib/is-error */ \"(rsc)/./node_modules/next/dist/lib/is-error.js\");\nconst _errortelemetryutils = __webpack_require__(/*! ../../lib/error-telemetry-utils */ \"(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js\");\nconst _reactlargeshellerror = __webpack_require__(/*! ./react-large-shell-error */ \"(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getDigestForWellKnownError(error) {\n // If we're bailing out to CSR, we don't need to log the error.\n if ((0, _bailouttocsr.isBailoutToCSRError)(error)) return error.digest;\n // If this is a navigation error, we don't need to log the error.\n if ((0, _isnextroutererror.isNextRouterError)(error)) return error.digest;\n // If this error occurs, we know that we should be stopping the static\n // render. This is only thrown in static generation when PPR is not enabled,\n // which causes the whole page to be marked as dynamic. We don't need to\n // tell the user about this error, as it's not actionable.\n if ((0, _hooksservercontext.isDynamicServerError)(error)) return error.digest;\n // If this is a prerender interrupted error, we don't need to log the error.\n if ((0, _dynamicrendering.isPrerenderInterruptedError)(error)) return error.digest;\n return undefined;\n}\nfunction createFlightReactServerErrorHandler(shouldFormatError, onReactServerRenderError) {\n return (thrownValue)=>{\n if (typeof thrownValue === 'string') {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n return (0, _stringhash.default)(thrownValue).toString();\n }\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (!err.digest) {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n err.digest = (0, _stringhash.default)(err.message + err.stack || '').toString();\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\n // Record exception in an active span, if available.\n const span = (0, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setAttribute('error.type', err.name);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n onReactServerRenderError(err);\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction createHTMLReactServerErrorHandler(shouldFormatError, isNextExport, reactServerErrors, silenceLogger, onReactServerRenderError) {\n return (thrownValue)=>{\n var _err_message;\n if (typeof thrownValue === 'string') {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n return (0, _stringhash.default)(thrownValue).toString();\n }\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (!err.digest) {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n err.digest = (0, _stringhash.default)(err.message + (err.stack || '')).toString();\n }\n // @TODO by putting this here and not at the top it is possible that\n // we don't error the build in places we actually expect to\n if (!reactServerErrors.has(err.digest)) {\n reactServerErrors.set(err.digest, err);\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\n // Don't log the suppressed error during export\n if (!(isNextExport && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) {\n // Record exception in an active span, if available.\n const span = (0, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setAttribute('error.type', err.name);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n if (!silenceLogger) {\n onReactServerRenderError == null ? void 0 : onReactServerRenderError(err);\n }\n }\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction createHTMLErrorHandler(shouldFormatError, isNextExport, reactServerErrors, allCapturedErrors, silenceLogger, onHTMLRenderSSRError) {\n return (thrownValue, errorInfo)=>{\n var _err_message;\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n let isSSRError = true;\n allCapturedErrors.push(thrownValue);\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (err.digest) {\n if (reactServerErrors.has(err.digest)) {\n // This error is likely an obfuscated error from react-server.\n // We recover the original error here.\n thrownValue = reactServerErrors.get(err.digest);\n isSSRError = false;\n } else {\n // The error is not from react-server but has a digest\n // from other means so we don't need to produce a new one\n }\n } else {\n err.digest = (0, _stringhash.default)(err.message + ((errorInfo == null ? void 0 : errorInfo.componentStack) || err.stack || '')).toString();\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\n // Don't log the suppressed error during export\n if (!(isNextExport && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) {\n // Record exception in an active span, if available.\n const span = (0, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setAttribute('error.type', err.name);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n if (!silenceLogger && // HTML errors contain RSC errors as well, filter them out before reporting\n isSSRError) {\n onHTMLRenderSSRError(err, errorInfo);\n }\n }\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction isUserLandError(err) {\n return !(0, _pipereadable.isAbortError)(err) && !(0, _bailouttocsr.isBailoutToCSRError)(err) && !(0, _isnextroutererror.isNextRouterError)(err);\n}\n\n//# sourceMappingURL=create-error-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NyZWF0ZS1lcnJvci1oYW5kbGVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDJEQUEyRCxtQkFBTyxDQUFDLG9HQUFnQztBQUNuRywyQkFBMkIsbUJBQU8sQ0FBQyxnR0FBK0I7QUFDbEUsZ0JBQWdCLG1CQUFPLENBQUMsc0ZBQXFCO0FBQzdDLHNCQUFzQixtQkFBTyxDQUFDLGdGQUFrQjtBQUNoRCxzQkFBc0IsbUJBQU8sQ0FBQyw4SEFBOEM7QUFDNUUsNEJBQTRCLG1CQUFPLENBQUMsOEhBQThDO0FBQ2xGLDJCQUEyQixtQkFBTyxDQUFDLDhIQUE4QztBQUNqRiwwQkFBMEIsbUJBQU8sQ0FBQyxrR0FBcUI7QUFDdkQsaUJBQWlCLG1CQUFPLENBQUMsMEVBQW9CO0FBQzdDLDZCQUE2QixtQkFBTyxDQUFDLG9HQUFpQztBQUN0RSw4QkFBOEIsbUJBQU8sQ0FBQyw4R0FBMkI7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9jcmVhdGUtZXJyb3ItaGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUZsaWdodFJlYWN0U2VydmVyRXJyb3JIYW5kbGVyOiBudWxsLFxuICAgIGNyZWF0ZUhUTUxFcnJvckhhbmRsZXI6IG51bGwsXG4gICAgY3JlYXRlSFRNTFJlYWN0U2VydmVyRXJyb3JIYW5kbGVyOiBudWxsLFxuICAgIGdldERpZ2VzdEZvcldlbGxLbm93bkVycm9yOiBudWxsLFxuICAgIGlzVXNlckxhbmRFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVGbGlnaHRSZWFjdFNlcnZlckVycm9ySGFuZGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVGbGlnaHRSZWFjdFNlcnZlckVycm9ySGFuZGxlcjtcbiAgICB9LFxuICAgIGNyZWF0ZUhUTUxFcnJvckhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlSFRNTEVycm9ySGFuZGxlcjtcbiAgICB9LFxuICAgIGNyZWF0ZUhUTUxSZWFjdFNlcnZlckVycm9ySGFuZGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVIVE1MUmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXI7XG4gICAgfSxcbiAgICBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcjtcbiAgICB9LFxuICAgIGlzVXNlckxhbmRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1VzZXJMYW5kRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfc3RyaW5naGFzaCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvc3RyaW5nLWhhc2hcIikpO1xuY29uc3QgX2Zvcm1hdHNlcnZlcmVycm9yID0gcmVxdWlyZShcIi4uLy4uL2xpYi9mb3JtYXQtc2VydmVyLWVycm9yXCIpO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX3BpcGVyZWFkYWJsZSA9IHJlcXVpcmUoXCIuLi9waXBlLXJlYWRhYmxlXCIpO1xuY29uc3QgX2JhaWxvdXR0b2NzciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzclwiKTtcbmNvbnN0IF9ob29rc3NlcnZlcmNvbnRleHQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHRcIik7XG5jb25zdCBfaXNuZXh0cm91dGVyZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3JcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZyA9IHJlcXVpcmUoXCIuL2R5bmFtaWMtcmVuZGVyaW5nXCIpO1xuY29uc3QgX2lzZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vbGliL2lzLWVycm9yXCIpO1xuY29uc3QgX2Vycm9ydGVsZW1ldHJ5dXRpbHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2Vycm9yLXRlbGVtZXRyeS11dGlsc1wiKTtcbmNvbnN0IF9yZWFjdGxhcmdlc2hlbGxlcnJvciA9IHJlcXVpcmUoXCIuL3JlYWN0LWxhcmdlLXNoZWxsLWVycm9yXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcihlcnJvcikge1xuICAgIC8vIElmIHdlJ3JlIGJhaWxpbmcgb3V0IHRvIENTUiwgd2UgZG9uJ3QgbmVlZCB0byBsb2cgdGhlIGVycm9yLlxuICAgIGlmICgoMCwgX2JhaWxvdXR0b2Nzci5pc0JhaWxvdXRUb0NTUkVycm9yKShlcnJvcikpIHJldHVybiBlcnJvci5kaWdlc3Q7XG4gICAgLy8gSWYgdGhpcyBpcyBhIG5hdmlnYXRpb24gZXJyb3IsIHdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvci5cbiAgICBpZiAoKDAsIF9pc25leHRyb3V0ZXJlcnJvci5pc05leHRSb3V0ZXJFcnJvcikoZXJyb3IpKSByZXR1cm4gZXJyb3IuZGlnZXN0O1xuICAgIC8vIElmIHRoaXMgZXJyb3Igb2NjdXJzLCB3ZSBrbm93IHRoYXQgd2Ugc2hvdWxkIGJlIHN0b3BwaW5nIHRoZSBzdGF0aWNcbiAgICAvLyByZW5kZXIuIFRoaXMgaXMgb25seSB0aHJvd24gaW4gc3RhdGljIGdlbmVyYXRpb24gd2hlbiBQUFIgaXMgbm90IGVuYWJsZWQsXG4gICAgLy8gd2hpY2ggY2F1c2VzIHRoZSB3aG9sZSBwYWdlIHRvIGJlIG1hcmtlZCBhcyBkeW5hbWljLiBXZSBkb24ndCBuZWVkIHRvXG4gICAgLy8gdGVsbCB0aGUgdXNlciBhYm91dCB0aGlzIGVycm9yLCBhcyBpdCdzIG5vdCBhY3Rpb25hYmxlLlxuICAgIGlmICgoMCwgX2hvb2tzc2VydmVyY29udGV4dC5pc0R5bmFtaWNTZXJ2ZXJFcnJvcikoZXJyb3IpKSByZXR1cm4gZXJyb3IuZGlnZXN0O1xuICAgIC8vIElmIHRoaXMgaXMgYSBwcmVyZW5kZXIgaW50ZXJydXB0ZWQgZXJyb3IsIHdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvci5cbiAgICBpZiAoKDAsIF9keW5hbWljcmVuZGVyaW5nLmlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcikoZXJyb3IpKSByZXR1cm4gZXJyb3IuZGlnZXN0O1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBjcmVhdGVGbGlnaHRSZWFjdFNlcnZlckVycm9ySGFuZGxlcihzaG91bGRGb3JtYXRFcnJvciwgb25SZWFjdFNlcnZlclJlbmRlckVycm9yKSB7XG4gICAgcmV0dXJuICh0aHJvd25WYWx1ZSk9PntcbiAgICAgICAgaWYgKHR5cGVvZiB0aHJvd25WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBsb29rIGF0IHVzaW5nIHdlYmNyeXB0byBpbnN0ZWFkLiBSZXF1aXJlcyBhIHByb21pc2UgdG8gYmUgYXdhaXRlZC5cbiAgICAgICAgICAgIHJldHVybiAoMCwgX3N0cmluZ2hhc2guZGVmYXVsdCkodGhyb3duVmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIHdhcyBjbG9zZWQsIHdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvci5cbiAgICAgICAgaWYgKCgwLCBfcGlwZXJlYWRhYmxlLmlzQWJvcnRFcnJvcikodGhyb3duVmFsdWUpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGRpZ2VzdCA9IGdldERpZ2VzdEZvcldlbGxLbm93bkVycm9yKHRocm93blZhbHVlKTtcbiAgICAgICAgaWYgKGRpZ2VzdCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpZ2VzdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKDAsIF9yZWFjdGxhcmdlc2hlbGxlcnJvci5pc1JlYWN0TGFyZ2VTaGVsbEVycm9yKSh0aHJvd25WYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IEFnZ3JlZ2F0ZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcih0aHJvd25WYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVyciA9ICgwLCBfaXNlcnJvci5nZXRQcm9wZXJFcnJvcikodGhyb3duVmFsdWUpO1xuICAgICAgICAvLyBJZiB0aGUgZXJyb3IgYWxyZWFkeSBoYXMgYSBkaWdlc3QsIHJlc3BlY3QgdGhlIG9yaWdpbmFsIGRpZ2VzdCxcbiAgICAgICAgLy8gc28gaXQgd29uJ3QgZ2V0IHJlLWdlbmVyYXRlZCBpbnRvIGFub3RoZXIgbmV3IGVycm9yLlxuICAgICAgICBpZiAoIWVyci5kaWdlc3QpIHtcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBsb29rIGF0IHVzaW5nIHdlYmNyeXB0byBpbnN0ZWFkLiBSZXF1aXJlcyBhIHByb21pc2UgdG8gYmUgYXdhaXRlZC5cbiAgICAgICAgICAgIGVyci5kaWdlc3QgPSAoMCwgX3N0cmluZ2hhc2guZGVmYXVsdCkoZXJyLm1lc3NhZ2UgKyBlcnIuc3RhY2sgfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9ybWF0IHNlcnZlciBlcnJvcnMgaW4gZGV2ZWxvcG1lbnQgdG8gYWRkIG1vcmUgaGVscGZ1bCBlcnJvciBtZXNzYWdlc1xuICAgICAgICBpZiAoc2hvdWxkRm9ybWF0RXJyb3IpIHtcbiAgICAgICAgICAgICgwLCBfZm9ybWF0c2VydmVyZXJyb3IuZm9ybWF0U2VydmVyRXJyb3IpKGVycik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVjb3JkIGV4Y2VwdGlvbiBpbiBhbiBhY3RpdmUgc3BhbiwgaWYgYXZhaWxhYmxlLlxuICAgICAgICBjb25zdCBzcGFuID0gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLmdldEFjdGl2ZVNjb3BlU3BhbigpO1xuICAgICAgICBpZiAoc3Bhbikge1xuICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyKTtcbiAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdlcnJvci50eXBlJywgZXJyLm5hbWUpO1xuICAgICAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgICAgIGNvZGU6IF90cmFjZXIuU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIG9uUmVhY3RTZXJ2ZXJSZW5kZXJFcnJvcihlcnIpO1xuICAgICAgICByZXR1cm4gKDAsIF9lcnJvcnRlbGVtZXRyeXV0aWxzLmNyZWF0ZURpZ2VzdFdpdGhFcnJvckNvZGUpKHRocm93blZhbHVlLCBlcnIuZGlnZXN0KTtcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlSFRNTFJlYWN0U2VydmVyRXJyb3JIYW5kbGVyKHNob3VsZEZvcm1hdEVycm9yLCBpc05leHRFeHBvcnQsIHJlYWN0U2VydmVyRXJyb3JzLCBzaWxlbmNlTG9nZ2VyLCBvblJlYWN0U2VydmVyUmVuZGVyRXJyb3IpIHtcbiAgICByZXR1cm4gKHRocm93blZhbHVlKT0+e1xuICAgICAgICB2YXIgX2Vycl9tZXNzYWdlO1xuICAgICAgICBpZiAodHlwZW9mIHRocm93blZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gVE9ETy1BUFA6IGxvb2sgYXQgdXNpbmcgd2ViY3J5cHRvIGluc3RlYWQuIFJlcXVpcmVzIGEgcHJvbWlzZSB0byBiZSBhd2FpdGVkLlxuICAgICAgICAgICAgcmV0dXJuICgwLCBfc3RyaW5naGFzaC5kZWZhdWx0KSh0aHJvd25WYWx1ZSkudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2Ugd2FzIGNsb3NlZCwgd2UgZG9uJ3QgbmVlZCB0byBsb2cgdGhlIGVycm9yLlxuICAgICAgICBpZiAoKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKSh0aHJvd25WYWx1ZSkpIHJldHVybjtcbiAgICAgICAgY29uc3QgZGlnZXN0ID0gZ2V0RGlnZXN0Rm9yV2VsbEtub3duRXJyb3IodGhyb3duVmFsdWUpO1xuICAgICAgICBpZiAoZGlnZXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gZGlnZXN0O1xuICAgICAgICB9XG4gICAgICAgIGlmICgoMCwgX3JlYWN0bGFyZ2VzaGVsbGVycm9yLmlzUmVhY3RMYXJnZVNoZWxsRXJyb3IpKHRocm93blZhbHVlKSkge1xuICAgICAgICAgICAgLy8gVE9ETzogQWdncmVnYXRlXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHRocm93blZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyID0gKDAsIF9pc2Vycm9yLmdldFByb3BlckVycm9yKSh0aHJvd25WYWx1ZSk7XG4gICAgICAgIC8vIElmIHRoZSBlcnJvciBhbHJlYWR5IGhhcyBhIGRpZ2VzdCwgcmVzcGVjdCB0aGUgb3JpZ2luYWwgZGlnZXN0LFxuICAgICAgICAvLyBzbyBpdCB3b24ndCBnZXQgcmUtZ2VuZXJhdGVkIGludG8gYW5vdGhlciBuZXcgZXJyb3IuXG4gICAgICAgIGlmICghZXJyLmRpZ2VzdCkge1xuICAgICAgICAgICAgLy8gVE9ETy1BUFA6IGxvb2sgYXQgdXNpbmcgd2ViY3J5cHRvIGluc3RlYWQuIFJlcXVpcmVzIGEgcHJvbWlzZSB0byBiZSBhd2FpdGVkLlxuICAgICAgICAgICAgZXJyLmRpZ2VzdCA9ICgwLCBfc3RyaW5naGFzaC5kZWZhdWx0KShlcnIubWVzc2FnZSArIChlcnIuc3RhY2sgfHwgJycpKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEBUT0RPIGJ5IHB1dHRpbmcgdGhpcyBoZXJlIGFuZCBub3QgYXQgdGhlIHRvcCBpdCBpcyBwb3NzaWJsZSB0aGF0XG4gICAgICAgIC8vIHdlIGRvbid0IGVycm9yIHRoZSBidWlsZCBpbiBwbGFjZXMgd2UgYWN0dWFsbHkgZXhwZWN0IHRvXG4gICAgICAgIGlmICghcmVhY3RTZXJ2ZXJFcnJvcnMuaGFzKGVyci5kaWdlc3QpKSB7XG4gICAgICAgICAgICByZWFjdFNlcnZlckVycm9ycy5zZXQoZXJyLmRpZ2VzdCwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3JtYXQgc2VydmVyIGVycm9ycyBpbiBkZXZlbG9wbWVudCB0byBhZGQgbW9yZSBoZWxwZnVsIGVycm9yIG1lc3NhZ2VzXG4gICAgICAgIGlmIChzaG91bGRGb3JtYXRFcnJvcikge1xuICAgICAgICAgICAgKDAsIF9mb3JtYXRzZXJ2ZXJlcnJvci5mb3JtYXRTZXJ2ZXJFcnJvcikoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBEb24ndCBsb2cgdGhlIHN1cHByZXNzZWQgZXJyb3IgZHVyaW5nIGV4cG9ydFxuICAgICAgICBpZiAoIShpc05leHRFeHBvcnQgJiYgKGVyciA9PSBudWxsID8gdm9pZCAwIDogKF9lcnJfbWVzc2FnZSA9IGVyci5tZXNzYWdlKSA9PSBudWxsID8gdm9pZCAwIDogX2Vycl9tZXNzYWdlLmluY2x1ZGVzKCdUaGUgc3BlY2lmaWMgbWVzc2FnZSBpcyBvbWl0dGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIHRvIGF2b2lkIGxlYWtpbmcgc2Vuc2l0aXZlIGRldGFpbHMuJykpKSkge1xuICAgICAgICAgICAgLy8gUmVjb3JkIGV4Y2VwdGlvbiBpbiBhbiBhY3RpdmUgc3BhbiwgaWYgYXZhaWxhYmxlLlxuICAgICAgICAgICAgY29uc3Qgc3BhbiA9ICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS5nZXRBY3RpdmVTY29wZVNwYW4oKTtcbiAgICAgICAgICAgIGlmIChzcGFuKSB7XG4gICAgICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyKTtcbiAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZXJyb3IudHlwZScsIGVyci5uYW1lKTtcbiAgICAgICAgICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IF90cmFjZXIuU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVyci5tZXNzYWdlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXNpbGVuY2VMb2dnZXIpIHtcbiAgICAgICAgICAgICAgICBvblJlYWN0U2VydmVyUmVuZGVyRXJyb3IgPT0gbnVsbCA/IHZvaWQgMCA6IG9uUmVhY3RTZXJ2ZXJSZW5kZXJFcnJvcihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoMCwgX2Vycm9ydGVsZW1ldHJ5dXRpbHMuY3JlYXRlRGlnZXN0V2l0aEVycm9yQ29kZSkodGhyb3duVmFsdWUsIGVyci5kaWdlc3QpO1xuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVIVE1MRXJyb3JIYW5kbGVyKHNob3VsZEZvcm1hdEVycm9yLCBpc05leHRFeHBvcnQsIHJlYWN0U2VydmVyRXJyb3JzLCBhbGxDYXB0dXJlZEVycm9ycywgc2lsZW5jZUxvZ2dlciwgb25IVE1MUmVuZGVyU1NSRXJyb3IpIHtcbiAgICByZXR1cm4gKHRocm93blZhbHVlLCBlcnJvckluZm8pPT57XG4gICAgICAgIHZhciBfZXJyX21lc3NhZ2U7XG4gICAgICAgIGlmICgoMCwgX3JlYWN0bGFyZ2VzaGVsbGVycm9yLmlzUmVhY3RMYXJnZVNoZWxsRXJyb3IpKHRocm93blZhbHVlKSkge1xuICAgICAgICAgICAgLy8gVE9ETzogQWdncmVnYXRlXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHRocm93blZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGlzU1NSRXJyb3IgPSB0cnVlO1xuICAgICAgICBhbGxDYXB0dXJlZEVycm9ycy5wdXNoKHRocm93blZhbHVlKTtcbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIHdhcyBjbG9zZWQsIHdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvci5cbiAgICAgICAgaWYgKCgwLCBfcGlwZXJlYWRhYmxlLmlzQWJvcnRFcnJvcikodGhyb3duVmFsdWUpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGRpZ2VzdCA9IGdldERpZ2VzdEZvcldlbGxLbm93bkVycm9yKHRocm93blZhbHVlKTtcbiAgICAgICAgaWYgKGRpZ2VzdCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpZ2VzdDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnIgPSAoMCwgX2lzZXJyb3IuZ2V0UHJvcGVyRXJyb3IpKHRocm93blZhbHVlKTtcbiAgICAgICAgLy8gSWYgdGhlIGVycm9yIGFscmVhZHkgaGFzIGEgZGlnZXN0LCByZXNwZWN0IHRoZSBvcmlnaW5hbCBkaWdlc3QsXG4gICAgICAgIC8vIHNvIGl0IHdvbid0IGdldCByZS1nZW5lcmF0ZWQgaW50byBhbm90aGVyIG5ldyBlcnJvci5cbiAgICAgICAgaWYgKGVyci5kaWdlc3QpIHtcbiAgICAgICAgICAgIGlmIChyZWFjdFNlcnZlckVycm9ycy5oYXMoZXJyLmRpZ2VzdCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGVycm9yIGlzIGxpa2VseSBhbiBvYmZ1c2NhdGVkIGVycm9yIGZyb20gcmVhY3Qtc2VydmVyLlxuICAgICAgICAgICAgICAgIC8vIFdlIHJlY292ZXIgdGhlIG9yaWdpbmFsIGVycm9yIGhlcmUuXG4gICAgICAgICAgICAgICAgdGhyb3duVmFsdWUgPSByZWFjdFNlcnZlckVycm9ycy5nZXQoZXJyLmRpZ2VzdCk7XG4gICAgICAgICAgICAgICAgaXNTU1JFcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRoZSBlcnJvciBpcyBub3QgZnJvbSByZWFjdC1zZXJ2ZXIgYnV0IGhhcyBhIGRpZ2VzdFxuICAgICAgICAgICAgLy8gZnJvbSBvdGhlciBtZWFucyBzbyB3ZSBkb24ndCBuZWVkIHRvIHByb2R1Y2UgYSBuZXcgb25lXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnIuZGlnZXN0ID0gKDAsIF9zdHJpbmdoYXNoLmRlZmF1bHQpKGVyci5tZXNzYWdlICsgKChlcnJvckluZm8gPT0gbnVsbCA/IHZvaWQgMCA6IGVycm9ySW5mby5jb21wb25lbnRTdGFjaykgfHwgZXJyLnN0YWNrIHx8ICcnKSkudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3JtYXQgc2VydmVyIGVycm9ycyBpbiBkZXZlbG9wbWVudCB0byBhZGQgbW9yZSBoZWxwZnVsIGVycm9yIG1lc3NhZ2VzXG4gICAgICAgIGlmIChzaG91bGRGb3JtYXRFcnJvcikge1xuICAgICAgICAgICAgKDAsIF9mb3JtYXRzZXJ2ZXJlcnJvci5mb3JtYXRTZXJ2ZXJFcnJvcikoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBEb24ndCBsb2cgdGhlIHN1cHByZXNzZWQgZXJyb3IgZHVyaW5nIGV4cG9ydFxuICAgICAgICBpZiAoIShpc05leHRFeHBvcnQgJiYgKGVyciA9PSBudWxsID8gdm9pZCAwIDogKF9lcnJfbWVzc2FnZSA9IGVyci5tZXNzYWdlKSA9PSBudWxsID8gdm9pZCAwIDogX2Vycl9tZXNzYWdlLmluY2x1ZGVzKCdUaGUgc3BlY2lmaWMgbWVzc2FnZSBpcyBvbWl0dGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIHRvIGF2b2lkIGxlYWtpbmcgc2Vuc2l0aXZlIGRldGFpbHMuJykpKSkge1xuICAgICAgICAgICAgLy8gUmVjb3JkIGV4Y2VwdGlvbiBpbiBhbiBhY3RpdmUgc3BhbiwgaWYgYXZhaWxhYmxlLlxuICAgICAgICAgICAgY29uc3Qgc3BhbiA9ICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS5nZXRBY3RpdmVTY29wZVNwYW4oKTtcbiAgICAgICAgICAgIGlmIChzcGFuKSB7XG4gICAgICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyKTtcbiAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZXJyb3IudHlwZScsIGVyci5uYW1lKTtcbiAgICAgICAgICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IF90cmFjZXIuU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVyci5tZXNzYWdlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXNpbGVuY2VMb2dnZXIgJiYgLy8gSFRNTCBlcnJvcnMgY29udGFpbiBSU0MgZXJyb3JzIGFzIHdlbGwsIGZpbHRlciB0aGVtIG91dCBiZWZvcmUgcmVwb3J0aW5nXG4gICAgICAgICAgICBpc1NTUkVycm9yKSB7XG4gICAgICAgICAgICAgICAgb25IVE1MUmVuZGVyU1NSRXJyb3IoZXJyLCBlcnJvckluZm8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoMCwgX2Vycm9ydGVsZW1ldHJ5dXRpbHMuY3JlYXRlRGlnZXN0V2l0aEVycm9yQ29kZSkodGhyb3duVmFsdWUsIGVyci5kaWdlc3QpO1xuICAgIH07XG59XG5mdW5jdGlvbiBpc1VzZXJMYW5kRXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuICEoMCwgX3BpcGVyZWFkYWJsZS5pc0Fib3J0RXJyb3IpKGVycikgJiYgISgwLCBfYmFpbG91dHRvY3NyLmlzQmFpbG91dFRvQ1NSRXJyb3IpKGVycikgJiYgISgwLCBfaXNuZXh0cm91dGVyZXJyb3IuaXNOZXh0Um91dGVyRXJyb3IpKGVycik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1lcnJvci1oYW5kbGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/dynamic-rendering.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Postpone: function() {\n return Postpone;\n },\n PreludeState: function() {\n return PreludeState;\n },\n abortAndThrowOnSynchronousRequestDataAccess: function() {\n return abortAndThrowOnSynchronousRequestDataAccess;\n },\n abortOnSynchronousPlatformIOAccess: function() {\n return abortOnSynchronousPlatformIOAccess;\n },\n accessedDynamicData: function() {\n return accessedDynamicData;\n },\n annotateDynamicAccess: function() {\n return annotateDynamicAccess;\n },\n consumeDynamicAccess: function() {\n return consumeDynamicAccess;\n },\n createDynamicTrackingState: function() {\n return createDynamicTrackingState;\n },\n createDynamicValidationState: function() {\n return createDynamicValidationState;\n },\n createHangingInputAbortSignal: function() {\n return createHangingInputAbortSignal;\n },\n createRenderInBrowserAbortSignal: function() {\n return createRenderInBrowserAbortSignal;\n },\n delayUntilRuntimeStage: function() {\n return delayUntilRuntimeStage;\n },\n formatDynamicAPIAccesses: function() {\n return formatDynamicAPIAccesses;\n },\n getFirstDynamicReason: function() {\n return getFirstDynamicReason;\n },\n isDynamicPostpone: function() {\n return isDynamicPostpone;\n },\n isPrerenderInterruptedError: function() {\n return isPrerenderInterruptedError;\n },\n logDisallowedDynamicError: function() {\n return logDisallowedDynamicError;\n },\n markCurrentScopeAsDynamic: function() {\n return markCurrentScopeAsDynamic;\n },\n postponeWithTracking: function() {\n return postponeWithTracking;\n },\n throwIfDisallowedDynamic: function() {\n return throwIfDisallowedDynamic;\n },\n throwToInterruptStaticGeneration: function() {\n return throwToInterruptStaticGeneration;\n },\n trackAllowedDynamicAccess: function() {\n return trackAllowedDynamicAccess;\n },\n trackDynamicDataInDynamicRender: function() {\n return trackDynamicDataInDynamicRender;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\n },\n warnOnSyncDynamicError: function() {\n return warnOnSyncDynamicError;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _boundaryconstants = __webpack_require__(/*! ../../lib/framework/boundary-constants */ \"(rsc)/./node_modules/next/dist/lib/framework/boundary-constants.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst hasPostpone = typeof _react.default.unstable_postpone === 'function';\nfunction createDynamicTrackingState(isDebugDynamicAccesses) {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: []\n };\n}\nfunction getFirstDynamicReason(trackingState) {\n var _trackingState_dynamicAccesses_;\n return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;\n}\nfunction markCurrentScopeAsDynamic(store, workUnitStore, expression) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return;\n if (store.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E553\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-ppr':\n return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n case 'prerender-legacy':\n workUnitStore.revalidate = 0;\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E550\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n workUnitStore;\n }\n }\n}\nfunction throwToInterruptStaticGeneration(expression, store, prerenderStore) {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n workUnitStore;\n }\n}\nfunction abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;\n const error = createPrerenderInterruptedError(reason);\n prerenderStore.controller.abort(error);\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n}\nfunction trackSynchronousPlatformIOAccessInDev(requestStore) {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of prerender mode\n requestStore.prerenderPhase = false;\n}\nfunction abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {\n const prerenderSignal = prerenderStore.controller.signal;\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n }\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\n}\nfunction warnOnSyncDynamicError(dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack) {\n // the server did something sync dynamic, likely\n // leading to an early termination of the prerender.\n console.error(dynamicTracking.syncDynamicErrorWithStack);\n }\n}\nconst trackSynchronousRequestDataAccessInDev = trackSynchronousPlatformIOAccessInDev;\nfunction Postpone({ reason, route }) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;\n postponeWithTracking(route, reason, dynamicTracking);\n}\nfunction postponeWithTracking(route, expression, dynamicTracking) {\n assertPostpone();\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n _react.default.unstable_postpone(createPostponeReason(route, expression));\n}\nfunction createPostponeReason(route, expression) {\n return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;\n}\nfunction isDynamicPostpone(err) {\n if (typeof err === 'object' && err !== null && typeof err.message === 'string') {\n return isDynamicPostponeReason(err.message);\n }\n return false;\n}\nfunction isDynamicPostponeReason(reason) {\n return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');\n}\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E296\",\n enumerable: false,\n configurable: true\n });\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = NEXT_PRERENDER_INTERRUPTED;\n return error;\n}\nfunction isPrerenderInterruptedError(error) {\n return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;\n}\nfunction accessedDynamicData(dynamicAccesses) {\n return dynamicAccesses.length > 0;\n}\nfunction consumeDynamicAccess(serverDynamic, clientDynamic) {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);\n return serverDynamic.dynamicAccesses;\n}\nfunction formatDynamicAPIAccesses(dynamicAccesses) {\n return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{\n stack = stack.split('\\n') // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4).filter((line)=>{\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false;\n }\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false;\n }\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false;\n }\n return true;\n }).join('\\n');\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`;\n });\n}\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), \"__NEXT_ERROR_CODE\", {\n value: \"E224\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction createRenderInBrowserAbortSignal() {\n const controller = new AbortController();\n controller.abort(Object.defineProperty(new _bailouttocsr.BailoutToCSRError('Render in Browser'), \"__NEXT_ERROR_CODE\", {\n value: \"E721\",\n enumerable: false,\n configurable: true\n }));\n return controller.signal;\n}\nfunction createHangingInputAbortSignal(workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController();\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(()=>{\n controller.abort();\n });\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = (0, _workunitasyncstorageexternal.getRuntimeStagePromise)(workUnitStore);\n if (runtimeStagePromise) {\n runtimeStagePromise.then(()=>(0, _scheduler.scheduleOnNextTick)(()=>controller.abort()));\n } else {\n (0, _scheduler.scheduleOnNextTick)(()=>controller.abort());\n }\n }\n return controller.signal;\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined;\n default:\n workUnitStore;\n }\n}\nfunction annotateDynamicAccess(expression, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction useDynamicRouteParams(expression) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore && workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-client':\n case 'prerender':\n {\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression));\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n }\n break;\n }\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError(`\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E771\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError(`\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E745\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/;\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6';\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`);\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true;\n return;\n } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true;\n dynamicValidation.hasSuspenseAboveBody = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);\n return;\n } else {\n const message = `Route \"${workStore.route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentOrOwnerStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */ function createErrorWithComponentOrOwnerStack(message, componentStack) {\n const ownerStack = true && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);\n return error;\n}\nvar PreludeState = /*#__PURE__*/ function(PreludeState) {\n PreludeState[PreludeState[\"Full\"] = 0] = \"Full\";\n PreludeState[PreludeState[\"Empty\"] = 1] = \"Empty\";\n PreludeState[PreludeState[\"Errored\"] = 2] = \"Errored\";\n return PreludeState;\n}({});\nfunction logDisallowedDynamicError(workStore, error) {\n console.error(error);\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`);\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`);\n }\n }\n}\nfunction throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {\n if (prelude !== 0) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return;\n }\n if (serverDynamic.syncDynamicErrorWithStack) {\n // There is no shell and the server did something sync dynamic likely\n // leading to an early termination of the prerender before the shell\n // could be completed. We terminate the build/validating render.\n logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n for(let i = 0; i < dynamicErrors.length; i++){\n logDisallowedDynamicError(workStore, dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(`Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (prelude === 1) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n } else {\n if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {\n console.error(`Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n }\n}\nfunction delayUntilRuntimeStage(prerenderStore, result) {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(()=>result);\n }\n return result;\n} //# sourceMappingURL=dynamic-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CQzs7Ozs7Ozs7Ozs7O0lBNlZlQSxRQUFRO2VBQVJBOztJQTRYSkMsWUFBWTtlQUFaQTs7SUFwYklDLDJDQUEyQztlQUEzQ0E7O0lBckNBQyxrQ0FBa0M7ZUFBbENBOztJQXVMQUMsbUJBQW1CO2VBQW5CQTs7SUFrSUFDLHFCQUFxQjtlQUFyQkE7O0lBNUhBQyxvQkFBb0I7ZUFBcEJBOztJQXJYQUMsMEJBQTBCO2VBQTFCQTs7SUFVQUMsNEJBQTRCO2VBQTVCQTs7SUFtYkFDLDZCQUE2QjtlQUE3QkE7O0lBWEFDLGdDQUFnQztlQUFoQ0E7O0lBOFRBQyx3QkFBc0I7ZUFBdEJBOztJQWhYQUMsd0JBQXdCO2VBQXhCQTs7SUE1V0FDLHFCQUFxQjtlQUFyQkE7O0lBc1NBQyxpQkFBaUI7ZUFBakJBOztJQXdDQUMsMkJBQTJCO2VBQTNCQTs7SUFxVEFDLHlCQUF5QjtlQUF6QkE7O0lBdG5CQUMseUJBQXlCO2VBQXpCQTs7SUE2UEFDLG9CQUFvQjtlQUFwQkE7O0lBNFlBQyx3QkFBd0I7ZUFBeEJBOztJQS9qQkFDLGdDQUFnQztlQUFoQ0E7O0lBdWVBQyx5QkFBeUI7ZUFBekJBOztJQTljQUMsK0JBQStCO2VBQS9CQTs7SUF1RUFDLHFDQUFxQztlQUFyQ0E7O0lBZ0VIQyxzQ0FBc0M7ZUFBdENBOztJQXFQR0MscUJBQXFCO2VBQXJCQTs7SUE5UEFDLHNCQUFzQjtlQUF0QkE7OzswRUE5VEU7Z0RBRWlCO3FEQUNHOzBEQUkvQjtzREFDMEI7bURBQ0U7K0NBTTVCO3VDQUM0QjswQ0FDRDs0Q0FDSDs7Ozs7O0FBRS9CLE1BQU1DLGNBQWMsT0FBT0MsT0FBQUEsT0FBSyxDQUFDQyxpQkFBaUIsS0FBSztBQXdDaEQsU0FBU3RCLDJCQUNkdUIsc0JBQTJDO0lBRTNDLE9BQU87UUFD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YWkvc3JjL3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGZ1bmN0aW9ucyBwcm92aWRlZCBieSB0aGlzIG1vZHVsZSBhcmUgdXNlZCB0byBjb21tdW5pY2F0ZSBjZXJ0YWluIHByb3BlcnRpZXNcbiAqIGFib3V0IHRoZSBjdXJyZW50bHkgcnVubmluZyBjb2RlIHNvIHRoYXQgTmV4dC5qcyBjYW4gbWFrZSBkZWNpc2lvbnMgb24gaG93IHRvIGhhbmRsZVxuICogdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGluIGRpZmZlcmVudCByZW5kZXJpbmcgbW9kZXMgc3VjaCBhcyBwcmUtcmVuZGVyaW5nLCByZXN1bWluZywgYW5kIFNTUi5cbiAqXG4gKiBUb2RheSBOZXh0LmpzIHRyZWF0cyBhbGwgY29kZSBhcyBwb3RlbnRpYWxseSBzdGF0aWMuIENlcnRhaW4gQVBJcyBtYXkgb25seSBtYWtlIHNlbnNlIHdoZW4gZHluYW1pY2FsbHkgcmVuZGVyaW5nLlxuICogVHJhZGl0aW9uYWxseSB0aGlzIG1lYW50IGRlb3B0aW5nIHRoZSBlbnRpcmUgcmVuZGVyIHRvIGR5bmFtaWMgaG93ZXZlciB3aXRoIFBQUiB3ZSBjYW4gbm93IGRlb3B0IHBhcnRzXG4gKiBvZiBhIFJlYWN0IHRyZWUgYXMgZHluYW1pYyB3aGlsZSBzdGlsbCBrZWVwaW5nIG90aGVyIHBhcnRzIHN0YXRpYy4gVGhlcmUgYXJlIHJlYWxseSB0d28gZGlmZmVyZW50IGtpbmRzIG9mXG4gKiBEeW5hbWljIGluZGljYXRpb25zLlxuICpcbiAqIFRoZSBmaXJzdCBpcyBzaW1wbHkgYW4gaW50ZW50aW9uIHRvIGJlIGR5bmFtaWMuIHVuc3RhYmxlX25vU3RvcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHdoZXJlXG4gKiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb2RlIHNpbXBseSBkZWNsYXJlcyB0aGF0IHRoZSBjdXJyZW50IHNjb3BlIGlzIGR5bmFtaWMgYnV0IGlmIHlvdSB1c2UgaXRcbiAqIGluc2lkZSB1bnN0YWJsZV9jYWNoZSBpdCBjYW4gc3RpbGwgYmUgY2FjaGVkLiBUaGlzIHR5cGUgb2YgaW5kaWNhdGlvbiBjYW4gYmUgcmVtb3ZlZCBpZiB3ZSBldmVyXG4gKiBtYWtlIHRoZSBkZWZhdWx0IGR5bmFtaWMgdG8gYmVnaW4gd2l0aCBiZWNhdXNlIHRoZSBvbmx5IHdheSB5b3Ugd291bGQgZXZlciBiZSBzdGF0aWMgaXMgaW5zaWRlXG4gKiBhIGNhY2hlIHNjb3BlIHdoaWNoIHRoaXMgaW5kaWNhdGlvbiBkb2VzIG5vdCBhZmZlY3QuXG4gKlxuICogVGhlIHNlY29uZCBpcyBhbiBpbmRpY2F0aW9uIHRoYXQgYSBkeW5hbWljIGRhdGEgc291cmNlIHdhcyByZWFkLiBUaGlzIGlzIGEgc3Ryb25nZXIgZm9ybSBvZiBkeW5hbWljXG4gKiBiZWNhdXNlIGl0IG1lYW5zIHRoYXQgaXQgaXMgaW5hcHByb3ByaWF0ZSB0byBjYWNoZSB0aGlzIGF0IGFsbC4gdXNpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlIGluc2lkZVxuICogdW5zdGFibGVfY2FjaGUgc2hvdWxkIGVycm9yLiBJZiB5b3Ugd2FudCB0byB1c2Ugc29tZSBkeW5hbWljIGRhdGEgaW5zaWRlIHVuc3RhYmxlX2NhY2hlIHlvdSBzaG91bGRcbiAqIHJlYWQgdGhhdCBkYXRhIG91dHNpZGUgdGhlIGNhY2hlIGFuZCBwYXNzIGl0IGluIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBjYWNoZWQgZnVuY3Rpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXb3JrU3RvcmUgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHtcbiAgV29ya1VuaXRTdG9yZSxcbiAgUmVxdWVzdFN0b3JlLFxuICBQcmVyZW5kZXJTdG9yZUxlZ2FjeSxcbiAgUHJlcmVuZGVyU3RvcmVNb2Rlcm4sXG4gIFByZXJlbmRlclN0b3JlTW9kZXJuUnVudGltZSxcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcblxuLy8gT25jZSBwb3N0cG9uZSBpcyBpbiBzdGFibGUgd2Ugc2hvdWxkIHN3aXRjaCB0byBpbXBvcnRpbmcgdGhlIHBvc3Rwb25lIGV4cG9ydCBkaXJlY3RseVxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBEeW5hbWljU2VydmVyRXJyb3IgfSBmcm9tICcuLi8uLi9jbGllbnQvY29tcG9uZW50cy9ob29rcy1zZXJ2ZXItY29udGV4dCdcbmltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQge1xuICBnZXRSdW50aW1lU3RhZ2VQcm9taXNlLFxuICB3b3JrVW5pdEFzeW5jU3RvcmFnZSxcbn0gZnJvbSAnLi93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7IHdvcmtBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7IG1ha2VIYW5naW5nUHJvbWlzZSB9IGZyb20gJy4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHtcbiAgTUVUQURBVEFfQk9VTkRBUllfTkFNRSxcbiAgVklFV1BPUlRfQk9VTkRBUllfTkFNRSxcbiAgT1VUTEVUX0JPVU5EQVJZX05BTUUsXG4gIFJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUUsXG59IGZyb20gJy4uLy4uL2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzJ1xuaW1wb3J0IHsgc2NoZWR1bGVPbk5leHRUaWNrIH0gZnJvbSAnLi4vLi4vbGliL3NjaGVkdWxlcidcbmltcG9ydCB7IEJhaWxvdXRUb0NTUkVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3InXG5pbXBvcnQgeyBJbnZhcmlhbnRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yJ1xuXG5jb25zdCBoYXNQb3N0cG9uZSA9IHR5cGVvZiBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZSA9PT0gJ2Z1bmN0aW9uJ1xuXG5leHBvcnQgdHlwZSBEeW5hbWljQWNjZXNzID0ge1xuICAvKipcbiAgICogSWYgZGVidWdnaW5nLCB0aGlzIHdpbGwgY29udGFpbiB0aGUgc3RhY2sgdHJhY2Ugb2Ygd2hlcmUgdGhlIGR5bmFtaWMgYWNjZXNzXG4gICAqIG9jY3VycmVkLiBUaGlzIGlzIHVzZWQgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyIGFib3V0IHdoeVxuICAgKiB0aGVpciBwYWdlIGlzIGJlaW5nIHJlbmRlcmVkIGR5bmFtaWNhbGx5LlxuICAgKi9cbiAgc3RhY2s/OiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gdGhhdCB3YXMgYWNjZXNzZWQgZHluYW1pY2FsbHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBzdHJpbmdcbn1cblxuLy8gU3RvcmVzIGR5bmFtaWMgcmVhc29ucyB1c2VkIGR1cmluZyBhbiBSU0MgcmVuZGVyLlxuZXhwb3J0IHR5cGUgRHluYW1pY1RyYWNraW5nU3RhdGUgPSB7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHN0YWNrIGluZm9ybWF0aW9uIHdpbGwgYWxzbyBiZSB0cmFja2VkIGR1cmluZyBkeW5hbWljIGFjY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IGlzRGVidWdEeW5hbWljQWNjZXNzZXM6IGJvb2xlYW4gfCB1bmRlZmluZWRcblxuICAvKipcbiAgICogVGhlIGR5bmFtaWMgYWNjZXNzZXMgdGhhdCBvY2N1cnJlZCBkdXJpbmcgdGhlIHJlbmRlci5cbiAgICovXG4gIHJlYWRvbmx5IGR5bmFtaWNBY2Nlc3NlczogQXJyYXk8RHluYW1pY0FjY2Vzcz5cblxuICBzeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrOiBudWxsIHwgRXJyb3Jcbn1cblxuLy8gU3RvcmVzIGR5bmFtaWMgcmVhc29ucyB1c2VkIGR1cmluZyBhbiBTU1IgcmVuZGVyLlxuZXhwb3J0IHR5cGUgRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSA9IHtcbiAgaGFzU3VzcGVuc2VBYm92ZUJvZHk6IGJvb2xlYW5cbiAgaGFzRHluYW1pY01ldGFkYXRhOiBib29sZWFuXG4gIGhhc0R5bmFtaWNWaWV3cG9ydDogYm9vbGVhblxuICBoYXNBbGxvd2VkRHluYW1pYzogYm9vbGVhblxuICBkeW5hbWljRXJyb3JzOiBBcnJheTxFcnJvcj5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNUcmFja2luZ1N0YXRlKFxuICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzOiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBEeW5hbWljVHJhY2tpbmdTdGF0ZSB7XG4gIHJldHVybiB7XG4gICAgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyxcbiAgICBkeW5hbWljQWNjZXNzZXM6IFtdLFxuICAgIHN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s6IG51bGwsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNWYWxpZGF0aW9uU3RhdGUoKTogRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSB7XG4gIHJldHVybiB7XG4gICAgaGFzU3VzcGVuc2VBYm92ZUJvZHk6IGZhbHNlLFxuICAgIGhhc0R5bmFtaWNNZXRhZGF0YTogZmFsc2UsXG4gICAgaGFzRHluYW1pY1ZpZXdwb3J0OiBmYWxzZSxcbiAgICBoYXNBbGxvd2VkRHluYW1pYzogZmFsc2UsXG4gICAgZHluYW1pY0Vycm9yczogW10sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RHluYW1pY1JlYXNvbihcbiAgdHJhY2tpbmdTdGF0ZTogRHluYW1pY1RyYWNraW5nU3RhdGVcbik6IHVuZGVmaW5lZCB8IHN0cmluZyB7XG4gIHJldHVybiB0cmFja2luZ1N0YXRlLmR5bmFtaWNBY2Nlc3Nlc1swXT8uZXhwcmVzc2lvblxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gY29tbXVuaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgc2NvcGUgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZHluYW1pYy5cbiAqXG4gKiBJbiBtb3N0IGNhc2VzIHRoaXMgZnVuY3Rpb24gaXMgYSBuby1vcCBidXQgaWYgY2FsbGVkIGR1cmluZ1xuICogYSBQUFIgcHJlcmVuZGVyIGl0IHdpbGwgcG9zdHBvbmUgdGhlIGN1cnJlbnQgc3ViLXRyZWUgYW5kIGNhbGxpbmdcbiAqIGl0IGR1cmluZyBhIG5vcm1hbCBwcmVyZW5kZXIgd2lsbCBjYXVzZSB0aGUgZW50aXJlIHByZXJlbmRlciB0byBhYm9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya0N1cnJlbnRTY29wZUFzRHluYW1pYyhcbiAgc3RvcmU6IFdvcmtTdG9yZSxcbiAgd29ya1VuaXRTdG9yZTogdW5kZWZpbmVkIHwgRXhjbHVkZTxXb3JrVW5pdFN0b3JlLCBQcmVyZW5kZXJTdG9yZU1vZGVybj4sXG4gIGV4cHJlc3Npb246IHN0cmluZ1xuKTogdm9pZCB7XG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgLy8gSW5zaWRlIGNhY2hlIHNjb3BlcywgbWFya2luZyBhIHNjb3BlIGFzIGR5bmFtaWMgaGFzIG5vIGVmZmVjdCxcbiAgICAgICAgLy8gYmVjYXVzZSB0aGUgb3V0ZXIgY2FjaGUgc2NvcGUgY3JlYXRlcyBhIGNhY2hlIGJvdW5kYXJ5LiBUaGlzIGlzXG4gICAgICAgIC8vIHN1YnRseSBkaWZmZXJlbnQgZnJvbSByZWFkaW5nIGEgZHluYW1pYyBkYXRhIHNvdXJjZSwgd2hpY2ggaXNcbiAgICAgICAgLy8gZm9yYmlkZGVuIGluc2lkZSBhIGNhY2hlIHNjb3BlLlxuICAgICAgICByZXR1cm5cbiAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAvLyBBIHByaXZhdGUgY2FjaGUgc2NvcGUgaXMgYWxyZWFkeSBkeW5hbWljIGJ5IGRlZmluaXRpb24uXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nIGR5bmFtaWMgcmVuZGVyaW5nIG9yIHdlJ3JlIGZvcmNpbmcgc3RhdGljIHJlbmRlcmluZywgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlIGJlY2F1c2UgdGhlIGVudGlyZSBwYWdlIGlzIGFscmVhZHkgZHluYW1pY1xuICAvLyBvciBpdCdzIHN0YXRpYyBhbmQgaXQgc2hvdWxkIG5vdCB0aHJvdyBvciBwb3N0cG9uZSBoZXJlLlxuICBpZiAoc3RvcmUuZm9yY2VEeW5hbWljIHx8IHN0b3JlLmZvcmNlU3RhdGljKSByZXR1cm5cblxuICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSB3aXRoIFxcYGR5bmFtaWMgPSBcImVycm9yXCJcXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICAgIClcbiAgfVxuXG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICByZXR1cm4gcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gICAgICAgICAgc3RvcmUucm91dGUsXG4gICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICB3b3JrVW5pdFN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgICApXG4gICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMFxuXG4gICAgICAgIC8vIFdlIGFyZW4ndCBwcmVyZW5kZXJpbmcsIGJ1dCB3ZSBhcmUgZ2VuZXJhdGluZyBhIHN0YXRpYyBwYWdlLiBXZSBuZWVkXG4gICAgICAgIC8vIHRvIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgICAgICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yYFxuICAgICAgICApXG4gICAgICAgIHN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZXhwcmVzc2lvblxuICAgICAgICBzdG9yZS5keW5hbWljVXNhZ2VTdGFjayA9IGVyci5zdGFja1xuXG4gICAgICAgIHRocm93IGVyclxuICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd29ya1VuaXRTdG9yZS51c2VkRHluYW1pYyA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIHVzZWQgd2hlbiBwcmVyZW5kZXJpbmcgd2l0aG91dCBjYWNoZUNvbXBvbmVudHMgb3IgUFBSLlxuICogV2hlbiBjYWxsZWQgZHVyaW5nIGEgYnVpbGQgaXQgd2lsbCBjYXVzZSBOZXh0LmpzIHRvIGNvbnNpZGVyIHRoZSByb3V0ZSBhcyBkeW5hbWljLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24oXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgc3RvcmU6IFdvcmtTdG9yZSxcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTGVnYWN5XG4pOiBuZXZlciB7XG4gIC8vIFdlIGFyZW4ndCBwcmVyZW5kZXJpbmcgYnV0IHdlIGFyZSBnZW5lcmF0aW5nIGEgc3RhdGljIHBhZ2UuIFdlIG5lZWQgdG8gYmFpbCBvdXQgb2Ygc3RhdGljIGdlbmVyYXRpb25cbiAgY29uc3QgZXJyID0gbmV3IER5bmFtaWNTZXJ2ZXJFcnJvcihcbiAgICBgUm91dGUgJHtzdG9yZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmBcbiAgKVxuXG4gIHByZXJlbmRlclN0b3JlLnJldmFsaWRhdGUgPSAwXG5cbiAgc3RvcmUuZHluYW1pY1VzYWdlRGVzY3JpcHRpb24gPSBleHByZXNzaW9uXG4gIHN0b3JlLmR5bmFtaWNVc2FnZVN0YWNrID0gZXJyLnN0YWNrXG5cbiAgdGhyb3cgZXJyXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCB0byB0cmFjayB3aGV0aGVyIHNvbWV0aGluZyBkeW5hbWljIGhhcHBlbmVkIGV2ZW4gd2hlblxuICogd2UgYXJlIGluIGEgZHluYW1pYyByZW5kZXIuIFRoaXMgaXMgdXNlZnVsIGZvciBEZXYgd2hlcmUgYWxsIHJlbmRlcnMgYXJlIGR5bmFtaWMgYnV0XG4gKiB3ZSBzdGlsbCB0cmFjayB3aGV0aGVyIGR5bmFtaWMgQVBJcyB3ZXJlIGFjY2Vzc2VkIGZvciBoZWxwZnVsIG1lc3NhZ2luZ1xuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcih3b3JrVW5pdFN0b3JlOiBXb3JrVW5pdFN0b3JlKSB7XG4gIHN3aXRjaCAod29ya1VuaXRTdG9yZS50eXBlKSB7XG4gICAgY2FzZSAnY2FjaGUnOlxuICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgIC8vIEluc2lkZSBjYWNoZSBzY29wZXMsIG1hcmtpbmcgYSBzY29wZSBhcyBkeW5hbWljIGhhcyBubyBlZmZlY3QsXG4gICAgICAvLyBiZWNhdXNlIHRoZSBvdXRlciBjYWNoZSBzY29wZSBjcmVhdGVzIGEgY2FjaGUgYm91bmRhcnkuIFRoaXMgaXNcbiAgICAgIC8vIHN1YnRseSBkaWZmZXJlbnQgZnJvbSByZWFkaW5nIGEgZHluYW1pYyBkYXRhIHNvdXJjZSwgd2hpY2ggaXNcbiAgICAgIC8vIGZvcmJpZGRlbiBpbnNpZGUgYSBjYWNoZSBzY29wZS5cbiAgICAgIHJldHVyblxuICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgLy8gQSBwcml2YXRlIGNhY2hlIHNjb3BlIGlzIGFscmVhZHkgZHluYW1pYyBieSBkZWZpbml0aW9uLlxuICAgICAgcmV0dXJuXG4gICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICBicmVha1xuICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgd29ya1VuaXRTdG9yZS51c2VkRHluYW1pYyA9IHRydWVcbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHdvcmtVbml0U3RvcmUgc2F0aXNmaWVzIG5ldmVyXG4gIH1cbn1cblxuZnVuY3Rpb24gYWJvcnRPblN5bmNocm9ub3VzRHluYW1pY0RhdGFBY2Nlc3MoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiB2b2lkIHtcbiAgY29uc3QgcmVhc29uID0gYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LmBcblxuICBjb25zdCBlcnJvciA9IGNyZWF0ZVByZXJlbmRlckludGVycnVwdGVkRXJyb3IocmVhc29uKVxuXG4gIHByZXJlbmRlclN0b3JlLmNvbnRyb2xsZXIuYWJvcnQoZXJyb3IpXG5cbiAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgLy8gV2hlbiB3ZSBhcmVuJ3QgZGVidWdnaW5nLCB3ZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGVycm9yIGZvciB0aGVcbiAgICAgIC8vIHN0YWNrIHRyYWNlLlxuICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzXG4gICAgICAgID8gbmV3IEVycm9yKCkuc3RhY2tcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBleHByZXNzaW9uLFxuICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3MoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgZXJyb3JXaXRoU3RhY2s6IEVycm9yLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5cbik6IHZvaWQge1xuICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgYWJvcnRPblN5bmNocm9ub3VzRHluYW1pY0RhdGFBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKVxuICAvLyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBzZXQgdGhpcyB0cmFja2luZyB2YWx1ZSBhZnRlciBhYm9ydGluZy4gQWJvcnRzIGFyZSBleGVjdXRlZFxuICAvLyBzeW5jaHJvbm91c2x5IGV4Y2VwdCBmb3IgdGhlIGNhc2Ugd2hlcmUgeW91IGFib3J0IGR1cmluZyByZW5kZXIgaXRzZWxmLiBCeSBzZXR0aW5nIHRoaXNcbiAgLy8gdmFsdWUgbGF0ZSB3ZSBjYW4gdXNlIGl0IHRvIGRldGVybWluZSBpZiBhbnkgb2YgdGhlIGFib3J0ZWQgdGFza3MgYXJlIHRoZSB0YXNrIHRoYXRcbiAgLy8gY2FsbGVkIHRoZSBzeW5jIElPIGV4cHJlc3Npb24gaW4gdGhlIGZpcnN0IHBsYWNlLlxuICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgaWYgKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID09PSBudWxsKSB7XG4gICAgICBkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9IGVycm9yV2l0aFN0YWNrXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2KFxuICByZXF1ZXN0U3RvcmU6IFJlcXVlc3RTdG9yZVxuKTogdm9pZCB7XG4gIC8vIFdlIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjb250cm9sbGVyIHRvIGFib3J0IGJ1dCB3ZSBkbyB0aGUgc2VtYW50aWMgZXF1aXZhbGVudCBieVxuICAvLyBhZHZhbmNpbmcgdGhlIHJlcXVlc3Qgc3RvcmUgb3V0IG9mIHByZXJlbmRlciBtb2RlXG4gIHJlcXVlc3RTdG9yZS5wcmVyZW5kZXJQaGFzZSA9IGZhbHNlXG59XG5cbi8qKlxuICogdXNlIHRoaXMgZnVuY3Rpb24gd2hlbiBwcmVyZW5kZXJpbmcgd2l0aCBjYWNoZUNvbXBvbmVudHMuIElmIHdlIGFyZSBkb2luZyBhXG4gKiBwcm9zcGVjdGl2ZSBwcmVyZW5kZXIgd2UgZG9uJ3QgYWN0dWFsbHkgYWJvcnQgYmVjYXVzZSB3ZSB3YW50IHRvIGRpc2NvdmVyXG4gKiBhbGwgY2FjaGVzIGZvciB0aGUgc2hlbGwuIElmIHRoaXMgaXMgdGhlIGFjdHVhbCBwcmVyZW5kZXIgd2UgZG8gYWJvcnQuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBhY2NlcHRzIGEgcHJlcmVuZGVyU3RvcmUgYnV0IHRoZSBjYWxsZXIgc2hvdWxkIGVuc3VyZSB3ZSdyZVxuICogYWN0dWFsbHkgcnVubmluZyBpbiBjYWNoZUNvbXBvbmVudHMgbW9kZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgZXJyb3JXaXRoU3RhY2s6IEVycm9yLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5cbik6IG5ldmVyIHtcbiAgY29uc3QgcHJlcmVuZGVyU2lnbmFsID0gcHJlcmVuZGVyU3RvcmUuY29udHJvbGxlci5zaWduYWxcbiAgaWYgKHByZXJlbmRlclNpZ25hbC5hYm9ydGVkID09PSBmYWxzZSkge1xuICAgIC8vIFRPRE8gaXQgd291bGQgYmUgYmV0dGVyIHRvIG1vdmUgdGhpcyBhYm9ydGVkIGNoZWNrIGludG8gdGhlIGNhbGxzaXRlIHNvIHdlIGNhbiBhdm9pZCBtYWtpbmdcbiAgICAvLyB0aGUgZXJyb3Igb2JqZWN0IHdoZW4gaXQgaXNuJ3QgcmVsZXZhbnQgdG8gdGhlIGFib3J0aW5nIG9mIHRoZSBwcmVyZW5kZXIgaG93ZXZlclxuICAgIC8vIHNpbmNlIHdlIG5lZWQgdGhlIHRocm93IHNlbWFudGljcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgd2UgYWJvcnQgaXQgaXMgZWFzaWVyIHRvIGxhbmRcbiAgICAvLyB0aGlzIHdheS4gU2VlIGhvdyB0aGlzIHdhcyBoYW5kbGVkIHdpdGggYGFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NgIGZvciBhIGNsb3NlclxuICAgIC8vIHRvIGlkZWFsIGltcGxlbWVudGF0aW9uXG4gICAgYWJvcnRPblN5bmNocm9ub3VzRHluYW1pY0RhdGFBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKVxuICAgIC8vIEl0IGlzIGltcG9ydGFudCB0aGF0IHdlIHNldCB0aGlzIHRyYWNraW5nIHZhbHVlIGFmdGVyIGFib3J0aW5nLiBBYm9ydHMgYXJlIGV4ZWN1dGVkXG4gICAgLy8gc3luY2hyb25vdXNseSBleGNlcHQgZm9yIHRoZSBjYXNlIHdoZXJlIHlvdSBhYm9ydCBkdXJpbmcgcmVuZGVyIGl0c2VsZi4gQnkgc2V0dGluZyB0aGlzXG4gICAgLy8gdmFsdWUgbGF0ZSB3ZSBjYW4gdXNlIGl0IHRvIGRldGVybWluZSBpZiBhbnkgb2YgdGhlIGFib3J0ZWQgdGFza3MgYXJlIHRoZSB0YXNrIHRoYXRcbiAgICAvLyBjYWxsZWQgdGhlIHN5bmMgSU8gZXhwcmVzc2lvbiBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgICAgaWYgKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID09PSBudWxsKSB7XG4gICAgICAgIGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID0gZXJyb3JXaXRoU3RhY2tcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdGhyb3cgY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihcbiAgICBgUm91dGUgJHtyb3V0ZX0gbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkICR7ZXhwcmVzc2lvbn0uYFxuICApXG59XG5cbi8qKlxuICogVXNlIHRoaXMgZnVuY3Rpb24gd2hlbiBkeW5hbWljYWxseSBwcmVyZW5kZXJpbmcgd2l0aCBkeW5hbWljSU8uXG4gKiBXZSBkb24ndCB3YW50IHRvIGVycm9yLCBiZWNhdXNlIGl0J3MgYmV0dGVyIHRvIHJldHVybiBzb21ldGhpbmdcbiAqIChhbmQgd2UndmUgYWxyZWFkeSBhYm9ydGVkIHRoZSByZW5kZXIgYXQgdGhlIHBvaW50IHdoZXJlIHRoZSBzeW5jIGR5bmFtaWMgZXJyb3Igb2NjdXJlZCksXG4gKiBidXQgd2Ugc2hvdWxkIGxvZyBhbiBlcnJvciBzZXJ2ZXItc2lkZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2Fybk9uU3luY0R5bmFtaWNFcnJvcihkeW5hbWljVHJhY2tpbmc6IER5bmFtaWNUcmFja2luZ1N0YXRlKSB7XG4gIGlmIChkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaykge1xuICAgIC8vIHRoZSBzZXJ2ZXIgZGlkIHNvbWV0aGluZyBzeW5jIGR5bmFtaWMsIGxpa2VseVxuICAgIC8vIGxlYWRpbmcgdG8gYW4gZWFybHkgdGVybWluYXRpb24gb2YgdGhlIHByZXJlbmRlci5cbiAgICBjb25zb2xlLmVycm9yKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKVxuICB9XG59XG5cbi8vIEZvciBub3cgdGhlc2UgaW1wbGVtZW50YXRpb25zIGFyZSB0aGUgc2FtZSBzbyB3ZSBqdXN0IHJlZXhwb3J0XG5leHBvcnQgY29uc3QgdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYgPVxuICB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgd2lsbCBjYWxsIGBSZWFjdC5wb3N0cG9uZWAgdGhhdCB0aHJvd3MgdGhlIHBvc3Rwb25lZCBlcnJvci5cbiAqL1xudHlwZSBQb3N0cG9uZVByb3BzID0ge1xuICByZWFzb246IHN0cmluZ1xuICByb3V0ZTogc3RyaW5nXG59XG5leHBvcnQgZnVuY3Rpb24gUG9zdHBvbmUoeyByZWFzb24sIHJvdXRlIH06IFBvc3Rwb25lUHJvcHMpOiBuZXZlciB7XG4gIGNvbnN0IHByZXJlbmRlclN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPVxuICAgIHByZXJlbmRlclN0b3JlICYmIHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJ1xuICAgICAgPyBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgICAgIDogbnVsbFxuICBwb3N0cG9uZVdpdGhUcmFja2luZyhyb3V0ZSwgcmVhc29uLCBkeW5hbWljVHJhY2tpbmcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBkeW5hbWljVHJhY2tpbmc6IG51bGwgfCBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogbmV2ZXIge1xuICBhc3NlcnRQb3N0cG9uZSgpXG4gIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgLy8gV2hlbiB3ZSBhcmVuJ3QgZGVidWdnaW5nLCB3ZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGVycm9yIGZvciB0aGVcbiAgICAgIC8vIHN0YWNrIHRyYWNlLlxuICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzXG4gICAgICAgID8gbmV3IEVycm9yKCkuc3RhY2tcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBleHByZXNzaW9uLFxuICAgIH0pXG4gIH1cblxuICBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZShjcmVhdGVQb3N0cG9uZVJlYXNvbihyb3V0ZSwgZXhwcmVzc2lvbikpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBvc3Rwb25lUmVhc29uKHJvdXRlOiBzdHJpbmcsIGV4cHJlc3Npb246IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIGBSb3V0ZSAke3JvdXRlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gYCArXG4gICAgYFJlYWN0IHRocm93cyB0aGlzIHNwZWNpYWwgb2JqZWN0IHRvIGluZGljYXRlIHdoZXJlLiBJdCBzaG91bGQgbm90IGJlIGNhdWdodCBieSBgICtcbiAgICBgeW91ciBvd24gdHJ5L2NhdGNoLiBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNQb3N0cG9uZShlcnI6IHVua25vd24pIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnICYmXG4gICAgZXJyICE9PSBudWxsICYmXG4gICAgdHlwZW9mIChlcnIgYXMgYW55KS5tZXNzYWdlID09PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gaXNEeW5hbWljUG9zdHBvbmVSZWFzb24oKGVyciBhcyBhbnkpLm1lc3NhZ2UpXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIGlzRHluYW1pY1Bvc3Rwb25lUmVhc29uKHJlYXNvbjogc3RyaW5nKSB7XG4gIHJldHVybiAoXG4gICAgcmVhc29uLmluY2x1ZGVzKFxuICAgICAgJ25lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCdcbiAgICApICYmXG4gICAgcmVhc29uLmluY2x1ZGVzKFxuICAgICAgJ0xlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3Bwci1jYXVnaHQtZXJyb3InXG4gICAgKVxuICApXG59XG5cbmlmIChpc0R5bmFtaWNQb3N0cG9uZVJlYXNvbihjcmVhdGVQb3N0cG9uZVJlYXNvbignJSUlJywgJ15eXicpKSA9PT0gZmFsc2UpIHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdJbnZhcmlhbnQ6IGlzRHluYW1pY1Bvc3Rwb25lIG1pc2lkZW50aWZpZWQgYSBwb3N0cG9uZSByZWFzb24uIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcydcbiAgKVxufVxuXG5jb25zdCBORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCA9ICdORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCdcblxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiBFcnJvciB7XG4gIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpXG4gIDsoZXJyb3IgYXMgYW55KS5kaWdlc3QgPSBORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRFxuICByZXR1cm4gZXJyb3Jcbn1cblxudHlwZSBEaWdlc3RFcnJvciA9IEVycm9yICYge1xuICBkaWdlc3Q6IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgRGlnZXN0RXJyb3Ige1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiZcbiAgICBlcnJvciAhPT0gbnVsbCAmJlxuICAgIChlcnJvciBhcyBhbnkpLmRpZ2VzdCA9PT0gTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQgJiZcbiAgICAnbmFtZScgaW4gZXJyb3IgJiZcbiAgICAnbWVzc2FnZScgaW4gZXJyb3IgJiZcbiAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjY2Vzc2VkRHluYW1pY0RhdGEoXG4gIGR5bmFtaWNBY2Nlc3NlczogQXJyYXk8RHluYW1pY0FjY2Vzcz5cbik6IGJvb2xlYW4ge1xuICByZXR1cm4gZHluYW1pY0FjY2Vzc2VzLmxlbmd0aCA+IDBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN1bWVEeW5hbWljQWNjZXNzKFxuICBzZXJ2ZXJEeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZSxcbiAgY2xpZW50RHluYW1pYzogRHluYW1pY1RyYWNraW5nU3RhdGVcbik6IER5bmFtaWNUcmFja2luZ1N0YXRlWydkeW5hbWljQWNjZXNzZXMnXSB7XG4gIC8vIFdlIG11dGF0ZSBiZWNhdXNlIHdlIG9ubHkgY2FsbCB0aGlzIG9uY2Ugd2UgYXJlIG5vIGxvbmdlciB3cml0aW5nXG4gIC8vIHRvIHRoZSBkeW5hbWljVHJhY2tpbmdTdGF0ZSBhbmQgaXQncyBtb3JlIGVmZmljaWVudCB0aGFuIGNyZWF0aW5nIGEgbmV3XG4gIC8vIGFycmF5LlxuICBzZXJ2ZXJEeW5hbWljLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKC4uLmNsaWVudER5bmFtaWMuZHluYW1pY0FjY2Vzc2VzKVxuICByZXR1cm4gc2VydmVyRHluYW1pYy5keW5hbWljQWNjZXNzZXNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdER5bmFtaWNBUElBY2Nlc3NlcyhcbiAgZHluYW1pY0FjY2Vzc2VzOiBBcnJheTxEeW5hbWljQWNjZXNzPlxuKTogc3RyaW5nW10ge1xuICByZXR1cm4gZHluYW1pY0FjY2Vzc2VzXG4gICAgLmZpbHRlcihcbiAgICAgIChhY2Nlc3MpOiBhY2Nlc3MgaXMgUmVxdWlyZWQ8RHluYW1pY0FjY2Vzcz4gPT5cbiAgICAgICAgdHlwZW9mIGFjY2Vzcy5zdGFjayA9PT0gJ3N0cmluZycgJiYgYWNjZXNzLnN0YWNrLmxlbmd0aCA+IDBcbiAgICApXG4gICAgLm1hcCgoeyBleHByZXNzaW9uLCBzdGFjayB9KSA9PiB7XG4gICAgICBzdGFjayA9IHN0YWNrXG4gICAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBcIkVycm9yOiBcIiBwcmVmaXggZnJvbSB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc3RhY2sgdHJhY2UgYXNcbiAgICAgICAgLy8gd2VsbCBhcyB0aGUgZmlyc3QgNCBsaW5lcyBvZiB0aGUgc3RhY2sgdHJhY2Ugd2hpY2ggaXMgdGhlIGRpc3RhbmNlXG4gICAgICAgIC8vIGZyb20gdGhlIHVzZXIgY29kZSBhbmQgdGhlIGBuZXcgRXJyb3IoKS5zdGFja2AgY2FsbC5cbiAgICAgICAgLnNsaWNlKDQpXG4gICAgICAgIC5maWx0ZXIoKGxpbmUpID0+IHtcbiAgICAgICAgICAvLyBFeGNsdWRlIE5leHQuanMgaW50ZXJuYWxzIGZyb20gdGhlIHN0YWNrIHRyYWNlLlxuICAgICAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCdub2RlX21vZHVsZXMvbmV4dC8nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRXhjbHVkZSBhbm9ueW1vdXMgZnVuY3Rpb25zIGZyb20gdGhlIHN0YWNrIHRyYWNlLlxuICAgICAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCcgKDxhbm9ueW1vdXM+KScpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBFeGNsdWRlIE5vZGUuanMgaW50ZXJuYWxzIGZyb20gdGhlIHN0YWNrIHRyYWNlLlxuICAgICAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCcgKG5vZGU6JykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCdcXG4nKVxuICAgICAgcmV0dXJuIGBEeW5hbWljIEFQSSBVc2FnZSBEZWJ1ZyAtICR7ZXhwcmVzc2lvbn06XFxuJHtzdGFja31gXG4gICAgfSlcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UG9zdHBvbmUoKSB7XG4gIGlmICghaGFzUG9zdHBvbmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YXJpYW50OiBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZSBpcyBub3QgZGVmaW5lZC4gVGhpcyBzdWdnZXN0cyB0aGUgd3JvbmcgdmVyc2lvbiBvZiBSZWFjdCB3YXMgbG9hZGVkLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanNgXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2sgdG8gYWxsb3cgdXMgdG8gYWJvcnQgYSByZW5kZXIgdXNpbmcgYSBQb3N0cG9uZSBpbnN0YW5jZSBpbnN0ZWFkIG9mIGFuIEVycm9yIHdoaWNoIGNoYW5nZXMgUmVhY3Qnc1xuICogYWJvcnQgc2VtYW50aWNzIHNsaWdodGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVuZGVySW5Ccm93c2VyQWJvcnRTaWduYWwoKTogQWJvcnRTaWduYWwge1xuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gIGNvbnRyb2xsZXIuYWJvcnQobmV3IEJhaWxvdXRUb0NTUkVycm9yKCdSZW5kZXIgaW4gQnJvd3NlcicpKVxuICByZXR1cm4gY29udHJvbGxlci5zaWduYWxcbn1cblxuLyoqXG4gKiBJbiBhIHByZXJlbmRlciwgd2UgbWF5IGVuZCB1cCB3aXRoIGhhbmdpbmcgUHJvbWlzZXMgYXMgaW5wdXRzIGR1ZSB0aGVtXG4gKiBzdGFsbGluZyBvbiBjb25uZWN0aW9uKCkgb3IgYmVjYXVzZSB0aGV5J3JlIGxvYWRpbmcgZHluYW1pYyBkYXRhLiBJbiB0aGF0XG4gKiBjYXNlIHdlIG5lZWQgdG8gYWJvcnQgdGhlIGVuY29kaW5nIG9mIGFyZ3VtZW50cyBzaW5jZSB0aGV5J2xsIG5ldmVyIGNvbXBsZXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGFuZ2luZ0lucHV0QWJvcnRTaWduYWwoXG4gIHdvcmtVbml0U3RvcmU6IFdvcmtVbml0U3RvcmVcbik6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcblxuICAgICAgaWYgKHdvcmtVbml0U3RvcmUuY2FjaGVTaWduYWwpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIGNhY2hlU2lnbmFsIGl0IG1lYW5zIHdlJ3JlIGluIGEgcHJvc3BlY3RpdmUgcmVuZGVyLiBJZlxuICAgICAgICAvLyB0aGUgaW5wdXQgd2UncmUgd2FpdGluZyBvbiBpcyBjb21pbmcgZnJvbSBhbm90aGVyIGNhY2hlLCB3ZSBkbyB3YW50XG4gICAgICAgIC8vIHRvIHdhaXQgZm9yIGl0IHNvIHRoYXQgd2UgY2FuIHJlc29sdmUgdGhpcyBjYWNoZSBlbnRyeSB0b28uXG4gICAgICAgIHdvcmtVbml0U3RvcmUuY2FjaGVTaWduYWwuaW5wdXRSZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnRyb2xsZXIuYWJvcnQoKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlIHdlJ3JlIGluIHRoZSBmaW5hbCByZW5kZXIgYW5kIHdlIHNob3VsZCBhbHJlYWR5IGhhdmUgYWxsXG4gICAgICAgIC8vIG91ciBjYWNoZXMgZmlsbGVkLlxuICAgICAgICAvLyBJZiB0aGUgcHJlcmVuZGVyIHVzZXMgc3RhZ2VzLCB3ZSBoYXZlIHdhaXQgdW50aWwgdGhlIHJ1bnRpbWUgc3RhZ2UsXG4gICAgICAgIC8vIGF0IHdoaWNoIHBvaW50IGFsbCBydW50aW1lIGlucHV0cyB3aWxsIGJlIHJlc29sdmVkLlxuICAgICAgICAvLyAob3RoZXJ3aXNlLCBhIHJ1bnRpbWUgcHJlcmVuZGVyIG1pZ2h0IGNvbnNpZGVyIGBjb29raWVzKClgIGhhbmdpbmdcbiAgICAgICAgLy8gIGV2ZW4gdGhvdWdoIHRoZXknZCByZXNvbHZlIGluIHRoZSBuZXh0IHRhc2suKVxuICAgICAgICAvL1xuICAgICAgICAvLyBXZSBtaWdodCBzdGlsbCBiZSB3YWl0aW5nIG9uIHNvbWUgbWljcm90YXNrcyBzbyB3ZVxuICAgICAgICAvLyB3YWl0IG9uZSB0aWNrIGJlZm9yZSBnaXZpbmcgdXAuIFdoZW4gd2UgZ2l2ZSB1cCwgd2Ugc3RpbGwgd2FudCB0b1xuICAgICAgICAvLyByZW5kZXIgdGhlIGNvbnRlbnQgb2YgdGhpcyBjYWNoZSBhcyBkZWVwbHkgYXMgd2UgY2FuIHNvIHRoYXQgd2UgY2FuXG4gICAgICAgIC8vIHN1c3BlbmQgYXMgZGVlcGx5IGFzIHBvc3NpYmxlIGluIHRoZSB0cmVlIG9yIG5vdCBhdCBhbGwgaWYgd2UgZG9uJ3RcbiAgICAgICAgLy8gZW5kIHVwIHdhaXRpbmcgZm9yIHRoZSBpbnB1dC5cbiAgICAgICAgY29uc3QgcnVudGltZVN0YWdlUHJvbWlzZSA9IGdldFJ1bnRpbWVTdGFnZVByb21pc2Uod29ya1VuaXRTdG9yZSlcbiAgICAgICAgaWYgKHJ1bnRpbWVTdGFnZVByb21pc2UpIHtcbiAgICAgICAgICBydW50aW1lU3RhZ2VQcm9taXNlLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHNjaGVkdWxlT25OZXh0VGljaygoKSA9PiBjb250cm9sbGVyLmFib3J0KCkpXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNjaGVkdWxlT25OZXh0VGljaygoKSA9PiBjb250cm9sbGVyLmFib3J0KCkpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuc2lnbmFsXG4gICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgY2FzZSAncmVxdWVzdCc6XG4gICAgY2FzZSAnY2FjaGUnOlxuICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICBkZWZhdWx0OlxuICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYW5ub3RhdGVEeW5hbWljQWNjZXNzKFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKSB7XG4gIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgZHluYW1pY1RyYWNraW5nLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKHtcbiAgICAgIHN0YWNrOiBkeW5hbWljVHJhY2tpbmcuaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlc1xuICAgICAgICA/IG5ldyBFcnJvcigpLnN0YWNrXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZXhwcmVzc2lvbixcbiAgICB9KVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VEeW5hbWljUm91dGVQYXJhbXMoZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAod29ya1N0b3JlICYmIHdvcmtVbml0U3RvcmUpIHtcbiAgICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICBjYXNlICdwcmVyZW5kZXInOiB7XG4gICAgICAgIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gd29ya1VuaXRTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zXG4gICAgICAgIGlmIChmYWxsYmFja1BhcmFtcyAmJiBmYWxsYmFja1BhcmFtcy5zaXplID4gMCkge1xuICAgICAgICAgIC8vIFdlIGFyZSBpbiBhIHByZXJlbmRlciB3aXRoIGNhY2hlQ29tcG9uZW50cyBzZW1hbnRpY3MuIFdlIGFyZSBnb2luZyB0b1xuICAgICAgICAgIC8vIGhhbmcgaGVyZSBhbmQgbmV2ZXIgcmVzb2x2ZS4gVGhpcyB3aWxsIGNhdXNlIHRoZSBjdXJyZW50bHlcbiAgICAgICAgICAvLyByZW5kZXJpbmcgY29tcG9uZW50IHRvIGVmZmVjdGl2ZWx5IGJlIGEgZHluYW1pYyBob2xlLlxuICAgICAgICAgIFJlYWN0LnVzZShcbiAgICAgICAgICAgIG1ha2VIYW5naW5nUHJvbWlzZShcbiAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsXG4gICAgICAgICAgICAgIHdvcmtTdG9yZS5yb3V0ZSxcbiAgICAgICAgICAgICAgZXhwcmVzc2lvblxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6IHtcbiAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXNcbiAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zICYmIGZhbGxiYWNrUGFyYW1zLnNpemUgPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHBvc3Rwb25lV2l0aFRyYWNraW5nKFxuICAgICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgICAgICBgXFxgJHtleHByZXNzaW9ufVxcYCB3YXMgY2FsbGVkIGR1cmluZyBhIHJ1bnRpbWUgcHJlcmVuZGVyLiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7ZXhwcmVzc2lvbn0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBzZXJ2ZXIgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYFxuICAgICAgICApXG4gICAgICBjYXNlICdjYWNoZSc6XG4gICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAgIGBcXGAke2V4cHJlc3Npb259XFxgIHdhcyBjYWxsZWQgaW5zaWRlIGEgY2FjaGUgc2NvcGUuIE5leHQuanMgc2hvdWxkIGJlIHByZXZlbnRpbmcgJHtleHByZXNzaW9ufSBmcm9tIGJlaW5nIGluY2x1ZGVkIGluIHNlcnZlciBjb21wb25lbnRzIHN0YXRpY2FsbHksIGJ1dCBkaWQgbm90IGluIHRoaXMgY2FzZS5gXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBoYXNTdXNwZW5zZVJlZ2V4ID0gL1xcblxccythdCBTdXNwZW5zZSBcXCg8YW5vbnltb3VzPlxcKS9cblxuLy8gQ29tbW9uIGltcGxpY2l0IGJvZHkgdGFncyB0aGF0IFJlYWN0IHdpbGwgdHJlYXQgYXMgYm9keSB3aGVuIHBsYWNlZCBkaXJlY3RseSBpbiBodG1sXG5jb25zdCBib2R5QW5kSW1wbGljaXRUYWdzID1cbiAgJ2JvZHl8ZGl2fG1haW58c2VjdGlvbnxhcnRpY2xlfGFzaWRlfGhlYWRlcnxmb290ZXJ8bmF2fGZvcm18cHxzcGFufGgxfGgyfGgzfGg0fGg1fGg2J1xuXG4vLyBEZXRlY3RzIHdoZW4gUm9vdExheW91dEJvdW5kYXJ5IChvdXIgZnJhbWV3b3JrIG1hcmtlciBjb21wb25lbnQpIGFwcGVhcnNcbi8vIGFmdGVyIFN1c3BlbnNlIGluIHRoZSBjb21wb25lbnQgc3RhY2ssIGluZGljYXRpbmcgdGhlIHJvb3QgbGF5b3V0IGlzIHdyYXBwZWRcbi8vIHdpdGhpbiBhIFN1c3BlbnNlIGJvdW5kYXJ5LiBFbnN1cmVzIG5vIGJvZHkvaHRtbC9pbXBsaWNpdC1ib2R5IGNvbXBvbmVudHMgYXJlIGluIGJldHdlZW4uXG4vL1xuLy8gRXhhbXBsZSBtYXRjaGVzOlxuLy8gICBhdCBTdXNwZW5zZSAoPGFub255bW91cz4pXG4vLyAgIGF0IF9fbmV4dF9yb290X2xheW91dF9ib3VuZGFyeV9fICg8YW5vbnltb3VzPilcbi8vXG4vLyBPciB3aXRoIG90aGVyIGNvbXBvbmVudHMgaW4gYmV0d2VlbiAoYnV0IG5vdCBib2R5L2h0bWwvaW1wbGljaXQtYm9keSk6XG4vLyAgIGF0IFN1c3BlbnNlICg8YW5vbnltb3VzPilcbi8vICAgYXQgU29tZUNvbXBvbmVudCAoPGFub255bW91cz4pXG4vLyAgIGF0IF9fbmV4dF9yb290X2xheW91dF9ib3VuZGFyeV9fICg8YW5vbnltb3VzPilcbmNvbnN0IGhhc1N1c3BlbnNlQmVmb3JlUm9vdExheW91dFdpdGhvdXRCb2R5T3JJbXBsaWNpdEJvZHlSZWdleCA9IG5ldyBSZWdFeHAoXG4gIGBcXFxcblxcXFxzK2F0IFN1c3BlbnNlIFxcXFwoPGFub255bW91cz5cXFxcKSg/Oig/IVxcXFxuXFxcXHMrYXQgKD86JHtib2R5QW5kSW1wbGljaXRUYWdzfSkgXFxcXCg8YW5vbnltb3VzPlxcXFwpKVtcXFxcc1xcXFxTXSkqP1xcXFxuXFxcXHMrYXQgJHtST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FfSBcXFxcKFteXFxcXG5dKlxcXFwpYFxuKVxuXG5jb25zdCBoYXNNZXRhZGF0YVJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgYFxcXFxuXFxcXHMrYXQgJHtNRVRBREFUQV9CT1VOREFSWV9OQU1FfVtcXFxcblxcXFxzXWBcbilcbmNvbnN0IGhhc1ZpZXdwb3J0UmVnZXggPSBuZXcgUmVnRXhwKFxuICBgXFxcXG5cXFxccythdCAke1ZJRVdQT1JUX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYFxuKVxuY29uc3QgaGFzT3V0bGV0UmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcblxcXFxzK2F0ICR7T1VUTEVUX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYClcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrQWxsb3dlZER5bmFtaWNBY2Nlc3MoXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlLFxuICBjb21wb25lbnRTdGFjazogc3RyaW5nLFxuICBkeW5hbWljVmFsaWRhdGlvbjogRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSxcbiAgY2xpZW50RHluYW1pYzogRHluYW1pY1RyYWNraW5nU3RhdGVcbikge1xuICBpZiAoaGFzT3V0bGV0UmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHRyYWNrIHRoYXQgdGhpcyBpcyBkeW5hbWljLiBJdCBpcyBvbmx5IHNvIHdoZW4gc29tZXRoaW5nIGVsc2UgaXMgYWxzbyBkeW5hbWljLlxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKGhhc01ldGFkYXRhUmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICBkeW5hbWljVmFsaWRhdGlvbi5oYXNEeW5hbWljTWV0YWRhdGEgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzVmlld3BvcnRSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNWaWV3cG9ydCA9IHRydWVcbiAgICByZXR1cm5cbiAgfSBlbHNlIGlmIChcbiAgICBoYXNTdXNwZW5zZUJlZm9yZVJvb3RMYXlvdXRXaXRob3V0Qm9keU9ySW1wbGljaXRCb2R5UmVnZXgudGVzdChcbiAgICAgIGNvbXBvbmVudFN0YWNrXG4gICAgKVxuICApIHtcbiAgICAvLyBGb3IgU3VzcGVuc2Ugd2l0aGluIGJvZHksIHRoZSBwcmVsdWRlIHdvdWxkbid0IGJlIGVtcHR5IHNvIGl0IHdvdWxkbid0IHZpb2xhdGUgdGhlIGVtcHR5IHN0YXRpYyBzaGVsbHMgcnVsZS5cbiAgICAvLyBCdXQgaWYgeW91IGhhdmUgU3VzcGVuc2UgYWJvdmUgYm9keSwgdGhlIHByZWx1ZGUgaXMgZW1wdHkgYnV0IHdlIGFsbG93IHRoYXQgYmVjYXVzZSBoYXZpbmcgU3VzcGVuc2VcbiAgICAvLyBpcyBhbiBleHBsaWNpdCBzaWduYWwgZnJvbSB0aGUgdXNlciB0aGF0IHRoZXkgYWNrbm93bGVkZ2UgdGhlIGVtcHR5IHNoZWxsIGFuZCB3YW50IGR5bmFtaWMgcmVuZGVyaW5nLlxuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0FsbG93ZWREeW5hbWljID0gdHJ1ZVxuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc1N1c3BlbnNlQWJvdmVCb2R5ID0gdHJ1ZVxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKGhhc1N1c3BlbnNlUmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAvLyB0aGlzIGVycm9yIGhhZCBhIFN1c3BlbnNlIGJvdW5kYXJ5IGFib3ZlIGl0IHNvIHdlIGRvbid0IG5lZWQgdG8gcmVwb3J0IGl0IGFzIGEgc291cmNlXG4gICAgLy8gb2YgZGlzYWxsb3dlZFxuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0FsbG93ZWREeW5hbWljID0gdHJ1ZVxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKGNsaWVudER5bmFtaWMuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaykge1xuICAgIC8vIFRoaXMgdGFzayB3YXMgdGhlIHRhc2sgdGhhdCBjYWxsZWQgdGhlIHN5bmMgZXJyb3IuXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9ycy5wdXNoKFxuICAgICAgY2xpZW50RHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrXG4gICAgKVxuICAgIHJldHVyblxuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIjogQSBjb21wb25lbnQgYWNjZXNzZWQgZGF0YSwgaGVhZGVycywgcGFyYW1zLCBzZWFyY2hQYXJhbXMsIG9yIGEgc2hvcnQtbGl2ZWQgY2FjaGUgd2l0aG91dCBhIFN1c3BlbnNlIGJvdW5kYXJ5IG5vciBhIFwidXNlIGNhY2hlXCIgYWJvdmUgaXQuIFNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLW1pc3Npbmctc3VzcGVuc2VgXG4gICAgY29uc3QgZXJyb3IgPSBjcmVhdGVFcnJvcldpdGhDb21wb25lbnRPck93bmVyU3RhY2sobWVzc2FnZSwgY29tcG9uZW50U3RhY2spXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9ycy5wdXNoKGVycm9yKVxuICAgIHJldHVyblxuICB9XG59XG5cbi8qKlxuICogSW4gZGV2IG1vZGUsIHdlIHByZWZlciB1c2luZyB0aGUgb3duZXIgc3RhY2ssIG90aGVyd2lzZSB0aGUgcHJvdmlkZWRcbiAqIGNvbXBvbmVudCBzdGFjayBpcyB1c2VkLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFcnJvcldpdGhDb21wb25lbnRPck93bmVyU3RhY2soXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgY29tcG9uZW50U3RhY2s6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IG93bmVyU3RhY2sgPVxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgUmVhY3QuY2FwdHVyZU93bmVyU3RhY2tcbiAgICAgID8gUmVhY3QuY2FwdHVyZU93bmVyU3RhY2soKVxuICAgICAgOiBudWxsXG5cbiAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgZXJyb3Iuc3RhY2sgPSBlcnJvci5uYW1lICsgJzogJyArIG1lc3NhZ2UgKyAob3duZXJTdGFjayA/PyBjb21wb25lbnRTdGFjaylcbiAgcmV0dXJuIGVycm9yXG59XG5cbmV4cG9ydCBlbnVtIFByZWx1ZGVTdGF0ZSB7XG4gIEZ1bGwgPSAwLFxuICBFbXB0eSA9IDEsXG4gIEVycm9yZWQgPSAyLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nRGlzYWxsb3dlZER5bmFtaWNFcnJvcihcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGVycm9yOiBFcnJvclxuKTogdm9pZCB7XG4gIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG5cbiAgaWYgKCF3b3JrU3RvcmUuZGV2KSB7XG4gICAgaWYgKHdvcmtTdG9yZS5oYXNSZWFkYWJsZUVycm9yU3RhY2tzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgVG8gZ2V0IGEgbW9yZSBkZXRhaWxlZCBzdGFjayB0cmFjZSBhbmQgcGlucG9pbnQgdGhlIGlzc3VlLCBzdGFydCB0aGUgYXBwIGluIGRldmVsb3BtZW50IG1vZGUgYnkgcnVubmluZyBcXGBuZXh0IGRldlxcYCwgdGhlbiBvcGVuIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgaW4geW91ciBicm93c2VyIHRvIGludmVzdGlnYXRlIHRoZSBlcnJvci5gXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRvIGdldCBhIG1vcmUgZGV0YWlsZWQgc3RhY2sgdHJhY2UgYW5kIHBpbnBvaW50IHRoZSBpc3N1ZSwgdHJ5IG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAtIFN0YXJ0IHRoZSBhcHAgaW4gZGV2ZWxvcG1lbnQgbW9kZSBieSBydW5uaW5nIFxcYG5leHQgZGV2XFxgLCB0aGVuIG9wZW4gXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBpbiB5b3VyIGJyb3dzZXIgdG8gaW52ZXN0aWdhdGUgdGhlIGVycm9yLlxuICAtIFJlcnVuIHRoZSBwcm9kdWN0aW9uIGJ1aWxkIHdpdGggXFxgbmV4dCBidWlsZCAtLWRlYnVnLXByZXJlbmRlclxcYCB0byBnZW5lcmF0ZSBiZXR0ZXIgc3RhY2sgdHJhY2VzLmApXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0lmRGlzYWxsb3dlZER5bmFtaWMoXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlLFxuICBwcmVsdWRlOiBQcmVsdWRlU3RhdGUsXG4gIGR5bmFtaWNWYWxpZGF0aW9uOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlLFxuICBzZXJ2ZXJEeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogdm9pZCB7XG4gIGlmIChwcmVsdWRlICE9PSBQcmVsdWRlU3RhdGUuRnVsbCkge1xuICAgIGlmIChkeW5hbWljVmFsaWRhdGlvbi5oYXNTdXNwZW5zZUFib3ZlQm9keSkge1xuICAgICAgLy8gVGhpcyByb3V0ZSBoYXMgb3B0ZWQgaW50byBhbGxvd2luZyBmdWxseSBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgLy8gYnkgaW5jbHVkaW5nIGEgU3VzcGVuc2UgYm91bmRhcnkgYWJvdmUgdGhlIGJvZHkuIEluIHRoaXMgY2FzZVxuICAgICAgLy8gYSBsYWNrIG9mIGEgc2hlbGwgaXMgbm90IGNvbnNpZGVyZWQgZGlzYWxsb3dlZCBzbyB3ZSBzaW1wbHkgcmV0dXJuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSB7XG4gICAgICAvLyBUaGVyZSBpcyBubyBzaGVsbCBhbmQgdGhlIHNlcnZlciBkaWQgc29tZXRoaW5nIHN5bmMgZHluYW1pYyBsaWtlbHlcbiAgICAgIC8vIGxlYWRpbmcgdG8gYW4gZWFybHkgdGVybWluYXRpb24gb2YgdGhlIHByZXJlbmRlciBiZWZvcmUgdGhlIHNoZWxsXG4gICAgICAvLyBjb3VsZCBiZSBjb21wbGV0ZWQuIFdlIHRlcm1pbmF0ZSB0aGUgYnVpbGQvdmFsaWRhdGluZyByZW5kZXIuXG4gICAgICBsb2dEaXNhbGxvd2VkRHluYW1pY0Vycm9yKFxuICAgICAgICB3b3JrU3RvcmUsXG4gICAgICAgIHNlcnZlckR5bmFtaWMuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFja1xuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuXG4gICAgLy8gV2UgZGlkbid0IGhhdmUgYW55IHN5bmMgYmFpbG91dHMgYnV0IHRoZXJlIG1heSBiZSB1c2VyIGNvZGUgd2hpY2hcbiAgICAvLyBibG9ja2VkIHRoZSByb290LiBXZSB3b3VsZCBoYXZlIGNhcHR1cmVkIHRoZXNlIGR1cmluZyB0aGUgcHJlcmVuZGVyXG4gICAgLy8gYW5kIGNhbiBsb2cgdGhlbSBoZXJlIGFuZCB0aGVuIHRlcm1pbmF0ZSB0aGUgYnVpbGQvdmFsaWRhdGluZyByZW5kZXJcbiAgICBjb25zdCBkeW5hbWljRXJyb3JzID0gZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9yc1xuICAgIGlmIChkeW5hbWljRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZHluYW1pY0Vycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsb2dEaXNhbGxvd2VkRHluYW1pY0Vycm9yKHdvcmtTdG9yZSwgZHluYW1pY0Vycm9yc1tpXSlcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuXG4gICAgLy8gSWYgd2UgZ290IHRoaXMgZmFyIHRoZW4gdGhlIG9ubHkgb3RoZXIgdGhpbmcgdGhhdCBjb3VsZCBiZSBibG9ja2luZ1xuICAgIC8vIHRoZSByb290IGlzIGR5bmFtaWMgVmlld3BvcnQuIElmIHRoaXMgaXMgZHluYW1pYyB0aGVuXG4gICAgLy8geW91IG5lZWQgdG8gb3B0IGludG8gdGhhdCBieSBhZGRpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBhYm92ZSB0aGUgYm9keVxuICAgIC8vIHRvIGluZGljYXRlIHlvdXIgYXJlIG9rIHdpdGggZnVsbHkgZHluYW1pYyByZW5kZXJpbmcuXG4gICAgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNWaWV3cG9ydCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFJvdXRlIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgaGFzIGEgXFxgZ2VuZXJhdGVWaWV3cG9ydFxcYCB0aGF0IGRlcGVuZHMgb24gUmVxdWVzdCBkYXRhIChcXGBjb29raWVzKClcXGAsIGV0Yy4uLikgb3IgdW5jYWNoZWQgZXh0ZXJuYWwgZGF0YSAoXFxgZmV0Y2goLi4uKVxcYCwgZXRjLi4uKSB3aXRob3V0IGV4cGxpY2l0bHkgYWxsb3dpbmcgZnVsbHkgZHluYW1pYyByZW5kZXJpbmcuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1wcmVyZW5kZXItZHluYW1pYy12aWV3cG9ydGBcbiAgICAgIClcbiAgICAgIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoKVxuICAgIH1cblxuICAgIGlmIChwcmVsdWRlID09PSBQcmVsdWRlU3RhdGUuRW1wdHkpIHtcbiAgICAgIC8vIElmIHdlIGV2ZXIgZ2V0IHRoaXMgZmFyIHRoZW4gd2UgbWVzc2VkIHVwIHRoZSB0cmFja2luZyBvZiBpbnZhbGlkIGR5bmFtaWMuXG4gICAgICAvLyBXZSBzdGlsbCBhZGhlcmUgdG8gdGhlIGNvbnN0cmFpbnQgdGhhdCB5b3UgbXVzdCBwcm9kdWNlIGEgc2hlbGwgYnV0IGludml0ZSB0aGVcbiAgICAgIC8vIHVzZXIgdG8gcmVwb3J0IHRoaXMgYXMgYSBidWcgaW4gTmV4dC5qcy5cbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBSb3V0ZSBcIiR7d29ya1N0b3JlLnJvdXRlfVwiIGRpZCBub3QgcHJvZHVjZSBhIHN0YXRpYyBzaGVsbCBhbmQgTmV4dC5qcyB3YXMgdW5hYmxlIHRvIGRldGVybWluZSBhIHJlYXNvbi4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLmBcbiAgICAgIClcbiAgICAgIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoXG4gICAgICBkeW5hbWljVmFsaWRhdGlvbi5oYXNBbGxvd2VkRHluYW1pYyA9PT0gZmFsc2UgJiZcbiAgICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNNZXRhZGF0YVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFJvdXRlIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgaGFzIGEgXFxgZ2VuZXJhdGVNZXRhZGF0YVxcYCB0aGF0IGRlcGVuZHMgb24gUmVxdWVzdCBkYXRhIChcXGBjb29raWVzKClcXGAsIGV0Yy4uLikgb3IgdW5jYWNoZWQgZXh0ZXJuYWwgZGF0YSAoXFxgZmV0Y2goLi4uKVxcYCwgZXRjLi4uKSB3aGVuIHRoZSByZXN0IG9mIHRoZSByb3V0ZSBkb2VzIG5vdC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXByZXJlbmRlci1keW5hbWljLW1ldGFkYXRhYFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxheVVudGlsUnVudGltZVN0YWdlPFQ+KFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5SdW50aW1lLFxuICByZXN1bHQ6IFByb21pc2U8VD5cbik6IFByb21pc2U8VD4ge1xuICBpZiAocHJlcmVuZGVyU3RvcmUucnVudGltZVN0YWdlUHJvbWlzZSkge1xuICAgIHJldHVybiBwcmVyZW5kZXJTdG9yZS5ydW50aW1lU3RhZ2VQcm9taXNlLnRoZW4oKCkgPT4gcmVzdWx0KVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJQb3N0cG9uZSIsIlByZWx1ZGVTdGF0ZSIsImFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MiLCJhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzIiwiYWNjZXNzZWREeW5hbWljRGF0YSIsImFubm90YXRlRHluYW1pY0FjY2VzcyIsImNvbnN1bWVEeW5hbWljQWNjZXNzIiwiY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGUiLCJjcmVhdGVEeW5hbWljVmFsaWRhdGlvblN0YXRlIiwiY3JlYXRlSGFuZ2luZ0lucHV0QWJvcnRTaWduYWwiLCJjcmVhdGVSZW5kZXJJbkJyb3dzZXJBYm9ydFNpZ25hbCIsImRlbGF5VW50aWxSdW50aW1lU3RhZ2UiLCJmb3JtYXREeW5hbWljQVBJQWNjZXNzZXMiLCJnZXRGaXJzdER5bmFtaWNSZWFzb24iLCJpc0R5bmFtaWNQb3N0cG9uZSIsImlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvciIsImxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3IiLCJtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljIiwicG9zdHBvbmVXaXRoVHJhY2tpbmciLCJ0aHJvd0lmRGlzYWxsb3dlZER5bmFtaWMiLCJ0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbiIsInRyYWNrQWxsb3dlZER5bmFtaWNBY2Nlc3MiLCJ0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyIiwidHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldiIsInRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2IiwidXNlRHluYW1pY1JvdXRlUGFyYW1zIiwid2Fybk9uU3luY0R5bmFtaWNFcnJvciIsImhhc1Bvc3Rwb25lIiwiUmVhY3QiLCJ1bnN0YWJsZV9wb3N0cG9uZSIsImlzRGVidWdEeW5hbWljQWNjZXNzZXMiLCJkeW5hbWljQWNjZXNzZXMiLCJzeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrIiwiaGFzU3VzcGVuc2VBYm92ZUJvZHkiLCJoYXNEeW5hbWljTWV0YWRhdGEiLCJoYXNEeW5hbWljVmlld3BvcnQiLCJoYXNBbGxvd2VkRHluYW1pYyIsImR5bmFtaWNFcnJvcnMiLCJ0cmFja2luZ1N0YXRlIiwiZXhwcmVzc2lvbiIsInN0b3JlIiwid29ya1VuaXRTdG9yZSIsInR5cGUiLCJmb3JjZUR5bmFtaWMiLCJmb3JjZVN0YXRpYyIsImR5bmFtaWNTaG91bGRFcnJvciIsIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsInJvdXRlIiwiZHluYW1pY1RyYWNraW5nIiwicmV2YWxpZGF0ZSIsImVyciIsIkR5bmFtaWNTZXJ2ZXJFcnJvciIsImR5bmFtaWNVc2FnZURlc2NyaXB0aW9uIiwiZHluYW1pY1VzYWdlU3RhY2siLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVzZWREeW5hbWljIiwicHJlcmVuZGVyU3RvcmUiLCJhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2VzcyIsInJlYXNvbiIsImVycm9yIiwiY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvciIsImNvbnRyb2xsZXIiLCJhYm9ydCIsInB1c2giLCJFcnJvciIsInVuZGVmaW5lZCIsImVycm9yV2l0aFN0YWNrIiwicmVxdWVzdFN0b3JlIiwicHJlcmVuZGVyUGhhc2UiLCJwcmVyZW5kZXJTaWduYWwiLCJzaWduYWwiLCJhYm9ydGVkIiwiY29uc29sZSIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJhc3NlcnRQb3N0cG9uZSIsImNyZWF0ZVBvc3Rwb25lUmVhc29uIiwibWVzc2FnZSIsImlzRHluYW1pY1Bvc3Rwb25lUmVhc29uIiwiaW5jbHVkZXMiLCJORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCIsImRpZ2VzdCIsImxlbmd0aCIsInNlcnZlckR5bmFtaWMiLCJjbGllbnREeW5hbWljIiwiZmlsdGVyIiwiYWNjZXNzIiwibWFwIiwic3BsaXQiLCJzbGljZSIsImxpbmUiLCJqb2luIiwiQWJvcnRDb250cm9sbGVyIiwiQmFpbG91dFRvQ1NSRXJyb3IiLCJjYWNoZVNpZ25hbCIsImlucHV0UmVhZHkiLCJ0aGVuIiwicnVudGltZVN0YWdlUHJvbWlzZSIsImdldFJ1bnRpbWVTdGFnZVByb21pc2UiLCJzY2hlZHVsZU9uTmV4dFRpY2siLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZmFsbGJhY2tQYXJhbXMiLCJmYWxsYmFja1JvdXRlUGFyYW1zIiwic2l6ZSIsInVzZSIsIm1ha2VIYW5naW5nUHJvbWlzZSIsInJlbmRlclNpZ25hbCIsIkludmFyaWFudEVycm9yIiwiaGFzU3VzcGVuc2VSZWdleCIsImJvZHlBbmRJbXBsaWNpdFRhZ3MiLCJoYXNTdXNwZW5zZUJlZm9yZVJvb3RMYXlvdXRXaXRob3V0Qm9keU9ySW1wbGljaXRCb2R5UmVnZXgiLCJSZWdFeHAiLCJST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FIiwiaGFzTWV0YWRhdGFSZWdleCIsIk1FVEFEQVRBX0JPVU5EQVJZX05BTUUiLCJoYXNWaWV3cG9ydFJlZ2V4IiwiVklFV1BPUlRfQk9VTkRBUllfTkFNRSIsImhhc091dGxldFJlZ2V4IiwiT1VUTEVUX0JPVU5EQVJZX05BTUUiLCJjb21wb25lbnRTdGFjayIsImR5bmFtaWNWYWxpZGF0aW9uIiwidGVzdCIsImNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayIsIm93bmVyU3RhY2siLCJjYXB0dXJlT3duZXJTdGFjayIsIm5hbWUiLCJkZXYiLCJoYXNSZWFkYWJsZUVycm9yU3RhY2tzIiwicHJlbHVkZSIsImkiLCJyZXN1bHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/encryption-utils.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/encryption-utils.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n arrayBufferToString: function() {\n return arrayBufferToString;\n },\n decrypt: function() {\n return decrypt;\n },\n encrypt: function() {\n return encrypt;\n },\n getActionEncryptionKey: function() {\n return getActionEncryptionKey;\n },\n getClientReferenceManifestForRsc: function() {\n return getClientReferenceManifestForRsc;\n },\n getServerModuleMap: function() {\n return getServerModuleMap;\n },\n setReferenceManifestsSingleton: function() {\n return setReferenceManifestsSingleton;\n },\n stringToUint8Array: function() {\n return stringToUint8Array;\n }\n});\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ./work-async-storage.external */ \"./work-async-storage.external\");\nlet __next_loaded_action_key;\nfunction arrayBufferToString(buffer) {\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n // @anonrig: V8 has a limit of 65535 arguments in a function.\n // For len < 65535, this is faster.\n // https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623\n if (len < 65535) {\n return String.fromCharCode.apply(null, bytes);\n }\n let binary = '';\n for(let i = 0; i < len; i++){\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\nfunction stringToUint8Array(binary) {\n const len = binary.length;\n const arr = new Uint8Array(len);\n for(let i = 0; i < len; i++){\n arr[i] = binary.charCodeAt(i);\n }\n return arr;\n}\nfunction encrypt(key, iv, data) {\n return crypto.subtle.encrypt({\n name: 'AES-GCM',\n iv\n }, key, data);\n}\nfunction decrypt(key, iv, data) {\n return crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv\n }, key, data);\n}\n// This is a global singleton that is used to encode/decode the action bound args from\n// the closure. This can't be using a AsyncLocalStorage as it might happen on the module\n// level. Since the client reference manifest won't be mutated, let's use a global singleton\n// to keep it.\nconst SERVER_ACTION_MANIFESTS_SINGLETON = Symbol.for('next.server.action-manifests');\nfunction setReferenceManifestsSingleton({ page, clientReferenceManifest, serverActionsManifest, serverModuleMap }) {\n var _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON;\n // @ts-expect-error\n const clientReferenceManifestsPerPage = (_globalThis_SERVER_ACTION_MANIFESTS_SINGLETON = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON]) == null ? void 0 : _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON.clientReferenceManifestsPerPage;\n // @ts-expect-error\n globalThis[SERVER_ACTION_MANIFESTS_SINGLETON] = {\n clientReferenceManifestsPerPage: {\n ...clientReferenceManifestsPerPage,\n [(0, _apppaths.normalizeAppPath)(page)]: clientReferenceManifest\n },\n serverActionsManifest,\n serverModuleMap\n };\n}\nfunction getServerModuleMap() {\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n return serverActionsManifestSingleton.serverModuleMap;\n}\nfunction getClientReferenceManifestForRsc() {\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n const { clientReferenceManifestsPerPage } = serverActionsManifestSingleton;\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n // If there's no work store defined, we can assume that a client reference\n // manifest is needed during module evaluation, e.g. to create a server\n // action using a higher-order function. This might also use client\n // components which need to be serialized by Flight, and therefore client\n // references need to be resolvable. To make this work, we're returning a\n // merged manifest across all pages. This is fine as long as the module IDs\n // are not page specific, which they are not for Webpack. TODO: Fix this in\n // Turbopack.\n return mergeClientReferenceManifests(clientReferenceManifestsPerPage);\n }\n const clientReferenceManifest = clientReferenceManifestsPerPage[workStore.route];\n if (!clientReferenceManifest) {\n throw Object.defineProperty(new _invarianterror.InvariantError(`Missing Client Reference Manifest for ${workStore.route}.`), \"__NEXT_ERROR_CODE\", {\n value: \"E570\",\n enumerable: false,\n configurable: true\n });\n }\n return clientReferenceManifest;\n}\nasync function getActionEncryptionKey() {\n if (__next_loaded_action_key) {\n return __next_loaded_action_key;\n }\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifestSingleton.serverActionsManifest.encryptionKey;\n if (rawKey === undefined) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing encryption key for Server Actions'), \"__NEXT_ERROR_CODE\", {\n value: \"E571\",\n enumerable: false,\n configurable: true\n });\n }\n __next_loaded_action_key = await crypto.subtle.importKey('raw', stringToUint8Array(atob(rawKey)), 'AES-GCM', true, [\n 'encrypt',\n 'decrypt'\n ]);\n return __next_loaded_action_key;\n}\nfunction mergeClientReferenceManifests(clientReferenceManifestsPerPage) {\n const clientReferenceManifests = Object.values(clientReferenceManifestsPerPage);\n const mergedClientReferenceManifest = {\n clientModules: {},\n edgeRscModuleMapping: {},\n rscModuleMapping: {}\n };\n for (const clientReferenceManifest of clientReferenceManifests){\n mergedClientReferenceManifest.clientModules = {\n ...mergedClientReferenceManifest.clientModules,\n ...clientReferenceManifest.clientModules\n };\n mergedClientReferenceManifest.edgeRscModuleMapping = {\n ...mergedClientReferenceManifest.edgeRscModuleMapping,\n ...clientReferenceManifest.edgeRscModuleMapping\n };\n mergedClientReferenceManifest.rscModuleMapping = {\n ...mergedClientReferenceManifest.rscModuleMapping,\n ...clientReferenceManifest.rscModuleMapping\n };\n }\n return mergedClientReferenceManifest;\n} //# sourceMappingURL=encryption-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VuY3J5cHRpb24tdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBWWdCQSxtQkFBbUI7ZUFBbkJBOztJQTBDQUMsT0FBTztlQUFQQTs7SUFYQUMsT0FBTztlQUFQQTs7SUE2SE1DLHNCQUFzQjtlQUF0QkE7O0lBeENOQyxnQ0FBZ0M7ZUFBaENBOztJQXBCQUMsa0JBQWtCO2VBQWxCQTs7SUFuQ0FDLDhCQUE4QjtlQUE5QkE7O0lBekNBQyxrQkFBa0I7ZUFBbEJBOzs7NENBMUJlO3NDQUNFO3NEQUNBO0FBRWpDLElBQUlDO0FBRUcsU0FBU1Isb0JBQ2RTLE1BQWlEO0lBRWpELE1BQU1DLFFBQVEsSUFBSUMsV0FBV0Y7SUFDN0IsTUFBTUcsTUFBTUYsTUFBTUcsVUFBVTtJQUU1Qiw2REFBNkQ7SUFDN0QsbUNBQW1DO0lBQ25DLDRFQUE0RTtJQUM1RSxJQUFJRCxNQUFNLE9BQU87UUFDZixPQUFPRSxPQUFPQyxZQUFZLENBQUNDLEtBQUssQ0FBQyxNQUFNTjtJQUN6QztJQUVBLElBQUlPLFNBQVM7SUFDYixJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSU4sS0FBS00sSUFBSztRQUM1QkQsVUFBVUgsT0FBT0MsWUFBWSxDQUFDTCxLQUFLLENBQUNRLEVBQUU7SUFDeEM7SUFDQSxPQUFPRDtBQUNUO0FBRU8sU0FBU1YsbUJBQW1CVSxNQUFjO0lBQy9DLE1BQU1MLE1BQU1LLE9BQU9FLE1BQU07SUFDekIsTUFBTUMsTUFBTSxJQUFJVCxXQUFXQztJQUUzQixJQUFLLElBQUlNLElBQUksR0FBR0EsSUFBSU4sS0FBS00sSUFBSztRQUM1QkUsR0FBRyxDQUFDRixFQUFFLEdBQUdELE9BQU9JLFVBQVUsQ0FBQ0g7SUFDN0I7SUFFQSxPQUFPRTtBQUNUO0FBRU8sU0FBU2xCLFFBQVFvQixHQUFjLEVBQUVDLEVBQWMsRUFBRUMsSUFBZ0I7SUFDdEUsT0FBT0MsT0FBT0MsTUFB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U0FBUyxDQUN0RCxPQUNBNUMsbUJBQW1CNkMsS0FBS1AsVUFDeEIsV0FDQSxNQUNBO1FBQUM7UUFBVztLQUFVO0lBR3hCLE9BQU9yQztBQUNUO0FBRUEsU0FBU21DLDhCQUNQUCwrQkFFQztJQUVELE1BQU1pQiwyQkFBMkJDLE9BQU9DLE1BQU0sQ0FDNUNuQjtJQUdGLE1BQU1vQixnQ0FBK0Q7UUFDbkVDLGVBQWUsQ0FBQztRQUNoQkMsc0JBQXNCLENBQUM7UUFDdkJDLGtCQUFrQixDQUFDO0lBQ3JCO0lBRUEsS0FBSyxNQUFNM0IsMkJBQTJCcUIseUJBQTBCO1FBQzlERyw4QkFBOEJDLGFBQWEsR0FBRztZQUM1QyxHQUFHRCw4QkFBOEJDLGFBQWE7WUFDOUMsR0FBR3pCLHdCQUF3QnlCLGFBQWE7UUFDMUM7UUFDQUQsOEJBQThCRSxvQkFBb0IsR0FBRztZQUNuRCxHQUFHRiw4QkFBOEJFLG9CQUFvQjtZQUNyRCxHQUFHMUIsd0JBQXdCMEIsb0JBQW9CO1FBQ2pEO1FBQ0FGLDhCQUE4QkcsZ0JBQWdCLEdBQUc7WUFDL0MsR0FBR0gsOEJBQThCRyxnQkFBZ0I7WUFDakQsR0FBRzNCLHdCQUF3QjJCLGdCQUFnQjtRQUM3QztJQUNGO0lBRUEsT0FBT0g7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NlcnZlci9hcHAtcmVuZGVyL2VuY3J5cHRpb24tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBY3Rpb25NYW5pZmVzdCB9IGZyb20gJy4uLy4uL2J1aWxkL3dlYnBhY2svcGx1Z2lucy9mbGlnaHQtY2xpZW50LWVudHJ5LXBsdWdpbidcbmltcG9ydCB0eXBlIHtcbiAgQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gIENsaWVudFJlZmVyZW5jZU1hbmlmZXN0Rm9yUnNjLFxufSBmcm9tICcuLi8uLi9idWlsZC93ZWJwYWNrL3BsdWdpbnMvZmxpZ2h0LW1hbmlmZXN0LXBsdWdpbidcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9kZWVwLXJlYWRvbmx5J1xuaW1wb3J0IHsgSW52YXJpYW50RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvcidcbmltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHMnXG5pbXBvcnQgeyB3b3JrQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmxldCBfX25leHRfbG9hZGVkX2FjdGlvbl9rZXk6IENyeXB0b0tleVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0cmluZyhcbiAgYnVmZmVyOiBBcnJheUJ1ZmZlciB8IFVpbnQ4QXJyYXk8QXJyYXlCdWZmZXJMaWtlPlxuKSB7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKVxuICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoXG5cbiAgLy8gQGFub25yaWc6IFY4IGhhcyBhIGxpbWl0IG9mIDY1NTM1IGFyZ3VtZW50cyBpbiBhIGZ1bmN0aW9uLlxuICAvLyBGb3IgbGVuIDwgNjU1MzUsIHRoaXMgaXMgZmFzdGVyLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC81NjM3NyNwdWxscmVxdWVzdHJldmlldy0xNjU2MTgxNjIzXG4gIGlmIChsZW4gPCA2NTUzNSkge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGJ5dGVzIGFzIHVua25vd24gYXMgbnVtYmVyW10pXG4gIH1cblxuICBsZXQgYmluYXJ5ID0gJydcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGJpbmFyeSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldKVxuICB9XG4gIHJldHVybiBiaW5hcnlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvVWludDhBcnJheShiaW5hcnk6IHN0cmluZykge1xuICBjb25zdCBsZW4gPSBiaW5hcnkubGVuZ3RoXG4gIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGxlbilcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJyW2ldID0gYmluYXJ5LmNoYXJDb2RlQXQoaSlcbiAgfVxuXG4gIHJldHVybiBhcnJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY3J5cHQoa2V5OiBDcnlwdG9LZXksIGl2OiBVaW50OEFycmF5LCBkYXRhOiBVaW50OEFycmF5KSB7XG4gIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoXG4gICAge1xuICAgICAgbmFtZTogJ0FFUy1HQ00nLFxuICAgICAgaXYsXG4gICAgfSxcbiAgICBrZXksXG4gICAgZGF0YVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0KGtleTogQ3J5cHRvS2V5LCBpdjogVWludDhBcnJheSwgZGF0YTogVWludDhBcnJheSkge1xuICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZWNyeXB0KFxuICAgIHtcbiAgICAgIG5hbWU6ICdBRVMtR0NNJyxcbiAgICAgIGl2LFxuICAgIH0sXG4gICAga2V5LFxuICAgIGRhdGFcbiAgKVxufVxuXG4vLyBUaGlzIGlzIGEgZ2xvYmFsIHNpbmdsZXRvbiB0aGF0IGlzIHVzZWQgdG8gZW5jb2RlL2RlY29kZSB0aGUgYWN0aW9uIGJvdW5kIGFyZ3MgZnJvbVxuLy8gdGhlIGNsb3N1cmUuIFRoaXMgY2FuJ3QgYmUgdXNpbmcgYSBBc3luY0xvY2FsU3RvcmFnZSBhcyBpdCBtaWdodCBoYXBwZW4gb24gdGhlIG1vZHVsZVxuLy8gbGV2ZWwuIFNpbmNlIHRoZSBjbGllbnQgcmVmZXJlbmNlIG1hbmlmZXN0IHdvbid0IGJlIG11dGF0ZWQsIGxldCdzIHVzZSBhIGdsb2JhbCBzaW5nbGV0b25cbi8vIHRvIGtlZXAgaXQuXG5jb25zdCBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT04gPSBTeW1ib2wuZm9yKFxuICAnbmV4dC5zZXJ2ZXIuYWN0aW9uLW1hbmlmZXN0cydcbilcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbih7XG4gIHBhZ2UsXG4gIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LFxuICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsXG4gIHNlcnZlck1vZHVsZU1hcCxcbn06IHtcbiAgcGFnZTogc3RyaW5nXG4gIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBEZWVwUmVhZG9ubHk8Q2xpZW50UmVmZXJlbmNlTWFuaWZlc3Q+XG4gIHNlcnZlckFjdGlvbnNNYW5pZmVzdDogRGVlcFJlYWRvbmx5PEFjdGlvbk1hbmlmZXN0PlxuICBzZXJ2ZXJNb2R1bGVNYXA6IHtcbiAgICBbaWQ6IHN0cmluZ106IHtcbiAgICAgIGlkOiBzdHJpbmdcbiAgICAgIGNodW5rczogc3RyaW5nW11cbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgIH1cbiAgfVxufSkge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UgPSBnbG9iYWxUaGlzW1xuICAgIFNFUlZFUl9BQ1RJT05fTUFOSUZFU1RTX1NJTkdMRVRPTlxuICBdPy5jbGllbnRSZWZlcmVuY2VNYW5pZmVzdHNQZXJQYWdlIGFzXG4gICAgfCB1bmRlZmluZWRcbiAgICB8IERlZXBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdD4+XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBnbG9iYWxUaGlzW1NFUlZFUl9BQ1RJT05fTUFOSUZFU1RTX1NJTkdMRVRPTl0gPSB7XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZToge1xuICAgICAgLi4uY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZSxcbiAgICAgIFtub3JtYWxpemVBcHBQYXRoKHBhZ2UpXTogY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gICAgfSxcbiAgICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsXG4gICAgc2VydmVyTW9kdWxlTWFwLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2ZXJNb2R1bGVNYXAoKSB7XG4gIGNvbnN0IHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbiA9IChnbG9iYWxUaGlzIGFzIGFueSlbXG4gICAgU0VSVkVSX0FDVElPTl9NQU5JRkVTVFNfU0lOR0xFVE9OXG4gIF0gYXMge1xuICAgIHNlcnZlck1vZHVsZU1hcDoge1xuICAgICAgW2lkOiBzdHJpbmddOiB7XG4gICAgICAgIGlkOiBzdHJpbmdcbiAgICAgICAgY2h1bmtzOiBzdHJpbmdbXVxuICAgICAgICBuYW1lOiBzdHJpbmdcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIXNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbikge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBtYW5pZmVzdCBmb3IgU2VydmVyIEFjdGlvbnMuJylcbiAgfVxuXG4gIHJldHVybiBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24uc2VydmVyTW9kdWxlTWFwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYygpOiBEZWVwUmVhZG9ubHk8Q2xpZW50UmVmZXJlbmNlTWFuaWZlc3RGb3JSc2M+IHtcbiAgY29uc3Qgc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uID0gKGdsb2JhbFRoaXMgYXMgYW55KVtcbiAgICBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT05cbiAgXSBhcyB7XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZTogRGVlcFJlYWRvbmx5PFxuICAgICAgUmVjb3JkPHN0cmluZywgQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3Q+XG4gICAgPlxuICB9XG5cbiAgaWYgKCFzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24pIHtcbiAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IoJ01pc3NpbmcgbWFuaWZlc3QgZm9yIFNlcnZlciBBY3Rpb25zLicpXG4gIH1cblxuICBjb25zdCB7IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UgfSA9IHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvblxuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAoIXdvcmtTdG9yZSkge1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gd29yayBzdG9yZSBkZWZpbmVkLCB3ZSBjYW4gYXNzdW1lIHRoYXQgYSBjbGllbnQgcmVmZXJlbmNlXG4gICAgLy8gbWFuaWZlc3QgaXMgbmVlZGVkIGR1cmluZyBtb2R1bGUgZXZhbHVhdGlvbiwgZS5nLiB0byBjcmVhdGUgYSBzZXJ2ZXJcbiAgICAvLyBhY3Rpb24gdXNpbmcgYSBoaWdoZXItb3JkZXIgZnVuY3Rpb24uIFRoaXMgbWlnaHQgYWxzbyB1c2UgY2xpZW50XG4gICAgLy8gY29tcG9uZW50cyB3aGljaCBuZWVkIHRvIGJlIHNlcmlhbGl6ZWQgYnkgRmxpZ2h0LCBhbmQgdGhlcmVmb3JlIGNsaWVudFxuICAgIC8vIHJlZmVyZW5jZXMgbmVlZCB0byBiZSByZXNvbHZhYmxlLiBUbyBtYWtlIHRoaXMgd29yaywgd2UncmUgcmV0dXJuaW5nIGFcbiAgICAvLyBtZXJnZWQgbWFuaWZlc3QgYWNyb3NzIGFsbCBwYWdlcy4gVGhpcyBpcyBmaW5lIGFzIGxvbmcgYXMgdGhlIG1vZHVsZSBJRHNcbiAgICAvLyBhcmUgbm90IHBhZ2Ugc3BlY2lmaWMsIHdoaWNoIHRoZXkgYXJlIG5vdCBmb3IgV2VicGFjay4gVE9ETzogRml4IHRoaXMgaW5cbiAgICAvLyBUdXJib3BhY2suXG4gICAgcmV0dXJuIG1lcmdlQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzKGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UpXG4gIH1cblxuICBjb25zdCBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCA9XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZVt3b3JrU3RvcmUucm91dGVdXG5cbiAgaWYgKCFjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgIGBNaXNzaW5nIENsaWVudCBSZWZlcmVuY2UgTWFuaWZlc3QgZm9yICR7d29ya1N0b3JlLnJvdXRlfS5gXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY3Rpb25FbmNyeXB0aW9uS2V5KCkge1xuICBpZiAoX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5KSB7XG4gICAgcmV0dXJuIF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleVxuICB9XG5cbiAgY29uc3Qgc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uID0gKGdsb2JhbFRoaXMgYXMgYW55KVtcbiAgICBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT05cbiAgXSBhcyB7XG4gICAgc2VydmVyQWN0aW9uc01hbmlmZXN0OiBEZWVwUmVhZG9ubHk8QWN0aW9uTWFuaWZlc3Q+XG4gIH1cblxuICBpZiAoIXNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbikge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBtYW5pZmVzdCBmb3IgU2VydmVyIEFjdGlvbnMuJylcbiAgfVxuXG4gIGNvbnN0IHJhd0tleSA9XG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9TRVJWRVJfQUNUSU9OU19FTkNSWVBUSU9OX0tFWSB8fFxuICAgIHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbi5zZXJ2ZXJBY3Rpb25zTWFuaWZlc3QuZW5jcnlwdGlvbktleVxuXG4gIGlmIChyYXdLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBlbmNyeXB0aW9uIGtleSBmb3IgU2VydmVyIEFjdGlvbnMnKVxuICB9XG5cbiAgX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgJ3JhdycsXG4gICAgc3RyaW5nVG9VaW50OEFycmF5KGF0b2IocmF3S2V5KSksXG4gICAgJ0FFUy1HQ00nLFxuICAgIHRydWUsXG4gICAgWydlbmNyeXB0JywgJ2RlY3J5cHQnXVxuICApXG5cbiAgcmV0dXJuIF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleVxufVxuXG5mdW5jdGlvbiBtZXJnZUNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyhcbiAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZTogRGVlcFJlYWRvbmx5PFxuICAgIFJlY29yZDxzdHJpbmcsIENsaWVudFJlZmVyZW5jZU1hbmlmZXN0PlxuICA+XG4pOiBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYyB7XG4gIGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyA9IE9iamVjdC52YWx1ZXMoXG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZSBhcyBSZWNvcmQ8c3RyaW5nLCBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdD5cbiAgKVxuXG4gIGNvbnN0IG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYyA9IHtcbiAgICBjbGllbnRNb2R1bGVzOiB7fSxcbiAgICBlZGdlUnNjTW9kdWxlTWFwcGluZzoge30sXG4gICAgcnNjTW9kdWxlTWFwcGluZzoge30sXG4gIH1cblxuICBmb3IgKGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0IG9mIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cykge1xuICAgIG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0LmNsaWVudE1vZHVsZXMgPSB7XG4gICAgICAuLi5tZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5jbGllbnRNb2R1bGVzLFxuICAgICAgLi4uY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QuY2xpZW50TW9kdWxlcyxcbiAgICB9XG4gICAgbWVyZ2VkQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QuZWRnZVJzY01vZHVsZU1hcHBpbmcgPSB7XG4gICAgICAuLi5tZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5lZGdlUnNjTW9kdWxlTWFwcGluZyxcbiAgICAgIC4uLmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LmVkZ2VSc2NNb2R1bGVNYXBwaW5nLFxuICAgIH1cbiAgICBtZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5yc2NNb2R1bGVNYXBwaW5nID0ge1xuICAgICAgLi4ubWVyZ2VkQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QucnNjTW9kdWxlTWFwcGluZyxcbiAgICAgIC4uLmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LnJzY01vZHVsZU1hcHBpbmcsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0XG59XG4iXSwibmFtZXMiOlsiYXJyYXlCdWZmZXJUb1N0cmluZyIsImRlY3J5cHQiLCJlbmNyeXB0IiwiZ2V0QWN0aW9uRW5jcnlwdGlvbktleSIsImdldENsaWVudFJlZmVyZW5jZU1hbmlmZXN0Rm9yUnNjIiwiZ2V0U2VydmVyTW9kdWxlTWFwIiwic2V0UmVmZXJlbmNlTWFuaWZlc3RzU2luZ2xldG9uIiwic3RyaW5nVG9VaW50OEFycmF5IiwiX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5IiwiYnVmZmVyIiwiYnl0ZXMiLCJVaW50OEFycmF5IiwibGVuIiwiYnl0ZUxlbmd0aCIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImFwcGx5IiwiYmluYXJ5IiwiaSIsImxlbmd0aCIsImFyciIsImNoYXJDb2RlQXQiLCJrZXkiLCJpdiIsImRhdGEiLCJjcnlwdG8iLCJzdWJ0bGUiLCJuYW1lIiwiU0VSVkVSX0FDVElPTl9NQU5JRkVTVFNfU0lOR0xFVE9OIiwiU3ltYm9sIiwiZm9yIiwicGFnZSIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0Iiwic2VydmVyQWN0aW9uc01hbmlmZXN0Iiwic2VydmVyTW9kdWxlTWFwIiwiZ2xvYmFsVGhpcyIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UiLCJub3JtYWxpemVBcHBQYXRoIiwic2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uIiwiSW52YXJpYW50RXJyb3IiLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJtZXJnZUNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyIsInJvdXRlIiwicmF3S2V5IiwicHJvY2VzcyIsImVudiIsIk5FWFRfU0VSVkVSX0FDVElPTlNfRU5DUllQVElPTl9LRVkiLCJlbmNyeXB0aW9uS2V5IiwidW5kZWZpbmVkIiwiaW1wb3J0S2V5IiwiYXRvYiIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyIsIk9iamVjdCIsInZhbHVlcyIsIm1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0IiwiY2xpZW50TW9kdWxlcyIsImVkZ2VSc2NNb2R1bGVNYXBwaW5nIiwicnNjTW9kdWxlTWFwcGluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/encryption-utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/entry-base.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/entry-base.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("// eslint-disable-next-line import/no-extraneous-dependencies\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ClientPageRoot: function() {\n return _clientpage.ClientPageRoot;\n },\n ClientSegmentRoot: function() {\n return _clientsegment.ClientSegmentRoot;\n },\n HTTPAccessFallbackBoundary: function() {\n return _errorboundary.HTTPAccessFallbackBoundary;\n },\n LayoutRouter: function() {\n return _layoutrouter.default;\n },\n MetadataBoundary: function() {\n return _boundarycomponents.MetadataBoundary;\n },\n OutletBoundary: function() {\n return _boundarycomponents.OutletBoundary;\n },\n Postpone: function() {\n return _postpone.Postpone;\n },\n RenderFromTemplateContext: function() {\n return _renderfromtemplatecontext.default;\n },\n RootLayoutBoundary: function() {\n return _boundarycomponents.RootLayoutBoundary;\n },\n SegmentViewNode: function() {\n return SegmentViewNode;\n },\n SegmentViewStateNode: function() {\n return SegmentViewStateNode;\n },\n ViewportBoundary: function() {\n return _boundarycomponents.ViewportBoundary;\n },\n actionAsyncStorage: function() {\n return _actionasyncstorageexternal.actionAsyncStorage;\n },\n captureOwnerStack: function() {\n return _react.captureOwnerStack;\n },\n collectSegmentData: function() {\n return _collectsegmentdata.collectSegmentData;\n },\n createMetadataComponents: function() {\n return _metadata.createMetadataComponents;\n },\n createPrerenderParamsForClientSegment: function() {\n return _params.createPrerenderParamsForClientSegment;\n },\n createPrerenderSearchParamsForClientPage: function() {\n return _searchparams.createPrerenderSearchParamsForClientPage;\n },\n createServerParamsForServerSegment: function() {\n return _params.createServerParamsForServerSegment;\n },\n createServerSearchParamsForServerPage: function() {\n return _searchparams.createServerSearchParamsForServerPage;\n },\n createTemporaryReferenceSet: function() {\n return _server.createTemporaryReferenceSet;\n },\n decodeAction: function() {\n return _server.decodeAction;\n },\n decodeFormState: function() {\n return _server.decodeFormState;\n },\n decodeReply: function() {\n return _server.decodeReply;\n },\n patchFetch: function() {\n return patchFetch;\n },\n preconnect: function() {\n return _preloads.preconnect;\n },\n preloadFont: function() {\n return _preloads.preloadFont;\n },\n preloadStyle: function() {\n return _preloads.preloadStyle;\n },\n prerender: function() {\n return _static.unstable_prerender;\n },\n renderToReadableStream: function() {\n return _server.renderToReadableStream;\n },\n serverHooks: function() {\n return _hooksservercontext;\n },\n taintObjectReference: function() {\n return _taint.taintObjectReference;\n },\n workAsyncStorage: function() {\n return _workasyncstorageexternal.workAsyncStorage;\n },\n workUnitAsyncStorage: function() {\n return _workunitasyncstorageexternal.workUnitAsyncStorage;\n }\n});\nconst _server = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\nconst _static = __webpack_require__(/*! react-server-dom-webpack/static */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\");\nconst _react = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\nconst _layoutrouter = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../client/components/layout-router */ \"(rsc)/./node_modules/next/dist/client/components/layout-router.js\"));\nconst _renderfromtemplatecontext = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../client/components/render-from-template-context */ \"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\"));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _actionasyncstorageexternal = __webpack_require__(/*! ../app-render/action-async-storage.external */ \"../app-render/action-async-storage.external\");\nconst _clientpage = __webpack_require__(/*! ../../client/components/client-page */ \"(rsc)/./node_modules/next/dist/client/components/client-page.js\");\nconst _clientsegment = __webpack_require__(/*! ../../client/components/client-segment */ \"(rsc)/./node_modules/next/dist/client/components/client-segment.js\");\nconst _searchparams = __webpack_require__(/*! ../request/search-params */ \"(rsc)/./node_modules/next/dist/server/request/search-params.js\");\nconst _params = __webpack_require__(/*! ../request/params */ \"(rsc)/./node_modules/next/dist/server/request/params.js\");\nconst _hooksservercontext = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\"));\nconst _errorboundary = __webpack_require__(/*! ../../client/components/http-access-fallback/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\");\nconst _metadata = __webpack_require__(/*! ../../lib/metadata/metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata.js\");\nconst _boundarycomponents = __webpack_require__(/*! ../../lib/framework/boundary-components */ \"(rsc)/./node_modules/next/dist/lib/framework/boundary-components.js\");\nconst _preloads = __webpack_require__(/*! ./rsc/preloads */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js\");\nconst _postpone = __webpack_require__(/*! ./rsc/postpone */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js\");\nconst _taint = __webpack_require__(/*! ./rsc/taint */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js\");\nconst _collectsegmentdata = __webpack_require__(/*! ./collect-segment-data */ \"(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js\");\nconst _patchfetch = __webpack_require__(/*! ../lib/patch-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nlet SegmentViewNode = ()=>null;\nlet SegmentViewStateNode = ()=>null;\nif (true) {\n const mod = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n SegmentViewNode = mod.SegmentViewNode;\n SegmentViewStateNode = mod.SegmentViewStateNode;\n}\n// hot-reloader modules are not bundled so we need to inject `__next__clear_chunk_cache__`\n// into globalThis from this file which is bundled.\nif (false) {} else {\n // Webpack does not have chunks on the server\n globalThis.__next__clear_chunk_cache__ = null;\n}\nfunction patchFetch() {\n return (0, _patchfetch.patchFetch)({\n workAsyncStorage: _workasyncstorageexternal.workAsyncStorage,\n workUnitAsyncStorage: _workunitasyncstorageexternal.workUnitAsyncStorage\n });\n}\n\n//# sourceMappingURL=entry-base.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FtQ0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGdCQUFnQixtQkFBTyxDQUFDLHFKQUFpQztBQUN6RCxnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQsZUFBZSxtQkFBTyxDQUFDLGlHQUFPO0FBQzlCLDZEQUE2RCxtQkFBTyxDQUFDLGdIQUF1QztBQUM1RywwRUFBMEUsbUJBQU8sQ0FBQyw4SUFBc0Q7QUFDeEksa0NBQWtDLG1CQUFPLENBQUMsZ0ZBQTJDO0FBQ3JGLHNDQUFzQyxtQkFBTyxDQUFDLDhFQUFvQztBQUNsRixvQ0FBb0MsbUJBQU8sQ0FBQyxnR0FBNkM7QUFDekYsb0JBQW9CLG1CQUFPLENBQUMsNEdBQXFDO0FBQ2pFLHVCQUF1QixtQkFBTyxDQUFDLGtIQUF3QztBQUN2RSxzQkFBc0IsbUJBQU8sQ0FBQyxnR0FBMEI7QUFDeEQsZ0JBQWdCLG1CQUFPLENBQUMsa0ZBQW1CO0FBQzNDLG9FQUFvRSxtQkFBTyxDQUFDLDhIQUE4QztBQUMxSCx1QkFBdUIsbUJBQU8sQ0FBQyw0SkFBNkQ7QUFDNUYsa0JBQWtCLG1CQUFPLENBQUMsNEZBQTZCO0FBQ3ZELDRCQUE0QixtQkFBTyxDQUFDLG9IQUF5QztBQUM3RSxrQkFBa0IsbUJBQU8sQ0FBQyx3RkFBZ0I7QUFDMUMsa0JBQWtCLG1CQUFPLENBQUMsd0ZBQWdCO0FBQzFDLGVBQWUsbUJBQU8sQ0FBQyxrRkFBYTtBQUNwQyw0QkFBNEIsbUJBQU8sQ0FBQyx3R0FBd0I7QUFDNUQsb0JBQW9CLG1CQUFPLENBQUMsb0ZBQW9CO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXNDO0FBQzFDLGdCQUFnQixtQkFBTyxDQUFDLG9KQUF5RDtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFxQixFQUFFLEVBRTFCLENBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBDbGllbnRQYWdlUm9vdDogbnVsbCxcbiAgICBDbGllbnRTZWdtZW50Um9vdDogbnVsbCxcbiAgICBIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeTogbnVsbCxcbiAgICBMYXlvdXRSb3V0ZXI6IG51bGwsXG4gICAgTWV0YWRhdGFCb3VuZGFyeTogbnVsbCxcbiAgICBPdXRsZXRCb3VuZGFyeTogbnVsbCxcbiAgICBQb3N0cG9uZTogbnVsbCxcbiAgICBSZW5kZXJGcm9tVGVtcGxhdGVDb250ZXh0OiBudWxsLFxuICAgIFJvb3RMYXlvdXRCb3VuZGFyeTogbnVsbCxcbiAgICBTZWdtZW50Vmlld05vZGU6IG51bGwsXG4gICAgU2VnbWVudFZpZXdTdGF0ZU5vZGU6IG51bGwsXG4gICAgVmlld3BvcnRCb3VuZGFyeTogbnVsbCxcbiAgICBhY3Rpb25Bc3luY1N0b3JhZ2U6IG51bGwsXG4gICAgY2FwdHVyZU93bmVyU3RhY2s6IG51bGwsXG4gICAgY29sbGVjdFNlZ21lbnREYXRhOiBudWxsLFxuICAgIGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50czogbnVsbCxcbiAgICBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OiBudWxsLFxuICAgIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBudWxsLFxuICAgIGNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldDogbnVsbCxcbiAgICBkZWNvZGVBY3Rpb246IG51bGwsXG4gICAgZGVjb2RlRm9ybVN0YXRlOiBudWxsLFxuICAgIGRlY29kZVJlcGx5OiBudWxsLFxuICAgIHBhdGNoRmV0Y2g6IG51bGwsXG4gICAgcHJlY29ubmVjdDogbnVsbCxcbiAgICBwcmVsb2FkRm9udDogbnVsbCxcbiAgICBwcmVsb2FkU3R5bGU6IG51bGwsXG4gICAgcHJlcmVuZGVyOiBudWxsLFxuICAgIHJlbmRlclRvUmVhZGFibGVTdHJlYW06IG51bGwsXG4gICAgc2VydmVySG9va3M6IG51bGwsXG4gICAgdGFpbnRPYmplY3RSZWZlcmVuY2U6IG51bGwsXG4gICAgd29ya0FzeW5jU3RvcmFnZTogbnVsbCxcbiAgICB3b3JrVW5pdEFzeW5jU3RvcmFnZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBDbGllbnRQYWdlUm9vdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY2xpZW50cGFnZS5DbGllbnRQYWdlUm9vdDtcbiAgICB9LFxuICAgIENsaWVudFNlZ21lbnRSb290OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jbGllbnRzZWdtZW50LkNsaWVudFNlZ21lbnRSb290O1xuICAgIH0sXG4gICAgSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Vycm9yYm91bmRhcnkuSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk7XG4gICAgfSxcbiAgICBMYXlvdXRSb3V0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2xheW91dHJvdXRlci5kZWZhdWx0O1xuICAgIH0sXG4gICAgTWV0YWRhdGFCb3VuZGFyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfYm91bmRhcnljb21wb25lbnRzLk1ldGFkYXRhQm91bmRhcnk7XG4gICAgfSxcbiAgICBPdXRsZXRCb3VuZGFyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfYm91bmRhcnljb21wb25lbnRzLk91dGxldEJvdW5kYXJ5O1xuICAgIH0sXG4gICAgUG9zdHBvbmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3Bvc3Rwb25lLlBvc3Rwb25lO1xuICAgIH0sXG4gICAgUmVuZGVyRnJvbVRlbXBsYXRlQ29udGV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcmVuZGVyZnJvbXRlbXBsYXRlY29udGV4dC5kZWZhdWx0O1xuICAgIH0sXG4gICAgUm9vdExheW91dEJvdW5kYXJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9ib3VuZGFyeWNvbXBvbmVudHMuUm9vdExheW91dEJvdW5kYXJ5O1xuICAgIH0sXG4gICAgU2VnbWVudFZpZXdOb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNlZ21lbnRWaWV3Tm9kZTtcbiAgICB9LFxuICAgIFNlZ21lbnRWaWV3U3RhdGVOb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNlZ21lbnRWaWV3U3RhdGVOb2RlO1xuICAgIH0sXG4gICAgVmlld3BvcnRCb3VuZGFyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfYm91bmRhcnljb21wb25lbnRzLlZpZXdwb3J0Qm91bmRhcnk7XG4gICAgfSxcbiAgICBhY3Rpb25Bc3luY1N0b3JhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2FjdGlvbmFzeW5jc3RvcmFnZWV4dGVybmFsLmFjdGlvbkFzeW5jU3RvcmFnZTtcbiAgICB9LFxuICAgIGNhcHR1cmVPd25lclN0YWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9yZWFjdC5jYXB0dXJlT3duZXJTdGFjaztcbiAgICB9LFxuICAgIGNvbGxlY3RTZWdtZW50RGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29sbGVjdHNlZ21lbnRkYXRhLmNvbGxlY3RTZWdtZW50RGF0YTtcbiAgICB9LFxuICAgIGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfbWV0YWRhdGEuY3JlYXRlTWV0YWRhdGFDb21wb25lbnRzO1xuICAgIH0sXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcGFyYW1zLmNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ7XG4gICAgfSxcbiAgICBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZWFyY2hwYXJhbXMuY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3BhcmFtcy5jcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc2VhcmNocGFyYW1zLmNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG4gICAgfSxcbiAgICBjcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlci5jcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQ7XG4gICAgfSxcbiAgICBkZWNvZGVBY3Rpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlci5kZWNvZGVBY3Rpb247XG4gICAgfSxcbiAgICBkZWNvZGVGb3JtU3RhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlci5kZWNvZGVGb3JtU3RhdGU7XG4gICAgfSxcbiAgICBkZWNvZGVSZXBseTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc2VydmVyLmRlY29kZVJlcGx5O1xuICAgIH0sXG4gICAgcGF0Y2hGZXRjaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwYXRjaEZldGNoO1xuICAgIH0sXG4gICAgcHJlY29ubmVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcHJlbG9hZHMucHJlY29ubmVjdDtcbiAgICB9LFxuICAgIHByZWxvYWRGb250OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9wcmVsb2Fkcy5wcmVsb2FkRm9udDtcbiAgICB9LFxuICAgIHByZWxvYWRTdHlsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcHJlbG9hZHMucHJlbG9hZFN0eWxlO1xuICAgIH0sXG4gICAgcHJlcmVuZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zdGF0aWMudW5zdGFibGVfcHJlcmVuZGVyO1xuICAgIH0sXG4gICAgcmVuZGVyVG9SZWFkYWJsZVN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc2VydmVyLnJlbmRlclRvUmVhZGFibGVTdHJlYW07XG4gICAgfSxcbiAgICBzZXJ2ZXJIb29rczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfaG9va3NzZXJ2ZXJjb250ZXh0O1xuICAgIH0sXG4gICAgdGFpbnRPYmplY3RSZWZlcmVuY2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3RhaW50LnRhaW50T2JqZWN0UmVmZXJlbmNlO1xuICAgIH0sXG4gICAgd29ya0FzeW5jU3RvcmFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtBc3luY1N0b3JhZ2U7XG4gICAgfSxcbiAgICB3b3JrVW5pdEFzeW5jU3RvcmFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZTtcbiAgICB9XG59KTtcbmNvbnN0IF9zZXJ2ZXIgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3NlcnZlclwiKTtcbmNvbnN0IF9zdGF0aWMgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3N0YXRpY1wiKTtcbmNvbnN0IF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbmNvbnN0IF9sYXlvdXRyb3V0ZXIgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlclwiKSk7XG5jb25zdCBfcmVuZGVyZnJvbXRlbXBsYXRlY29udGV4dCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0XCIpKTtcbmNvbnN0IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2FjdGlvbmFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvYWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfY2xpZW50cGFnZSA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZVwiKTtcbmNvbnN0IF9jbGllbnRzZWdtZW50ID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1zZWdtZW50XCIpO1xuY29uc3QgX3NlYXJjaHBhcmFtcyA9IHJlcXVpcmUoXCIuLi9yZXF1ZXN0L3NlYXJjaC1wYXJhbXNcIik7XG5jb25zdCBfcGFyYW1zID0gcmVxdWlyZShcIi4uL3JlcXVlc3QvcGFyYW1zXCIpO1xuY29uc3QgX2hvb2tzc2VydmVyY29udGV4dCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChyZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHRcIikpO1xuY29uc3QgX2Vycm9yYm91bmRhcnkgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItYm91bmRhcnlcIik7XG5jb25zdCBfbWV0YWRhdGEgPSByZXF1aXJlKFwiLi4vLi4vbGliL21ldGFkYXRhL21ldGFkYXRhXCIpO1xuY29uc3QgX2JvdW5kYXJ5Y29tcG9uZW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvZnJhbWV3b3JrL2JvdW5kYXJ5LWNvbXBvbmVudHNcIik7XG5jb25zdCBfcHJlbG9hZHMgPSByZXF1aXJlKFwiLi9yc2MvcHJlbG9hZHNcIik7XG5jb25zdCBfcG9zdHBvbmUgPSByZXF1aXJlKFwiLi9yc2MvcG9zdHBvbmVcIik7XG5jb25zdCBfdGFpbnQgPSByZXF1aXJlKFwiLi9yc2MvdGFpbnRcIik7XG5jb25zdCBfY29sbGVjdHNlZ21lbnRkYXRhID0gcmVxdWlyZShcIi4vY29sbGVjdC1zZWdtZW50LWRhdGFcIik7XG5jb25zdCBfcGF0Y2hmZXRjaCA9IHJlcXVpcmUoXCIuLi9saWIvcGF0Y2gtZmV0Y2hcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxubGV0IFNlZ21lbnRWaWV3Tm9kZSA9ICgpPT5udWxsO1xubGV0IFNlZ21lbnRWaWV3U3RhdGVOb2RlID0gKCk9Pm51bGw7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBjb25zdCBtb2QgPSByZXF1aXJlKCcuLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlJyk7XG4gICAgU2VnbWVudFZpZXdOb2RlID0gbW9kLlNlZ21lbnRWaWV3Tm9kZTtcbiAgICBTZWdtZW50Vmlld1N0YXRlTm9kZSA9IG1vZC5TZWdtZW50Vmlld1N0YXRlTm9kZTtcbn1cbi8vIGhvdC1yZWxvYWRlciBtb2R1bGVzIGFyZSBub3QgYnVuZGxlZCBzbyB3ZSBuZWVkIHRvIGluamVjdCBgX19uZXh0X19jbGVhcl9jaHVua19jYWNoZV9fYFxuLy8gaW50byBnbG9iYWxUaGlzIGZyb20gdGhpcyBmaWxlIHdoaWNoIGlzIGJ1bmRsZWQuXG5pZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgZ2xvYmFsVGhpcy5fX25leHRfX2NsZWFyX2NodW5rX2NhY2hlX18gPSBfX3R1cmJvcGFja19jbGVhcl9jaHVua19jYWNoZV9fO1xufSBlbHNlIHtcbiAgICAvLyBXZWJwYWNrIGRvZXMgbm90IGhhdmUgY2h1bmtzIG9uIHRoZSBzZXJ2ZXJcbiAgICBnbG9iYWxUaGlzLl9fbmV4dF9fY2xlYXJfY2h1bmtfY2FjaGVfXyA9IG51bGw7XG59XG5mdW5jdGlvbiBwYXRjaEZldGNoKCkge1xuICAgIHJldHVybiAoMCwgX3BhdGNoZmV0Y2gucGF0Y2hGZXRjaCkoe1xuICAgICAgICB3b3JrQXN5bmNTdG9yYWdlOiBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtBc3luY1N0b3JhZ2UsXG4gICAgICAgIHdvcmtVbml0QXN5bmNTdG9yYWdlOiBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lbnRyeS1iYXNlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/interop-default.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/interop-default.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Interop between \"export default\" and \"module.exports\".\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0RBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJvcCBiZXR3ZWVuIFwiZXhwb3J0IGRlZmF1bHRcIiBhbmQgXCJtb2R1bGUuZXhwb3J0c1wiLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaW50ZXJvcERlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGludGVyb3BEZWZhdWx0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaW50ZXJvcERlZmF1bHQobW9kKSB7XG4gICAgcmV0dXJuIG1vZC5kZWZhdWx0IHx8IG1vZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJvcC1kZWZhdWx0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/interop-default.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js": /*!********************************************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js ***! \********************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseAndValidateFlightRouterState\", ({\n enumerable: true,\n get: function() {\n return parseAndValidateFlightRouterState;\n }\n}));\nconst _types = __webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/app-render/types.js\");\nconst _superstruct = __webpack_require__(/*! next/dist/compiled/superstruct */ \"(rsc)/./node_modules/next/dist/compiled/superstruct/index.cjs\");\nfunction parseAndValidateFlightRouterState(stateHeader) {\n if (typeof stateHeader === 'undefined') {\n return undefined;\n }\n if (Array.isArray(stateHeader)) {\n throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), \"__NEXT_ERROR_CODE\", {\n value: \"E418\",\n enumerable: false,\n configurable: true\n });\n }\n // We limit the size of the router state header to ~40kb. This is to prevent\n // a malicious user from sending a very large header and slowing down the\n // resolving of the router state.\n // This is around 2,000 nested or parallel route segment states:\n // '{\"children\":[\"\",{}]}'.length === 20.\n if (stateHeader.length > 20 * 2000) {\n throw Object.defineProperty(new Error('The router state header was too large.'), \"__NEXT_ERROR_CODE\", {\n value: \"E142\",\n enumerable: false,\n configurable: true\n });\n }\n try {\n const state = JSON.parse(decodeURIComponent(stateHeader));\n (0, _superstruct.assert)(state, _types.flightRouterStateSchema);\n return state;\n } catch {\n throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), \"__NEXT_ERROR_CODE\", {\n value: \"E10\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=parse-and-validate-flight-router-state.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3BhcnNlLWFuZC12YWxpZGF0ZS1mbGlnaHQtcm91dGVyLXN0YXRlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YscUVBQW9FO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZUFBZSxtQkFBTyxDQUFDLDBFQUFTO0FBQ2hDLHFCQUFxQixtQkFBTyxDQUFDLHFHQUFnQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsaUJBQWlCLEVBQUU7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9wYXJzZS1hbmQtdmFsaWRhdGUtZmxpZ2h0LXJvdXRlci1zdGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcnNlQW5kVmFsaWRhdGVGbGlnaHRSb3V0ZXJTdGF0ZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGFyc2VBbmRWYWxpZGF0ZUZsaWdodFJvdXRlclN0YXRlO1xuICAgIH1cbn0pO1xuY29uc3QgX3R5cGVzID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG5jb25zdCBfc3VwZXJzdHJ1Y3QgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N1cGVyc3RydWN0XCIpO1xuZnVuY3Rpb24gcGFyc2VBbmRWYWxpZGF0ZUZsaWdodFJvdXRlclN0YXRlKHN0YXRlSGVhZGVyKSB7XG4gICAgaWYgKHR5cGVvZiBzdGF0ZUhlYWRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3RhdGVIZWFkZXIpKSB7XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ011bHRpcGxlIHJvdXRlciBzdGF0ZSBoZWFkZXJzIHdlcmUgc2VudC4gVGhpcyBpcyBub3QgYWxsb3dlZC4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFNDE4XCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gV2UgbGltaXQgdGhlIHNpemUgb2YgdGhlIHJvdXRlciBzdGF0ZSBoZWFkZXIgdG8gfjQwa2IuIFRoaXMgaXMgdG8gcHJldmVudFxuICAgIC8vIGEgbWFsaWNpb3VzIHVzZXIgZnJvbSBzZW5kaW5nIGEgdmVyeSBsYXJnZSBoZWFkZXIgYW5kIHNsb3dpbmcgZG93biB0aGVcbiAgICAvLyByZXNvbHZpbmcgb2YgdGhlIHJvdXRlciBzdGF0ZS5cbiAgICAvLyBUaGlzIGlzIGFyb3VuZCAyLDAwMCBuZXN0ZWQgb3IgcGFyYWxsZWwgcm91dGUgc2VnbWVudCBzdGF0ZXM6XG4gICAgLy8gJ3tcImNoaWxkcmVuXCI6W1wiXCIse31dfScubGVuZ3RoID09PSAyMC5cbiAgICBpZiAoc3RhdGVIZWFkZXIubGVuZ3RoID4gMjAgKiAyMDAwKSB7XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ1RoZSByb3V0ZXIgc3RhdGUgaGVhZGVyIHdhcyB0b28gbGFyZ2UuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTE0MlwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoc3RhdGVIZWFkZXIpKTtcbiAgICAgICAgKDAsIF9zdXBlcnN0cnVjdC5hc3NlcnQpKHN0YXRlLCBfdHlwZXMuZmxpZ2h0Um91dGVyU3RhdGVTY2hlbWEpO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfSBjYXRjaCAge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdUaGUgcm91dGVyIHN0YXRlIGhlYWRlciB3YXMgc2VudCBidXQgY291bGQgbm90IGJlIHBhcnNlZC4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFMTBcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFyc2UtYW5kLXZhbGlkYXRlLWZsaWdodC1yb3V0ZXItc3RhdGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/react-large-shell-error.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// TODO: isWellKnownError -> isNextInternalError\n// isReactLargeShellError -> isWarning\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isReactLargeShellError\", ({\n enumerable: true,\n get: function() {\n return isReactLargeShellError;\n }\n}));\nfunction isReactLargeShellError(error) {\n return typeof error === 'object' && error !== null && 'message' in error && typeof error.message === 'string' && error.message.startsWith('This rendered a large document (>');\n}\n\n//# sourceMappingURL=react-large-shell-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JlYWN0LWxhcmdlLXNoZWxsLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDBEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JlYWN0LWxhcmdlLXNoZWxsLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IGlzV2VsbEtub3duRXJyb3IgLT4gaXNOZXh0SW50ZXJuYWxFcnJvclxuLy8gaXNSZWFjdExhcmdlU2hlbGxFcnJvciAtPiBpc1dhcm5pbmdcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaXNSZWFjdExhcmdlU2hlbGxFcnJvclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNSZWFjdExhcmdlU2hlbGxFcnJvcjtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGlzUmVhY3RMYXJnZVNoZWxsRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiAnbWVzc2FnZScgaW4gZXJyb3IgJiYgdHlwZW9mIGVycm9yLm1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIGVycm9yLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnVGhpcyByZW5kZXJlZCBhIGxhcmdlIGRvY3VtZW50ICg+Jyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWxhcmdlLXNoZWxsLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/rsc/postpone.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ // When postpone is available in canary React we can switch to importing it directly\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Postpone\", ({\n enumerable: true,\n get: function() {\n return _dynamicrendering.Postpone;\n }\n}));\nconst _dynamicrendering = __webpack_require__(/*! ../dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\n\n//# sourceMappingURL=postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wb3N0cG9uZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNENBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsbUdBQXNCOztBQUV4RCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wb3N0cG9uZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXG5GaWxlcyBpbiB0aGUgcnNjIGRpcmVjdG9yeSBhcmUgbWVhbnQgdG8gYmUgcGFja2FnZWQgYXMgcGFydCBvZiB0aGUgUlNDIGdyYXBoIHVzaW5nIG5leHQtYXBwLWxvYWRlci5cblxuKi8gLy8gV2hlbiBwb3N0cG9uZSBpcyBhdmFpbGFibGUgaW4gY2FuYXJ5IFJlYWN0IHdlIGNhbiBzd2l0Y2ggdG8gaW1wb3J0aW5nIGl0IGRpcmVjdGx5XG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBvc3Rwb25lXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfZHluYW1pY3JlbmRlcmluZy5Qb3N0cG9uZTtcbiAgICB9XG59KTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2R5bmFtaWMtcmVuZGVyaW5nXCIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wb3N0cG9uZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/rsc/preloads.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n preconnect: function() {\n return preconnect;\n },\n preloadFont: function() {\n return preloadFont;\n },\n preloadStyle: function() {\n return preloadStyle;\n }\n});\nconst _reactdom = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react-dom */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction preloadStyle(href, crossOrigin, nonce) {\n const opts = {\n as: 'style'\n };\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n _reactdom.default.preload(href, opts);\n}\nfunction preloadFont(href, type, crossOrigin, nonce) {\n const opts = {\n as: 'font',\n type\n };\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n _reactdom.default.preload(href, opts);\n}\nfunction preconnect(href, crossOrigin, nonce) {\n const opts = {};\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n ;\n _reactdom.default.preconnect(href, opts);\n}\n\n//# sourceMappingURL=preloads.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wcmVsb2Fkcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxHQUFnQjtBQUNoQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5REFBeUQsbUJBQU8sQ0FBQyx5R0FBVztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvcnNjL3ByZWxvYWRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5cbkZpbGVzIGluIHRoZSByc2MgZGlyZWN0b3J5IGFyZSBtZWFudCB0byBiZSBwYWNrYWdlZCBhcyBwYXJ0IG9mIHRoZSBSU0MgZ3JhcGggdXNpbmcgbmV4dC1hcHAtbG9hZGVyLlxuXG4qLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHByZWNvbm5lY3Q6IG51bGwsXG4gICAgcHJlbG9hZEZvbnQ6IG51bGwsXG4gICAgcHJlbG9hZFN0eWxlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHByZWNvbm5lY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHJlY29ubmVjdDtcbiAgICB9LFxuICAgIHByZWxvYWRGb250OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZWxvYWRGb250O1xuICAgIH0sXG4gICAgcHJlbG9hZFN0eWxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZWxvYWRTdHlsZTtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWFjdGRvbSA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdC1kb21cIikpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBwcmVsb2FkU3R5bGUoaHJlZiwgY3Jvc3NPcmlnaW4sIG5vbmNlKSB7XG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgYXM6ICdzdHlsZSdcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgY3Jvc3NPcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdHMuY3Jvc3NPcmlnaW4gPSBjcm9zc09yaWdpbjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBub25jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0cy5ub25jZSA9IG5vbmNlO1xuICAgIH1cbiAgICBfcmVhY3Rkb20uZGVmYXVsdC5wcmVsb2FkKGhyZWYsIG9wdHMpO1xufVxuZnVuY3Rpb24gcHJlbG9hZEZvbnQoaHJlZiwgdHlwZSwgY3Jvc3NPcmlnaW4sIG5vbmNlKSB7XG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgYXM6ICdmb250JyxcbiAgICAgICAgdHlwZVxuICAgIH07XG4gICAgaWYgKHR5cGVvZiBjcm9zc09yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0cy5jcm9zc09yaWdpbiA9IGNyb3NzT3JpZ2luO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG5vbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRzLm5vbmNlID0gbm9uY2U7XG4gICAgfVxuICAgIF9yZWFjdGRvbS5kZWZhdWx0LnByZWxvYWQoaHJlZiwgb3B0cyk7XG59XG5mdW5jdGlvbiBwcmVjb25uZWN0KGhyZWYsIGNyb3NzT3JpZ2luLCBub25jZSkge1xuICAgIGNvbnN0IG9wdHMgPSB7fTtcbiAgICBpZiAodHlwZW9mIGNyb3NzT3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRzLmNyb3NzT3JpZ2luID0gY3Jvc3NPcmlnaW47XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygbm9uY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdHMubm9uY2UgPSBub25jZTtcbiAgICB9XG4gICAgO1xuICAgIF9yZWFjdGRvbS5kZWZhdWx0LnByZWNvbm5lY3QoaHJlZiwgb3B0cyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZWxvYWRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/rsc/taint.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n taintObjectReference: function() {\n return taintObjectReference;\n },\n taintUniqueValue: function() {\n return taintUniqueValue;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction notImplemented() {\n throw Object.defineProperty(new Error('Taint can only be used with the taint flag.'), \"__NEXT_ERROR_CODE\", {\n value: \"E354\",\n enumerable: false,\n configurable: true\n });\n}\nconst taintObjectReference = false ? 0 : notImplemented;\nconst taintUniqueValue = false ? 0 : notImplemented;\n\n//# sourceMappingURL=taint.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy90YWludC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxHQUFnQjtBQUNoQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsNkJBQTZCLE1BQXFDLEdBQUcsQ0FBd0M7QUFDN0cseUJBQXlCLE1BQXFDLEdBQUcsQ0FBb0M7O0FBRXJHIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvcnNjL3RhaW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5cbkZpbGVzIGluIHRoZSByc2MgZGlyZWN0b3J5IGFyZSBtZWFudCB0byBiZSBwYWNrYWdlZCBhcyBwYXJ0IG9mIHRoZSBSU0MgZ3JhcGggdXNpbmcgbmV4dC1hcHAtbG9hZGVyLlxuXG4qLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlOiBudWxsLFxuICAgIHRhaW50VW5pcXVlVmFsdWU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgdGFpbnRPYmplY3RSZWZlcmVuY2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGFpbnRPYmplY3RSZWZlcmVuY2U7XG4gICAgfSxcbiAgICB0YWludFVuaXF1ZVZhbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRhaW50VW5pcXVlVmFsdWU7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuZnVuY3Rpb24gbm90SW1wbGVtZW50ZWQoKSB7XG4gICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignVGFpbnQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHRoZSB0YWludCBmbGFnLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM1NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5jb25zdCB0YWludE9iamVjdFJlZmVyZW5jZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QgPyBfcmVhY3QuZXhwZXJpbWVudGFsX3RhaW50T2JqZWN0UmVmZXJlbmNlIDogbm90SW1wbGVtZW50ZWQ7XG5jb25zdCB0YWludFVuaXF1ZVZhbHVlID0gcHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9SRUFDVCA/IF9yZWFjdC5leHBlcmltZW50YWxfdGFpbnRVbmlxdWVWYWx1ZSA6IG5vdEltcGxlbWVudGVkO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10YWludC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/strip-flight-headers.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/strip-flight-headers.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"stripFlightHeaders\", ({\n enumerable: true,\n get: function() {\n return stripFlightHeaders;\n }\n}));\nconst _approuterheaders = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction stripFlightHeaders(headers) {\n for (const header of _approuterheaders.FLIGHT_HEADERS){\n delete headers[header];\n }\n}\n\n//# sourceMappingURL=strip-flight-headers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3N0cmlwLWZsaWdodC1oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysc0RBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsMEhBQTRDO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9zdHJpcC1mbGlnaHQtaGVhZGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInN0cmlwRmxpZ2h0SGVhZGVyc1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyaXBGbGlnaHRIZWFkZXJzO1xuICAgIH1cbn0pO1xuY29uc3QgX2FwcHJvdXRlcmhlYWRlcnMgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCIpO1xuZnVuY3Rpb24gc3RyaXBGbGlnaHRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBmb3IgKGNvbnN0IGhlYWRlciBvZiBfYXBwcm91dGVyaGVhZGVycy5GTElHSFRfSEVBREVSUyl7XG4gICAgICAgIGRlbGV0ZSBoZWFkZXJzW2hlYWRlcl07XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHJpcC1mbGlnaHQtaGVhZGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/strip-flight-headers.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/app-render/types.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/server/app-render/types.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HasLoadingBoundary: function() {\n return HasLoadingBoundary;\n },\n flightRouterStateSchema: function() {\n return flightRouterStateSchema;\n }\n});\nconst _superstruct = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/superstruct */ \"(rsc)/./node_modules/next/dist/compiled/superstruct/index.cjs\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst dynamicParamTypesSchema = _superstruct.default.enums([\n 'c',\n 'ci',\n 'oc',\n 'd',\n 'di'\n]);\nconst segmentSchema = _superstruct.default.union([\n _superstruct.default.string(),\n _superstruct.default.tuple([\n // Param name\n _superstruct.default.string(),\n // Param cache key (almost the same as the value, but arrays are\n // concatenated into strings)\n // TODO: We should change this to just be the value. Currently we convert\n // it back to a value when passing to useParams. It only needs to be\n // a string when converted to a a cache key, but that doesn't mean we\n // need to store it as that representation.\n _superstruct.default.string(),\n // Dynamic param type\n dynamicParamTypesSchema\n ])\n]);\nconst flightRouterStateSchema = _superstruct.default.tuple([\n segmentSchema,\n _superstruct.default.record(_superstruct.default.string(), _superstruct.default.lazy(()=>flightRouterStateSchema)),\n _superstruct.default.optional(_superstruct.default.nullable(_superstruct.default.string())),\n _superstruct.default.optional(_superstruct.default.nullable(_superstruct.default.union([\n _superstruct.default.literal('refetch'),\n _superstruct.default.literal('refresh'),\n _superstruct.default.literal('inside-shared-layout'),\n _superstruct.default.literal('metadata-only')\n ]))),\n _superstruct.default.optional(_superstruct.default.boolean())\n]);\nvar HasLoadingBoundary = /*#__PURE__*/ function(HasLoadingBoundary) {\n // There is a loading boundary in this particular segment\n HasLoadingBoundary[HasLoadingBoundary[\"SegmentHasLoadingBoundary\"] = 1] = \"SegmentHasLoadingBoundary\";\n // There is a loading boundary somewhere in the subtree (but not in\n // this segment)\n HasLoadingBoundary[HasLoadingBoundary[\"SubtreeHasLoadingBoundary\"] = 2] = \"SubtreeHasLoadingBoundary\";\n // There is no loading boundary in this segment or any of its descendants\n HasLoadingBoundary[HasLoadingBoundary[\"SubtreeHasNoLoadingBoundary\"] = 3] = \"SubtreeHasNoLoadingBoundary\";\n return HasLoadingBoundary;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDREQUE0RCxtQkFBTyxDQUFDLHFHQUFnQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSGFzTG9hZGluZ0JvdW5kYXJ5OiBudWxsLFxuICAgIGZsaWdodFJvdXRlclN0YXRlU2NoZW1hOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEhhc0xvYWRpbmdCb3VuZGFyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBIYXNMb2FkaW5nQm91bmRhcnk7XG4gICAgfSxcbiAgICBmbGlnaHRSb3V0ZXJTdGF0ZVNjaGVtYTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmbGlnaHRSb3V0ZXJTdGF0ZVNjaGVtYTtcbiAgICB9XG59KTtcbmNvbnN0IF9zdXBlcnN0cnVjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvc3VwZXJzdHJ1Y3RcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBkeW5hbWljUGFyYW1UeXBlc1NjaGVtYSA9IF9zdXBlcnN0cnVjdC5kZWZhdWx0LmVudW1zKFtcbiAgICAnYycsXG4gICAgJ2NpJyxcbiAgICAnb2MnLFxuICAgICdkJyxcbiAgICAnZGknXG5dKTtcbmNvbnN0IHNlZ21lbnRTY2hlbWEgPSBfc3VwZXJzdHJ1Y3QuZGVmYXVsdC51bmlvbihbXG4gICAgX3N1cGVyc3RydWN0LmRlZmF1bHQuc3RyaW5nKCksXG4gICAgX3N1cGVyc3RydWN0LmRlZmF1bHQudHVwbGUoW1xuICAgICAgICAvLyBQYXJhbSBuYW1lXG4gICAgICAgIF9zdXBlcnN0cnVjdC5kZWZhdWx0LnN0cmluZygpLFxuICAgICAgICAvLyBQYXJhbSBjYWNoZSBrZXkgKGFsbW9zdCB0aGUgc2FtZSBhcyB0aGUgdmFsdWUsIGJ1dCBhcnJheXMgYXJlXG4gICAgICAgIC8vIGNvbmNhdGVuYXRlZCBpbnRvIHN0cmluZ3MpXG4gICAgICAgIC8vIFRPRE86IFdlIHNob3VsZCBjaGFuZ2UgdGhpcyB0byBqdXN0IGJlIHRoZSB2YWx1ZS4gQ3VycmVudGx5IHdlIGNvbnZlcnRcbiAgICAgICAgLy8gaXQgYmFjayB0byBhIHZhbHVlIHdoZW4gcGFzc2luZyB0byB1c2VQYXJhbXMuIEl0IG9ubHkgbmVlZHMgdG8gYmVcbiAgICAgICAgLy8gYSBzdHJpbmcgd2hlbiBjb252ZXJ0ZWQgdG8gYSBhIGNhY2hlIGtleSwgYnV0IHRoYXQgZG9lc24ndCBtZWFuIHdlXG4gICAgICAgIC8vIG5lZWQgdG8gc3RvcmUgaXQgYXMgdGhhdCByZXByZXNlbnRhdGlvbi5cbiAgICAgICAgX3N1cGVyc3RydWN0LmRlZmF1bHQuc3RyaW5nKCksXG4gICAgICAgIC8vIER5bmFtaWMgcGFyYW0gdHlwZVxuICAgICAgICBkeW5hbWljUGFyYW1UeXBlc1NjaGVtYVxuICAgIF0pXG5dKTtcbmNvbnN0IGZsaWdodFJvdXRlclN0YXRlU2NoZW1hID0gX3N1cGVyc3RydWN0LmRlZmF1bHQudHVwbGUoW1xuICAgIHNlZ21lbnRTY2hlbWEsXG4gICAgX3N1cGVyc3RydWN0LmRlZmF1bHQucmVjb3JkKF9zdXBlcnN0cnVjdC5kZWZhdWx0LnN0cmluZygpLCBfc3VwZXJzdHJ1Y3QuZGVmYXVsdC5sYXp5KCgpPT5mbGlnaHRSb3V0ZXJTdGF0ZVNjaGVtYSkpLFxuICAgIF9zdXBlcnN0cnVjdC5kZWZhdWx0Lm9wdGlvbmFsKF9zdXBlcnN0cnVjdC5kZWZhdWx0Lm51bGxhYmxlKF9zdXBlcnN0cnVjdC5kZWZhdWx0LnN0cmluZygpKSksXG4gICAgX3N1cGVyc3RydWN0LmRlZmF1bHQub3B0aW9uYWwoX3N1cGVyc3RydWN0LmRlZmF1bHQubnVsbGFibGUoX3N1cGVyc3RydWN0LmRlZmF1bHQudW5pb24oW1xuICAgICAgICBfc3VwZXJzdHJ1Y3QuZGVmYXVsdC5saXRlcmFsKCdyZWZldGNoJyksXG4gICAgICAgIF9zdXBlcnN0cnVjdC5kZWZhdWx0LmxpdGVyYWwoJ3JlZnJlc2gnKSxcbiAgICAgICAgX3N1cGVyc3RydWN0LmRlZmF1bHQubGl0ZXJhbCgnaW5zaWRlLXNoYXJlZC1sYXlvdXQnKSxcbiAgICAgICAgX3N1cGVyc3RydWN0LmRlZmF1bHQubGl0ZXJhbCgnbWV0YWRhdGEtb25seScpXG4gICAgXSkpKSxcbiAgICBfc3VwZXJzdHJ1Y3QuZGVmYXVsdC5vcHRpb25hbChfc3VwZXJzdHJ1Y3QuZGVmYXVsdC5ib29sZWFuKCkpXG5dKTtcbnZhciBIYXNMb2FkaW5nQm91bmRhcnkgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEhhc0xvYWRpbmdCb3VuZGFyeSkge1xuICAgIC8vIFRoZXJlIGlzIGEgbG9hZGluZyBib3VuZGFyeSBpbiB0aGlzIHBhcnRpY3VsYXIgc2VnbWVudFxuICAgIEhhc0xvYWRpbmdCb3VuZGFyeVtIYXNMb2FkaW5nQm91bmRhcnlbXCJTZWdtZW50SGFzTG9hZGluZ0JvdW5kYXJ5XCJdID0gMV0gPSBcIlNlZ21lbnRIYXNMb2FkaW5nQm91bmRhcnlcIjtcbiAgICAvLyBUaGVyZSBpcyBhIGxvYWRpbmcgYm91bmRhcnkgc29tZXdoZXJlIGluIHRoZSBzdWJ0cmVlIChidXQgbm90IGluXG4gICAgLy8gdGhpcyBzZWdtZW50KVxuICAgIEhhc0xvYWRpbmdCb3VuZGFyeVtIYXNMb2FkaW5nQm91bmRhcnlbXCJTdWJ0cmVlSGFzTG9hZGluZ0JvdW5kYXJ5XCJdID0gMl0gPSBcIlN1YnRyZWVIYXNMb2FkaW5nQm91bmRhcnlcIjtcbiAgICAvLyBUaGVyZSBpcyBubyBsb2FkaW5nIGJvdW5kYXJ5IGluIHRoaXMgc2VnbWVudCBvciBhbnkgb2YgaXRzIGRlc2NlbmRhbnRzXG4gICAgSGFzTG9hZGluZ0JvdW5kYXJ5W0hhc0xvYWRpbmdCb3VuZGFyeVtcIlN1YnRyZWVIYXNOb0xvYWRpbmdCb3VuZGFyeVwiXSA9IDNdID0gXCJTdWJ0cmVlSGFzTm9Mb2FkaW5nQm91bmRhcnlcIjtcbiAgICByZXR1cm4gSGFzTG9hZGluZ0JvdW5kYXJ5O1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/types.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/base-http/helpers.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/server/base-http/helpers.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isNodeNextRequest: function() {\n return isNodeNextRequest;\n },\n isNodeNextResponse: function() {\n return isNodeNextResponse;\n },\n isWebNextRequest: function() {\n return isWebNextRequest;\n },\n isWebNextResponse: function() {\n return isWebNextResponse;\n }\n});\nconst isWebNextRequest = (req)=>\"nodejs\" === 'edge';\nconst isWebNextResponse = (res)=>\"nodejs\" === 'edge';\nconst isNodeNextRequest = (req)=>\"nodejs\" !== 'edge';\nconst isNodeNextResponse = (res)=>\"nodejs\" !== 'edge';\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FLTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZ0NBQWdDLFFBQXdCO0FBQ3hELGlDQUFpQyxRQUF3QjtBQUN6RCxpQ0FBaUMsUUFBd0I7QUFDekQsa0NBQWtDLFFBQXdCOztBQUUxRCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzTm9kZU5leHRSZXF1ZXN0OiBudWxsLFxuICAgIGlzTm9kZU5leHRSZXNwb25zZTogbnVsbCxcbiAgICBpc1dlYk5leHRSZXF1ZXN0OiBudWxsLFxuICAgIGlzV2ViTmV4dFJlc3BvbnNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzTm9kZU5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZU5leHRSZXF1ZXN0O1xuICAgIH0sXG4gICAgaXNOb2RlTmV4dFJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZU5leHRSZXNwb25zZTtcbiAgICB9LFxuICAgIGlzV2ViTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNXZWJOZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIGlzV2ViTmV4dFJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzV2ViTmV4dFJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgaXNXZWJOZXh0UmVxdWVzdCA9IChyZXEpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJztcbmNvbnN0IGlzV2ViTmV4dFJlc3BvbnNlID0gKHJlcyk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnO1xuY29uc3QgaXNOb2RlTmV4dFJlcXVlc3QgPSAocmVxKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZSc7XG5jb25zdCBpc05vZGVOZXh0UmVzcG9uc2UgPSAocmVzKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZSc7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/helpers.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/base-http/index.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/server/base-http/index.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BaseNextRequest: function() {\n return BaseNextRequest;\n },\n BaseNextResponse: function() {\n return BaseNextResponse;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ../../client/components/redirect-status-code */ \"(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _getcookieparser = __webpack_require__(/*! ../api-utils/get-cookie-parser */ \"(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js\");\nclass BaseNextRequest {\n constructor(method, url, body){\n this.method = method;\n this.url = url;\n this.body = body;\n }\n // Utils implemented using the abstract methods above\n get cookies() {\n if (this._cookies) return this._cookies;\n return this._cookies = (0, _getcookieparser.getCookieParser)(this.headers)();\n }\n}\nclass BaseNextResponse {\n constructor(destination){\n this.destination = destination;\n }\n // Utils implemented using the abstract methods above\n redirect(destination, statusCode) {\n this.setHeader('Location', destination);\n this.statusCode = statusCode;\n // Since IE11 doesn't support the 308 header add backwards\n // compatibility using refresh header\n if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) {\n this.setHeader('Refresh', `0;url=${destination}`);\n }\n return this;\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNEJBQTRCLG1CQUFPLENBQUMsOEhBQThDO0FBQ2xGLHlCQUF5QixtQkFBTyxDQUFDLDRHQUFnQztBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLE1BQU0sWUFBWTtBQUMzRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBCYXNlTmV4dFJlcXVlc3Q6IG51bGwsXG4gICAgQmFzZU5leHRSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBCYXNlTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmFzZU5leHRSZXF1ZXN0O1xuICAgIH0sXG4gICAgQmFzZU5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXNlTmV4dFJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlZGlyZWN0c3RhdHVzY29kZSA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZVwiKTtcbmNvbnN0IF9nZXRjb29raWVwYXJzZXIgPSByZXF1aXJlKFwiLi4vYXBpLXV0aWxzL2dldC1jb29raWUtcGFyc2VyXCIpO1xuY2xhc3MgQmFzZU5leHRSZXF1ZXN0IHtcbiAgICBjb25zdHJ1Y3RvcihtZXRob2QsIHVybCwgYm9keSl7XG4gICAgICAgIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICB9XG4gICAgLy8gVXRpbHMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIGFic3RyYWN0IG1ldGhvZHMgYWJvdmVcbiAgICBnZXQgY29va2llcygpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Nvb2tpZXMpIHJldHVybiB0aGlzLl9jb29raWVzO1xuICAgICAgICByZXR1cm4gdGhpcy5fY29va2llcyA9ICgwLCBfZ2V0Y29va2llcGFyc2VyLmdldENvb2tpZVBhcnNlcikodGhpcy5oZWFkZXJzKSgpO1xuICAgIH1cbn1cbmNsYXNzIEJhc2VOZXh0UmVzcG9uc2Uge1xuICAgIGNvbnN0cnVjdG9yKGRlc3RpbmF0aW9uKXtcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuICAgIH1cbiAgICAvLyBVdGlscyBpbXBsZW1lbnRlZCB1c2luZyB0aGUgYWJzdHJhY3QgbWV0aG9kcyBhYm92ZVxuICAgIHJlZGlyZWN0KGRlc3RpbmF0aW9uLCBzdGF0dXNDb2RlKSB7XG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKCdMb2NhdGlvbicsIGRlc3RpbmF0aW9uKTtcbiAgICAgICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICAgICAgLy8gU2luY2UgSUUxMSBkb2Vzbid0IHN1cHBvcnQgdGhlIDMwOCBoZWFkZXIgYWRkIGJhY2t3YXJkc1xuICAgICAgICAvLyBjb21wYXRpYmlsaXR5IHVzaW5nIHJlZnJlc2ggaGVhZGVyXG4gICAgICAgIGlmIChzdGF0dXNDb2RlID09PSBfcmVkaXJlY3RzdGF0dXNjb2RlLlJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCkge1xuICAgICAgICAgICAgdGhpcy5zZXRIZWFkZXIoJ1JlZnJlc2gnLCBgMDt1cmw9JHtkZXN0aW5hdGlvbn1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/base-http/node.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/server/base-http/node.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NodeNextRequest: function() {\n return NodeNextRequest;\n },\n NodeNextResponse: function() {\n return NodeNextResponse;\n }\n});\nconst _apiutils = __webpack_require__(/*! ../api-utils */ \"(rsc)/./node_modules/next/dist/server/api-utils/index.js\");\nconst _requestmeta = __webpack_require__(/*! ../request-meta */ \"(rsc)/./node_modules/next/dist/server/request-meta.js\");\nconst _index = __webpack_require__(/*! ./index */ \"(rsc)/./node_modules/next/dist/server/base-http/index.js\");\nlet prop;\nclass NodeNextRequest extends _index.BaseNextRequest {\n static #_ = prop = _NEXT_REQUEST_META = _requestmeta.NEXT_REQUEST_META;\n constructor(_req){\n var _this__req;\n super(_req.method.toUpperCase(), _req.url, _req), this._req = _req, this.headers = this._req.headers, this.fetchMetrics = (_this__req = this._req) == null ? void 0 : _this__req.fetchMetrics, this[_NEXT_REQUEST_META] = this._req[_requestmeta.NEXT_REQUEST_META] || {}, this.streaming = false;\n }\n get originalRequest() {\n // Need to mimic these changes to the original req object for places where we use it:\n // render.tsx, api/ssg requests\n this._req[_requestmeta.NEXT_REQUEST_META] = this[_requestmeta.NEXT_REQUEST_META];\n this._req.url = this.url;\n this._req.cookies = this.cookies;\n return this._req;\n }\n set originalRequest(value) {\n this._req = value;\n }\n /**\n * Returns the request body as a Web Readable Stream. The body here can only\n * be read once as the body will start flowing as soon as the data handler\n * is attached.\n *\n * @internal\n */ stream() {\n if (this.streaming) {\n throw Object.defineProperty(new Error('Invariant: NodeNextRequest.stream() can only be called once'), \"__NEXT_ERROR_CODE\", {\n value: \"E467\",\n enumerable: false,\n configurable: true\n });\n }\n this.streaming = true;\n return new ReadableStream({\n start: (controller)=>{\n this._req.on('data', (chunk)=>{\n controller.enqueue(new Uint8Array(chunk));\n });\n this._req.on('end', ()=>{\n controller.close();\n });\n this._req.on('error', (err)=>{\n controller.error(err);\n });\n }\n });\n }\n}\nclass NodeNextResponse extends _index.BaseNextResponse {\n get originalResponse() {\n if (_apiutils.SYMBOL_CLEARED_COOKIES in this) {\n this._res[_apiutils.SYMBOL_CLEARED_COOKIES] = this[_apiutils.SYMBOL_CLEARED_COOKIES];\n }\n return this._res;\n }\n constructor(_res){\n super(_res), this._res = _res, this.textBody = undefined;\n }\n get sent() {\n return this._res.finished || this._res.headersSent;\n }\n get statusCode() {\n return this._res.statusCode;\n }\n set statusCode(value) {\n this._res.statusCode = value;\n }\n get statusMessage() {\n return this._res.statusMessage;\n }\n set statusMessage(value) {\n this._res.statusMessage = value;\n }\n setHeader(name, value) {\n this._res.setHeader(name, value);\n return this;\n }\n removeHeader(name) {\n this._res.removeHeader(name);\n return this;\n }\n getHeaderValues(name) {\n const values = this._res.getHeader(name);\n if (values === undefined) return undefined;\n return (Array.isArray(values) ? values : [\n values\n ]).map((value)=>value.toString());\n }\n hasHeader(name) {\n return this._res.hasHeader(name);\n }\n getHeader(name) {\n const values = this.getHeaderValues(name);\n return Array.isArray(values) ? values.join(',') : undefined;\n }\n getHeaders() {\n return this._res.getHeaders();\n }\n appendHeader(name, value) {\n const currentValues = this.getHeaderValues(name) ?? [];\n if (!currentValues.includes(value)) {\n this._res.setHeader(name, [\n ...currentValues,\n value\n ]);\n }\n return this;\n }\n body(value) {\n this.textBody = value;\n return this;\n }\n send() {\n this._res.end(this.textBody);\n }\n onClose(callback) {\n this.originalResponse.on('close', callback);\n }\n}\nvar _NEXT_REQUEST_META;\n\n//# sourceMappingURL=node.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvbm9kZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0IsbUJBQU8sQ0FBQyw4RUFBYztBQUN4QyxxQkFBcUIsbUJBQU8sQ0FBQyw4RUFBaUI7QUFDOUMsZUFBZSxtQkFBTyxDQUFDLHlFQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpUkFBaVI7QUFDalI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE5vZGVOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBOb2RlTmV4dFJlc3BvbnNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5vZGVOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOb2RlTmV4dFJlcXVlc3Q7XG4gICAgfSxcbiAgICBOb2RlTmV4dFJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5vZGVOZXh0UmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBfYXBpdXRpbHMgPSByZXF1aXJlKFwiLi4vYXBpLXV0aWxzXCIpO1xuY29uc3QgX3JlcXVlc3RtZXRhID0gcmVxdWlyZShcIi4uL3JlcXVlc3QtbWV0YVwiKTtcbmNvbnN0IF9pbmRleCA9IHJlcXVpcmUoXCIuL2luZGV4XCIpO1xubGV0IHByb3A7XG5jbGFzcyBOb2RlTmV4dFJlcXVlc3QgZXh0ZW5kcyBfaW5kZXguQmFzZU5leHRSZXF1ZXN0IHtcbiAgICBzdGF0aWMgI18gPSBwcm9wID0gX05FWFRfUkVRVUVTVF9NRVRBID0gX3JlcXVlc3RtZXRhLk5FWFRfUkVRVUVTVF9NRVRBO1xuICAgIGNvbnN0cnVjdG9yKF9yZXEpe1xuICAgICAgICB2YXIgX3RoaXNfX3JlcTtcbiAgICAgICAgc3VwZXIoX3JlcS5tZXRob2QudG9VcHBlckNhc2UoKSwgX3JlcS51cmwsIF9yZXEpLCB0aGlzLl9yZXEgPSBfcmVxLCB0aGlzLmhlYWRlcnMgPSB0aGlzLl9yZXEuaGVhZGVycywgdGhpcy5mZXRjaE1ldHJpY3MgPSAoX3RoaXNfX3JlcSA9IHRoaXMuX3JlcSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX19yZXEuZmV0Y2hNZXRyaWNzLCB0aGlzW19ORVhUX1JFUVVFU1RfTUVUQV0gPSB0aGlzLl9yZXFbX3JlcXVlc3RtZXRhLk5FWFRfUkVRVUVTVF9NRVRBXSB8fCB7fSwgdGhpcy5zdHJlYW1pbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgZ2V0IG9yaWdpbmFsUmVxdWVzdCgpIHtcbiAgICAgICAgLy8gTmVlZCB0byBtaW1pYyB0aGVzZSBjaGFuZ2VzIHRvIHRoZSBvcmlnaW5hbCByZXEgb2JqZWN0IGZvciBwbGFjZXMgd2hlcmUgd2UgdXNlIGl0OlxuICAgICAgICAvLyByZW5kZXIudHN4LCBhcGkvc3NnIHJlcXVlc3RzXG4gICAgICAgIHRoaXMuX3JlcVtfcmVxdWVzdG1ldGEuTkVYVF9SRVFVRVNUX01FVEFdID0gdGhpc1tfcmVxdWVzdG1ldGEuTkVYVF9SRVFVRVNUX01FVEFdO1xuICAgICAgICB0aGlzLl9yZXEudXJsID0gdGhpcy51cmw7XG4gICAgICAgIHRoaXMuX3JlcS5jb29raWVzID0gdGhpcy5jb29raWVzO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxO1xuICAgIH1cbiAgICBzZXQgb3JpZ2luYWxSZXF1ZXN0KHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3JlcSA9IHZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBib2R5IGFzIGEgV2ViIFJlYWRhYmxlIFN0cmVhbS4gVGhlIGJvZHkgaGVyZSBjYW4gb25seVxuICAgKiBiZSByZWFkIG9uY2UgYXMgdGhlIGJvZHkgd2lsbCBzdGFydCBmbG93aW5nIGFzIHNvb24gYXMgdGhlIGRhdGEgaGFuZGxlclxuICAgKiBpcyBhdHRhY2hlZC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqLyBzdHJlYW0oKSB7XG4gICAgICAgIGlmICh0aGlzLnN0cmVhbWluZykge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignSW52YXJpYW50OiBOb2RlTmV4dFJlcXVlc3Quc3RyZWFtKCkgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTQ2N1wiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdHJlYW1pbmcgPSB0cnVlO1xuICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgIHN0YXJ0OiAoY29udHJvbGxlcik9PntcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXEub24oJ2RhdGEnLCAoY2h1bmspPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShuZXcgVWludDhBcnJheShjaHVuaykpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlcS5vbignZW5kJywgKCk9PntcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlcS5vbignZXJyb3InLCAoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmNsYXNzIE5vZGVOZXh0UmVzcG9uc2UgZXh0ZW5kcyBfaW5kZXguQmFzZU5leHRSZXNwb25zZSB7XG4gICAgZ2V0IG9yaWdpbmFsUmVzcG9uc2UoKSB7XG4gICAgICAgIGlmIChfYXBpdXRpbHMuU1lNQk9MX0NMRUFSRURfQ09PS0lFUyBpbiB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNbX2FwaXV0aWxzLlNZTUJPTF9DTEVBUkVEX0NPT0tJRVNdID0gdGhpc1tfYXBpdXRpbHMuU1lNQk9MX0NMRUFSRURfQ09PS0lFU107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcztcbiAgICB9XG4gICAgY29uc3RydWN0b3IoX3Jlcyl7XG4gICAgICAgIHN1cGVyKF9yZXMpLCB0aGlzLl9yZXMgPSBfcmVzLCB0aGlzLnRleHRCb2R5ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBnZXQgc2VudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlcy5maW5pc2hlZCB8fCB0aGlzLl9yZXMuaGVhZGVyc1NlbnQ7XG4gICAgfVxuICAgIGdldCBzdGF0dXNDb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzLnN0YXR1c0NvZGU7XG4gICAgfVxuICAgIHNldCBzdGF0dXNDb2RlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3Jlcy5zdGF0dXNDb2RlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBzdGF0dXNNZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzLnN0YXR1c01lc3NhZ2U7XG4gICAgfVxuICAgIHNldCBzdGF0dXNNZXNzYWdlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3Jlcy5zdGF0dXNNZXNzYWdlID0gdmFsdWU7XG4gICAgfVxuICAgIHNldEhlYWRlcihuYW1lLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yZXMuc2V0SGVhZGVyKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUhlYWRlcihuYW1lKSB7XG4gICAgICAgIHRoaXMuX3Jlcy5yZW1vdmVIZWFkZXIobmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBnZXRIZWFkZXJWYWx1ZXMobmFtZSkge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl9yZXMuZ2V0SGVhZGVyKG5hbWUpO1xuICAgICAgICBpZiAodmFsdWVzID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpID8gdmFsdWVzIDogW1xuICAgICAgICAgICAgdmFsdWVzXG4gICAgICAgIF0pLm1hcCgodmFsdWUpPT52YWx1ZS50b1N0cmluZygpKTtcbiAgICB9XG4gICAgaGFzSGVhZGVyKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlcy5oYXNIZWFkZXIobmFtZSk7XG4gICAgfVxuICAgIGdldEhlYWRlcihuYW1lKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0SGVhZGVyVmFsdWVzKG5hbWUpO1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZXMpID8gdmFsdWVzLmpvaW4oJywnKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZ2V0SGVhZGVycygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlcy5nZXRIZWFkZXJzKCk7XG4gICAgfVxuICAgIGFwcGVuZEhlYWRlcihuYW1lLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWVzID0gdGhpcy5nZXRIZWFkZXJWYWx1ZXMobmFtZSkgPz8gW107XG4gICAgICAgIGlmICghY3VycmVudFZhbHVlcy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlcy5zZXRIZWFkZXIobmFtZSwgW1xuICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRWYWx1ZXMsXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBib2R5KHZhbHVlKSB7XG4gICAgICAgIHRoaXMudGV4dEJvZHkgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHNlbmQoKSB7XG4gICAgICAgIHRoaXMuX3Jlcy5lbmQodGhpcy50ZXh0Qm9keSk7XG4gICAgfVxuICAgIG9uQ2xvc2UoY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5vcmlnaW5hbFJlc3BvbnNlLm9uKCdjbG9zZScsIGNhbGxiYWNrKTtcbiAgICB9XG59XG52YXIgX05FWFRfUkVRVUVTVF9NRVRBO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub2RlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/node.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/server/client-component-renderer-logger.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0;\nlet clientComponentLoadTimes = 0;\nlet clientComponentLoadCount = 0;\nfunction wrapClientComponentLoader(ComponentMod) {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__;\n }\n return {\n require: (...args)=>{\n const startTime = performance.now();\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime;\n }\n try {\n clientComponentLoadCount += 1;\n return ComponentMod.__next_app__.require(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\n },\n loadChunk: (...args)=>{\n const startTime = performance.now();\n const result = ComponentMod.__next_app__.loadChunk(...args);\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(()=>{\n clientComponentLoadTimes += performance.now() - startTime;\n });\n return result;\n }\n };\n}\nfunction getClientComponentLoaderMetrics(options = {}) {\n const metrics = clientComponentLoadStart === 0 ? undefined : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount\n };\n if (options.reset) {\n clientComponentLoadStart = 0;\n clientComponentLoadTimes = 0;\n clientComponentLoadCount = 0;\n }\n return metrics;\n}\n\n//# sourceMappingURL=client-component-renderer-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljczogbnVsbCxcbiAgICB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcztcbiAgICB9LFxuICAgIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd3JhcENsaWVudENvbXBvbmVudExvYWRlcjtcbiAgICB9XG59KTtcbi8vIENvbWJpbmVkIGxvYWQgdGltZXMgZm9yIGxvYWRpbmcgY2xpZW50IGNvbXBvbmVudHNcbmxldCBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSAwO1xubGV0IGNsaWVudENvbXBvbmVudExvYWRUaW1lcyA9IDA7XG5sZXQgY2xpZW50Q29tcG9uZW50TG9hZENvdW50ID0gMDtcbmZ1bmN0aW9uIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXIoQ29tcG9uZW50TW9kKSB7XG4gICAgaWYgKCEoJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzKSkge1xuICAgICAgICByZXR1cm4gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZTogKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgIGlmIChjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSBzdGFydFRpbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRDb3VudCArPSAxO1xuICAgICAgICAgICAgICAgIHJldHVybiBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fLnJlcXVpcmUoLi4uYXJncyk7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzICs9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb2FkQ2h1bms6ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fLmxvYWRDaHVuayguLi5hcmdzKTtcbiAgICAgICAgICAgIC8vIEF2b2lkIHdyYXBwaW5nIGBsb2FkQ2h1bmtgJ3MgcmVzdWx0IGluIGFuIGV4dHJhIHByb21pc2UgaW4gY2FzZSBzb21ldGhpbmcgbGlrZSBSZWFjdCBkZXBlbmRzIG9uIGl0cyBpZGVudGl0eS5cbiAgICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBrbm93IHdoZW4gaXQncyBzZXR0bGVkLlxuICAgICAgICAgICAgcmVzdWx0LmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgKz0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcyhvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBtZXRyaWNzID0gY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID09PSAwID8gdW5kZWZpbmVkIDoge1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQsXG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyxcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZENvdW50XG4gICAgfTtcbiAgICBpZiAob3B0aW9ucy5yZXNldCkge1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSAwO1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgPSAwO1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkQ291bnQgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gbWV0cmljcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xpZW50LWNvbXBvbmVudC1yZW5kZXJlci1sb2dnZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupedByCallsiteServerErrorLoggerDev\", ({\n enumerable: true,\n get: function() {\n return createDedupedByCallsiteServerErrorLoggerDev;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst errorRef = {\n current: null\n};\n// React.cache is currently only available in canary/experimental React channels.\nconst cache = typeof _react.cache === 'function' ? _react.cache : (fn)=>fn;\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = false ? 0 : console.warn;\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n(key)=>{\n try {\n logErrorOrWarn(errorRef.current);\n } finally{\n errorRef.current = null;\n }\n});\nfunction createDedupedByCallsiteServerErrorLoggerDev(getMessage) {\n return function logDedupedError(...args) {\n const message = getMessage(...args);\n if (true) {\n var _stack;\n const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\\n');\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message);\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4];\n errorRef.current = message;\n flushCurrentErrorIfNew(key);\n }\n } else {}\n };\n}\n\n//# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0VBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLE1BQW1DLEdBQUcsQ0FBYTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBSyxFQUVOO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldlwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldjtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5jb25zdCBlcnJvclJlZiA9IHtcbiAgICBjdXJyZW50OiBudWxsXG59O1xuLy8gUmVhY3QuY2FjaGUgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIGNhbmFyeS9leHBlcmltZW50YWwgUmVhY3QgY2hhbm5lbHMuXG5jb25zdCBjYWNoZSA9IHR5cGVvZiBfcmVhY3QuY2FjaGUgPT09ICdmdW5jdGlvbicgPyBfcmVhY3QuY2FjaGUgOiAoZm4pPT5mbjtcbi8vIFdoZW4gQ2FjaGUgQ29tcG9uZW50cyBpcyBlbmFibGVkLCB3ZSByZWNvcmQgdGhlc2UgYXMgZXJyb3JzIHNvIHRoYXQgdGhleVxuLy8gYXJlIGNhcHR1cmVkIGJ5IHRoZSBkZXYgb3ZlcmxheSBhcyBpdCdzIG1vcmUgY3JpdGljYWwgdG8gZml4IHRoZXNlXG4vLyB3aGVuIGVuYWJsZWQuXG5jb25zdCBsb2dFcnJvck9yV2FybiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTID8gY29uc29sZS5lcnJvciA6IGNvbnNvbGUud2Fybjtcbi8vIFdlIGRvbid0IHdhbnQgdG8gZGVkdXBlIGFjcm9zcyByZXF1ZXN0cy5cbi8vIFRoZSBkZXZlbG9wZXIgbWlnaHQndmUganVzdCBhdHRlbXB0ZWQgdG8gZml4IHRoZSB3YXJuaW5nIHNvIHdlIHNob3VsZCB3YXJuIGFnYWluIGlmIGl0IHN0aWxsIGhhcHBlbnMuXG5jb25zdCBmbHVzaEN1cnJlbnRFcnJvcklmTmV3ID0gY2FjaGUoLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBjYWNoZSBrZXlcbihrZXkpPT57XG4gICAgdHJ5IHtcbiAgICAgICAgbG9nRXJyb3JPcldhcm4oZXJyb3JSZWYuY3VycmVudCk7XG4gICAgfSBmaW5hbGx5e1xuICAgICAgICBlcnJvclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYoZ2V0TWVzc2FnZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBsb2dEZWR1cGVkRXJyb3IoLi4uYXJncykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZ2V0TWVzc2FnZSguLi5hcmdzKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBfc3RhY2s7XG4gICAgICAgICAgICBjb25zdCBjYWxsU3RhY2tGcmFtZXMgPSAoX3N0YWNrID0gbmV3IEVycm9yKCkuc3RhY2spID09IG51bGwgPyB2b2lkIDAgOiBfc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgaWYgKGNhbGxTdGFja0ZyYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGNhbGxTdGFja0ZyYW1lcy5sZW5ndGggPCA0KSB7XG4gICAgICAgICAgICAgICAgbG9nRXJyb3JPcldhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEVycm9yOlxuICAgICAgICAgICAgICAgIC8vICAgbG9nRGVkdXBlZEVycm9yXG4gICAgICAgICAgICAgICAgLy8gICBhc3luY0FwaUJlaW5nQWNjZXNzZWRTeW5jaHJvbm91c2x5XG4gICAgICAgICAgICAgICAgLy8gICA8dXNlcmxhbmQgY2FsbHNpdGU+XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBicmVha3MgaWYgc291cmNlbWFwcyB3aXRoIGlnbm9yZSBsaXN0cyBhcmUgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBjYWxsU3RhY2tGcmFtZXNbNF07XG4gICAgICAgICAgICAgICAgZXJyb3JSZWYuY3VycmVudCA9IG1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgZmx1c2hDdXJyZW50RXJyb3JJZk5ldyhrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nRXJyb3JPcldhcm4obWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/server/dynamic-rendering-utils.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isHangingPromiseRejectionError: function() {\n return isHangingPromiseRejectionError;\n },\n makeDevtoolsIOAwarePromise: function() {\n return makeDevtoolsIOAwarePromise;\n },\n makeHangingPromise: function() {\n return makeHangingPromise;\n }\n});\nfunction isHangingPromiseRejectionError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === HANGING_PROMISE_REJECTION;\n}\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';\nclass HangingPromiseRejectionError extends Error {\n constructor(route, expression){\n super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;\n }\n}\nconst abortListenersBySignal = new WeakMap();\nfunction makeHangingPromise(signal, route, expression) {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression));\n } else {\n const hangingPromise = new Promise((_, reject)=>{\n const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));\n let currentListeners = abortListenersBySignal.get(signal);\n if (currentListeners) {\n currentListeners.push(boundRejection);\n } else {\n const listeners = [\n boundRejection\n ];\n abortListenersBySignal.set(signal, listeners);\n signal.addEventListener('abort', ()=>{\n for(let i = 0; i < listeners.length; i++){\n listeners[i]();\n }\n }, {\n once: true\n });\n }\n });\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject);\n return hangingPromise;\n }\n}\nfunction ignoreReject() {}\nfunction makeDevtoolsIOAwarePromise(underlying) {\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise((resolve)=>{\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(()=>{\n resolve(underlying);\n }, 0);\n });\n}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxZQUFZLHNHQUFzRyxZQUFZLCtLQUErSyxNQUFNO0FBQ3pWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsc0JBQXNCO0FBQ3pEO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcjogbnVsbCxcbiAgICBtYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZTogbnVsbCxcbiAgICBtYWtlSGFuZ2luZ1Byb21pc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcjtcbiAgICB9LFxuICAgIG1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlO1xuICAgIH0sXG4gICAgbWFrZUhhbmdpbmdQcm9taXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nUHJvbWlzZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcihlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciAhPT0gJ29iamVjdCcgfHwgZXJyID09PSBudWxsIHx8ICEoJ2RpZ2VzdCcgaW4gZXJyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBlcnIuZGlnZXN0ID09PSBIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OO1xufVxuY29uc3QgSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTiA9ICdIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OJztcbmNsYXNzIEhhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3Iocm91dGUsIGV4cHJlc3Npb24pe1xuICAgICAgICBzdXBlcihgRHVyaW5nIHByZXJlbmRlcmluZywgJHtleHByZXNzaW9ufSByZWplY3RzIHdoZW4gdGhlIHByZXJlbmRlciBpcyBjb21wbGV0ZS4gVHlwaWNhbGx5IHRoZXNlIGVycm9ycyBhcmUgaGFuZGxlZCBieSBSZWFjdCBidXQgaWYgeW91IG1vdmUgJHtleHByZXNzaW9ufSB0byBhIGRpZmZlcmVudCBjb250ZXh0IGJ5IHVzaW5nIFxcYHNldFRpbWVvdXRcXGAsIFxcYGFmdGVyXFxgLCBvciBzaW1pbGFyIGZ1bmN0aW9ucyB5b3UgbWF5IG9ic2VydmUgdGhpcyBlcnJvciBhbmQgeW91IHNob3VsZCBoYW5kbGUgaXQgaW4gdGhhdCBjb250ZXh0LiBUaGlzIG9jY3VycmVkIGF0IHJvdXRlIFwiJHtyb3V0ZX1cIi5gKSwgdGhpcy5yb3V0ZSA9IHJvdXRlLCB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uLCB0aGlzLmRpZ2VzdCA9IEhBTkdJTkdfUFJPTUlTRV9SRUpFQ1RJT047XG4gICAgfVxufVxuY29uc3QgYWJvcnRMaXN0ZW5lcnNCeVNpZ25hbCA9IG5ldyBXZWFrTWFwKCk7XG5mdW5jdGlvbiBtYWtlSGFuZ2luZ1Byb21pc2Uoc2lnbmFsLCByb3V0ZSwgZXhwcmVzc2lvbikge1xuICAgIGlmIChzaWduYWwuYWJvcnRlZCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEhhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3Iocm91dGUsIGV4cHJlc3Npb24pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBoYW5naW5nUHJvbWlzZSA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpPT57XG4gICAgICAgICAgICBjb25zdCBib3VuZFJlamVjdGlvbiA9IHJlamVjdC5iaW5kKG51bGwsIG5ldyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKHJvdXRlLCBleHByZXNzaW9uKSk7XG4gICAgICAgICAgICBsZXQgY3VycmVudExpc3RlbmVycyA9IGFib3J0TGlzdGVuZXJzQnlTaWduYWwuZ2V0KHNpZ25hbCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudExpc3RlbmVycykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRMaXN0ZW5lcnMucHVzaChib3VuZFJlamVjdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IFtcbiAgICAgICAgICAgICAgICAgICAgYm91bmRSZWplY3Rpb25cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGFib3J0TGlzdGVuZXJzQnlTaWduYWwuc2V0KHNpZ25hbCwgbGlzdGVuZXJzKTtcbiAgICAgICAgICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCAoKT0+e1xuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyc1tpXSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBvbmNlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBXZSBhcmUgZmluZSBpZiBubyBvbmUgYWN0dWFsbHkgYXdhaXRzIHRoaXMgcHJvbWlzZS4gV2Ugc2hvdWxkbid0IGNvbnNpZGVyIHRoaXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiBzb1xuICAgICAgICAvLyB3ZSBhdHRhY2ggYSBub29wIGNhdGNoIGhhbmRsZXIgaGVyZSB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcuIElmIHlvdSBhY3R1YWxseSBhd2FpdCBzb21ld2hlcmUgb3IgY29uc3RydWN0XG4gICAgICAgIC8vIHlvdXIgb3duIHByb21pc2Ugb3V0IG9mIGl0IHlvdSdsbCBuZWVkIHRvIGVuc3VyZSB5b3UgaGFuZGxlIHRoZSBlcnJvciB3aGVuIGl0IHJlamVjdHMuXG4gICAgICAgIGhhbmdpbmdQcm9taXNlLmNhdGNoKGlnbm9yZVJlamVjdCk7XG4gICAgICAgIHJldHVybiBoYW5naW5nUHJvbWlzZTtcbiAgICB9XG59XG5mdW5jdGlvbiBpZ25vcmVSZWplY3QoKSB7fVxuZnVuY3Rpb24gbWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2UodW5kZXJseWluZykge1xuICAgIC8vIGluIFJlYWN0IERldlRvb2xzIGlmIHdlIHJlc29sdmUgaW4gYSBzZXRUaW1lb3V0IHdlIHdpbGwgb2JzZXJ2ZVxuICAgIC8vIHRoZSBwcm9taXNlIHJlc29sdXRpb24gYXMgc29tZXRoaW5nIHRoYXQgY2FuIHN1c3BlbmQgYSBib3VuZGFyeSBvciByb290LlxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgLy8gTXVzdCB1c2Ugc2V0VGltZW91dCB0byBiZSBjb25zaWRlcmVkIElPIFJlYWN0IERldlRvb2xzLiBzZXRJbW1lZGlhdGUgd2lsbCBub3Qgd29yay5cbiAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgcmVzb2x2ZSh1bmRlcmx5aW5nKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWR5bmFtaWMtcmVuZGVyaW5nLXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/instrumentation/utils.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/server/instrumentation/utils.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRevalidateReason\", ({\n enumerable: true,\n get: function() {\n return getRevalidateReason;\n }\n}));\nfunction getRevalidateReason(params) {\n if (params.isOnDemandRevalidate) {\n return 'on-demand';\n }\n if (params.isRevalidate) {\n return 'stale';\n }\n return undefined;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9pbnN0cnVtZW50YXRpb24vdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvaW5zdHJ1bWVudGF0aW9uL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0UmV2YWxpZGF0ZVJlYXNvblwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UmV2YWxpZGF0ZVJlYXNvbjtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGdldFJldmFsaWRhdGVSZWFzb24ocGFyYW1zKSB7XG4gICAgaWYgKHBhcmFtcy5pc09uRGVtYW5kUmV2YWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4gJ29uLWRlbWFuZCc7XG4gICAgfVxuICAgIGlmIChwYXJhbXMuaXNSZXZhbGlkYXRlKSB7XG4gICAgICAgIHJldHVybiAnc3RhbGUnO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/instrumentation/utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js": /*!*************************************************************!*\ !*** ./node_modules/next/dist/server/lib/app-dir-module.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getComponentTypeModule: function() {\n return getComponentTypeModule;\n },\n getLayoutOrPageModule: function() {\n return getLayoutOrPageModule;\n }\n});\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nasync function getLayoutOrPageModule(loaderTree) {\n const { layout, page, defaultPage } = loaderTree[2];\n const isLayout = typeof layout !== 'undefined';\n const isPage = typeof page !== 'undefined';\n const isDefaultPage = typeof defaultPage !== 'undefined' && loaderTree[0] === _segment.DEFAULT_SEGMENT_KEY;\n let mod = undefined;\n let modType = undefined;\n let filePath = undefined;\n if (isLayout) {\n mod = await layout[0]();\n modType = 'layout';\n filePath = layout[1];\n } else if (isPage) {\n mod = await page[0]();\n modType = 'page';\n filePath = page[1];\n } else if (isDefaultPage) {\n mod = await defaultPage[0]();\n modType = 'page';\n filePath = defaultPage[1];\n }\n return {\n mod,\n modType,\n filePath\n };\n}\nasync function getComponentTypeModule(loaderTree, moduleType) {\n const { [moduleType]: module1 } = loaderTree[2];\n if (typeof module1 !== 'undefined') {\n return await module1[0]();\n }\n return undefined;\n}\n\n//# sourceMappingURL=app-dir-module.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvYXBwLWRpci1tb2R1bGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsc0ZBQTBCO0FBQ25EO0FBQ0EsWUFBWSw0QkFBNEI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHdCQUF3QjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9hcHAtZGlyLW1vZHVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldENvbXBvbmVudFR5cGVNb2R1bGU6IG51bGwsXG4gICAgZ2V0TGF5b3V0T3JQYWdlTW9kdWxlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldENvbXBvbmVudFR5cGVNb2R1bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50VHlwZU1vZHVsZTtcbiAgICB9LFxuICAgIGdldExheW91dE9yUGFnZU1vZHVsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRMYXlvdXRPclBhZ2VNb2R1bGU7XG4gICAgfVxufSk7XG5jb25zdCBfc2VnbWVudCA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3NlZ21lbnRcIik7XG5hc3luYyBmdW5jdGlvbiBnZXRMYXlvdXRPclBhZ2VNb2R1bGUobG9hZGVyVHJlZSkge1xuICAgIGNvbnN0IHsgbGF5b3V0LCBwYWdlLCBkZWZhdWx0UGFnZSB9ID0gbG9hZGVyVHJlZVsyXTtcbiAgICBjb25zdCBpc0xheW91dCA9IHR5cGVvZiBsYXlvdXQgIT09ICd1bmRlZmluZWQnO1xuICAgIGNvbnN0IGlzUGFnZSA9IHR5cGVvZiBwYWdlICE9PSAndW5kZWZpbmVkJztcbiAgICBjb25zdCBpc0RlZmF1bHRQYWdlID0gdHlwZW9mIGRlZmF1bHRQYWdlICE9PSAndW5kZWZpbmVkJyAmJiBsb2FkZXJUcmVlWzBdID09PSBfc2VnbWVudC5ERUZBVUxUX1NFR01FTlRfS0VZO1xuICAgIGxldCBtb2QgPSB1bmRlZmluZWQ7XG4gICAgbGV0IG1vZFR5cGUgPSB1bmRlZmluZWQ7XG4gICAgbGV0IGZpbGVQYXRoID0gdW5kZWZpbmVkO1xuICAgIGlmIChpc0xheW91dCkge1xuICAgICAgICBtb2QgPSBhd2FpdCBsYXlvdXRbMF0oKTtcbiAgICAgICAgbW9kVHlwZSA9ICdsYXlvdXQnO1xuICAgICAgICBmaWxlUGF0aCA9IGxheW91dFsxXTtcbiAgICB9IGVsc2UgaWYgKGlzUGFnZSkge1xuICAgICAgICBtb2QgPSBhd2FpdCBwYWdlWzBdKCk7XG4gICAgICAgIG1vZFR5cGUgPSAncGFnZSc7XG4gICAgICAgIGZpbGVQYXRoID0gcGFnZVsxXTtcbiAgICB9IGVsc2UgaWYgKGlzRGVmYXVsdFBhZ2UpIHtcbiAgICAgICAgbW9kID0gYXdhaXQgZGVmYXVsdFBhZ2VbMF0oKTtcbiAgICAgICAgbW9kVHlwZSA9ICdwYWdlJztcbiAgICAgICAgZmlsZVBhdGggPSBkZWZhdWx0UGFnZVsxXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbW9kLFxuICAgICAgICBtb2RUeXBlLFxuICAgICAgICBmaWxlUGF0aFxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiBnZXRDb21wb25lbnRUeXBlTW9kdWxlKGxvYWRlclRyZWUsIG1vZHVsZVR5cGUpIHtcbiAgICBjb25zdCB7IFttb2R1bGVUeXBlXTogbW9kdWxlMSB9ID0gbG9hZGVyVHJlZVsyXTtcbiAgICBpZiAodHlwZW9mIG1vZHVsZTEgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBtb2R1bGUxWzBdKCk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1kaXItbW9kdWxlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/cache-control.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/server/lib/cache-control.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCacheControlHeader\", ({\n enumerable: true,\n get: function() {\n return getCacheControlHeader;\n }\n}));\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction getCacheControlHeader({ revalidate, expire }) {\n const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - revalidate}` : '';\n if (revalidate === 0) {\n return 'private, no-cache, no-store, max-age=0, must-revalidate';\n } else if (typeof revalidate === 'number') {\n return `s-maxage=${revalidate}${swrHeader}`;\n }\n return `s-maxage=${_constants.CACHE_ONE_YEAR}${swrHeader}`;\n}\n\n//# sourceMappingURL=cache-control.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2FjaGUtY29udHJvbC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlEQUF3RDtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxpQ0FBaUMsb0JBQW9CO0FBQ3JELGtJQUFrSSxvQkFBb0I7QUFDdEo7QUFDQTtBQUNBLE1BQU07QUFDTiwyQkFBMkIsV0FBVyxFQUFFLFVBQVU7QUFDbEQ7QUFDQSx1QkFBdUIsMEJBQTBCLEVBQUUsVUFBVTtBQUM3RDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2FjaGUtY29udHJvbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldENhY2hlQ29udHJvbEhlYWRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q2FjaGVDb250cm9sSGVhZGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gZ2V0Q2FjaGVDb250cm9sSGVhZGVyKHsgcmV2YWxpZGF0ZSwgZXhwaXJlIH0pIHtcbiAgICBjb25zdCBzd3JIZWFkZXIgPSB0eXBlb2YgcmV2YWxpZGF0ZSA9PT0gJ251bWJlcicgJiYgZXhwaXJlICE9PSB1bmRlZmluZWQgJiYgcmV2YWxpZGF0ZSA8IGV4cGlyZSA/IGAsIHN0YWxlLXdoaWxlLXJldmFsaWRhdGU9JHtleHBpcmUgLSByZXZhbGlkYXRlfWAgOiAnJztcbiAgICBpZiAocmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJ3ByaXZhdGUsIG5vLWNhY2hlLCBuby1zdG9yZSwgbWF4LWFnZT0wLCBtdXN0LXJldmFsaWRhdGUnO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldmFsaWRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBgcy1tYXhhZ2U9JHtyZXZhbGlkYXRlfSR7c3dySGVhZGVyfWA7XG4gICAgfVxuICAgIHJldHVybiBgcy1tYXhhZ2U9JHtfY29uc3RhbnRzLkNBQ0hFX09ORV9ZRUFSfSR7c3dySGVhZGVyfWA7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhY2hlLWNvbnRyb2wuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/cache-control.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/clone-response.js": /*!*************************************************************!*\ !*** ./node_modules/next/dist/server/lib/clone-response.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"cloneResponse\", ({\n enumerable: true,\n get: function() {\n return cloneResponse;\n }\n}));\nconst noop = ()=>{};\nlet registry;\nif (globalThis.FinalizationRegistry) {\n registry = new FinalizationRegistry((weakRef)=>{\n const stream = weakRef.deref();\n if (stream && !stream.locked) {\n stream.cancel('Response object has been garbage collected').then(noop);\n }\n });\n}\nfunction cloneResponse(original) {\n // If the response has no body, then we can just return the original response\n // twice because it's immutable.\n if (!original.body) {\n return [\n original,\n original\n ];\n }\n const [body1, body2] = original.body.tee();\n const cloned1 = new Response(body1, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned1, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false\n });\n // The Fetch Standard allows users to skip consuming the response body by\n // relying on garbage collection to release connection resources.\n // https://github.com/nodejs/undici?tab=readme-ov-file#garbage-collection\n //\n // To cancel the stream you then need to cancel both resulting branches.\n // Teeing a stream will generally lock it for the duration, preventing other\n // readers from locking it.\n // https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/tee\n // cloned2 is stored in a react cache and cloned for subsequent requests.\n // It is the original request, and is is garbage collected by a\n // FinalizationRegistry in Undici, but since we're tee-ing the stream\n // ourselves, we need to cancel clone1's stream (the response returned from\n // our dedupe fetch) when clone1 is reclaimed, otherwise we leak memory.\n if (registry && cloned1.body) {\n registry.register(cloned1, new WeakRef(cloned1.body));\n }\n const cloned2 = new Response(body2, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned2, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false\n });\n return [\n cloned1,\n cloned2\n ];\n}\n\n//# sourceMappingURL=clone-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2xvbmUtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixpREFBZ0Q7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2xvbmUtcmVzcG9uc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjbG9uZVJlc3BvbnNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjbG9uZVJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3Qgbm9vcCA9ICgpPT57fTtcbmxldCByZWdpc3RyeTtcbmlmIChnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5KSB7XG4gICAgcmVnaXN0cnkgPSBuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoKHdlYWtSZWYpPT57XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IHdlYWtSZWYuZGVyZWYoKTtcbiAgICAgICAgaWYgKHN0cmVhbSAmJiAhc3RyZWFtLmxvY2tlZCkge1xuICAgICAgICAgICAgc3RyZWFtLmNhbmNlbCgnUmVzcG9uc2Ugb2JqZWN0IGhhcyBiZWVuIGdhcmJhZ2UgY29sbGVjdGVkJykudGhlbihub29wKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY2xvbmVSZXNwb25zZShvcmlnaW5hbCkge1xuICAgIC8vIElmIHRoZSByZXNwb25zZSBoYXMgbm8gYm9keSwgdGhlbiB3ZSBjYW4ganVzdCByZXR1cm4gdGhlIG9yaWdpbmFsIHJlc3BvbnNlXG4gICAgLy8gdHdpY2UgYmVjYXVzZSBpdCdzIGltbXV0YWJsZS5cbiAgICBpZiAoIW9yaWdpbmFsLmJvZHkpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG9yaWdpbmFsLFxuICAgICAgICAgICAgb3JpZ2luYWxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgY29uc3QgW2JvZHkxLCBib2R5Ml0gPSBvcmlnaW5hbC5ib2R5LnRlZSgpO1xuICAgIGNvbnN0IGNsb25lZDEgPSBuZXcgUmVzcG9uc2UoYm9keTEsIHtcbiAgICAgICAgc3RhdHVzOiBvcmlnaW5hbC5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IG9yaWdpbmFsLnN0YXR1c1RleHQsXG4gICAgICAgIGhlYWRlcnM6IG9yaWdpbmFsLmhlYWRlcnNcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2xvbmVkMSwgJ3VybCcsIHtcbiAgICAgICAgdmFsdWU6IG9yaWdpbmFsLnVybCxcbiAgICAgICAgLy8gSG93IHRoZSBvcmlnaW5hbCByZXNwb25zZS51cmwgYmVoYXZlc1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgIH0pO1xuICAgIC8vIFRoZSBGZXRjaCBTdGFuZGFyZCBhbGxvd3MgdXNlcnMgdG8gc2tpcCBjb25zdW1pbmcgdGhlIHJlc3BvbnNlIGJvZHkgYnlcbiAgICAvLyByZWx5aW5nIG9uIGdhcmJhZ2UgY29sbGVjdGlvbiB0byByZWxlYXNlIGNvbm5lY3Rpb24gcmVzb3VyY2VzLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpP3RhYj1yZWFkbWUtb3YtZmlsZSNnYXJiYWdlLWNvbGxlY3Rpb25cbiAgICAvL1xuICAgIC8vIFRvIGNhbmNlbCB0aGUgc3RyZWFtIHlvdSB0aGVuIG5lZWQgdG8gY2FuY2VsIGJvdGggcmVzdWx0aW5nIGJyYW5jaGVzLlxuICAgIC8vIFRlZWluZyBhIHN0cmVhbSB3aWxsIGdlbmVyYWxseSBsb2NrIGl0IGZvciB0aGUgZHVyYXRpb24sIHByZXZlbnRpbmcgb3RoZXJcbiAgICAvLyByZWFkZXJzIGZyb20gbG9ja2luZyBpdC5cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUmVhZGFibGVTdHJlYW0vdGVlXG4gICAgLy8gY2xvbmVkMiBpcyBzdG9yZWQgaW4gYSByZWFjdCBjYWNoZSBhbmQgY2xvbmVkIGZvciBzdWJzZXF1ZW50IHJlcXVlc3RzLlxuICAgIC8vIEl0IGlzIHRoZSBvcmlnaW5hbCByZXF1ZXN0LCBhbmQgaXMgaXMgZ2FyYmFnZSBjb2xsZWN0ZWQgYnkgYVxuICAgIC8vIEZpbmFsaXphdGlvblJlZ2lzdHJ5IGluIFVuZGljaSwgYnV0IHNpbmNlIHdlJ3JlIHRlZS1pbmcgdGhlIHN0cmVhbVxuICAgIC8vIG91cnNlbHZlcywgd2UgbmVlZCB0byBjYW5jZWwgY2xvbmUxJ3Mgc3RyZWFtICh0aGUgcmVzcG9uc2UgcmV0dXJuZWQgZnJvbVxuICAgIC8vIG91ciBkZWR1cGUgZmV0Y2gpIHdoZW4gY2xvbmUxIGlzIHJlY2xhaW1lZCwgb3RoZXJ3aXNlIHdlIGxlYWsgbWVtb3J5LlxuICAgIGlmIChyZWdpc3RyeSAmJiBjbG9uZWQxLmJvZHkpIHtcbiAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoY2xvbmVkMSwgbmV3IFdlYWtSZWYoY2xvbmVkMS5ib2R5KSk7XG4gICAgfVxuICAgIGNvbnN0IGNsb25lZDIgPSBuZXcgUmVzcG9uc2UoYm9keTIsIHtcbiAgICAgICAgc3RhdHVzOiBvcmlnaW5hbC5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IG9yaWdpbmFsLnN0YXR1c1RleHQsXG4gICAgICAgIGhlYWRlcnM6IG9yaWdpbmFsLmhlYWRlcnNcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2xvbmVkMiwgJ3VybCcsIHtcbiAgICAgICAgdmFsdWU6IG9yaWdpbmFsLnVybCxcbiAgICAgICAgLy8gSG93IHRoZSBvcmlnaW5hbCByZXNwb25zZS51cmwgYmVoYXZlc1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgIH0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIGNsb25lZDEsXG4gICAgICAgIGNsb25lZDJcbiAgICBdO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jbG9uZS1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/clone-response.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/decode-query-path-parameter.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/server/lib/decode-query-path-parameter.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Decodes a query path parameter.\n *\n * @param value - The value to decode.\n * @returns The decoded value.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"decodeQueryPathParameter\", ({\n enumerable: true,\n get: function() {\n return decodeQueryPathParameter;\n }\n}));\nfunction decodeQueryPathParameter(value) {\n // When deployed to Vercel, the value may be encoded, so this attempts to\n // decode it and returns the original value if it fails.\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\n\n//# sourceMappingURL=decode-query-path-parameter.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZGVjb2RlLXF1ZXJ5LXBhdGgtcGFyYW1ldGVyLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw0REFBMkQ7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZGVjb2RlLXF1ZXJ5LXBhdGgtcGFyYW1ldGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVjb2RlcyBhIHF1ZXJ5IHBhdGggcGFyYW1ldGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBkZWNvZGUuXG4gKiBAcmV0dXJucyBUaGUgZGVjb2RlZCB2YWx1ZS5cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlY29kZVF1ZXJ5UGF0aFBhcmFtZXRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGVjb2RlUXVlcnlQYXRoUGFyYW1ldGVyO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZGVjb2RlUXVlcnlQYXRoUGFyYW1ldGVyKHZhbHVlKSB7XG4gICAgLy8gV2hlbiBkZXBsb3llZCB0byBWZXJjZWwsIHRoZSB2YWx1ZSBtYXkgYmUgZW5jb2RlZCwgc28gdGhpcyBhdHRlbXB0cyB0b1xuICAgIC8vIGRlY29kZSBpdCBhbmQgcmV0dXJucyB0aGUgb3JpZ2luYWwgdmFsdWUgaWYgaXQgZmFpbHMuXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgfSBjYXRjaCAge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWNvZGUtcXVlcnktcGF0aC1wYXJhbWV0ZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/decode-query-path-parameter.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/server/lib/dedupe-fetch.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/**\n * Based on https://github.com/facebook/react/blob/d4e78c42a94be027b4dc7ed2659a5fddfbf9bd4e/packages/react/src/ReactFetch.js\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupeFetch\", ({\n enumerable: true,\n get: function() {\n return createDedupeFetch;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _cloneresponse = __webpack_require__(/*! ./clone-response */ \"(rsc)/./node_modules/next/dist/server/lib/clone-response.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst simpleCacheKey = '[\"GET\",[],null,\"follow\",null,null,null,null]' // generateCacheKey(new Request('https://blank'));\n;\nfunction generateCacheKey(request) {\n // We pick the fields that goes into the key used to dedupe requests.\n // We don't include the `cache` field, because we end up using whatever\n // caching resulted from the first request.\n // Notably we currently don't consider non-standard (or future) options.\n // This might not be safe. TODO: warn for non-standard extensions differing.\n // IF YOU CHANGE THIS UPDATE THE simpleCacheKey ABOVE.\n return JSON.stringify([\n request.method,\n Array.from(request.headers.entries()),\n request.mode,\n request.redirect,\n request.credentials,\n request.referrer,\n request.referrerPolicy,\n request.integrity\n ]);\n}\nfunction createDedupeFetch(originalFetch) {\n const getCacheEntries = _react.cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- url is the cache key\n (url)=>[]);\n return function dedupeFetch(resource, options) {\n if (options && options.signal) {\n // If we're passed a signal, then we assume that\n // someone else controls the lifetime of this object and opts out of\n // caching. It's effectively the opt-out mechanism.\n // Ideally we should be able to check this on the Request but\n // it always gets initialized with its own signal so we don't\n // know if it's supposed to override - unless we also override the\n // Request constructor.\n return originalFetch(resource, options);\n }\n // Normalize the Request\n let url;\n let cacheKey;\n if (typeof resource === 'string' && !options) {\n // Fast path.\n cacheKey = simpleCacheKey;\n url = resource;\n } else {\n // Normalize the request.\n // if resource is not a string or a URL (its an instance of Request)\n // then do not instantiate a new Request but instead\n // reuse the request as to not disturb the body in the event it's a ReadableStream.\n const request = typeof resource === 'string' || resource instanceof URL ? new Request(resource, options) : resource;\n if (request.method !== 'GET' && request.method !== 'HEAD' || request.keepalive) {\n // We currently don't dedupe requests that might have side-effects. Those\n // have to be explicitly cached. We assume that the request doesn't have a\n // body if it's GET or HEAD.\n // keepalive gets treated the same as if you passed a custom cache signal.\n return originalFetch(resource, options);\n }\n cacheKey = generateCacheKey(request);\n url = request.url;\n }\n const cacheEntries = getCacheEntries(url);\n for(let i = 0, j = cacheEntries.length; i < j; i += 1){\n const [key, promise] = cacheEntries[i];\n if (key === cacheKey) {\n return promise.then(()=>{\n const response = cacheEntries[i][2];\n if (!response) throw Object.defineProperty(new _invarianterror.InvariantError('No cached response'), \"__NEXT_ERROR_CODE\", {\n value: \"E579\",\n enumerable: false,\n configurable: true\n });\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response);\n cacheEntries[i][2] = cloned2;\n return cloned1;\n });\n }\n }\n // We pass the original arguments here in case normalizing the Request\n // doesn't include all the options in this environment.\n const promise = originalFetch(resource, options);\n const entry = [\n cacheKey,\n promise,\n null\n ];\n cacheEntries.push(entry);\n return promise.then((response)=>{\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response);\n entry[2] = cloned2;\n return cloned1;\n });\n };\n}\n\n//# sourceMappingURL=dedupe-fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZGVkdXBlLWZldGNoLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixxREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBdUQsbUJBQU8sQ0FBQyxpR0FBTztBQUN0RSx1QkFBdUIsbUJBQU8sQ0FBQyxxRkFBa0I7QUFDakQsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxPQUFPO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZGVkdXBlLWZldGNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvZDRlNzhjNDJhOTRiZTAyN2I0ZGM3ZWQyNjU5YTVmZGRmYmY5YmQ0ZS9wYWNrYWdlcy9yZWFjdC9zcmMvUmVhY3RGZXRjaC5qc1xuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlRGVkdXBlRmV0Y2hcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZHVwZUZldGNoO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfY2xvbmVyZXNwb25zZSA9IHJlcXVpcmUoXCIuL2Nsb25lLXJlc3BvbnNlXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5jb25zdCBzaW1wbGVDYWNoZUtleSA9ICdbXCJHRVRcIixbXSxudWxsLFwiZm9sbG93XCIsbnVsbCxudWxsLG51bGwsbnVsbF0nIC8vIGdlbmVyYXRlQ2FjaGVLZXkobmV3IFJlcXVlc3QoJ2h0dHBzOi8vYmxhbmsnKSk7XG47XG5mdW5jdGlvbiBnZW5lcmF0ZUNhY2hlS2V5KHJlcXVlc3QpIHtcbiAgICAvLyBXZSBwaWNrIHRoZSBmaWVsZHMgdGhhdCBnb2VzIGludG8gdGhlIGtleSB1c2VkIHRvIGRlZHVwZSByZXF1ZXN0cy5cbiAgICAvLyBXZSBkb24ndCBpbmNsdWRlIHRoZSBgY2FjaGVgIGZpZWxkLCBiZWNhdXNlIHdlIGVuZCB1cCB1c2luZyB3aGF0ZXZlclxuICAgIC8vIGNhY2hpbmcgcmVzdWx0ZWQgZnJvbSB0aGUgZmlyc3QgcmVxdWVzdC5cbiAgICAvLyBOb3RhYmx5IHdlIGN1cnJlbnRseSBkb24ndCBjb25zaWRlciBub24tc3RhbmRhcmQgKG9yIGZ1dHVyZSkgb3B0aW9ucy5cbiAgICAvLyBUaGlzIG1pZ2h0IG5vdCBiZSBzYWZlLiBUT0RPOiB3YXJuIGZvciBub24tc3RhbmRhcmQgZXh0ZW5zaW9ucyBkaWZmZXJpbmcuXG4gICAgLy8gSUYgWU9VIENIQU5HRSBUSElTIFVQREFURSBUSEUgc2ltcGxlQ2FjaGVLZXkgQUJPVkUuXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgcmVxdWVzdC5tZXRob2QsXG4gICAgICAgIEFycmF5LmZyb20ocmVxdWVzdC5oZWFkZXJzLmVudHJpZXMoKSksXG4gICAgICAgIHJlcXVlc3QubW9kZSxcbiAgICAgICAgcmVxdWVzdC5yZWRpcmVjdCxcbiAgICAgICAgcmVxdWVzdC5jcmVkZW50aWFscyxcbiAgICAgICAgcmVxdWVzdC5yZWZlcnJlcixcbiAgICAgICAgcmVxdWVzdC5yZWZlcnJlclBvbGljeSxcbiAgICAgICAgcmVxdWVzdC5pbnRlZ3JpdHlcbiAgICBdKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZHVwZUZldGNoKG9yaWdpbmFsRmV0Y2gpIHtcbiAgICBjb25zdCBnZXRDYWNoZUVudHJpZXMgPSBfcmVhY3QuY2FjaGUoLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSB1cmwgaXMgdGhlIGNhY2hlIGtleVxuICAgICh1cmwpPT5bXSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGRlZHVwZUZldGNoKHJlc291cmNlLCBvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc2lnbmFsKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBwYXNzZWQgYSBzaWduYWwsIHRoZW4gd2UgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgIC8vIHNvbWVvbmUgZWxzZSBjb250cm9scyB0aGUgbGlmZXRpbWUgb2YgdGhpcyBvYmplY3QgYW5kIG9wdHMgb3V0IG9mXG4gICAgICAgICAgICAvLyBjYWNoaW5nLiBJdCdzIGVmZmVjdGl2ZWx5IHRoZSBvcHQtb3V0IG1lY2hhbmlzbS5cbiAgICAgICAgICAgIC8vIElkZWFsbHkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gY2hlY2sgdGhpcyBvbiB0aGUgUmVxdWVzdCBidXRcbiAgICAgICAgICAgIC8vIGl0IGFsd2F5cyBnZXRzIGluaXRpYWxpemVkIHdpdGggaXRzIG93biBzaWduYWwgc28gd2UgZG9uJ3RcbiAgICAgICAgICAgIC8vIGtub3cgaWYgaXQncyBzdXBwb3NlZCB0byBvdmVycmlkZSAtIHVubGVzcyB3ZSBhbHNvIG92ZXJyaWRlIHRoZVxuICAgICAgICAgICAgLy8gUmVxdWVzdCBjb25zdHJ1Y3Rvci5cbiAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEZldGNoKHJlc291cmNlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBOb3JtYWxpemUgdGhlIFJlcXVlc3RcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgbGV0IGNhY2hlS2V5O1xuICAgICAgICBpZiAodHlwZW9mIHJlc291cmNlID09PSAnc3RyaW5nJyAmJiAhb3B0aW9ucykge1xuICAgICAgICAgICAgLy8gRmFzdCBwYXRoLlxuICAgICAgICAgICAgY2FjaGVLZXkgPSBzaW1wbGVDYWNoZUtleTtcbiAgICAgICAgICAgIHVybCA9IHJlc291cmNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTm9ybWFsaXplIHRoZSByZXF1ZXN0LlxuICAgICAgICAgICAgLy8gaWYgcmVzb3VyY2UgaXMgbm90IGEgc3RyaW5nIG9yIGEgVVJMIChpdHMgYW4gaW5zdGFuY2Ugb2YgUmVxdWVzdClcbiAgICAgICAgICAgIC8vIHRoZW4gZG8gbm90IGluc3RhbnRpYXRlIGEgbmV3IFJlcXVlc3QgYnV0IGluc3RlYWRcbiAgICAgICAgICAgIC8vIHJldXNlIHRoZSByZXF1ZXN0IGFzIHRvIG5vdCBkaXN0dXJiIHRoZSBib2R5IGluIHRoZSBldmVudCBpdCdzIGEgUmVhZGFibGVTdHJlYW0uXG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gdHlwZW9mIHJlc291cmNlID09PSAnc3RyaW5nJyB8fCByZXNvdXJjZSBpbnN0YW5jZW9mIFVSTCA/IG5ldyBSZXF1ZXN0KHJlc291cmNlLCBvcHRpb25zKSA6IHJlc291cmNlO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnIHx8IHJlcXVlc3Qua2VlcGFsaXZlKSB7XG4gICAgICAgICAgICAgICAgLy8gV2UgY3VycmVudGx5IGRvbid0IGRlZHVwZSByZXF1ZXN0cyB0aGF0IG1pZ2h0IGhhdmUgc2lkZS1lZmZlY3RzLiBUaG9zZVxuICAgICAgICAgICAgICAgIC8vIGhhdmUgdG8gYmUgZXhwbGljaXRseSBjYWNoZWQuIFdlIGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0IGRvZXNuJ3QgaGF2ZSBhXG4gICAgICAgICAgICAgICAgLy8gYm9keSBpZiBpdCdzIEdFVCBvciBIRUFELlxuICAgICAgICAgICAgICAgIC8vIGtlZXBhbGl2ZSBnZXRzIHRyZWF0ZWQgdGhlIHNhbWUgYXMgaWYgeW91IHBhc3NlZCBhIGN1c3RvbSBjYWNoZSBzaWduYWwuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRmV0Y2gocmVzb3VyY2UsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FjaGVLZXkgPSBnZW5lcmF0ZUNhY2hlS2V5KHJlcXVlc3QpO1xuICAgICAgICAgICAgdXJsID0gcmVxdWVzdC51cmw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVFbnRyaWVzID0gZ2V0Q2FjaGVFbnRyaWVzKHVybCk7XG4gICAgICAgIGZvcihsZXQgaSA9IDAsIGogPSBjYWNoZUVudHJpZXMubGVuZ3RoOyBpIDwgajsgaSArPSAxKXtcbiAgICAgICAgICAgIGNvbnN0IFtrZXksIHByb21pc2VdID0gY2FjaGVFbnRyaWVzW2ldO1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gY2FjaGVLZXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gY2FjaGVFbnRyaWVzW2ldWzJdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlKSB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignTm8gY2FjaGVkIHJlc3BvbnNlJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTU3OVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlJ3JlIGNsb25pbmcgdGhlIHJlc3BvbnNlIHVzaW5nIHRoaXMgdXRpbGl0eSBiZWNhdXNlIHRoZXJlIGV4aXN0c1xuICAgICAgICAgICAgICAgICAgICAvLyBhIGJ1ZyBpbiB0aGUgdW5kaWNpIGxpYnJhcnkgYXJvdW5kIHJlc3BvbnNlIGNsb25pbmcuIFNlZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9sbG93aW5nIHB1bGwgcmVxdWVzdCBmb3IgbW9yZSBkZXRhaWxzOlxuICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC83MzI3NFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBbY2xvbmVkMSwgY2xvbmVkMl0gPSAoMCwgX2Nsb25lcmVzcG9uc2UuY2xvbmVSZXNwb25zZSkocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZUVudHJpZXNbaV1bMl0gPSBjbG9uZWQyO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xvbmVkMTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBXZSBwYXNzIHRoZSBvcmlnaW5hbCBhcmd1bWVudHMgaGVyZSBpbiBjYXNlIG5vcm1hbGl6aW5nIHRoZSBSZXF1ZXN0XG4gICAgICAgIC8vIGRvZXNuJ3QgaW5jbHVkZSBhbGwgdGhlIG9wdGlvbnMgaW4gdGhpcyBlbnZpcm9ubWVudC5cbiAgICAgICAgY29uc3QgcHJvbWlzZSA9IG9yaWdpbmFsRmV0Y2gocmVzb3VyY2UsIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBlbnRyeSA9IFtcbiAgICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgICAgcHJvbWlzZSxcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgXTtcbiAgICAgICAgY2FjaGVFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKChyZXNwb25zZSk9PntcbiAgICAgICAgICAgIC8vIFdlJ3JlIGNsb25pbmcgdGhlIHJlc3BvbnNlIHVzaW5nIHRoaXMgdXRpbGl0eSBiZWNhdXNlIHRoZXJlIGV4aXN0c1xuICAgICAgICAgICAgLy8gYSBidWcgaW4gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZCByZXNwb25zZSBjbG9uaW5nLiBTZWUgdGhlXG4gICAgICAgICAgICAvLyBmb2xsb3dpbmcgcHVsbCByZXF1ZXN0IGZvciBtb3JlIGRldGFpbHM6XG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC83MzI3NFxuICAgICAgICAgICAgY29uc3QgW2Nsb25lZDEsIGNsb25lZDJdID0gKDAsIF9jbG9uZXJlc3BvbnNlLmNsb25lUmVzcG9uc2UpKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIGVudHJ5WzJdID0gY2xvbmVkMjtcbiAgICAgICAgICAgIHJldHVybiBjbG9uZWQxO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWR1cGUtZmV0Y2guanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/etag.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/server/lib/etag.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fnv1a52: function() {\n return fnv1a52;\n },\n generateETag: function() {\n return generateETag;\n }\n});\nconst fnv1a52 = (str)=>{\n const len = str.length;\n let i = 0, t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n while(i < len){\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = t3 + (t2 >>> 16) & 65535;\n v2 = t2 & 65535;\n }\n return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4);\n};\nconst generateETag = (payload, weak = false)=>{\n const prefix = weak ? 'W/\"' : '\"';\n return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"';\n};\n\n//# sourceMappingURL=etag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXRhZy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXRhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZOVi0xYSBIYXNoIGltcGxlbWVudGF0aW9uXG4gKiBAYXV0aG9yIFRyYXZpcyBXZWJiICh0andlYmIpIDxtZUB0cmF2aXN3ZWJiLmNvbT5cbiAqXG4gKiBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdGp3ZWJiL2Zudi1wbHVzL2Jsb2IvbWFzdGVyL2luZGV4LmpzXG4gKlxuICogU2ltcGxpZmllZCwgb3B0aW1pemVkIGFuZCBhZGQgbW9kaWZpZWQgZm9yIDUyIGJpdCwgd2hpY2ggcHJvdmlkZXMgYSBsYXJnZXIgaGFzaCBzcGFjZVxuICogYW5kIHN0aWxsIG1ha2luZyB1c2Ugb2YgSmF2YXNjcmlwdCdzIDUzLWJpdCBpbnRlZ2VyIHNwYWNlLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZm52MWE1MjogbnVsbCxcbiAgICBnZW5lcmF0ZUVUYWc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZm52MWE1MjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmbnYxYTUyO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVFVGFnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlRVRhZztcbiAgICB9XG59KTtcbmNvbnN0IGZudjFhNTIgPSAoc3RyKT0+e1xuICAgIGNvbnN0IGxlbiA9IHN0ci5sZW5ndGg7XG4gICAgbGV0IGkgPSAwLCB0MCA9IDAsIHYwID0gMHgyMzI1LCB0MSA9IDAsIHYxID0gMHg4NDIyLCB0MiA9IDAsIHYyID0gMHg5Y2U0LCB0MyA9IDAsIHYzID0gMHhjYmYyO1xuICAgIHdoaWxlKGkgPCBsZW4pe1xuICAgICAgICB2MCBePSBzdHIuY2hhckNvZGVBdChpKyspO1xuICAgICAgICB0MCA9IHYwICogNDM1O1xuICAgICAgICB0MSA9IHYxICogNDM1O1xuICAgICAgICB0MiA9IHYyICogNDM1O1xuICAgICAgICB0MyA9IHYzICogNDM1O1xuICAgICAgICB0MiArPSB2MCA8PCA4O1xuICAgICAgICB0MyArPSB2MSA8PCA4O1xuICAgICAgICB0MSArPSB0MCA+Pj4gMTY7XG4gICAgICAgIHYwID0gdDAgJiA2NTUzNTtcbiAgICAgICAgdDIgKz0gdDEgPj4+IDE2O1xuICAgICAgICB2MSA9IHQxICYgNjU1MzU7XG4gICAgICAgIHYzID0gdDMgKyAodDIgPj4+IDE2KSAmIDY1NTM1O1xuICAgICAgICB2MiA9IHQyICYgNjU1MzU7XG4gICAgfVxuICAgIHJldHVybiAodjMgJiAxNSkgKiAyODE0NzQ5NzY3MTA2NTYgKyB2MiAqIDQyOTQ5NjcyOTYgKyB2MSAqIDY1NTM2ICsgKHYwIF4gdjMgPj4gNCk7XG59O1xuY29uc3QgZ2VuZXJhdGVFVGFnID0gKHBheWxvYWQsIHdlYWsgPSBmYWxzZSk9PntcbiAgICBjb25zdCBwcmVmaXggPSB3ZWFrID8gJ1cvXCInIDogJ1wiJztcbiAgICByZXR1cm4gcHJlZml4ICsgZm52MWE1MihwYXlsb2FkKS50b1N0cmluZygzNikgKyBwYXlsb2FkLmxlbmd0aC50b1N0cmluZygzNikgKyAnXCInO1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXRhZy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/etag.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/experimental/ppr.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/lib/experimental/ppr.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * If set to `incremental`, only those leaf pages that export\n * `experimental_ppr = true` will have partial prerendering enabled. If any\n * page exports this value as `false` or does not export it at all will not\n * have partial prerendering enabled. If set to a boolean, the options for\n * `experimental_ppr` will be ignored.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n checkIsAppPPREnabled: function() {\n return checkIsAppPPREnabled;\n },\n checkIsRoutePPREnabled: function() {\n return checkIsRoutePPREnabled;\n }\n});\nfunction checkIsAppPPREnabled(config) {\n // If the config is undefined, partial prerendering is disabled.\n if (typeof config === 'undefined') return false;\n // If the config is a boolean, use it directly.\n if (typeof config === 'boolean') return config;\n // If the config is a string, it must be 'incremental' to enable partial\n // prerendering.\n if (config === 'incremental') return true;\n return false;\n}\nfunction checkIsRoutePPREnabled(config, appConfig) {\n // If the config is undefined, partial prerendering is disabled.\n if (typeof config === 'undefined') return false;\n // If the config is a boolean, use it directly.\n if (typeof config === 'boolean') return config;\n // If the config is a string, it must be 'incremental' to enable partial\n // prerendering.\n if (config === 'incremental' && appConfig.experimental_ppr === true) {\n return true;\n }\n return false;\n}\n\n//# sourceMappingURL=ppr.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXhwZXJpbWVudGFsL3Bwci5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2V4cGVyaW1lbnRhbC9wcHIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJZiBzZXQgdG8gYGluY3JlbWVudGFsYCwgb25seSB0aG9zZSBsZWFmIHBhZ2VzIHRoYXQgZXhwb3J0XG4gKiBgZXhwZXJpbWVudGFsX3BwciA9IHRydWVgIHdpbGwgaGF2ZSBwYXJ0aWFsIHByZXJlbmRlcmluZyBlbmFibGVkLiBJZiBhbnlcbiAqIHBhZ2UgZXhwb3J0cyB0aGlzIHZhbHVlIGFzIGBmYWxzZWAgb3IgZG9lcyBub3QgZXhwb3J0IGl0IGF0IGFsbCB3aWxsIG5vdFxuICogaGF2ZSBwYXJ0aWFsIHByZXJlbmRlcmluZyBlbmFibGVkLiBJZiBzZXQgdG8gYSBib29sZWFuLCB0aGUgb3B0aW9ucyBmb3JcbiAqIGBleHBlcmltZW50YWxfcHByYCB3aWxsIGJlIGlnbm9yZWQuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjaGVja0lzQXBwUFBSRW5hYmxlZDogbnVsbCxcbiAgICBjaGVja0lzUm91dGVQUFJFbmFibGVkOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNoZWNrSXNBcHBQUFJFbmFibGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNoZWNrSXNBcHBQUFJFbmFibGVkO1xuICAgIH0sXG4gICAgY2hlY2tJc1JvdXRlUFBSRW5hYmxlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjaGVja0lzUm91dGVQUFJFbmFibGVkO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gY2hlY2tJc0FwcFBQUkVuYWJsZWQoY29uZmlnKSB7XG4gICAgLy8gSWYgdGhlIGNvbmZpZyBpcyB1bmRlZmluZWQsIHBhcnRpYWwgcHJlcmVuZGVyaW5nIGlzIGRpc2FibGVkLlxuICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGZhbHNlO1xuICAgIC8vIElmIHRoZSBjb25maWcgaXMgYSBib29sZWFuLCB1c2UgaXQgZGlyZWN0bHkuXG4gICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdib29sZWFuJykgcmV0dXJuIGNvbmZpZztcbiAgICAvLyBJZiB0aGUgY29uZmlnIGlzIGEgc3RyaW5nLCBpdCBtdXN0IGJlICdpbmNyZW1lbnRhbCcgdG8gZW5hYmxlIHBhcnRpYWxcbiAgICAvLyBwcmVyZW5kZXJpbmcuXG4gICAgaWYgKGNvbmZpZyA9PT0gJ2luY3JlbWVudGFsJykgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gY2hlY2tJc1JvdXRlUFBSRW5hYmxlZChjb25maWcsIGFwcENvbmZpZykge1xuICAgIC8vIElmIHRoZSBjb25maWcgaXMgdW5kZWZpbmVkLCBwYXJ0aWFsIHByZXJlbmRlcmluZyBpcyBkaXNhYmxlZC5cbiAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBmYWxzZTtcbiAgICAvLyBJZiB0aGUgY29uZmlnIGlzIGEgYm9vbGVhbiwgdXNlIGl0IGRpcmVjdGx5LlxuICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnYm9vbGVhbicpIHJldHVybiBjb25maWc7XG4gICAgLy8gSWYgdGhlIGNvbmZpZyBpcyBhIHN0cmluZywgaXQgbXVzdCBiZSAnaW5jcmVtZW50YWwnIHRvIGVuYWJsZSBwYXJ0aWFsXG4gICAgLy8gcHJlcmVuZGVyaW5nLlxuICAgIGlmIChjb25maWcgPT09ICdpbmNyZW1lbnRhbCcgJiYgYXBwQ29uZmlnLmV4cGVyaW1lbnRhbF9wcHIgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHByLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/experimental/ppr.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/lru-cache.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/lib/lru-cache.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Node in the doubly-linked list used for LRU tracking.\n * Each node represents a cache entry with bidirectional pointers.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"LRUCache\", ({\n enumerable: true,\n get: function() {\n return LRUCache;\n }\n}));\nclass LRUNode {\n constructor(key, data, size){\n this.prev = null;\n this.next = null;\n this.key = key;\n this.data = data;\n this.size = size;\n }\n}\n/**\n * Sentinel node used for head/tail boundaries.\n * These nodes don't contain actual cache data but simplify list operations.\n */ class SentinelNode {\n constructor(){\n this.prev = null;\n this.next = null;\n }\n}\nclass LRUCache {\n constructor(maxSize, calculateSize){\n this.cache = new Map();\n this.totalSize = 0;\n this.maxSize = maxSize;\n this.calculateSize = calculateSize;\n // Create sentinel nodes to simplify doubly-linked list operations\n // HEAD <-> TAIL (empty list)\n this.head = new SentinelNode();\n this.tail = new SentinelNode();\n this.head.next = this.tail;\n this.tail.prev = this.head;\n }\n /**\n * Adds a node immediately after the head (marks as most recently used).\n * Used when inserting new items or when an item is accessed.\n * PRECONDITION: node must be disconnected (prev/next should be null)\n */ addToHead(node) {\n node.prev = this.head;\n node.next = this.head.next;\n // head.next is always non-null (points to tail or another node)\n this.head.next.prev = node;\n this.head.next = node;\n }\n /**\n * Removes a node from its current position in the doubly-linked list.\n * Updates the prev/next pointers of adjacent nodes to maintain list integrity.\n * PRECONDITION: node must be connected (prev/next are non-null)\n */ removeNode(node) {\n // Connected nodes always have non-null prev/next\n node.prev.next = node.next;\n node.next.prev = node.prev;\n }\n /**\n * Moves an existing node to the head position (marks as most recently used).\n * This is the core LRU operation - accessed items become most recent.\n */ moveToHead(node) {\n this.removeNode(node);\n this.addToHead(node);\n }\n /**\n * Removes and returns the least recently used node (the one before tail).\n * This is called during eviction when the cache exceeds capacity.\n * PRECONDITION: cache is not empty (ensured by caller)\n */ removeTail() {\n const lastNode = this.tail.prev;\n // tail.prev is always non-null and always LRUNode when cache is not empty\n this.removeNode(lastNode);\n return lastNode;\n }\n /**\n * Sets a key-value pair in the cache.\n * If the key exists, updates the value and moves to head.\n * If new, adds at head and evicts from tail if necessary.\n *\n * Time Complexity:\n * - O(1) for uniform item sizes\n * - O(k) where k is the number of items evicted (can be O(N) for variable sizes)\n */ set(key, value) {\n const size = (this.calculateSize == null ? void 0 : this.calculateSize.call(this, value)) ?? 1;\n if (size > this.maxSize) {\n console.warn('Single item size exceeds maxSize');\n return;\n }\n const existing = this.cache.get(key);\n if (existing) {\n // Update existing node: adjust size and move to head (most recent)\n existing.data = value;\n this.totalSize = this.totalSize - existing.size + size;\n existing.size = size;\n this.moveToHead(existing);\n } else {\n // Add new node at head (most recent position)\n const newNode = new LRUNode(key, value, size);\n this.cache.set(key, newNode);\n this.addToHead(newNode);\n this.totalSize += size;\n }\n // Evict least recently used items until under capacity\n while(this.totalSize > this.maxSize && this.cache.size > 0){\n const tail = this.removeTail();\n this.cache.delete(tail.key);\n this.totalSize -= tail.size;\n }\n }\n /**\n * Checks if a key exists in the cache.\n * This is a pure query operation - does NOT update LRU order.\n *\n * Time Complexity: O(1)\n */ has(key) {\n return this.cache.has(key);\n }\n /**\n * Retrieves a value by key and marks it as most recently used.\n * Moving to head maintains the LRU property for future evictions.\n *\n * Time Complexity: O(1)\n */ get(key) {\n const node = this.cache.get(key);\n if (!node) return undefined;\n // Mark as most recently used by moving to head\n this.moveToHead(node);\n return node.data;\n }\n /**\n * Returns an iterator over the cache entries. The order is outputted in the\n * order of most recently used to least recently used.\n */ *[Symbol.iterator]() {\n let current = this.head.next;\n while(current && current !== this.tail){\n // Between head and tail, current is always LRUNode\n const node = current;\n yield [\n node.key,\n node.data\n ];\n current = current.next;\n }\n }\n /**\n * Removes a specific key from the cache.\n * Updates both the hash map and doubly-linked list.\n *\n * Time Complexity: O(1)\n */ remove(key) {\n const node = this.cache.get(key);\n if (!node) return;\n this.removeNode(node);\n this.cache.delete(key);\n this.totalSize -= node.size;\n }\n /**\n * Returns the number of items in the cache.\n */ get size() {\n return this.cache.size;\n }\n /**\n * Returns the current total size of all cached items.\n * This uses the custom size calculation if provided.\n */ get currentSize() {\n return this.totalSize;\n }\n}\n\n//# sourceMappingURL=lru-cache.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvbHJ1LWNhY2hlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDRDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9scnUtY2FjaGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOb2RlIGluIHRoZSBkb3VibHktbGlua2VkIGxpc3QgdXNlZCBmb3IgTFJVIHRyYWNraW5nLlxuICogRWFjaCBub2RlIHJlcHJlc2VudHMgYSBjYWNoZSBlbnRyeSB3aXRoIGJpZGlyZWN0aW9uYWwgcG9pbnRlcnMuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJMUlVDYWNoZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTFJVQ2FjaGU7XG4gICAgfVxufSk7XG5jbGFzcyBMUlVOb2RlIHtcbiAgICBjb25zdHJ1Y3RvcihrZXksIGRhdGEsIHNpemUpe1xuICAgICAgICB0aGlzLnByZXYgPSBudWxsO1xuICAgICAgICB0aGlzLm5leHQgPSBudWxsO1xuICAgICAgICB0aGlzLmtleSA9IGtleTtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICAgICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICB9XG59XG4vKipcbiAqIFNlbnRpbmVsIG5vZGUgdXNlZCBmb3IgaGVhZC90YWlsIGJvdW5kYXJpZXMuXG4gKiBUaGVzZSBub2RlcyBkb24ndCBjb250YWluIGFjdHVhbCBjYWNoZSBkYXRhIGJ1dCBzaW1wbGlmeSBsaXN0IG9wZXJhdGlvbnMuXG4gKi8gY2xhc3MgU2VudGluZWxOb2RlIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICB0aGlzLnByZXYgPSBudWxsO1xuICAgICAgICB0aGlzLm5leHQgPSBudWxsO1xuICAgIH1cbn1cbmNsYXNzIExSVUNhY2hlIHtcbiAgICBjb25zdHJ1Y3RvcihtYXhTaXplLCBjYWxjdWxhdGVTaXplKXtcbiAgICAgICAgdGhpcy5jYWNoZSA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy50b3RhbFNpemUgPSAwO1xuICAgICAgICB0aGlzLm1heFNpemUgPSBtYXhTaXplO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVNpemUgPSBjYWxjdWxhdGVTaXplO1xuICAgICAgICAvLyBDcmVhdGUgc2VudGluZWwgbm9kZXMgdG8gc2ltcGxpZnkgZG91Ymx5LWxpbmtlZCBsaXN0IG9wZXJhdGlvbnNcbiAgICAgICAgLy8gSEVBRCA8LT4gVEFJTCAoZW1wdHkgbGlzdClcbiAgICAgICAgdGhpcy5oZWFkID0gbmV3IFNlbnRpbmVsTm9kZSgpO1xuICAgICAgICB0aGlzLnRhaWwgPSBuZXcgU2VudGluZWxOb2RlKCk7XG4gICAgICAgIHRoaXMuaGVhZC5uZXh0ID0gdGhpcy50YWlsO1xuICAgICAgICB0aGlzLnRhaWwucHJldiA9IHRoaXMuaGVhZDtcbiAgICB9XG4gICAgLyoqXG4gICAqIEFkZHMgYSBub2RlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBoZWFkIChtYXJrcyBhcyBtb3N0IHJlY2VudGx5IHVzZWQpLlxuICAgKiBVc2VkIHdoZW4gaW5zZXJ0aW5nIG5ldyBpdGVtcyBvciB3aGVuIGFuIGl0ZW0gaXMgYWNjZXNzZWQuXG4gICAqIFBSRUNPTkRJVElPTjogbm9kZSBtdXN0IGJlIGRpc2Nvbm5lY3RlZCAocHJldi9uZXh0IHNob3VsZCBiZSBudWxsKVxuICAgKi8gYWRkVG9IZWFkKG5vZGUpIHtcbiAgICAgICAgbm9kZS5wcmV2ID0gdGhpcy5oZWFkO1xuICAgICAgICBub2RlLm5leHQgPSB0aGlzLmhlYWQubmV4dDtcbiAgICAgICAgLy8gaGVhZC5uZXh0IGlzIGFsd2F5cyBub24tbnVsbCAocG9pbnRzIHRvIHRhaWwgb3IgYW5vdGhlciBub2RlKVxuICAgICAgICB0aGlzLmhlYWQubmV4dC5wcmV2ID0gbm9kZTtcbiAgICAgICAgdGhpcy5oZWFkLm5leHQgPSBub2RlO1xuICAgIH1cbiAgICAvKipcbiAgICogUmVtb3ZlcyBhIG5vZGUgZnJvbSBpdHMgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgZG91Ymx5LWxpbmtlZCBsaXN0LlxuICAgKiBVcGRhdGVzIHRoZSBwcmV2L25leHQgcG9pbnRlcnMgb2YgYWRqYWNlbnQgbm9kZXMgdG8gbWFpbnRhaW4gbGlzdCBpbnRlZ3JpdHkuXG4gICAqIFBSRUNPTkRJVElPTjogbm9kZSBtdXN0IGJlIGNvbm5lY3RlZCAocHJldi9uZXh0IGFyZSBub24tbnVsbClcbiAgICovIHJlbW92ZU5vZGUobm9kZSkge1xuICAgICAgICAvLyBDb25uZWN0ZWQgbm9kZXMgYWx3YXlzIGhhdmUgbm9uLW51bGwgcHJldi9uZXh0XG4gICAgICAgIG5vZGUucHJldi5uZXh0ID0gbm9kZS5uZXh0O1xuICAgICAgICBub2RlLm5leHQucHJldiA9IG5vZGUucHJldjtcbiAgICB9XG4gICAgLyoqXG4gICAqIE1vdmVzIGFuIGV4aXN0aW5nIG5vZGUgdG8gdGhlIGhlYWQgcG9zaXRpb24gKG1hcmtzIGFzIG1vc3QgcmVjZW50bHkgdXNlZCkuXG4gICAqIFRoaXMgaXMgdGhlIGNvcmUgTFJVIG9wZXJhdGlvbiAtIGFjY2Vzc2VkIGl0ZW1zIGJlY29tZSBtb3N0IHJlY2VudC5cbiAgICovIG1vdmVUb0hlYWQobm9kZSkge1xuICAgICAgICB0aGlzLnJlbW92ZU5vZGUobm9kZSk7XG4gICAgICAgIHRoaXMuYWRkVG9IZWFkKG5vZGUpO1xuICAgIH1cbiAgICAvKipcbiAgICogUmVtb3ZlcyBhbmQgcmV0dXJucyB0aGUgbGVhc3QgcmVjZW50bHkgdXNlZCBub2RlICh0aGUgb25lIGJlZm9yZSB0YWlsKS5cbiAgICogVGhpcyBpcyBjYWxsZWQgZHVyaW5nIGV2aWN0aW9uIHdoZW4gdGhlIGNhY2hlIGV4Y2VlZHMgY2FwYWNpdHkuXG4gICAqIFBSRUNPTkRJVElPTjogY2FjaGUgaXMgbm90IGVtcHR5IChlbnN1cmVkIGJ5IGNhbGxlcilcbiAgICovIHJlbW92ZVRhaWwoKSB7XG4gICAgICAgIGNvbnN0IGxhc3ROb2RlID0gdGhpcy50YWlsLnByZXY7XG4gICAgICAgIC8vIHRhaWwucHJldiBpcyBhbHdheXMgbm9uLW51bGwgYW5kIGFsd2F5cyBMUlVOb2RlIHdoZW4gY2FjaGUgaXMgbm90IGVtcHR5XG4gICAgICAgIHRoaXMucmVtb3ZlTm9kZShsYXN0Tm9kZSk7XG4gICAgICAgIHJldHVybiBsYXN0Tm9kZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFNldHMgYSBrZXktdmFsdWUgcGFpciBpbiB0aGUgY2FjaGUuXG4gICAqIElmIHRoZSBrZXkgZXhpc3RzLCB1cGRhdGVzIHRoZSB2YWx1ZSBhbmQgbW92ZXMgdG8gaGVhZC5cbiAgICogSWYgbmV3LCBhZGRzIGF0IGhlYWQgYW5kIGV2aWN0cyBmcm9tIHRhaWwgaWYgbmVjZXNzYXJ5LlxuICAgKlxuICAgKiBUaW1lIENvbXBsZXhpdHk6XG4gICAqIC0gTygxKSBmb3IgdW5pZm9ybSBpdGVtIHNpemVzXG4gICAqIC0gTyhrKSB3aGVyZSBrIGlzIHRoZSBudW1iZXIgb2YgaXRlbXMgZXZpY3RlZCAoY2FuIGJlIE8oTikgZm9yIHZhcmlhYmxlIHNpemVzKVxuICAgKi8gc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9ICh0aGlzLmNhbGN1bGF0ZVNpemUgPT0gbnVsbCA/IHZvaWQgMCA6IHRoaXMuY2FsY3VsYXRlU2l6ZS5jYWxsKHRoaXMsIHZhbHVlKSkgPz8gMTtcbiAgICAgICAgaWYgKHNpemUgPiB0aGlzLm1heFNpemUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignU2luZ2xlIGl0ZW0gc2l6ZSBleGNlZWRzIG1heFNpemUnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIG5vZGU6IGFkanVzdCBzaXplIGFuZCBtb3ZlIHRvIGhlYWQgKG1vc3QgcmVjZW50KVxuICAgICAgICAgICAgZXhpc3RpbmcuZGF0YSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy50b3RhbFNpemUgPSB0aGlzLnRvdGFsU2l6ZSAtIGV4aXN0aW5nLnNpemUgKyBzaXplO1xuICAgICAgICAgICAgZXhpc3Rpbmcuc2l6ZSA9IHNpemU7XG4gICAgICAgICAgICB0aGlzLm1vdmVUb0hlYWQoZXhpc3RpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQWRkIG5ldyBub2RlIGF0IGhlYWQgKG1vc3QgcmVjZW50IHBvc2l0aW9uKVxuICAgICAgICAgICAgY29uc3QgbmV3Tm9kZSA9IG5ldyBMUlVOb2RlKGtleSwgdmFsdWUsIHNpemUpO1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5LCBuZXdOb2RlKTtcbiAgICAgICAgICAgIHRoaXMuYWRkVG9IZWFkKG5ld05vZGUpO1xuICAgICAgICAgICAgdGhpcy50b3RhbFNpemUgKz0gc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFdmljdCBsZWFzdCByZWNlbnRseSB1c2VkIGl0ZW1zIHVudGlsIHVuZGVyIGNhcGFjaXR5XG4gICAgICAgIHdoaWxlKHRoaXMudG90YWxTaXplID4gdGhpcy5tYXhTaXplICYmIHRoaXMuY2FjaGUuc2l6ZSA+IDApe1xuICAgICAgICAgICAgY29uc3QgdGFpbCA9IHRoaXMucmVtb3ZlVGFpbCgpO1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5kZWxldGUodGFpbC5rZXkpO1xuICAgICAgICAgICAgdGhpcy50b3RhbFNpemUgLT0gdGFpbC5zaXplO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgKiBDaGVja3MgaWYgYSBrZXkgZXhpc3RzIGluIHRoZSBjYWNoZS5cbiAgICogVGhpcyBpcyBhIHB1cmUgcXVlcnkgb3BlcmF0aW9uIC0gZG9lcyBOT1QgdXBkYXRlIExSVSBvcmRlci5cbiAgICpcbiAgICogVGltZSBDb21wbGV4aXR5OiBPKDEpXG4gICAqLyBoYXMoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlLmhhcyhrZXkpO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0cmlldmVzIGEgdmFsdWUgYnkga2V5IGFuZCBtYXJrcyBpdCBhcyBtb3N0IHJlY2VudGx5IHVzZWQuXG4gICAqIE1vdmluZyB0byBoZWFkIG1haW50YWlucyB0aGUgTFJVIHByb3BlcnR5IGZvciBmdXR1cmUgZXZpY3Rpb25zLlxuICAgKlxuICAgKiBUaW1lIENvbXBsZXhpdHk6IE8oMSlcbiAgICovIGdldChrZXkpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIGlmICghbm9kZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gTWFyayBhcyBtb3N0IHJlY2VudGx5IHVzZWQgYnkgbW92aW5nIHRvIGhlYWRcbiAgICAgICAgdGhpcy5tb3ZlVG9IZWFkKG5vZGUpO1xuICAgICAgICByZXR1cm4gbm9kZS5kYXRhO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyIHRoZSBjYWNoZSBlbnRyaWVzLiBUaGUgb3JkZXIgaXMgb3V0cHV0dGVkIGluIHRoZVxuICAgKiBvcmRlciBvZiBtb3N0IHJlY2VudGx5IHVzZWQgdG8gbGVhc3QgcmVjZW50bHkgdXNlZC5cbiAgICovICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IGN1cnJlbnQgPSB0aGlzLmhlYWQubmV4dDtcbiAgICAgICAgd2hpbGUoY3VycmVudCAmJiBjdXJyZW50ICE9PSB0aGlzLnRhaWwpe1xuICAgICAgICAgICAgLy8gQmV0d2VlbiBoZWFkIGFuZCB0YWlsLCBjdXJyZW50IGlzIGFsd2F5cyBMUlVOb2RlXG4gICAgICAgICAgICBjb25zdCBub2RlID0gY3VycmVudDtcbiAgICAgICAgICAgIHlpZWxkIFtcbiAgICAgICAgICAgICAgICBub2RlLmtleSxcbiAgICAgICAgICAgICAgICBub2RlLmRhdGFcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgKiBSZW1vdmVzIGEgc3BlY2lmaWMga2V5IGZyb20gdGhlIGNhY2hlLlxuICAgKiBVcGRhdGVzIGJvdGggdGhlIGhhc2ggbWFwIGFuZCBkb3VibHktbGlua2VkIGxpc3QuXG4gICAqXG4gICAqIFRpbWUgQ29tcGxleGl0eTogTygxKVxuICAgKi8gcmVtb3ZlKGtleSkge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCFub2RlKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVtb3ZlTm9kZShub2RlKTtcbiAgICAgICAgdGhpcy5jYWNoZS5kZWxldGUoa2V5KTtcbiAgICAgICAgdGhpcy50b3RhbFNpemUgLT0gbm9kZS5zaXplO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBjYWNoZS5cbiAgICovIGdldCBzaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWNoZS5zaXplO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCB0b3RhbCBzaXplIG9mIGFsbCBjYWNoZWQgaXRlbXMuXG4gICAqIFRoaXMgdXNlcyB0aGUgY3VzdG9tIHNpemUgY2FsY3VsYXRpb24gaWYgcHJvdmlkZWQuXG4gICAqLyBnZXQgY3VycmVudFNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvdGFsU2l6ZTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxydS1jYWNoZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/lru-cache.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/server/lib/patch-fetch.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_PATCH_SYMBOL: function() {\n return NEXT_PATCH_SYMBOL;\n },\n createPatchedFetcher: function() {\n return createPatchedFetcher;\n },\n patchFetch: function() {\n return patchFetch;\n },\n validateRevalidate: function() {\n return validateRevalidate;\n },\n validateTags: function() {\n return validateTags;\n }\n});\nconst _constants = __webpack_require__(/*! ./trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _tracer = __webpack_require__(/*! ./trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants1 = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _dedupefetch = __webpack_require__(/*! ./dedupe-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _responsecache = __webpack_require__(/*! ../response-cache */ \"(rsc)/./node_modules/next/dist/server/response-cache/index.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _cloneresponse = __webpack_require__(/*! ./clone-response */ \"(rsc)/./node_modules/next/dist/server/lib/clone-response.js\");\nconst isEdgeRuntime = \"nodejs\" === 'edge';\nconst NEXT_PATCH_SYMBOL = Symbol.for('next-patch');\nfunction isFetchPatched() {\n return globalThis[NEXT_PATCH_SYMBOL] === true;\n}\nfunction validateRevalidate(revalidateVal, route) {\n try {\n let normalizedRevalidate = undefined;\n if (revalidateVal === false) {\n normalizedRevalidate = _constants1.INFINITE_CACHE;\n } else if (typeof revalidateVal === 'number' && !isNaN(revalidateVal) && revalidateVal > -1) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal !== 'undefined') {\n throw Object.defineProperty(new Error(`Invalid revalidate value \"${revalidateVal}\" on \"${route}\", must be a non-negative number or false`), \"__NEXT_ERROR_CODE\", {\n value: \"E179\",\n enumerable: false,\n configurable: true\n });\n }\n return normalizedRevalidate;\n } catch (err) {\n // handle client component error from attempting to check revalidate value\n if (err instanceof Error && err.message.includes('Invalid revalidate')) {\n throw err;\n }\n return undefined;\n }\n}\nfunction validateTags(tags, description) {\n const validTags = [];\n const invalidTags = [];\n for(let i = 0; i < tags.length; i++){\n const tag = tags[i];\n if (typeof tag !== 'string') {\n invalidTags.push({\n tag,\n reason: 'invalid type, must be a string'\n });\n } else if (tag.length > _constants1.NEXT_CACHE_TAG_MAX_LENGTH) {\n invalidTags.push({\n tag,\n reason: `exceeded max length of ${_constants1.NEXT_CACHE_TAG_MAX_LENGTH}`\n });\n } else {\n validTags.push(tag);\n }\n if (validTags.length > _constants1.NEXT_CACHE_TAG_MAX_ITEMS) {\n console.warn(`Warning: exceeded max tag count for ${description}, dropped tags:`, tags.slice(i).join(', '));\n break;\n }\n }\n if (invalidTags.length > 0) {\n console.warn(`Warning: invalid tags passed to ${description}: `);\n for (const { tag, reason } of invalidTags){\n console.log(`tag: \"${tag}\" ${reason}`);\n }\n }\n return validTags;\n}\nfunction trackFetchMetric(workStore, ctx) {\n if (!workStore.shouldTrackFetchMetrics) {\n return;\n }\n workStore.fetchMetrics ??= [];\n workStore.fetchMetrics.push({\n ...ctx,\n end: performance.timeOrigin + performance.now(),\n idx: workStore.nextFetchId || 0\n });\n}\nasync function createCachedPrerenderResponse(res, cacheKey, incrementalCacheContext, incrementalCache, revalidate, handleUnlock) {\n // We are prerendering at build time or revalidate time with cacheComponents so we\n // need to buffer the response so we can guarantee it can be read in a\n // microtask.\n const bodyBuffer = await res.arrayBuffer();\n const fetchedData = {\n headers: Object.fromEntries(res.headers.entries()),\n body: Buffer.from(bodyBuffer).toString('base64'),\n status: res.status,\n url: res.url\n };\n // We can skip setting the serverComponentsHmrCache because we aren't in dev\n // mode.\n if (incrementalCacheContext) {\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate\n }, incrementalCacheContext);\n }\n await handleUnlock();\n // We return a new Response to the caller.\n return new Response(bodyBuffer, {\n headers: res.headers,\n status: res.status,\n statusText: res.statusText\n });\n}\nasync function createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheContext, incrementalCache, serverComponentsHmrCache, revalidate, input, handleUnlock) {\n // We're cloning the response using this utility because there exists a bug in\n // the undici library around response cloning. See the following pull request\n // for more details: https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(res);\n // We are dynamically rendering including dev mode. We want to return the\n // response to the caller as soon as possible because it might stream over a\n // very long time.\n const cacheSetPromise = cloned1.arrayBuffer().then(async (arrayBuffer)=>{\n const bodyBuffer = Buffer.from(arrayBuffer);\n const fetchedData = {\n headers: Object.fromEntries(cloned1.headers.entries()),\n body: bodyBuffer.toString('base64'),\n status: cloned1.status,\n url: cloned1.url\n };\n serverComponentsHmrCache == null ? void 0 : serverComponentsHmrCache.set(cacheKey, fetchedData);\n if (incrementalCacheContext) {\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate\n }, incrementalCacheContext);\n }\n }).catch((error)=>console.warn(`Failed to set fetch cache`, input, error)).finally(handleUnlock);\n const pendingRevalidateKey = `cache-set-${cacheKey}`;\n workStore.pendingRevalidates ??= {};\n if (pendingRevalidateKey in workStore.pendingRevalidates) {\n // there is already a pending revalidate entry that we need to await to\n // avoid race conditions\n await workStore.pendingRevalidates[pendingRevalidateKey];\n }\n workStore.pendingRevalidates[pendingRevalidateKey] = cacheSetPromise.finally(()=>{\n var _workStore_pendingRevalidates;\n // If the pending revalidate is not present in the store, then we have\n // nothing to delete.\n if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete workStore.pendingRevalidates[pendingRevalidateKey];\n });\n return cloned2;\n}\nfunction createPatchedFetcher(originFetch, { workAsyncStorage, workUnitAsyncStorage }) {\n // Create the patched fetch function.\n const patched = async function fetch(input, init) {\n var _init_method, _init_next;\n let url;\n try {\n url = new URL(input instanceof Request ? input.url : input);\n url.username = '';\n url.password = '';\n } catch {\n // Error caused by malformed URL should be handled by native fetch\n url = undefined;\n }\n const fetchUrl = (url == null ? void 0 : url.href) ?? '';\n const method = (init == null ? void 0 : (_init_method = init.method) == null ? void 0 : _init_method.toUpperCase()) || 'GET';\n // Do create a new span trace for internal fetches in the\n // non-verbose mode.\n const isInternal = (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) === true;\n const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === '1';\n // We don't track fetch metrics for internal fetches\n // so it's not critical that we have a start time, as it won't be recorded.\n // This is to workaround a flaky issue where performance APIs might\n // not be available and will require follow-up investigation.\n const fetchStart = isInternal ? undefined : performance.timeOrigin + performance.now();\n const workStore = workAsyncStorage.getStore();\n const workUnitStore = workUnitAsyncStorage.getStore();\n // During static generation we track cache reads so we can reason about when they fill\n let cacheSignal = workUnitStore ? (0, _workunitasyncstorageexternal.getCacheSignal)(workUnitStore) : null;\n if (cacheSignal) {\n cacheSignal.beginRead();\n }\n const result = (0, _tracer.getTracer)().trace(isInternal ? _constants.NextNodeServerSpan.internalFetch : _constants.AppRenderSpan.fetch, {\n hideSpan,\n kind: _tracer.SpanKind.CLIENT,\n spanName: [\n 'fetch',\n method,\n fetchUrl\n ].filter(Boolean).join(' '),\n attributes: {\n 'http.url': fetchUrl,\n 'http.method': method,\n 'net.peer.name': url == null ? void 0 : url.hostname,\n 'net.peer.port': (url == null ? void 0 : url.port) || undefined\n }\n }, async ()=>{\n var _getRequestMeta;\n // If this is an internal fetch, we should not do any special treatment.\n if (isInternal) {\n return originFetch(input, init);\n }\n // If the workStore is not available, we can't do any\n // special treatment of fetch, therefore fallback to the original\n // fetch implementation.\n if (!workStore) {\n return originFetch(input, init);\n }\n // We should also fallback to the original fetch implementation if we\n // are in draft mode, it does not constitute a static generation.\n if (workStore.isDraftMode) {\n return originFetch(input, init);\n }\n const isRequestInput = input && typeof input === 'object' && typeof input.method === 'string';\n const getRequestMeta = (field)=>{\n // If request input is present but init is not, retrieve from input first.\n const value = init == null ? void 0 : init[field];\n return value || (isRequestInput ? input[field] : null);\n };\n let finalRevalidate = undefined;\n const getNextField = (field)=>{\n var _init_next, _init_next1, _input_next;\n return typeof (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next[field]) !== 'undefined' ? init == null ? void 0 : (_init_next1 = init.next) == null ? void 0 : _init_next1[field] : isRequestInput ? (_input_next = input.next) == null ? void 0 : _input_next[field] : undefined;\n };\n // RequestInit doesn't keep extra fields e.g. next so it's\n // only available if init is used separate\n const originalFetchRevalidate = getNextField('revalidate');\n let currentFetchRevalidate = originalFetchRevalidate;\n const tags = validateTags(getNextField('tags') || [], `fetch ${input.toString()}`);\n let revalidateStore;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n // TODO: Stop accumulating tags in client prerender. (fallthrough)\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n revalidateStore = workUnitStore;\n break;\n case 'request':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n if (revalidateStore) {\n if (Array.isArray(tags)) {\n // Collect tags onto parent caches or parent prerenders.\n const collectedTags = revalidateStore.tags ?? (revalidateStore.tags = []);\n for (const tag of tags){\n if (!collectedTags.includes(tag)) {\n collectedTags.push(tag);\n }\n }\n }\n }\n const implicitTags = workUnitStore == null ? void 0 : workUnitStore.implicitTags;\n let pageFetchCacheMode = workStore.fetchCache;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'unstable-cache':\n // Inside unstable-cache we treat it the same as force-no-store on\n // the page.\n pageFetchCacheMode = 'force-no-store';\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n break;\n default:\n workUnitStore;\n }\n }\n const isUsingNoStore = !!workStore.isUnstableNoStore;\n let currentFetchCacheConfig = getRequestMeta('cache');\n let cacheReason = '';\n let cacheWarning;\n if (typeof currentFetchCacheConfig === 'string' && typeof currentFetchRevalidate !== 'undefined') {\n // If the revalidate value conflicts with the cache value, we should warn the user and unset the conflicting values.\n const isConflictingRevalidate = // revalidate: 0 and cache: force-cache\n currentFetchCacheConfig === 'force-cache' && currentFetchRevalidate === 0 || // revalidate: >0 or revalidate: false and cache: no-store\n currentFetchCacheConfig === 'no-store' && (currentFetchRevalidate > 0 || currentFetchRevalidate === false);\n if (isConflictingRevalidate) {\n cacheWarning = `Specified \"cache: ${currentFetchCacheConfig}\" and \"revalidate: ${currentFetchRevalidate}\", only one should be specified.`;\n currentFetchCacheConfig = undefined;\n currentFetchRevalidate = undefined;\n }\n }\n const hasExplicitFetchCacheOptOut = // fetch config itself signals not to cache\n currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store' || // the fetch isn't explicitly caching and the segment level cache config signals not to cache\n // note: `pageFetchCacheMode` is also set by being in an unstable_cache context.\n pageFetchCacheMode === 'force-no-store' || pageFetchCacheMode === 'only-no-store';\n // If no explicit fetch cache mode is set, but dynamic = `force-dynamic` is set,\n // we shouldn't consider caching the fetch. This is because the `dynamic` cache\n // is considered a \"top-level\" cache mode, whereas something like `fetchCache` is more\n // fine-grained. Top-level modes are responsible for setting reasonable defaults for the\n // other configurations.\n const noFetchConfigAndForceDynamic = !pageFetchCacheMode && !currentFetchCacheConfig && !currentFetchRevalidate && workStore.forceDynamic;\n if (// force-cache was specified without a revalidate value. We set the revalidate value to false\n // which will signal the cache to not revalidate\n currentFetchCacheConfig === 'force-cache' && typeof currentFetchRevalidate === 'undefined') {\n currentFetchRevalidate = false;\n } else if (hasExplicitFetchCacheOptOut || noFetchConfigAndForceDynamic) {\n currentFetchRevalidate = 0;\n }\n if (currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store') {\n cacheReason = `cache: ${currentFetchCacheConfig}`;\n }\n finalRevalidate = validateRevalidate(currentFetchRevalidate, workStore.route);\n const _headers = getRequestMeta('headers');\n const initHeaders = typeof (_headers == null ? void 0 : _headers.get) === 'function' ? _headers : new Headers(_headers || {});\n const hasUnCacheableHeader = initHeaders.get('authorization') || initHeaders.get('cookie');\n const isUnCacheableMethod = ![\n 'get',\n 'head'\n ].includes(((_getRequestMeta = getRequestMeta('method')) == null ? void 0 : _getRequestMeta.toLowerCase()) || 'get');\n /**\n * We automatically disable fetch caching under the following conditions:\n * - Fetch cache configs are not set. Specifically:\n * - A page fetch cache mode is not set (export const fetchCache=...)\n * - A fetch cache mode is not set in the fetch call (fetch(url, { cache: ... }))\n * or the fetch cache mode is set to 'default'\n * - A fetch revalidate value is not set in the fetch call (fetch(url, { revalidate: ... }))\n * - OR the fetch comes after a configuration that triggered dynamic rendering (e.g., reading cookies())\n * and the fetch was considered uncacheable (e.g., POST method or has authorization headers)\n */ const hasNoExplicitCacheConfig = // eslint-disable-next-line eqeqeq\n pageFetchCacheMode == undefined && // eslint-disable-next-line eqeqeq\n (currentFetchCacheConfig == undefined || // when considering whether to opt into the default \"no-cache\" fetch semantics,\n // a \"default\" cache config should be treated the same as no cache config\n currentFetchCacheConfig === 'default') && // eslint-disable-next-line eqeqeq\n currentFetchRevalidate == undefined;\n let autoNoCache = Boolean((hasUnCacheableHeader || isUnCacheableMethod) && (revalidateStore == null ? void 0 : revalidateStore.revalidate) === 0);\n let isImplicitBuildTimeCache = false;\n if (!autoNoCache && hasNoExplicitCacheConfig) {\n // We don't enable automatic no-cache behavior during build-time\n // prerendering so that we can still leverage the fetch cache between\n // export workers.\n if (workStore.isBuildTimePrerendering) {\n isImplicitBuildTimeCache = true;\n } else {\n autoNoCache = true;\n }\n }\n // If we have no cache config, and we're in Dynamic I/O prerendering,\n // it'll be a dynamic call. We don't have to issue that dynamic call.\n if (hasNoExplicitCacheConfig && workUnitStore !== undefined) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n // While we don't want to do caching in the client scope we know the\n // fetch will be dynamic for cacheComponents so we may as well avoid the\n // call here. (fallthrough)\n case 'prerender-client':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n switch(pageFetchCacheMode){\n case 'force-no-store':\n {\n cacheReason = 'fetchCache = force-no-store';\n break;\n }\n case 'only-no-store':\n {\n if (currentFetchCacheConfig === 'force-cache' || typeof finalRevalidate !== 'undefined' && finalRevalidate > 0) {\n throw Object.defineProperty(new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`), \"__NEXT_ERROR_CODE\", {\n value: \"E448\",\n enumerable: false,\n configurable: true\n });\n }\n cacheReason = 'fetchCache = only-no-store';\n break;\n }\n case 'only-cache':\n {\n if (currentFetchCacheConfig === 'no-store') {\n throw Object.defineProperty(new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`), \"__NEXT_ERROR_CODE\", {\n value: \"E521\",\n enumerable: false,\n configurable: true\n });\n }\n break;\n }\n case 'force-cache':\n {\n if (typeof currentFetchRevalidate === 'undefined' || currentFetchRevalidate === 0) {\n cacheReason = 'fetchCache = force-cache';\n finalRevalidate = _constants1.INFINITE_CACHE;\n }\n break;\n }\n case 'default-cache':\n case 'default-no-store':\n case 'auto':\n case undefined:\n break;\n default:\n pageFetchCacheMode;\n }\n if (typeof finalRevalidate === 'undefined') {\n if (pageFetchCacheMode === 'default-cache' && !isUsingNoStore) {\n finalRevalidate = _constants1.INFINITE_CACHE;\n cacheReason = 'fetchCache = default-cache';\n } else if (pageFetchCacheMode === 'default-no-store') {\n finalRevalidate = 0;\n cacheReason = 'fetchCache = default-no-store';\n } else if (isUsingNoStore) {\n finalRevalidate = 0;\n cacheReason = 'noStore call';\n } else if (autoNoCache) {\n finalRevalidate = 0;\n cacheReason = 'auto no cache';\n } else {\n // TODO: should we consider this case an invariant?\n cacheReason = 'auto cache';\n finalRevalidate = revalidateStore ? revalidateStore.revalidate : _constants1.INFINITE_CACHE;\n }\n } else if (!cacheReason) {\n cacheReason = `revalidate: ${finalRevalidate}`;\n }\n if (// when force static is configured we don't bail from\n // `revalidate: 0` values\n !(workStore.forceStatic && finalRevalidate === 0) && // we don't consider autoNoCache to switch to dynamic for ISR\n !autoNoCache && // If the revalidate value isn't currently set or the value is less\n // than the current revalidate value, we should update the revalidate\n // value.\n revalidateStore && finalRevalidate < revalidateStore.revalidate) {\n // If we were setting the revalidate value to 0, we should try to\n // postpone instead first.\n if (finalRevalidate === 0) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n // We only want to set the revalidate store's revalidate time if it\n // was explicitly set for the fetch call, i.e.\n // originalFetchRevalidate.\n if (revalidateStore && originalFetchRevalidate === finalRevalidate) {\n revalidateStore.revalidate = finalRevalidate;\n }\n }\n const isCacheableRevalidate = typeof finalRevalidate === 'number' && finalRevalidate > 0;\n let cacheKey;\n const { incrementalCache } = workStore;\n let isHmrRefresh = false;\n let serverComponentsHmrCache;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n case 'cache':\n case 'private-cache':\n isHmrRefresh = workUnitStore.isHmrRefresh ?? false;\n serverComponentsHmrCache = workUnitStore.serverComponentsHmrCache;\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n if (incrementalCache && (isCacheableRevalidate || serverComponentsHmrCache)) {\n try {\n cacheKey = await incrementalCache.generateCacheKey(fetchUrl, isRequestInput ? input : init);\n } catch (err) {\n console.error(`Failed to generate cache key for`, input);\n }\n }\n const fetchIdx = workStore.nextFetchId ?? 1;\n workStore.nextFetchId = fetchIdx + 1;\n let handleUnlock = ()=>{};\n const doOriginalFetch = async (isStale, cacheReasonOverride)=>{\n const requestInputFields = [\n 'cache',\n 'credentials',\n 'headers',\n 'integrity',\n 'keepalive',\n 'method',\n 'mode',\n 'redirect',\n 'referrer',\n 'referrerPolicy',\n 'window',\n 'duplex',\n // don't pass through signal when revalidating\n ...isStale ? [] : [\n 'signal'\n ]\n ];\n if (isRequestInput) {\n const reqInput = input;\n const reqOptions = {\n body: reqInput._ogBody || reqInput.body\n };\n for (const field of requestInputFields){\n // @ts-expect-error custom fields\n reqOptions[field] = reqInput[field];\n }\n input = new Request(reqInput.url, reqOptions);\n } else if (init) {\n const { _ogBody, body, signal, ...otherInput } = init;\n init = {\n ...otherInput,\n body: _ogBody || body,\n signal: isStale ? undefined : signal\n };\n }\n // add metadata to init without editing the original\n const clonedInit = {\n ...init,\n next: {\n ...init == null ? void 0 : init.next,\n fetchType: 'origin',\n fetchIdx\n }\n };\n return originFetch(input, clonedInit).then(async (res)=>{\n if (!isStale && fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason: cacheReasonOverride || cacheReason,\n cacheStatus: finalRevalidate === 0 || cacheReasonOverride ? 'skip' : 'miss',\n cacheWarning,\n status: res.status,\n method: clonedInit.method || 'GET'\n });\n }\n if (res.status === 200 && incrementalCache && cacheKey && (isCacheableRevalidate || serverComponentsHmrCache)) {\n const normalizedRevalidate = finalRevalidate >= _constants1.INFINITE_CACHE ? _constants1.CACHE_ONE_YEAR : finalRevalidate;\n const incrementalCacheConfig = isCacheableRevalidate ? {\n fetchCache: true,\n fetchUrl,\n fetchIdx,\n tags,\n isImplicitBuildTimeCache\n } : undefined;\n switch(workUnitStore == null ? void 0 : workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n return createCachedPrerenderResponse(res, cacheKey, incrementalCacheConfig, incrementalCache, normalizedRevalidate, handleUnlock);\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case undefined:\n return createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheConfig, incrementalCache, serverComponentsHmrCache, normalizedRevalidate, input, handleUnlock);\n default:\n workUnitStore;\n }\n }\n // we had response that we determined shouldn't be cached so we return it\n // and don't cache it. This also needs to unlock the cache lock we acquired.\n await handleUnlock();\n return res;\n }).catch((error)=>{\n handleUnlock();\n throw error;\n });\n };\n let cacheReasonOverride;\n let isForegroundRevalidate = false;\n let isHmrRefreshCache = false;\n if (cacheKey && incrementalCache) {\n let cachedFetchData;\n if (isHmrRefresh && serverComponentsHmrCache) {\n cachedFetchData = serverComponentsHmrCache.get(cacheKey);\n isHmrRefreshCache = true;\n }\n if (isCacheableRevalidate && !cachedFetchData) {\n handleUnlock = await incrementalCache.lock(cacheKey);\n const entry = workStore.isOnDemandRevalidate ? null : await incrementalCache.get(cacheKey, {\n kind: _responsecache.IncrementalCacheKind.FETCH,\n revalidate: finalRevalidate,\n fetchUrl,\n fetchIdx,\n tags,\n softTags: implicitTags == null ? void 0 : implicitTags.tags\n });\n if (hasNoExplicitCacheConfig && workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n // We sometimes use the cache to dedupe fetches that do not\n // specify a cache configuration. In these cases we want to\n // make sure we still exclude them from prerenders if\n // cacheComponents is on so we introduce an artificial task boundary\n // here.\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n break;\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n if (entry) {\n await handleUnlock();\n } else {\n // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers\n cacheReasonOverride = 'cache-control: no-cache (hard refresh)';\n }\n if ((entry == null ? void 0 : entry.value) && entry.value.kind === _responsecache.CachedRouteKind.FETCH) {\n // when stale and is revalidating we wait for fresh data\n // so the revalidated entry has the updated data\n if (workStore.isRevalidate && entry.isStale) {\n isForegroundRevalidate = true;\n } else {\n if (entry.isStale) {\n workStore.pendingRevalidates ??= {};\n if (!workStore.pendingRevalidates[cacheKey]) {\n const pendingRevalidate = doOriginalFetch(true).then(async (response)=>({\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n })).finally(()=>{\n workStore.pendingRevalidates ??= {};\n delete workStore.pendingRevalidates[cacheKey || ''];\n });\n // Attach the empty catch here so we don't get a \"unhandled\n // promise rejection\" warning.\n pendingRevalidate.catch(console.error);\n workStore.pendingRevalidates[cacheKey] = pendingRevalidate;\n }\n }\n cachedFetchData = entry.value.data;\n }\n }\n }\n if (cachedFetchData) {\n if (fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason,\n cacheStatus: isHmrRefreshCache ? 'hmr' : 'hit',\n cacheWarning,\n status: cachedFetchData.status || 200,\n method: (init == null ? void 0 : init.method) || 'GET'\n });\n }\n const response = new Response(Buffer.from(cachedFetchData.body, 'base64'), {\n headers: cachedFetchData.headers,\n status: cachedFetchData.status\n });\n Object.defineProperty(response, 'url', {\n value: cachedFetchData.url\n });\n return response;\n }\n }\n if (workStore.isStaticGeneration && init && typeof init === 'object') {\n const { cache } = init;\n // Delete `cache` property as Cloudflare Workers will throw an error\n if (isEdgeRuntime) delete init.cache;\n if (cache === 'no-store') {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `no-store fetch ${input} ${workStore.route}`);\n }\n const hasNextConfig = 'next' in init;\n const { next = {} } = init;\n if (typeof next.revalidate === 'number' && revalidateStore && next.revalidate < revalidateStore.revalidate) {\n if (next.revalidate === 0) {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-legacy':\n case 'prerender-ppr':\n break;\n default:\n workUnitStore;\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n if (!workStore.forceStatic || next.revalidate !== 0) {\n revalidateStore.revalidate = next.revalidate;\n }\n }\n if (hasNextConfig) delete init.next;\n }\n // if we are revalidating the whole page via time or on-demand and\n // the fetch cache entry is stale we should still de-dupe the\n // origin hit if it's a cache-able entry\n if (cacheKey && isForegroundRevalidate) {\n const pendingRevalidateKey = cacheKey;\n workStore.pendingRevalidates ??= {};\n let pendingRevalidate = workStore.pendingRevalidates[pendingRevalidateKey];\n if (pendingRevalidate) {\n const revalidatedResult = await pendingRevalidate;\n return new Response(revalidatedResult.body, {\n headers: revalidatedResult.headers,\n status: revalidatedResult.status,\n statusText: revalidatedResult.statusText\n });\n }\n // We used to just resolve the Response and clone it however for\n // static generation with cacheComponents we need the response to be able to\n // be resolved in a microtask and cloning the response will never have\n // a body that can resolve in a microtask in node (as observed through\n // experimentation) So instead we await the body and then when it is\n // available we construct manually cloned Response objects with the\n // body as an ArrayBuffer. This will be resolvable in a microtask\n // making it compatible with cacheComponents.\n const pendingResponse = doOriginalFetch(true, cacheReasonOverride)// We're cloning the response using this utility because there\n // exists a bug in the undici library around response cloning.\n // See the following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n .then(_cloneresponse.cloneResponse);\n pendingRevalidate = pendingResponse.then(async (responses)=>{\n const response = responses[0];\n return {\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n };\n }).finally(()=>{\n var _workStore_pendingRevalidates;\n // If the pending revalidate is not present in the store, then\n // we have nothing to delete.\n if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete workStore.pendingRevalidates[pendingRevalidateKey];\n });\n // Attach the empty catch here so we don't get a \"unhandled promise\n // rejection\" warning\n pendingRevalidate.catch(()=>{});\n workStore.pendingRevalidates[pendingRevalidateKey] = pendingRevalidate;\n return pendingResponse.then((responses)=>responses[1]);\n } else {\n return doOriginalFetch(false, cacheReasonOverride);\n }\n });\n if (cacheSignal) {\n try {\n return await result;\n } finally{\n if (cacheSignal) {\n cacheSignal.endRead();\n }\n }\n }\n return result;\n };\n // Attach the necessary properties to the patched fetch function.\n // We don't use this to determine if the fetch function has been patched,\n // but for external consumers to determine if the fetch function has been\n // patched.\n patched.__nextPatched = true;\n patched.__nextGetStaticStore = ()=>workAsyncStorage;\n patched._nextOriginalFetch = originFetch;\n globalThis[NEXT_PATCH_SYMBOL] = true;\n // Assign the function name also as a name property, so that it's preserved\n // even when mangling is enabled.\n Object.defineProperty(patched, 'name', {\n value: 'fetch',\n writable: false\n });\n return patched;\n}\nfunction patchFetch(options) {\n // If we've already patched fetch, we should not patch it again.\n if (isFetchPatched()) return;\n // Grab the original fetch function. We'll attach this so we can use it in\n // the patched fetch function.\n const original = (0, _dedupefetch.createDedupeFetch)(globalThis.fetch);\n // Set the global fetch to the patched fetch.\n globalThis.fetch = createPatchedFetcher(original, options);\n}\n\n//# sourceMappingURL=patch-fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcGF0Y2gtZmV0Y2guanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsdUZBQW1CO0FBQzlDLGdCQUFnQixtQkFBTyxDQUFDLGlGQUFnQjtBQUN4QyxvQkFBb0IsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDakQsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxxQkFBcUIsbUJBQU8sQ0FBQyxpRkFBZ0I7QUFDN0Msc0NBQXNDLG1CQUFPLENBQUMsMEZBQWdEO0FBQzlGLHVCQUF1QixtQkFBTyxDQUFDLHdGQUFtQjtBQUNsRCxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQsdUJBQXVCLG1CQUFPLENBQUMscUZBQWtCO0FBQ2pELHNCQUFzQixRQUF3QjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1YsK0VBQStFLGNBQWMsUUFBUSxNQUFNO0FBQzNHO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGlCQUFpQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFVBQVU7QUFDVjtBQUNBO0FBQ0Esa0RBQWtELHND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Q0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcGF0Y2gtZmV0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBORVhUX1BBVENIX1NZTUJPTDogbnVsbCxcbiAgICBjcmVhdGVQYXRjaGVkRmV0Y2hlcjogbnVsbCxcbiAgICBwYXRjaEZldGNoOiBudWxsLFxuICAgIHZhbGlkYXRlUmV2YWxpZGF0ZTogbnVsbCxcbiAgICB2YWxpZGF0ZVRhZ3M6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTkVYVF9QQVRDSF9TWU1CT0w6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9QQVRDSF9TWU1CT0w7XG4gICAgfSxcbiAgICBjcmVhdGVQYXRjaGVkRmV0Y2hlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQYXRjaGVkRmV0Y2hlcjtcbiAgICB9LFxuICAgIHBhdGNoRmV0Y2g6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGF0Y2hGZXRjaDtcbiAgICB9LFxuICAgIHZhbGlkYXRlUmV2YWxpZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZVJldmFsaWRhdGU7XG4gICAgfSxcbiAgICB2YWxpZGF0ZVRhZ3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVUYWdzO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL3RyYWNlL2NvbnN0YW50c1wiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzMSA9IHJlcXVpcmUoXCIuLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfZGVkdXBlZmV0Y2ggPSByZXF1aXJlKFwiLi9kZWR1cGUtZmV0Y2hcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX3Jlc3BvbnNlY2FjaGUgPSByZXF1aXJlKFwiLi4vcmVzcG9uc2UtY2FjaGVcIik7XG5jb25zdCBfc2NoZWR1bGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9zY2hlZHVsZXJcIik7XG5jb25zdCBfY2xvbmVyZXNwb25zZSA9IHJlcXVpcmUoXCIuL2Nsb25lLXJlc3BvbnNlXCIpO1xuY29uc3QgaXNFZGdlUnVudGltZSA9IHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnO1xuY29uc3QgTkVYVF9QQVRDSF9TWU1CT0wgPSBTeW1ib2wuZm9yKCduZXh0LXBhdGNoJyk7XG5mdW5jdGlvbiBpc0ZldGNoUGF0Y2hlZCgpIHtcbiAgICByZXR1cm4gZ2xvYmFsVGhpc1tORVhUX1BBVENIX1NZTUJPTF0gPT09IHRydWU7XG59XG5mdW5jdGlvbiB2YWxpZGF0ZVJldmFsaWRhdGUocmV2YWxpZGF0ZVZhbCwgcm91dGUpIHtcbiAgICB0cnkge1xuICAgICAgICBsZXQgbm9ybWFsaXplZFJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZXZhbGlkYXRlVmFsID09PSBmYWxzZSkge1xuICAgICAgICAgICAgbm9ybWFsaXplZFJldmFsaWRhdGUgPSBfY29uc3RhbnRzMS5JTkZJTklURV9DQUNIRTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmV2YWxpZGF0ZVZhbCA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHJldmFsaWRhdGVWYWwpICYmIHJldmFsaWRhdGVWYWwgPiAtMSkge1xuICAgICAgICAgICAgbm9ybWFsaXplZFJldmFsaWRhdGUgPSByZXZhbGlkYXRlVmFsO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXZhbGlkYXRlVmFsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCByZXZhbGlkYXRlIHZhbHVlIFwiJHtyZXZhbGlkYXRlVmFsfVwiIG9uIFwiJHtyb3V0ZX1cIiwgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIgb3IgZmFsc2VgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTE3OVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRSZXZhbGlkYXRlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBoYW5kbGUgY2xpZW50IGNvbXBvbmVudCBlcnJvciBmcm9tIGF0dGVtcHRpbmcgdG8gY2hlY2sgcmV2YWxpZGF0ZSB2YWx1ZVxuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyLm1lc3NhZ2UuaW5jbHVkZXMoJ0ludmFsaWQgcmV2YWxpZGF0ZScpKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG5mdW5jdGlvbiB2YWxpZGF0ZVRhZ3ModGFncywgZGVzY3JpcHRpb24pIHtcbiAgICBjb25zdCB2YWxpZFRhZ3MgPSBbXTtcbiAgICBjb25zdCBpbnZhbGlkVGFncyA9IFtdO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgY29uc3QgdGFnID0gdGFnc1tpXTtcbiAgICAgICAgaWYgKHR5cGVvZiB0YWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpbnZhbGlkVGFncy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgcmVhc29uOiAnaW52YWxpZCB0eXBlLCBtdXN0IGJlIGEgc3RyaW5nJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGFnLmxlbmd0aCA+IF9jb25zdGFudHMxLk5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEgpIHtcbiAgICAgICAgICAgIGludmFsaWRUYWdzLnB1c2goe1xuICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICByZWFzb246IGBleGNlZWRlZCBtYXggbGVuZ3RoIG9mICR7X2NvbnN0YW50czEuTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSH1gXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbGlkVGFncy5wdXNoKHRhZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbGlkVGFncy5sZW5ndGggPiBfY29uc3RhbnRzMS5ORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgV2FybmluZzogZXhjZWVkZWQgbWF4IHRhZyBjb3VudCBmb3IgJHtkZXNjcmlwdGlvbn0sIGRyb3BwZWQgdGFnczpgLCB0YWdzLnNsaWNlKGkpLmpvaW4oJywgJykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGludmFsaWRUYWdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBXYXJuaW5nOiBpbnZhbGlkIHRhZ3MgcGFzc2VkIHRvICR7ZGVzY3JpcHRpb259OiBgKTtcbiAgICAgICAgZm9yIChjb25zdCB7IHRhZywgcmVhc29uIH0gb2YgaW52YWxpZFRhZ3Mpe1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHRhZzogXCIke3RhZ31cIiAke3JlYXNvbn1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsaWRUYWdzO1xufVxuZnVuY3Rpb24gdHJhY2tGZXRjaE1ldHJpYyh3b3JrU3RvcmUsIGN0eCkge1xuICAgIGlmICghd29ya1N0b3JlLnNob3VsZFRyYWNrRmV0Y2hNZXRyaWNzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgd29ya1N0b3JlLmZldGNoTWV0cmljcyA/Pz0gW107XG4gICAgd29ya1N0b3JlLmZldGNoTWV0cmljcy5wdXNoKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICBlbmQ6IHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKyBwZXJmb3JtYW5jZS5ub3coKSxcbiAgICAgICAgaWR4OiB3b3JrU3RvcmUubmV4dEZldGNoSWQgfHwgMFxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2FjaGVkUHJlcmVuZGVyUmVzcG9uc2UocmVzLCBjYWNoZUtleSwgaW5jcmVtZW50YWxDYWNoZUNvbnRleHQsIGluY3JlbWVudGFsQ2FjaGUsIHJldmFsaWRhdGUsIGhhbmRsZVVubG9jaykge1xuICAgIC8vIFdlIGFyZSBwcmVyZW5kZXJpbmcgYXQgYnVpbGQgdGltZSBvciByZXZhbGlkYXRlIHRpbWUgd2l0aCBjYWNoZUNvbXBvbmVudHMgc28gd2VcbiAgICAvLyBuZWVkIHRvIGJ1ZmZlciB0aGUgcmVzcG9uc2Ugc28gd2UgY2FuIGd1YXJhbnRlZSBpdCBjYW4gYmUgcmVhZCBpbiBhXG4gICAgLy8gbWljcm90YXNrLlxuICAgIGNvbnN0IGJvZHlCdWZmZXIgPSBhd2FpdCByZXMuYXJyYXlCdWZmZXIoKTtcbiAgICBjb25zdCBmZXRjaGVkRGF0YSA9IHtcbiAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHJlcy5oZWFkZXJzLmVudHJpZXMoKSksXG4gICAgICAgIGJvZHk6IEJ1ZmZlci5mcm9tKGJvZHlCdWZmZXIpLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICB1cmw6IHJlcy51cmxcbiAgICB9O1xuICAgIC8vIFdlIGNhbiBza2lwIHNldHRpbmcgdGhlIHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZSBiZWNhdXNlIHdlIGFyZW4ndCBpbiBkZXZcbiAgICAvLyBtb2RlLlxuICAgIGlmIChpbmNyZW1lbnRhbENhY2hlQ29udGV4dCkge1xuICAgICAgICBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLnNldChjYWNoZUtleSwge1xuICAgICAgICAgICAga2luZDogX3Jlc3BvbnNlY2FjaGUuQ2FjaGVkUm91dGVLaW5kLkZFVENILFxuICAgICAgICAgICAgZGF0YTogZmV0Y2hlZERhdGEsXG4gICAgICAgICAgICByZXZhbGlkYXRlXG4gICAgICAgIH0sIGluY3JlbWVudGFsQ2FjaGVDb250ZXh0KTtcbiAgICB9XG4gICAgYXdhaXQgaGFuZGxlVW5sb2NrKCk7XG4gICAgLy8gV2UgcmV0dXJuIGEgbmV3IFJlc3BvbnNlIHRvIHRoZSBjYWxsZXIuXG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShib2R5QnVmZmVyLCB7XG4gICAgICAgIGhlYWRlcnM6IHJlcy5oZWFkZXJzLFxuICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IHJlcy5zdGF0dXNUZXh0XG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBjcmVhdGVDYWNoZWREeW5hbWljUmVzcG9uc2Uod29ya1N0b3JlLCByZXMsIGNhY2hlS2V5LCBpbmNyZW1lbnRhbENhY2hlQ29udGV4dCwgaW5jcmVtZW50YWxDYWNoZSwgc2VydmVyQ29tcG9uZW50c0htckNhY2hlLCByZXZhbGlkYXRlLCBpbnB1dCwgaGFuZGxlVW5sb2NrKSB7XG4gICAgLy8gV2UncmUgY2xvbmluZyB0aGUgcmVzcG9uc2UgdXNpbmcgdGhpcyB1dGlsaXR5IGJlY2F1c2UgdGhlcmUgZXhpc3RzIGEgYnVnIGluXG4gICAgLy8gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZCByZXNwb25zZSBjbG9uaW5nLiBTZWUgdGhlIGZvbGxvd2luZyBwdWxsIHJlcXVlc3RcbiAgICAvLyBmb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC83MzI3NFxuICAgIGNvbnN0IFtjbG9uZWQxLCBjbG9uZWQyXSA9ICgwLCBfY2xvbmVyZXNwb25zZS5jbG9uZVJlc3BvbnNlKShyZXMpO1xuICAgIC8vIFdlIGFyZSBkeW5hbWljYWxseSByZW5kZXJpbmcgaW5jbHVkaW5nIGRldiBtb2RlLiBXZSB3YW50IHRvIHJldHVybiB0aGVcbiAgICAvLyByZXNwb25zZSB0byB0aGUgY2FsbGVyIGFzIHNvb24gYXMgcG9zc2libGUgYmVjYXVzZSBpdCBtaWdodCBzdHJlYW0gb3ZlciBhXG4gICAgLy8gdmVyeSBsb25nIHRpbWUuXG4gICAgY29uc3QgY2FjaGVTZXRQcm9taXNlID0gY2xvbmVkMS5hcnJheUJ1ZmZlcigpLnRoZW4oYXN5bmMgKGFycmF5QnVmZmVyKT0+e1xuICAgICAgICBjb25zdCBib2R5QnVmZmVyID0gQnVmZmVyLmZyb20oYXJyYXlCdWZmZXIpO1xuICAgICAgICBjb25zdCBmZXRjaGVkRGF0YSA9IHtcbiAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyhjbG9uZWQxLmhlYWRlcnMuZW50cmllcygpKSxcbiAgICAgICAgICAgIGJvZHk6IGJvZHlCdWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICAgICAgc3RhdHVzOiBjbG9uZWQxLnN0YXR1cyxcbiAgICAgICAgICAgIHVybDogY2xvbmVkMS51cmxcbiAgICAgICAgfTtcbiAgICAgICAgc2VydmVyQ29tcG9uZW50c0htckNhY2hlID09IG51bGwgPyB2b2lkIDAgOiBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUuc2V0KGNhY2hlS2V5LCBmZXRjaGVkRGF0YSk7XG4gICAgICAgIGlmIChpbmNyZW1lbnRhbENhY2hlQ29udGV4dCkge1xuICAgICAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoY2FjaGVLZXksIHtcbiAgICAgICAgICAgICAgICBraW5kOiBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuRkVUQ0gsXG4gICAgICAgICAgICAgICAgZGF0YTogZmV0Y2hlZERhdGEsXG4gICAgICAgICAgICAgICAgcmV2YWxpZGF0ZVxuICAgICAgICAgICAgfSwgaW5jcmVtZW50YWxDYWNoZUNvbnRleHQpO1xuICAgICAgICB9XG4gICAgfSkuY2F0Y2goKGVycm9yKT0+Y29uc29sZS53YXJuKGBGYWlsZWQgdG8gc2V0IGZldGNoIGNhY2hlYCwgaW5wdXQsIGVycm9yKSkuZmluYWxseShoYW5kbGVVbmxvY2spO1xuICAgIGNvbnN0IHBlbmRpbmdSZXZhbGlkYXRlS2V5ID0gYGNhY2hlLXNldC0ke2NhY2hlS2V5fWA7XG4gICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgaWYgKHBlbmRpbmdSZXZhbGlkYXRlS2V5IGluIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMpIHtcbiAgICAgICAgLy8gdGhlcmUgaXMgYWxyZWFkeSBhIHBlbmRpbmcgcmV2YWxpZGF0ZSBlbnRyeSB0aGF0IHdlIG5lZWQgdG8gYXdhaXQgdG9cbiAgICAgICAgLy8gYXZvaWQgcmFjZSBjb25kaXRpb25zXG4gICAgICAgIGF3YWl0IHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldO1xuICAgIH1cbiAgICB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW3BlbmRpbmdSZXZhbGlkYXRlS2V5XSA9IGNhY2hlU2V0UHJvbWlzZS5maW5hbGx5KCgpPT57XG4gICAgICAgIHZhciBfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlcztcbiAgICAgICAgLy8gSWYgdGhlIHBlbmRpbmcgcmV2YWxpZGF0ZSBpcyBub3QgcHJlc2VudCBpbiB0aGUgc3RvcmUsIHRoZW4gd2UgaGF2ZVxuICAgICAgICAvLyBub3RoaW5nIHRvIGRlbGV0ZS5cbiAgICAgICAgaWYgKCEoKF93b3JrU3RvcmVfcGVuZGluZ1JldmFsaWRhdGVzID0gd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF93b3JrU3RvcmVfcGVuZGluZ1JldmFsaWRhdGVzW3BlbmRpbmdSZXZhbGlkYXRlS2V5XSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV07XG4gICAgfSk7XG4gICAgcmV0dXJuIGNsb25lZDI7XG59XG5mdW5jdGlvbiBjcmVhdGVQYXRjaGVkRmV0Y2hlcihvcmlnaW5GZXRjaCwgeyB3b3JrQXN5bmNTdG9yYWdlLCB3b3JrVW5pdEFzeW5jU3RvcmFnZSB9KSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBwYXRjaGVkIGZldGNoIGZ1bmN0aW9uLlxuICAgIGNvbnN0IHBhdGNoZWQgPSBhc3luYyBmdW5jdGlvbiBmZXRjaChpbnB1dCwgaW5pdCkge1xuICAgICAgICB2YXIgX2luaXRfbWV0aG9kLCBfaW5pdF9uZXh0O1xuICAgICAgICBsZXQgdXJsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QgPyBpbnB1dC51cmwgOiBpbnB1dCk7XG4gICAgICAgICAgICB1cmwudXNlcm5hbWUgPSAnJztcbiAgICAgICAgICAgIHVybC5wYXNzd29yZCA9ICcnO1xuICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBFcnJvciBjYXVzZWQgYnkgbWFsZm9ybWVkIFVSTCBzaG91bGQgYmUgaGFuZGxlZCBieSBuYXRpdmUgZmV0Y2hcbiAgICAgICAgICAgIHVybCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmZXRjaFVybCA9ICh1cmwgPT0gbnVsbCA/IHZvaWQgMCA6IHVybC5ocmVmKSA/PyAnJztcbiAgICAgICAgY29uc3QgbWV0aG9kID0gKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9tZXRob2QgPSBpbml0Lm1ldGhvZCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X21ldGhvZC50b1VwcGVyQ2FzZSgpKSB8fCAnR0VUJztcbiAgICAgICAgLy8gRG8gY3JlYXRlIGEgbmV3IHNwYW4gdHJhY2UgZm9yIGludGVybmFsIGZldGNoZXMgaW4gdGhlXG4gICAgICAgIC8vIG5vbi12ZXJib3NlIG1vZGUuXG4gICAgICAgIGNvbnN0IGlzSW50ZXJuYWwgPSAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogKF9pbml0X25leHQgPSBpbml0Lm5leHQpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9uZXh0LmludGVybmFsKSA9PT0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaGlkZVNwYW4gPSBwcm9jZXNzLmVudi5ORVhUX09URUxfRkVUQ0hfRElTQUJMRUQgPT09ICcxJztcbiAgICAgICAgLy8gV2UgZG9uJ3QgdHJhY2sgZmV0Y2ggbWV0cmljcyBmb3IgaW50ZXJuYWwgZmV0Y2hlc1xuICAgICAgICAvLyBzbyBpdCdzIG5vdCBjcml0aWNhbCB0aGF0IHdlIGhhdmUgYSBzdGFydCB0aW1lLCBhcyBpdCB3b24ndCBiZSByZWNvcmRlZC5cbiAgICAgICAgLy8gVGhpcyBpcyB0byB3b3JrYXJvdW5kIGEgZmxha3kgaXNzdWUgd2hlcmUgcGVyZm9ybWFuY2UgQVBJcyBtaWdodFxuICAgICAgICAvLyBub3QgYmUgYXZhaWxhYmxlIGFuZCB3aWxsIHJlcXVpcmUgZm9sbG93LXVwIGludmVzdGlnYXRpb24uXG4gICAgICAgIGNvbnN0IGZldGNoU3RhcnQgPSBpc0ludGVybmFsID8gdW5kZWZpbmVkIDogcGVyZm9ybWFuY2UudGltZU9yaWdpbiArIHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAvLyBEdXJpbmcgc3RhdGljIGdlbmVyYXRpb24gd2UgdHJhY2sgY2FjaGUgcmVhZHMgc28gd2UgY2FuIHJlYXNvbiBhYm91dCB3aGVuIHRoZXkgZmlsbFxuICAgICAgICBsZXQgY2FjaGVTaWduYWwgPSB3b3JrVW5pdFN0b3JlID8gKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLmdldENhY2hlU2lnbmFsKSh3b3JrVW5pdFN0b3JlKSA6IG51bGw7XG4gICAgICAgIGlmIChjYWNoZVNpZ25hbCkge1xuICAgICAgICAgICAgY2FjaGVTaWduYWwuYmVnaW5SZWFkKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKGlzSW50ZXJuYWwgPyBfY29uc3RhbnRzLk5leHROb2RlU2VydmVyU3Bhbi5pbnRlcm5hbEZldGNoIDogX2NvbnN0YW50cy5BcHBSZW5kZXJTcGFuLmZldGNoLCB7XG4gICAgICAgICAgICBoaWRlU3BhbixcbiAgICAgICAgICAgIGtpbmQ6IF90cmFjZXIuU3BhbktpbmQuQ0xJRU5ULFxuICAgICAgICAgICAgc3Bhbk5hbWU6IFtcbiAgICAgICAgICAgICAgICAnZmV0Y2gnLFxuICAgICAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgICAgICBmZXRjaFVybFxuICAgICAgICAgICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpLFxuICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICdodHRwLnVybCc6IGZldGNoVXJsLFxuICAgICAgICAgICAgICAgICdodHRwLm1ldGhvZCc6IG1ldGhvZCxcbiAgICAgICAgICAgICAgICAnbmV0LnBlZXIubmFtZSc6IHVybCA9PSBudWxsID8gdm9pZCAwIDogdXJsLmhvc3RuYW1lLFxuICAgICAgICAgICAgICAgICduZXQucGVlci5wb3J0JzogKHVybCA9PSBudWxsID8gdm9pZCAwIDogdXJsLnBvcnQpIHx8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBhc3luYyAoKT0+e1xuICAgICAgICAgICAgdmFyIF9nZXRSZXF1ZXN0TWV0YTtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYW4gaW50ZXJuYWwgZmV0Y2gsIHdlIHNob3VsZCBub3QgZG8gYW55IHNwZWNpYWwgdHJlYXRtZW50LlxuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luRmV0Y2goaW5wdXQsIGluaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlIHdvcmtTdG9yZSBpcyBub3QgYXZhaWxhYmxlLCB3ZSBjYW4ndCBkbyBhbnlcbiAgICAgICAgICAgIC8vIHNwZWNpYWwgdHJlYXRtZW50IG9mIGZldGNoLCB0aGVyZWZvcmUgZmFsbGJhY2sgdG8gdGhlIG9yaWdpbmFsXG4gICAgICAgICAgICAvLyBmZXRjaCBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgICAgIGlmICghd29ya1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbkZldGNoKGlucHV0LCBpbml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIHNob3VsZCBhbHNvIGZhbGxiYWNrIHRvIHRoZSBvcmlnaW5hbCBmZXRjaCBpbXBsZW1lbnRhdGlvbiBpZiB3ZVxuICAgICAgICAgICAgLy8gYXJlIGluIGRyYWZ0IG1vZGUsIGl0IGRvZXMgbm90IGNvbnN0aXR1dGUgYSBzdGF0aWMgZ2VuZXJhdGlvbi5cbiAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luRmV0Y2goaW5wdXQsIGluaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaXNSZXF1ZXN0SW5wdXQgPSBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBpbnB1dC5tZXRob2QgPT09ICdzdHJpbmcnO1xuICAgICAgICAgICAgY29uc3QgZ2V0UmVxdWVzdE1ldGEgPSAoZmllbGQpPT57XG4gICAgICAgICAgICAgICAgLy8gSWYgcmVxdWVzdCBpbnB1dCBpcyBwcmVzZW50IGJ1dCBpbml0IGlzIG5vdCwgcmV0cmlldmUgZnJvbSBpbnB1dCBmaXJzdC5cbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXRbZmllbGRdO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSB8fCAoaXNSZXF1ZXN0SW5wdXQgPyBpbnB1dFtmaWVsZF0gOiBudWxsKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsZXQgZmluYWxSZXZhbGlkYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgZ2V0TmV4dEZpZWxkID0gKGZpZWxkKT0+e1xuICAgICAgICAgICAgICAgIHZhciBfaW5pdF9uZXh0LCBfaW5pdF9uZXh0MSwgX2lucHV0X25leHQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogKF9pbml0X25leHQgPSBpbml0Lm5leHQpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9uZXh0W2ZpZWxkXSkgIT09ICd1bmRlZmluZWQnID8gaW5pdCA9PSBudWxsID8gdm9pZCAwIDogKF9pbml0X25leHQxID0gaW5pdC5uZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX2luaXRfbmV4dDFbZmllbGRdIDogaXNSZXF1ZXN0SW5wdXQgPyAoX2lucHV0X25leHQgPSBpbnB1dC5uZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX2lucHV0X25leHRbZmllbGRdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIFJlcXVlc3RJbml0IGRvZXNuJ3Qga2VlcCBleHRyYSBmaWVsZHMgZS5nLiBuZXh0IHNvIGl0J3NcbiAgICAgICAgICAgIC8vIG9ubHkgYXZhaWxhYmxlIGlmIGluaXQgaXMgdXNlZCBzZXBhcmF0ZVxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxGZXRjaFJldmFsaWRhdGUgPSBnZXROZXh0RmllbGQoJ3JldmFsaWRhdGUnKTtcbiAgICAgICAgICAgIGxldCBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID0gb3JpZ2luYWxGZXRjaFJldmFsaWRhdGU7XG4gICAgICAgICAgICBjb25zdCB0YWdzID0gdmFsaWRhdGVUYWdzKGdldE5leHRGaWVsZCgndGFncycpIHx8IFtdLCBgZmV0Y2ggJHtpbnB1dC50b1N0cmluZygpfWApO1xuICAgICAgICAgICAgbGV0IHJldmFsaWRhdGVTdG9yZTtcbiAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogU3RvcCBhY2N1bXVsYXRpbmcgdGFncyBpbiBjbGllbnQgcHJlcmVuZGVyLiAoZmFsbHRocm91Z2gpXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlU3RvcmUgPSB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJldmFsaWRhdGVTdG9yZSkge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhZ3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIENvbGxlY3QgdGFncyBvbnRvIHBhcmVudCBjYWNoZXMgb3IgcGFyZW50IHByZXJlbmRlcnMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbGxlY3RlZFRhZ3MgPSByZXZhbGlkYXRlU3RvcmUudGFncyA/PyAocmV2YWxpZGF0ZVN0b3JlLnRhZ3MgPSBbXSk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdGFnIG9mIHRhZ3Mpe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2xsZWN0ZWRUYWdzLmluY2x1ZGVzKHRhZykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0ZWRUYWdzLnB1c2godGFnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGltcGxpY2l0VGFncyA9IHdvcmtVbml0U3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IHdvcmtVbml0U3RvcmUuaW1wbGljaXRUYWdzO1xuICAgICAgICAgICAgbGV0IHBhZ2VGZXRjaENhY2hlTW9kZSA9IHdvcmtTdG9yZS5mZXRjaENhY2hlO1xuICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5zaWRlIHVuc3RhYmxlLWNhY2hlIHdlIHRyZWF0IGl0IHRoZSBzYW1lIGFzIGZvcmNlLW5vLXN0b3JlIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcGFnZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VGZXRjaENhY2hlTW9kZSA9ICdmb3JjZS1uby1zdG9yZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc1VzaW5nTm9TdG9yZSA9ICEhd29ya1N0b3JlLmlzVW5zdGFibGVOb1N0b3JlO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID0gZ2V0UmVxdWVzdE1ldGEoJ2NhY2hlJyk7XG4gICAgICAgICAgICBsZXQgY2FjaGVSZWFzb24gPSAnJztcbiAgICAgICAgICAgIGxldCBjYWNoZVdhcm5pbmc7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgY3VycmVudEZldGNoUmV2YWxpZGF0ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcmV2YWxpZGF0ZSB2YWx1ZSBjb25mbGljdHMgd2l0aCB0aGUgY2FjaGUgdmFsdWUsIHdlIHNob3VsZCB3YXJuIHRoZSB1c2VyIGFuZCB1bnNldCB0aGUgY29uZmxpY3RpbmcgdmFsdWVzLlxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQ29uZmxpY3RpbmdSZXZhbGlkYXRlID0gLy8gcmV2YWxpZGF0ZTogMCBhbmQgY2FjaGU6IGZvcmNlLWNhY2hlXG4gICAgICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdmb3JjZS1jYWNoZScgJiYgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9PT0gMCB8fCAvLyByZXZhbGlkYXRlOiA+MCBvciByZXZhbGlkYXRlOiBmYWxzZSBhbmQgY2FjaGU6IG5vLXN0b3JlXG4gICAgICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICduby1zdG9yZScgJiYgKGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPiAwIHx8IGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09IGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNDb25mbGljdGluZ1JldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVXYXJuaW5nID0gYFNwZWNpZmllZCBcImNhY2hlOiAke2N1cnJlbnRGZXRjaENhY2hlQ29uZmlnfVwiIGFuZCBcInJldmFsaWRhdGU6ICR7Y3VycmVudEZldGNoUmV2YWxpZGF0ZX1cIiwgb25seSBvbmUgc2hvdWxkIGJlIHNwZWNpZmllZC5gO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFeHBsaWNpdEZldGNoQ2FjaGVPcHRPdXQgPSAvLyBmZXRjaCBjb25maWcgaXRzZWxmIHNpZ25hbHMgbm90IHRvIGNhY2hlXG4gICAgICAgICAgICBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLWNhY2hlJyB8fCBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLXN0b3JlJyB8fCAvLyB0aGUgZmV0Y2ggaXNuJ3QgZXhwbGljaXRseSBjYWNoaW5nIGFuZCB0aGUgc2VnbWVudCBsZXZlbCBjYWNoZSBjb25maWcgc2lnbmFscyBub3QgdG8gY2FjaGVcbiAgICAgICAgICAgIC8vIG5vdGU6IGBwYWdlRmV0Y2hDYWNoZU1vZGVgIGlzIGFsc28gc2V0IGJ5IGJlaW5nIGluIGFuIHVuc3RhYmxlX2NhY2hlIGNvbnRleHQuXG4gICAgICAgICAgICBwYWdlRmV0Y2hDYWNoZU1vZGUgPT09ICdmb3JjZS1uby1zdG9yZScgfHwgcGFnZUZldGNoQ2FjaGVNb2RlID09PSAnb25seS1uby1zdG9yZSc7XG4gICAgICAgICAgICAvLyBJZiBubyBleHBsaWNpdCBmZXRjaCBjYWNoZSBtb2RlIGlzIHNldCwgYnV0IGR5bmFtaWMgPSBgZm9yY2UtZHluYW1pY2AgaXMgc2V0LFxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkbid0IGNvbnNpZGVyIGNhY2hpbmcgdGhlIGZldGNoLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGBkeW5hbWljYCBjYWNoZVxuICAgICAgICAgICAgLy8gaXMgY29uc2lkZXJlZCBhIFwidG9wLWxldmVsXCIgY2FjaGUgbW9kZSwgd2hlcmVhcyBzb21ldGhpbmcgbGlrZSBgZmV0Y2hDYWNoZWAgaXMgbW9yZVxuICAgICAgICAgICAgLy8gZmluZS1ncmFpbmVkLiBUb3AtbGV2ZWwgbW9kZXMgYXJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHJlYXNvbmFibGUgZGVmYXVsdHMgZm9yIHRoZVxuICAgICAgICAgICAgLy8gb3RoZXIgY29uZmlndXJhdGlvbnMuXG4gICAgICAgICAgICBjb25zdCBub0ZldGNoQ29uZmlnQW5kRm9yY2VEeW5hbWljID0gIXBhZ2VGZXRjaENhY2hlTW9kZSAmJiAhY3VycmVudEZldGNoQ2FjaGVDb25maWcgJiYgIWN1cnJlbnRGZXRjaFJldmFsaWRhdGUgJiYgd29ya1N0b3JlLmZvcmNlRHluYW1pYztcbiAgICAgICAgICAgIGlmICgvLyBmb3JjZS1jYWNoZSB3YXMgc3BlY2lmaWVkIHdpdGhvdXQgYSByZXZhbGlkYXRlIHZhbHVlLiBXZSBzZXQgdGhlIHJldmFsaWRhdGUgdmFsdWUgdG8gZmFsc2VcbiAgICAgICAgICAgIC8vIHdoaWNoIHdpbGwgc2lnbmFsIHRoZSBjYWNoZSB0byBub3QgcmV2YWxpZGF0ZVxuICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdmb3JjZS1jYWNoZScgJiYgdHlwZW9mIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNFeHBsaWNpdEZldGNoQ2FjaGVPcHRPdXQgfHwgbm9GZXRjaENvbmZpZ0FuZEZvcmNlRHluYW1pYykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnbm8tY2FjaGUnIHx8IGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnbm8tc3RvcmUnKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSBgY2FjaGU6ICR7Y3VycmVudEZldGNoQ2FjaGVDb25maWd9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IHZhbGlkYXRlUmV2YWxpZGF0ZShjdXJyZW50RmV0Y2hSZXZhbGlkYXRlLCB3b3JrU3RvcmUucm91dGUpO1xuICAgICAgICAgICAgY29uc3QgX2hlYWRlcnMgPSBnZXRSZXF1ZXN0TWV0YSgnaGVhZGVycycpO1xuICAgICAgICAgICAgY29uc3QgaW5pdEhlYWRlcnMgPSB0eXBlb2YgKF9oZWFkZXJzID09IG51bGwgPyB2b2lkIDAgOiBfaGVhZGVycy5nZXQpID09PSAnZnVuY3Rpb24nID8gX2hlYWRlcnMgOiBuZXcgSGVhZGVycyhfaGVhZGVycyB8fCB7fSk7XG4gICAgICAgICAgICBjb25zdCBoYXNVbkNhY2hlYWJsZUhlYWRlciA9IGluaXRIZWFkZXJzLmdldCgnYXV0aG9yaXphdGlvbicpIHx8IGluaXRIZWFkZXJzLmdldCgnY29va2llJyk7XG4gICAgICAgICAgICBjb25zdCBpc1VuQ2FjaGVhYmxlTWV0aG9kID0gIVtcbiAgICAgICAgICAgICAgICAnZ2V0JyxcbiAgICAgICAgICAgICAgICAnaGVhZCdcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoKChfZ2V0UmVxdWVzdE1ldGEgPSBnZXRSZXF1ZXN0TWV0YSgnbWV0aG9kJykpID09IG51bGwgPyB2b2lkIDAgOiBfZ2V0UmVxdWVzdE1ldGEudG9Mb3dlckNhc2UoKSkgfHwgJ2dldCcpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAqIFdlIGF1dG9tYXRpY2FsbHkgZGlzYWJsZSBmZXRjaCBjYWNoaW5nIHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAgICAgICAgICogLSBGZXRjaCBjYWNoZSBjb25maWdzIGFyZSBub3Qgc2V0LiBTcGVjaWZpY2FsbHk6XG4gICAgICAgICAqICAgIC0gQSBwYWdlIGZldGNoIGNhY2hlIG1vZGUgaXMgbm90IHNldCAoZXhwb3J0IGNvbnN0IGZldGNoQ2FjaGU9Li4uKVxuICAgICAgICAgKiAgICAtIEEgZmV0Y2ggY2FjaGUgbW9kZSBpcyBub3Qgc2V0IGluIHRoZSBmZXRjaCBjYWxsIChmZXRjaCh1cmwsIHsgY2FjaGU6IC4uLiB9KSlcbiAgICAgICAgICogICAgICBvciB0aGUgZmV0Y2ggY2FjaGUgbW9kZSBpcyBzZXQgdG8gJ2RlZmF1bHQnXG4gICAgICAgICAqICAgIC0gQSBmZXRjaCByZXZhbGlkYXRlIHZhbHVlIGlzIG5vdCBzZXQgaW4gdGhlIGZldGNoIGNhbGwgKGZldGNoKHVybCwgeyByZXZhbGlkYXRlOiAuLi4gfSkpXG4gICAgICAgICAqIC0gT1IgdGhlIGZldGNoIGNvbWVzIGFmdGVyIGEgY29uZmlndXJhdGlvbiB0aGF0IHRyaWdnZXJlZCBkeW5hbWljIHJlbmRlcmluZyAoZS5nLiwgcmVhZGluZyBjb29raWVzKCkpXG4gICAgICAgICAqICAgYW5kIHRoZSBmZXRjaCB3YXMgY29uc2lkZXJlZCB1bmNhY2hlYWJsZSAoZS5nLiwgUE9TVCBtZXRob2Qgb3IgaGFzIGF1dGhvcml6YXRpb24gaGVhZGVycylcbiAgICAgICAgICovIGNvbnN0IGhhc05vRXhwbGljaXRDYWNoZUNvbmZpZyA9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgICAgIHBhZ2VGZXRjaENhY2hlTW9kZSA9PSB1bmRlZmluZWQgJiYgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgKGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09IHVuZGVmaW5lZCB8fCAvLyB3aGVuIGNvbnNpZGVyaW5nIHdoZXRoZXIgdG8gb3B0IGludG8gdGhlIGRlZmF1bHQgXCJuby1jYWNoZVwiIGZldGNoIHNlbWFudGljcyxcbiAgICAgICAgICAgIC8vIGEgXCJkZWZhdWx0XCIgY2FjaGUgY29uZmlnIHNob3VsZCBiZSB0cmVhdGVkIHRoZSBzYW1lIGFzIG5vIGNhY2hlIGNvbmZpZ1xuICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdkZWZhdWx0JykgJiYgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBsZXQgYXV0b05vQ2FjaGUgPSBCb29sZWFuKChoYXNVbkNhY2hlYWJsZUhlYWRlciB8fCBpc1VuQ2FjaGVhYmxlTWV0aG9kKSAmJiAocmV2YWxpZGF0ZVN0b3JlID09IG51bGwgPyB2b2lkIDAgOiByZXZhbGlkYXRlU3RvcmUucmV2YWxpZGF0ZSkgPT09IDApO1xuICAgICAgICAgICAgbGV0IGlzSW1wbGljaXRCdWlsZFRpbWVDYWNoZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFhdXRvTm9DYWNoZSAmJiBoYXNOb0V4cGxpY2l0Q2FjaGVDb25maWcpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBlbmFibGUgYXV0b21hdGljIG5vLWNhY2hlIGJlaGF2aW9yIGR1cmluZyBidWlsZC10aW1lXG4gICAgICAgICAgICAgICAgLy8gcHJlcmVuZGVyaW5nIHNvIHRoYXQgd2UgY2FuIHN0aWxsIGxldmVyYWdlIHRoZSBmZXRjaCBjYWNoZSBiZXR3ZWVuXG4gICAgICAgICAgICAgICAgLy8gZXhwb3J0IHdvcmtlcnMuXG4gICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5pc0J1aWxkVGltZVByZXJlbmRlcmluZykge1xuICAgICAgICAgICAgICAgICAgICBpc0ltcGxpY2l0QnVpbGRUaW1lQ2FjaGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Ob0NhY2hlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIG5vIGNhY2hlIGNvbmZpZywgYW5kIHdlJ3JlIGluIER5bmFtaWMgSS9PIHByZXJlbmRlcmluZyxcbiAgICAgICAgICAgIC8vIGl0J2xsIGJlIGEgZHluYW1pYyBjYWxsLiBXZSBkb24ndCBoYXZlIHRvIGlzc3VlIHRoYXQgZHluYW1pYyBjYWxsLlxuICAgICAgICAgICAgaWYgKGhhc05vRXhwbGljaXRDYWNoZUNvbmZpZyAmJiB3b3JrVW5pdFN0b3JlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGlsZSB3ZSBkb24ndCB3YW50IHRvIGRvIGNhY2hpbmcgaW4gdGhlIGNsaWVudCBzY29wZSB3ZSBrbm93IHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBmZXRjaCB3aWxsIGJlIGR5bmFtaWMgZm9yIGNhY2hlQ29tcG9uZW50cyBzbyB3ZSBtYXkgYXMgd2VsbCBhdm9pZCB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gY2FsbCBoZXJlLiAoZmFsbHRocm91Z2gpXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTaWduYWwuZW5kUmVhZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocGFnZUZldGNoQ2FjaGVNb2RlKXtcbiAgICAgICAgICAgICAgICBjYXNlICdmb3JjZS1uby1zdG9yZSc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2ZldGNoQ2FjaGUgPSBmb3JjZS1uby1zdG9yZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ29ubHktbm8tc3RvcmUnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdmb3JjZS1jYWNoZScgfHwgdHlwZW9mIGZpbmFsUmV2YWxpZGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgZmluYWxSZXZhbGlkYXRlID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYGNhY2hlOiAnZm9yY2UtY2FjaGUnIHVzZWQgb24gZmV0Y2ggZm9yICR7ZmV0Y2hVcmx9IHdpdGggJ2V4cG9ydCBjb25zdCBmZXRjaENhY2hlID0gJ29ubHktbm8tc3RvcmUnYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNDQ4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2ZldGNoQ2FjaGUgPSBvbmx5LW5vLXN0b3JlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnb25seS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLXN0b3JlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYGNhY2hlOiAnbm8tc3RvcmUnIHVzZWQgb24gZmV0Y2ggZm9yICR7ZmV0Y2hVcmx9IHdpdGggJ2V4cG9ydCBjb25zdCBmZXRjaENhY2hlID0gJ29ubHktY2FjaGUnYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnZm9yY2UtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnIHx8IGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdmZXRjaENhY2hlID0gZm9yY2UtY2FjaGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IF9jb25zdGFudHMxLklORklOSVRFX0NBQ0hFO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdkZWZhdWx0LWNhY2hlJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkZWZhdWx0LW5vLXN0b3JlJzpcbiAgICAgICAgICAgICAgICBjYXNlICdhdXRvJzpcbiAgICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcGFnZUZldGNoQ2FjaGVNb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBmaW5hbFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VGZXRjaENhY2hlTW9kZSA9PT0gJ2RlZmF1bHQtY2FjaGUnICYmICFpc1VzaW5nTm9TdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFJldmFsaWRhdGUgPSBfY29uc3RhbnRzMS5JTkZJTklURV9DQUNIRTtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnZmV0Y2hDYWNoZSA9IGRlZmF1bHQtY2FjaGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFnZUZldGNoQ2FjaGVNb2RlID09PSAnZGVmYXVsdC1uby1zdG9yZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnZmV0Y2hDYWNoZSA9IGRlZmF1bHQtbm8tc3RvcmUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNVc2luZ05vU3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnbm9TdG9yZSBjYWxsJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF1dG9Ob0NhY2hlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2F1dG8gbm8gY2FjaGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHNob3VsZCB3ZSBjb25zaWRlciB0aGlzIGNhc2UgYW4gaW52YXJpYW50P1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdhdXRvIGNhY2hlJztcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gcmV2YWxpZGF0ZVN0b3JlID8gcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUgOiBfY29uc3RhbnRzMS5JTkZJTklURV9DQUNIRTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZVJlYXNvbikge1xuICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gYHJldmFsaWRhdGU6ICR7ZmluYWxSZXZhbGlkYXRlfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoLy8gd2hlbiBmb3JjZSBzdGF0aWMgaXMgY29uZmlndXJlZCB3ZSBkb24ndCBiYWlsIGZyb21cbiAgICAgICAgICAgIC8vIGByZXZhbGlkYXRlOiAwYCB2YWx1ZXNcbiAgICAgICAgICAgICEod29ya1N0b3JlLmZvcmNlU3RhdGljICYmIGZpbmFsUmV2YWxpZGF0ZSA9PT0gMCkgJiYgLy8gd2UgZG9uJ3QgY29uc2lkZXIgYXV0b05vQ2FjaGUgdG8gc3dpdGNoIHRvIGR5bmFtaWMgZm9yIElTUlxuICAgICAgICAgICAgIWF1dG9Ob0NhY2hlICYmIC8vIElmIHRoZSByZXZhbGlkYXRlIHZhbHVlIGlzbid0IGN1cnJlbnRseSBzZXQgb3IgdGhlIHZhbHVlIGlzIGxlc3NcbiAgICAgICAgICAgIC8vIHRoYW4gdGhlIGN1cnJlbnQgcmV2YWxpZGF0ZSB2YWx1ZSwgd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgcmV2YWxpZGF0ZVxuICAgICAgICAgICAgLy8gdmFsdWUuXG4gICAgICAgICAgICByZXZhbGlkYXRlU3RvcmUgJiYgZmluYWxSZXZhbGlkYXRlIDwgcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3ZXJlIHNldHRpbmcgdGhlIHJldmFsaWRhdGUgdmFsdWUgdG8gMCwgd2Ugc2hvdWxkIHRyeSB0b1xuICAgICAgICAgICAgICAgIC8vIHBvc3Rwb25lIGluc3RlYWQgZmlyc3QuXG4gICAgICAgICAgICAgICAgaWYgKGZpbmFsUmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZVNpZ25hbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTaWduYWwuZW5kUmVhZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTaWduYWwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcubWFya0N1cnJlbnRTY29wZUFzRHluYW1pYykod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlLCBgcmV2YWxpZGF0ZTogMCBmZXRjaCAke2lucHV0fSAke3dvcmtTdG9yZS5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2Ugb25seSB3YW50IHRvIHNldCB0aGUgcmV2YWxpZGF0ZSBzdG9yZSdzIHJldmFsaWRhdGUgdGltZSBpZiBpdFxuICAgICAgICAgICAgICAgIC8vIHdhcyBleHBsaWNpdGx5IHNldCBmb3IgdGhlIGZldGNoIGNhbGwsIGkuZS5cbiAgICAgICAgICAgICAgICAvLyBvcmlnaW5hbEZldGNoUmV2YWxpZGF0ZS5cbiAgICAgICAgICAgICAgICBpZiAocmV2YWxpZGF0ZVN0b3JlICYmIG9yaWdpbmFsRmV0Y2hSZXZhbGlkYXRlID09PSBmaW5hbFJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUgPSBmaW5hbFJldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaXNDYWNoZWFibGVSZXZhbGlkYXRlID0gdHlwZW9mIGZpbmFsUmV2YWxpZGF0ZSA9PT0gJ251bWJlcicgJiYgZmluYWxSZXZhbGlkYXRlID4gMDtcbiAgICAgICAgICAgIGxldCBjYWNoZUtleTtcbiAgICAgICAgICAgIGNvbnN0IHsgaW5jcmVtZW50YWxDYWNoZSB9ID0gd29ya1N0b3JlO1xuICAgICAgICAgICAgbGV0IGlzSG1yUmVmcmVzaCA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZTtcbiAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIbXJSZWZyZXNoID0gd29ya1VuaXRTdG9yZS5pc0htclJlZnJlc2ggPz8gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUgPSB3b3JrVW5pdFN0b3JlLnNlcnZlckNvbXBvbmVudHNIbXJDYWNoZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5jcmVtZW50YWxDYWNoZSAmJiAoaXNDYWNoZWFibGVSZXZhbGlkYXRlIHx8IHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZSkpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZUtleSA9IGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuZ2VuZXJhdGVDYWNoZUtleShmZXRjaFVybCwgaXNSZXF1ZXN0SW5wdXQgPyBpbnB1dCA6IGluaXQpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgY2FjaGUga2V5IGZvcmAsIGlucHV0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmZXRjaElkeCA9IHdvcmtTdG9yZS5uZXh0RmV0Y2hJZCA/PyAxO1xuICAgICAgICAgICAgd29ya1N0b3JlLm5leHRGZXRjaElkID0gZmV0Y2hJZHggKyAxO1xuICAgICAgICAgICAgbGV0IGhhbmRsZVVubG9jayA9ICgpPT57fTtcbiAgICAgICAgICAgIGNvbnN0IGRvT3JpZ2luYWxGZXRjaCA9IGFzeW5jIChpc1N0YWxlLCBjYWNoZVJlYXNvbk92ZXJyaWRlKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJbnB1dEZpZWxkcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgJ2NhY2hlJyxcbiAgICAgICAgICAgICAgICAgICAgJ2NyZWRlbnRpYWxzJyxcbiAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAnaW50ZWdyaXR5JyxcbiAgICAgICAgICAgICAgICAgICAgJ2tlZXBhbGl2ZScsXG4gICAgICAgICAgICAgICAgICAgICdtZXRob2QnLFxuICAgICAgICAgICAgICAgICAgICAnbW9kZScsXG4gICAgICAgICAgICAgICAgICAgICdyZWRpcmVjdCcsXG4gICAgICAgICAgICAgICAgICAgICdyZWZlcnJlcicsXG4gICAgICAgICAgICAgICAgICAgICdyZWZlcnJlclBvbGljeScsXG4gICAgICAgICAgICAgICAgICAgICd3aW5kb3cnLFxuICAgICAgICAgICAgICAgICAgICAnZHVwbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgcGFzcyB0aHJvdWdoIHNpZ25hbCB3aGVuIHJldmFsaWRhdGluZ1xuICAgICAgICAgICAgICAgICAgICAuLi5pc1N0YWxlID8gW10gOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2lnbmFsJ1xuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZXF1ZXN0SW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxSW5wdXQgPSBpbnB1dDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHJlcUlucHV0Ll9vZ0JvZHkgfHwgcmVxSW5wdXQuYm9keVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHJlcXVlc3RJbnB1dEZpZWxkcyl7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGN1c3RvbSBmaWVsZHNcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcU9wdGlvbnNbZmllbGRdID0gcmVxSW5wdXRbZmllbGRdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlucHV0ID0gbmV3IFJlcXVlc3QocmVxSW5wdXQudXJsLCByZXFPcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBfb2dCb2R5LCBib2R5LCBzaWduYWwsIC4uLm90aGVySW5wdXQgfSA9IGluaXQ7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5vdGhlcklucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogX29nQm9keSB8fCBib2R5LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsOiBpc1N0YWxlID8gdW5kZWZpbmVkIDogc2lnbmFsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGFkZCBtZXRhZGF0YSB0byBpbml0IHdpdGhvdXQgZWRpdGluZyB0aGUgb3JpZ2luYWxcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9uZWRJbml0ID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5pbml0LFxuICAgICAgICAgICAgICAgICAgICBuZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0Lm5leHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFR5cGU6ICdvcmlnaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hJZHhcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbkZldGNoKGlucHV0LCBjbG9uZWRJbml0KS50aGVuKGFzeW5jIChyZXMpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNTdGFsZSAmJiBmZXRjaFN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFja0ZldGNoTWV0cmljKHdvcmtTdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBmZXRjaFN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb246IGNhY2hlUmVhc29uT3ZlcnJpZGUgfHwgY2FjaGVSZWFzb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXM6IGZpbmFsUmV2YWxpZGF0ZSA9PT0gMCB8fCBjYWNoZVJlYXNvbk92ZXJyaWRlID8gJ3NraXAnIDogJ21pc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlV2FybmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBjbG9uZWRJbml0Lm1ldGhvZCB8fCAnR0VUJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCAmJiBpbmNyZW1lbnRhbENhY2hlICYmIGNhY2hlS2V5ICYmIChpc0NhY2hlYWJsZVJldmFsaWRhdGUgfHwgc2VydmVyQ29tcG9uZW50c0htckNhY2hlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFJldmFsaWRhdGUgPSBmaW5hbFJldmFsaWRhdGUgPj0gX2NvbnN0YW50czEuSU5GSU5JVEVfQ0FDSEUgPyBfY29uc3RhbnRzMS5DQUNIRV9PTkVfWUVBUiA6IGZpbmFsUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluY3JlbWVudGFsQ2FjaGVDb25maWcgPSBpc0NhY2hlYWJsZVJldmFsaWRhdGUgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hDYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaElkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSW1wbGljaXRCdWlsZFRpbWVDYWNoZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlID09IG51bGwgPyB2b2lkIDAgOiB3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ2FjaGVkUHJlcmVuZGVyUmVzcG9uc2UocmVzLCBjYWNoZUtleSwgaW5jcmVtZW50YWxDYWNoZUNvbmZpZywgaW5jcmVtZW50YWxDYWNoZSwgbm9ybWFsaXplZFJldmFsaWRhdGUsIGhhbmRsZVVubG9jayk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNhY2hlZER5bmFtaWNSZXNwb25zZSh3b3JrU3RvcmUsIHJlcywgY2FjaGVLZXksIGluY3JlbWVudGFsQ2FjaGVDb25maWcsIGluY3JlbWVudGFsQ2FjaGUsIHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZSwgbm9ybWFsaXplZFJldmFsaWRhdGUsIGlucHV0LCBoYW5kbGVVbmxvY2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGFkIHJlc3BvbnNlIHRoYXQgd2UgZGV0ZXJtaW5lZCBzaG91bGRuJ3QgYmUgY2FjaGVkIHNvIHdlIHJldHVybiBpdFxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgZG9uJ3QgY2FjaGUgaXQuIFRoaXMgYWxzbyBuZWVkcyB0byB1bmxvY2sgdGhlIGNhY2hlIGxvY2sgd2UgYWNxdWlyZWQuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGhhbmRsZVVubG9jaygpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlcnJvcik9PntcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlVW5sb2NrKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxldCBjYWNoZVJlYXNvbk92ZXJyaWRlO1xuICAgICAgICAgICAgbGV0IGlzRm9yZWdyb3VuZFJldmFsaWRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGxldCBpc0htclJlZnJlc2hDYWNoZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGNhY2hlS2V5ICYmIGluY3JlbWVudGFsQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICBsZXQgY2FjaGVkRmV0Y2hEYXRhO1xuICAgICAgICAgICAgICAgIGlmIChpc0htclJlZnJlc2ggJiYgc2VydmVyQ29tcG9uZW50c0htckNhY2hlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlZEZldGNoRGF0YSA9IHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICBpc0htclJlZnJlc2hDYWNoZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0NhY2hlYWJsZVJldmFsaWRhdGUgJiYgIWNhY2hlZEZldGNoRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVVbmxvY2sgPSBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLmxvY2soY2FjaGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHdvcmtTdG9yZS5pc09uRGVtYW5kUmV2YWxpZGF0ZSA/IG51bGwgOiBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLmdldChjYWNoZUtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogX3Jlc3BvbnNlY2FjaGUuSW5jcmVtZW50YWxDYWNoZUtpbmQuRkVUQ0gsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBmaW5hbFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoSWR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFncyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvZnRUYWdzOiBpbXBsaWNpdFRhZ3MgPT0gbnVsbCA/IHZvaWQgMCA6IGltcGxpY2l0VGFncy50YWdzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzTm9FeHBsaWNpdENhY2hlQ29uZmlnICYmIHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBzb21ldGltZXMgdXNlIHRoZSBjYWNoZSB0byBkZWR1cGUgZmV0Y2hlcyB0aGF0IGRvIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZ5IGEgY2FjaGUgY29uZmlndXJhdGlvbi4gSW4gdGhlc2UgY2FzZXMgd2Ugd2FudCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgd2Ugc3RpbGwgZXhjbHVkZSB0aGVtIGZyb20gcHJlcmVuZGVycyBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZUNvbXBvbmVudHMgaXMgb24gc28gd2UgaW50cm9kdWNlIGFuIGFydGlmaWNpYWwgdGFzayBib3VuZGFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci53YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaykoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGhhbmRsZVVubG9jaygpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gZGV2LCBpbmNyZW1lbnRhbCBjYWNoZSByZXNwb25zZSB3aWxsIGJlIG51bGwgaW4gY2FzZSB0aGUgYnJvd3NlciBhZGRzIGBjYWNoZS1jb250cm9sOiBuby1jYWNoZWAgaW4gdGhlIHJlcXVlc3QgaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb25PdmVycmlkZSA9ICdjYWNoZS1jb250cm9sOiBuby1jYWNoZSAoaGFyZCByZWZyZXNoKSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKChlbnRyeSA9PSBudWxsID8gdm9pZCAwIDogZW50cnkudmFsdWUpICYmIGVudHJ5LnZhbHVlLmtpbmQgPT09IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5GRVRDSCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBzdGFsZSBhbmQgaXMgcmV2YWxpZGF0aW5nIHdlIHdhaXQgZm9yIGZyZXNoIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHRoZSByZXZhbGlkYXRlZCBlbnRyeSBoYXMgdGhlIHVwZGF0ZWQgZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5pc1JldmFsaWRhdGUgJiYgZW50cnkuaXNTdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRm9yZWdyb3VuZFJldmFsaWRhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnkuaXNTdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzID8/PSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVuZGluZ1JldmFsaWRhdGUgPSBkb09yaWdpbmFsRmV0Y2godHJ1ZSkudGhlbihhc3luYyAocmVzcG9uc2UpPT4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbY2FjaGVLZXkgfHwgJyddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdHRhY2ggdGhlIGVtcHR5IGNhdGNoIGhlcmUgc28gd2UgZG9uJ3QgZ2V0IGEgXCJ1bmhhbmRsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByb21pc2UgcmVqZWN0aW9uXCIgd2FybmluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdSZXZhbGlkYXRlLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1tjYWNoZUtleV0gPSBwZW5kaW5nUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZWRGZXRjaERhdGEgPSBlbnRyeS52YWx1ZS5kYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjYWNoZWRGZXRjaERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZldGNoU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRmV0Y2hNZXRyaWMod29ya1N0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZldGNoU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1czogaXNIbXJSZWZyZXNoQ2FjaGUgPyAnaG1yJyA6ICdoaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlV2FybmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGNhY2hlZEZldGNoRGF0YS5zdGF0dXMgfHwgMjAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQubWV0aG9kKSB8fCAnR0VUJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoQnVmZmVyLmZyb20oY2FjaGVkRmV0Y2hEYXRhLmJvZHksICdiYXNlNjQnKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogY2FjaGVkRmV0Y2hEYXRhLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGNhY2hlZEZldGNoRGF0YS5zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXNwb25zZSwgJ3VybCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjYWNoZWRGZXRjaERhdGEudXJsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5pc1N0YXRpY0dlbmVyYXRpb24gJiYgaW5pdCAmJiB0eXBlb2YgaW5pdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNhY2hlIH0gPSBpbml0O1xuICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBgY2FjaGVgIHByb3BlcnR5IGFzIENsb3VkZmxhcmUgV29ya2VycyB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgICAgICAgICAgICAgaWYgKGlzRWRnZVJ1bnRpbWUpIGRlbGV0ZSBpbml0LmNhY2hlO1xuICAgICAgICAgICAgICAgIGlmIChjYWNoZSA9PT0gJ25vLXN0b3JlJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiBlbmFibGVkLCB3ZSBzaG91bGQgYmFpbCBvdXQgb2Ygc3RhdGljIGdlbmVyYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbC5lbmRSZWFkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsIHdvcmtTdG9yZS5yb3V0ZSwgJ2ZldGNoKCknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5tYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljKSh3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUsIGBuby1zdG9yZSBmZXRjaCAke2lucHV0fSAke3dvcmtTdG9yZS5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzTmV4dENvbmZpZyA9ICduZXh0JyBpbiBpbml0O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbmV4dCA9IHt9IH0gPSBpbml0O1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbmV4dC5yZXZhbGlkYXRlID09PSAnbnVtYmVyJyAmJiByZXZhbGlkYXRlU3RvcmUgJiYgbmV4dC5yZXZhbGlkYXRlIDwgcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQucmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgZW5hYmxlZCwgd2Ugc2hvdWxkIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcubWFya0N1cnJlbnRTY29wZUFzRHluYW1pYykod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlLCBgcmV2YWxpZGF0ZTogMCBmZXRjaCAke2lucHV0fSAke3dvcmtTdG9yZS5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXdvcmtTdG9yZS5mb3JjZVN0YXRpYyB8fCBuZXh0LnJldmFsaWRhdGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlID0gbmV4dC5yZXZhbGlkYXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChoYXNOZXh0Q29uZmlnKSBkZWxldGUgaW5pdC5uZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgd2UgYXJlIHJldmFsaWRhdGluZyB0aGUgd2hvbGUgcGFnZSB2aWEgdGltZSBvciBvbi1kZW1hbmQgYW5kXG4gICAgICAgICAgICAvLyB0aGUgZmV0Y2ggY2FjaGUgZW50cnkgaXMgc3RhbGUgd2Ugc2hvdWxkIHN0aWxsIGRlLWR1cGUgdGhlXG4gICAgICAgICAgICAvLyBvcmlnaW4gaGl0IGlmIGl0J3MgYSBjYWNoZS1hYmxlIGVudHJ5XG4gICAgICAgICAgICBpZiAoY2FjaGVLZXkgJiYgaXNGb3JlZ3JvdW5kUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlbmRpbmdSZXZhbGlkYXRlS2V5ID0gY2FjaGVLZXk7XG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgbGV0IHBlbmRpbmdSZXZhbGlkYXRlID0gd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV07XG4gICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdGVkUmVzdWx0ID0gYXdhaXQgcGVuZGluZ1JldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UocmV2YWxpZGF0ZWRSZXN1bHQuYm9keSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmV2YWxpZGF0ZWRSZXN1bHQuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmV2YWxpZGF0ZWRSZXN1bHQuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogcmV2YWxpZGF0ZWRSZXN1bHQuc3RhdHVzVGV4dFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2UgdXNlZCB0byBqdXN0IHJlc29sdmUgdGhlIFJlc3BvbnNlIGFuZCBjbG9uZSBpdCBob3dldmVyIGZvclxuICAgICAgICAgICAgICAgIC8vIHN0YXRpYyBnZW5lcmF0aW9uIHdpdGggY2FjaGVDb21wb25lbnRzIHdlIG5lZWQgdGhlIHJlc3BvbnNlIHRvIGJlIGFibGUgdG9cbiAgICAgICAgICAgICAgICAvLyBiZSByZXNvbHZlZCBpbiBhIG1pY3JvdGFzayBhbmQgY2xvbmluZyB0aGUgcmVzcG9uc2Ugd2lsbCBuZXZlciBoYXZlXG4gICAgICAgICAgICAgICAgLy8gYSBib2R5IHRoYXQgY2FuIHJlc29sdmUgaW4gYSBtaWNyb3Rhc2sgaW4gbm9kZSAoYXMgb2JzZXJ2ZWQgdGhyb3VnaFxuICAgICAgICAgICAgICAgIC8vIGV4cGVyaW1lbnRhdGlvbikgU28gaW5zdGVhZCB3ZSBhd2FpdCB0aGUgYm9keSBhbmQgdGhlbiB3aGVuIGl0IGlzXG4gICAgICAgICAgICAgICAgLy8gYXZhaWxhYmxlIHdlIGNvbnN0cnVjdCBtYW51YWxseSBjbG9uZWQgUmVzcG9uc2Ugb2JqZWN0cyB3aXRoIHRoZVxuICAgICAgICAgICAgICAgIC8vIGJvZHkgYXMgYW4gQXJyYXlCdWZmZXIuIFRoaXMgd2lsbCBiZSByZXNvbHZhYmxlIGluIGEgbWljcm90YXNrXG4gICAgICAgICAgICAgICAgLy8gbWFraW5nIGl0IGNvbXBhdGlibGUgd2l0aCBjYWNoZUNvbXBvbmVudHMuXG4gICAgICAgICAgICAgICAgY29uc3QgcGVuZGluZ1Jlc3BvbnNlID0gZG9PcmlnaW5hbEZldGNoKHRydWUsIGNhY2hlUmVhc29uT3ZlcnJpZGUpLy8gV2UncmUgY2xvbmluZyB0aGUgcmVzcG9uc2UgdXNpbmcgdGhpcyB1dGlsaXR5IGJlY2F1c2UgdGhlcmVcbiAgICAgICAgICAgICAgICAvLyBleGlzdHMgYSBidWcgaW4gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZCByZXNwb25zZSBjbG9uaW5nLlxuICAgICAgICAgICAgICAgIC8vIFNlZSB0aGUgZm9sbG93aW5nIHB1bGwgcmVxdWVzdCBmb3IgbW9yZSBkZXRhaWxzOlxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzczMjc0XG4gICAgICAgICAgICAgICAgLnRoZW4oX2Nsb25lcmVzcG9uc2UuY2xvbmVSZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1JldmFsaWRhdGUgPSBwZW5kaW5nUmVzcG9uc2UudGhlbihhc3luYyAocmVzcG9uc2VzKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHJlc3BvbnNlc1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3dvcmtTdG9yZV9wZW5kaW5nUmV2YWxpZGF0ZXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwZW5kaW5nIHJldmFsaWRhdGUgaXMgbm90IHByZXNlbnQgaW4gdGhlIHN0b3JlLCB0aGVuXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm90aGluZyB0byBkZWxldGUuXG4gICAgICAgICAgICAgICAgICAgIGlmICghKChfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlcyA9IHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMpID09IG51bGwgPyB2b2lkIDAgOiBfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIEF0dGFjaCB0aGUgZW1wdHkgY2F0Y2ggaGVyZSBzbyB3ZSBkb24ndCBnZXQgYSBcInVuaGFuZGxlZCBwcm9taXNlXG4gICAgICAgICAgICAgICAgLy8gcmVqZWN0aW9uXCIgd2FybmluZ1xuICAgICAgICAgICAgICAgIHBlbmRpbmdSZXZhbGlkYXRlLmNhdGNoKCgpPT57fSk7XG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV0gPSBwZW5kaW5nUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGVuZGluZ1Jlc3BvbnNlLnRoZW4oKHJlc3BvbnNlcyk9PnJlc3BvbnNlc1sxXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkb09yaWdpbmFsRmV0Y2goZmFsc2UsIGNhY2hlUmVhc29uT3ZlcnJpZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCByZXN1bHQ7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsLmVuZFJlYWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIC8vIEF0dGFjaCB0aGUgbmVjZXNzYXJ5IHByb3BlcnRpZXMgdG8gdGhlIHBhdGNoZWQgZmV0Y2ggZnVuY3Rpb24uXG4gICAgLy8gV2UgZG9uJ3QgdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmZXRjaCBmdW5jdGlvbiBoYXMgYmVlbiBwYXRjaGVkLFxuICAgIC8vIGJ1dCBmb3IgZXh0ZXJuYWwgY29uc3VtZXJzIHRvIGRldGVybWluZSBpZiB0aGUgZmV0Y2ggZnVuY3Rpb24gaGFzIGJlZW5cbiAgICAvLyBwYXRjaGVkLlxuICAgIHBhdGNoZWQuX19uZXh0UGF0Y2hlZCA9IHRydWU7XG4gICAgcGF0Y2hlZC5fX25leHRHZXRTdGF0aWNTdG9yZSA9ICgpPT53b3JrQXN5bmNTdG9yYWdlO1xuICAgIHBhdGNoZWQuX25leHRPcmlnaW5hbEZldGNoID0gb3JpZ2luRmV0Y2g7XG4gICAgZ2xvYmFsVGhpc1tORVhUX1BBVENIX1NZTUJPTF0gPSB0cnVlO1xuICAgIC8vIEFzc2lnbiB0aGUgZnVuY3Rpb24gbmFtZSBhbHNvIGFzIGEgbmFtZSBwcm9wZXJ0eSwgc28gdGhhdCBpdCdzIHByZXNlcnZlZFxuICAgIC8vIGV2ZW4gd2hlbiBtYW5nbGluZyBpcyBlbmFibGVkLlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXRjaGVkLCAnbmFtZScsIHtcbiAgICAgICAgdmFsdWU6ICdmZXRjaCcsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgIH0pO1xuICAgIHJldHVybiBwYXRjaGVkO1xufVxuZnVuY3Rpb24gcGF0Y2hGZXRjaChvcHRpb25zKSB7XG4gICAgLy8gSWYgd2UndmUgYWxyZWFkeSBwYXRjaGVkIGZldGNoLCB3ZSBzaG91bGQgbm90IHBhdGNoIGl0IGFnYWluLlxuICAgIGlmIChpc0ZldGNoUGF0Y2hlZCgpKSByZXR1cm47XG4gICAgLy8gR3JhYiB0aGUgb3JpZ2luYWwgZmV0Y2ggZnVuY3Rpb24uIFdlJ2xsIGF0dGFjaCB0aGlzIHNvIHdlIGNhbiB1c2UgaXQgaW5cbiAgICAvLyB0aGUgcGF0Y2hlZCBmZXRjaCBmdW5jdGlvbi5cbiAgICBjb25zdCBvcmlnaW5hbCA9ICgwLCBfZGVkdXBlZmV0Y2guY3JlYXRlRGVkdXBlRmV0Y2gpKGdsb2JhbFRoaXMuZmV0Y2gpO1xuICAgIC8vIFNldCB0aGUgZ2xvYmFsIGZldGNoIHRvIHRoZSBwYXRjaGVkIGZldGNoLlxuICAgIGdsb2JhbFRoaXMuZmV0Y2ggPSBjcmVhdGVQYXRjaGVkRmV0Y2hlcihvcmlnaW5hbCwgb3B0aW9ucyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhdGNoLWZldGNoLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/server/lib/router-utils/is-postpone.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isPostpone\", ({\n enumerable: true,\n get: function() {\n return isPostpone;\n }\n}));\nconst REACT_POSTPONE_TYPE = Symbol.for('react.postpone');\nfunction isPostpone(error) {\n return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;\n}\n\n//# sourceMappingURL=is-postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOENBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3JvdXRlci11dGlscy9pcy1wb3N0cG9uZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzUG9zdHBvbmVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzUG9zdHBvbmU7XG4gICAgfVxufSk7XG5jb25zdCBSRUFDVF9QT1NUUE9ORV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9zdHBvbmUnKTtcbmZ1bmN0aW9uIGlzUG9zdHBvbmUoZXJyb3IpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiBlcnJvci4kJHR5cGVvZiA9PT0gUkVBQ1RfUE9TVFBPTkVfVFlQRTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtcG9zdHBvbmUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/server-action-request-meta.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/server/lib/server-action-request-meta.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getIsPossibleServerAction: function() {\n return getIsPossibleServerAction;\n },\n getServerActionRequestMetadata: function() {\n return getServerActionRequestMetadata;\n }\n});\nconst _approuterheaders = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction getServerActionRequestMetadata(req) {\n let actionId;\n let contentType;\n if (req.headers instanceof Headers) {\n actionId = req.headers.get(_approuterheaders.ACTION_HEADER) ?? null;\n contentType = req.headers.get('content-type');\n } else {\n actionId = req.headers[_approuterheaders.ACTION_HEADER] ?? null;\n contentType = req.headers['content-type'] ?? null;\n }\n const isURLEncodedAction = Boolean(req.method === 'POST' && contentType === 'application/x-www-form-urlencoded');\n const isMultipartAction = Boolean(req.method === 'POST' && (contentType == null ? void 0 : contentType.startsWith('multipart/form-data')));\n const isFetchAction = Boolean(actionId !== undefined && typeof actionId === 'string' && req.method === 'POST');\n const isPossibleServerAction = Boolean(isFetchAction || isURLEncodedAction || isMultipartAction);\n return {\n actionId,\n isURLEncodedAction,\n isMultipartAction,\n isFetchAction,\n isPossibleServerAction\n };\n}\nfunction getIsPossibleServerAction(req) {\n return getServerActionRequestMetadata(req).isPossibleServerAction;\n}\n\n//# sourceMappingURL=server-action-request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc2VydmVyLWFjdGlvbi1yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsMEJBQTBCLG1CQUFPLENBQUMsMEhBQTRDO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3NlcnZlci1hY3Rpb24tcmVxdWVzdC1tZXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZ2V0SXNQb3NzaWJsZVNlcnZlckFjdGlvbjogbnVsbCxcbiAgICBnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGE6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZ2V0SXNQb3NzaWJsZVNlcnZlckFjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRJc1Bvc3NpYmxlU2VydmVyQWN0aW9uO1xuICAgIH0sXG4gICAgZ2V0U2VydmVyQWN0aW9uUmVxdWVzdE1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFNlcnZlckFjdGlvblJlcXVlc3RNZXRhZGF0YTtcbiAgICB9XG59KTtcbmNvbnN0IF9hcHByb3V0ZXJoZWFkZXJzID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiKTtcbmZ1bmN0aW9uIGdldFNlcnZlckFjdGlvblJlcXVlc3RNZXRhZGF0YShyZXEpIHtcbiAgICBsZXQgYWN0aW9uSWQ7XG4gICAgbGV0IGNvbnRlbnRUeXBlO1xuICAgIGlmIChyZXEuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHtcbiAgICAgICAgYWN0aW9uSWQgPSByZXEuaGVhZGVycy5nZXQoX2FwcHJvdXRlcmhlYWRlcnMuQUNUSU9OX0hFQURFUikgPz8gbnVsbDtcbiAgICAgICAgY29udGVudFR5cGUgPSByZXEuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGlvbklkID0gcmVxLmhlYWRlcnNbX2FwcHJvdXRlcmhlYWRlcnMuQUNUSU9OX0hFQURFUl0gPz8gbnVsbDtcbiAgICAgICAgY29udGVudFR5cGUgPSByZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10gPz8gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgaXNVUkxFbmNvZGVkQWN0aW9uID0gQm9vbGVhbihyZXEubWV0aG9kID09PSAnUE9TVCcgJiYgY29udGVudFR5cGUgPT09ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTtcbiAgICBjb25zdCBpc011bHRpcGFydEFjdGlvbiA9IEJvb2xlYW4ocmVxLm1ldGhvZCA9PT0gJ1BPU1QnICYmIChjb250ZW50VHlwZSA9PSBudWxsID8gdm9pZCAwIDogY29udGVudFR5cGUuc3RhcnRzV2l0aCgnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKSk7XG4gICAgY29uc3QgaXNGZXRjaEFjdGlvbiA9IEJvb2xlYW4oYWN0aW9uSWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgYWN0aW9uSWQgPT09ICdzdHJpbmcnICYmIHJlcS5tZXRob2QgPT09ICdQT1NUJyk7XG4gICAgY29uc3QgaXNQb3NzaWJsZVNlcnZlckFjdGlvbiA9IEJvb2xlYW4oaXNGZXRjaEFjdGlvbiB8fCBpc1VSTEVuY29kZWRBY3Rpb24gfHwgaXNNdWx0aXBhcnRBY3Rpb24pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGFjdGlvbklkLFxuICAgICAgICBpc1VSTEVuY29kZWRBY3Rpb24sXG4gICAgICAgIGlzTXVsdGlwYXJ0QWN0aW9uLFxuICAgICAgICBpc0ZldGNoQWN0aW9uLFxuICAgICAgICBpc1Bvc3NpYmxlU2VydmVyQWN0aW9uXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldElzUG9zc2libGVTZXJ2ZXJBY3Rpb24ocmVxKSB7XG4gICAgcmV0dXJuIGdldFNlcnZlckFjdGlvblJlcXVlc3RNZXRhZGF0YShyZXEpLmlzUG9zc2libGVTZXJ2ZXJBY3Rpb247XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcnZlci1hY3Rpb24tcmVxdWVzdC1tZXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/server-action-request-meta.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/source-maps.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/server/lib/source-maps.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n devirtualizeReactServerURL: function() {\n return devirtualizeReactServerURL;\n },\n filterStackFrameDEV: function() {\n return filterStackFrameDEV;\n },\n findApplicableSourceMapPayload: function() {\n return findApplicableSourceMapPayload;\n },\n findSourceMapURLDEV: function() {\n return findSourceMapURLDEV;\n },\n ignoreListAnonymousStackFramesIfSandwiched: function() {\n return ignoreListAnonymousStackFramesIfSandwiched;\n },\n sourceMapIgnoreListsEverything: function() {\n return sourceMapIgnoreListsEverything;\n }\n});\nconst _lrucache = __webpack_require__(/*! ./lru-cache */ \"(rsc)/./node_modules/next/dist/server/lib/lru-cache.js\");\nvar _process_versions_node;\nfunction noSourceMap() {\n return undefined;\n}\n// Edge runtime does not implement `module`\nconst nativeFindSourceMap = false ? 0 : (__webpack_require__(/*! module */ \"module\").findSourceMap);\nfunction sourceMapIgnoreListsEverything(sourceMap) {\n return sourceMap.ignoreList !== undefined && sourceMap.sources.length === sourceMap.ignoreList.length;\n}\nfunction findApplicableSourceMapPayload(line0, column0, payload) {\n if ('sections' in payload) {\n if (payload.sections.length === 0) {\n return undefined;\n }\n // Sections must not overlap and must be sorted: https://tc39.es/source-map/#section-object\n // Therefore the last section that has an offset less than or equal to the frame is the applicable one.\n const sections = payload.sections;\n let left = 0;\n let right = sections.length - 1;\n let result = null;\n while(left <= right){\n // fast Math.floor\n const middle = ~~((left + right) / 2);\n const section = sections[middle];\n const offset = section.offset;\n if (offset.line < line0 || offset.line === line0 && offset.column <= column0) {\n result = section;\n left = middle + 1;\n } else {\n right = middle - 1;\n }\n }\n return result === null ? undefined : result.map;\n } else {\n return payload;\n }\n}\nconst didWarnAboutInvalidSourceMapDEV = new Set();\nconst findSourceMap = true && ((_process_versions_node = process.versions.node) == null ? void 0 : _process_versions_node.startsWith('18')) ? noSourceMap : nativeFindSourceMap;\nfunction filterStackFrameDEV(sourceURL, functionName, line1, column1) {\n if (sourceURL === '') {\n // The default implementation filters out <anonymous> stack frames\n // but we want to retain them because current Server Components and\n // built-in Components in parent stacks don't have source location.\n // Filter out frames that show up in Promises to get good names in React's\n // Server Request track until we come up with a better heuristic.\n return functionName !== 'new Promise';\n }\n if (sourceURL.startsWith('node:') || sourceURL.includes('node_modules')) {\n return false;\n }\n try {\n // Node.js loads source maps eagerly so this call is cheap.\n // TODO: ESM sourcemaps are O(1) but CommonJS sourcemaps are O(Number of CJS modules).\n // Make sure this doesn't adversely affect performance when CJS is used by Next.js.\n const sourceMap = findSourceMap(sourceURL);\n if (sourceMap === undefined) {\n // No source map assoicated.\n // TODO: Node.js types should reflect that `findSourceMap` can return `undefined`.\n return true;\n }\n const sourceMapPayload = findApplicableSourceMapPayload(line1 - 1, column1 - 1, sourceMap.payload);\n if (sourceMapPayload === undefined) {\n // No source map section applicable to the frame.\n return true;\n }\n return !sourceMapIgnoreListsEverything(sourceMapPayload);\n } catch (cause) {\n if (true) {\n // TODO: Share cache with patch-error-inspect\n if (!didWarnAboutInvalidSourceMapDEV.has(sourceURL)) {\n didWarnAboutInvalidSourceMapDEV.add(sourceURL);\n // We should not log an actual error instance here because that will re-enter\n // this codepath during error inspection and could lead to infinite recursion.\n console.error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to filter stack frames. Cause: ${cause}`);\n }\n }\n return true;\n }\n}\nconst invalidSourceMap = Symbol('invalid-source-map');\nconst sourceMapURLs = new _lrucache.LRUCache(512 * 1024 * 1024, (url)=>url === invalidSourceMap ? // so that we don't create a huge cache with empty source maps.\n 8 * 1024 : url.length);\nfunction findSourceMapURLDEV(scriptNameOrSourceURL) {\n let sourceMapURL = sourceMapURLs.get(scriptNameOrSourceURL);\n if (sourceMapURL === undefined) {\n let sourceMapPayload;\n try {\n var _findSourceMap;\n sourceMapPayload = (_findSourceMap = findSourceMap(scriptNameOrSourceURL)) == null ? void 0 : _findSourceMap.payload;\n } catch (cause) {\n console.error(`${scriptNameOrSourceURL}: Invalid source map. Only conformant source maps can be used to find the original code. Cause: ${cause}`);\n }\n if (sourceMapPayload === undefined) {\n sourceMapURL = invalidSourceMap;\n } else {\n // TODO: Might be more efficient to extract the relevant section from Index Maps.\n // Unclear if that search is worth the smaller payload we have to stringify.\n const sourceMapJSON = JSON.stringify(sourceMapPayload);\n const sourceMapURLData = Buffer.from(sourceMapJSON, 'utf8').toString('base64');\n sourceMapURL = `data:application/json;base64,${sourceMapURLData}`;\n }\n sourceMapURLs.set(scriptNameOrSourceURL, sourceMapURL);\n }\n return sourceMapURL === invalidSourceMap ? null : sourceMapURL;\n}\nfunction devirtualizeReactServerURL(sourceURL) {\n if (sourceURL.startsWith('about://React/')) {\n // about://React/Server/file://<filename>?42 => file://<filename>\n const envIdx = sourceURL.indexOf('/', 'about://React/'.length);\n const suffixIdx = sourceURL.lastIndexOf('?');\n if (envIdx > -1 && suffixIdx > -1) {\n return decodeURI(sourceURL.slice(envIdx + 1, suffixIdx));\n }\n }\n return sourceURL;\n}\nfunction isAnonymousFrameLikelyJSNative(methodName) {\n // Anonymous frames can also be produced in React parent stacks either from\n // host components or Server Components. We don't want to ignore those.\n // This could hide user-space methods that are named like native JS methods but\n // should you really do that?\n return(// e.g. JSON.parse\n methodName.startsWith('JSON.') || // E.g. Promise.withResolves\n methodName.startsWith('Function.') || // various JS built-ins\n methodName.startsWith('Promise.') || methodName.startsWith('Array.') || methodName.startsWith('Set.') || methodName.startsWith('Map.'));\n}\nfunction ignoreListAnonymousStackFramesIfSandwiched(frames, isAnonymousFrame, isIgnoredFrame, getMethodName, /** only passes frames for which `isAnonymousFrame` and their method is a native JS method or `isIgnoredFrame` return true */ ignoreFrame) {\n for(let i = 1; i < frames.length; i++){\n const currentFrame = frames[i];\n if (!(isAnonymousFrame(currentFrame) && isAnonymousFrameLikelyJSNative(getMethodName(currentFrame)))) {\n continue;\n }\n const previousFrameIsIgnored = isIgnoredFrame(frames[i - 1]);\n if (previousFrameIsIgnored && i < frames.length - 1) {\n let ignoreSandwich = false;\n let j = i + 1;\n for(j; j < frames.length; j++){\n const nextFrame = frames[j];\n const nextFrameIsAnonymous = isAnonymousFrame(nextFrame) && isAnonymousFrameLikelyJSNative(getMethodName(nextFrame));\n if (nextFrameIsAnonymous) {\n continue;\n }\n const nextFrameIsIgnored = isIgnoredFrame(nextFrame);\n if (nextFrameIsIgnored) {\n ignoreSandwich = true;\n break;\n }\n }\n if (ignoreSandwich) {\n for(i; i < j; i++){\n ignoreFrame(frames[i]);\n }\n }\n }\n }\n}\n\n//# sourceMappingURL=source-maps.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc291cmNlLW1hcHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBT0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0IsbUJBQU8sQ0FBQywyRUFBYTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLE1BQW1DLEdBQUcsQ0FBVyxHQUFHLDJEQUErQjtBQUMvRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixLQUFxQztBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsVUFBVSwrRkFBK0YsTUFBTTtBQUNoSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsNkJBQTZCLHNCQUFzQixrR0FBa0csTUFBTTtBQUMzSjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsU0FBUyxpQkFBaUI7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsT0FBTztBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3NvdXJjZS1tYXBzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZGV2aXJ0dWFsaXplUmVhY3RTZXJ2ZXJVUkw6IG51bGwsXG4gICAgZmlsdGVyU3RhY2tGcmFtZURFVjogbnVsbCxcbiAgICBmaW5kQXBwbGljYWJsZVNvdXJjZU1hcFBheWxvYWQ6IG51bGwsXG4gICAgZmluZFNvdXJjZU1hcFVSTERFVjogbnVsbCxcbiAgICBpZ25vcmVMaXN0QW5vbnltb3VzU3RhY2tGcmFtZXNJZlNhbmR3aWNoZWQ6IG51bGwsXG4gICAgc291cmNlTWFwSWdub3JlTGlzdHNFdmVyeXRoaW5nOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGRldmlydHVhbGl6ZVJlYWN0U2VydmVyVVJMOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRldmlydHVhbGl6ZVJlYWN0U2VydmVyVVJMO1xuICAgIH0sXG4gICAgZmlsdGVyU3RhY2tGcmFtZURFVjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJTdGFja0ZyYW1lREVWO1xuICAgIH0sXG4gICAgZmluZEFwcGxpY2FibGVTb3VyY2VNYXBQYXlsb2FkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZpbmRBcHBsaWNhYmxlU291cmNlTWFwUGF5bG9hZDtcbiAgICB9LFxuICAgIGZpbmRTb3VyY2VNYXBVUkxERVY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZmluZFNvdXJjZU1hcFVSTERFVjtcbiAgICB9LFxuICAgIGlnbm9yZUxpc3RBbm9ueW1vdXNTdGFja0ZyYW1lc0lmU2FuZHdpY2hlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpZ25vcmVMaXN0QW5vbnltb3VzU3RhY2tGcmFtZXNJZlNhbmR3aWNoZWQ7XG4gICAgfSxcbiAgICBzb3VyY2VNYXBJZ25vcmVMaXN0c0V2ZXJ5dGhpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc291cmNlTWFwSWdub3JlTGlzdHNFdmVyeXRoaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX2xydWNhY2hlID0gcmVxdWlyZShcIi4vbHJ1LWNhY2hlXCIpO1xudmFyIF9wcm9jZXNzX3ZlcnNpb25zX25vZGU7XG5mdW5jdGlvbiBub1NvdXJjZU1hcCgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuLy8gRWRnZSBydW50aW1lIGRvZXMgbm90IGltcGxlbWVudCBgbW9kdWxlYFxuY29uc3QgbmF0aXZlRmluZFNvdXJjZU1hcCA9IHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnID8gbm9Tb3VyY2VNYXAgOiByZXF1aXJlKCdtb2R1bGUnKS5maW5kU291cmNlTWFwO1xuZnVuY3Rpb24gc291cmNlTWFwSWdub3JlTGlzdHNFdmVyeXRoaW5nKHNvdXJjZU1hcCkge1xuICAgIHJldHVybiBzb3VyY2VNYXAuaWdub3JlTGlzdCAhPT0gdW5kZWZpbmVkICYmIHNvdXJjZU1hcC5zb3VyY2VzLmxlbmd0aCA9PT0gc291cmNlTWFwLmlnbm9yZUxpc3QubGVuZ3RoO1xufVxuZnVuY3Rpb24gZmluZEFwcGxpY2FibGVTb3VyY2VNYXBQYXlsb2FkKGxpbmUwLCBjb2x1bW4wLCBwYXlsb2FkKSB7XG4gICAgaWYgKCdzZWN0aW9ucycgaW4gcGF5bG9hZCkge1xuICAgICAgICBpZiAocGF5bG9hZC5zZWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2VjdGlvbnMgbXVzdCBub3Qgb3ZlcmxhcCBhbmQgbXVzdCBiZSBzb3J0ZWQ6IGh0dHBzOi8vdGMzOS5lcy9zb3VyY2UtbWFwLyNzZWN0aW9uLW9iamVjdFxuICAgICAgICAvLyBUaGVyZWZvcmUgdGhlIGxhc3Qgc2VjdGlvbiB0aGF0IGhhcyBhbiBvZmZzZXQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBmcmFtZSBpcyB0aGUgYXBwbGljYWJsZSBvbmUuXG4gICAgICAgIGNvbnN0IHNlY3Rpb25zID0gcGF5bG9hZC5zZWN0aW9ucztcbiAgICAgICAgbGV0IGxlZnQgPSAwO1xuICAgICAgICBsZXQgcmlnaHQgPSBzZWN0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgd2hpbGUobGVmdCA8PSByaWdodCl7XG4gICAgICAgICAgICAvLyBmYXN0IE1hdGguZmxvb3JcbiAgICAgICAgICAgIGNvbnN0IG1pZGRsZSA9IH5+KChsZWZ0ICsgcmlnaHQpIC8gMik7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbnNbbWlkZGxlXTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHNlY3Rpb24ub2Zmc2V0O1xuICAgICAgICAgICAgaWYgKG9mZnNldC5saW5lIDwgbGluZTAgfHwgb2Zmc2V0LmxpbmUgPT09IGxpbmUwICYmIG9mZnNldC5jb2x1bW4gPD0gY29sdW1uMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlY3Rpb247XG4gICAgICAgICAgICAgICAgbGVmdCA9IG1pZGRsZSArIDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkZGxlIC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0ID09PSBudWxsID8gdW5kZWZpbmVkIDogcmVzdWx0Lm1hcDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICB9XG59XG5jb25zdCBkaWRXYXJuQWJvdXRJbnZhbGlkU291cmNlTWFwREVWID0gbmV3IFNldCgpO1xuY29uc3QgZmluZFNvdXJjZU1hcCA9IHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ25vZGVqcycgJiYgKChfcHJvY2Vzc192ZXJzaW9uc19ub2RlID0gcHJvY2Vzcy52ZXJzaW9ucy5ub2RlKSA9PSBudWxsID8gdm9pZCAwIDogX3Byb2Nlc3NfdmVyc2lvbnNfbm9kZS5zdGFydHNXaXRoKCcxOCcpKSA/IG5vU291cmNlTWFwIDogbmF0aXZlRmluZFNvdXJjZU1hcDtcbmZ1bmN0aW9uIGZpbHRlclN0YWNrRnJhbWVERVYoc291cmNlVVJMLCBmdW5jdGlvbk5hbWUsIGxpbmUxLCBjb2x1bW4xKSB7XG4gICAgaWYgKHNvdXJjZVVSTCA9PT0gJycpIHtcbiAgICAgICAgLy8gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZmlsdGVycyBvdXQgPGFub255bW91cz4gc3RhY2sgZnJhbWVzXG4gICAgICAgIC8vIGJ1dCB3ZSB3YW50IHRvIHJldGFpbiB0aGVtIGJlY2F1c2UgY3VycmVudCBTZXJ2ZXIgQ29tcG9uZW50cyBhbmRcbiAgICAgICAgLy8gYnVpbHQtaW4gQ29tcG9uZW50cyBpbiBwYXJlbnQgc3RhY2tzIGRvbid0IGhhdmUgc291cmNlIGxvY2F0aW9uLlxuICAgICAgICAvLyBGaWx0ZXIgb3V0IGZyYW1lcyB0aGF0IHNob3cgdXAgaW4gUHJvbWlzZXMgdG8gZ2V0IGdvb2QgbmFtZXMgaW4gUmVhY3Qnc1xuICAgICAgICAvLyBTZXJ2ZXIgUmVxdWVzdCB0cmFjayB1bnRpbCB3ZSBjb21lIHVwIHdpdGggYSBiZXR0ZXIgaGV1cmlzdGljLlxuICAgICAgICByZXR1cm4gZnVuY3Rpb25OYW1lICE9PSAnbmV3IFByb21pc2UnO1xuICAgIH1cbiAgICBpZiAoc291cmNlVVJMLnN0YXJ0c1dpdGgoJ25vZGU6JykgfHwgc291cmNlVVJMLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIE5vZGUuanMgbG9hZHMgc291cmNlIG1hcHMgZWFnZXJseSBzbyB0aGlzIGNhbGwgaXMgY2hlYXAuXG4gICAgICAgIC8vIFRPRE86IEVTTSBzb3VyY2VtYXBzIGFyZSBPKDEpIGJ1dCBDb21tb25KUyBzb3VyY2VtYXBzIGFyZSBPKE51bWJlciBvZiBDSlMgbW9kdWxlcykuXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGRvZXNuJ3QgYWR2ZXJzZWx5IGFmZmVjdCBwZXJmb3JtYW5jZSB3aGVuIENKUyBpcyB1c2VkIGJ5IE5leHQuanMuXG4gICAgICAgIGNvbnN0IHNvdXJjZU1hcCA9IGZpbmRTb3VyY2VNYXAoc291cmNlVVJMKTtcbiAgICAgICAgaWYgKHNvdXJjZU1hcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBObyBzb3VyY2UgbWFwIGFzc29pY2F0ZWQuXG4gICAgICAgICAgICAvLyBUT0RPOiBOb2RlLmpzIHR5cGVzIHNob3VsZCByZWZsZWN0IHRoYXQgYGZpbmRTb3VyY2VNYXBgIGNhbiByZXR1cm4gYHVuZGVmaW5lZGAuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzb3VyY2VNYXBQYXlsb2FkID0gZmluZEFwcGxpY2FibGVTb3VyY2VNYXBQYXlsb2FkKGxpbmUxIC0gMSwgY29sdW1uMSAtIDEsIHNvdXJjZU1hcC5wYXlsb2FkKTtcbiAgICAgICAgaWYgKHNvdXJjZU1hcFBheWxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gTm8gc291cmNlIG1hcCBzZWN0aW9uIGFwcGxpY2FibGUgdG8gdGhlIGZyYW1lLlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFzb3VyY2VNYXBJZ25vcmVMaXN0c0V2ZXJ5dGhpbmcoc291cmNlTWFwUGF5bG9hZCk7XG4gICAgfSBjYXRjaCAoY2F1c2UpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFNoYXJlIGNhY2hlIHdpdGggcGF0Y2gtZXJyb3ItaW5zcGVjdFxuICAgICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRJbnZhbGlkU291cmNlTWFwREVWLmhhcyhzb3VyY2VVUkwpKSB7XG4gICAgICAgICAgICAgICAgZGlkV2FybkFib3V0SW52YWxpZFNvdXJjZU1hcERFVi5hZGQoc291cmNlVVJMKTtcbiAgICAgICAgICAgICAgICAvLyBXZSBzaG91bGQgbm90IGxvZyBhbiBhY3R1YWwgZXJyb3IgaW5zdGFuY2UgaGVyZSBiZWNhdXNlIHRoYXQgd2lsbCByZS1lbnRlclxuICAgICAgICAgICAgICAgIC8vIHRoaXMgY29kZXBhdGggZHVyaW5nIGVycm9yIGluc3BlY3Rpb24gYW5kIGNvdWxkIGxlYWQgdG8gaW5maW5pdGUgcmVjdXJzaW9uLlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7c291cmNlVVJMfTogSW52YWxpZCBzb3VyY2UgbWFwLiBPbmx5IGNvbmZvcm1hbnQgc291cmNlIG1hcHMgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIHN0YWNrIGZyYW1lcy4gQ2F1c2U6ICR7Y2F1c2V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuY29uc3QgaW52YWxpZFNvdXJjZU1hcCA9IFN5bWJvbCgnaW52YWxpZC1zb3VyY2UtbWFwJyk7XG5jb25zdCBzb3VyY2VNYXBVUkxzID0gbmV3IF9scnVjYWNoZS5MUlVDYWNoZSg1MTIgKiAxMDI0ICogMTAyNCwgKHVybCk9PnVybCA9PT0gaW52YWxpZFNvdXJjZU1hcCA/IC8vIHNvIHRoYXQgd2UgZG9uJ3QgY3JlYXRlIGEgaHVnZSBjYWNoZSB3aXRoIGVtcHR5IHNvdXJjZSBtYXBzLlxuICAgIDggKiAxMDI0IDogdXJsLmxlbmd0aCk7XG5mdW5jdGlvbiBmaW5kU291cmNlTWFwVVJMREVWKHNjcmlwdE5hbWVPclNvdXJjZVVSTCkge1xuICAgIGxldCBzb3VyY2VNYXBVUkwgPSBzb3VyY2VNYXBVUkxzLmdldChzY3JpcHROYW1lT3JTb3VyY2VVUkwpO1xuICAgIGlmIChzb3VyY2VNYXBVUkwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsZXQgc291cmNlTWFwUGF5bG9hZDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciBfZmluZFNvdXJjZU1hcDtcbiAgICAgICAgICAgIHNvdXJjZU1hcFBheWxvYWQgPSAoX2ZpbmRTb3VyY2VNYXAgPSBmaW5kU291cmNlTWFwKHNjcmlwdE5hbWVPclNvdXJjZVVSTCkpID09IG51bGwgPyB2b2lkIDAgOiBfZmluZFNvdXJjZU1hcC5wYXlsb2FkO1xuICAgICAgICB9IGNhdGNoIChjYXVzZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHtzY3JpcHROYW1lT3JTb3VyY2VVUkx9OiBJbnZhbGlkIHNvdXJjZSBtYXAuIE9ubHkgY29uZm9ybWFudCBzb3VyY2UgbWFwcyBjYW4gYmUgdXNlZCB0byBmaW5kIHRoZSBvcmlnaW5hbCBjb2RlLiBDYXVzZTogJHtjYXVzZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc291cmNlTWFwUGF5bG9hZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzb3VyY2VNYXBVUkwgPSBpbnZhbGlkU291cmNlTWFwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVE9ETzogTWlnaHQgYmUgbW9yZSBlZmZpY2llbnQgdG8gZXh0cmFjdCB0aGUgcmVsZXZhbnQgc2VjdGlvbiBmcm9tIEluZGV4IE1hcHMuXG4gICAgICAgICAgICAvLyBVbmNsZWFyIGlmIHRoYXQgc2VhcmNoIGlzIHdvcnRoIHRoZSBzbWFsbGVyIHBheWxvYWQgd2UgaGF2ZSB0byBzdHJpbmdpZnkuXG4gICAgICAgICAgICBjb25zdCBzb3VyY2VNYXBKU09OID0gSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwUGF5bG9hZCk7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2VNYXBVUkxEYXRhID0gQnVmZmVyLmZyb20oc291cmNlTWFwSlNPTiwgJ3V0ZjgnKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgICAgICAgICBzb3VyY2VNYXBVUkwgPSBgZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwke3NvdXJjZU1hcFVSTERhdGF9YDtcbiAgICAgICAgfVxuICAgICAgICBzb3VyY2VNYXBVUkxzLnNldChzY3JpcHROYW1lT3JTb3VyY2VVUkwsIHNvdXJjZU1hcFVSTCk7XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VNYXBVUkwgPT09IGludmFsaWRTb3VyY2VNYXAgPyBudWxsIDogc291cmNlTWFwVVJMO1xufVxuZnVuY3Rpb24gZGV2aXJ0dWFsaXplUmVhY3RTZXJ2ZXJVUkwoc291cmNlVVJMKSB7XG4gICAgaWYgKHNvdXJjZVVSTC5zdGFydHNXaXRoKCdhYm91dDovL1JlYWN0LycpKSB7XG4gICAgICAgIC8vIGFib3V0Oi8vUmVhY3QvU2VydmVyL2ZpbGU6Ly88ZmlsZW5hbWU+PzQyID0+IGZpbGU6Ly88ZmlsZW5hbWU+XG4gICAgICAgIGNvbnN0IGVudklkeCA9IHNvdXJjZVVSTC5pbmRleE9mKCcvJywgJ2Fib3V0Oi8vUmVhY3QvJy5sZW5ndGgpO1xuICAgICAgICBjb25zdCBzdWZmaXhJZHggPSBzb3VyY2VVUkwubGFzdEluZGV4T2YoJz8nKTtcbiAgICAgICAgaWYgKGVudklkeCA+IC0xICYmIHN1ZmZpeElkeCA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJKHNvdXJjZVVSTC5zbGljZShlbnZJZHggKyAxLCBzdWZmaXhJZHgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc291cmNlVVJMO1xufVxuZnVuY3Rpb24gaXNBbm9ueW1vdXNGcmFtZUxpa2VseUpTTmF0aXZlKG1ldGhvZE5hbWUpIHtcbiAgICAvLyBBbm9ueW1vdXMgZnJhbWVzIGNhbiBhbHNvIGJlIHByb2R1Y2VkIGluIFJlYWN0IHBhcmVudCBzdGFja3MgZWl0aGVyIGZyb21cbiAgICAvLyBob3N0IGNvbXBvbmVudHMgb3IgU2VydmVyIENvbXBvbmVudHMuIFdlIGRvbid0IHdhbnQgdG8gaWdub3JlIHRob3NlLlxuICAgIC8vIFRoaXMgY291bGQgaGlkZSB1c2VyLXNwYWNlIG1ldGhvZHMgdGhhdCBhcmUgbmFtZWQgbGlrZSBuYXRpdmUgSlMgbWV0aG9kcyBidXRcbiAgICAvLyBzaG91bGQgeW91IHJlYWxseSBkbyB0aGF0P1xuICAgIHJldHVybigvLyBlLmcuIEpTT04ucGFyc2VcbiAgICBtZXRob2ROYW1lLnN0YXJ0c1dpdGgoJ0pTT04uJykgfHwgLy8gRS5nLiBQcm9taXNlLndpdGhSZXNvbHZlc1xuICAgIG1ldGhvZE5hbWUuc3RhcnRzV2l0aCgnRnVuY3Rpb24uJykgfHwgLy8gdmFyaW91cyBKUyBidWlsdC1pbnNcbiAgICBtZXRob2ROYW1lLnN0YXJ0c1dpdGgoJ1Byb21pc2UuJykgfHwgbWV0aG9kTmFtZS5zdGFydHNXaXRoKCdBcnJheS4nKSB8fCBtZXRob2ROYW1lLnN0YXJ0c1dpdGgoJ1NldC4nKSB8fCBtZXRob2ROYW1lLnN0YXJ0c1dpdGgoJ01hcC4nKSk7XG59XG5mdW5jdGlvbiBpZ25vcmVMaXN0QW5vbnltb3VzU3RhY2tGcmFtZXNJZlNhbmR3aWNoZWQoZnJhbWVzLCBpc0Fub255bW91c0ZyYW1lLCBpc0lnbm9yZWRGcmFtZSwgZ2V0TWV0aG9kTmFtZSwgLyoqIG9ubHkgcGFzc2VzIGZyYW1lcyBmb3Igd2hpY2ggYGlzQW5vbnltb3VzRnJhbWVgIGFuZCB0aGVpciBtZXRob2QgaXMgYSBuYXRpdmUgSlMgbWV0aG9kIG9yIGBpc0lnbm9yZWRGcmFtZWAgcmV0dXJuIHRydWUgKi8gaWdub3JlRnJhbWUpIHtcbiAgICBmb3IobGV0IGkgPSAxOyBpIDwgZnJhbWVzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgY29uc3QgY3VycmVudEZyYW1lID0gZnJhbWVzW2ldO1xuICAgICAgICBpZiAoIShpc0Fub255bW91c0ZyYW1lKGN1cnJlbnRGcmFtZSkgJiYgaXNBbm9ueW1vdXNGcmFtZUxpa2VseUpTTmF0aXZlKGdldE1ldGhvZE5hbWUoY3VycmVudEZyYW1lKSkpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2aW91c0ZyYW1lSXNJZ25vcmVkID0gaXNJZ25vcmVkRnJhbWUoZnJhbWVzW2kgLSAxXSk7XG4gICAgICAgIGlmIChwcmV2aW91c0ZyYW1lSXNJZ25vcmVkICYmIGkgPCBmcmFtZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgbGV0IGlnbm9yZVNhbmR3aWNoID0gZmFsc2U7XG4gICAgICAgICAgICBsZXQgaiA9IGkgKyAxO1xuICAgICAgICAgICAgZm9yKGo7IGogPCBmcmFtZXMubGVuZ3RoOyBqKyspe1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGcmFtZSA9IGZyYW1lc1tqXTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0RnJhbWVJc0Fub255bW91cyA9IGlzQW5vbnltb3VzRnJhbWUobmV4dEZyYW1lKSAmJiBpc0Fub255bW91c0ZyYW1lTGlrZWx5SlNOYXRpdmUoZ2V0TWV0aG9kTmFtZShuZXh0RnJhbWUpKTtcbiAgICAgICAgICAgICAgICBpZiAobmV4dEZyYW1lSXNBbm9ueW1vdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGcmFtZUlzSWdub3JlZCA9IGlzSWdub3JlZEZyYW1lKG5leHRGcmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRGcmFtZUlzSWdub3JlZCkge1xuICAgICAgICAgICAgICAgICAgICBpZ25vcmVTYW5kd2ljaCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpZ25vcmVTYW5kd2ljaCkge1xuICAgICAgICAgICAgICAgIGZvcihpOyBpIDwgajsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgaWdub3JlRnJhbWUoZnJhbWVzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZS1tYXBzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/source-maps.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/streaming-metadata.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/server/lib/streaming-metadata.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isHtmlBotRequest: function() {\n return isHtmlBotRequest;\n },\n shouldServeStreamingMetadata: function() {\n return shouldServeStreamingMetadata;\n }\n});\nconst _isbot = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nfunction shouldServeStreamingMetadata(userAgent, htmlLimitedBots) {\n const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i');\n // Only block metadata for HTML-limited bots\n if (userAgent && blockingMetadataUARegex.test(userAgent)) {\n return false;\n }\n return true;\n}\nfunction isHtmlBotRequest(req) {\n const ua = req.headers['user-agent'] || '';\n const botType = (0, _isbot.getBotType)(ua);\n return botType === 'html';\n}\n\n//# sourceMappingURL=streaming-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc3RyZWFtaW5nLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGVBQWUsbUJBQU8sQ0FBQyw4R0FBc0M7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3N0cmVhbWluZy1tZXRhZGF0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzSHRtbEJvdFJlcXVlc3Q6IG51bGwsXG4gICAgc2hvdWxkU2VydmVTdHJlYW1pbmdNZXRhZGF0YTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0h0bWxCb3RSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzSHRtbEJvdFJlcXVlc3Q7XG4gICAgfSxcbiAgICBzaG91bGRTZXJ2ZVN0cmVhbWluZ01ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNob3VsZFNlcnZlU3RyZWFtaW5nTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfaXNib3QgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90XCIpO1xuZnVuY3Rpb24gc2hvdWxkU2VydmVTdHJlYW1pbmdNZXRhZGF0YSh1c2VyQWdlbnQsIGh0bWxMaW1pdGVkQm90cykge1xuICAgIGNvbnN0IGJsb2NraW5nTWV0YWRhdGFVQVJlZ2V4ID0gbmV3IFJlZ0V4cChodG1sTGltaXRlZEJvdHMgfHwgX2lzYm90LkhUTUxfTElNSVRFRF9CT1RfVUFfUkVfU1RSSU5HLCAnaScpO1xuICAgIC8vIE9ubHkgYmxvY2sgbWV0YWRhdGEgZm9yIEhUTUwtbGltaXRlZCBib3RzXG4gICAgaWYgKHVzZXJBZ2VudCAmJiBibG9ja2luZ01ldGFkYXRhVUFSZWdleC50ZXN0KHVzZXJBZ2VudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGlzSHRtbEJvdFJlcXVlc3QocmVxKSB7XG4gICAgY29uc3QgdWEgPSByZXEuaGVhZGVyc1sndXNlci1hZ2VudCddIHx8ICcnO1xuICAgIGNvbnN0IGJvdFR5cGUgPSAoMCwgX2lzYm90LmdldEJvdFR5cGUpKHVhKTtcbiAgICByZXR1cm4gYm90VHlwZSA9PT0gJ2h0bWwnO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHJlYW1pbmctbWV0YWRhdGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/streaming-metadata.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/trace/constants.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/server/lib/trace/constants.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUE0QztBQUM1Qyw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBZUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzQkFBc0I7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9CQUFvQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGVBQWU7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0M7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWlucyBwcmVkZWZpbmVkIGNvbnN0YW50cyBmb3IgdGhlIHRyYWNlIHNwYW4gbmFtZSBpbiBuZXh0L3NlcnZlci5cbiAqXG4gKiBDdXJyZW50bHksIG5leHQvc2VydmVyL3RyYWNlciBpcyBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvbmx5IGZvciB0cmFja2luZ1xuICogbmV4dC5qcydzIGltcGxlbWVudGF0aW9uIG9ubHkgd2l0aCBrbm93biBzcGFuIG5hbWVzIGRlZmluZWQgaGVyZS5cbiAqKi8gLy8gZXNsaW50IHR5cGVzY3JpcHQgaGFzIGEgYnVnIHdpdGggVFMgZW51bXNcbi8qIGVzbGludC1kaXNhYmxlIG5vLXNoYWRvdyAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFwcFJlbmRlclNwYW46IG51bGwsXG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjogbnVsbCxcbiAgICBCYXNlU2VydmVyU3BhbjogbnVsbCxcbiAgICBMb2FkQ29tcG9uZW50c1NwYW46IG51bGwsXG4gICAgTG9nU3BhbkFsbG93TGlzdDogbnVsbCxcbiAgICBNaWRkbGV3YXJlU3BhbjogbnVsbCxcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW46IG51bGwsXG4gICAgTmV4dFNlcnZlclNwYW46IG51bGwsXG4gICAgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0OiBudWxsLFxuICAgIE5vZGVTcGFuOiBudWxsLFxuICAgIFJlbmRlclNwYW46IG51bGwsXG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbjogbnVsbCxcbiAgICBSb3V0ZXJTcGFuOiBudWxsLFxuICAgIFN0YXJ0U2VydmVyU3BhbjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBSZW5kZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwcFJlbmRlclNwYW47XG4gICAgfSxcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW47XG4gICAgfSxcbiAgICBCYXNlU2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXNlU2VydmVyU3BhbjtcbiAgICB9LFxuICAgIExvYWRDb21wb25lbnRzU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBMb2FkQ29tcG9uZW50c1NwYW47XG4gICAgfSxcbiAgICBMb2dTcGFuQWxsb3dMaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIExvZ1NwYW5BbGxvd0xpc3Q7XG4gICAgfSxcbiAgICBNaWRkbGV3YXJlU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNaWRkbGV3YXJlU3BhbjtcbiAgICB9LFxuICAgIE5leHROb2RlU2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0Tm9kZVNlcnZlclNwYW47XG4gICAgfSxcbiAgICBOZXh0U2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0U2VydmVyU3BhbjtcbiAgICB9LFxuICAgIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q7XG4gICAgfSxcbiAgICBOb2RlU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOb2RlU3BhbjtcbiAgICB9LFxuICAgIFJlbmRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVuZGVyU3BhbjtcbiAgICB9LFxuICAgIFJlc29sdmVNZXRhZGF0YVNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzb2x2ZU1ldGFkYXRhU3BhbjtcbiAgICB9LFxuICAgIFJvdXRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUm91dGVyU3BhbjtcbiAgICB9LFxuICAgIFN0YXJ0U2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTdGFydFNlcnZlclNwYW47XG4gICAgfVxufSk7XG52YXIgQmFzZVNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEJhc2VTZXJ2ZXJTcGFuKSB7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJoYW5kbGVSZXF1ZXN0XCJdID0gXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJ1blwiXSA9IFwiQmFzZVNlcnZlci5ydW5cIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInBpcGVcIl0gPSBcIkJhc2VTZXJ2ZXIucGlwZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wiZ2V0U3RhdGljSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5nZXRTdGF0aWNIVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JUb1Jlc3BvbnNlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJCYXNlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIHJldHVybiBCYXNlU2VydmVyU3Bhbjtcbn0oQmFzZVNlcnZlclNwYW4gfHwge30pO1xudmFyIExvYWRDb21wb25lbnRzU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTG9hZENvbXBvbmVudHNTcGFuKSB7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWREZWZhdWx0RXJyb3JDb21wb25lbnRzXCI7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZENvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWRDb21wb25lbnRzXCI7XG4gICAgcmV0dXJuIExvYWRDb21wb25lbnRzU3Bhbjtcbn0oTG9hZENvbXBvbmVudHNTcGFuIHx8IHt9KTtcbnZhciBOZXh0U2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTmV4dFNlcnZlclNwYW4pIHtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0U2VydmVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiY3JlYXRlU2VydmVyXCJdID0gXCJjcmVhdGVTZXJ2ZXIuY3JlYXRlU2VydmVyXCI7XG4gICAgcmV0dXJuIE5leHRTZXJ2ZXJTcGFuO1xufShOZXh0U2VydmVyU3BhbiB8fCB7fSk7XG52YXIgTmV4dE5vZGVTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOZXh0Tm9kZVNlcnZlclNwYW4pIHtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjb21wcmVzc2lvblwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY29tcHJlc3Npb25cIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRCdWlsZElkXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRCdWlsZElkXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY3JlYXRlQ29tcG9uZW50VHJlZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNsaWVudENvbXBvbmVudExvYWRpbmdcIl0gPSBcIk5leHROb2RlU2VydmVyLmNsaWVudENvbXBvbmVudExvYWRpbmdcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRMYXlvdXRPclBhZ2VNb2R1bGVcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZVN0YXRpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVB1YmxpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUltYWdlUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUltYWdlUm91dGVzLnJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wic2VuZFJlbmRlclJlc3VsdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuc2VuZFJlbmRlclJlc3VsdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInByb3h5UmVxdWVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucHJveHlSZXF1ZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicnVuQXBpXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5ydW5BcGlcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckhUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckhUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbWFnZU9wdGltaXplclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuaW1hZ2VPcHRpbWl6ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRQYWdlUGF0aFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0UGFnZVBhdGhcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRSb3V0ZXNNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Um91dGVzTWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJmaW5kUGFnZUNvbXBvbmVudHNcIl0gPSBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEZvbnRNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Rm9udE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyQ29tcG9uZW50TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInN0YXJ0UmVzcG9uc2VcIl0gPSBcIk5leHROb2RlU2VydmVyLnN0YXJ0UmVzcG9uc2VcIjtcbiAgICAvLyBuZXN0ZWQgaW5uZXIgc3BhbiwgZG9lcyBub3QgcmVxdWlyZSBwYXJlbnQgc2NvcGUgbmFtZVxuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJvdXRlXCJdID0gXCJyb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcIm9uUHJveHlSZXFcIl0gPSBcIm9uUHJveHlSZXFcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJhcGlSZXNvbHZlclwiXSA9IFwiYXBpUmVzb2x2ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbnRlcm5hbEZldGNoXCJdID0gXCJpbnRlcm5hbEZldGNoXCI7XG4gICAgcmV0dXJuIE5leHROb2RlU2VydmVyU3Bhbjtcbn0oTmV4dE5vZGVTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBTdGFydFNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFN0YXJ0U2VydmVyU3Bhbikge1xuICAgIFN0YXJ0U2VydmVyU3BhbltcInN0YXJ0U2VydmVyXCJdID0gXCJzdGFydFNlcnZlci5zdGFydFNlcnZlclwiO1xuICAgIHJldHVybiBTdGFydFNlcnZlclNwYW47XG59KFN0YXJ0U2VydmVyU3BhbiB8fCB7fSk7XG52YXIgUmVuZGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUmVuZGVyU3Bhbikge1xuICAgIFJlbmRlclNwYW5bXCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIjtcbiAgICBSZW5kZXJTcGFuW1wiZ2V0U3RhdGljUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlckRvY3VtZW50XCJdID0gXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIjtcbiAgICBSZW5kZXJTcGFuW1wiY3JlYXRlQm9keVJlc3VsdFwiXSA9IFwiUmVuZGVyLmNyZWF0ZUJvZHlSZXN1bHRcIjtcbiAgICByZXR1cm4gUmVuZGVyU3Bhbjtcbn0oUmVuZGVyU3BhbiB8fCB7fSk7XG52YXIgQXBwUmVuZGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQXBwUmVuZGVyU3Bhbikge1xuICAgIEFwcFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvUmVhZGFibGVTdHJlYW1cIl0gPSBcIkFwcFJlbmRlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImdldEJvZHlSZXN1bHRcIl0gPSBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImZldGNoXCJdID0gXCJBcHBSZW5kZXIuZmV0Y2hcIjtcbiAgICByZXR1cm4gQXBwUmVuZGVyU3Bhbjtcbn0oQXBwUmVuZGVyU3BhbiB8fCB7fSk7XG52YXIgUm91dGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUm91dGVyU3Bhbikge1xuICAgIFJvdXRlclNwYW5bXCJleGVjdXRlUm91dGVcIl0gPSBcIlJvdXRlci5leGVjdXRlUm91dGVcIjtcbiAgICByZXR1cm4gUm91dGVyU3Bhbjtcbn0oUm91dGVyU3BhbiB8fCB7fSk7XG52YXIgTm9kZVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5vZGVTcGFuKSB7XG4gICAgTm9kZVNwYW5bXCJydW5IYW5kbGVyXCJdID0gXCJOb2RlLnJ1bkhhbmRsZXJcIjtcbiAgICByZXR1cm4gTm9kZVNwYW47XG59KE5vZGVTcGFuIHx8IHt9KTtcbnZhciBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuKSB7XG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCI7XG4gICAgcmV0dXJuIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW47XG59KEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gfHwge30pO1xudmFyIFJlc29sdmVNZXRhZGF0YVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJlc29sdmVNZXRhZGF0YVNwYW4pIHtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVNZXRhZGF0YVwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIjtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVWaWV3cG9ydFwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIjtcbiAgICByZXR1cm4gUmVzb2x2ZU1ldGFkYXRhU3Bhbjtcbn0oUmVzb2x2ZU1ldGFkYXRhU3BhbiB8fCB7fSk7XG52YXIgTWlkZGxld2FyZVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE1pZGRsZXdhcmVTcGFuKSB7XG4gICAgTWlkZGxld2FyZVNwYW5bXCJleGVjdXRlXCJdID0gXCJNaWRkbGV3YXJlLmV4ZWN1dGVcIjtcbiAgICByZXR1cm4gTWlkZGxld2FyZVNwYW47XG59KE1pZGRsZXdhcmVTcGFuIHx8IHt9KTtcbmNvbnN0IE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdCA9IFtcbiAgICBcIk1pZGRsZXdhcmUuZXhlY3V0ZVwiLFxuICAgIFwiQmFzZVNlcnZlci5oYW5kbGVSZXF1ZXN0XCIsXG4gICAgXCJSZW5kZXIuZ2V0U2VydmVyU2lkZVByb3BzXCIsXG4gICAgXCJSZW5kZXIuZ2V0U3RhdGljUHJvcHNcIixcbiAgICBcIkFwcFJlbmRlci5mZXRjaFwiLFxuICAgIFwiQXBwUmVuZGVyLmdldEJvZHlSZXN1bHRcIixcbiAgICBcIlJlbmRlci5yZW5kZXJEb2N1bWVudFwiLFxuICAgIFwiTm9kZS5ydW5IYW5kbGVyXCIsXG4gICAgXCJBcHBSb3V0ZVJvdXRlSGFuZGxlcnMucnVuSGFuZGxlclwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIixcbiAgICBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZVZpZXdwb3J0XCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuc3RhcnRSZXNwb25zZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXG5dO1xuY29uc3QgTG9nU3BhbkFsbG93TGlzdCA9IFtcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXG5dO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/server/lib/trace/tracer.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = __webpack_require__(/*! ./constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _isthenable = __webpack_require__(/*! ../../../shared/lib/is-thenable */ \"(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js\");\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (false) {} else {\n try {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n } catch (err) {\n api = __webpack_require__(/*! next/dist/compiled/@opentelemetry/api */ \"(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n span.setAttribute('error.type', error.name);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId');\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer('next.js', '0.0.1');\n }\n getContext() {\n return context;\n }\n getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === 'function' ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if ((0, _isthenable.isThenable)(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== '1') {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG1CQUFtQixtQkFBTyxDQUFDLGlGQUFhO0FBQ3hDLG9CQUFvQixtQkFBTyxDQUFDLGlHQUFpQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRjtBQUNBLGNBQWMsbUJBQU8sQ0FBQywrRkFBb0I7QUFDMUMsTUFBTTtBQUNOLGNBQWMsbUJBQU8sQ0FBQyxrSEFBdUM7QUFDN0Q7QUFDQTtBQUNBLFFBQVEsc0VBQXNFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLHlDQUF5QyxRQUFRLG9GQUFvRjtBQUNwTDtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLHVHQUF1RztBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEVBQThFO0FBQzlFO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBCdWJibGVkRXJyb3I6IG51bGwsXG4gICAgU3BhbktpbmQ6IG51bGwsXG4gICAgU3BhblN0YXR1c0NvZGU6IG51bGwsXG4gICAgZ2V0VHJhY2VyOiBudWxsLFxuICAgIGlzQnViYmxlZEVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEJ1YmJsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCdWJibGVkRXJyb3I7XG4gICAgfSxcbiAgICBTcGFuS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTcGFuS2luZDtcbiAgICB9LFxuICAgIFNwYW5TdGF0dXNDb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNwYW5TdGF0dXNDb2RlO1xuICAgIH0sXG4gICAgZ2V0VHJhY2VyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlcjtcbiAgICB9LFxuICAgIGlzQnViYmxlZEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQnViYmxlZEVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9pc3RoZW5hYmxlID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvaXMtdGhlbmFibGVcIik7XG5sZXQgYXBpO1xuLy8gd2Ugd2FudCB0byBhbGxvdyB1c2VycyB0byB1c2UgdGhlaXIgb3duIHZlcnNpb24gb2YgQG9wZW50ZWxlbWV0cnkvYXBpIGlmIHRoZXlcbi8vIHdhbnQgdG8sIHNvIHdlIHRyeSB0byByZXF1aXJlIGl0IGZpcnN0LCBhbmQgaWYgaXQgZmFpbHMgd2UgZmFsbCBiYWNrIHRvIHRoZVxuLy8gdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzXG4vLyB0aGlzIGlzIGJlY2F1c2UgQG9wZW50ZWxlbWV0cnkvYXBpIGhhcyB0byBiZSBzeW5jZWQgd2l0aCB0aGUgdmVyc2lvbiBvZlxuLy8gQG9wZW50ZWxlbWV0cnkvdHJhY2luZyB0aGF0IGlzIHVzZWQsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGZvcmNlIHVzZXJzIHRvIHVzZVxuLy8gdGhlIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qcy5cbi8vIHRoZSBBUEkgaXMgfnN0YWJsZSwgc28gdGhpcyBzaG91bGQgYmUgZmluZVxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgYXBpID0gcmVxdWlyZSgnQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG59IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoJ0BvcGVudGVsZW1ldHJ5L2FwaScpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhcGkgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG4gICAgfVxufVxuY29uc3QgeyBjb250ZXh0LCBwcm9wYWdhdGlvbiwgdHJhY2UsIFNwYW5TdGF0dXNDb2RlLCBTcGFuS2luZCwgUk9PVF9DT05URVhUIH0gPSBhcGk7XG5jbGFzcyBCdWJibGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoYnViYmxlLCByZXN1bHQpe1xuICAgICAgICBzdXBlcigpLCB0aGlzLmJ1YmJsZSA9IGJ1YmJsZSwgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgfVxufVxuZnVuY3Rpb24gaXNCdWJibGVkRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIEJ1YmJsZWRFcnJvcjtcbn1cbmNvbnN0IGNsb3NlU3BhbldpdGhFcnJvciA9IChzcGFuLCBlcnJvcik9PntcbiAgICBpZiAoaXNCdWJibGVkRXJyb3IoZXJyb3IpICYmIGVycm9yLmJ1YmJsZSkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnbmV4dC5idWJibGUnLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yKTtcbiAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdlcnJvci50eXBlJywgZXJyb3IubmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3Bhbi5lbmQoKTtcbn07XG4vKiogd2UgdXNlIHRoaXMgbWFwIHRvIHByb3BhZ2F0ZSBhdHRyaWJ1dGVzIGZyb20gbmVzdGVkIHNwYW5zIHRvIHRoZSB0b3Agc3BhbiAqLyBjb25zdCByb290U3BhbkF0dHJpYnV0ZXNTdG9yZSA9IG5ldyBNYXAoKTtcbmNvbnN0IHJvb3RTcGFuSWRLZXkgPSBhcGkuY3JlYXRlQ29udGV4dEtleSgnbmV4dC5yb290U3BhbklkJyk7XG5sZXQgbGFzdFNwYW5JZCA9IDA7XG5jb25zdCBnZXRTcGFuSWQgPSAoKT0+bGFzdFNwYW5JZCsrO1xuY29uc3QgY2xpZW50VHJhY2VEYXRhU2V0dGVyID0ge1xuICAgIHNldCAoY2Fycmllciwga2V5LCB2YWx1ZSkge1xuICAgICAgICBjYXJyaWVyLnB1c2goe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNsYXNzIE5leHRUcmFjZXJJbXBsIHtcbiAgICAvKipcbiAgICogUmV0dXJucyBhbiBpbnN0YW5jZSB0byB0aGUgdHJhY2Ugd2l0aCBjb25maWd1cmVkIG5hbWUuXG4gICAqIFNpbmNlIHdyYXAgLyB0cmFjZSBjYW4gYmUgZGVmaW5lZCBpbiBhbnkgcGxhY2UgcHJpb3IgdG8gYWN0dWFsIHRyYWNlIHN1YnNjcmliZXIgaW5pdGlhbGl6YXRpb24sXG4gICAqIFRoaXMgc2hvdWxkIGJlIGxhemlseSBldmFsdWF0ZWQuXG4gICAqLyBnZXRUcmFjZXJJbnN0YW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNlLmdldFRyYWNlcignbmV4dC5qcycsICcwLjAuMScpO1xuICAgIH1cbiAgICBnZXRDb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG4gICAgZ2V0VHJhY2VQcm9wYWdhdGlvbkRhdGEoKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUNvbnRleHQgPSBjb250ZXh0LmFjdGl2ZSgpO1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIHByb3BhZ2F0aW9uLmluamVjdChhY3RpdmVDb250ZXh0LCBlbnRyaWVzLCBjbGllbnRUcmFjZURhdGFTZXR0ZXIpO1xuICAgICAgICByZXR1cm4gZW50cmllcztcbiAgICB9XG4gICAgZ2V0QWN0aXZlU2NvcGVTcGFuKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0U3Bhbihjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LmFjdGl2ZSgpKTtcbiAgICB9XG4gICAgd2l0aFByb3BhZ2F0ZWRDb250ZXh0KGNhcnJpZXIsIGZuLCBnZXR0ZXIpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGlmICh0cmFjZS5nZXRTcGFuQ29udGV4dChhY3RpdmVDb250ZXh0KSkge1xuICAgICAgICAgICAgLy8gQWN0aXZlIHNwYW4gaXMgYWxyZWFkeSBzZXQsIHRvbyBsYXRlIHRvIHByb3BhZ2F0ZS5cbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlbW90ZUNvbnRleHQgPSBwcm9wYWdhdGlvbi5leHRyYWN0KGFjdGl2ZUNvbnRleHQsIGNhcnJpZXIsIGdldHRlcik7XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgocmVtb3RlQ29udGV4dCwgZm4pO1xuICAgIH1cbiAgICB0cmFjZSguLi5hcmdzKSB7XG4gICAgICAgIHZhciBfdHJhY2VfZ2V0U3BhbkNvbnRleHQ7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBmbk9yT3B0aW9ucywgZm5PckVtcHR5XSA9IGFyZ3M7XG4gICAgICAgIC8vIGNvZXJjZSBvcHRpb25zIGZvcm0gb3ZlcmxvYWRcbiAgICAgICAgY29uc3QgeyBmbiwgb3B0aW9ucyB9ID0gdHlwZW9mIGZuT3JPcHRpb25zID09PSAnZnVuY3Rpb24nID8ge1xuICAgICAgICAgICAgZm46IGZuT3JPcHRpb25zLFxuICAgICAgICAgICAgb3B0aW9uczoge31cbiAgICAgICAgfSA6IHtcbiAgICAgICAgICAgIGZuOiBmbk9yRW1wdHksXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgLi4uZm5Pck9wdGlvbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3Bhbk5hbWUgPSBvcHRpb25zLnNwYW5OYW1lID8/IHR5cGU7XG4gICAgICAgIGlmICghX2NvbnN0YW50cy5OZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QuaW5jbHVkZXModHlwZSkgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1ZFUkJPU0UgIT09ICcxJyB8fCBvcHRpb25zLmhpZGVTcGFuKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUcnlpbmcgdG8gZ2V0IGFjdGl2ZSBzY29wZWQgc3BhbiB0byBhc3NpZ24gcGFyZW50LiBJZiBvcHRpb24gc3BlY2lmaWVzIHBhcmVudCBzcGFuIG1hbnVhbGx5LCB3aWxsIHRyeSB0byB1c2UgaXQuXG4gICAgICAgIGxldCBzcGFuQ29udGV4dCA9IHRoaXMuZ2V0U3BhbkNvbnRleHQoKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyZW50U3BhbikgPz8gdGhpcy5nZXRBY3RpdmVTY29wZVNwYW4oKSk7XG4gICAgICAgIGxldCBpc1Jvb3RTcGFuID0gZmFsc2U7XG4gICAgICAgIGlmICghc3BhbkNvbnRleHQpIHtcbiAgICAgICAgICAgIHNwYW5Db250ZXh0ID0gKGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQuYWN0aXZlKCkpID8/IFJPT1RfQ09OVEVYVDtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKChfdHJhY2VfZ2V0U3BhbkNvbnRleHQgPSB0cmFjZS5nZXRTcGFuQ29udGV4dChzcGFuQ29udGV4dCkpID09IG51bGwgPyB2b2lkIDAgOiBfdHJhY2VfZ2V0U3BhbkNvbnRleHQuaXNSZW1vdGUpIHtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGdldFNwYW5JZCgpO1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMgPSB7XG4gICAgICAgICAgICAnbmV4dC5zcGFuX25hbWUnOiBzcGFuTmFtZSxcbiAgICAgICAgICAgICduZXh0LnNwYW5fdHlwZSc6IHR5cGUsXG4gICAgICAgICAgICAuLi5vcHRpb25zLmF0dHJpYnV0ZXNcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQud2l0aChzcGFuQ29udGV4dC5zZXRWYWx1ZShyb290U3BhbklkS2V5LCBzcGFuSWQpLCAoKT0+dGhpcy5nZXRUcmFjZXJJbnN0YW5jZSgpLnN0YXJ0QWN0aXZlU3BhbihzcGFuTmFtZSwgb3B0aW9ucywgKHNwYW4pPT57XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzICYmICdtZWFzdXJlJyBpbiBwZXJmb3JtYW5jZSA/IGdsb2JhbFRoaXMucGVyZm9ybWFuY2Uubm93KCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgb25DbGVhbnVwID0gKCk9PntcbiAgICAgICAgICAgICAgICAgICAgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZGVsZXRlKHNwYW5JZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydFRpbWUgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWCAmJiBfY29uc3RhbnRzLkxvZ1NwYW5BbGxvd0xpc3QuaW5jbHVkZXModHlwZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWH06bmV4dC0keyh0eXBlLnNwbGl0KCcuJykucG9wKCkgfHwgJycpLnJlcGxhY2UoL1tBLVpdL2csIChtYXRjaCk9PictJyArIG1hdGNoLnRvTG93ZXJDYXNlKCkpfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogcGVyZm9ybWFuY2Uubm93KClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoaXNSb290U3Bhbikge1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5zZXQoc3BhbklkLCBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuYXR0cmlidXRlcyA/PyB7fSkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmbihzcGFuLCAoZXJyKT0+Y2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKHNwYW4pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsIF9pc3RoZW5hYmxlLmlzVGhlbmFibGUpKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3MgZXJyb3IgbWFrZSBzdXJlIGl0IHRocm93c1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyZXMpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIHBhc3MgZG93biB0aGUgcHJvbWlzZSByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgY291bGQgYmUgcmVhY3Qgc3RyZWFtIHJlc3BvbnNlIHdpdGggZXJyb3IgeyBlcnJvciwgc3RyZWFtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5maW5hbGx5KG9uQ2xlYW51cCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycik7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cbiAgICB3cmFwKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgdHJhY2VyID0gdGhpcztcbiAgICAgICAgY29uc3QgW25hbWUsIG9wdGlvbnMsIGZuXSA9IGFyZ3MubGVuZ3RoID09PSAzID8gYXJncyA6IFtcbiAgICAgICAgICAgIGFyZ3NbMF0sXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGFyZ3NbMV1cbiAgICAgICAgXTtcbiAgICAgICAgaWYgKCFfY29uc3RhbnRzLk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyhuYW1lKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gJzEnKSB7XG4gICAgICAgICAgICByZXR1cm4gZm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IG9wdGlvbnNPYmogPSBvcHRpb25zO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT2JqID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnNPYmogPSBvcHRpb25zT2JqLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsYXN0QXJnSWQgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGNiID0gYXJndW1lbnRzW2xhc3RBcmdJZF07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNiID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVCb3VuZENiID0gdHJhY2VyLmdldENvbnRleHQoKS5iaW5kKGNvbnRleHQuYWN0aXZlKCksIGNiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhY2VyLnRyYWNlKG5hbWUsIG9wdGlvbnNPYmosIChfc3BhbiwgZG9uZSk9PntcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzW2xhc3RBcmdJZF0gPSBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPT0gbnVsbCA/IHZvaWQgMCA6IGRvbmUoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzY29wZUJvdW5kQ2IuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKCk9PmZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbiAgICBzdGFydFNwYW4oLi4uYXJncykge1xuICAgICAgICBjb25zdCBbdHlwZSwgb3B0aW9uc10gPSBhcmdzO1xuICAgICAgICBjb25zdCBzcGFuQ29udGV4dCA9IHRoaXMuZ2V0U3BhbkNvbnRleHQoKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyZW50U3BhbikgPz8gdGhpcy5nZXRBY3RpdmVTY29wZVNwYW4oKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRTcGFuKHR5cGUsIG9wdGlvbnMsIHNwYW5Db250ZXh0KTtcbiAgICB9XG4gICAgZ2V0U3BhbkNvbnRleHQocGFyZW50U3Bhbikge1xuICAgICAgICBjb25zdCBzcGFuQ29udGV4dCA9IHBhcmVudFNwYW4gPyB0cmFjZS5zZXRTcGFuKGNvbnRleHQuYWN0aXZlKCksIHBhcmVudFNwYW4pIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gc3BhbkNvbnRleHQ7XG4gICAgfVxuICAgIGdldFJvb3RTcGFuQXR0cmlidXRlcygpIHtcbiAgICAgICAgY29uc3Qgc3BhbklkID0gY29udGV4dC5hY3RpdmUoKS5nZXRWYWx1ZShyb290U3BhbklkS2V5KTtcbiAgICAgICAgcmV0dXJuIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmdldChzcGFuSWQpO1xuICAgIH1cbiAgICBzZXRSb290U3BhbkF0dHJpYnV0ZShrZXksIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGNvbnRleHQuYWN0aXZlKCkuZ2V0VmFsdWUocm9vdFNwYW5JZEtleSk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5nZXQoc3BhbklkKTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgZ2V0VHJhY2VyID0gKCgpPT57XG4gICAgY29uc3QgdHJhY2VyID0gbmV3IE5leHRUcmFjZXJJbXBsKCk7XG4gICAgcmV0dXJuICgpPT50cmFjZXI7XG59KSgpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFjZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/pipe-readable.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/pipe-readable.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isAbortError: function() {\n return isAbortError;\n },\n pipeToNodeResponse: function() {\n return pipeToNodeResponse;\n }\n});\nconst _nextrequest = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\");\nconst _detachedpromise = __webpack_require__(/*! ../lib/detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _tracer = __webpack_require__(/*! ./lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ./lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _clientcomponentrendererlogger = __webpack_require__(/*! ./client-component-renderer-logger */ \"(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js\");\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.ResponseAbortedName;\n}\nfunction createWriterFromResponse(res, waitUntilForEnd) {\n let started = false;\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new _detachedpromise.DetachedPromise();\n function onDrain() {\n drained.resolve();\n }\n res.on('drain', onDrain);\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', ()=>{\n res.off('drain', onDrain);\n drained.resolve();\n });\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new _detachedpromise.DetachedPromise();\n res.once('finish', ()=>{\n finished.resolve();\n });\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk)=>{\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true;\n if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\n }\n try {\n const ok = res.write(chunk);\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush();\n }\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise;\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new _detachedpromise.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw Object.defineProperty(new Error('failed to write chunk to response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E321\",\n enumerable: false,\n configurable: true\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nasync function pipeToNodeResponse(readable, res, waitUntilForEnd) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = (0, _nextrequest.createAbortController)(res);\n const writer = createWriterFromResponse(res, waitUntilForEnd);\n await readable.pipeTo(writer, {\n signal: controller.signal\n });\n } catch (err) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return;\n throw Object.defineProperty(new Error('failed to pipe response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E180\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9waXBlLXJlYWRhYmxlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLHFJQUE0QztBQUN6RSx5QkFBeUIsbUJBQU8sQ0FBQyx1RkFBeUI7QUFDMUQsZ0JBQWdCLG1CQUFPLENBQUMscUZBQW9CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLDJGQUF1QjtBQUNsRCx1Q0FBdUMsbUJBQU8sQ0FBQyxxSEFBb0M7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUNBQXlDO0FBQ3hGO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUJBQXFCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9waXBlLXJlYWRhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNBYm9ydEVycm9yOiBudWxsLFxuICAgIHBpcGVUb05vZGVSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0Fib3J0RXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNBYm9ydEVycm9yO1xuICAgIH0sXG4gICAgcGlwZVRvTm9kZVJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBpcGVUb05vZGVSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9uZXh0cmVxdWVzdCA9IHJlcXVpcmUoXCIuL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3RcIik7XG5jb25zdCBfZGV0YWNoZWRwcm9taXNlID0gcmVxdWlyZShcIi4uL2xpYi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4vbGliL3RyYWNlL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9jbGllbnRjb21wb25lbnRyZW5kZXJlcmxvZ2dlciA9IHJlcXVpcmUoXCIuL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyXCIpO1xuZnVuY3Rpb24gaXNBYm9ydEVycm9yKGUpIHtcbiAgICByZXR1cm4gKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUubmFtZSkgPT09ICdBYm9ydEVycm9yJyB8fCAoZSA9PSBudWxsID8gdm9pZCAwIDogZS5uYW1lKSA9PT0gX25leHRyZXF1ZXN0LlJlc3BvbnNlQWJvcnRlZE5hbWU7XG59XG5mdW5jdGlvbiBjcmVhdGVXcml0ZXJGcm9tUmVzcG9uc2UocmVzLCB3YWl0VW50aWxGb3JFbmQpIHtcbiAgICBsZXQgc3RhcnRlZCA9IGZhbHNlO1xuICAgIC8vIENyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgcmVzcG9uc2UgaGFzIGRyYWluZWQuIFNlZVxuICAgIC8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvc3RyZWFtLmh0bWwjc3RyZWFtX2V2ZW50X2RyYWluXG4gICAgbGV0IGRyYWluZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICBmdW5jdGlvbiBvbkRyYWluKCkge1xuICAgICAgICBkcmFpbmVkLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmVzLm9uKCdkcmFpbicsIG9uRHJhaW4pO1xuICAgIC8vIElmIHRoZSBmaW5pc2ggZXZlbnQgZmlyZXMsIGl0IG1lYW5zIHdlIHNob3VsZG4ndCBibG9jayBhbmQgd2FpdCBmb3IgdGhlXG4gICAgLy8gZHJhaW4gZXZlbnQuXG4gICAgcmVzLm9uY2UoJ2Nsb3NlJywgKCk9PntcbiAgICAgICAgcmVzLm9mZignZHJhaW4nLCBvbkRyYWluKTtcbiAgICAgICAgZHJhaW5lZC5yZXNvbHZlKCk7XG4gICAgfSk7XG4gICAgLy8gQ3JlYXRlIGEgcHJvbWlzZSB0aGF0IHdpbGwgcmVzb2x2ZSBvbmNlIHRoZSByZXNwb25zZSBoYXMgZmluaXNoZWQuIFNlZVxuICAgIC8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvaHR0cC5odG1sI2V2ZW50LWZpbmlzaF8xXG4gICAgY29uc3QgZmluaXNoZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICByZXMub25jZSgnZmluaXNoJywgKCk9PntcbiAgICAgICAgZmluaXNoZWQucmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIC8vIENyZWF0ZSBhIHdyaXRhYmxlIHN0cmVhbSB0aGF0IHdpbGwgd3JpdGUgdG8gdGhlIHJlc3BvbnNlLlxuICAgIHJldHVybiBuZXcgV3JpdGFibGVTdHJlYW0oe1xuICAgICAgICB3cml0ZTogYXN5bmMgKGNodW5rKT0+e1xuICAgICAgICAgICAgLy8gWW91J2QgdGhpbmsgd2UnZCB3YW50IHRvIHVzZSBgc3RhcnRgIGluc3RlYWQgb2YgcGxhY2luZyB0aGlzIGluIGB3cml0ZWBcbiAgICAgICAgICAgIC8vIGJ1dCB0aGlzIGVuc3VyZXMgdGhhdCB3ZSBkb24ndCBhY3R1YWxseSBmbHVzaCB0aGUgaGVhZGVycyB1bnRpbCB3ZSd2ZVxuICAgICAgICAgICAgLy8gc3RhcnRlZCB3cml0aW5nIGNodW5rcy5cbiAgICAgICAgICAgIGlmICghc3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICgncGVyZm9ybWFuY2UnIGluIGdsb2JhbFRoaXMgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRyaWNzID0gKDAsIF9jbGllbnRjb21wb25lbnRyZW5kZXJlcmxvZ2dlci5nZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzKSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWV0cmljcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZShgJHtwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYfTpuZXh0LWNsaWVudC1jb21wb25lbnQtbG9hZGluZ2AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogbWV0cmljcy5jbGllbnRDb21wb25lbnRMb2FkU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBtZXRyaWNzLmNsaWVudENvbXBvbmVudExvYWRTdGFydCArIG1ldHJpY3MuY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXMuZmx1c2hIZWFkZXJzKCk7XG4gICAgICAgICAgICAgICAgKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuTmV4dE5vZGVTZXJ2ZXJTcGFuLnN0YXJ0UmVzcG9uc2UsIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbk5hbWU6ICdzdGFydCByZXNwb25zZSdcbiAgICAgICAgICAgICAgICB9LCAoKT0+dW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2sgPSByZXMud3JpdGUoY2h1bmspO1xuICAgICAgICAgICAgICAgIC8vIEFkZGVkIGJ5IHRoZSBgY29tcHJlc3Npb25gIG1pZGRsZXdhcmUsIHRoaXMgaXMgYSBmdW5jdGlvbiB0aGF0IHdpbGxcbiAgICAgICAgICAgICAgICAvLyBmbHVzaCB0aGUgcGFydGlhbGx5LWNvbXByZXNzZWQgcmVzcG9uc2UgdG8gdGhlIGNsaWVudC5cbiAgICAgICAgICAgICAgICBpZiAoJ2ZsdXNoJyBpbiByZXMgJiYgdHlwZW9mIHJlcy5mbHVzaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICByZXMuZmx1c2goKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHdyaXRlIHJldHVybnMgZmFsc2UsIGl0IG1lYW5zIHRoZXJlJ3Mgc29tZSBiYWNrcHJlc3N1cmUsIHNvXG4gICAgICAgICAgICAgICAgLy8gd2FpdCB1bnRpbCBpdCdzIHN0cmVhbWVkIGJlZm9yZSBjb250aW51aW5nLlxuICAgICAgICAgICAgICAgIGlmICghb2spIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZHJhaW5lZC5wcm9taXNlO1xuICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgZHJhaW5lZCBwcm9taXNlIHNvIHRoYXQgd2UgY2FuIHdhaXQgZm9yIHRoZSBuZXh0IGRyYWluIGV2ZW50LlxuICAgICAgICAgICAgICAgICAgICBkcmFpbmVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2ZhaWxlZCB0byB3cml0ZSBjaHVuayB0byByZXNwb25zZScsIHtcbiAgICAgICAgICAgICAgICAgICAgY2F1c2U6IGVyclxuICAgICAgICAgICAgICAgIH0pLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTMyMVwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFib3J0OiAoZXJyKT0+e1xuICAgICAgICAgICAgaWYgKHJlcy53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICByZXMuZGVzdHJveShlcnIpO1xuICAgICAgICB9LFxuICAgICAgICBjbG9zZTogYXN5bmMgKCk9PntcbiAgICAgICAgICAgIC8vIGlmIGEgd2FpdFVudGlsIHByb21pc2Ugd2FzIHBhc3NlZCwgd2FpdCBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmVcbiAgICAgICAgICAgIC8vIGVuZGluZyB0aGUgcmVzcG9uc2UuXG4gICAgICAgICAgICBpZiAod2FpdFVudGlsRm9yRW5kKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd2FpdFVudGlsRm9yRW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcy53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgICByZXR1cm4gZmluaXNoZWQucHJvbWlzZTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gcGlwZVRvTm9kZVJlc3BvbnNlKHJlYWRhYmxlLCByZXMsIHdhaXRVbnRpbEZvckVuZCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBoYXMgYWxyZWFkeSBlcnJvcmVkLCB0aGVuIGp1c3QgcmV0dXJuIG5vdy5cbiAgICAgICAgY29uc3QgeyBlcnJvcmVkLCBkZXN0cm95ZWQgfSA9IHJlcztcbiAgICAgICAgaWYgKGVycm9yZWQgfHwgZGVzdHJveWVkKSByZXR1cm47XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBBYm9ydENvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gYWJvcnQgdGhlIHJlYWRhYmxlIGlmIHRoZVxuICAgICAgICAvLyBjbGllbnQgZGlzY29ubmVjdHMuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSAoMCwgX25leHRyZXF1ZXN0LmNyZWF0ZUFib3J0Q29udHJvbGxlcikocmVzKTtcbiAgICAgICAgY29uc3Qgd3JpdGVyID0gY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlKHJlcywgd2FpdFVudGlsRm9yRW5kKTtcbiAgICAgICAgYXdhaXQgcmVhZGFibGUucGlwZVRvKHdyaXRlciwge1xuICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbFxuICAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBpc24ndCByZWxhdGVkIHRvIGFuIGFib3J0IGVycm9yLCByZS10aHJvdyBpdC5cbiAgICAgICAgaWYgKGlzQWJvcnRFcnJvcihlcnIpKSByZXR1cm47XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2ZhaWxlZCB0byBwaXBlIHJlc3BvbnNlJywge1xuICAgICAgICAgICAgY2F1c2U6IGVyclxuICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFMTgwXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBpcGUtcmVhZGFibGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/pipe-readable.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/render-result.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/render-result.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderResult;\n }\n}));\nconst _nodewebstreamshelper = __webpack_require__(/*! ./stream-utils/node-web-streams-helper */ \"(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _invarianterror = __webpack_require__(/*! ../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nclass RenderResult {\n static #_ = /**\n * A render result that represents an empty response. This is used to\n * represent a response that was not found or was already sent.\n */ this.EMPTY = new RenderResult(null, {\n metadata: {},\n contentType: null\n });\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @param contentType the content type of the response\n * @returns a new RenderResult instance\n */ static fromStatic(value, contentType) {\n return new RenderResult(value, {\n metadata: {},\n contentType\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== 'string';\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n // If the response is null, return an empty string. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return '';\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new _invarianterror.InvariantError('dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E732\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns a readable stream of the response.\n */ get readable() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n if (typeof this.response === 'string') {\n return (0, _nodewebstreamshelper.streamFromString)(this.response);\n }\n if (Buffer.isBuffer(this.response)) {\n return (0, _nodewebstreamshelper.streamFromBuffer)(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0, _nodewebstreamshelper.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Coerces the response to an array of streams. This will convert the response\n * to an array of streams if it is not already one.\n *\n * @returns An array of streams\n */ coerce() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return [];\n }\n if (typeof this.response === 'string') {\n return [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n return this.response;\n } else if (Buffer.isBuffer(this.response)) {\n return [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n return [\n this.response\n ];\n }\n }\n /**\n * Unshifts a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the start of the array. When this response is piped, all of the streams\n * will be piped one after the other.\n *\n * @param readable The new stream to unshift\n */ unshift(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the start of the array.\n this.response.unshift(readable);\n }\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ push(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the end of the array.\n this.response.push(readable);\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if ((0, _pipereadable.isAbortError)(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err);\n return;\n }\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err;\n }\n }\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */ async pipeToNodeResponse(res) {\n await (0, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n}\n\n//# sourceMappingURL=render-result.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOEJBQThCLG1CQUFPLENBQUMsNkhBQXdDO0FBQzlFLHNCQUFzQixtQkFBTyxDQUFDLCtFQUFpQjtBQUMvQyx3QkFBd0IsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0EsU0FBUztBQUNUO0FBQ0EsNEJBQTRCLGtDQUFrQztBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVuZGVyUmVzdWx0O1xuICAgIH1cbn0pO1xuY29uc3QgX25vZGV3ZWJzdHJlYW1zaGVscGVyID0gcmVxdWlyZShcIi4vc3RyZWFtLXV0aWxzL25vZGUtd2ViLXN0cmVhbXMtaGVscGVyXCIpO1xuY29uc3QgX3BpcGVyZWFkYWJsZSA9IHJlcXVpcmUoXCIuL3BpcGUtcmVhZGFibGVcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jbGFzcyBSZW5kZXJSZXN1bHQge1xuICAgIHN0YXRpYyAjXyA9IC8qKlxuICAgKiBBIHJlbmRlciByZXN1bHQgdGhhdCByZXByZXNlbnRzIGFuIGVtcHR5IHJlc3BvbnNlLiBUaGlzIGlzIHVzZWQgdG9cbiAgICogcmVwcmVzZW50IGEgcmVzcG9uc2UgdGhhdCB3YXMgbm90IGZvdW5kIG9yIHdhcyBhbHJlYWR5IHNlbnQuXG4gICAqLyB0aGlzLkVNUFRZID0gbmV3IFJlbmRlclJlc3VsdChudWxsLCB7XG4gICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgY29udGVudFR5cGU6IG51bGxcbiAgICB9KTtcbiAgICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZW5kZXJSZXN1bHQgaW5zdGFuY2UgZnJvbSBhIHN0YXRpYyByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBzdGF0aWMgcmVzcG9uc2UgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRlbnRUeXBlIHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIHJlc3BvbnNlXG4gICAqIEByZXR1cm5zIGEgbmV3IFJlbmRlclJlc3VsdCBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb21TdGF0aWModmFsdWUsIGNvbnRlbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVuZGVyUmVzdWx0KHZhbHVlLCB7XG4gICAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgICAgICBjb250ZW50VHlwZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocmVzcG9uc2UsIHsgY29udGVudFR5cGUsIHdhaXRVbnRpbCwgbWV0YWRhdGEgfSl7XG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgICAgIHRoaXMud2FpdFVudGlsID0gd2FpdFVudGlsO1xuICAgIH1cbiAgICBhc3NpZ25NZXRhZGF0YShtZXRhZGF0YSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWV0YWRhdGEsIG1ldGFkYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVzcG9uc2UgaXMgbnVsbC4gSXQgY2FuIGJlIG51bGwgaWYgdGhlIHJlc3BvbnNlIHdhc1xuICAgKiBub3QgZm91bmQgb3Igd2FzIGFscmVhZHkgc2VudC5cbiAgICovIGdldCBpc051bGwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlID09PSBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgcmVzcG9uc2UgaXMgYSBzdHJpbmcuIEl0IGNhbiBiZSBhIHN0cmluZyBpZiB0aGUgcGFnZVxuICAgKiB3YXMgcHJlcmVuZGVyZWQuIElmIGl0J3Mgbm90LCB0aGVuIGl0IHdhcyBnZW5lcmF0ZWQgZHluYW1pY2FsbHkuXG4gICAqLyBnZXQgaXNEeW5hbWljKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMucmVzcG9uc2UgIT09ICdzdHJpbmcnO1xuICAgIH1cbiAgICB0b1VuY2h1bmtlZFN0cmluZyhzdHJlYW0gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuIFRoaXMgYmVoYXZpb3IgaXNcbiAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICghc3RyZWFtKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2R5bmFtaWMgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTczMlwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Ub1N0cmluZykodGhpcy5yZWFkYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuICAgIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVhZGFibGUgc3RyZWFtIG9mIHRoZSByZXNwb25zZS5cbiAgICovIGdldCByZWFkYWJsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBudWxsLCByZXR1cm4gYW4gZW1wdHkgc3RyZWFtLiBUaGlzIGJlaGF2aW9yIGlzXG4gICAgICAgICAgICAvLyBpbnRlbnRpb25hbCBhcyB3ZSdyZSBub3cgcHJvdmlkaW5nIHRoZSBgUmVuZGVyUmVzdWx0LkVNUFRZYCB2YWx1ZS5cbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICAgICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tU3RyaW5nKSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYW4gYXJyYXkgb2Ygc3RyZWFtcywgdGhlbiBjaGFpbiB0aGVtIHRvZ2V0aGVyLlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuY2hhaW5TdHJlYW1zKSguLi50aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENvZXJjZXMgdGhlIHJlc3BvbnNlIHRvIGFuIGFycmF5IG9mIHN0cmVhbXMuIFRoaXMgd2lsbCBjb252ZXJ0IHRoZSByZXNwb25zZVxuICAgKiB0byBhbiBhcnJheSBvZiBzdHJlYW1zIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9uZS5cbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2Ygc3RyZWFtc1xuICAgKi8gY29lcmNlKCkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBzdHJlYW0uIFRoaXMgYmVoYXZpb3IgaXNcbiAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tU3RyaW5nKSh0aGlzLnJlc3BvbnNlKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKSh0aGlzLnJlc3BvbnNlKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogVW5zaGlmdHMgYSBuZXcgc3RyZWFtIHRvIHRoZSByZXNwb25zZS4gVGhpcyB3aWxsIGNvbnZlcnQgdGhlIHJlc3BvbnNlIHRvIGFuXG4gICAqIGFycmF5IG9mIHN0cmVhbXMgaWYgaXQgaXMgbm90IGFscmVhZHkgb25lIGFuZCB3aWxsIGFkZCB0aGUgbmV3IHN0cmVhbSB0b1xuICAgKiB0aGUgc3RhcnQgb2YgdGhlIGFycmF5LiBXaGVuIHRoaXMgcmVzcG9uc2UgaXMgcGlwZWQsIGFsbCBvZiB0aGUgc3RyZWFtc1xuICAgKiB3aWxsIGJlIHBpcGVkIG9uZSBhZnRlciB0aGUgb3RoZXIuXG4gICAqXG4gICAqIEBwYXJhbSByZWFkYWJsZSBUaGUgbmV3IHN0cmVhbSB0byB1bnNoaWZ0XG4gICAqLyB1bnNoaWZ0KHJlYWRhYmxlKSB7XG4gICAgICAgIC8vIENvZXJjZSB0aGUgcmVzcG9uc2UgdG8gYW4gYXJyYXkgb2Ygc3RyZWFtcy5cbiAgICAgICAgdGhpcy5yZXNwb25zZSA9IHRoaXMuY29lcmNlKCk7XG4gICAgICAgIC8vIEFkZCB0aGUgbmV3IHN0cmVhbSB0byB0aGUgc3RhcnQgb2YgdGhlIGFycmF5LlxuICAgICAgICB0aGlzLnJlc3BvbnNlLnVuc2hpZnQocmVhZGFibGUpO1xuICAgIH1cbiAgICAvKipcbiAgICogQ2hhaW5zIGEgbmV3IHN0cmVhbSB0byB0aGUgcmVzcG9uc2UuIFRoaXMgd2lsbCBjb252ZXJ0IHRoZSByZXNwb25zZSB0byBhblxuICAgKiBhcnJheSBvZiBzdHJlYW1zIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9uZSBhbmQgd2lsbCBhZGQgdGhlIG5ldyBzdHJlYW0gdG9cbiAgICogdGhlIGVuZC4gV2hlbiB0aGlzIHJlc3BvbnNlIGlzIHBpcGVkLCBhbGwgb2YgdGhlIHN0cmVhbXMgd2lsbCBiZSBwaXBlZFxuICAgKiBvbmUgYWZ0ZXIgdGhlIG90aGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcmVhZGFibGUgVGhlIG5ldyBzdHJlYW0gdG8gY2hhaW5cbiAgICovIHB1c2gocmVhZGFibGUpIHtcbiAgICAgICAgLy8gQ29lcmNlIHRoZSByZXNwb25zZSB0byBhbiBhcnJheSBvZiBzdHJlYW1zLlxuICAgICAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy5jb2VyY2UoKTtcbiAgICAgICAgLy8gQWRkIHRoZSBuZXcgc3RyZWFtIHRvIHRoZSBlbmQgb2YgdGhlIGFycmF5LlxuICAgICAgICB0aGlzLnJlc3BvbnNlLnB1c2gocmVhZGFibGUpO1xuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgd3JpdGFibGUgc3RyZWFtLiBUaGlzIHdpbGwgY2xvc2UvY2FuY2VsIHRoZVxuICAgKiB3cml0YWJsZSBzdHJlYW0gaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuIElmIHRoaXMgZG9lc24ndCB0aHJvdywgdGhlblxuICAgKiB0aGUgd3JpdGFibGUgc3RyZWFtIHdpbGwgYmUgY2xvc2VkIG9yIGFib3J0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB3cml0YWJsZSBXcml0YWJsZSBzdHJlYW0gdG8gcGlwZSB0aGUgcmVzcG9uc2UgdG9cbiAgICovIGFzeW5jIHBpcGVUbyh3cml0YWJsZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWFkYWJsZS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIGNsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0gb3Vyc2VsdmVzIHNvIHRoYXQgd2UgY2FuIHdhaXRcbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHdhaXRVbnRpbCBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGNsb3NpbmcgaXQuIElmIGFuIGVycm9yXG4gICAgICAgICAgICAgICAgLy8gaXMgZW5jb3VudGVyZWQsIHdlJ2xsIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gaWYgd2Ugc3dhbGxvd2VkIHRoZVxuICAgICAgICAgICAgICAgIC8vIGVycm9yLlxuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHdhaXRVbnRpbCBwcm9taXNlLCB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZVxuICAgICAgICAgICAgLy8gY2xvc2luZyB0aGUgd3JpdGFibGUgc3RyZWFtLlxuICAgICAgICAgICAgaWYgKHRoaXMud2FpdFVudGlsKSBhd2FpdCB0aGlzLndhaXRVbnRpbDtcbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0uXG4gICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYW4gYWJvcnQgZXJyb3IsIHdlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIChhcyB3ZVxuICAgICAgICAgICAgLy8gdG9vayBvd25lcnNoaXAgb2YgaXQgd2hlbiB3ZSBzdGFydGVkIHBpcGluZykuIFdlIGRvbid0IG5lZWQgdG8gcmUtdGhyb3dcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGFuZGxlZCB0aGUgZXJyb3IuXG4gICAgICAgICAgICBpZiAoKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKShlcnIpKSB7XG4gICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5hYm9ydChlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBhYm9ydGluZyB0aGUgd3JpdGVyIGhlcmUgYXMgd2hlbiB0aGlzIG1ldGhvZCB0aHJvd3MgaXQncyBub3RcbiAgICAgICAgICAgIC8vIGNsZWFyIGFzIHRvIGhvdyBzbyB0aGUgY2FsbGVyIHNob3VsZCBhc3N1bWUgaXQncyB0aGVpciByZXNwb25zaWJpbGl0eVxuICAgICAgICAgICAgLy8gdG8gY2xlYW4gdXAgdGhlIHdyaXRlci5cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgbm9kZSByZXNwb25zZS4gVGhpcyB3aWxsIGNsb3NlL2NhbmNlbCB0aGUgbm9kZVxuICAgKiByZXNwb25zZSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHJlc1xuICAgKi8gYXN5bmMgcGlwZVRvTm9kZVJlc3BvbnNlKHJlcykge1xuICAgICAgICBhd2FpdCAoMCwgX3BpcGVyZWFkYWJsZS5waXBlVG9Ob2RlUmVzcG9uc2UpKHRoaXMucmVhZGFibGUsIHJlcywgdGhpcy53YWl0VW50aWwpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVuZGVyLXJlc3VsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/render-result.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/request-meta.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/request-meta.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/* eslint-disable no-redeclare */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\nconst NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta');\nfunction getRequestMeta(req, key) {\n const meta = req[NEXT_REQUEST_META] || {};\n return typeof key === 'string' ? meta[key] : meta;\n}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQUEsa0NBQStDO0FBQy9DLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVkZWNsYXJlICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTkVYVF9SRVFVRVNUX01FVEE6IG51bGwsXG4gICAgYWRkUmVxdWVzdE1ldGE6IG51bGwsXG4gICAgZ2V0UmVxdWVzdE1ldGE6IG51bGwsXG4gICAgcmVtb3ZlUmVxdWVzdE1ldGE6IG51bGwsXG4gICAgc2V0UmVxdWVzdE1ldGE6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTkVYVF9SRVFVRVNUX01FVEE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9SRVFVRVNUX01FVEE7XG4gICAgfSxcbiAgICBhZGRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhZGRSZXF1ZXN0TWV0YTtcbiAgICB9LFxuICAgIGdldFJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgcmVtb3ZlUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBzZXRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRSZXF1ZXN0TWV0YTtcbiAgICB9XG59KTtcbmNvbnN0IE5FWFRfUkVRVUVTVF9NRVRBID0gU3ltYm9sLmZvcignTmV4dEludGVybmFsUmVxdWVzdE1ldGEnKTtcbmZ1bmN0aW9uIGdldFJlcXVlc3RNZXRhKHJlcSwga2V5KSB7XG4gICAgY29uc3QgbWV0YSA9IHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gfHwge307XG4gICAgcmV0dXJuIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gbWV0YVtrZXldIDogbWV0YTtcbn1cbmZ1bmN0aW9uIHNldFJlcXVlc3RNZXRhKHJlcSwgbWV0YSkge1xuICAgIHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gPSBtZXRhO1xuICAgIHJldHVybiBtZXRhO1xufVxuZnVuY3Rpb24gYWRkUmVxdWVzdE1ldGEocmVxdWVzdCwga2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRSZXF1ZXN0TWV0YShyZXF1ZXN0KTtcbiAgICBtZXRhW2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5mdW5jdGlvbiByZW1vdmVSZXF1ZXN0TWV0YShyZXF1ZXN0LCBrZXkpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgZGVsZXRlIG1ldGFba2V5XTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtbWV0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request-meta.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/request/connection.js": /*!*************************************************************!*\ !*** ./node_modules/next/dist/server/request/connection.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"connection\", ({\n enumerable: true,\n get: function() {\n return connection;\n }\n}));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nfunction connection() {\n const callingExpression = 'connection';\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore) {\n if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside \"after(...)\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but \"after(...)\" executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`), \"__NEXT_ERROR_CODE\", {\n value: \"E186\",\n enumerable: false,\n configurable: true\n });\n }\n if (workStore.forceStatic) {\n // When using forceStatic, we override all other logic and always just\n // return a resolving promise without tracking.\n return Promise.resolve(undefined);\n }\n if (workStore.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`connection\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E562\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n {\n const error = Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside \"use cache\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E752\",\n enumerable: false,\n configurable: true\n });\n Error.captureStackTrace(error, connection);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n }\n case 'private-cache':\n {\n // It might not be intuitive to throw for private caches as well, but\n // we don't consider runtime prefetches as \"actual requests\" (in the\n // navigation sense), despite allowing them to read cookies.\n const error = Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside \"use cache: private\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E753\",\n enumerable: false,\n configurable: true\n });\n Error.captureStackTrace(error, connection);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n }\n case 'unstable-cache':\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside a function cached with \"unstable_cache(...)\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E1\",\n enumerable: false,\n configurable: true\n });\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n // We return a promise that never resolves to allow the prerender to\n // stall at this point.\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`connection()`');\n case 'prerender-ppr':\n // We use React's postpone API to interrupt rendering here to create a\n // dynamic hole\n return (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'connection', workUnitStore.dynamicTracking);\n case 'prerender-legacy':\n // We throw an error here to interrupt prerendering to mark the route\n // as dynamic\n return (0, _dynamicrendering.throwToInterruptStaticGeneration)('connection', workStore, workUnitStore);\n case 'request':\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(undefined);\n } else {}\n default:\n workUnitStore;\n }\n }\n }\n // If we end up here, there was no work store or work unit store present.\n (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(callingExpression);\n} //# sourceMappingURL=connection.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2Nvbm5lY3Rpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FzQmdCQTs7O2VBQUFBOzs7c0RBdEJpQjswREFJMUI7OENBS0E7cURBQytCO21EQUkvQjttQ0FDeUM7QUFPekMsU0FBU0E7SUFDZCxNQUFNQyxvQkFBb0I7SUFDMUIsTUFBTUMsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBQzNDLE1BQU1DLGdCQUFnQkMsOEJBQUFBLG9CQUFvQixDQUFDRixRQUFRO0lBRW5ELElBQUlGLFdBQVc7UUFDYixJQUNFRyxpQkFDQUEsY0FBY0UsS0FBSyxLQUFLLFdBQ3hCLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLCtCQUFBQSxLQUNEO1lBQ0EsTUFBTSxxQkFFTCxDQUZLLElBQUlDLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQyw2VUFBNlUsQ0FBQyxHQURuVzt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxJQUFJUixVQUFVUyxXQUFXLEVBQUU7WUFDekIsc0VBQXNFO1lBQ3RFLCtDQUErQztZQUMvQyxPQUFPQyxRQUFRQyxPQUFPLENBQUNDO1FBQ3pCO1FBRUEsSUFBSVosVUFBVWEsa0JBQWtCLEVBQUU7WUFDaEMsTUFBTSxxQkFFTCxDQUZLLElBQUlDLHlCQUFBQSxxQkFBcUIsQ0FDN0IsQ0FBQyxNQUFNLEVBQUVkLFVBQVVRLEtBQUssQ0FBQyxvTkFBb04sQ0FBQyxHQUQxTzt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxJQUFJTCxlQUFlO1lBQ2pCLE9BQVFBLGNBQWNZLElBQUk7Z0JBQ3hCLEtBQUs7b0JBQVM7d0JBQ1osTUFBTUMsUUFBUSxxQkFFYixDQUZhLElBQUlULE1BQ2hCLENBQUMsTUFBTSxFQUFFUCxVQUFVUSxLQUFLLENBQUMsa1ZBQWtWLENBQUMsR0FEaFc7bUNBQUE7d0NBQUE7MENBQUE7d0JBRWQ7d0JBQ0FELE1BQU1VLGlCQUFpQixDQUFDRCxPQUFPbEI7d0JBQy9CRSxVQUFVa0Isd0JBQXdCLEtBQUtGO3dCQUN2QyxNQUFNQTtvQkFDUjtnQkFDQSxLQUFLO29CQUFpQjt3QkFDcEIscUVBQXFFO3dCQUNyRSxvRUFBb0U7d0JBQ3BFLDREQUE0RDt3QkFDNUQsTUFBTUEsUUFBUSxxQkFFYixDQUZhLElBQUlULE1BQ2hCLENBQUMsTUFBTSxFQUFFUCxVQUFVUSxLQUFLLENBQUMsaVhBQWlYLENBQUMsR0FEL1g7bUNBQUE7d0NBQUE7MENBQUE7d0JBRWQ7d0JBQ0FELE1BQU1VLGlCQUFpQixDQUFDRCxPQUFPbEI7d0JBQy9CRSxVQUFVa0Isd0JBQXdCLEtBQUtGO3dCQUN2QyxNQUFNQTtvQkFDUjtnQkFDQSxLQUFLO29CQUNILE1BQU0scUJBRUwsQ0FGSyxJQUFJVCxNQUNSLENBQUMsTUFBTSxFQUFFUCxVQUFVUSxLQUFLLENBQUMsMFhBQTBYLENBQUMsR0FEaFo7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0YsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7b0JBQ0gsb0VBQW9FO29CQUNwRSx1QkFBdUI7b0JBQ3ZCLE9BQU9XLENBQUFBLEdBQUFBLHVCQUFBQSxrQkFBQUEsRUFDTGhCLGNBQWNpQixZQUFZLEVBQzFCcEIsVUFBVVEsS0FBSyxFQUNmO2dCQUVKLEtBQUs7b0JBQ0gsc0VBQXNFO29CQUN0RSxlQUFlO29CQUNmLE9BQU9hLENBQUFBLEdBQUFBLGtCQUFBQSxvQkFBQUEsRUFDTHJCLFVBQVVRLEtBQUssRUFDZixjQUNBTCxjQUFjbUIsZUFBZTtnQkFFakMsS0FBSztvQkFDSCxxRUFBcUU7b0JBQ3JFLGFBQWE7b0JBQ2IsT0FBT0MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdDQUFBQSxFQUNMLGNBQ0F2QixXQUNBRztnQkFFSixLQUFLO29CQUNIcUIsQ0FBQUEsR0FBQUEsa0JBQUFBLCtCQUFBQSxFQUFnQ3JCO29CQUNoQyxJQUFJc0IsSUFBb0IsRUFBb0I7d0JBQzFDLHdFQUF3RTt3QkFDeEUsOEVBQThFO3dCQUM5RSw0RUFBNEU7d0JBQzVFLE9BQU9HLENBQUFBLEdBQUFBLHVCQUFBQSwwQkFBQUEsRUFBMkJoQjtvQkFDcEMsT0FBTyxFQUVOO2dCQUNIO29CQUNFVDtZQUNKO1FBQ0Y7SUFDRjtJQUVBLHlFQUF5RTtJQUN6RTBCLENBQUFBLEdBQUFBLDhCQUFBQSwyQkFBQUEsRUFBNEI5QjtBQUM5QiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L2Nvbm5lY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd29ya0FzeW5jU3RvcmFnZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHtcbiAgdGhyb3dGb3JNaXNzaW5nUmVxdWVzdFN0b3JlLFxuICB3b3JrVW5pdEFzeW5jU3RvcmFnZSxcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7XG4gIHBvc3Rwb25lV2l0aFRyYWNraW5nLFxuICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbixcbiAgdHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcixcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZydcbmltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQge1xuICBtYWtlSGFuZ2luZ1Byb21pc2UsXG4gIG1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlLFxufSBmcm9tICcuLi9keW5hbWljLXJlbmRlcmluZy11dGlscydcbmltcG9ydCB7IGlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIgfSBmcm9tICcuL3V0aWxzJ1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBpbmRpY2F0ZSB0aGF0IHlvdSByZXF1aXJlIGFuIGFjdHVhbCB1c2VyIFJlcXVlc3QgYmVmb3JlIGNvbnRpbnVpbmcuXG4gKlxuICogRHVyaW5nIHByZXJlbmRlcmluZyBpdCB3aWxsIG5ldmVyIHJlc29sdmUgYW5kIGR1cmluZyByZW5kZXJpbmcgaXQgcmVzb2x2ZXMgaW1tZWRpYXRlbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25uZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjYWxsaW5nRXhwcmVzc2lvbiA9ICdjb25uZWN0aW9uJ1xuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IHdvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAod29ya1N0b3JlKSB7XG4gICAgaWYgKFxuICAgICAgd29ya1VuaXRTdG9yZSAmJlxuICAgICAgd29ya1VuaXRTdG9yZS5waGFzZSA9PT0gJ2FmdGVyJyAmJlxuICAgICAgIWlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIoKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJjb25uZWN0aW9uXCIgaW5zaWRlIFwiYWZ0ZXIoLi4uKVwiLiBUaGUgXFxgY29ubmVjdGlvbigpXFxgIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHN1YnNlcXVlbnQgY29kZSBtdXN0IG9ubHkgcnVuIHdoZW4gdGhlcmUgaXMgYW4gYWN0dWFsIFJlcXVlc3QsIGJ1dCBcImFmdGVyKC4uLilcIiBleGVjdXRlcyBhZnRlciB0aGUgcmVxdWVzdCwgc28gdGhpcyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2NhbmFyeS9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvYWZ0ZXJgXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYywgd2Ugb3ZlcnJpZGUgYWxsIG90aGVyIGxvZ2ljIGFuZCBhbHdheXMganVzdFxuICAgICAgLy8gcmV0dXJuIGEgcmVzb2x2aW5nIHByb21pc2Ugd2l0aG91dCB0cmFja2luZy5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxuICAgIH1cblxuICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKFxuICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGBjb25uZWN0aW9uXFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgIHN3aXRjaCAod29ya1VuaXRTdG9yZS50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NhY2hlJzoge1xuICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICAgICAgYFJvdXRlICR7d29ya1N0b3JlLnJvdXRlfSB1c2VkIFwiY29ubmVjdGlvblwiIGluc2lkZSBcInVzZSBjYWNoZVwiLiBUaGUgXFxgY29ubmVjdGlvbigpXFxgIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHN1YnNlcXVlbnQgY29kZSBtdXN0IG9ubHkgcnVuIHdoZW4gdGhlcmUgaXMgYW4gYWN0dWFsIHJlcXVlc3QsIGJ1dCBjYWNoZXMgbXVzdCBiZSBhYmxlIHRvIGJlIHByb2R1Y2VkIGJlZm9yZSBhIHJlcXVlc3QsIHNvIHRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBzY29wZS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJlcXVlc3QtaW4tdXNlLWNhY2hlYFxuICAgICAgICAgIClcbiAgICAgICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShlcnJvciwgY29ubmVjdGlvbilcbiAgICAgICAgICB3b3JrU3RvcmUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yID8/PSBlcnJvclxuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6IHtcbiAgICAgICAgICAvLyBJdCBtaWdodCBub3QgYmUgaW50dWl0aXZlIHRvIHRocm93IGZvciBwcml2YXRlIGNhY2hlcyBhcyB3ZWxsLCBidXRcbiAgICAgICAgICAvLyB3ZSBkb24ndCBjb25zaWRlciBydW50aW1lIHByZWZldGNoZXMgYXMgXCJhY3R1YWwgcmVxdWVzdHNcIiAoaW4gdGhlXG4gICAgICAgICAgLy8gbmF2aWdhdGlvbiBzZW5zZSksIGRlc3BpdGUgYWxsb3dpbmcgdGhlbSB0byByZWFkIGNvb2tpZXMuXG4gICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJjb25uZWN0aW9uXCIgaW5zaWRlIFwidXNlIGNhY2hlOiBwcml2YXRlXCIuIFRoZSBcXGBjb25uZWN0aW9uKClcXGAgZnVuY3Rpb24gaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGUgc3Vic2VxdWVudCBjb2RlIG11c3Qgb25seSBydW4gd2hlbiB0aGVyZSBpcyBhbiBhY3R1YWwgbmF2aWdhdGlvbiByZXF1ZXN0LCBidXQgY2FjaGVzIG11c3QgYmUgYWJsZSB0byBiZSBwcm9kdWNlZCBiZWZvcmUgYSBuYXZpZ2F0aW9uIHJlcXVlc3QsIHNvIHRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBzY29wZS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJlcXVlc3QtaW4tdXNlLWNhY2hlYFxuICAgICAgICAgIClcbiAgICAgICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShlcnJvciwgY29ubmVjdGlvbilcbiAgICAgICAgICB3b3JrU3RvcmUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yID8/PSBlcnJvclxuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcImNvbm5lY3Rpb25cIiBpbnNpZGUgYSBmdW5jdGlvbiBjYWNoZWQgd2l0aCBcInVuc3RhYmxlX2NhY2hlKC4uLilcIi4gVGhlIFxcYGNvbm5lY3Rpb24oKVxcYCBmdW5jdGlvbiBpcyB1c2VkIHRvIGluZGljYXRlIHRoZSBzdWJzZXF1ZW50IGNvZGUgbXVzdCBvbmx5IHJ1biB3aGVuIHRoZXJlIGlzIGFuIGFjdHVhbCBSZXF1ZXN0LCBidXQgY2FjaGVzIG11c3QgYmUgYWJsZSB0byBiZSBwcm9kdWNlZCBiZWZvcmUgYSBSZXF1ZXN0IHNvIHRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBzY29wZS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5zdGFibGVfY2FjaGVgXG4gICAgICAgICAgKVxuICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgIC8vIFdlIHJldHVybiBhIHByb21pc2UgdGhhdCBuZXZlciByZXNvbHZlcyB0byBhbGxvdyB0aGUgcHJlcmVuZGVyIHRvXG4gICAgICAgICAgLy8gc3RhbGwgYXQgdGhpcyBwb2ludC5cbiAgICAgICAgICByZXR1cm4gbWFrZUhhbmdpbmdQcm9taXNlKFxuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsXG4gICAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgICAnYGNvbm5lY3Rpb24oKWAnXG4gICAgICAgICAgKVxuICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAvLyBXZSB1c2UgUmVhY3QncyBwb3N0cG9uZSBBUEkgdG8gaW50ZXJydXB0IHJlbmRlcmluZyBoZXJlIHRvIGNyZWF0ZSBhXG4gICAgICAgICAgLy8gZHluYW1pYyBob2xlXG4gICAgICAgICAgcmV0dXJuIHBvc3Rwb25lV2l0aFRyYWNraW5nKFxuICAgICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgICAgJ2Nvbm5lY3Rpb24nLFxuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgICAgICAgICApXG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgIC8vIFdlIHRocm93IGFuIGVycm9yIGhlcmUgdG8gaW50ZXJydXB0IHByZXJlbmRlcmluZyB0byBtYXJrIHRoZSByb3V0ZVxuICAgICAgICAgIC8vIGFzIGR5bmFtaWNcbiAgICAgICAgICByZXR1cm4gdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24oXG4gICAgICAgICAgICAnY29ubmVjdGlvbicsXG4gICAgICAgICAgICB3b3JrU3RvcmUsXG4gICAgICAgICAgICB3b3JrVW5pdFN0b3JlXG4gICAgICAgICAgKVxuICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKHdvcmtVbml0U3RvcmUpXG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSB5b3Ugd291bGQgbmV2ZXIgdXNlIG5leHQgZGV2IHdpdGggcHJvZHVjdGlvbiBOT0RFX0VOViB3ZSB1c2UgdGhpc1xuICAgICAgICAgICAgLy8gYXMgYSBwcm94eSBzbyB3ZSBjYW4gc3RhdGljYWxseSBleGNsdWRlIHRoaXMgY29kZSBmcm9tIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgICAgICAgICAgcmV0dXJuIG1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKHVuZGVmaW5lZClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpXG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHdvcmtVbml0U3RvcmUgc2F0aXNmaWVzIG5ldmVyXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgd2UgZW5kIHVwIGhlcmUsIHRoZXJlIHdhcyBubyB3b3JrIHN0b3JlIG9yIHdvcmsgdW5pdCBzdG9yZSBwcmVzZW50LlxuICB0aHJvd0Zvck1pc3NpbmdSZXF1ZXN0U3RvcmUoY2FsbGluZ0V4cHJlc3Npb24pXG59XG4iXSwibmFtZXMiOlsiY29ubmVjdGlvbiIsImNhbGxpbmdFeHByZXNzaW9uIiwid29ya1N0b3JlIiwid29ya0FzeW5jU3RvcmFnZSIsImdldFN0b3JlIiwid29ya1VuaXRTdG9yZSIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwicGhhc2UiLCJpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyIiwiRXJyb3IiLCJyb3V0ZSIsImZvcmNlU3RhdGljIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ1bmRlZmluZWQiLCJkeW5hbWljU2hvdWxkRXJyb3IiLCJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJ0eXBlIiwiZXJyb3IiLCJjYXB0dXJlU3RhY2tUcmFjZSIsImludmFsaWREeW5hbWljVXNhZ2VFcnJvciIsIm1ha2VIYW5naW5nUHJvbWlzZSIsInJlbmRlclNpZ25hbCIsInBvc3Rwb25lV2l0aFRyYWNraW5nIiwiZHluYW1pY1RyYWNraW5nIiwidGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24iLCJ0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwibWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2UiLCJ0aHJvd0Zvck1pc3NpbmdSZXF1ZXN0U3RvcmUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/connection.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/request/fallback-params.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/server/request/fallback-params.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getFallbackRouteParams\", ({\n enumerable: true,\n get: function() {\n return getFallbackRouteParams;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ../../shared/lib/router/utils/route-matcher */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ../../shared/lib/router/utils/route-regex */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction getParamKeys(page) {\n const pattern = (0, _routeregex.getRouteRegex)(page);\n const matcher = (0, _routematcher.getRouteMatcher)(pattern);\n // Get the default list of allowed params.\n return Object.keys(matcher(page));\n}\nfunction getFallbackRouteParams(pageOrKeys) {\n let keys;\n if (typeof pageOrKeys === 'string') {\n keys = getParamKeys(pageOrKeys);\n } else {\n keys = pageOrKeys;\n }\n // If there are no keys, we can return early.\n if (keys.length === 0) return null;\n const params = new Map();\n // As we're creating unique keys for each of the dynamic route params, we only\n // need to generate a unique ID once per request because each of the keys will\n // be also be unique.\n const uniqueID = Math.random().toString(16).slice(2);\n for (const key of keys){\n params.set(key, `%%drp:${key}:${uniqueID}%%`);\n }\n return params;\n}\n\n//# sourceMappingURL=fallback-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2ZhbGxiYWNrLXBhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDBEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLHNCQUFzQixtQkFBTyxDQUFDLDRIQUE2QztBQUMzRSxvQkFBb0IsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsSUFBSSxHQUFHLFNBQVM7QUFDakQ7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QvZmFsbGJhY2stcGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0RmFsbGJhY2tSb3V0ZVBhcmFtc1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0RmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICB9XG59KTtcbmNvbnN0IF9yb3V0ZW1hdGNoZXIgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlclwiKTtcbmNvbnN0IF9yb3V0ZXJlZ2V4ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4XCIpO1xuZnVuY3Rpb24gZ2V0UGFyYW1LZXlzKHBhZ2UpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gKDAsIF9yb3V0ZXJlZ2V4LmdldFJvdXRlUmVnZXgpKHBhZ2UpO1xuICAgIGNvbnN0IG1hdGNoZXIgPSAoMCwgX3JvdXRlbWF0Y2hlci5nZXRSb3V0ZU1hdGNoZXIpKHBhdHRlcm4pO1xuICAgIC8vIEdldCB0aGUgZGVmYXVsdCBsaXN0IG9mIGFsbG93ZWQgcGFyYW1zLlxuICAgIHJldHVybiBPYmplY3Qua2V5cyhtYXRjaGVyKHBhZ2UpKTtcbn1cbmZ1bmN0aW9uIGdldEZhbGxiYWNrUm91dGVQYXJhbXMocGFnZU9yS2V5cykge1xuICAgIGxldCBrZXlzO1xuICAgIGlmICh0eXBlb2YgcGFnZU9yS2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAga2V5cyA9IGdldFBhcmFtS2V5cyhwYWdlT3JLZXlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBrZXlzID0gcGFnZU9yS2V5cztcbiAgICB9XG4gICAgLy8gSWYgdGhlcmUgYXJlIG5vIGtleXMsIHdlIGNhbiByZXR1cm4gZWFybHkuXG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgTWFwKCk7XG4gICAgLy8gQXMgd2UncmUgY3JlYXRpbmcgdW5pcXVlIGtleXMgZm9yIGVhY2ggb2YgdGhlIGR5bmFtaWMgcm91dGUgcGFyYW1zLCB3ZSBvbmx5XG4gICAgLy8gbmVlZCB0byBnZW5lcmF0ZSBhIHVuaXF1ZSBJRCBvbmNlIHBlciByZXF1ZXN0IGJlY2F1c2UgZWFjaCBvZiB0aGUga2V5cyB3aWxsXG4gICAgLy8gYmUgYWxzbyBiZSB1bmlxdWUuXG4gICAgY29uc3QgdW5pcXVlSUQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE2KS5zbGljZSgyKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKXtcbiAgICAgICAgcGFyYW1zLnNldChrZXksIGAlJWRycDoke2tleX06JHt1bmlxdWVJRH0lJWApO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mYWxsYmFjay1wYXJhbXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/fallback-params.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/request/params.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/server/request/params.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createParamsFromClient: function() {\n return createParamsFromClient;\n },\n createPrerenderParamsForClientSegment: function() {\n return createPrerenderParamsForClientSegment;\n },\n createServerParamsForMetadata: function() {\n return createServerParamsForMetadata;\n },\n createServerParamsForRoute: function() {\n return createServerParamsForRoute;\n },\n createServerParamsForServerSegment: function() {\n return createServerParamsForServerSegment;\n }\n});\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _dynamicaccessasyncstorageexternal = __webpack_require__(/*! ../app-render/dynamic-access-async-storage.external */ \"../app-render/dynamic-access-async-storage.external\");\nfunction createParamsFromClient(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E736\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E770\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nconst createServerParamsForMetadata = createServerParamsForServerSegment;\nfunction createServerParamsForRoute(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForRoute should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E738\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, workUnitStore);\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createServerParamsForServerSegment(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForServerSegment should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E743\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, workUnitStore);\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderParamsForClientSegment(underlyingParams) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in createPrerenderParamsForClientSegment'), \"__NEXT_ERROR_CODE\", {\n value: \"E773\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`params`');\n }\n }\n }\n break;\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderParamsForClientSegment should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E734\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // We're prerendering in a mode that does not abort. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve(underlyingParams);\n}\nfunction createStaticPrerenderParams(underlyingParams, workStore, prerenderStore) {\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return makeHangingParams(underlyingParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n return makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n if (false) {} else {\n return makeUntrackedExoticParams(underlyingParams);\n }\n}\nfunction createRuntimePrerenderParams(underlyingParams, workUnitStore) {\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticParams(underlyingParams));\n}\nfunction createRenderParamsInProd(underlyingParams) {\n if (false) {}\n return makeUntrackedExoticParams(underlyingParams);\n}\nfunction createRenderParamsInDev(underlyingParams, devFallbackParams, workStore) {\n let hasFallbackParams = false;\n if (devFallbackParams) {\n for(let key in underlyingParams){\n if (devFallbackParams.has(key)) {\n hasFallbackParams = true;\n break;\n }\n }\n }\n if (false) {}\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, hasFallbackParams, workStore);\n}\nconst CachedParams = new WeakMap();\nconst fallbackParamsProxyHandler = {\n get: function get(target, prop, receiver) {\n if (prop === 'then' || prop === 'catch' || prop === 'finally') {\n const originalMethod = _reflect.ReflectAdapter.get(target, prop, receiver);\n return ({\n [prop]: (...args)=>{\n const store = _dynamicaccessasyncstorageexternal.dynamicAccessAsyncStorage.getStore();\n if (store) {\n store.abortController.abort(Object.defineProperty(new Error(`Accessed fallback \\`params\\` during prerendering.`), \"__NEXT_ERROR_CODE\", {\n value: \"E691\",\n enumerable: false,\n configurable: true\n }));\n }\n return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);\n }\n })[prop];\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n};\nfunction makeHangingParams(underlyingParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = new Proxy((0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`params`'), fallbackParamsProxyHandler);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n Object.defineProperty(promise, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n}\nfunction makeUntrackedExoticParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n });\n return promise;\n}\nfunction makeUntrackedParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, hasFallbackParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams) : Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n promise[prop] = underlyingParams[prop];\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticParamsWithDevWarnings`, but just\n// logging the sync access without actually defining the params on the promise.\nfunction makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, hasFallbackParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams) : Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n if (workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev, we need to advance out of\n // the Prerender environment when we read Request data synchronously.\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore);\n }\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E307\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E482\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQ0FBa0MsbUJBQU8sQ0FBQyxnRkFBMkM7QUFDckYsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQywwRkFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLHNCQUFzQixtQkFBTyxDQUFDLDhHQUFzQztBQUNwRSwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsa0RBQWtELG1CQUFPLENBQUMsa0pBQW1EO0FBQzdHLDJDQUEyQyxtQkFBTyxDQUFDLGdIQUFxRDtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0Esb0JBQW9CLElBQXNDO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsS0FBSyxFQUVOO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFD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YyxXQUFXLGNBQWM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJCQUEyQjtBQUMxRCx3Q0FBd0MsY0FBYztBQUN0RDtBQUNBLDBDQUEwQyxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50OiBudWxsLFxuICAgIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGU6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQ7XG4gICAgfSxcbiAgICBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlO1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50O1xuICAgIH1cbn0pO1xuY29uc3QgX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9yZWZsZWN0ID0gcmVxdWlyZShcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0XCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jb25zdCBfcmVmbGVjdHV0aWxzID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlsc1wiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlciA9IHJlcXVpcmUoXCIuLi9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyXCIpO1xuY29uc3QgX2R5bmFtaWNhY2Nlc3Nhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2R5bmFtaWMtYWNjZXNzLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5mdW5jdGlvbiBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50KHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzZcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGEgcnVudGltZSBwcmVyZW5kZXIuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzcwXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNpbmNlIHlvdSB3b3VsZCBuZXZlciB1c2UgbmV4dCBkZXYgd2l0aCBwcm9kdWN0aW9uIE5PREVfRU5WIHdlIHVzZSB0aGlzXG4gICAgICAgICAgICAgICAgICAgIC8vIGFzIGEgcHJveHkgc28gd2UgY2FuIHN0YXRpY2FsbHkgZXhjbHVkZSB0aGlzIGNvZGUgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV2RmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmRldkZhbGxiYWNrUGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5EZXYodW5kZXJseWluZ1BhcmFtcywgZGV2RmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtc0luUHJvZCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuY29uc3QgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEgPSBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50O1xuZnVuY3Rpb24gY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGUodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGF0aWNQcmVyZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzhcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNlbWFudGljYWxseSB3ZSBvbmx5IG5lZWQgdGhlIGRldiB0cmFja2luZyB3aGVuIHJ1bm5pbmcgaW4gYG5leHQgZGV2YFxuICAgICAgICAgICAgICAgICAgICAvLyBidXQgc2luY2UgeW91IHdvdWxkIG5ldmVyIHVzZSBuZXh0IGRldiB3aXRoIHByb2R1Y3Rpb24gTk9ERV9FTlYgd2UgdXNlIHRoaXNcbiAgICAgICAgICAgICAgICAgICAgLy8gYXMgYSBwcm94eSBzbyB3ZSBjYW4gc3RhdGljYWxseSBleGNsdWRlIHRoaXMgY29kZSBmcm9tIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXZGYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZGV2RmFsbGJhY2tQYXJhbXM7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXNJbkRldih1bmRlcmx5aW5nUGFyYW1zLCBkZXZGYWxsYmFja1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5Qcm9kKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAoMCwgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCk7XG59XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50KHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NDNcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNlbWFudGljYWxseSB3ZSBvbmx5IG5lZWQgdGhlIGRldiB0cmFja2luZyB3aGVuIHJ1bm5pbmcgaW4gYG5leHQgZGV2YFxuICAgICAgICAgICAgICAgICAgICAvLyBidXQgc2luY2UgeW91IHdvdWxkIG5ldmVyIHVzZSBuZXh0IGRldiB3aXRoIHByb2R1Y3Rpb24gTk9ERV9FTlYgd2UgdXNlIHRoaXNcbiAgICAgICAgICAgICAgICAgICAgLy8gYXMgYSBwcm94eSBzbyB3ZSBjYW4gc3RhdGljYWxseSBleGNsdWRlIHRoaXMgY29kZSBmcm9tIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXZGYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZGV2RmFsbGJhY2tQYXJhbXM7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXNJbkRldih1bmRlcmx5aW5nUGFyYW1zLCBkZXZGYWxsYmFja1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5Qcm9kKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAoMCwgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50KHVuZGVybHlpbmdQYXJhbXMpIHtcbiAgICBjb25zdCB3b3JrU3RvcmUgPSBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXdvcmtTdG9yZSkge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignTWlzc2luZyB3b3JrU3RvcmUgaW4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkU3NzNcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcyl7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHBhcmFtcyBvYmplY3QgaGFzIG9uZSBvciBtb3JlIGZhbGxiYWNrIHBhcmFtcywgc28gd2UgbmVlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGNvbnNpZGVyIHRoZSBhd2FpdGluZyBvZiB0aGlzIHBhcmFtcyBvYmplY3QgXCJkeW5hbWljXCIuIFNpbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGluIGNhY2hlQ29tcG9uZW50cyBtb2RlIHdlIGVuY29kZSB0aGlzIGFzIGEgcHJvbWlzZSB0aGF0IG5ldmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVzb2x2ZXMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsIHdvcmtTdG9yZS5yb3V0ZSwgJ2BwYXJhbXNgJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzRcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyBpbiBhIG1vZGUgdGhhdCBkb2VzIG5vdCBhYm9ydC4gV2UgcmVzb2x2ZSB0aGUgcHJvbWlzZSB3aXRob3V0XG4gICAgLy8gYW55IHRyYWNraW5nIGJlY2F1c2Ugd2UncmUganVzdCB0cmFuc3BvcnRpbmcgYSB2YWx1ZSBmcm9tIHNlcnZlciB0byBjbGllbnQgd2hlcmUgdGhlIHRyYWNraW5nXG4gICAgLy8gd2lsbCBiZSBhcHBsaWVkLlxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG59XG5mdW5jdGlvbiBjcmVhdGVTdGF0aWNQcmVyZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIHN3aXRjaChwcmVyZW5kZXJTdG9yZS50eXBlKXtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3Qga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBwYXJhbXMgb2JqZWN0IGhhcyBvbmUgb3IgbW9yZSBmYWxsYmFjayBwYXJhbXMsIHNvIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBjb25zaWRlciB0aGUgYXdhaXRpbmcgb2YgdGhpcyBwYXJhbXMgb2JqZWN0IFwiZHluYW1pY1wiLiBTaW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBpbiBjYWNoZUNvbXBvbmVudHMgbW9kZSB3ZSBlbmNvZGUgdGhpcyBhcyBhIHByb21pc2UgdGhhdCBuZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc29sdmVzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3Qga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VFcnJvcmluZ0V4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCBmYWxsYmFja1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBwcmVyZW5kZXJTdG9yZTtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTKSB7XG4gICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZVJ1bnRpbWVQcmVyZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1VuaXRTdG9yZSkge1xuICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmcuZGVsYXlVbnRpbFJ1bnRpbWVTdGFnZSkod29ya1VuaXRTdG9yZSwgcHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMgPyBtYWtlVW50cmFja2VkUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpIDogbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJQYXJhbXNJblByb2QodW5kZXJseWluZ1BhcmFtcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcyk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJQYXJhbXNJbkRldih1bmRlcmx5aW5nUGFyYW1zLCBkZXZGYWxsYmFja1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgbGV0IGhhc0ZhbGxiYWNrUGFyYW1zID0gZmFsc2U7XG4gICAgaWYgKGRldkZhbGxiYWNrUGFyYW1zKSB7XG4gICAgICAgIGZvcihsZXQga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgaWYgKGRldkZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgaGFzRmFsbGJhY2tQYXJhbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgICAgICByZXR1cm4gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nUGFyYW1zLCBoYXNGYWxsYmFja1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgaGFzRmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG59XG5jb25zdCBDYWNoZWRQYXJhbXMgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgZmFsbGJhY2tQYXJhbXNQcm94eUhhbmRsZXIgPSB7XG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICBpZiAocHJvcCA9PT0gJ3RoZW4nIHx8IHByb3AgPT09ICdjYXRjaCcgfHwgcHJvcCA9PT0gJ2ZpbmFsbHknKSB7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgICAgIFtwcm9wXTogKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlID0gX2R5bmFtaWNhY2Nlc3Nhc3luY3N0b3JhZ2VleHRlcm5hbC5keW5hbWljQWNjZXNzQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuYWJvcnRDb250cm9sbGVyLmFib3J0KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEFjY2Vzc2VkIGZhbGxiYWNrIFxcYHBhcmFtc1xcYCBkdXJpbmcgcHJlcmVuZGVyaW5nLmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjkxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm94eShvcmlnaW5hbE1ldGhvZC5hcHBseSh0YXJnZXQsIGFyZ3MpLCBmYWxsYmFja1BhcmFtc1Byb3h5SGFuZGxlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlbcHJvcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICB9XG59O1xuZnVuY3Rpb24gbWFrZUhhbmdpbmdQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb3h5KCgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkocHJlcmVuZGVyU3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdgcGFyYW1zYCcpLCBmYWxsYmFja1BhcmFtc1Byb3h5SGFuZGxlcik7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ0V4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCBmYWxsYmFja1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBhdWdtZW50ZWRVbmRlcmx5aW5nID0ge1xuICAgICAgICAuLi51bmRlcmx5aW5nUGFyYW1zXG4gICAgfTtcbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBwYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKGF1Z21lbnRlZFVuZGVybHlpbmcpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhdWdtZW50ZWRVbmRlcmx5aW5nLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMgd2UgYWxzbyB0aHJvdyBpZiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhcmFtcyBpcyBvbmx5IGR5bmFtaWMgd2hlbiB3ZSdyZSBnZW5lcmF0aW5nIGEgZmFsbGJhY2sgc2hlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBldmVuIHdoZW4gYGR5bmFtaWMgPSBcImVycm9yXCJgIHdlIHN0aWxsIHN1cHBvcnQgZ2VuZXJhdGluZyBkeW5hbWljXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayBzaGVsbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIGNhY2hlQ29tcG9uZW50cyBpcyB0aGUgZGVmYXVsdCBzaW5jZSB0aGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBjYWNoZUNvbXBvbmVudHMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgncGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiBtb3N0IGR5bmFtaWMgQVBJcyB3ZSBhbHNvIHRocm93IGlmIGBkeW5hbWljID0gXCJlcnJvclwiYCBob3dldmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgcGFyYW1zIGlzIG9ubHkgZHluYW1pYyB3aGVuIHdlJ3JlIGdlbmVyYXRpbmcgYSBmYWxsYmFjayBzaGVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGV2ZW4gd2hlbiBgZHluYW1pYyA9IFwiZXJyb3JcImAgd2Ugc3RpbGwgc3VwcG9ydCBnZW5lcmF0aW5nIGR5bmFtaWNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHNoZWxsc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyByZW1vdmUgdGhpcyBjb21tZW50IHdoZW4gY2FjaGVDb21wb25lbnRzIGlzIHRoZSBkZWZhdWx0IHNpbmNlIHRoZXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGJlIG5vIGBkeW5hbWljID0gXCJlcnJvclwiYFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHNldCAobmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIHByb21pc2VbcHJvcF0gPSB1bmRlcmx5aW5nUGFyYW1zW3Byb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIHByb21pc2VbcHJvcF0gPSB1bmRlcmx5aW5nUGFyYW1zW3Byb3BdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1BhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nUGFyYW1zLCBoYXNGYWxsYmFja1BhcmFtcywgc3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IGhhc0ZhbGxiYWNrUGFyYW1zID8gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2UpKHVuZGVybHlpbmdQYXJhbXMpIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgICAgIHByb21pc2VbcHJvcF0gPSB1bmRlcmx5aW5nUGFyYW1zW3Byb3BdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgd2FzIHByb3hpZWQgdG8gdGhlIHByb21pc2UgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgLi4ucGFyYW1zYCBvciBzaW1pbGFyIGV4cHJlc3Npb24nO1xuICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uLCB1bnByb3hpZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbi8vIFNpbWlsYXIgdG8gYG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3NgLCBidXQganVzdFxuLy8gbG9nZ2luZyB0aGUgc3luYyBhY2Nlc3Mgd2l0aG91dCBhY3R1YWxseSBkZWZpbmluZyB0aGUgcGFyYW1zIG9uIHRoZSBwcm9taXNlLlxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nUGFyYW1zLCBoYXNGYWxsYmFja1BhcmFtcywgc3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IGhhc0ZhbGxiYWNrUGFyYW1zID8gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2UpKHVuZGVybHlpbmdQYXJhbXMpIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IHdhcyBwcm94aWVkIHRvIHRoZSBwcm9taXNlIGluc3RhbmNlXG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgncGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgLi4ucGFyYW1zYCBvciBzaW1pbGFyIGV4cHJlc3Npb24nO1xuICAgICAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYsIHdlIG5lZWQgdG8gYWR2YW5jZSBvdXQgb2ZcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIFByZXJlbmRlciBlbnZpcm9ubWVudCB3aGVuIHdlIHJlYWQgUmVxdWVzdCBkYXRhIHN5bmNocm9ub3VzbHkuXG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50cmFja1N5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3NJbkRldikod29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gICAgaWYgKG1pc3NpbmdQcm9wZXJ0aWVzICYmIG1pc3NpbmdQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKTtcbiAgICB9XG59XG5jb25zdCB3YXJuRm9yU3luY0FjY2VzcyA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVQYXJhbXNBY2Nlc3NFcnJvcik7XG5jb25zdCB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uID0gKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVBhcmFtc0FjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgcGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTMwN1wiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBwYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB3ZXJlIG5vdCBhdmFpbGFibGUgdGhyb3VnaCBlbnVtZXJhdGlvbiBgICsgYGJlY2F1c2UgdGhleSBjb25mbGljdCB3aXRoIGJ1aWx0aW4gcHJvcGVydHkgbmFtZXM6IGAgKyBgJHtkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMobWlzc2luZ1Byb3BlcnRpZXMpfS4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTQ4MlwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMocHJvcGVydGllcykge1xuICAgIHN3aXRjaChwcm9wZXJ0aWVzLmxlbmd0aCl7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdFeHBlY3RlZCBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMgdG8gYmUgY2FsbGVkIHdpdGggYSBub24tZW1wdHkgbGlzdCBvZiBzdHJpbmdzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTMxXCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgYDtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgIGFuZCBcXGAke3Byb3BlcnRpZXNbMV19XFxgYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgXFxgJHtwcm9wZXJ0aWVzW2ldfVxcYCwgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYCwgYW5kIFxcYCR7cHJvcGVydGllc1twcm9wZXJ0aWVzLmxlbmd0aCAtIDFdfVxcYGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFyYW1zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/params.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/request/pathname.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/server/request/pathname.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createServerPathnameForMetadata\", ({\n enumerable: true,\n get: function() {\n return createServerPathnameForMetadata;\n }\n}));\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction createServerPathnameForMetadata(underlyingPathname, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n {\n return createPrerenderPathname(underlyingPathname, workStore, workUnitStore);\n }\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerPathnameForMetadata should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E740\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, createRenderPathname(underlyingPathname));\n case 'request':\n return createRenderPathname(underlyingPathname);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderPathname(underlyingPathname, workStore, prerenderStore) {\n switch(prerenderStore.type){\n case 'prerender-client':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderPathname was called inside a client component scope.'), \"__NEXT_ERROR_CODE\", {\n value: \"E694\",\n enumerable: false,\n configurable: true\n });\n case 'prerender':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`pathname`');\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n return makeErroringPathname(workStore, prerenderStore.dynamicTracking);\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return Promise.resolve(underlyingPathname);\n}\nfunction makeErroringPathname(workStore, dynamicTracking) {\n let reject = null;\n const promise = new Promise((_, re)=>{\n reject = re;\n });\n const originalThen = promise.then.bind(promise);\n // We instrument .then so that we can generate a tracking event only if you actually\n // await this promise, not just that it is created.\n promise.then = (onfulfilled, onrejected)=>{\n if (reject) {\n try {\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'metadata relative url resolving', dynamicTracking);\n } catch (error) {\n reject(error);\n reject = null;\n }\n }\n return originalThen(onfulfilled, onrejected);\n };\n // We wrap in a noop proxy to trick the runtime into thinking it\n // isn't a native promise (it's not really). This is so that awaiting\n // the promise will call the `then` property triggering the lazy postpone\n return new Proxy(promise, {});\n}\nfunction createRenderPathname(underlyingPathname) {\n return Promise.resolve(underlyingPathname);\n}\n\n//# sourceMappingURL=pathname.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhdGhuYW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsbUVBQWtFO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLHNDQUFzQyxtQkFBTyxDQUFDLDBGQUFnRDtBQUM5RiwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhdGhuYW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlU2VydmVyUGF0aG5hbWVGb3JNZXRhZGF0YVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGF0aG5hbWVGb3JNZXRhZGF0YTtcbiAgICB9XG59KTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmd1dGlscyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZy11dGlsc1wiKTtcbmNvbnN0IF9pbnZhcmlhbnRlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvclwiKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclBhdGhuYW1lRm9yTWV0YWRhdGEodW5kZXJseWluZ1BhdGhuYW1lLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGF0aG5hbWUodW5kZXJseWluZ1BhdGhuYW1lLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVTZXJ2ZXJQYXRobmFtZUZvck1ldGFkYXRhIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGNhY2hlIGNvbnRleHRzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc0MFwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZy5kZWxheVVudGlsUnVudGltZVN0YWdlKSh3b3JrVW5pdFN0b3JlLCBjcmVhdGVSZW5kZXJQYXRobmFtZSh1bmRlcmx5aW5nUGF0aG5hbWUpKTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXRobmFtZSh1bmRlcmx5aW5nUGF0aG5hbWUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclBhdGhuYW1lKHVuZGVybHlpbmdQYXRobmFtZSwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIHN3aXRjaChwcmVyZW5kZXJTdG9yZS50eXBlKXtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUHJlcmVuZGVyUGF0aG5hbWUgd2FzIGNhbGxlZCBpbnNpZGUgYSBjbGllbnQgY29tcG9uZW50IHNjb3BlLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjk0XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHByZXJlbmRlclN0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXM7XG4gICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zICYmIGZhbGxiYWNrUGFyYW1zLnNpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHByZXJlbmRlclN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnYHBhdGhuYW1lYCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcyAmJiBmYWxsYmFja1BhcmFtcy5zaXplID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZUVycm9yaW5nUGF0aG5hbWUod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHByZXJlbmRlclN0b3JlO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCBoYXZlIGFueSBmYWxsYmFjayBwYXJhbXMgc28gd2UgaGF2ZSBhbiBlbnRpcmVseSBzdGF0aWMgc2FmZSBwYXJhbXMgb2JqZWN0XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGF0aG5hbWUpO1xufVxuZnVuY3Rpb24gbWFrZUVycm9yaW5nUGF0aG5hbWUod29ya1N0b3JlLCBkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBsZXQgcmVqZWN0ID0gbnVsbDtcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKF8sIHJlKT0+e1xuICAgICAgICByZWplY3QgPSByZTtcbiAgICB9KTtcbiAgICBjb25zdCBvcmlnaW5hbFRoZW4gPSBwcm9taXNlLnRoZW4uYmluZChwcm9taXNlKTtcbiAgICAvLyBXZSBpbnN0cnVtZW50IC50aGVuIHNvIHRoYXQgd2UgY2FuIGdlbmVyYXRlIGEgdHJhY2tpbmcgZXZlbnQgb25seSBpZiB5b3UgYWN0dWFsbHlcbiAgICAvLyBhd2FpdCB0aGlzIHByb21pc2UsIG5vdCBqdXN0IHRoYXQgaXQgaXMgY3JlYXRlZC5cbiAgICBwcm9taXNlLnRoZW4gPSAob25mdWxmaWxsZWQsIG9ucmVqZWN0ZWQpPT57XG4gICAgICAgIGlmIChyZWplY3QpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsICdtZXRhZGF0YSByZWxhdGl2ZSB1cmwgcmVzb2x2aW5nJywgZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICByZWplY3QgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcmlnaW5hbFRoZW4ob25mdWxmaWxsZWQsIG9ucmVqZWN0ZWQpO1xuICAgIH07XG4gICAgLy8gV2Ugd3JhcCBpbiBhIG5vb3AgcHJveHkgdG8gdHJpY2sgdGhlIHJ1bnRpbWUgaW50byB0aGlua2luZyBpdFxuICAgIC8vIGlzbid0IGEgbmF0aXZlIHByb21pc2UgKGl0J3Mgbm90IHJlYWxseSkuIFRoaXMgaXMgc28gdGhhdCBhd2FpdGluZ1xuICAgIC8vIHRoZSBwcm9taXNlIHdpbGwgY2FsbCB0aGUgYHRoZW5gIHByb3BlcnR5IHRyaWdnZXJpbmcgdGhlIGxhenkgcG9zdHBvbmVcbiAgICByZXR1cm4gbmV3IFByb3h5KHByb21pc2UsIHt9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJlbmRlclBhdGhuYW1lKHVuZGVybHlpbmdQYXRobmFtZSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhdGhuYW1lKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGF0aG5hbWUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/pathname.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/request/root-params.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/server/request/root-params.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getRootParam: function() {\n return getRootParam;\n },\n unstable_rootParams: function() {\n return unstable_rootParams;\n }\n});\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _actionasyncstorageexternal = __webpack_require__(/*! ../app-render/action-async-storage.external */ \"../app-render/action-async-storage.external\");\nconst _log = __webpack_require__(/*! ../../build/output/log */ \"(rsc)/./node_modules/next/dist/build/output/log.js\");\nconst CachedParams = new WeakMap();\nasync function unstable_rootParams() {\n (0, _log.warnOnce)('`unstable_rootParams()` is deprecated and will be removed in an upcoming major release. Import specific root params from `next/root-params` instead.');\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in unstable_rootParams'), \"__NEXT_ERROR_CODE\", {\n value: \"E615\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!workUnitStore) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \\`unstable_rootParams()\\` in Pages Router. This API is only available within App Router.`), \"__NEXT_ERROR_CODE\", {\n value: \"E641\",\n enumerable: false,\n configurable: true\n });\n }\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \\`unstable_rootParams()\\` inside \\`\"use cache\"\\` or \\`unstable_cache\\`. Support for this API inside cache scopes is planned for a future version of Next.js.`), \"__NEXT_ERROR_CODE\", {\n value: \"E642\",\n enumerable: false,\n configurable: true\n });\n }\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderRootParams(workUnitStore.rootParams, workStore, workUnitStore);\n case 'private-cache':\n case 'prerender-runtime':\n case 'request':\n return Promise.resolve(workUnitStore.rootParams);\n default:\n return workUnitStore;\n }\n}\nfunction createPrerenderRootParams(underlyingParams, workStore, prerenderStore) {\n switch(prerenderStore.type){\n case 'prerender-client':\n {\n const exportName = '`unstable_rootParams`';\n throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E693\",\n enumerable: false,\n configurable: true\n });\n }\n case 'prerender':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`unstable_rootParams`');\n CachedParams.set(underlyingParams, promise);\n return promise;\n }\n }\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n // We have fallback params at this level so we need to make an erroring\n // params object which will postpone if you access the fallback params\n return makeErroringRootParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return Promise.resolve(underlyingParams);\n}\nfunction makeErroringRootParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('unstable_rootParams', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n}\nfunction getRootParam(paramName) {\n const apiName = `\\`import('next/root-params').${paramName}()\\``;\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new _invarianterror.InvariantError(`Missing workStore in ${apiName}`), \"__NEXT_ERROR_CODE\", {\n value: \"E764\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!workUnitStore) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used ${apiName} outside of a Server Component. This is not allowed.`), \"__NEXT_ERROR_CODE\", {\n value: \"E774\",\n enumerable: false,\n configurable: true\n });\n }\n const actionStore = _actionasyncstorageexternal.actionAsyncStorage.getStore();\n if (actionStore) {\n if (actionStore.isAppRoute) {\n // TODO(root-params): add support for route handlers\n throw Object.defineProperty(new Error(`Route ${workStore.route} used ${apiName} inside a Route Handler. Support for this API in Route Handlers is planned for a future version of Next.js.`), \"__NEXT_ERROR_CODE\", {\n value: \"E765\",\n enumerable: false,\n configurable: true\n });\n }\n if (actionStore.isAction && workUnitStore.phase === 'action') {\n // Actions are not fundamentally tied to a route (even if they're always submitted from some page),\n // so root params would be inconsistent if an action is called from multiple roots.\n // Make sure we check if the phase is \"action\" - we should not error in the rerender\n // after an action revalidates or updates cookies (which will still have `actionStore.isAction === true`)\n throw Object.defineProperty(new Error(`${apiName} was used inside a Server Action. This is not supported. Functions from 'next/root-params' can only be called in the context of a route.`), \"__NEXT_ERROR_CODE\", {\n value: \"E766\",\n enumerable: false,\n configurable: true\n });\n }\n }\n switch(workUnitStore.type){\n case 'unstable-cache':\n case 'cache':\n {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used ${apiName} inside \\`\"use cache\"\\` or \\`unstable_cache\\`. Support for this API inside cache scopes is planned for a future version of Next.js.`), \"__NEXT_ERROR_CODE\", {\n value: \"E760\",\n enumerable: false,\n configurable: true\n });\n }\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n {\n return createPrerenderRootParamPromise(paramName, workStore, workUnitStore, apiName);\n }\n case 'private-cache':\n case 'prerender-runtime':\n case 'request':\n {\n break;\n }\n default:\n {\n workUnitStore;\n }\n }\n return Promise.resolve(workUnitStore.rootParams[paramName]);\n}\nfunction createPrerenderRootParamPromise(paramName, workStore, prerenderStore, apiName) {\n switch(prerenderStore.type){\n case 'prerender-client':\n {\n throw Object.defineProperty(new _invarianterror.InvariantError(`${apiName} must not be used within a client component. Next.js should be preventing ${apiName} from being included in client components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E693\",\n enumerable: false,\n configurable: true\n });\n }\n case 'prerender':\n case 'prerender-legacy':\n case 'prerender-ppr':\n default:\n }\n const underlyingParams = prerenderStore.rootParams;\n switch(prerenderStore.type){\n case 'prerender':\n {\n // We are in a dynamicIO prerender.\n // The param is a fallback, so it should be treated as dynamic.\n if (prerenderStore.fallbackRouteParams && prerenderStore.fallbackRouteParams.has(paramName)) {\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, apiName);\n }\n break;\n }\n case 'prerender-ppr':\n {\n // We aren't in a dynamicIO prerender, but the param is a fallback,\n // so we need to make an erroring params object which will postpone/error if you access it\n if (prerenderStore.fallbackRouteParams && prerenderStore.fallbackRouteParams.has(paramName)) {\n return makeErroringRootParamPromise(paramName, workStore, prerenderStore, apiName);\n }\n break;\n }\n case 'prerender-legacy':\n {\n break;\n }\n default:\n {\n prerenderStore;\n }\n }\n // If the param is not a fallback param, we just return the statically available value.\n return Promise.resolve(underlyingParams[paramName]);\n}\n/** Deliberately async -- we want to create a rejected promise, not error synchronously. */ async function makeErroringRootParamPromise(paramName, workStore, prerenderStore, apiName) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)(apiName, paramName);\n // In most dynamic APIs, we also throw if `dynamic = \"error\"`.\n // However, root params are only dynamic when we're generating a fallback shell,\n // and even with `dynamic = \"error\"` we still support generating dynamic fallback shells.\n // TODO: remove this comment when dynamicIO is the default since there will be no `dynamic = \"error\"`\n switch(prerenderStore.type){\n case 'prerender-ppr':\n {\n return (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n }\n case 'prerender-legacy':\n {\n return (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n default:\n {\n prerenderStore;\n }\n }\n} //# sourceMappingURL=root-params.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3Jvb3QtcGFyYW1zLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRNZ0JBLFlBQVk7ZUFBWkE7O0lBN0tNQyxtQkFBbUI7ZUFBbkJBOzs7NENBL0JTOzhDQUl4QjtzREFJQTswREFNQTttREFDNEI7MENBTTVCO3dEQUM0QjtpQ0FDVjtBQUd6QixNQUFNQyxlQUFlLElBQUlDO0FBS2xCLGVBQWVGO0lBQ3BCRyxDQUFBQSxHQUFBQSxLQUFBQSxRQUFBQSxFQUNFO0lBRUYsTUFBTUMsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBQzNDLElBQUksQ0FBQ0YsV0FBVztRQUNkLE1BQU0scUJBQThELENBQTlELElBQUlHLGdCQUFBQSxjQUFjLENBQUMsNkNBQW5CO21CQUFBO3dCQUFBOzBCQUFBO1FBQTZEO0lBQ3JFO0lBRUEsTUFBTUMsZ0JBQWdCQyw4QkFBQUEsb0JBQW9CLENBQUNILFFBQVE7SUFFbkQsSUFBSSxDQUFDRSxlQUFlO1FBQ2xCLE1BQU0scUJBRUwsQ0FGSyxJQUFJRSxNQUNSLENBQUMsTUFBTSxFQUFFTixVQUFVTyxLQUFLLENBQUMsOEZBQThGLENBQUMsR0FEcEg7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUEsT0FBUUgsY0FBY0ksSUFBSTtRQUN4QixLQUFLO1FBQ0wsS0FBSztZQUFrQjtnQkFDckIsTUFBTSxxQkFFTCxDQUZLLElBQUlGLE1BQ1IsQ0FBQyxNQUFNLEVBQUVOLFVBQVVPLEtBQUssQ0FBQyxrS0FBa0ssQ0FBQyxHQUR4TDsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGO1FBQ0EsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztZQUNILE9BQU9FLDBCQUNMTCxjQUFjTSxVQUFVLEVBQ3hCVixXQUNBSTtRQUVKLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztZQUNILE9BQU9PLFFBQVFDLE9BQU8sQ0FBQ1Is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cGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFyaWFudEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3InXG5pbXBvcnQge1xuICBwb3N0cG9uZVdpdGhUcmFja2luZyxcbiAgdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24sXG59IGZyb20gJy4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmcnXG5pbXBvcnQge1xuICB3b3JrQXN5bmNTdG9yYWdlLFxuICB0eXBlIFdvcmtTdG9yZSxcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5pbXBvcnQge1xuICB3b3JrVW5pdEFzeW5jU3RvcmFnZSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZUxlZ2FjeSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZVBQUixcbiAgdHlwZSBTdGF0aWNQcmVyZW5kZXJTdG9yZSxcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7IG1ha2VIYW5naW5nUHJvbWlzZSB9IGZyb20gJy4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHR5cGUgeyBGYWxsYmFja1JvdXRlUGFyYW1zIH0gZnJvbSAnLi9mYWxsYmFjay1wYXJhbXMnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcywgUGFyYW1WYWx1ZSB9IGZyb20gJy4vcGFyYW1zJ1xuaW1wb3J0IHtcbiAgZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcyxcbiAgd2VsbEtub3duUHJvcGVydGllcyxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzJ1xuaW1wb3J0IHsgYWN0aW9uQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi4vYXBwLXJlbmRlci9hY3Rpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi4vLi4vYnVpbGQvb3V0cHV0L2xvZydcblxuaW50ZXJmYWNlIENhY2hlTGlmZXRpbWUge31cbmNvbnN0IENhY2hlZFBhcmFtcyA9IG5ldyBXZWFrTWFwPENhY2hlTGlmZXRpbWUsIFByb21pc2U8UGFyYW1zPj4oKVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCBzcGVjaWZpYyByb290IHBhcmFtcyBmcm9tIGBuZXh0L3Jvb3QtcGFyYW1zYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdW5zdGFibGVfcm9vdFBhcmFtcygpOiBQcm9taXNlPFBhcmFtcz4ge1xuICB3YXJuT25jZShcbiAgICAnYHVuc3RhYmxlX3Jvb3RQYXJhbXMoKWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIG1ham9yIHJlbGVhc2UuIEltcG9ydCBzcGVjaWZpYyByb290IHBhcmFtcyBmcm9tIGBuZXh0L3Jvb3QtcGFyYW1zYCBpbnN0ZWFkLidcbiAgKVxuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgaWYgKCF3b3JrU3RvcmUpIHtcbiAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IoJ01pc3Npbmcgd29ya1N0b3JlIGluIHVuc3RhYmxlX3Jvb3RQYXJhbXMnKVxuICB9XG5cbiAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IHdvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAoIXdvcmtVbml0U3RvcmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXFxgdW5zdGFibGVfcm9vdFBhcmFtcygpXFxgIGluIFBhZ2VzIFJvdXRlci4gVGhpcyBBUEkgaXMgb25seSBhdmFpbGFibGUgd2l0aGluIEFwcCBSb3V0ZXIuYFxuICAgIClcbiAgfVxuXG4gIHN3aXRjaCAod29ya1VuaXRTdG9yZS50eXBlKSB7XG4gICAgY2FzZSAnY2FjaGUnOlxuICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzoge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXFxgdW5zdGFibGVfcm9vdFBhcmFtcygpXFxgIGluc2lkZSBcXGBcInVzZSBjYWNoZVwiXFxgIG9yIFxcYHVuc3RhYmxlX2NhY2hlXFxgLiBTdXBwb3J0IGZvciB0aGlzIEFQSSBpbnNpZGUgY2FjaGUgc2NvcGVzIGlzIHBsYW5uZWQgZm9yIGEgZnV0dXJlIHZlcnNpb24gb2YgTmV4dC5qcy5gXG4gICAgICApXG4gICAgfVxuICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUm9vdFBhcmFtcyhcbiAgICAgICAgd29ya1VuaXRTdG9yZS5yb290UGFyYW1zLFxuICAgICAgICB3b3JrU3RvcmUsXG4gICAgICAgIHdvcmtVbml0U3RvcmVcbiAgICAgIClcbiAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdvcmtVbml0U3RvcmUucm9vdFBhcmFtcylcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHdvcmtVbml0U3RvcmUgc2F0aXNmaWVzIG5ldmVyXG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyUm9vdFBhcmFtcyhcbiAgdW5kZXJseWluZ1BhcmFtczogUGFyYW1zLFxuICB3b3JrU3RvcmU6IFdvcmtTdG9yZSxcbiAgcHJlcmVuZGVyU3RvcmU6IFN0YXRpY1ByZXJlbmRlclN0b3JlXG4pOiBQcm9taXNlPFBhcmFtcz4ge1xuICBzd2l0Y2ggKHByZXJlbmRlclN0b3JlLnR5cGUpIHtcbiAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50Jzoge1xuICAgICAgY29uc3QgZXhwb3J0TmFtZSA9ICdgdW5zdGFibGVfcm9vdFBhcmFtc2AnXG4gICAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IoXG4gICAgICAgIGAke2V4cG9ydE5hbWV9IG11c3Qgbm90IGJlIHVzZWQgd2l0aGluIGEgY2xpZW50IGNvbXBvbmVudC4gTmV4dC5qcyBzaG91bGQgYmUgcHJldmVudGluZyAke2V4cG9ydE5hbWV9IGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gY2xpZW50IGNvbXBvbmVudHMgc3RhdGljYWxseSwgYnV0IGRpZCBub3QgaW4gdGhpcyBjYXNlLmBcbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAncHJlcmVuZGVyJzoge1xuICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zXG4gICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcykge1xuICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKVxuICAgICAgICAgICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBtYWtlSGFuZ2luZ1Byb21pc2U8UGFyYW1zPihcbiAgICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmUucmVuZGVyU2lnbmFsLFxuICAgICAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgICAgICdgdW5zdGFibGVfcm9vdFBhcmFtc2AnXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpXG5cbiAgICAgICAgICAgIHJldHVybiBwcm9taXNlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgICBjYXNlICdwcmVyZW5kZXItcHByJzoge1xuICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zXG4gICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcykge1xuICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgLy8gV2UgaGF2ZSBmYWxsYmFjayBwYXJhbXMgYXQgdGhpcyBsZXZlbCBzbyB3ZSBuZWVkIHRvIG1ha2UgYW4gZXJyb3JpbmdcbiAgICAgICAgICAgIC8vIHBhcmFtcyBvYmplY3Qgd2hpY2ggd2lsbCBwb3N0cG9uZSBpZiB5b3UgYWNjZXNzIHRoZSBmYWxsYmFjayBwYXJhbXNcbiAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdSb290UGFyYW1zKFxuICAgICAgICAgICAgICB1bmRlcmx5aW5nUGFyYW1zLFxuICAgICAgICAgICAgICBmYWxsYmFja1BhcmFtcyxcbiAgICAgICAgICAgICAgd29ya1N0b3JlLFxuICAgICAgICAgICAgICBwcmVyZW5kZXJTdG9yZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICBwcmVyZW5kZXJTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgfVxuXG4gIC8vIFdlIGRvbid0IGhhdmUgYW55IGZhbGxiYWNrIHBhcmFtcyBzbyB3ZSBoYXZlIGFuIGVudGlyZWx5IHN0YXRpYyBzYWZlIHBhcmFtcyBvYmplY3RcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKVxufVxuXG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdSb290UGFyYW1zKFxuICB1bmRlcmx5aW5nUGFyYW1zOiBQYXJhbXMsXG4gIGZhbGxiYWNrUGFyYW1zOiBGYWxsYmFja1JvdXRlUGFyYW1zLFxuICB3b3JrU3RvcmU6IFdvcmtTdG9yZSxcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlUFBSIHwgUHJlcmVuZGVyU3RvcmVMZWdhY3lcbik6IFByb21pc2U8UGFyYW1zPiB7XG4gIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcylcbiAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgIHJldHVybiBjYWNoZWRQYXJhbXNcbiAgfVxuXG4gIGNvbnN0IGF1Z21lbnRlZFVuZGVybHlpbmcgPSB7IC4uLnVuZGVybHlpbmdQYXJhbXMgfVxuXG4gIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoYXVnbWVudGVkVW5kZXJseWluZylcbiAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKVxuXG4gIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApID0+IHtcbiAgICBpZiAod2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMocHJvcCkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGF1Z21lbnRlZFVuZGVybHlpbmcsIHByb3AsIHtcbiAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcyhcbiAgICAgICAgICAgICAgJ3Vuc3RhYmxlX3Jvb3RQYXJhbXMnLFxuICAgICAgICAgICAgICBwcm9wXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAvLyBJbiBtb3N0IGR5bmFtaWMgQVBJcyB3ZSBhbHNvIHRocm93IGlmIGBkeW5hbWljID0gXCJlcnJvclwiYCBob3dldmVyXG4gICAgICAgICAgICAvLyBmb3IgcGFyYW1zIGlzIG9ubHkgZHluYW1pYyB3aGVuIHdlJ3JlIGdlbmVyYXRpbmcgYSBmYWxsYmFjayBzaGVsbFxuICAgICAgICAgICAgLy8gYW5kIGV2ZW4gd2hlbiBgZHluYW1pYyA9IFwiZXJyb3JcImAgd2Ugc3RpbGwgc3VwcG9ydCBnZW5lcmF0aW5nIGR5bmFtaWNcbiAgICAgICAgICAgIC8vIGZhbGxiYWNrIHNoZWxsc1xuICAgICAgICAgICAgLy8gVE9ETyByZW1vdmUgdGhpcyBjb21tZW50IHdoZW4gY2FjaGVDb21wb25lbnRzIGlzIHRoZSBkZWZhdWx0IHNpbmNlIHRoZXJlXG4gICAgICAgICAgICAvLyB3aWxsIGJlIG5vIGBkeW5hbWljID0gXCJlcnJvclwiYFxuICAgICAgICAgICAgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBjYWNoZUNvbXBvbmVudHMpXG4gICAgICAgICAgICAgIHBvc3Rwb25lV2l0aFRyYWNraW5nKFxuICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5yb3V0ZSxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uLFxuICAgICAgICAgICAgICAgIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgIHRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb24sXG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLFxuICAgICAgICAgICAgICAgIHByZXJlbmRlclN0b3JlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICA7KHByb21pc2UgYXMgYW55KVtwcm9wXSA9IHVuZGVybHlpbmdQYXJhbXNbcHJvcF1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHByb21pc2Vcbn1cblxuLyoqXG4gKiBVc2VkIGZvciB0aGUgY29tcGlsZXItZ2VuZXJhdGVkIGBuZXh0L3Jvb3QtcGFyYW1zYCBtb2R1bGUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3RQYXJhbShwYXJhbU5hbWU6IHN0cmluZyk6IFByb21pc2U8UGFyYW1WYWx1ZT4ge1xuICBjb25zdCBhcGlOYW1lID0gYFxcYGltcG9ydCgnbmV4dC9yb290LXBhcmFtcycpLiR7cGFyYW1OYW1lfSgpXFxgYFxuXG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAoIXdvcmtTdG9yZSkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihgTWlzc2luZyB3b3JrU3RvcmUgaW4gJHthcGlOYW1lfWApXG4gIH1cblxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAoIXdvcmtVbml0U3RvcmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgJHthcGlOYW1lfSBvdXRzaWRlIG9mIGEgU2VydmVyIENvbXBvbmVudC4gVGhpcyBpcyBub3QgYWxsb3dlZC5gXG4gICAgKVxuICB9XG5cbiAgY29uc3QgYWN0aW9uU3RvcmUgPSBhY3Rpb25Bc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAoYWN0aW9uU3RvcmUpIHtcbiAgICBpZiAoYWN0aW9uU3RvcmUuaXNBcHBSb3V0ZSkge1xuICAgICAgLy8gVE9ETyhyb290LXBhcmFtcyk6IGFkZCBzdXBwb3J0IGZvciByb3V0ZSBoYW5kbGVyc1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgJHthcGlOYW1lfSBpbnNpZGUgYSBSb3V0ZSBIYW5kbGVyLiBTdXBwb3J0IGZvciB0aGlzIEFQSSBpbiBSb3V0ZSBIYW5kbGVycyBpcyBwbGFubmVkIGZvciBhIGZ1dHVyZSB2ZXJzaW9uIG9mIE5leHQuanMuYFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAoYWN0aW9uU3RvcmUuaXNBY3Rpb24gJiYgd29ya1VuaXRTdG9yZS5waGFzZSA9PT0gJ2FjdGlvbicpIHtcbiAgICAgIC8vIEFjdGlvbnMgYXJlIG5vdCBmdW5kYW1lbnRhbGx5IHRpZWQgdG8gYSByb3V0ZSAoZXZlbiBpZiB0aGV5J3JlIGFsd2F5cyBzdWJtaXR0ZWQgZnJvbSBzb21lIHBhZ2UpLFxuICAgICAgLy8gc28gcm9vdCBwYXJhbXMgd291bGQgYmUgaW5jb25zaXN0ZW50IGlmIGFuIGFjdGlvbiBpcyBjYWxsZWQgZnJvbSBtdWx0aXBsZSByb290cy5cbiAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBjaGVjayBpZiB0aGUgcGhhc2UgaXMgXCJhY3Rpb25cIiAtIHdlIHNob3VsZCBub3QgZXJyb3IgaW4gdGhlIHJlcmVuZGVyXG4gICAgICAvLyBhZnRlciBhbiBhY3Rpb24gcmV2YWxpZGF0ZXMgb3IgdXBkYXRlcyBjb29raWVzICh3aGljaCB3aWxsIHN0aWxsIGhhdmUgYGFjdGlvblN0b3JlLmlzQWN0aW9uID09PSB0cnVlYClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7YXBpTmFtZX0gd2FzIHVzZWQgaW5zaWRlIGEgU2VydmVyIEFjdGlvbi4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBGdW5jdGlvbnMgZnJvbSAnbmV4dC9yb290LXBhcmFtcycgY2FuIG9ubHkgYmUgY2FsbGVkIGluIHRoZSBjb250ZXh0IG9mIGEgcm91dGUuYFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAod29ya1VuaXRTdG9yZS50eXBlKSB7XG4gICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgIGNhc2UgJ2NhY2hlJzoge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgJHthcGlOYW1lfSBpbnNpZGUgXFxgXCJ1c2UgY2FjaGVcIlxcYCBvciBcXGB1bnN0YWJsZV9jYWNoZVxcYC4gU3VwcG9ydCBmb3IgdGhpcyBBUEkgaW5zaWRlIGNhY2hlIHNjb3BlcyBpcyBwbGFubmVkIGZvciBhIGZ1dHVyZSB2ZXJzaW9uIG9mIE5leHQuanMuYFxuICAgICAgKVxuICAgIH1cbiAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOiB7XG4gICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUm9vdFBhcmFtUHJvbWlzZShcbiAgICAgICAgcGFyYW1OYW1lLFxuICAgICAgICB3b3JrU3RvcmUsXG4gICAgICAgIHdvcmtVbml0U3RvcmUsXG4gICAgICAgIGFwaU5hbWVcbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgIGNhc2UgJ3JlcXVlc3QnOiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdvcmtVbml0U3RvcmUucm9vdFBhcmFtc1twYXJhbU5hbWVdKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJSb290UGFyYW1Qcm9taXNlKFxuICBwYXJhbU5hbWU6IHN0cmluZyxcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIHByZXJlbmRlclN0b3JlOiBTdGF0aWNQcmVyZW5kZXJTdG9yZSxcbiAgYXBpTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFBhcmFtVmFsdWU+IHtcbiAgc3dpdGNoIChwcmVyZW5kZXJTdG9yZS50eXBlKSB7XG4gICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6IHtcbiAgICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgICAgYCR7YXBpTmFtZX0gbXVzdCBub3QgYmUgdXNlZCB3aXRoaW4gYSBjbGllbnQgY29tcG9uZW50LiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7YXBpTmFtZX0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBjbGllbnQgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYFxuICAgICAgKVxuICAgIH1cbiAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgIGRlZmF1bHQ6XG4gIH1cblxuICBjb25zdCB1bmRlcmx5aW5nUGFyYW1zID0gcHJlcmVuZGVyU3RvcmUucm9vdFBhcmFtc1xuXG4gIHN3aXRjaCAocHJlcmVuZGVyU3RvcmUudHlwZSkge1xuICAgIGNhc2UgJ3ByZXJlbmRlcic6IHtcbiAgICAgIC8vIFdlIGFyZSBpbiBhIGR5bmFtaWNJTyBwcmVyZW5kZXIuXG4gICAgICAvLyBUaGUgcGFyYW0gaXMgYSBmYWxsYmFjaywgc28gaXQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZHluYW1pYy5cbiAgICAgIGlmIChcbiAgICAgICAgcHJlcmVuZGVyU3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcyAmJlxuICAgICAgICBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zLmhhcyhwYXJhbU5hbWUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nUHJvbWlzZTxQYXJhbVZhbHVlPihcbiAgICAgICAgICBwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsXG4gICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgIGFwaU5hbWVcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAncHJlcmVuZGVyLXBwcic6IHtcbiAgICAgIC8vIFdlIGFyZW4ndCBpbiBhIGR5bmFtaWNJTyBwcmVyZW5kZXIsIGJ1dCB0aGUgcGFyYW0gaXMgYSBmYWxsYmFjayxcbiAgICAgIC8vIHNvIHdlIG5lZWQgdG8gbWFrZSBhbiBlcnJvcmluZyBwYXJhbXMgb2JqZWN0IHdoaWNoIHdpbGwgcG9zdHBvbmUvZXJyb3IgaWYgeW91IGFjY2VzcyBpdFxuICAgICAgaWYgKFxuICAgICAgICBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zICYmXG4gICAgICAgIHByZXJlbmRlclN0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXMuaGFzKHBhcmFtTmFtZSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gbWFrZUVycm9yaW5nUm9vdFBhcmFtUHJvbWlzZShcbiAgICAgICAgICBwYXJhbU5hbWUsXG4gICAgICAgICAgd29ya1N0b3JlLFxuICAgICAgICAgIHByZXJlbmRlclN0b3JlLFxuICAgICAgICAgIGFwaU5hbWVcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6IHtcbiAgICAgIC8vIGxlZ2FjeSBwcmVyZW5kZXJzIGNhbid0IGhhdmUgZmFsbGJhY2sgcGFyYW1zXG4gICAgICBicmVha1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBwcmVyZW5kZXJTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGUgcGFyYW0gaXMgbm90IGEgZmFsbGJhY2sgcGFyYW0sIHdlIGp1c3QgcmV0dXJuIHRoZSBzdGF0aWNhbGx5IGF2YWlsYWJsZSB2YWx1ZS5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zW3BhcmFtTmFtZV0pXG59XG5cbi8qKiBEZWxpYmVyYXRlbHkgYXN5bmMgLS0gd2Ugd2FudCB0byBjcmVhdGUgYSByZWplY3RlZCBwcm9taXNlLCBub3QgZXJyb3Igc3luY2hyb25vdXNseS4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1ha2VFcnJvcmluZ1Jvb3RQYXJhbVByb21pc2UoXG4gIHBhcmFtTmFtZTogc3RyaW5nLFxuICB3b3JrU3RvcmU6IFdvcmtTdG9yZSxcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlUFBSIHwgUHJlcmVuZGVyU3RvcmVMZWdhY3ksXG4gIGFwaU5hbWU6IHN0cmluZ1xuKTogUHJvbWlzZTxQYXJhbVZhbHVlPiB7XG4gIGNvbnN0IGV4cHJlc3Npb24gPSBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKGFwaU5hbWUsIHBhcmFtTmFtZSlcbiAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMsIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgLlxuICAvLyBIb3dldmVyLCByb290IHBhcmFtcyBhcmUgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsLFxuICAvLyBhbmQgZXZlbiB3aXRoIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pYyBmYWxsYmFjayBzaGVsbHMuXG4gIC8vIFRPRE86IHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBkeW5hbWljSU8gaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmUgd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgc3dpdGNoIChwcmVyZW5kZXJTdG9yZS50eXBlKSB7XG4gICAgY2FzZSAncHJlcmVuZGVyLXBwcic6IHtcbiAgICAgIHJldHVybiBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICBleHByZXNzaW9uLFxuICAgICAgICBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6IHtcbiAgICAgIHJldHVybiB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbihcbiAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgd29ya1N0b3JlLFxuICAgICAgICBwcmVyZW5kZXJTdG9yZVxuICAgICAgKVxuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBwcmVyZW5kZXJTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZXRSb290UGFyYW0iLCJ1bnN0YWJsZV9yb290UGFyYW1zIiwiQ2FjaGVkUGFyYW1zIiwiV2Vha01hcCIsIndhcm5PbmNlIiwid29ya1N0b3JlIiwid29ya0FzeW5jU3RvcmFnZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJ3b3JrVW5pdFN0b3JlIiwid29ya1VuaXRBc3luY1N0b3JhZ2UiLCJFcnJvciIsInJvdXRlIiwidHlwZSIsImNyZWF0ZVByZXJlbmRlclJvb3RQYXJhbXMiLCJyb290UGFyYW1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ1bmRlcmx5aW5nUGFyYW1zIiwicHJlcmVuZGVyU3RvcmUiLCJleHBvcnROYW1lIiwiZmFsbGJhY2tQYXJhbXMiLCJmYWxsYmFja1JvdXRlUGFyYW1zIiwia2V5IiwiaGFzIiwiY2FjaGVkUGFyYW1zIiwiZ2V0IiwicHJvbWlzZSIsIm1ha2VIYW5naW5nUHJvbWlzZSIsInJlbmRlclNpZ25hbCIsInNldCIsIm1ha2VFcnJvcmluZ1Jvb3RQYXJhbXMiLCJhdWdtZW50ZWRVbmRlcmx5aW5nIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJwcm9wIiwid2VsbEtub3duUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZXhwcmVzc2lvbiIsImRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MiLCJwb3N0cG9uZVdpdGhUcmFja2luZyIsImR5bmFtaWNUcmFja2luZyIsInRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uIiwiZW51bWVyYWJsZSIsInBhcmFtTmFtZSIsImFwaU5hbWUiLCJhY3Rpb25TdG9yZSIsImFjdGlvbkFzeW5jU3RvcmFnZSIsImlzQXBwUm91dGUiLCJpc0FjdGlvbiIsInBoYXNlIiwiY3JlYXRlUHJlcmVuZGVyUm9vdFBhcmFtUHJvbWlzZSIsIm1ha2VFcnJvcmluZ1Jvb3RQYXJhbVByb21pc2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/root-params.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/request/search-params.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/server/request/search-params.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createPrerenderSearchParamsForClientPage: function() {\n return createPrerenderSearchParamsForClientPage;\n },\n createSearchParamsFromClient: function() {\n return createSearchParamsFromClient;\n },\n createServerSearchParamsForMetadata: function() {\n return createServerSearchParamsForMetadata;\n },\n createServerSearchParamsForServerPage: function() {\n return createServerSearchParamsForServerPage;\n },\n makeErroringSearchParamsForUseCache: function() {\n return makeErroringSearchParamsForUseCache;\n }\n});\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nfunction createSearchParamsFromClient(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E769\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E739\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nconst createServerSearchParamsForMetadata = createServerSearchParamsForServerPage;\nfunction createServerSearchParamsForServerPage(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E747\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore);\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderSearchParamsForClientPage(workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n // We're prerendering in a mode that aborts (cacheComponents) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`');\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E768\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E746\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n return Promise.resolve({});\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createStaticPrerenderSearchParams(workStore, prerenderStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n // We are in a cacheComponents (PPR or otherwise) prerender\n return makeHangingSearchParams(workStore, prerenderStore);\n case 'prerender-ppr':\n case 'prerender-legacy':\n // We are in a legacy static generation and need to interrupt the\n // prerender when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore);\n default:\n return prerenderStore;\n }\n}\nfunction createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) {\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticSearchParams(underlyingSearchParams));\n}\nfunction createRenderSearchParams(underlyingSearchParams, workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n } else {\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n if (false) {}\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore);\n } else {}\n }\n}\nconst CachedSearchParams = new WeakMap();\nconst CachedSearchParamsForUseCache = new WeakMap();\nfunction makeHangingSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`');\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n }\n });\n CachedSearchParams.set(prerenderStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringExoticSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const underlyingSearchParams = {};\n // For search params we don't construct a ReactPromise because we want to interrupt\n // rendering on any property access that was not set from outside and so we only want\n // to have properties like value and status if React sets them.\n const promise = Promise.resolve(underlyingSearchParams);\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n default:\n {\n if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n },\n has (target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests trigger dynamic. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string') {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return false;\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys () {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n });\n CachedSearchParams.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringSearchParamsForUseCache(workStore) {\n const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve({});\n const proxiedPromise = new Proxy(promise, {\n get: function get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it. We know it\n // isn't a dynamic access because it can only be something that was\n // previously written to the promise and thus not an underlying\n // searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get);\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has: function has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests throw an error. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has);\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys: function ownKeys() {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys);\n }\n });\n CachedSearchParamsForUseCache.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeUntrackedExoticSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (!_reflectutils.wellKnownProperties.has(prop)) {\n Object.defineProperty(promise, prop, {\n get () {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n }\n return underlyingSearchParams[prop];\n },\n set (value) {\n Object.defineProperty(promise, prop, {\n value,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n return promise;\n}\nfunction makeUntrackedSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying\n // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender\n // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking\n // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger\n // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce\n // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.\n let promiseInitialized = false;\n const proxiedUnderlying = new Proxy(underlyingSearchParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && promiseInitialized) {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n if (store.dynamicShouldError) {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n return Reflect.ownKeys(target);\n }\n });\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams);\n promise.then(()=>{\n promiseInitialized = true;\n });\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n Object.defineProperty(promise, prop, {\n get () {\n return proxiedUnderlying[prop];\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (prop === 'then' && store.dynamicShouldError) {\n const expression = '`searchParams.then`';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but\n// just logging the sync access without actually defining the search params on\n// the promise.\nfunction makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n if (workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev, we need to advance out of\n // the Prerender environment when we read Request data synchronously.\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore);\n }\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E249\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E2\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=search-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQywwRkFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csc0JBQXNCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3BFLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFD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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esc0NBQXNDLGdCQUFnQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0MsOENBQThDLE9BQU8sT0FBTyxXQUFXO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0MsOENBQThDLE9BQU8sT0FBTyxXQUFXLHlOQUF5TiwrQ0FBK0M7QUFDL1U7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBLHdCQUF3QixjQUFjLFdBQVcsY0FBYztBQUMvRDtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkJBQTJCO0FBQzFELHdDQUF3QyxjQUFjO0FBQ3REO0FBQ0EsMENBQTBDLGtDQUFrQztBQUM1RTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlOiBudWxsLFxuICAgIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQ6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTogbnVsbCxcbiAgICBtYWtlRXJyb3JpbmdTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U7XG4gICAgfSxcbiAgICBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQ7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTtcbiAgICB9LFxuICAgIG1ha2VFcnJvcmluZ1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VFcnJvcmluZ1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlZmxlY3QgPSByZXF1aXJlKFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3RcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZyA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9pbnZhcmlhbnRlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvclwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlciA9IHJlcXVpcmUoXCIuLi9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyXCIpO1xuY29uc3QgX3JlZmxlY3R1dGlscyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3JlZmxlY3QtdXRpbHNcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGF0aWNQcmVyZW5kZXJTZWFyY2hQYXJhbXMod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIHJ1bnRpbWUgcHJlcmVuZGVyLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc2OVwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzlcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmNvbnN0IGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhID0gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2UodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGF0aWNQcmVyZW5kZXJTZWFyY2hQYXJhbXMod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGNhY2hlIGNvbnRleHRzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc0N1wiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJ1bnRpbWVQcmVyZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZSh3b3JrU3RvcmUpIHtcbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAgIC8vIFdoZW4gdXNpbmcgZm9yY2VTdGF0aWMgd2Ugb3ZlcnJpZGUgYWxsIG90aGVyIGxvZ2ljIGFuZCBhbHdheXMganVzdCByZXR1cm4gYW4gZW1wdHlcbiAgICAgICAgLy8gZGljdGlvbmFyeSBvYmplY3QuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH1cbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgYWJvcnRzIChjYWNoZUNvbXBvbmVudHMpIGFuZCBzaG91bGQgc3RhbGxcbiAgICAgICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSB0byBlbnN1cmUgdGhlIFJTQyBzaWRlIGlzIGNvbnNpZGVyZWQgZHluYW1pY1xuICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdgc2VhcmNoUGFyYW1zYCcpO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGEgcnVudGltZSBwcmVyZW5kZXIuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzY4XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGNhY2hlIGNvbnRleHRzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc0NlwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuZnVuY3Rpb24gY3JlYXRlU3RhdGljUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAgIC8vIFdoZW4gdXNpbmcgZm9yY2VTdGF0aWMgd2Ugb3ZlcnJpZGUgYWxsIG90aGVyIGxvZ2ljIGFuZCBhbHdheXMganVzdCByZXR1cm4gYW4gZW1wdHlcbiAgICAgICAgLy8gZGljdGlvbmFyeSBvYmplY3QuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH1cbiAgICBzd2l0Y2gocHJlcmVuZGVyU3RvcmUudHlwZSl7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgLy8gV2UgYXJlIGluIGEgY2FjaGVDb21wb25lbnRzIChQUFIgb3Igb3RoZXJ3aXNlKSBwcmVyZW5kZXJcbiAgICAgICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgLy8gV2UgYXJlIGluIGEgbGVnYWN5IHN0YXRpYyBnZW5lcmF0aW9uIGFuZCBuZWVkIHRvIGludGVycnVwdCB0aGVcbiAgICAgICAgICAgIC8vIHByZXJlbmRlciB3aGVuIHNlYXJjaCBwYXJhbXMgYXJlIGFjY2Vzc2VkLlxuICAgICAgICAgICAgcmV0dXJuIG1ha2VFcnJvcmluZ0V4b3RpY1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBwcmVyZW5kZXJTdG9yZTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtVbml0U3RvcmUpIHtcbiAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5nLmRlbGF5VW50aWxSdW50aW1lU3RhZ2UpKHdvcmtVbml0U3RvcmUsIHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTID8gbWFrZVVudHJhY2tlZFNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKSA6IG1ha2VVbnRyYWNrZWRFeG90aWNTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSB5b3Ugd291bGQgbmV2ZXIgdXNlIG5leHQgZGV2IHdpdGggcHJvZHVjdGlvbiBOT0RFX0VOViB3ZSB1c2UgdGhpc1xuICAgICAgICAgICAgLy8gYXMgYSBwcm94eSBzbyB3ZSBjYW4gc3RhdGljYWxseSBleGNsdWRlIHRoaXMgY29kZSBmcm9tIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZFNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgQ2FjaGVkU2VhcmNoUGFyYW1zID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IENhY2hlZFNlYXJjaFBhcmFtc0ZvclVzZUNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1ha2VIYW5naW5nU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHByZXJlbmRlclN0b3JlKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHByZXJlbmRlclN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnYHNlYXJjaFBhcmFtc2AnKTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24ocHJvbWlzZSwgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgcHJvbWlzZSBoYXMgdGhpcyBwcm9wZXJ0eSBkaXJlY3RseS4gd2UgbXVzdCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgLy8gV2Uga25vdyBpdCBpc24ndCBhIGR5bmFtaWMgYWNjZXNzIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgLy8gdGhhdCB3YXMgcHJldmlvdXNseSB3cml0dGVuIHRvIHRoZSBwcm9taXNlIGFuZCB0aHVzIG5vdCBhbiB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtIHZhbHVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICBjYXNlICd0aGVuJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgYXdhaXQgc2VhcmNoUGFyYW1zYCwgYHNlYXJjaFBhcmFtcy50aGVuYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcuYW5ub3RhdGVEeW5hbWljQWNjZXNzKShleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgdXNlKHNlYXJjaFBhcmFtcylgLCBgc2VhcmNoUGFyYW1zLnN0YXR1c2AsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFubm90YXRlRHluYW1pY0FjY2VzcykoZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQocHJlcmVuZGVyU3RvcmUsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdFeG90aWNTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQod29ya1N0b3JlKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHVuZGVybHlpbmdTZWFyY2hQYXJhbXMgPSB7fTtcbiAgICAvLyBGb3Igc2VhcmNoIHBhcmFtcyB3ZSBkb24ndCBjb25zdHJ1Y3QgYSBSZWFjdFByb21pc2UgYmVjYXVzZSB3ZSB3YW50IHRvIGludGVycnVwdFxuICAgIC8vIHJlbmRlcmluZyBvbiBhbnkgcHJvcGVydHkgYWNjZXNzIHRoYXQgd2FzIG5vdCBzZXQgZnJvbSBvdXRzaWRlIGFuZCBzbyB3ZSBvbmx5IHdhbnRcbiAgICAvLyB0byBoYXZlIHByb3BlcnRpZXMgbGlrZSB2YWx1ZSBhbmQgc3RhdHVzIGlmIFJlYWN0IHNldHMgdGhlbS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihwcm9taXNlLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcm9taXNlIGhhcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5LiB3ZSBtdXN0IHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICAvLyBXZSBrbm93IGl0IGlzbid0IGEgZHluYW1pYyBhY2Nlc3MgYmVjYXVzZSBpdCBjYW4gb25seSBiZSBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAvLyB0aGF0IHdhcyBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhlIHByb21pc2UgYW5kIHRodXMgbm90IGFuIHVuZGVybHlpbmcgc2VhcmNoUGFyYW0gdmFsdWVcbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RoZW4nOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2Bhd2FpdCBzZWFyY2hQYXJhbXNgLCBgc2VhcmNoUGFyYW1zLnRoZW5gLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHVzZShzZWFyY2hQYXJhbXMpYCwgYHNlYXJjaFBhcmFtcy5zdGF0dXNgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycgJiYgIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgZXhwZWN0IGtleSBjaGVja2luZyB0byBiZSB1c2VkIGV4Y2VwdCBmb3IgdGVzdGluZyB0aGUgZXhpc3RlbmNlIG9mXG4gICAgICAgICAgICAvLyBzZWFyY2hQYXJhbXMgc28gd2UgbWFrZSBhbGwgaGFzIHRlc3RzIHRyaWdnZXIgZHluYW1pYy4gdGhpcyBtZWFucyB0aGF0IGBwcm9taXNlLnRoZW5gXG4gICAgICAgICAgICAvLyBjYW4gcmVzb2x2ZSB0byB0aGUgdGhlbiBmdW5jdGlvbiBvbiB0aGUgUHJvbWlzZSBwcm90b3R5cGUgYnV0ICd0aGVuJyBpbiBwcm9taXNlIHdpbGwgYXNzdW1lXG4gICAgICAgICAgICAvLyB5b3UgYXJlIHRlc3Rpbmcgd2hldGhlciB0aGUgc2VhcmNoUGFyYW1zIGhhcyBhICd0aGVuJyBwcm9wZXJ0eS5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBjYWNoZUNvbXBvbmVudHMpXG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHsuLi5zZWFyY2hQYXJhbXN9YCwgYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQod29ya1N0b3JlLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUVycm9yaW5nU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGUod29ya1N0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGUuZ2V0KHdvcmtTdG9yZSk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LiBXZSBrbm93IGl0XG4gICAgICAgICAgICAgICAgLy8gaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZyB0aGF0IHdhc1xuICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZ1xuICAgICAgICAgICAgICAgIC8vIHNlYXJjaFBhcmFtIHZhbHVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycgJiYgKHByb3AgPT09ICd0aGVuJyB8fCAhX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkpIHtcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZSkod29ya1N0b3JlLCBnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzOiBmdW5jdGlvbiBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBleHBlY3Qga2V5IGNoZWNraW5nIHRvIGJlIHVzZWQgZXhjZXB0IGZvciB0ZXN0aW5nIHRoZSBleGlzdGVuY2Ugb2ZcbiAgICAgICAgICAgIC8vIHNlYXJjaFBhcmFtcyBzbyB3ZSBtYWtlIGFsbCBoYXMgdGVzdHMgdGhyb3cgYW4gZXJyb3IuIHRoaXMgbWVhbnMgdGhhdCBgcHJvbWlzZS50aGVuYFxuICAgICAgICAgICAgLy8gY2FuIHJlc29sdmUgdG8gdGhlIHRoZW4gZnVuY3Rpb24gb24gdGhlIFByb21pc2UgcHJvdG90eXBlIGJ1dCAndGhlbicgaW4gcHJvbWlzZSB3aWxsIGFzc3VtZVxuICAgICAgICAgICAgLy8geW91IGFyZSB0ZXN0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaFBhcmFtcyBoYXMgYSAndGhlbicgcHJvcGVydHkuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmIChwcm9wID09PSAndGhlbicgfHwgIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpKSB7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUpKHdvcmtTdG9yZSwgaGFzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5czogZnVuY3Rpb24gb3duS2V5cygpIHtcbiAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlKSh3b3JrU3RvcmUsIG93bktleXMpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGUuc2V0KHdvcmtTdG9yZSwgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRFeG90aWNTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBzZWFyY2hQYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIpKHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlcmx5aW5nU2VhcmNoUGFyYW1zW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0ICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICAvLyBXZSBoYXZlIGFuIHVuZm9ydHVuYXRlIHNlcXVlbmNlIG9mIGV2ZW50cyB0aGF0IHJlcXVpcmVzIHRoaXMgaW5pdGlhbGl6YXRpb24gbG9naWMuIFdlIHdhbnQgdG8gaW5zdHJ1bWVudCB0aGUgdW5kZXJseWluZ1xuICAgIC8vIHNlYXJjaFBhcmFtcyBvYmplY3QgdG8gZGV0ZWN0IGlmIHlvdSBhcmUgYWNjZXNzaW5nIHZhbHVlcyBpbiBkZXYuIFRoaXMgaXMgdXNlZCBmb3Igd2FybmluZ3MgYW5kIGZvciB0aGluZ3MgbGlrZSB0aGUgc3RhdGljIHByZXJlbmRlclxuICAgIC8vIGluZGljYXRvci4gSG93ZXZlciB3aGVuIHdlIHBhc3MgdGhpcyBwcm94eSB0byBvdXIgUHJvbWlzZS5yZXNvbHZlKCkgYmVsb3cgdGhlIFZNIGNoZWNrcyBpZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgYSBwcm9taXNlIGJ5IGxvb2tpbmdcbiAgICAvLyBhdCB0aGUgYC50aGVuYCBwcm9wZXJ0eS4gVG8gb3VyIGR5bmFtaWMgdHJhY2tpbmcgbG9naWMgdGhpcyBpcyBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIGEgYHRoZW5gIHNlYXJjaFBhcmFtIGFuZCBzbyB3ZSB3b3VsZCBub3JtYWxseSB0cmlnZ2VyXG4gICAgLy8gZHluYW1pYyB0cmFja2luZy4gSG93ZXZlciB3ZSBrbm93IHRoYXQgdGhpcyAudGhlbiBpcyBub3QgcmVhbCBkeW5hbWljIGFjY2VzcywgaXQncyBqdXN0IGhvdyB0aGVuYWJsZXMgcmVzb2x2ZSBpbiBzZXF1ZW5jZS4gU28gd2UgaW50cm9kdWNlXG4gICAgLy8gdGhpcyBpbml0aWFsaXphdGlvbiBjb25jZXB0IHNvIHdlIG9taXQgdGhlIGR5bmFtaWMgY2hlY2sgdW50aWwgYWZ0ZXIgd2UndmUgY29uc3RydWN0ZWQgb3VyIHJlc29sdmVkIHByb21pc2UuXG4gICAgbGV0IHByb21pc2VJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIGNvbnN0IHByb3hpZWRVbmRlcmx5aW5nID0gbmV3IFByb3h5KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmIHByb21pc2VJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgIGlmIChzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcikod29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGlmIChzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2B7Li4uc2VhcmNoUGFyYW1zfWAsIGBPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2Ugc2VhcmNoUGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9ICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBwcm9taXNlLnRoZW4oKCk9PntcbiAgICAgICAgcHJvbWlzZUluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3hpZWRVbmRlcmx5aW5nW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0IChuZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAndGhlbicgJiYgc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgc2VhcmNoUGFyYW1zLnRoZW5gJztcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKShzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApICYmIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHwgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBleGlzdCBvbiB0aGUgcHJvbWlzZSBub3JcbiAgICAgICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApICYmIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHwgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBleGlzdCBvbiB0aGUgcHJvbWlzZSBub3JcbiAgICAgICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpYCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG4vLyBTaW1pbGFyIHRvIGBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzYCwgYnV0XG4vLyBqdXN0IGxvZ2dpbmcgdGhlIHN5bmMgYWNjZXNzIHdpdGhvdXQgYWN0dWFsbHkgZGVmaW5pbmcgdGhlIHNlYXJjaCBwYXJhbXMgb25cbi8vIHRoZSBwcm9taXNlLlxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZFNlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgY29uc3QgcHJvbWlzZSA9ICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApICYmIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHwgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBleGlzdCBvbiB0aGUgcHJvbWlzZSBub3JcbiAgICAgICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSkoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yU3luY0FjY2VzcyhzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uLCB1bnByb3hpZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIHN5bmNJT0Rldihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICAvLyBJbiBhbGwgY2FzZXMgd2Ugd2FybiBub3JtYWxseVxuICAgIGlmIChtaXNzaW5nUHJvcGVydGllcyAmJiBtaXNzaW5nUHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24ocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuRm9yU3luY0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgfVxuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUucHJlcmVuZGVyUGhhc2UgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgZHluYW1pY2FsbHkgaW4gZGV2LCB3ZSBuZWVkIHRvIGFkdmFuY2Ugb3V0IG9mXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBQcmVyZW5kZXIgZW52aXJvbm1lbnQgd2hlbiB3ZSByZWFkIFJlcXVlc3QgZGF0YSBzeW5jaHJvbm91c2x5LlxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmNvbnN0IHdhcm5Gb3JTeW5jQWNjZXNzID0gKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZVNlYXJjaEFjY2Vzc0Vycm9yKTtcbmNvbnN0IHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24gPSAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlSW5jb21wbGV0ZUVudW1lcmF0aW9uRXJyb3IpO1xuZnVuY3Rpb24gY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3Iocm91dGUsIGV4cHJlc3Npb24pIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBzZWFyY2hQYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMjQ5XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlID8gYFJvdXRlIFwiJHtyb3V0ZX1cIiBgIDogJ1RoaXMgcm91dGUgJztcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHNlYXJjaFBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdlcmUgbm90IGF2YWlsYWJsZSB0aHJvdWdoIGVudW1lcmF0aW9uIGAgKyBgYmVjYXVzZSB0aGV5IGNvbmZsaWN0IHdpdGggYnVpbHRpbiBvciB3ZWxsLWtub3duIHByb3BlcnR5IG5hbWVzOiBgICsgYCR7ZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKG1pc3NpbmdQcm9wZXJ0aWVzKX0uIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUyXCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyhwcm9wZXJ0aWVzKSB7XG4gICAgc3dpdGNoKHByb3BlcnRpZXMubGVuZ3RoKXtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ0V4cGVjdGVkIGRlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyB0byBiZSBjYWxsZWQgd2l0aCBhIG5vbi1lbXB0eSBsaXN0IG9mIHN0cmluZ3MuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU1MzFcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gYFxcYCR7cHJvcGVydGllc1swXX1cXGBgO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gYFxcYCR7cHJvcGVydGllc1swXX1cXGAgYW5kIFxcYCR7cHJvcGVydGllc1sxXX1cXGBgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxldCBkZXNjcmlwdGlvbiA9ICcnO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9IGBcXGAke3Byb3BlcnRpZXNbaV19XFxgLCBgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgLCBhbmQgXFxgJHtwcm9wZXJ0aWVzW3Byb3BlcnRpZXMubGVuZ3RoIC0gMV19XFxgYDtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247XG4gICAgICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZWFyY2gtcGFyYW1zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/search-params.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/request/utils.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/request/utils.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isRequestAPICallableInsideAfter: function() {\n return isRequestAPICallableInsideAfter;\n },\n throwForSearchParamsAccessInUseCache: function() {\n return throwForSearchParamsAccessInUseCache;\n },\n throwWithStaticGenerationBailoutError: function() {\n return throwWithStaticGenerationBailoutError;\n },\n throwWithStaticGenerationBailoutErrorWithDynamicError: function() {\n return throwWithStaticGenerationBailoutErrorWithDynamicError;\n }\n});\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _aftertaskasyncstorageexternal = __webpack_require__(/*! ../app-render/after-task-async-storage.external */ \"../app-render/after-task-async-storage.external\");\nfunction throwWithStaticGenerationBailoutError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E576\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E543\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {\n const error = Object.defineProperty(new Error(`Route ${workStore.route} used \"searchParams\" inside \"use cache\". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \"searchParams\" outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E779\",\n enumerable: false,\n configurable: true\n });\n Error.captureStackTrace(error, constructorOpt);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n}\nfunction isRequestAPICallableInsideAfter() {\n const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();\n return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9DZ0JBLCtCQUErQjtlQUEvQkE7O0lBZEFDLG9DQUFvQztlQUFwQ0E7O0lBbEJBQyxxQ0FBcUM7ZUFBckNBOztJQVNBQyxxREFBcUQ7ZUFBckRBOzs7cURBYnNCOzJEQUNBO0FBRy9CLFNBQVNELHNDQUNkRSxLQUFhLEVBQ2JDLFVBQWtCO0lBRWxCLE1BQU0scUJBRUwsQ0FGSyxJQUFJQyx5QkFBQUEscUJBQXFCLENBQzdCLENBQUMsTUFBTSxFQUFFRixNQUFNLGlEQUFpRCxFQUFFQyxXQUFXLDBIQUEwSCxDQUFDLEdBRHBNO2VBQUE7b0JBQUE7c0JBQUE7SUFFTjtBQUNGO0FBRU8sU0FBU0Ysc0RBQ2RDLEtBQWEsRUFDYkMsVUFBa0I7SUFFbEIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLHlCQUFBQSxxQkFBcUIsQ0FDN0IsQ0FBQyxNQUFNLEVBQUVGLE1BQU0sNEVBQTRFLEVBQUVDLFdBQVcsMEhBQTBILENBQUMsR0FEL047ZUFBQTtvQkFBQTtzQkFBQTtJQUVOO0FBQ0Y7QUFFTyxTQUFTSixxQ0FDZE0sU0FBb0IsRUFDcEJDLGNBQXdCO0lBRXhCLE1BQU1DLFFBQVEscUJBRWIsQ0FGYSxJQUFJQyxNQUNoQixDQUFDLE1BQU0sRUFBRUgsVUFBVUgsS0FBSyxDQUFDLHVYQUF1WCxDQUFDLEdBRHJZO2VBQUE7b0JBQUE7c0JBQUE7SUFFZDtJQUVBTSxNQUFNQyxpQkFBaUIsQ0FBQ0YsT0FBT0Q7SUFDL0JELFVBQVVLLHdCQUF3QixLQUFLSDtJQUV2QyxNQUFNQTtBQUNSO0FBRU8sU0FBU1Q7SUFDZCxNQUFNYSxpQkFBaUJDLCtCQUFBQSxxQkFBcUIsQ0FBQ0MsUUFBUTtJQUNyRCxPQUFPRixDQUFBQSxrQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsZUFBZ0JHLGtCQUFBQSxNQUF1QjtBQUNoRCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQgeyBhZnRlclRhc2tBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL2FmdGVyLXRhc2stYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHsgV29ya1N0b3JlIH0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmdcbik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICBgUm91dGUgJHtyb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcihcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiBuZXZlciB7XG4gIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gICAgYFJvdXRlICR7cm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZShcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbnN0cnVjdG9yT3B0OiBGdW5jdGlvblxuKTogbmV2ZXIge1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJzZWFyY2hQYXJhbXNcIiBpbnNpZGUgXCJ1c2UgY2FjaGVcIi4gQWNjZXNzaW5nIGR5bmFtaWMgcmVxdWVzdCBkYXRhIGluc2lkZSBhIGNhY2hlIHNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHNvbWUgc2VhcmNoIHBhcmFtcyBpbnNpZGUgYSBjYWNoZWQgZnVuY3Rpb24gYXdhaXQgXCJzZWFyY2hQYXJhbXNcIiBvdXRzaWRlIG9mIHRoZSBjYWNoZWQgZnVuY3Rpb24gYW5kIHBhc3Mgb25seSB0aGUgcmVxdWlyZWQgc2VhcmNoIHBhcmFtcyBhcyBhcmd1bWVudHMgdG8gdGhlIGNhY2hlZCBmdW5jdGlvbi4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJlcXVlc3QtaW4tdXNlLWNhY2hlYFxuICApXG5cbiAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsIGNvbnN0cnVjdG9yT3B0KVxuICB3b3JrU3RvcmUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yID8/PSBlcnJvclxuXG4gIHRocm93IGVycm9yXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyKCkge1xuICBjb25zdCBhZnRlclRhc2tTdG9yZSA9IGFmdGVyVGFza0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIHJldHVybiBhZnRlclRhc2tTdG9yZT8ucm9vdFRhc2tTcGF3blBoYXNlID09PSAnYWN0aW9uJ1xufVxuIl0sIm5hbWVzIjpbImlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIiLCJ0aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUiLCJ0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yIiwidGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IiLCJyb3V0ZSIsImV4cHJlc3Npb24iLCJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJ3b3JrU3RvcmUiLCJjb25zdHJ1Y3Rvck9wdCIsImVycm9yIiwiRXJyb3IiLCJjYXB0dXJlU3RhY2tUcmFjZSIsImludmFsaWREeW5hbWljVXNhZ2VFcnJvciIsImFmdGVyVGFza1N0b3JlIiwiYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJyb290VGFza1NwYXduUGhhc2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/response-cache/index.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return ResponseCache;\n }\n}));\n0 && 0;\nconst _batcher = __webpack_require__(/*! ../../lib/batcher */ \"(rsc)/./node_modules/next/dist/lib/batcher.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/response-cache/utils.js\");\n_export_star(__webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/response-cache/types.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\nclass ResponseCache {\n constructor(minimal_mode){\n this.batcher = _batcher.Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: _scheduler.scheduleOnNextTick\n });\n this.minimal_mode = minimal_mode;\n }\n async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, waitUntil } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, (cacheKey, resolve)=>{\n const prom = (async ()=>{\n var _this_previousCacheItem;\n // We keep the previous cache entry around to leverage when the\n // incremental cache is disabled in minimal mode.\n if (this.minimal_mode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === cacheKey && this.previousCacheItem.expiresAt > Date.now()) {\n return this.previousCacheItem.entry;\n }\n // Coerce the kindHint into a given kind for the incremental cache.\n const kind = (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind);\n let resolved = false;\n let cachedResponse = null;\n try {\n cachedResponse = !this.minimal_mode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n resolve(cachedResponse);\n resolved = true;\n if (!cachedResponse.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need\n // to update it yet.\n return null;\n }\n }\n const cacheEntry = await responseGenerator({\n hasResolved: resolved,\n previousCacheEntry: cachedResponse,\n isRevalidating: true\n });\n // If the cache entry couldn't be generated, we don't want to cache\n // the result.\n if (!cacheEntry) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n const resolveValue = await (0, _utils.fromResponseCacheEntry)({\n ...cacheEntry,\n isMiss: !cachedResponse\n });\n if (!resolveValue) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n // For on-demand revalidate wait to resolve until cache is set.\n // Otherwise resolve now.\n if (!isOnDemandRevalidate && !resolved) {\n resolve(resolveValue);\n resolved = true;\n }\n // We want to persist the result only if it has a cache control value\n // defined.\n if (resolveValue.cacheControl) {\n if (this.minimal_mode) {\n this.previousCacheItem = {\n key: cacheKey,\n entry: resolveValue,\n expiresAt: Date.now() + 1000\n };\n } else {\n await incrementalCache.set(key, resolveValue.value, {\n cacheControl: resolveValue.cacheControl,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (cachedResponse == null ? void 0 : cachedResponse.cacheControl) {\n const newRevalidate = Math.min(Math.max(cachedResponse.cacheControl.revalidate || 3, 3), 30);\n const newExpire = cachedResponse.cacheControl.expire === undefined ? undefined : Math.max(newRevalidate + 3, cachedResponse.cacheControl.expire);\n await incrementalCache.set(key, cachedResponse.value, {\n cacheControl: {\n revalidate: newRevalidate,\n expire: newExpire\n },\n isRoutePPREnabled,\n isFallback\n });\n }\n // While revalidating in the background we can't reject as we already\n // resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err;\n }\n })();\n // we need to ensure background revalidates are\n // passed to waitUntil\n if (waitUntil) {\n waitUntil(prom);\n }\n return prom;\n });\n return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsd0VBQW1CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxlQUFlLG1CQUFPLENBQUMsOEVBQVM7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLDhFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsMkJBQTJCLE1BQU0sSUFBSSxHQUFHLGlDQUFpQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxnQkFBZ0IsMkdBQTJHO0FBQzNIO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2VDYWNoZTtcbiAgICB9XG59KTtcbjAgJiYgX19leHBvcnQocmVxdWlyZShcIi4vdHlwZXNcIikpO1xuY29uc3QgX2JhdGNoZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL2JhdGNoZXJcIik7XG5jb25zdCBfc2NoZWR1bGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9zY2hlZHVsZXJcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbl9leHBvcnRfc3RhcihyZXF1aXJlKFwiLi90eXBlc1wiKSwgZXhwb3J0cyk7XG5mdW5jdGlvbiBfZXhwb3J0X3N0YXIoZnJvbSwgdG8pIHtcbiAgICBPYmplY3Qua2V5cyhmcm9tKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG8sIGspKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodG8sIGssIHtcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tW2tdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZyb207XG59XG5jbGFzcyBSZXNwb25zZUNhY2hlIHtcbiAgICBjb25zdHJ1Y3RvcihtaW5pbWFsX21vZGUpe1xuICAgICAgICB0aGlzLmJhdGNoZXIgPSBfYmF0Y2hlci5CYXRjaGVyLmNyZWF0ZSh7XG4gICAgICAgICAgICAvLyBFbnN1cmUgb24tZGVtYW5kIHJldmFsaWRhdGUgZG9lc24ndCBibG9jayBub3JtYWwgcmVxdWVzdHMsIGl0IHNob3VsZCBiZVxuICAgICAgICAgICAgLy8gc2FmZSB0byBydW4gYW4gb24tZGVtYW5kIHJldmFsaWRhdGUgZm9yIHRoZSBzYW1lIGtleSBhcyBhIG5vcm1hbCByZXF1ZXN0LlxuICAgICAgICAgICAgY2FjaGVLZXlGbjogKHsga2V5LCBpc09uRGVtYW5kUmV2YWxpZGF0ZSB9KT0+YCR7a2V5fS0ke2lzT25EZW1hbmRSZXZhbGlkYXRlID8gJzEnIDogJzAnfWAsXG4gICAgICAgICAgICAvLyBXZSB3YWl0IHRvIGRvIGFueSBhc3luYyB3b3JrIHVudGlsIGFmdGVyIHdlJ3ZlIGFkZGVkIG91ciBwcm9taXNlIHRvXG4gICAgICAgICAgICAvLyBgcGVuZGluZ1Jlc3BvbnNlc2AgdG8gZW5zdXJlIHRoYXQgYW55IGFueSBvdGhlciBjYWxscyB3aWxsIHJldXNlIHRoZVxuICAgICAgICAgICAgLy8gc2FtZSBwcm9taXNlIHVudGlsIHdlJ3ZlIGZ1bGx5IGZpbmlzaGVkIG91ciB3b3JrLlxuICAgICAgICAgICAgc2NoZWR1bGVyRm46IF9zY2hlZHVsZXIuc2NoZWR1bGVPbk5leHRUaWNrXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1pbmltYWxfbW9kZSA9IG1pbmltYWxfbW9kZTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0KGtleSwgcmVzcG9uc2VHZW5lcmF0b3IsIGNvbnRleHQpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8ga2V5IGZvciB0aGUgY2FjaGUsIHdlIGNhbid0IHBvc3NpYmx5IGxvb2sgdGhpcyB1cCBpbiB0aGVcbiAgICAgICAgLy8gY2FjaGUgc28ganVzdCByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgcmVzcG9uc2UgZ2VuZXJhdG9yLlxuICAgICAgICBpZiAoIWtleSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlR2VuZXJhdG9yKHtcbiAgICAgICAgICAgICAgICBoYXNSZXNvbHZlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNDYWNoZUVudHJ5OiBudWxsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGluY3JlbWVudGFsQ2FjaGUsIGlzT25EZW1hbmRSZXZhbGlkYXRlID0gZmFsc2UsIGlzRmFsbGJhY2sgPSBmYWxzZSwgaXNSb3V0ZVBQUkVuYWJsZWQgPSBmYWxzZSwgd2FpdFVudGlsIH0gPSBjb250ZXh0O1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYmF0Y2hlci5iYXRjaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZVxuICAgICAgICB9LCAoY2FjaGVLZXksIHJlc29sdmUpPT57XG4gICAgICAgICAgICBjb25zdCBwcm9tID0gKGFzeW5jICgpPT57XG4gICAgICAgICAgICAgICAgdmFyIF90aGlzX3ByZXZpb3VzQ2FjaGVJdGVtO1xuICAgICAgICAgICAgICAgIC8vIFdlIGtlZXAgdGhlIHByZXZpb3VzIGNhY2hlIGVudHJ5IGFyb3VuZCB0byBsZXZlcmFnZSB3aGVuIHRoZVxuICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudGFsIGNhY2hlIGlzIGRpc2FibGVkIGluIG1pbmltYWwgbW9kZS5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUgJiYgKChfdGhpc19wcmV2aW91c0NhY2hlSXRlbSA9IHRoaXMucHJldmlvdXNDYWNoZUl0ZW0pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19wcmV2aW91c0NhY2hlSXRlbS5rZXkpID09PSBjYWNoZUtleSAmJiB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtLmV4cGlyZXNBdCA+IERhdGUubm93KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0uZW50cnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIENvZXJjZSB0aGUga2luZEhpbnQgaW50byBhIGdpdmVuIGtpbmQgZm9yIHRoZSBpbmNyZW1lbnRhbCBjYWNoZS5cbiAgICAgICAgICAgICAgICBjb25zdCBraW5kID0gKDAsIF91dGlscy5yb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kKShjb250ZXh0LnJvdXRlS2luZCk7XG4gICAgICAgICAgICAgICAgbGV0IHJlc29sdmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbGV0IGNhY2hlZFJlc3BvbnNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZWRSZXNwb25zZSA9ICF0aGlzLm1pbmltYWxfbW9kZSA/IGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuZ2V0KGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkOiBjb250ZXh0LmlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICB9KSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNwb25zZSAmJiAhaXNPbkRlbWFuZFJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoY2FjaGVkUmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNwb25zZS5pc1N0YWxlIHx8IGNvbnRleHQuaXNQcmVmZXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBjYWNoZWQgdmFsdWUgaXMgc3RpbGwgdmFsaWQsIHNvIHdlIGRvbid0IG5lZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB1cGRhdGUgaXQgeWV0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhY2hlRW50cnkgPSBhd2FpdCByZXNwb25zZUdlbmVyYXRvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNSZXNvbHZlZDogcmVzb2x2ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NhY2hlRW50cnk6IGNhY2hlZFJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRpbmc6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBlbnRyeSBjb3VsZG4ndCBiZSBnZW5lcmF0ZWQsIHdlIGRvbid0IHdhbnQgdG8gY2FjaGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVbnNldCB0aGUgcHJldmlvdXMgY2FjaGUgaXRlbSBpZiBpdCB3YXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlKSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZVZhbHVlID0gYXdhaXQgKDAsIF91dGlscy5mcm9tUmVzcG9uc2VDYWNoZUVudHJ5KSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jYWNoZUVudHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNNaXNzOiAhY2FjaGVkUmVzcG9uc2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzb2x2ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVbnNldCB0aGUgcHJldmlvdXMgY2FjaGUgaXRlbSBpZiBpdCB3YXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlKSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRm9yIG9uLWRlbWFuZCByZXZhbGlkYXRlIHdhaXQgdG8gcmVzb2x2ZSB1bnRpbCBjYWNoZSBpcyBzZXQuXG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSByZXNvbHZlIG5vdy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc09uRGVtYW5kUmV2YWxpZGF0ZSAmJiAhcmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzb2x2ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHBlcnNpc3QgdGhlIHJlc3VsdCBvbmx5IGlmIGl0IGhhcyBhIGNhY2hlIGNvbnRyb2wgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5lZC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVWYWx1ZS5jYWNoZUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiByZXNvbHZlVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIDEwMDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLnNldChrZXksIHJlc29sdmVWYWx1ZS52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHJlc29sdmVWYWx1ZS5jYWNoZUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVWYWx1ZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiBhIHBhdGggaXMgZXJyb3Jpbmcgd2UgYXV0b21hdGljYWxseSByZS1zZXQgdGhlIGV4aXN0aW5nIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggbmV3IHJldmFsaWRhdGUgYW5kIGV4cGlyZSB0aW1lcyB0byBwcmV2ZW50IG5vbi1zdG9wIHJldHJ5aW5nLlxuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzcG9uc2UgPT0gbnVsbCA/IHZvaWQgMCA6IGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UmV2YWxpZGF0ZSA9IE1hdGgubWluKE1hdGgubWF4KGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlIHx8IDMsIDMpLCAzMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdFeHBpcmUgPSBjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wuZXhwaXJlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBNYXRoLm1heChuZXdSZXZhbGlkYXRlICsgMywgY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sLmV4cGlyZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLnNldChrZXksIGNhY2hlZFJlc3BvbnNlLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG5ld1JldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogbmV3RXhwaXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXaGlsZSByZXZhbGlkYXRpbmcgaW4gdGhlIGJhY2tncm91bmQgd2UgY2FuJ3QgcmVqZWN0IGFzIHdlIGFscmVhZHlcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVzb2x2ZWQgdGhlIGNhY2hlIGVudHJ5IHNvIGxvZyB0aGUgZXJyb3IgaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlbid0IHJlc29sdmVkIHlldCwgc28gbGV0J3MgdGhyb3cgdG8gaW5kaWNhdGUgYW4gZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBlbnN1cmUgYmFja2dyb3VuZCByZXZhbGlkYXRlcyBhcmVcbiAgICAgICAgICAgIC8vIHBhc3NlZCB0byB3YWl0VW50aWxcbiAgICAgICAgICAgIGlmICh3YWl0VW50aWwpIHtcbiAgICAgICAgICAgICAgICB3YWl0VW50aWwocHJvbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoMCwgX3V0aWxzLnRvUmVzcG9uc2VDYWNoZUVudHJ5KShyZXNwb25zZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/response-cache/types.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/types.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n CachedRouteKind: function() {\n return CachedRouteKind;\n },\n IncrementalCacheKind: function() {\n return IncrementalCacheKind;\n }\n});\nvar CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) {\n CachedRouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n CachedRouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n CachedRouteKind[\"PAGES\"] = \"PAGES\";\n CachedRouteKind[\"FETCH\"] = \"FETCH\";\n CachedRouteKind[\"REDIRECT\"] = \"REDIRECT\";\n CachedRouteKind[\"IMAGE\"] = \"IMAGE\";\n return CachedRouteKind;\n}({});\nvar IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) {\n IncrementalCacheKind[\"APP_PAGE\"] = \"APP_PAGE\";\n IncrementalCacheKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n IncrementalCacheKind[\"PAGES\"] = \"PAGES\";\n IncrementalCacheKind[\"FETCH\"] = \"FETCH\";\n IncrementalCacheKind[\"IMAGE\"] = \"IMAGE\";\n return IncrementalCacheKind;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS90eXBlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGUvdHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBDYWNoZWRSb3V0ZUtpbmQ6IG51bGwsXG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQ2FjaGVkUm91dGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIENhY2hlZFJvdXRlS2luZDtcbiAgICB9LFxuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEluY3JlbWVudGFsQ2FjaGVLaW5kO1xuICAgIH1cbn0pO1xudmFyIENhY2hlZFJvdXRlS2luZCA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQ2FjaGVkUm91dGVLaW5kKSB7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJGRVRDSFwiXSA9IFwiRkVUQ0hcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJSRURJUkVDVFwiXSA9IFwiUkVESVJFQ1RcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gQ2FjaGVkUm91dGVLaW5kO1xufSh7fSk7XG52YXIgSW5jcmVtZW50YWxDYWNoZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEluY3JlbWVudGFsQ2FjaGVLaW5kKSB7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIkZFVENIXCJdID0gXCJGRVRDSFwiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIEluY3JlbWVudGFsQ2FjaGVLaW5kO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/types.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/response-cache/utils.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/utils.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromResponseCacheEntry: function() {\n return fromResponseCacheEntry;\n },\n routeKindToIncrementalCacheKind: function() {\n return routeKindToIncrementalCacheKind;\n },\n toResponseCacheEntry: function() {\n return toResponseCacheEntry;\n }\n});\nconst _types = __webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/response-cache/types.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../render-result */ \"(rsc)/./node_modules/next/dist/server/render-result.js\"));\nconst _routekind = __webpack_require__(/*! ../route-kind */ \"(rsc)/./node_modules/next/dist/server/route-kind.js\");\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nasync function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nasync function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nfunction routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case _routekind.RouteKind.PAGES:\n return _types.IncrementalCacheKind.PAGES;\n case _routekind.RouteKind.APP_PAGE:\n return _types.IncrementalCacheKind.APP_PAGE;\n case _routekind.RouteKind.IMAGE:\n return _types.IncrementalCacheKind.IMAGE;\n case _routekind.RouteKind.APP_ROUTE:\n return _types.IncrementalCacheKind.APP_ROUTE;\n case _routekind.RouteKind.PAGES_API:\n // Pages Router API routes are not cached in the incremental cache.\n throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E64\",\n enumerable: false,\n configurable: true\n });\n default:\n return routeKind;\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGVBQWUsbUJBQU8sQ0FBQyw4RUFBUztBQUNoQyw2REFBNkQsbUJBQU8sQ0FBQyxnRkFBa0I7QUFDdkYsbUJBQW1CLG1CQUFPLENBQUMsMEVBQWU7QUFDMUMsbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxVQUFVO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZyb21SZXNwb25zZUNhY2hlRW50cnk6IG51bGwsXG4gICAgcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZDogbnVsbCxcbiAgICB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZyb21SZXNwb25zZUNhY2hlRW50cnk7XG4gICAgfSxcbiAgICByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQ7XG4gICAgfSxcbiAgICB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTtcbiAgICB9XG59KTtcbmNvbnN0IF90eXBlcyA9IHJlcXVpcmUoXCIuL3R5cGVzXCIpO1xuY29uc3QgX3JlbmRlcnJlc3VsdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi9yZW5kZXItcmVzdWx0XCIpKTtcbmNvbnN0IF9yb3V0ZWtpbmQgPSByZXF1aXJlKFwiLi4vcm91dGUta2luZFwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeShjYWNoZUVudHJ5KSB7XG4gICAgdmFyIF9jYWNoZUVudHJ5X3ZhbHVlLCBfY2FjaGVFbnRyeV92YWx1ZTE7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2FjaGVFbnRyeSxcbiAgICAgICAgdmFsdWU6ICgoX2NhY2hlRW50cnlfdmFsdWUgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgaHRtbDogYXdhaXQgY2FjaGVFbnRyeS52YWx1ZS5odG1sLnRvVW5jaHVua2VkU3RyaW5nKHRydWUpLFxuICAgICAgICAgICAgcGFnZURhdGE6IGNhY2hlRW50cnkudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiBjYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNhY2hlRW50cnkudmFsdWUuc3RhdHVzXG4gICAgICAgIH0gOiAoKF9jYWNoZUVudHJ5X3ZhbHVlMSA9IGNhY2hlRW50cnkudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfY2FjaGVFbnRyeV92YWx1ZTEua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICAgICAgaHRtbDogYXdhaXQgY2FjaGVFbnRyeS52YWx1ZS5odG1sLnRvVW5jaHVua2VkU3RyaW5nKHRydWUpLFxuICAgICAgICAgICAgcG9zdHBvbmVkOiBjYWNoZUVudHJ5LnZhbHVlLnBvc3Rwb25lZCxcbiAgICAgICAgICAgIHJzY0RhdGE6IGNhY2hlRW50cnkudmFsdWUucnNjRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IGNhY2hlRW50cnkudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogY2FjaGVFbnRyeS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICBzZWdtZW50RGF0YTogY2FjaGVFbnRyeS52YWx1ZS5zZWdtZW50RGF0YVxuICAgICAgICB9IDogY2FjaGVFbnRyeS52YWx1ZVxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeShyZXNwb25zZSkge1xuICAgIHZhciBfcmVzcG9uc2VfdmFsdWUsIF9yZXNwb25zZV92YWx1ZTE7XG4gICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNNaXNzOiByZXNwb25zZS5pc01pc3MsXG4gICAgICAgIGlzU3RhbGU6IHJlc3BvbnNlLmlzU3RhbGUsXG4gICAgICAgIGNhY2hlQ29udHJvbDogcmVzcG9uc2UuY2FjaGVDb250cm9sLFxuICAgICAgICB2YWx1ZTogKChfcmVzcG9uc2VfdmFsdWUgPSByZXNwb25zZS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNwb25zZV92YWx1ZS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sLCBfY29uc3RhbnRzLkhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUiksXG4gICAgICAgICAgICBwYWdlRGF0YTogcmVzcG9uc2UudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS52YWx1ZS5zdGF0dXNcbiAgICAgICAgfSA6ICgoX3Jlc3BvbnNlX3ZhbHVlMSA9IHJlc3BvbnNlLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3BvbnNlX3ZhbHVlMS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sLCBfY29uc3RhbnRzLkhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUiksXG4gICAgICAgICAgICByc2NEYXRhOiByZXNwb25zZS52YWx1ZS5yc2NEYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2UudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgcG9zdHBvbmVkOiByZXNwb25zZS52YWx1ZS5wb3N0cG9uZWQsXG4gICAgICAgICAgICBzZWdtZW50RGF0YTogcmVzcG9uc2UudmFsdWUuc2VnbWVudERhdGFcbiAgICAgICAgfSA6IHJlc3BvbnNlLnZhbHVlXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQocm91dGVLaW5kKSB7XG4gICAgc3dpdGNoKHJvdXRlS2luZCl7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVM6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLlBBR0VTO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLkFQUF9QQUdFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5BUFBfUEFHRTtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5JTUFHRTpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuSU1BR0U7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuQVBQX1JPVVRFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5BUFBfUk9VVEU7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVNfQVBJOlxuICAgICAgICAgICAgLy8gUGFnZXMgUm91dGVyIEFQSSByb3V0ZXMgYXJlIG5vdCBjYWNoZWQgaW4gdGhlIGluY3JlbWVudGFsIGNhY2hlLlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgVW5leHBlY3RlZCByb3V0ZSBraW5kICR7cm91dGVLaW5kfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjRcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlS2luZDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/route-kind.js": /*!*****************************************************!*\ !*** ./node_modules/next/dist/server/route-kind.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkNBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLElBQUksRUFBRSxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixJQUFJLEVBQUUsR0FBRztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZUtpbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJvdXRlS2luZDtcbiAgICB9XG59KTtcbnZhciBSb3V0ZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJvdXRlS2luZCkge1xuICAgIC8qKlxuICAgKiBgUEFHRVNgIHJlcHJlc2VudHMgYWxsIHRoZSBSZWFjdCBwYWdlcyB0aGF0IGFyZSB1bmRlciBgcGFnZXMvYC5cbiAgICovIFJvdXRlS2luZFtcIlBBR0VTXCJdID0gXCJQQUdFU1wiO1xuICAgIC8qKlxuICAgKiBgUEFHRVNfQVBJYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyB1bmRlciBgcGFnZXMvYXBpL2AuXG4gICAqLyBSb3V0ZUtpbmRbXCJQQUdFU19BUElcIl0gPSBcIlBBR0VTX0FQSVwiO1xuICAgIC8qKlxuICAgKiBgQVBQX1BBR0VgIHJlcHJlc2VudHMgYWxsIHRoZSBSZWFjdCBwYWdlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHBhZ2Uue2osdH1zeyx4fWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICAvKipcbiAgICogYEFQUF9ST1VURWAgcmVwcmVzZW50cyBhbGwgdGhlIEFQSSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHJvdXRlLntqLHR9c3sseH1gLlxuICAgKi8gUm91dGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICAvKipcbiAgICogYElNQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgaW1hZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCBieSBgbmV4dC9pbWFnZWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gUm91dGVLaW5kO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWtpbmQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-kind.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js": /*!****************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js ***! \****************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactDOM;\n\n//# sourceMappingURL=react-dom.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1kb20uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix3TEFBZ0Y7O0FBRWhGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvcnNjL3JlYWN0LWRvbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXJzYyddLlJlYWN0RE9NO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1kb20uanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js": /*!****************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js ***! \****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvcnNjL3JlYWN0LWpzeC1kZXYtcnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXJzYyddLlJlYWN0SnN4RGV2UnVudGltZTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtanN4LWRldi1ydW50aW1lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js": /*!************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js ***! \************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactJsxRuntime;\n\n//# sourceMappingURL=react-jsx-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLCtMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9yc2MvcmVhY3QtanN4LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdEpzeFJ1bnRpbWU7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWpzeC1ydW50aW1lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactServerDOMWebpackServer;\n\n//# sourceMappingURL=react-server-dom-webpack-server.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3QtcnNjJ10uUmVhY3RTZXJ2ZXJET01XZWJwYWNrU2VydmVyO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactServerDOMWebpackStatic;\n\n//# sourceMappingURL=react-server-dom-webpack-static.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc3RhdGljLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc3RhdGljLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3QtcnNjJ10uUmVhY3RTZXJ2ZXJET01XZWJwYWNrU3RhdGljO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc3RhdGljLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js": /*!************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].React;\n\n//# sourceMappingURL=react.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHFMQUE2RTs7QUFFN0UiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9yc2MvcmVhY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js": /*!**********************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-route/module.compiled.js ***! \**********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-route.runtime.dev.js */ \"next/dist/compiled/next-server/app-route.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixJQUFJLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNGLFFBQVEsS0FBcUMsRUFBRSxFQWMxQyxDQUFDO0FBQ04sWUFBWSxJQUFzQztBQUNsRCxnQkFBZ0IsS0FBcUIsRUFBRSxFQUUxQixDQUFDO0FBQ2QsZ0JBQWdCLDhKQUFtRjtBQUNuRztBQUNBLFVBQVUsS0FBSyxFQU1OO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcm91dGUvbW9kdWxlLmpzJyk7XG59IGVsc2Uge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS10dXJiby1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS10dXJiby1leHBlcmltZW50YWwucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS1leHBlcmltZW50YWwucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcm91dGUtdHVyYm8ucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLXR1cmJvLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcm91dGUucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/send-payload.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/send-payload.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n sendEtagResponse: function() {\n return sendEtagResponse;\n },\n sendRenderResult: function() {\n return sendRenderResult;\n }\n});\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _etag = __webpack_require__(/*! ./lib/etag */ \"(rsc)/./node_modules/next/dist/server/lib/etag.js\");\nconst _fresh = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/fresh */ \"(rsc)/./node_modules/next/dist/compiled/fresh/index.js\"));\nconst _cachecontrol = __webpack_require__(/*! ./lib/cache-control */ \"(rsc)/./node_modules/next/dist/server/lib/cache-control.js\");\nconst _constants = __webpack_require__(/*! ../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction sendEtagResponse(req, res, etag) {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */ res.setHeader('ETag', etag);\n }\n if ((0, _fresh.default)(req.headers, {\n etag\n })) {\n res.statusCode = 304;\n res.end();\n return true;\n }\n return false;\n}\nasync function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl }) {\n if ((0, _utils.isResSent)(res)) {\n return;\n }\n if (poweredByHeader && result.contentType === _constants.HTML_CONTENT_TYPE_HEADER) {\n res.setHeader('X-Powered-By', 'Next.js');\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString();\n if (generateEtags && payload !== null) {\n const etag = (0, _etag.generateETag)(payload);\n if (sendEtagResponse(req, res, etag)) {\n return;\n }\n }\n if (!res.getHeader('Content-Type') && result.contentType) {\n res.setHeader('Content-Type', result.contentType);\n }\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload));\n }\n if (req.method === 'HEAD') {\n res.end(null);\n return;\n }\n if (payload !== null) {\n res.end(payload);\n return;\n }\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res);\n}\n\n//# sourceMappingURL=send-payload.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZW5kLXBheWxvYWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZUFBZSxtQkFBTyxDQUFDLCtFQUFxQjtBQUM1QyxjQUFjLG1CQUFPLENBQUMscUVBQVk7QUFDbEMsc0RBQXNELG1CQUFPLENBQUMsd0ZBQTBCO0FBQ3hGLHNCQUFzQixtQkFBTyxDQUFDLHVGQUFxQjtBQUNuRCxtQkFBbUIsbUJBQU8sQ0FBQyx5RUFBa0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLGdFQUFnRTtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcGF5bG9hZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNlbmRFdGFnUmVzcG9uc2U6IG51bGwsXG4gICAgc2VuZFJlbmRlclJlc3VsdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBzZW5kRXRhZ1Jlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRFdGFnUmVzcG9uc2U7XG4gICAgfSxcbiAgICBzZW5kUmVuZGVyUmVzdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQ7XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi91dGlsc1wiKTtcbmNvbnN0IF9ldGFnID0gcmVxdWlyZShcIi4vbGliL2V0YWdcIik7XG5jb25zdCBfZnJlc2ggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoXCIpKTtcbmNvbnN0IF9jYWNoZWNvbnRyb2wgPSByZXF1aXJlKFwiLi9saWIvY2FjaGUtY29udHJvbFwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gc2VuZEV0YWdSZXNwb25zZShyZXEsIHJlcywgZXRhZykge1xuICAgIGlmIChldGFnKSB7XG4gICAgICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZ2VuZXJhdGluZyBhIDMwNCByZXNwb25zZSBNVVNUIGdlbmVyYXRlIGFueSBvZiB0aGVcbiAgICAgKiBmb2xsb3dpbmcgaGVhZGVyIGZpZWxkcyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBzZW50IGluIGEgMjAwIChPSylcbiAgICAgKiByZXNwb25zZSB0byB0aGUgc2FtZSByZXF1ZXN0OiBDYWNoZS1Db250cm9sLCBDb250ZW50LUxvY2F0aW9uLCBEYXRlLFxuICAgICAqIEVUYWcsIEV4cGlyZXMsIGFuZCBWYXJ5LiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMiNzZWN0aW9uLTQuMVxuICAgICAqLyByZXMuc2V0SGVhZGVyKCdFVGFnJywgZXRhZyk7XG4gICAgfVxuICAgIGlmICgoMCwgX2ZyZXNoLmRlZmF1bHQpKHJlcS5oZWFkZXJzLCB7XG4gICAgICAgIGV0YWdcbiAgICB9KSkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDMwNDtcbiAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuYXN5bmMgZnVuY3Rpb24gc2VuZFJlbmRlclJlc3VsdCh7IHJlcSwgcmVzLCByZXN1bHQsIGdlbmVyYXRlRXRhZ3MsIHBvd2VyZWRCeUhlYWRlciwgY2FjaGVDb250cm9sIH0pIHtcbiAgICBpZiAoKDAsIF91dGlscy5pc1Jlc1NlbnQpKHJlcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXJlZEJ5SGVhZGVyICYmIHJlc3VsdC5jb250ZW50VHlwZSA9PT0gX2NvbnN0YW50cy5IVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignWC1Qb3dlcmVkLUJ5JywgJ05leHQuanMnKTtcbiAgICB9XG4gICAgLy8gSWYgY2FjaGUgY29udHJvbCBpcyBhbHJlYWR5IHNldCBvbiB0aGUgcmVzcG9uc2Ugd2UgZG9uJ3RcbiAgICAvLyBvdmVycmlkZSBpdCB0byBhbGxvdyB1c2VycyB0byBjdXN0b21pemUgaXQgdmlhIG5leHQuY29uZmlnXG4gICAgaWYgKGNhY2hlQ29udHJvbCAmJiAhcmVzLmdldEhlYWRlcignQ2FjaGUtQ29udHJvbCcpKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAoMCwgX2NhY2hlY29udHJvbC5nZXRDYWNoZUNvbnRyb2xIZWFkZXIpKGNhY2hlQ29udHJvbCkpO1xuICAgIH1cbiAgICBjb25zdCBwYXlsb2FkID0gcmVzdWx0LmlzRHluYW1pYyA/IG51bGwgOiByZXN1bHQudG9VbmNodW5rZWRTdHJpbmcoKTtcbiAgICBpZiAoZ2VuZXJhdGVFdGFncyAmJiBwYXlsb2FkICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGV0YWcgPSAoMCwgX2V0YWcuZ2VuZXJhdGVFVGFnKShwYXlsb2FkKTtcbiAgICAgICAgaWYgKHNlbmRFdGFnUmVzcG9uc2UocmVxLCByZXMsIGV0YWcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyZXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKSAmJiByZXN1bHQuY29udGVudFR5cGUpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgcmVzdWx0LmNvbnRlbnRUeXBlKTtcbiAgICB9XG4gICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1MZW5ndGgnLCBCdWZmZXIuYnl0ZUxlbmd0aChwYXlsb2FkKSk7XG4gICAgfVxuICAgIGlmIChyZXEubWV0aG9kID09PSAnSEVBRCcpIHtcbiAgICAgICAgcmVzLmVuZChudWxsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocGF5bG9hZCAhPT0gbnVsbCkge1xuICAgICAgICByZXMuZW5kKHBheWxvYWQpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFBpcGUgdGhlIHJlbmRlciByZXN1bHQgdG8gdGhlIHJlc3BvbnNlIGFmdGVyIHdlIGdldCBhIHdyaXRlciBmb3IgaXQuXG4gICAgYXdhaXQgcmVzdWx0LnBpcGVUb05vZGVSZXNwb25zZShyZXMpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZW5kLXBheWxvYWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/send-payload.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/send-response.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/send-response.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"sendResponse\", ({\n enumerable: true,\n get: function() {\n return sendResponse;\n }\n}));\nconst _helpers = __webpack_require__(/*! ./base-http/helpers */ \"(rsc)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _utils = __webpack_require__(/*! ./web/utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nasync function sendResponse(req, res, response, waitUntil) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextResponse)(res)) {\n var // Copy over the response headers.\n _response_headers;\n // Copy over the response status.\n res.statusCode = response.status;\n res.statusMessage = response.statusText;\n // TODO: this is not spec-compliant behavior and we should not restrict\n // headers that are allowed to appear many times.\n //\n // See:\n // https://github.com/vercel/next.js/pull/70127\n const headersWithMultipleValuesAllowed = [\n // can add more headers to this list if needed\n 'set-cookie',\n 'www-authenticate',\n 'proxy-authenticate',\n 'vary'\n ];\n (_response_headers = response.headers) == null ? void 0 : _response_headers.forEach((value, name)=>{\n // `x-middleware-set-cookie` is an internal header not needed for the response\n if (name.toLowerCase() === 'x-middleware-set-cookie') {\n return;\n }\n // The append handling is special cased for `set-cookie`.\n if (name.toLowerCase() === 'set-cookie') {\n // TODO: (wyattjoh) replace with native response iteration when we can upgrade undici\n for (const cookie of (0, _utils.splitCookiesString)(value)){\n res.appendHeader(name, cookie);\n }\n } else {\n // only append the header if it is either not present in the outbound response\n // or if the header supports multiple values\n const isHeaderPresent = typeof res.getHeader(name) !== 'undefined';\n if (headersWithMultipleValuesAllowed.includes(name.toLowerCase()) || !isHeaderPresent) {\n res.appendHeader(name, value);\n }\n }\n });\n /**\n * The response can't be directly piped to the underlying response. The\n * following is duplicated from the edge runtime handler.\n *\n * See packages/next/server/next-server.ts\n */ const { originalResponse } = res;\n // A response body must not be sent for HEAD requests. See https://httpwg.org/specs/rfc9110.html#HEAD\n if (response.body && req.method !== 'HEAD') {\n await (0, _pipereadable.pipeToNodeResponse)(response.body, originalResponse, waitUntil);\n } else {\n originalResponse.end();\n }\n }\n}\n\n//# sourceMappingURL=send-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZW5kLXJlc3BvbnNlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsaUJBQWlCLG1CQUFPLENBQUMsdUZBQXFCO0FBQzlDLHNCQUFzQixtQkFBTyxDQUFDLCtFQUFpQjtBQUMvQyxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEM7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFtQjtBQUNuQztBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvc2VuZC1yZXNwb25zZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInNlbmRSZXNwb25zZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VuZFJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX2hlbHBlcnMgPSByZXF1aXJlKFwiLi9iYXNlLWh0dHAvaGVscGVyc1wiKTtcbmNvbnN0IF9waXBlcmVhZGFibGUgPSByZXF1aXJlKFwiLi9waXBlLXJlYWRhYmxlXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4vd2ViL3V0aWxzXCIpO1xuYXN5bmMgZnVuY3Rpb24gc2VuZFJlc3BvbnNlKHJlcSwgcmVzLCByZXNwb25zZSwgd2FpdFVudGlsKSB7XG4gICAgaWYgKC8vIFRoZSB0eXBlIGNoZWNrIGhlcmUgZW5zdXJlcyB0aGF0IGByZXFgIGlzIGNvcnJlY3RseSB0eXBlZCwgYW5kIHRoZVxuICAgIC8vIGVudmlyb25tZW50IHZhcmlhYmxlIGNoZWNrIHByb3ZpZGVzIGRlYWQgY29kZSBlbGltaW5hdGlvbi5cbiAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiAoMCwgX2hlbHBlcnMuaXNOb2RlTmV4dFJlc3BvbnNlKShyZXMpKSB7XG4gICAgICAgIHZhciAvLyBDb3B5IG92ZXIgdGhlIHJlc3BvbnNlIGhlYWRlcnMuXG4gICAgICAgIF9yZXNwb25zZV9oZWFkZXJzO1xuICAgICAgICAvLyBDb3B5IG92ZXIgdGhlIHJlc3BvbnNlIHN0YXR1cy5cbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgIHJlcy5zdGF0dXNNZXNzYWdlID0gcmVzcG9uc2Uuc3RhdHVzVGV4dDtcbiAgICAgICAgLy8gVE9ETzogdGhpcyBpcyBub3Qgc3BlYy1jb21wbGlhbnQgYmVoYXZpb3IgYW5kIHdlIHNob3VsZCBub3QgcmVzdHJpY3RcbiAgICAgICAgLy8gaGVhZGVycyB0aGF0IGFyZSBhbGxvd2VkIHRvIGFwcGVhciBtYW55IHRpbWVzLlxuICAgICAgICAvL1xuICAgICAgICAvLyBTZWU6XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzcwMTI3XG4gICAgICAgIGNvbnN0IGhlYWRlcnNXaXRoTXVsdGlwbGVWYWx1ZXNBbGxvd2VkID0gW1xuICAgICAgICAgICAgLy8gY2FuIGFkZCBtb3JlIGhlYWRlcnMgdG8gdGhpcyBsaXN0IGlmIG5lZWRlZFxuICAgICAgICAgICAgJ3NldC1jb29raWUnLFxuICAgICAgICAgICAgJ3d3dy1hdXRoZW50aWNhdGUnLFxuICAgICAgICAgICAgJ3Byb3h5LWF1dGhlbnRpY2F0ZScsXG4gICAgICAgICAgICAndmFyeSdcbiAgICAgICAgXTtcbiAgICAgICAgKF9yZXNwb25zZV9oZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVycykgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNwb25zZV9oZWFkZXJzLmZvckVhY2goKHZhbHVlLCBuYW1lKT0+e1xuICAgICAgICAgICAgLy8gYHgtbWlkZGxld2FyZS1zZXQtY29va2llYCBpcyBhbiBpbnRlcm5hbCBoZWFkZXIgbm90IG5lZWRlZCBmb3IgdGhlIHJlc3BvbnNlXG4gICAgICAgICAgICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpID09PSAneC1taWRkbGV3YXJlLXNldC1jb29raWUnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVGhlIGFwcGVuZCBoYW5kbGluZyBpcyBzcGVjaWFsIGNhc2VkIGZvciBgc2V0LWNvb2tpZWAuXG4gICAgICAgICAgICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiAod3lhdHRqb2gpIHJlcGxhY2Ugd2l0aCBuYXRpdmUgcmVzcG9uc2UgaXRlcmF0aW9uIHdoZW4gd2UgY2FuIHVwZ3JhZGUgdW5kaWNpXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb29raWUgb2YgKDAsIF91dGlscy5zcGxpdENvb2tpZXNTdHJpbmcpKHZhbHVlKSl7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIobmFtZSwgY29va2llKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIG9ubHkgYXBwZW5kIHRoZSBoZWFkZXIgaWYgaXQgaXMgZWl0aGVyIG5vdCBwcmVzZW50IGluIHRoZSBvdXRib3VuZCByZXNwb25zZVxuICAgICAgICAgICAgICAgIC8vIG9yIGlmIHRoZSBoZWFkZXIgc3VwcG9ydHMgbXVsdGlwbGUgdmFsdWVzXG4gICAgICAgICAgICAgICAgY29uc3QgaXNIZWFkZXJQcmVzZW50ID0gdHlwZW9mIHJlcy5nZXRIZWFkZXIobmFtZSkgIT09ICd1bmRlZmluZWQnO1xuICAgICAgICAgICAgICAgIGlmIChoZWFkZXJzV2l0aE11bHRpcGxlVmFsdWVzQWxsb3dlZC5pbmNsdWRlcyhuYW1lLnRvTG93ZXJDYXNlKCkpIHx8ICFpc0hlYWRlclByZXNlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZEhlYWRlcihuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICogVGhlIHJlc3BvbnNlIGNhbid0IGJlIGRpcmVjdGx5IHBpcGVkIHRvIHRoZSB1bmRlcmx5aW5nIHJlc3BvbnNlLiBUaGVcbiAgICAgKiBmb2xsb3dpbmcgaXMgZHVwbGljYXRlZCBmcm9tIHRoZSBlZGdlIHJ1bnRpbWUgaGFuZGxlci5cbiAgICAgKlxuICAgICAqIFNlZSBwYWNrYWdlcy9uZXh0L3NlcnZlci9uZXh0LXNlcnZlci50c1xuICAgICAqLyBjb25zdCB7IG9yaWdpbmFsUmVzcG9uc2UgfSA9IHJlcztcbiAgICAgICAgLy8gQSByZXNwb25zZSBib2R5IG11c3Qgbm90IGJlIHNlbnQgZm9yIEhFQUQgcmVxdWVzdHMuIFNlZSBodHRwczovL2h0dHB3Zy5vcmcvc3BlY3MvcmZjOTExMC5odG1sI0hFQURcbiAgICAgICAgaWYgKHJlc3BvbnNlLmJvZHkgJiYgcmVxLm1ldGhvZCAhPT0gJ0hFQUQnKSB7XG4gICAgICAgICAgICBhd2FpdCAoMCwgX3BpcGVyZWFkYWJsZS5waXBlVG9Ob2RlUmVzcG9uc2UpKHJlc3BvbnNlLmJvZHksIG9yaWdpbmFsUmVzcG9uc2UsIHdhaXRVbnRpbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcmlnaW5hbFJlc3BvbnNlLmVuZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZW5kLXJlc3BvbnNlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/send-response.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/server-utils.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/server-utils.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getPreviouslyRevalidatedTags: function() {\n return getPreviouslyRevalidatedTags;\n },\n getServerUtils: function() {\n return getServerUtils;\n },\n interpolateDynamicPath: function() {\n return interpolateDynamicPath;\n },\n normalizeCdnUrl: function() {\n return normalizeCdnUrl;\n },\n normalizeDynamicRouteParams: function() {\n return normalizeDynamicRouteParams;\n }\n});\nconst _normalizelocalepath = __webpack_require__(/*! ../shared/lib/i18n/normalize-locale-path */ \"(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _pathmatch = __webpack_require__(/*! ../shared/lib/router/utils/path-match */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-match.js\");\nconst _routeregex = __webpack_require__(/*! ../shared/lib/router/utils/route-regex */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nconst _routematcher = __webpack_require__(/*! ../shared/lib/router/utils/route-matcher */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _preparedestination = __webpack_require__(/*! ../shared/lib/router/utils/prepare-destination */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/prepare-destination.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _apppaths = __webpack_require__(/*! ../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _constants = __webpack_require__(/*! ../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _utils = __webpack_require__(/*! ./web/utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _decodequerypathparameter = __webpack_require__(/*! ./lib/decode-query-path-parameter */ \"(rsc)/./node_modules/next/dist/server/lib/decode-query-path-parameter.js\");\nconst _url = __webpack_require__(/*! ../lib/url */ \"(rsc)/./node_modules/next/dist/lib/url.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _parseandvalidateflightrouterstate = __webpack_require__(/*! ./app-render/parse-and-validate-flight-router-state */ \"(rsc)/./node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js\");\nconst _generateinterceptionroutesrewrites = __webpack_require__(/*! ../lib/generate-interception-routes-rewrites */ \"(rsc)/./node_modules/next/dist/lib/generate-interception-routes-rewrites.js\");\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _computechangedpath = __webpack_require__(/*! ../client/components/router-reducer/compute-changed-path */ \"(rsc)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\");\nfunction filterInternalQuery(query, paramKeys) {\n // this is used to pass query information in rewrites\n // but should not be exposed in final query\n delete query['nextInternalLocale'];\n for(const key in query){\n const isNextQueryPrefix = key !== _constants.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_constants.NEXT_QUERY_PARAM_PREFIX);\n const isNextInterceptionMarkerPrefix = key !== _constants.NEXT_INTERCEPTION_MARKER_PREFIX && key.startsWith(_constants.NEXT_INTERCEPTION_MARKER_PREFIX);\n if (isNextQueryPrefix || isNextInterceptionMarkerPrefix || paramKeys.includes(key)) {\n delete query[key];\n }\n }\n}\nfunction normalizeCdnUrl(req, paramKeys) {\n // make sure to normalize req.url from CDNs to strip dynamic and rewrite\n // params from the query which are added during routing\n const _parsedUrl = (0, _url.parseReqUrl)(req.url);\n // we can't normalize if we can't parse\n if (!_parsedUrl) {\n return req.url;\n }\n delete _parsedUrl.search;\n filterInternalQuery(_parsedUrl.query, paramKeys);\n req.url = (0, _formaturl.formatUrl)(_parsedUrl);\n}\nfunction interpolateDynamicPath(pathname, params, defaultRouteRegex) {\n if (!defaultRouteRegex) return pathname;\n for (const param of Object.keys(defaultRouteRegex.groups)){\n const { optional, repeat } = defaultRouteRegex.groups[param];\n let builtParam = `[${repeat ? '...' : ''}${param}]`;\n if (optional) {\n builtParam = `[${builtParam}]`;\n }\n let paramValue;\n const value = params[param];\n if (Array.isArray(value)) {\n paramValue = value.map((v)=>v && encodeURIComponent(v)).join('/');\n } else if (value) {\n paramValue = encodeURIComponent(value);\n } else {\n paramValue = '';\n }\n if (paramValue || optional) {\n pathname = pathname.replaceAll(builtParam, paramValue);\n }\n }\n return pathname;\n}\nfunction normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional) {\n let hasValidParams = true;\n let params = {};\n for (const key of Object.keys(defaultRouteRegex.groups)){\n let value = query[key];\n if (typeof value === 'string') {\n value = (0, _apppaths.normalizeRscURL)(value);\n } else if (Array.isArray(value)) {\n value = value.map(_apppaths.normalizeRscURL);\n }\n // if the value matches the default value we can't rely\n // on the parsed params, this is used to signal if we need\n // to parse x-now-route-matches or not\n const defaultValue = defaultRouteMatches[key];\n const isOptional = defaultRouteRegex.groups[key].optional;\n const isDefaultValue = Array.isArray(defaultValue) ? defaultValue.some((defaultVal)=>{\n return Array.isArray(value) ? value.some((val)=>val.includes(defaultVal)) : value == null ? void 0 : value.includes(defaultVal);\n }) : value == null ? void 0 : value.includes(defaultValue);\n if (isDefaultValue || typeof value === 'undefined' && !(isOptional && ignoreMissingOptional)) {\n return {\n params: {},\n hasValidParams: false\n };\n }\n // non-provided optional values should be undefined so normalize\n // them to undefined\n if (isOptional && (!value || Array.isArray(value) && value.length === 1 && // fallback optional catch-all SSG pages have\n // [[...paramName]] for the root path on Vercel\n (value[0] === 'index' || value[0] === `[[...${key}]]`))) {\n value = undefined;\n delete query[key];\n }\n // query values from the proxy aren't already split into arrays\n // so make sure to normalize catch-all values\n if (value && typeof value === 'string' && defaultRouteRegex.groups[key].repeat) {\n value = value.split('/');\n }\n if (value) {\n params[key] = value;\n }\n }\n return {\n params,\n hasValidParams\n };\n}\nfunction getServerUtils({ page, i18n, basePath, rewrites, pageIsDynamic, trailingSlash, caseSensitive }) {\n let defaultRouteRegex;\n let dynamicRouteMatcher;\n let defaultRouteMatches;\n if (pageIsDynamic) {\n defaultRouteRegex = (0, _routeregex.getNamedRouteRegex)(page, {\n prefixRouteKeys: false\n });\n dynamicRouteMatcher = (0, _routematcher.getRouteMatcher)(defaultRouteRegex);\n defaultRouteMatches = dynamicRouteMatcher(page);\n }\n function handleRewrites(req, parsedUrl) {\n const rewriteParams = {};\n let fsPathname = parsedUrl.pathname;\n const matchesPage = ()=>{\n const fsPathnameNoSlash = (0, _removetrailingslash.removeTrailingSlash)(fsPathname || '');\n return fsPathnameNoSlash === (0, _removetrailingslash.removeTrailingSlash)(page) || (dynamicRouteMatcher == null ? void 0 : dynamicRouteMatcher(fsPathnameNoSlash));\n };\n const checkRewrite = (rewrite)=>{\n const matcher = (0, _pathmatch.getPathMatch)(rewrite.source + (trailingSlash ? '(/)?' : ''), {\n removeUnnamedParams: true,\n strict: true,\n sensitive: !!caseSensitive\n });\n if (!parsedUrl.pathname) return false;\n let params = matcher(parsedUrl.pathname);\n if ((rewrite.has || rewrite.missing) && params) {\n const hasParams = (0, _preparedestination.matchHas)(req, parsedUrl.query, rewrite.has, rewrite.missing);\n if (hasParams) {\n Object.assign(params, hasParams);\n } else {\n params = false;\n }\n }\n if (params) {\n try {\n // An interception rewrite might reference a dynamic param for a route the user\n // is currently on, which wouldn't be extractable from the matched route params.\n // This attempts to extract the dynamic params from the provided router state.\n if ((0, _generateinterceptionroutesrewrites.isInterceptionRouteRewrite)(rewrite)) {\n const stateHeader = req.headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER];\n if (stateHeader) {\n params = {\n ...(0, _computechangedpath.getSelectedParams)((0, _parseandvalidateflightrouterstate.parseAndValidateFlightRouterState)(stateHeader)),\n ...params\n };\n }\n }\n } catch (err) {\n // this is a no-op -- we couldn't extract dynamic params from the provided router state,\n // so we'll just use the params from the route matcher\n }\n const { parsedDestination, destQuery } = (0, _preparedestination.prepareDestination)({\n appendParamsToQuery: true,\n destination: rewrite.destination,\n params: params,\n query: parsedUrl.query\n });\n // if the rewrite destination is external break rewrite chain\n if (parsedDestination.protocol) {\n return true;\n }\n Object.assign(rewriteParams, destQuery, params);\n Object.assign(parsedUrl.query, parsedDestination.query);\n delete parsedDestination.query;\n // for each property in parsedUrl.query, if the value is parametrized (eg :foo), look up the value\n // in rewriteParams and replace the parametrized value with the actual value\n // this is used when the rewrite destination does not contain the original source param\n // and so the value is still parametrized and needs to be replaced with the actual rewrite param\n Object.entries(parsedUrl.query).forEach(([key, value])=>{\n if (value && typeof value === 'string' && value.startsWith(':')) {\n const paramName = value.slice(1);\n const actualValue = rewriteParams[paramName];\n if (actualValue) {\n parsedUrl.query[key] = actualValue;\n }\n }\n });\n Object.assign(parsedUrl, parsedDestination);\n fsPathname = parsedUrl.pathname;\n if (!fsPathname) return false;\n if (basePath) {\n fsPathname = fsPathname.replace(new RegExp(`^${basePath}`), '') || '/';\n }\n if (i18n) {\n const result = (0, _normalizelocalepath.normalizeLocalePath)(fsPathname, i18n.locales);\n fsPathname = result.pathname;\n parsedUrl.query.nextInternalLocale = result.detectedLocale || params.nextInternalLocale;\n }\n if (fsPathname === page) {\n return true;\n }\n if (pageIsDynamic && dynamicRouteMatcher) {\n const dynamicParams = dynamicRouteMatcher(fsPathname);\n if (dynamicParams) {\n parsedUrl.query = {\n ...parsedUrl.query,\n ...dynamicParams\n };\n return true;\n }\n }\n }\n return false;\n };\n for (const rewrite of rewrites.beforeFiles || []){\n checkRewrite(rewrite);\n }\n if (fsPathname !== page) {\n let finished = false;\n for (const rewrite of rewrites.afterFiles || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n if (!finished && !matchesPage()) {\n for (const rewrite of rewrites.fallback || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n }\n }\n return rewriteParams;\n }\n function getParamsFromRouteMatches(routeMatchesHeader) {\n // If we don't have a default route regex, we can't get params from route\n // matches\n if (!defaultRouteRegex) return null;\n const { groups, routeKeys } = defaultRouteRegex;\n const matcher = (0, _routematcher.getRouteMatcher)({\n re: {\n // Simulate a RegExp match from the \\`req.url\\` input\n exec: (str)=>{\n // Normalize all the prefixed query params.\n const obj = Object.fromEntries(new URLSearchParams(str));\n for (const [key, value] of Object.entries(obj)){\n const normalizedKey = (0, _utils.normalizeNextQueryParam)(key);\n if (!normalizedKey) continue;\n obj[normalizedKey] = value;\n delete obj[key];\n }\n // Use all the named route keys.\n const result = {};\n for (const keyName of Object.keys(routeKeys)){\n const paramName = routeKeys[keyName];\n // If this param name is not a valid parameter name, then skip it.\n if (!paramName) continue;\n const group = groups[paramName];\n const value = obj[keyName];\n // When we're missing a required param, we can't match the route.\n if (!group.optional && !value) return null;\n result[group.pos] = value;\n }\n return result;\n }\n },\n groups\n });\n const routeMatches = matcher(routeMatchesHeader);\n if (!routeMatches) return null;\n return routeMatches;\n }\n function normalizeQueryParams(query, routeParamKeys) {\n // this is used to pass query information in rewrites\n // but should not be exposed in final query\n delete query['nextInternalLocale'];\n for (const [key, value] of Object.entries(query)){\n const normalizedKey = (0, _utils.normalizeNextQueryParam)(key);\n if (!normalizedKey) continue;\n // Remove the prefixed key from the query params because we want\n // to consume it for the dynamic route matcher.\n delete query[key];\n routeParamKeys.add(normalizedKey);\n if (typeof value === 'undefined') continue;\n query[normalizedKey] = Array.isArray(value) ? value.map((v)=>(0, _decodequerypathparameter.decodeQueryPathParameter)(v)) : (0, _decodequerypathparameter.decodeQueryPathParameter)(value);\n }\n }\n return {\n handleRewrites,\n defaultRouteRegex,\n dynamicRouteMatcher,\n defaultRouteMatches,\n normalizeQueryParams,\n getParamsFromRouteMatches,\n /**\n * Normalize dynamic route params.\n *\n * @param query - The query params to normalize.\n * @param ignoreMissingOptional - Whether to ignore missing optional params.\n * @returns The normalized params and whether they are valid.\n */ normalizeDynamicRouteParams: (query, ignoreMissingOptional)=>{\n if (!defaultRouteRegex || !defaultRouteMatches) {\n return {\n params: {},\n hasValidParams: false\n };\n }\n return normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional);\n },\n normalizeCdnUrl: (req, paramKeys)=>normalizeCdnUrl(req, paramKeys),\n interpolateDynamicPath: (pathname, params)=>interpolateDynamicPath(pathname, params, defaultRouteRegex),\n filterInternalQuery: (query, paramKeys)=>filterInternalQuery(query, paramKeys)\n };\n}\nfunction getPreviouslyRevalidatedTags(headers, previewModeId) {\n return typeof headers[_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER] === 'string' && headers[_constants.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER] === previewModeId ? headers[_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(',') : [];\n}\n\n//# sourceMappingURL=server-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZXJ2ZXItdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNkJBQTZCLG1CQUFPLENBQUMseUhBQTBDO0FBQy9FLG1CQUFtQixtQkFBTyxDQUFDLG1IQUF1QztBQUNsRSxvQkFBb0IsbUJBQU8sQ0FBQyxxSEFBd0M7QUFDcEUsc0JBQXNCLG1CQUFPLENBQUMseUhBQTBDO0FBQ3hFLDRCQUE0QixtQkFBTyxDQUFDLHFJQUFnRDtBQUNwRiw2QkFBNkIsbUJBQU8sQ0FBQyx5SUFBa0Q7QUFDdkYsa0JBQWtCLG1CQUFPLENBQUMsaUhBQXNDO0FBQ2hFLG1CQUFtQixtQkFBTyxDQUFDLHlFQUFrQjtBQUM3QyxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEMsa0NBQWtDLG1CQUFPLENBQUMsbUhBQW1DO0FBQzdFLGFBQWEsbUJBQU8sQ0FBQyw2REFBWTtBQUNqQyxtQkFBbUIsbUJBQU8sQ0FBQyxtSEFBdUM7QUFDbEUsMkNBQTJDLG1CQUFPLENBQUMsdUpBQXFEO0FBQ3hHLDRDQUE0QyxtQkFBTyxDQUFDLGlJQUE4QztBQUNsRywwQkFBMEIsbUJBQU8sQ0FBQyx1SEFBeUM7QUFDM0UsNEJBQTRCLG1CQUFPLENBQUMseUpBQTBEO0FBQzlGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtQkFBbUI7QUFDbkMsNkJBQTZCLG9CQUFvQixFQUFFLE1BQU07QUFDekQ7QUFDQSw2QkFBNkIsV0FBVztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCxJQUFJO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsNkVBQTZFO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLCtCQUErQjtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1FQUFtRSxTQUFTO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlcnZlci11dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldFByZXZpb3VzbHlSZXZhbGlkYXRlZFRhZ3M6IG51bGwsXG4gICAgZ2V0U2VydmVyVXRpbHM6IG51bGwsXG4gICAgaW50ZXJwb2xhdGVEeW5hbWljUGF0aDogbnVsbCxcbiAgICBub3JtYWxpemVDZG5Vcmw6IG51bGwsXG4gICAgbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldFByZXZpb3VzbHlSZXZhbGlkYXRlZFRhZ3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UHJldmlvdXNseVJldmFsaWRhdGVkVGFncztcbiAgICB9LFxuICAgIGdldFNlcnZlclV0aWxzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFNlcnZlclV0aWxzO1xuICAgIH0sXG4gICAgaW50ZXJwb2xhdGVEeW5hbWljUGF0aDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnRlcnBvbGF0ZUR5bmFtaWNQYXRoO1xuICAgIH0sXG4gICAgbm9ybWFsaXplQ2RuVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUNkblVybDtcbiAgICB9LFxuICAgIG5vcm1hbGl6ZUR5bmFtaWNSb3V0ZVBhcmFtczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVEeW5hbWljUm91dGVQYXJhbXM7XG4gICAgfVxufSk7XG5jb25zdCBfbm9ybWFsaXplbG9jYWxlcGF0aCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCIpO1xuY29uc3QgX3BhdGhtYXRjaCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXRoLW1hdGNoXCIpO1xuY29uc3QgX3JvdXRlcmVnZXggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXhcIik7XG5jb25zdCBfcm91dGVtYXRjaGVyID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXJcIik7XG5jb25zdCBfcHJlcGFyZWRlc3RpbmF0aW9uID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3ByZXBhcmUtZGVzdGluYXRpb25cIik7XG5jb25zdCBfcmVtb3ZldHJhaWxpbmdzbGFzaCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2hcIik7XG5jb25zdCBfYXBwcGF0aHMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9saWIvY29uc3RhbnRzXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4vd2ViL3V0aWxzXCIpO1xuY29uc3QgX2RlY29kZXF1ZXJ5cGF0aHBhcmFtZXRlciA9IHJlcXVpcmUoXCIuL2xpYi9kZWNvZGUtcXVlcnktcGF0aC1wYXJhbWV0ZXJcIik7XG5jb25zdCBfdXJsID0gcmVxdWlyZShcIi4uL2xpYi91cmxcIik7XG5jb25zdCBfZm9ybWF0dXJsID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XG5jb25zdCBfcGFyc2VhbmR2YWxpZGF0ZWZsaWdodHJvdXRlcnN0YXRlID0gcmVxdWlyZShcIi4vYXBwLXJlbmRlci9wYXJzZS1hbmQtdmFsaWRhdGUtZmxpZ2h0LXJvdXRlci1zdGF0ZVwiKTtcbmNvbnN0IF9nZW5lcmF0ZWludGVyY2VwdGlvbnJvdXRlc3Jld3JpdGVzID0gcmVxdWlyZShcIi4uL2xpYi9nZW5lcmF0ZS1pbnRlcmNlcHRpb24tcm91dGVzLXJld3JpdGVzXCIpO1xuY29uc3QgX2FwcHJvdXRlcmhlYWRlcnMgPSByZXF1aXJlKFwiLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCIpO1xuY29uc3QgX2NvbXB1dGVjaGFuZ2VkcGF0aCA9IHJlcXVpcmUoXCIuLi9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9jb21wdXRlLWNoYW5nZWQtcGF0aFwiKTtcbmZ1bmN0aW9uIGZpbHRlckludGVybmFsUXVlcnkocXVlcnksIHBhcmFtS2V5cykge1xuICAgIC8vIHRoaXMgaXMgdXNlZCB0byBwYXNzIHF1ZXJ5IGluZm9ybWF0aW9uIGluIHJld3JpdGVzXG4gICAgLy8gYnV0IHNob3VsZCBub3QgYmUgZXhwb3NlZCBpbiBmaW5hbCBxdWVyeVxuICAgIGRlbGV0ZSBxdWVyeVsnbmV4dEludGVybmFsTG9jYWxlJ107XG4gICAgZm9yKGNvbnN0IGtleSBpbiBxdWVyeSl7XG4gICAgICAgIGNvbnN0IGlzTmV4dFF1ZXJ5UHJlZml4ID0ga2V5ICE9PSBfY29uc3RhbnRzLk5FWFRfUVVFUllfUEFSQU1fUFJFRklYICYmIGtleS5zdGFydHNXaXRoKF9jb25zdGFudHMuTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgpO1xuICAgICAgICBjb25zdCBpc05leHRJbnRlcmNlcHRpb25NYXJrZXJQcmVmaXggPSBrZXkgIT09IF9jb25zdGFudHMuTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCAmJiBrZXkuc3RhcnRzV2l0aChfY29uc3RhbnRzLk5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVgpO1xuICAgICAgICBpZiAoaXNOZXh0UXVlcnlQcmVmaXggfHwgaXNOZXh0SW50ZXJjZXB0aW9uTWFya2VyUHJlZml4IHx8IHBhcmFtS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICBkZWxldGUgcXVlcnlba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNkblVybChyZXEsIHBhcmFtS2V5cykge1xuICAgIC8vIG1ha2Ugc3VyZSB0byBub3JtYWxpemUgcmVxLnVybCBmcm9tIENETnMgdG8gc3RyaXAgZHluYW1pYyBhbmQgcmV3cml0ZVxuICAgIC8vIHBhcmFtcyBmcm9tIHRoZSBxdWVyeSB3aGljaCBhcmUgYWRkZWQgZHVyaW5nIHJvdXRpbmdcbiAgICBjb25zdCBfcGFyc2VkVXJsID0gKDAsIF91cmwucGFyc2VSZXFVcmwpKHJlcS51cmwpO1xuICAgIC8vIHdlIGNhbid0IG5vcm1hbGl6ZSBpZiB3ZSBjYW4ndCBwYXJzZVxuICAgIGlmICghX3BhcnNlZFVybCkge1xuICAgICAgICByZXR1cm4gcmVxLnVybDtcbiAgICB9XG4gICAgZGVsZXRlIF9wYXJzZWRVcmwuc2VhcmNoO1xuICAgIGZpbHRlckludGVybmFsUXVlcnkoX3BhcnNlZFVybC5xdWVyeSwgcGFyYW1LZXlzKTtcbiAgICByZXEudXJsID0gKDAsIF9mb3JtYXR1cmwuZm9ybWF0VXJsKShfcGFyc2VkVXJsKTtcbn1cbmZ1bmN0aW9uIGludGVycG9sYXRlRHluYW1pY1BhdGgocGF0aG5hbWUsIHBhcmFtcywgZGVmYXVsdFJvdXRlUmVnZXgpIHtcbiAgICBpZiAoIWRlZmF1bHRSb3V0ZVJlZ2V4KSByZXR1cm4gcGF0aG5hbWU7XG4gICAgZm9yIChjb25zdCBwYXJhbSBvZiBPYmplY3Qua2V5cyhkZWZhdWx0Um91dGVSZWdleC5ncm91cHMpKXtcbiAgICAgICAgY29uc3QgeyBvcHRpb25hbCwgcmVwZWF0IH0gPSBkZWZhdWx0Um91dGVSZWdleC5ncm91cHNbcGFyYW1dO1xuICAgICAgICBsZXQgYnVpbHRQYXJhbSA9IGBbJHtyZXBlYXQgPyAnLi4uJyA6ICcnfSR7cGFyYW19XWA7XG4gICAgICAgIGlmIChvcHRpb25hbCkge1xuICAgICAgICAgICAgYnVpbHRQYXJhbSA9IGBbJHtidWlsdFBhcmFtfV1gO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJhbVZhbHVlO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc1twYXJhbV07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcGFyYW1WYWx1ZSA9IHZhbHVlLm1hcCgodik9PnYgJiYgZW5jb2RlVVJJQ29tcG9uZW50KHYpKS5qb2luKCcvJyk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHBhcmFtVmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1WYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbVZhbHVlIHx8IG9wdGlvbmFsKSB7XG4gICAgICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2VBbGwoYnVpbHRQYXJhbSwgcGFyYW1WYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBhdGhuYW1lO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKHF1ZXJ5LCBkZWZhdWx0Um91dGVSZWdleCwgZGVmYXVsdFJvdXRlTWF0Y2hlcywgaWdub3JlTWlzc2luZ09wdGlvbmFsKSB7XG4gICAgbGV0IGhhc1ZhbGlkUGFyYW1zID0gdHJ1ZTtcbiAgICBsZXQgcGFyYW1zID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzKSl7XG4gICAgICAgIGxldCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9ICgwLCBfYXBwcGF0aHMubm9ybWFsaXplUnNjVVJMKSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUubWFwKF9hcHBwYXRocy5ub3JtYWxpemVSc2NVUkwpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBtYXRjaGVzIHRoZSBkZWZhdWx0IHZhbHVlIHdlIGNhbid0IHJlbHlcbiAgICAgICAgLy8gb24gdGhlIHBhcnNlZCBwYXJhbXMsIHRoaXMgaXMgdXNlZCB0byBzaWduYWwgaWYgd2UgbmVlZFxuICAgICAgICAvLyB0byBwYXJzZSB4LW5vdy1yb3V0ZS1tYXRjaGVzIG9yIG5vdFxuICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBkZWZhdWx0Um91dGVNYXRjaGVzW2tleV07XG4gICAgICAgIGNvbnN0IGlzT3B0aW9uYWwgPSBkZWZhdWx0Um91dGVSZWdleC5ncm91cHNba2V5XS5vcHRpb25hbDtcbiAgICAgICAgY29uc3QgaXNEZWZhdWx0VmFsdWUgPSBBcnJheS5pc0FycmF5KGRlZmF1bHRWYWx1ZSkgPyBkZWZhdWx0VmFsdWUuc29tZSgoZGVmYXVsdFZhbCk9PntcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLnNvbWUoKHZhbCk9PnZhbC5pbmNsdWRlcyhkZWZhdWx0VmFsKSkgOiB2YWx1ZSA9PSBudWxsID8gdm9pZCAwIDogdmFsdWUuaW5jbHVkZXMoZGVmYXVsdFZhbCk7XG4gICAgICAgIH0pIDogdmFsdWUgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbHVlLmluY2x1ZGVzKGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIGlmIChpc0RlZmF1bHRWYWx1ZSB8fCB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnICYmICEoaXNPcHRpb25hbCAmJiBpZ25vcmVNaXNzaW5nT3B0aW9uYWwpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHBhcmFtczoge30sXG4gICAgICAgICAgICAgICAgaGFzVmFsaWRQYXJhbXM6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIG5vbi1wcm92aWRlZCBvcHRpb25hbCB2YWx1ZXMgc2hvdWxkIGJlIHVuZGVmaW5lZCBzbyBub3JtYWxpemVcbiAgICAgICAgLy8gdGhlbSB0byB1bmRlZmluZWRcbiAgICAgICAgaWYgKGlzT3B0aW9uYWwgJiYgKCF2YWx1ZSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDEgJiYgLy8gZmFsbGJhY2sgb3B0aW9uYWwgY2F0Y2gtYWxsIFNTRyBwYWdlcyBoYXZlXG4gICAgICAgIC8vIFtbLi4ucGFyYW1OYW1lXV0gZm9yIHRoZSByb290IHBhdGggb24gVmVyY2VsXG4gICAgICAgICh2YWx1ZVswXSA9PT0gJ2luZGV4JyB8fCB2YWx1ZVswXSA9PT0gYFtbLi4uJHtrZXl9XV1gKSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5W2tleV07XG4gICAgICAgIH1cbiAgICAgICAgLy8gcXVlcnkgdmFsdWVzIGZyb20gdGhlIHByb3h5IGFyZW4ndCBhbHJlYWR5IHNwbGl0IGludG8gYXJyYXlzXG4gICAgICAgIC8vIHNvIG1ha2Ugc3VyZSB0byBub3JtYWxpemUgY2F0Y2gtYWxsIHZhbHVlc1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBkZWZhdWx0Um91dGVSZWdleC5ncm91cHNba2V5XS5yZXBlYXQpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoJy8nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBoYXNWYWxpZFBhcmFtc1xuICAgIH07XG59XG5mdW5jdGlvbiBnZXRTZXJ2ZXJVdGlscyh7IHBhZ2UsIGkxOG4sIGJhc2VQYXRoLCByZXdyaXRlcywgcGFnZUlzRHluYW1pYywgdHJhaWxpbmdTbGFzaCwgY2FzZVNlbnNpdGl2ZSB9KSB7XG4gICAgbGV0IGRlZmF1bHRSb3V0ZVJlZ2V4O1xuICAgIGxldCBkeW5hbWljUm91dGVNYXRjaGVyO1xuICAgIGxldCBkZWZhdWx0Um91dGVNYXRjaGVzO1xuICAgIGlmIChwYWdlSXNEeW5hbWljKSB7XG4gICAgICAgIGRlZmF1bHRSb3V0ZVJlZ2V4ID0gKDAsIF9yb3V0ZXJlZ2V4LmdldE5hbWVkUm91dGVSZWdleCkocGFnZSwge1xuICAgICAgICAgICAgcHJlZml4Um91dGVLZXlzOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgZHluYW1pY1JvdXRlTWF0Y2hlciA9ICgwLCBfcm91dGVtYXRjaGVyLmdldFJvdXRlTWF0Y2hlcikoZGVmYXVsdFJvdXRlUmVnZXgpO1xuICAgICAgICBkZWZhdWx0Um91dGVNYXRjaGVzID0gZHluYW1pY1JvdXRlTWF0Y2hlcihwYWdlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlUmV3cml0ZXMocmVxLCBwYXJzZWRVcmwpIHtcbiAgICAgICAgY29uc3QgcmV3cml0ZVBhcmFtcyA9IHt9O1xuICAgICAgICBsZXQgZnNQYXRobmFtZSA9IHBhcnNlZFVybC5wYXRobmFtZTtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1BhZ2UgPSAoKT0+e1xuICAgICAgICAgICAgY29uc3QgZnNQYXRobmFtZU5vU2xhc2ggPSAoMCwgX3JlbW92ZXRyYWlsaW5nc2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaCkoZnNQYXRobmFtZSB8fCAnJyk7XG4gICAgICAgICAgICByZXR1cm4gZnNQYXRobmFtZU5vU2xhc2ggPT09ICgwLCBfcmVtb3ZldHJhaWxpbmdzbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKShwYWdlKSB8fCAoZHluYW1pY1JvdXRlTWF0Y2hlciA9PSBudWxsID8gdm9pZCAwIDogZHluYW1pY1JvdXRlTWF0Y2hlcihmc1BhdGhuYW1lTm9TbGFzaCkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjaGVja1Jld3JpdGUgPSAocmV3cml0ZSk9PntcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXIgPSAoMCwgX3BhdGhtYXRjaC5nZXRQYXRoTWF0Y2gpKHJld3JpdGUuc291cmNlICsgKHRyYWlsaW5nU2xhc2ggPyAnKC8pPycgOiAnJyksIHtcbiAgICAgICAgICAgICAgICByZW1vdmVVbm5hbWVkUGFyYW1zOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzZW5zaXRpdmU6ICEhY2FzZVNlbnNpdGl2ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIXBhcnNlZFVybC5wYXRobmFtZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IG1hdGNoZXIocGFyc2VkVXJsLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIGlmICgocmV3cml0ZS5oYXMgfHwgcmV3cml0ZS5taXNzaW5nKSAmJiBwYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNQYXJhbXMgPSAoMCwgX3ByZXBhcmVkZXN0aW5hdGlvbi5tYXRjaEhhcykocmVxLCBwYXJzZWRVcmwucXVlcnksIHJld3JpdGUuaGFzLCByZXdyaXRlLm1pc3NpbmcpO1xuICAgICAgICAgICAgICAgIGlmIChoYXNQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJhbXMsIGhhc1BhcmFtcyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFuIGludGVyY2VwdGlvbiByZXdyaXRlIG1pZ2h0IHJlZmVyZW5jZSBhIGR5bmFtaWMgcGFyYW0gZm9yIGEgcm91dGUgdGhlIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gaXMgY3VycmVudGx5IG9uLCB3aGljaCB3b3VsZG4ndCBiZSBleHRyYWN0YWJsZSBmcm9tIHRoZSBtYXRjaGVkIHJvdXRlIHBhcmFtcy5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBhdHRlbXB0cyB0byBleHRyYWN0IHRoZSBkeW5hbWljIHBhcmFtcyBmcm9tIHRoZSBwcm92aWRlZCByb3V0ZXIgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgIGlmICgoMCwgX2dlbmVyYXRlaW50ZXJjZXB0aW9ucm91dGVzcmV3cml0ZXMuaXNJbnRlcmNlcHRpb25Sb3V0ZVJld3JpdGUpKHJld3JpdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZUhlYWRlciA9IHJlcS5oZWFkZXJzW19hcHByb3V0ZXJoZWFkZXJzLk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZUhlYWRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKDAsIF9jb21wdXRlY2hhbmdlZHBhdGguZ2V0U2VsZWN0ZWRQYXJhbXMpKCgwLCBfcGFyc2VhbmR2YWxpZGF0ZWZsaWdodHJvdXRlcnN0YXRlLnBhcnNlQW5kVmFsaWRhdGVGbGlnaHRSb3V0ZXJTdGF0ZSkoc3RhdGVIZWFkZXIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBuby1vcCAtLSB3ZSBjb3VsZG4ndCBleHRyYWN0IGR5bmFtaWMgcGFyYW1zIGZyb20gdGhlIHByb3ZpZGVkIHJvdXRlciBzdGF0ZSxcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSdsbCBqdXN0IHVzZSB0aGUgcGFyYW1zIGZyb20gdGhlIHJvdXRlIG1hdGNoZXJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwYXJzZWREZXN0aW5hdGlvbiwgZGVzdFF1ZXJ5IH0gPSAoMCwgX3ByZXBhcmVkZXN0aW5hdGlvbi5wcmVwYXJlRGVzdGluYXRpb24pKHtcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kUGFyYW1zVG9RdWVyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb246IHJld3JpdGUuZGVzdGluYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogcGFyc2VkVXJsLnF1ZXJ5XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHJld3JpdGUgZGVzdGluYXRpb24gaXMgZXh0ZXJuYWwgYnJlYWsgcmV3cml0ZSBjaGFpblxuICAgICAgICAgICAgICAgIGlmIChwYXJzZWREZXN0aW5hdGlvbi5wcm90b2NvbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZXdyaXRlUGFyYW1zLCBkZXN0UXVlcnksIHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJzZWRVcmwucXVlcnksIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkRGVzdGluYXRpb24ucXVlcnk7XG4gICAgICAgICAgICAgICAgLy8gZm9yIGVhY2ggcHJvcGVydHkgaW4gcGFyc2VkVXJsLnF1ZXJ5LCBpZiB0aGUgdmFsdWUgaXMgcGFyYW1ldHJpemVkIChlZyA6Zm9vKSwgbG9vayB1cCB0aGUgdmFsdWVcbiAgICAgICAgICAgICAgICAvLyBpbiByZXdyaXRlUGFyYW1zIGFuZCByZXBsYWNlIHRoZSBwYXJhbWV0cml6ZWQgdmFsdWUgd2l0aCB0aGUgYWN0dWFsIHZhbHVlXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB1c2VkIHdoZW4gdGhlIHJld3JpdGUgZGVzdGluYXRpb24gZG9lcyBub3QgY29udGFpbiB0aGUgb3JpZ2luYWwgc291cmNlIHBhcmFtXG4gICAgICAgICAgICAgICAgLy8gYW5kIHNvIHRoZSB2YWx1ZSBpcyBzdGlsbCBwYXJhbWV0cml6ZWQgYW5kIG5lZWRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGFjdHVhbCByZXdyaXRlIHBhcmFtXG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocGFyc2VkVXJsLnF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pPT57XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnN0YXJ0c1dpdGgoJzonKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gdmFsdWUuc2xpY2UoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IHJld3JpdGVQYXJhbXNbcGFyYW1OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3R1YWxWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeVtrZXldID0gYWN0dWFsVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcnNlZFVybCwgcGFyc2VkRGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgIGZzUGF0aG5hbWUgPSBwYXJzZWRVcmwucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKCFmc1BhdGhuYW1lKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGJhc2VQYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZzUGF0aG5hbWUgPSBmc1BhdGhuYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7YmFzZVBhdGh9YCksICcnKSB8fCAnLyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpMThuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBfbm9ybWFsaXplbG9jYWxlcGF0aC5ub3JtYWxpemVMb2NhbGVQYXRoKShmc1BhdGhuYW1lLCBpMThuLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgICAgICBmc1BhdGhuYW1lID0gcmVzdWx0LnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnkubmV4dEludGVybmFsTG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlIHx8IHBhcmFtcy5uZXh0SW50ZXJuYWxMb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChmc1BhdGhuYW1lID09PSBwYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGFnZUlzRHluYW1pYyAmJiBkeW5hbWljUm91dGVNYXRjaGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGR5bmFtaWNQYXJhbXMgPSBkeW5hbWljUm91dGVNYXRjaGVyKGZzUGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZHluYW1pY1BhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkVXJsLnF1ZXJ5ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnBhcnNlZFVybC5xdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5keW5hbWljUGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgcmV3cml0ZSBvZiByZXdyaXRlcy5iZWZvcmVGaWxlcyB8fCBbXSl7XG4gICAgICAgICAgICBjaGVja1Jld3JpdGUocmV3cml0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZzUGF0aG5hbWUgIT09IHBhZ2UpIHtcbiAgICAgICAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgZm9yIChjb25zdCByZXdyaXRlIG9mIHJld3JpdGVzLmFmdGVyRmlsZXMgfHwgW10pe1xuICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gY2hlY2tSZXdyaXRlKHJld3JpdGUpO1xuICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZCkgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWZpbmlzaGVkICYmICFtYXRjaGVzUGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXdyaXRlIG9mIHJld3JpdGVzLmZhbGxiYWNrIHx8IFtdKXtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWQgPSBjaGVja1Jld3JpdGUocmV3cml0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZCkgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXdyaXRlUGFyYW1zO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRQYXJhbXNGcm9tUm91dGVNYXRjaGVzKHJvdXRlTWF0Y2hlc0hlYWRlcikge1xuICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgZGVmYXVsdCByb3V0ZSByZWdleCwgd2UgY2FuJ3QgZ2V0IHBhcmFtcyBmcm9tIHJvdXRlXG4gICAgICAgIC8vIG1hdGNoZXNcbiAgICAgICAgaWYgKCFkZWZhdWx0Um91dGVSZWdleCkgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IHsgZ3JvdXBzLCByb3V0ZUtleXMgfSA9IGRlZmF1bHRSb3V0ZVJlZ2V4O1xuICAgICAgICBjb25zdCBtYXRjaGVyID0gKDAsIF9yb3V0ZW1hdGNoZXIuZ2V0Um91dGVNYXRjaGVyKSh7XG4gICAgICAgICAgICByZToge1xuICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIGEgUmVnRXhwIG1hdGNoIGZyb20gdGhlIFxcYHJlcS51cmxcXGAgaW5wdXRcbiAgICAgICAgICAgICAgICBleGVjOiAoc3RyKT0+e1xuICAgICAgICAgICAgICAgICAgICAvLyBOb3JtYWxpemUgYWxsIHRoZSBwcmVmaXhlZCBxdWVyeSBwYXJhbXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IE9iamVjdC5mcm9tRW50cmllcyhuZXcgVVJMU2VhcmNoUGFyYW1zKHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSAoMCwgX3V0aWxzLm5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtKShrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFub3JtYWxpemVkS2V5KSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ialtub3JtYWxpemVkS2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG9ialtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFVzZSBhbGwgdGhlIG5hbWVkIHJvdXRlIGtleXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleU5hbWUgb2YgT2JqZWN0LmtleXMocm91dGVLZXlzKSl7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbU5hbWUgPSByb3V0ZUtleXNba2V5TmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIHBhcmFtIG5hbWUgaXMgbm90IGEgdmFsaWQgcGFyYW1ldGVyIG5hbWUsIHRoZW4gc2tpcCBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyYW1OYW1lKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gZ3JvdXBzW3BhcmFtTmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9ialtrZXlOYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UncmUgbWlzc2luZyBhIHJlcXVpcmVkIHBhcmFtLCB3ZSBjYW4ndCBtYXRjaCB0aGUgcm91dGUuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdyb3VwLm9wdGlvbmFsICYmICF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbZ3JvdXAucG9zXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdyb3Vwc1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgcm91dGVNYXRjaGVzID0gbWF0Y2hlcihyb3V0ZU1hdGNoZXNIZWFkZXIpO1xuICAgICAgICBpZiAoIXJvdXRlTWF0Y2hlcykgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiByb3V0ZU1hdGNoZXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVF1ZXJ5UGFyYW1zKHF1ZXJ5LCByb3V0ZVBhcmFtS2V5cykge1xuICAgICAgICAvLyB0aGlzIGlzIHVzZWQgdG8gcGFzcyBxdWVyeSBpbmZvcm1hdGlvbiBpbiByZXdyaXRlc1xuICAgICAgICAvLyBidXQgc2hvdWxkIG5vdCBiZSBleHBvc2VkIGluIGZpbmFsIHF1ZXJ5XG4gICAgICAgIGRlbGV0ZSBxdWVyeVsnbmV4dEludGVybmFsTG9jYWxlJ107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KSl7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gKDAsIF91dGlscy5ub3JtYWxpemVOZXh0UXVlcnlQYXJhbSkoa2V5KTtcbiAgICAgICAgICAgIGlmICghbm9ybWFsaXplZEtleSkgY29udGludWU7XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHByZWZpeGVkIGtleSBmcm9tIHRoZSBxdWVyeSBwYXJhbXMgYmVjYXVzZSB3ZSB3YW50XG4gICAgICAgICAgICAvLyB0byBjb25zdW1lIGl0IGZvciB0aGUgZHluYW1pYyByb3V0ZSBtYXRjaGVyLlxuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5W2tleV07XG4gICAgICAgICAgICByb3V0ZVBhcmFtS2V5cy5hZGQobm9ybWFsaXplZEtleSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICAgICAgICBxdWVyeVtub3JtYWxpemVkS2V5XSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUubWFwKCh2KT0+KDAsIF9kZWNvZGVxdWVyeXBhdGhwYXJhbWV0ZXIuZGVjb2RlUXVlcnlQYXRoUGFyYW1ldGVyKSh2KSkgOiAoMCwgX2RlY29kZXF1ZXJ5cGF0aHBhcmFtZXRlci5kZWNvZGVRdWVyeVBhdGhQYXJhbWV0ZXIpKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBoYW5kbGVSZXdyaXRlcyxcbiAgICAgICAgZGVmYXVsdFJvdXRlUmVnZXgsXG4gICAgICAgIGR5bmFtaWNSb3V0ZU1hdGNoZXIsXG4gICAgICAgIGRlZmF1bHRSb3V0ZU1hdGNoZXMsXG4gICAgICAgIG5vcm1hbGl6ZVF1ZXJ5UGFyYW1zLFxuICAgICAgICBnZXRQYXJhbXNGcm9tUm91dGVNYXRjaGVzLFxuICAgICAgICAvKipcbiAgICAgKiBOb3JtYWxpemUgZHluYW1pYyByb3V0ZSBwYXJhbXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcXVlcnkgLSBUaGUgcXVlcnkgcGFyYW1zIHRvIG5vcm1hbGl6ZS5cbiAgICAgKiBAcGFyYW0gaWdub3JlTWlzc2luZ09wdGlvbmFsIC0gV2hldGhlciB0byBpZ25vcmUgbWlzc2luZyBvcHRpb25hbCBwYXJhbXMuXG4gICAgICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGFyYW1zIGFuZCB3aGV0aGVyIHRoZXkgYXJlIHZhbGlkLlxuICAgICAqLyBub3JtYWxpemVEeW5hbWljUm91dGVQYXJhbXM6IChxdWVyeSwgaWdub3JlTWlzc2luZ09wdGlvbmFsKT0+e1xuICAgICAgICAgICAgaWYgKCFkZWZhdWx0Um91dGVSZWdleCB8fCAhZGVmYXVsdFJvdXRlTWF0Y2hlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge30sXG4gICAgICAgICAgICAgICAgICAgIGhhc1ZhbGlkUGFyYW1zOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKHF1ZXJ5LCBkZWZhdWx0Um91dGVSZWdleCwgZGVmYXVsdFJvdXRlTWF0Y2hlcywgaWdub3JlTWlzc2luZ09wdGlvbmFsKTtcbiAgICAgICAgfSxcbiAgICAgICAgbm9ybWFsaXplQ2RuVXJsOiAocmVxLCBwYXJhbUtleXMpPT5ub3JtYWxpemVDZG5VcmwocmVxLCBwYXJhbUtleXMpLFxuICAgICAgICBpbnRlcnBvbGF0ZUR5bmFtaWNQYXRoOiAocGF0aG5hbWUsIHBhcmFtcyk9PmludGVycG9sYXRlRHluYW1pY1BhdGgocGF0aG5hbWUsIHBhcmFtcywgZGVmYXVsdFJvdXRlUmVnZXgpLFxuICAgICAgICBmaWx0ZXJJbnRlcm5hbFF1ZXJ5OiAocXVlcnksIHBhcmFtS2V5cyk9PmZpbHRlckludGVybmFsUXVlcnkocXVlcnksIHBhcmFtS2V5cylcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0UHJldmlvdXNseVJldmFsaWRhdGVkVGFncyhoZWFkZXJzLCBwcmV2aWV3TW9kZUlkKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBoZWFkZXJzW19jb25zdGFudHMuTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUl0gPT09ICdzdHJpbmcnICYmIGhlYWRlcnNbX2NvbnN0YW50cy5ORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUl0gPT09IHByZXZpZXdNb2RlSWQgPyBoZWFkZXJzW19jb25zdGFudHMuTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUl0uc3BsaXQoJywnKSA6IFtdO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/server-utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/encoded-tags.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ENCODED_TAGS\", ({\n enumerable: true,\n get: function() {\n return ENCODED_TAGS;\n }\n}));\nconst ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as `<body className=''>`\n OPENING: {\n // <html\n HTML: new Uint8Array([\n 60,\n 104,\n 116,\n 109,\n 108\n ]),\n // <body\n BODY: new Uint8Array([\n 60,\n 98,\n 111,\n 100,\n 121\n ])\n },\n CLOSED: {\n // </head>\n HEAD: new Uint8Array([\n 60,\n 47,\n 104,\n 101,\n 97,\n 100,\n 62\n ]),\n // </body>\n BODY: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62\n ]),\n // </html>\n HTML: new Uint8Array([\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ]),\n // </body></html>\n BODY_AND_HTML: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62,\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ])\n },\n META: {\n // Only the match the prefix cause the suffix can be different wether it's xml compatible or not \">\" or \"/>\"\n // <meta name=\"«nxt-icon»\"\n // This is a special mark that will be replaced by the icon insertion script tag.\n ICON_MARK: new Uint8Array([\n 60,\n 109,\n 101,\n 116,\n 97,\n 32,\n 110,\n 97,\n 109,\n 101,\n 61,\n 34,\n 194,\n 171,\n 110,\n 120,\n 116,\n 45,\n 105,\n 99,\n 111,\n 110,\n 194,\n 187,\n 34\n ])\n }\n};\n\n//# sourceMappingURL=encoded-tags.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZC10YWdzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZC10YWdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRU5DT0RFRF9UQUdTXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFTkNPREVEX1RBR1M7XG4gICAgfVxufSk7XG5jb25zdCBFTkNPREVEX1RBR1MgPSB7XG4gICAgLy8gb3BlbmluZyB0YWdzIGRvIG5vdCBoYXZlIHRoZSBjbG9zaW5nIGA+YCBzaW5jZSB0aGV5IGNhbiBjb250YWluIG90aGVyIGF0dHJpYnV0ZXMgc3VjaCBhcyBgPGJvZHkgY2xhc3NOYW1lPScnPmBcbiAgICBPUEVOSU5HOiB7XG4gICAgICAgIC8vIDxodG1sXG4gICAgICAgIEhUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4XG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8Ym9keVxuICAgICAgICBCT0RZOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMTIxXG4gICAgICAgIF0pXG4gICAgfSxcbiAgICBDTE9TRUQ6IHtcbiAgICAgICAgLy8gPC9oZWFkPlxuICAgICAgICBIRUFEOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9ib2R5PlxuICAgICAgICBCT0RZOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgOTgsXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAxMjEsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9odG1sPlxuICAgICAgICBIVE1MOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4LFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDwvYm9keT48L2h0bWw+XG4gICAgICAgIEJPRFlfQU5EX0hUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICA5OCxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDEyMSxcbiAgICAgICAgICAgIDYyLFxuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pXG4gICAgfSxcbiAgICBNRVRBOiB7XG4gICAgICAgIC8vIE9ubHkgdGhlIG1hdGNoIHRoZSBwcmVmaXggY2F1c2UgdGhlIHN1ZmZpeCBjYW4gYmUgZGlmZmVyZW50IHdldGhlciBpdCdzIHhtbCBjb21wYXRpYmxlIG9yIG5vdCBcIj5cIiBvciBcIi8+XCJcbiAgICAgICAgLy8gPG1ldGEgbmFtZT1cIsKrbnh0LWljb27Cu1wiXG4gICAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIG1hcmsgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBpY29uIGluc2VydGlvbiBzY3JpcHQgdGFnLlxuICAgICAgICBJQ09OX01BUks6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAzMixcbiAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgNjEsXG4gICAgICAgICAgICAzNCxcbiAgICAgICAgICAgIDE5NCxcbiAgICAgICAgICAgIDE3MSxcbiAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgIDEyMCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDQ1LFxuICAgICAgICAgICAgMTA1LFxuICAgICAgICAgICAgOTksXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAxOTQsXG4gICAgICAgICAgICAxODcsXG4gICAgICAgICAgICAzNFxuICAgICAgICBdKVxuICAgIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVuY29kZWQtdGFncy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n chainStreams: function() {\n return chainStreams;\n },\n continueDynamicHTMLResume: function() {\n return continueDynamicHTMLResume;\n },\n continueDynamicPrerender: function() {\n return continueDynamicPrerender;\n },\n continueFizzStream: function() {\n return continueFizzStream;\n },\n continueStaticPrerender: function() {\n return continueStaticPrerender;\n },\n createBufferedTransformStream: function() {\n return createBufferedTransformStream;\n },\n createDocumentClosingStream: function() {\n return createDocumentClosingStream;\n },\n createRootLayoutValidatorStream: function() {\n return createRootLayoutValidatorStream;\n },\n renderToInitialFizzStream: function() {\n return renderToInitialFizzStream;\n },\n streamFromBuffer: function() {\n return streamFromBuffer;\n },\n streamFromString: function() {\n return streamFromString;\n },\n streamToBuffer: function() {\n return streamToBuffer;\n },\n streamToString: function() {\n return streamToString;\n }\n});\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _detachedpromise = __webpack_require__(/*! ../../lib/detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _encodedtags = __webpack_require__(/*! ./encoded-tags */ \"(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\nconst _uint8arrayhelpers = __webpack_require__(/*! ./uint8array-helpers */ \"(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\");\nconst _constants1 = __webpack_require__(/*! ../../shared/lib/errors/constants */ \"(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nconst _outputexportprefetchencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/output-export-prefetch-encoding */ \"(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\");\nfunction voidCatch() {\n// this catcher is designed to be used with pipeTo where we expect the underlying\n// pipe implementation to forward errors but we don't want the pipeTo promise to reject\n// and be unhandled\n}\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder();\nfunction chainStreams(...streams) {\n // If we have no streams, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n if (streams.length === 0) {\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0];\n }\n const { readable, writable } = new TransformStream();\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, {\n preventClose: true\n });\n let i = 1;\n for(; i < streams.length - 1; i++){\n const nextStream = streams[i];\n promise = promise.then(()=>nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(voidCatch);\n return readable;\n}\nfunction streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nfunction streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToBuffer(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return Buffer.concat(chunks);\n}\nasync function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nfunction createBufferedTransformStream() {\n let bufferedChunks = [];\n let bufferByteLength = 0;\n let pending;\n const flush = (controller)=>{\n // If we already have a pending flush, then return early.\n if (pending) return;\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n // Combine the previous buffer with the new chunk.\n bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\n // Flush the buffer to the controller.\n flush(controller);\n },\n flush () {\n if (!pending) return;\n return pending.promise;\n }\n });\n}\nfunction createPrefetchCommentStream(isBuildTimePrerendering, buildId) {\n // Insert an extra comment at the beginning of the HTML document. This must\n // come after the DOCTYPE, which is inserted by React.\n //\n // The first chunk sent by React will contain the doctype. After that, we can\n // pass through the rest of the chunks as-is.\n let didTransformFirstChunk = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (isBuildTimePrerendering && !didTransformFirstChunk) {\n didTransformFirstChunk = true;\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n const chunkStr = decoder.decode(chunk, {\n stream: true\n });\n const updatedChunkStr = (0, _outputexportprefetchencoding.insertBuildIdComment)(chunkStr, buildId);\n controller.enqueue(encoder.encode(updatedChunkStr));\n return;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createMetadataTransformStream(insert) {\n let chunkIndex = -1;\n let isMarkRemoved = false;\n return new TransformStream({\n async transform (chunk, controller) {\n let iconMarkIndex = -1;\n let closedHeadIndex = -1;\n chunkIndex++;\n if (isMarkRemoved) {\n controller.enqueue(chunk);\n return;\n }\n let iconMarkLength = 0;\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.META.ICON_MARK);\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk);\n return;\n } else {\n // When we found the `<meta name=\"«nxt-icon»\"` tag prefix, we will remove it from the chunk.\n // Its close tag could either be `/>` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = _encodedtags.ENCODED_TAGS.META.ICON_MARK.length;\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2;\n } else {\n // The last char is `>`\n iconMarkLength++;\n }\n }\n }\n // Check if icon mark is inside <head> tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n if (iconMarkIndex !== -1) {\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength);\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex);\n chunk = replaced;\n } else {\n // The icon mark is after the head tag, replace and insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(encodedInsertion, iconMarkIndex);\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n }\n isMarkRemoved = true;\n }\n // If there's no icon mark located, it will be handled later when if present in the following chunks.\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex);\n // Set the rest of the chunk after the icon mark.\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n isMarkRemoved = true;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = <head><meta charset=\"utf-8\"></head>\n // insertion = <script>...</script>\n // output = <head><meta charset=\"utf-8\"> [ <script>...</script> ] </head>\n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: <head>...</head><body> [ resume content ] </body>\n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n }\n }\n });\n}\n// Suffix after main body content - scripts before </body>,\n// but wait for the major chunks to be enqueued.\nfunction createDeferredSuffixStream(suffix) {\n let flushed = false;\n let pending;\n const flush = (controller)=>{\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n controller.enqueue(encoder.encode(suffix));\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // If we've already flushed, we're done.\n if (flushed) return;\n // Schedule the flush to happen.\n flushed = true;\n flush(controller);\n },\n flush (controller) {\n if (pending) return pending.promise;\n if (flushed) return;\n // Flush now.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\nfunction createFlightDataInjectionTransformStream(stream, delayDataUntilFirstHtmlChunk) {\n let htmlStreamFinished = false;\n let pull = null;\n let donePulling = false;\n function startOrContinuePulling(controller) {\n if (!pull) {\n pull = startPulling(controller);\n }\n return pull;\n }\n async function startPulling(controller) {\n const reader = stream.getReader();\n if (delayDataUntilFirstHtmlChunk) {\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await (0, _scheduler.atLeastOneTask)();\n }\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n // We want to prioritize HTML over RSC data.\n // The SSR render is based on the same RSC stream, so when we get a new RSC chunk,\n // we're likely to produce an HTML chunk as well, so give it a chance to flush first.\n if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) {\n await (0, _scheduler.atLeastOneTask)();\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n start (controller) {\n if (!delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n flush (controller) {\n htmlStreamFinished = true;\n if (donePulling) {\n return;\n }\n return startOrContinuePulling(controller);\n }\n });\n}\nconst CLOSE_TAG = '</body></html>';\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `</body></html><script>...</script>` will be transformed to\n * `<script>...</script></body></html>`.\n */ function createMoveSuffixStream() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n if (index > -1) {\n foundSuffix = true;\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (chunk.length === _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (chunk.length > _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\n }\n } else {\n controller.enqueue(chunk);\n }\n },\n flush (controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY);\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nfunction createRootLayoutValidatorStream() {\n let foundHtml = false;\n let foundBody = false;\n return new TransformStream({\n async transform (chunk, controller) {\n // Peek into the streamed chunk to see if the tags are present.\n if (!foundHtml && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HTML) > -1) {\n foundHtml = true;\n }\n if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(`<html id=\"__next_error__\">\n <template\n data-next-error-message=\"Missing ${missingTags.map((c)=>`<${c}>`).join(missingTags.length > 1 ? ' and ' : '')} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\n data-next-error-digest=\"${_constants1.MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n ></template>\n `));\n }\n });\n}\nfunction chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nasync function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, isBuildTimePrerendering, buildId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n // If we're generating static HTML we need to wait for it to resolve before continuing.\n if (isStaticGeneration) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Add build id comment to start of the HTML document (in export mode)\n createPrefetchCommentStream(isBuildTimePrerendering, buildId),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createFlightDataInjectionTransformStream(inlinedDataStream, true) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId))// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, true))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { delayDataUntilFirstHtmlChunk, inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, delayDataUntilFirstHtmlChunk))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nfunction createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBY0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGdCQUFnQixtQkFBTyxDQUFDLHNGQUFxQjtBQUM3QyxtQkFBbUIsbUJBQU8sQ0FBQyw0RkFBd0I7QUFDbkQseUJBQXlCLG1CQUFPLENBQUMsMEZBQTRCO0FBQzdELG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxxQkFBcUIsbUJBQU8sQ0FBQywwRkFBZ0I7QUFDN0MsMkJBQTJCLG1CQUFPLENBQUMsc0dBQXNCO0FBQ3pELG9CQUFvQixtQkFBTyxDQUFDLHdHQUFtQztBQUMvRCxzQ0FBc0MsbUJBQU8sQ0FBQyxrS0FBZ0U7QUFDOUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxVQUFVLHdCQUF3QjtBQUNsQztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkJBQTJCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLHFDQUFxQyx3Q0FBd0M7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixjQUFjO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQseUJBQXlCLEVBQUUsaURBQWlEO0FBQzdILHdDQUF3QyxvQ0FBb0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELHVKQUF1SjtBQUN6TTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsa0RBQWtEO0FBQzdHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsdUdBQXVHO0FBQ2pLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQsbUdBQW1HO0FBQzVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNoYWluU3RyZWFtczogbnVsbCxcbiAgICBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lOiBudWxsLFxuICAgIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjogbnVsbCxcbiAgICBjb250aW51ZUZpenpTdHJlYW06IG51bGwsXG4gICAgY29udGludWVTdGF0aWNQcmVyZW5kZXI6IG51bGwsXG4gICAgY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW06IG51bGwsXG4gICAgY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtOiBudWxsLFxuICAgIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW06IG51bGwsXG4gICAgcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbTogbnVsbCxcbiAgICBzdHJlYW1Gcm9tQnVmZmVyOiBudWxsLFxuICAgIHN0cmVhbUZyb21TdHJpbmc6IG51bGwsXG4gICAgc3RyZWFtVG9CdWZmZXI6IG51bGwsXG4gICAgc3RyZWFtVG9TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY2hhaW5TdHJlYW1zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNoYWluU3RyZWFtcztcbiAgICB9LFxuICAgIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVEeW5hbWljSFRNTFJlc3VtZTtcbiAgICB9LFxuICAgIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUR5bmFtaWNQcmVyZW5kZXI7XG4gICAgfSxcbiAgICBjb250aW51ZUZpenpTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVGaXp6U3RyZWFtO1xuICAgIH0sXG4gICAgY29udGludWVTdGF0aWNQcmVyZW5kZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVTdGF0aWNQcmVyZW5kZXI7XG4gICAgfSxcbiAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTtcbiAgICB9LFxuICAgIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW07XG4gICAgfSxcbiAgICBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW07XG4gICAgfSxcbiAgICByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW07XG4gICAgfSxcbiAgICBzdHJlYW1Gcm9tQnVmZmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbUZyb21CdWZmZXI7XG4gICAgfSxcbiAgICBzdHJlYW1Gcm9tU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmc7XG4gICAgfSxcbiAgICBzdHJlYW1Ub0J1ZmZlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW1Ub0J1ZmZlcjtcbiAgICB9LFxuICAgIHN0cmVhbVRvU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbVRvU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvY29uc3RhbnRzXCIpO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF9lbmNvZGVkdGFncyA9IHJlcXVpcmUoXCIuL2VuY29kZWQtdGFnc1wiKTtcbmNvbnN0IF91aW50OGFycmF5aGVscGVycyA9IHJlcXVpcmUoXCIuL3VpbnQ4YXJyYXktaGVscGVyc1wiKTtcbmNvbnN0IF9jb25zdGFudHMxID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9vdXRwdXRleHBvcnRwcmVmZXRjaGVuY29kaW5nID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9vdXRwdXQtZXhwb3J0LXByZWZldGNoLWVuY29kaW5nXCIpO1xuZnVuY3Rpb24gdm9pZENhdGNoKCkge1xuLy8gdGhpcyBjYXRjaGVyIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBwaXBlVG8gd2hlcmUgd2UgZXhwZWN0IHRoZSB1bmRlcmx5aW5nXG4vLyBwaXBlIGltcGxlbWVudGF0aW9uIHRvIGZvcndhcmQgZXJyb3JzIGJ1dCB3ZSBkb24ndCB3YW50IHRoZSBwaXBlVG8gcHJvbWlzZSB0byByZWplY3Rcbi8vIGFuZCBiZSB1bmhhbmRsZWRcbn1cbi8vIFdlIGNhbiBzaGFyZSB0aGUgc2FtZSBlbmNvZGVyIGluc3RhbmNlIGV2ZXJ5d2hlcmVcbi8vIE5vdGFibHkgd2UgY2Fubm90IGRvIHRoZSBzYW1lIGZvciBUZXh0RGVjb2RlciBiZWNhdXNlIGl0IGlzIHN0YXRlZnVsXG4vLyB3aGVuIGhhbmRsaW5nIHN0cmVhbWluZyBkYXRhXG5jb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG5mdW5jdGlvbiBjaGFpblN0cmVhbXMoLi4uc3RyZWFtcykge1xuICAgIC8vIElmIHdlIGhhdmUgbm8gc3RyZWFtcywgcmV0dXJuIGFuIGVtcHR5IHN0cmVhbS4gVGhpcyBiZWhhdmlvciBpc1xuICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgIGlmIChzdHJlYW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gSWYgd2Ugb25seSBoYXZlIDEgc3RyZWFtIHdlIGZhc3QgcGF0aCBpdCBieSByZXR1cm5pbmcganVzdCB0aGlzIHN0cmVhbVxuICAgIGlmIChzdHJlYW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gc3RyZWFtc1swXTtcbiAgICB9XG4gICAgY29uc3QgeyByZWFkYWJsZSwgd3JpdGFibGUgfSA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oKTtcbiAgICAvLyBXZSBhbHdheXMgaW5pdGlhdGUgcGlwZVRvIGltbWVkaWF0ZWx5LiBXZSBrbm93IHdlIGhhdmUgYXQgbGVhc3QgMiBzdHJlYW1zXG4gICAgLy8gc28gd2UgbmVlZCB0byBhdm9pZCBjbG9zaW5nIHRoZSB3cml0YWJsZSB3aGVuIHRoaXMgb25lIGZpbmlzaGVzLlxuICAgIGxldCBwcm9taXNlID0gc3RyZWFtc1swXS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgcHJldmVudENsb3NlOiB0cnVlXG4gICAgfSk7XG4gICAgbGV0IGkgPSAxO1xuICAgIGZvcig7IGkgPCBzdHJlYW1zLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgICAgIGNvbnN0IG5leHRTdHJlYW0gPSBzdHJlYW1zW2ldO1xuICAgICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKCgpPT5uZXh0U3RyZWFtLnBpcGVUbyh3cml0YWJsZSwge1xuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cbiAgICAvLyBXZSBjYW4gb21pdCB0aGUgbGVuZ3RoIGNoZWNrIGJlY2F1c2Ugd2UgaGFsdGVkIGJlZm9yZSB0aGUgbGFzdCBzdHJlYW0gYW5kIHRoZXJlXG4gICAgLy8gaXMgYXQgbGVhc3QgdHdvIHN0cmVhbXMgc28gdGhlIGxhc3RTdHJlYW0gaGVyZSB3aWxsIGFsd2F5cyBiZSBkZWZpbmVkXG4gICAgY29uc3QgbGFzdFN0cmVhbSA9IHN0cmVhbXNbaV07XG4gICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKT0+bGFzdFN0cmVhbS5waXBlVG8od3JpdGFibGUpKTtcbiAgICAvLyBDYXRjaCBhbnkgZXJyb3JzIGZyb20gdGhlIHN0cmVhbXMgYW5kIGlnbm9yZSB0aGVtLCB0aGV5IHdpbGwgYmUgaGFuZGxlZFxuICAgIC8vIGJ5IHdoYXRldmVyIGlzIGNvbnN1bWluZyB0aGUgcmVhZGFibGUgc3RyZWFtLlxuICAgIHByb21pc2UuY2F0Y2godm9pZENhdGNoKTtcbiAgICByZXR1cm4gcmVhZGFibGU7XG59XG5mdW5jdGlvbiBzdHJlYW1Gcm9tU3RyaW5nKHN0cikge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN0cikpO1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBzdHJlYW1Gcm9tQnVmZmVyKGNodW5rKSB7XG4gICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBzdHJlYW1Ub0J1ZmZlcihzdHJlYW0pIHtcbiAgICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjaHVua3MucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KGNodW5rcyk7XG59XG5hc3luYyBmdW5jdGlvbiBzdHJlYW1Ub1N0cmluZyhzdHJlYW0sIHNpZ25hbCkge1xuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jywge1xuICAgICAgICBmYXRhbDogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBzdHJpbmcgPSAnJztcbiAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHN0cmVhbSl7XG4gICAgICAgIGlmIChzaWduYWwgPT0gbnVsbCA/IHZvaWQgMCA6IHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHN0cmluZyArPSBkZWNvZGVyLmRlY29kZShjaHVuaywge1xuICAgICAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdHJpbmcgKz0gZGVjb2Rlci5kZWNvZGUoKTtcbiAgICByZXR1cm4gc3RyaW5nO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSB7XG4gICAgbGV0IGJ1ZmZlcmVkQ2h1bmtzID0gW107XG4gICAgbGV0IGJ1ZmZlckJ5dGVMZW5ndGggPSAwO1xuICAgIGxldCBwZW5kaW5nO1xuICAgIGNvbnN0IGZsdXNoID0gKGNvbnRyb2xsZXIpPT57XG4gICAgICAgIC8vIElmIHdlIGFscmVhZHkgaGF2ZSBhIHBlbmRpbmcgZmx1c2gsIHRoZW4gcmV0dXJuIGVhcmx5LlxuICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuO1xuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgICgwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlckJ5dGVMZW5ndGgpO1xuICAgICAgICAgICAgICAgIGxldCBjb3BpZWRCeXRlcyA9IDA7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGJ1ZmZlcmVkQ2h1bmtzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyZWRDaHVuayA9IGJ1ZmZlcmVkQ2h1bmtzW2ldO1xuICAgICAgICAgICAgICAgICAgICBjaHVuay5zZXQoYnVmZmVyZWRDaHVuaywgY29waWVkQnl0ZXMpO1xuICAgICAgICAgICAgICAgICAgICBjb3BpZWRCeXRlcyArPSBidWZmZXJlZENodW5rLmJ5dGVMZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFdlIGp1c3Qgd3JvdGUgYWxsIHRoZSBidWZmZXJlZCBjaHVua3Mgc28gd2UgbmVlZCB0byByZXNldCB0aGUgYnVmZmVyZWRDaHVua3MgYXJyYXlcbiAgICAgICAgICAgICAgICAvLyBhbmQgb3VyIGJ1ZmZlckJ5dGVMZW5ndGggdG8gcHJlcGFyZSBmb3IgdGhlIG5leHQgcm91bmQgb2YgYnVmZmVyZWQgY2h1bmtzXG4gICAgICAgICAgICAgICAgYnVmZmVyZWRDaHVua3MubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBidWZmZXJCeXRlTGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgLy8gSWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGVucXVldWluZyBpdCBjYW4ndCBiZSBkdWUgdG8gdGhpc1xuICAgICAgICAgICAgLy8gdHJhbnNmb3JtZXJzIGZhdWx0LiBJdCdzIGxpa2VseSBkdWUgdG8gdGhlIGNvbnRyb2xsZXIgYmVpbmdcbiAgICAgICAgICAgIC8vIGVycm9yZWQgZHVlIHRvIHRoZSBzdHJlYW0gYmVpbmcgY2FuY2VsbGVkLlxuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIHBlbmRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWQucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gQ29tYmluZSB0aGUgcHJldmlvdXMgYnVmZmVyIHdpdGggdGhlIG5ldyBjaHVuay5cbiAgICAgICAgICAgIGJ1ZmZlcmVkQ2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgICAgICAgYnVmZmVyQnl0ZUxlbmd0aCArPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgICAgICAgLy8gRmx1c2ggdGhlIGJ1ZmZlciB0byB0aGUgY29udHJvbGxlci5cbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoKSB7XG4gICAgICAgICAgICBpZiAoIXBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgICAgIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZWZldGNoQ29tbWVudFN0cmVhbShpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCkge1xuICAgIC8vIEluc2VydCBhbiBleHRyYSBjb21tZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEhUTUwgZG9jdW1lbnQuIFRoaXMgbXVzdFxuICAgIC8vIGNvbWUgYWZ0ZXIgdGhlIERPQ1RZUEUsIHdoaWNoIGlzIGluc2VydGVkIGJ5IFJlYWN0LlxuICAgIC8vXG4gICAgLy8gVGhlIGZpcnN0IGNodW5rIHNlbnQgYnkgUmVhY3Qgd2lsbCBjb250YWluIHRoZSBkb2N0eXBlLiBBZnRlciB0aGF0LCB3ZSBjYW5cbiAgICAvLyBwYXNzIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIGNodW5rcyBhcy1pcy5cbiAgICBsZXQgZGlkVHJhbnNmb3JtRmlyc3RDaHVuayA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nICYmICFkaWRUcmFuc2Zvcm1GaXJzdENodW5rKSB7XG4gICAgICAgICAgICAgICAgZGlkVHJhbnNmb3JtRmlyc3RDaHVuayA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnLCB7XG4gICAgICAgICAgICAgICAgICAgIGZhdGFsOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2h1bmtTdHIgPSBkZWNvZGVyLmRlY29kZShjaHVuaywge1xuICAgICAgICAgICAgICAgICAgICBzdHJlYW06IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQ2h1bmtTdHIgPSAoMCwgX291dHB1dGV4cG9ydHByZWZldGNoZW5jb2RpbmcuaW5zZXJ0QnVpbGRJZENvbW1lbnQpKGNodW5rU3RyLCBidWlsZElkKTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUodXBkYXRlZENodW5rU3RyKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbSh7IFJlYWN0RE9NU2VydmVyLCBlbGVtZW50LCBzdHJlYW1PcHRpb25zIH0pIHtcbiAgICByZXR1cm4gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuQXBwUmVuZGVyU3Bhbi5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtLCBhc3luYyAoKT0+UmVhY3RET01TZXJ2ZXIucmVuZGVyVG9SZWFkYWJsZVN0cmVhbShlbGVtZW50LCBzdHJlYW1PcHRpb25zKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShpbnNlcnQpIHtcbiAgICBsZXQgY2h1bmtJbmRleCA9IC0xO1xuICAgIGxldCBpc01hcmtSZW1vdmVkID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBsZXQgaWNvbk1hcmtJbmRleCA9IC0xO1xuICAgICAgICAgICAgbGV0IGNsb3NlZEhlYWRJbmRleCA9IC0xO1xuICAgICAgICAgICAgY2h1bmtJbmRleCsrO1xuICAgICAgICAgICAgaWYgKGlzTWFya1JlbW92ZWQpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBpY29uTWFya0xlbmd0aCA9IDA7XG4gICAgICAgICAgICAvLyBPbmx5IHNlYXJjaCBmb3IgdGhlIGNsb3NlZCBoZWFkIHRhZyBvbmNlXG4gICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpY29uTWFya0luZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuTUVUQS5JQ09OX01BUkspO1xuICAgICAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSBmb3VuZCB0aGUgYDxtZXRhIG5hbWU9XCLCq254dC1pY29uwrtcImAgdGFnIHByZWZpeCwgd2Ugd2lsbCByZW1vdmUgaXQgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgIC8vIEl0cyBjbG9zZSB0YWcgY291bGQgZWl0aGVyIGJlIGAvPmAgb3IgYD5gLCBjaGVja2luZyB0aGUgbmV4dCBjaGFyIHRvIGVuc3VyZSB3ZSBjb3ZlciBib3RoIGNhc2VzLlxuICAgICAgICAgICAgICAgICAgICBpY29uTWFya0xlbmd0aCA9IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuTUVUQS5JQ09OX01BUksubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBuZXh0IGNoYXIgaXMgLywgdGhpcyBpcyBmb3IgeG1sIG1vZGUuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaHVua1tpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGhdID09PSA0Nykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGggKz0gMjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBsYXN0IGNoYXIgaXMgYD5gXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uTWFya0xlbmd0aCsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaWNvbiBtYXJrIGlzIGluc2lkZSA8aGVhZD4gdGFnIGluIHRoZSBmaXJzdCBjaHVuay5cbiAgICAgICAgICAgIGlmIChjaHVua0luZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VkSGVhZEluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhFQUQpO1xuICAgICAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbWFyayBpY29uIGlzIGxvY2F0ZWQgaW4gdGhlIDFzdCBjaHVuayBiZWZvcmUgdGhlIGhlYWQgdGFnLlxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBpbnNlcnQgdGhlIHNjcmlwdCB0YWcgaW4gdGhpcyBjYXNlIGJlY2F1c2UgaXQncyBpbiB0aGUgaGVhZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCByZW1vdmUgdGhlIGljb24gbWFyayBmcm9tIHRoZSBjaHVuay5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggPCBjbG9zZWRIZWFkSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBpY29uIG1hcmsgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoMCwgaWNvbk1hcmtJbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KGljb25NYXJrSW5kZXggKyBpY29uTWFya0xlbmd0aCksIGljb25NYXJrSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmsgPSByZXBsYWNlZDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBpY29uIG1hcmsgaXMgYWZ0ZXIgdGhlIGhlYWQgdGFnLCByZXBsYWNlIGFuZCBpbnNlcnQgdGhlIHNjcmlwdCB0YWcgYXQgdGhhdCBwb3NpdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb25MZW5ndGggPSBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KDAsIGljb25NYXJrSW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChlbmNvZGVkSW5zZXJ0aW9uLCBpY29uTWFya0luZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4ICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rID0gcmVwbGFjZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaXNNYXJrUmVtb3ZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBpY29uIG1hcmsgbG9jYXRlZCwgaXQgd2lsbCBiZSBoYW5kbGVkIGxhdGVyIHdoZW4gaWYgcHJlc2VudCBpbiB0aGUgZm9sbG93aW5nIGNodW5rcy5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gV2hlbiBpdCdzIGFwcGVhcmVkIGluIHRoZSBmb2xsb3dpbmcgY2h1bmtzLCB3ZSdsbCBuZWVkIHRvXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBtYXJrIGFuZCB0aGVuIGluc2VydCB0aGUgc2NyaXB0IHRhZyBhdCB0aGF0IHBvc2l0aW9uLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbkxlbmd0aCA9IGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoO1xuICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIGljb24gbWFyayB3aXRoIHRoZSBob2lzdCBzY3JpcHQgb3IgZW1wdHkgc3RyaW5nLlxuICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgZmlyc3QgcGFydCBvZiB0aGUgY2h1bmssIGJlZm9yZSB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheSgwLCBpY29uTWFya0luZGV4KSk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBpbnNlcnRpb24gYWZ0ZXIgdGhlIGljb24gbWFyay5cbiAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaWNvbk1hcmtJbmRleCk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSByZXN0IG9mIHRoZSBjaHVuayBhZnRlciB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4ICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBjaHVuayA9IHJlcGxhY2VkO1xuICAgICAgICAgICAgICAgIGlzTWFya1JlbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShpbnNlcnQpIHtcbiAgICBsZXQgaW5zZXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBXZSBuZWVkIHRvIHRyYWNrIGlmIHRoaXMgdHJhbnNmb3JtIHNhdyBhbnkgYnl0ZXMgYmVjYXVzZSBpZiBpdCBkaWRuJ3RcbiAgICAvLyB3ZSB3b24ndCB3YW50IHRvIGluc2VydCBhbnkgc2VydmVyIEhUTUwgYXQgYWxsXG4gICAgbGV0IGhhc0J5dGVzID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBoYXNCeXRlcyA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgIGlmIChpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVkSW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETyAoQEV0aGFuLUFycm93b29kKTogUmVwbGFjZSB0aGUgZ2VuZXJpYyBgaW5kZXhPZlVpbnQ4QXJyYXlgIG1ldGhvZCB3aXRoIHNvbWV0aGluZyBmaW5lbHkgdHVuZWQgZm9yIHRoZSBzdWJzZXQgb2YgdGhpbmdzIGFjdHVhbGx5IGJlaW5nIGNoZWNrZWQgZm9yLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhFQUQpO1xuICAgICAgICAgICAgICAgIC8vIEluIGZ1bGx5IHN0YXRpYyByZW5kZXJpbmcgb3Igbm9uIFBQUiByZW5kZXJpbmcgY2FzZXM6XG4gICAgICAgICAgICAgICAgLy8gYC9oZWFkPmAgd2lsbCBhbHdheXMgYmUgZm91bmQgaW4gdGhlIGNodW5rIGluIGZpcnN0IGNodW5rIHJlbmRlcmluZy5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSB0b3RhbCBjb3VudCBvZiB0aGUgYnl0ZXMgaW4gdGhlIGNodW5rIGFuZCB0aGUgaW5zZXJ0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlLmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjaHVuayA9IDxoZWFkPjxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiPjwvaGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydGlvbiA9IDxzY3JpcHQ+Li4uPC9zY3JpcHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXRwdXQgPSA8aGVhZD48bWV0YSBjaGFyc2V0PVwidXRmLThcIj4gWyA8c2NyaXB0Pi4uLjwvc2NyaXB0PiBdIDwvaGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGVkSGVhZENvbnRlbnQgPSBuZXcgVWludDhBcnJheShjaHVuay5sZW5ndGggKyBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNodW5rLCBiZWZvcmUgdGhlIGhlYWQgdGFnXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZEhlYWRDb250ZW50LnNldChjaHVuay5zbGljZSgwLCBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzZXJ2ZXIgaW5zZXJ0ZWQgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSByZXN0IG9mIHRoZSBjaHVua1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoY2h1bmsuc2xpY2UoaW5kZXgpLCBpbmRleCArIGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShpbnNlcnRlZEhlYWRDb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBoYXBwZW5zIGluIFBQUiByZW5kZXJpbmcgZHVyaW5nIG5leHQgc3RhcnQsIHdoZW4gdGhlIHBhZ2UgaXMgcGFydGlhbGx5IHJlbmRlcmVkLlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBwYWdlIHJlc3VtZXMsIHRoZSBoZWFkIHRhZyB3aWxsIGJlIGZvdW5kIGluIHRoZSBtaWRkbGUgb2YgdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVyZSB3ZSBqdXN0IG5lZWQgdG8gYXBwZW5kIHRoZSBpbnNlcnRpb24gYW5kIGNodW5rIHRvIHRoZSBjdXJyZW50IHN0cmVhbS5cbiAgICAgICAgICAgICAgICAgICAgLy8gZS5nLlxuICAgICAgICAgICAgICAgICAgICAvLyBQUFItc3RhdGljOiA8aGVhZD4uLi48L2hlYWQ+PGJvZHk+IFsgcmVzdW1lIGNvbnRlbnQgXSA8L2JvZHk+XG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUi1yZXN1bWU6IFsgaW5zZXJ0aW9uIF0gWyByZXN0IGNvbnRlbnQgXVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGJlZm9yZSBjbG9zaW5nIGlmIHRoZXJlJ3MgYW55dGhpbmcgcmVtYWluaW5nIHRvIGluc2VydC5cbiAgICAgICAgICAgIGlmIChoYXNCeXRlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGluc2VydGlvbikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuLy8gU3VmZml4IGFmdGVyIG1haW4gYm9keSBjb250ZW50IC0gc2NyaXB0cyBiZWZvcmUgPC9ib2R5Pixcbi8vIGJ1dCB3YWl0IGZvciB0aGUgbWFqb3IgY2h1bmtzIHRvIGJlIGVucXVldWVkLlxuZnVuY3Rpb24gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4KSB7XG4gICAgbGV0IGZsdXNoZWQgPSBmYWxzZTtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgICgwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoc3VmZml4KSk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZW5xdWV1aW5nIGl0IGNhbid0IGJlIGR1ZSB0byB0aGlzXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm1lcnMgZmF1bHQuIEl0J3MgbGlrZWx5IGR1ZSB0byB0aGUgY29udHJvbGxlciBiZWluZ1xuICAgICAgICAgICAgLy8gZXJyb3JlZCBkdWUgdG8gdGhlIHN0cmVhbSBiZWluZyBjYW5jZWxsZWQuXG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBmbHVzaGVkLCB3ZSdyZSBkb25lLlxuICAgICAgICAgICAgaWYgKGZsdXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBmbHVzaCB0byBoYXBwZW4uXG4gICAgICAgICAgICBmbHVzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgICAgICBpZiAoZmx1c2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgLy8gRmx1c2ggbm93LlxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN1ZmZpeCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVGbGlnaHREYXRhSW5qZWN0aW9uVHJhbnNmb3JtU3RyZWFtKHN0cmVhbSwgZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykge1xuICAgIGxldCBodG1sU3RyZWFtRmluaXNoZWQgPSBmYWxzZTtcbiAgICBsZXQgcHVsbCA9IG51bGw7XG4gICAgbGV0IGRvbmVQdWxsaW5nID0gZmFsc2U7XG4gICAgZnVuY3Rpb24gc3RhcnRPckNvbnRpbnVlUHVsbGluZyhjb250cm9sbGVyKSB7XG4gICAgICAgIGlmICghcHVsbCkge1xuICAgICAgICAgICAgcHVsbCA9IHN0YXJ0UHVsbGluZyhjb250cm9sbGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHVsbDtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICAgICAgICBpZiAoZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykge1xuICAgICAgICAgICAgLy8gTk9URTogc3RyZWFtaW5nIGZsdXNoXG4gICAgICAgICAgICAvLyBXZSBhcmUgYnVmZmVyaW5nIGhlcmUgZm9yIHRoZSBpbmxpbmVkIGRhdGEgc3RyZWFtIGJlY2F1c2UgdGhlXG4gICAgICAgICAgICAvLyBcInNoZWxsXCIgc3RyZWFtIG1pZ2h0IGJlIGNodW5rZW5pemVkIGFnYWluIGJ5IHRoZSB1bmRlcmx5aW5nIHN0cmVhbVxuICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24sIGUuZy4gd2l0aCBhIHNwZWNpZmljIGhpZ2gtd2F0ZXIgbWFyay4gVG8gZW5zdXJlIGl0J3NcbiAgICAgICAgICAgIC8vIHRoZSBzYWZlIHRpbWluZyB0byBwaXBlIHRoZSBkYXRhIHN0cmVhbSwgdGhpcyBleHRyYSB0aWNrIGlzXG4gICAgICAgICAgICAvLyBuZWNlc3NhcnkuXG4gICAgICAgICAgICAvLyBXZSBkb24ndCBzdGFydCByZWFkaW5nIHVudGlsIHdlJ3ZlIGxlZnQgdGhlIGN1cnJlbnQgVGFzayB0byBlbnN1cmVcbiAgICAgICAgICAgIC8vIHRoYXQgaXQncyBpbnNlcnRlZCBhZnRlciBmbHVzaGluZyB0aGUgc2hlbGwuIE5vdGUgdGhhdCB0aGlzIGltcGxlbWVudGF0aW9uXG4gICAgICAgICAgICAvLyBtaWdodCBnZXQgc3RhbGUgaWYgaW1wbCBkZXRhaWxzIG9mIEZpenogY2hhbmdlIGluIHRoZSBmdXR1cmUuXG4gICAgICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci5hdExlYXN0T25lVGFzaykoKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICBkb25lUHVsbGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBwcmlvcml0aXplIEhUTUwgb3ZlciBSU0MgZGF0YS5cbiAgICAgICAgICAgICAgICAvLyBUaGUgU1NSIHJlbmRlciBpcyBiYXNlZCBvbiB0aGUgc2FtZSBSU0Mgc3RyZWFtLCBzbyB3aGVuIHdlIGdldCBhIG5ldyBSU0MgY2h1bmssXG4gICAgICAgICAgICAgICAgLy8gd2UncmUgbGlrZWx5IHRvIHByb2R1Y2UgYW4gSFRNTCBjaHVuayBhcyB3ZWxsLCBzbyBnaXZlIGl0IGEgY2hhbmNlIHRvIGZsdXNoIGZpcnN0LlxuICAgICAgICAgICAgICAgIGlmICghZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuayAmJiAhaHRtbFN0cmVhbUZpbmlzaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0ICgwLCBfc2NoZWR1bGVyLmF0TGVhc3RPbmVUYXNrKSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBpZiAoIWRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspIHtcbiAgICAgICAgICAgICAgICBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gU3RhcnQgdGhlIHN0cmVhbWluZyBpZiBpdCBoYXNuJ3QgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQgeWV0LlxuICAgICAgICAgICAgaWYgKGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspIHtcbiAgICAgICAgICAgICAgICBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaHRtbFN0cmVhbUZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChkb25lUHVsbGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5jb25zdCBDTE9TRV9UQUcgPSAnPC9ib2R5PjwvaHRtbD4nO1xuLyoqXG4gKiBUaGlzIHRyYW5zZm9ybSBzdHJlYW0gbW92ZXMgdGhlIHN1ZmZpeCB0byB0aGUgZW5kIG9mIHRoZSBzdHJlYW0sIHNvIHJlc3VsdHNcbiAqIGxpa2UgYDwvYm9keT48L2h0bWw+PHNjcmlwdD4uLi48L3NjcmlwdD5gIHdpbGwgYmUgdHJhbnNmb3JtZWQgdG9cbiAqIGA8c2NyaXB0Pi4uLjwvc2NyaXB0PjwvYm9keT48L2h0bWw+YC5cbiAqLyBmdW5jdGlvbiBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkge1xuICAgIGxldCBmb3VuZFN1ZmZpeCA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGZvdW5kU3VmZml4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRTdWZmaXggPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3aG9sZSBjaHVuayBpcyB0aGUgc3VmZml4LCB0aGVuIGRvbid0IHdyaXRlIGFueXRoaW5nLCBpdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gYmUgd3JpdHRlbiBpbiB0aGUgZmx1c2guXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA9PT0gX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIHBhcnQgYmVmb3JlIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gY2h1bmsuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShiZWZvcmUpO1xuICAgICAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBzdWZmaXggaXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY2h1bmssIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAvLyB0byBzcGxpdCB0aGUgY2h1bmsgaW50byB0d28gcGFydHMuXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA+IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwubGVuZ3RoICsgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBwYXJ0IGFmdGVyIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyID0gY2h1bmsuc2xpY2UoaW5kZXggKyBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShhZnRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBkaWRuJ3QgZmluZCB0aGUgc3VmZml4LCB0aGUgSFRNTCBpcyBub3QgdmFsaWQgaWYgd2UgZG9uJ3RcbiAgICAgICAgICAgIC8vIGFkZCBpdCwgc28gaW5zZXJ0IGl0IGF0IHRoZSBlbmQuXG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVN0cmlwRG9jdW1lbnRDbG9zaW5nVGFnc1RyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHJlbHkgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBjaHVua3Mgd2lsbCBuZXZlciBicmVhayBhY3Jvc3MgYSBjb2RlIHVuaXQuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIHJlYXNvbmFibGUgYmVjYXVzZSB3ZSBjdXJyZW50bHkgY29uY2F0IGFsbCBvZiBSZWFjdCdzIG91dHB1dCBmcm9tIGEgc2luZ2xlXG4gICAgICAgICAgICAvLyBmbHVzaCBpbnRvIG9uZSBjaHVuayBiZWZvcmUgc3RyZWFtaW5nIGl0IGZvcndhcmQgd2hpY2ggbWVhbnMgdGhlIGNodW5rIHdpbGwgcmVwcmVzZW50XG4gICAgICAgICAgICAvLyBhIHNpbmdsZSBjb2hlcmVudCB1dGYtOCBzdHJpbmcuIFRoaXMgaXMgbm90IHNhZmUgdG8gdXNlIGlmIHdlIGNoYW5nZSBvdXIgc3RyZWFtaW5nIHRvIG5vXG4gICAgICAgICAgICAvLyBsb25nZXIgZG8gdGhpcyBsYXJnZSBidWZmZXJlZCBjaHVua1xuICAgICAgICAgICAgaWYgKCgwLCBfdWludDhhcnJheWhlbHBlcnMuaXNFcXVpdmFsZW50VWludDhBcnJheXMpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKSB8fCAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWSkgfHwgKDAsIF91aW50OGFycmF5aGVscGVycy5pc0VxdWl2YWxlbnRVaW50OEFycmF5cykoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGVudGlyZSBjaHVuayBpcyB0aGUgY2xvc2luZyB0YWdzOyByZXR1cm4gd2l0aG91dCBlbnF1ZXVlaW5nIGFueXRoaW5nLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIGFzc3VtZSB0aGVzZSB0YWdzIHdpbGwgZ28gYXQgdG9nZXRoZXIgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgYW5kIHRoYXRcbiAgICAgICAgICAgIC8vIHRoZXkgd29uJ3QgYXBwZWFyIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LiBUaGlzIGlzIG5vdCByZWFsbHkgYSBzYWZlIGFzc3VtcHRpb25cbiAgICAgICAgICAgIC8vIGJ1dCB1bnRpbCB3ZSByZXZhbXAgb3VyIHN0cmVhbWluZyBpbmZyYSB0aGlzIGlzIGEgcGVyZm9ybWFudCB3YXkgdG8gc3RyaW5nIHRoZSB0YWdzXG4gICAgICAgICAgICBjaHVuayA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMucmVtb3ZlRnJvbVVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZKTtcbiAgICAgICAgICAgIGNodW5rID0gKDAsIF91aW50OGFycmF5aGVscGVycy5yZW1vdmVGcm9tVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbSgpIHtcbiAgICBsZXQgZm91bmRIdG1sID0gZmFsc2U7XG4gICAgbGV0IGZvdW5kQm9keSA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gUGVlayBpbnRvIHRoZSBzdHJlYW1lZCBjaHVuayB0byBzZWUgaWYgdGhlIHRhZ3MgYXJlIHByZXNlbnQuXG4gICAgICAgICAgICBpZiAoIWZvdW5kSHRtbCAmJiAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5PUEVOSU5HLkhUTUwpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmb3VuZEh0bWwgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFmb3VuZEJvZHkgJiYgKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuT1BFTklORy5CT0RZKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRCb2R5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBtaXNzaW5nVGFncyA9IFtdO1xuICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwpIG1pc3NpbmdUYWdzLnB1c2goJ2h0bWwnKTtcbiAgICAgICAgICAgIGlmICghZm91bmRCb2R5KSBtaXNzaW5nVGFncy5wdXNoKCdib2R5Jyk7XG4gICAgICAgICAgICBpZiAoIW1pc3NpbmdUYWdzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGA8aHRtbCBpZD1cIl9fbmV4dF9lcnJvcl9fXCI+XG4gICAgICAgICAgICA8dGVtcGxhdGVcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWVycm9yLW1lc3NhZ2U9XCJNaXNzaW5nICR7bWlzc2luZ1RhZ3MubWFwKChjKT0+YDwke2N9PmApLmpvaW4obWlzc2luZ1RhZ3MubGVuZ3RoID4gMSA/ICcgYW5kICcgOiAnJyl9IHRhZ3MgaW4gdGhlIHJvb3QgbGF5b3V0LlxcblJlYWQgbW9yZSBhdCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taXNzaW5nLXJvb3QtbGF5b3V0LXRhZ3NcIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3ItZGlnZXN0PVwiJHtfY29uc3RhbnRzMS5NSVNTSU5HX1JPT1RfVEFHU19FUlJPUn1cIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3Itc3RhY2s9XCJcIlxuICAgICAgICAgICAgPjwvdGVtcGxhdGU+XG4gICAgICAgICAgYCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjaGFpblRyYW5zZm9ybWVycyhyZWFkYWJsZSwgdHJhbnNmb3JtZXJzKSB7XG4gICAgbGV0IHN0cmVhbSA9IHJlYWRhYmxlO1xuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtZXIgb2YgdHJhbnNmb3JtZXJzKXtcbiAgICAgICAgaWYgKCF0cmFuc2Zvcm1lcikgY29udGludWU7XG4gICAgICAgIHN0cmVhbSA9IHN0cmVhbS5waXBlVGhyb3VnaCh0cmFuc2Zvcm1lcik7XG4gICAgfVxuICAgIHJldHVybiBzdHJlYW07XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZUZpenpTdHJlYW0ocmVuZGVyU3RyZWFtLCB7IHN1ZmZpeCwgaW5saW5lZERhdGFTdHJlYW0sIGlzU3RhdGljR2VuZXJhdGlvbiwgaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQsIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSwgdmFsaWRhdGVSb290TGF5b3V0IH0pIHtcbiAgICAvLyBTdWZmaXggaXRzZWxmIG1pZ2h0IGNvbnRhaW4gY2xvc2UgdGFncyBhdCB0aGUgZW5kLCBzbyB3ZSBuZWVkIHRvIHNwbGl0IGl0LlxuICAgIGNvbnN0IHN1ZmZpeFVuY2xvc2VkID0gc3VmZml4ID8gc3VmZml4LnNwbGl0KENMT1NFX1RBRywgMSlbMF0gOiBudWxsO1xuICAgIC8vIElmIHdlJ3JlIGdlbmVyYXRpbmcgc3RhdGljIEhUTUwgd2UgbmVlZCB0byB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZSBjb250aW51aW5nLlxuICAgIGlmIChpc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgICAgYXdhaXQgcmVuZGVyU3RyZWFtLmFsbFJlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gY2hhaW5UcmFuc2Zvcm1lcnMocmVuZGVyU3RyZWFtLCBbXG4gICAgICAgIC8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCksXG4gICAgICAgIC8vIEFkZCBidWlsZCBpZCBjb21tZW50IHRvIHN0YXJ0IG9mIHRoZSBIVE1MIGRvY3VtZW50IChpbiBleHBvcnQgbW9kZSlcbiAgICAgICAgY3JlYXRlUHJlZmV0Y2hDb21tZW50U3RyZWFtKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkKSxcbiAgICAgICAgLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgICAgIGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpLFxuICAgICAgICAvLyBJbnNlcnQgc3VmZml4IGNvbnRlbnRcbiAgICAgICAgc3VmZml4VW5jbG9zZWQgIT0gbnVsbCAmJiBzdWZmaXhVbmNsb3NlZC5sZW5ndGggPiAwID8gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4VW5jbG9zZWQpIDogbnVsbCxcbiAgICAgICAgLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgICAgICBpbmxpbmVkRGF0YVN0cmVhbSA/IGNyZWF0ZUZsaWdodERhdGFJbmplY3Rpb25UcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0sIHRydWUpIDogbnVsbCxcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIHJvb3QgbGF5b3V0IGZvciBtaXNzaW5nIGh0bWwgb3IgYm9keSB0YWdzXG4gICAgICAgIHZhbGlkYXRlUm9vdExheW91dCA/IGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW0oKSA6IG51bGwsXG4gICAgICAgIC8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgICAgIGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSxcbiAgICAgICAgLy8gU3BlY2lhbCBoZWFkIGluc2VydGlvbnNcbiAgICAgICAgLy8gVE9ETy1BUFA6IEluc2VydCBzZXJ2ZXIgc2lkZSBodG1sIHRvIGVuZCBvZiBoZWFkIGluIGFwcCBsYXlvdXQgcmVuZGVyaW5nLCB0byBhdm9pZFxuICAgICAgICAvLyBoeWRyYXRpb24gZXJyb3JzLiBSZW1vdmUgdGhpcyBvbmNlIGl0J3MgcmVhZHkgdG8gYmUgaGFuZGxlZCBieSByZWFjdCBpdHNlbGYuXG4gICAgICAgIGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKVxuICAgIF0pO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVEeW5hbWljUHJlcmVuZGVyKHByZXJlbmRlclN0cmVhbSwgeyBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEgfSkge1xuICAgIHJldHVybiBwcmVyZW5kZXJTdHJlYW0vLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpKS5waXBlVGhyb3VnaChjcmVhdGVTdHJpcERvY3VtZW50Q2xvc2luZ1RhZ3NUcmFuc2Zvcm0oKSkvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkpLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlU3RhdGljUHJlcmVuZGVyKHByZXJlbmRlclN0cmVhbSwgeyBpbmxpbmVkRGF0YVN0cmVhbSwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhLCBpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCB9KSB7XG4gICAgcmV0dXJuIHByZXJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLy8gQWRkIGJ1aWxkIGlkIGNvbW1lbnQgdG8gc3RhcnQgb2YgdGhlIEhUTUwgZG9jdW1lbnQgKGluIGV4cG9ydCBtb2RlKVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVQcmVmZXRjaENvbW1lbnRTdHJlYW0oaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQpKS8vIEluc2VydCBnZW5lcmF0ZWQgdGFncyB0byBoZWFkXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSkvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSkpLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVGbGlnaHREYXRhSW5qZWN0aW9uVHJhbnNmb3JtU3RyZWFtKGlubGluZWREYXRhU3RyZWFtLCB0cnVlKSkvLyBDbG9zZSB0YWdzIHNob3VsZCBhbHdheXMgYmUgZGVmZXJyZWQgdG8gdGhlIGVuZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVEeW5hbWljSFRNTFJlc3VtZShyZW5kZXJTdHJlYW0sIHsgZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaywgaW5saW5lZERhdGFTdHJlYW0sIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSB9KSB7XG4gICAgcmV0dXJuIHJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKS8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSkvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUZsaWdodERhdGFJbmplY3Rpb25UcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0sIGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspKS8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmcoQ0xPU0VfVEFHKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/uint8array-helpers.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Find the starting index of Uint8Array `b` within Uint8Array `a`.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n indexOfUint8Array: function() {\n return indexOfUint8Array;\n },\n isEquivalentUint8Arrays: function() {\n return isEquivalentUint8Arrays;\n },\n removeFromUint8Array: function() {\n return removeFromUint8Array;\n }\n});\nfunction indexOfUint8Array(a, b) {\n if (b.length === 0) return 0;\n if (a.length === 0 || b.length > a.length) return -1;\n // start iterating through `a`\n for(let i = 0; i <= a.length - b.length; i++){\n let completeMatch = true;\n // from index `i`, iterate through `b` and check for mismatch\n for(let j = 0; j < b.length; j++){\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false;\n break;\n }\n }\n if (completeMatch) {\n return i;\n }\n }\n return -1;\n}\nfunction isEquivalentUint8Arrays(a, b) {\n if (a.length !== b.length) return false;\n for(let i = 0; i < a.length; i++){\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\nfunction removeFromUint8Array(a, b) {\n const tagIndex = indexOfUint8Array(a, b);\n if (tagIndex === 0) return a.subarray(b.length);\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length);\n removed.set(a.slice(0, tagIndex));\n removed.set(a.slice(tagIndex + b.length), tagIndex);\n return removed;\n } else {\n return a;\n }\n}\n\n//# sourceMappingURL=uint8array-helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvdWludDhhcnJheS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBLHVCQUF1QixjQUFjO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsY0FBYztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy91aW50OGFycmF5LWhlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaW5kIHRoZSBzdGFydGluZyBpbmRleCBvZiBVaW50OEFycmF5IGBiYCB3aXRoaW4gVWludDhBcnJheSBgYWAuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpbmRleE9mVWludDhBcnJheTogbnVsbCxcbiAgICBpc0VxdWl2YWxlbnRVaW50OEFycmF5czogbnVsbCxcbiAgICByZW1vdmVGcm9tVWludDhBcnJheTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpbmRleE9mVWludDhBcnJheTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbmRleE9mVWludDhBcnJheTtcbiAgICB9LFxuICAgIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzO1xuICAgIH0sXG4gICAgcmVtb3ZlRnJvbVVpbnQ4QXJyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlRnJvbVVpbnQ4QXJyYXk7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpbmRleE9mVWludDhBcnJheShhLCBiKSB7XG4gICAgaWYgKGIubGVuZ3RoID09PSAwKSByZXR1cm4gMDtcbiAgICBpZiAoYS5sZW5ndGggPT09IDAgfHwgYi5sZW5ndGggPiBhLmxlbmd0aCkgcmV0dXJuIC0xO1xuICAgIC8vIHN0YXJ0IGl0ZXJhdGluZyB0aHJvdWdoIGBhYFxuICAgIGZvcihsZXQgaSA9IDA7IGkgPD0gYS5sZW5ndGggLSBiLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgbGV0IGNvbXBsZXRlTWF0Y2ggPSB0cnVlO1xuICAgICAgICAvLyBmcm9tIGluZGV4IGBpYCwgaXRlcmF0ZSB0aHJvdWdoIGBiYCBhbmQgY2hlY2sgZm9yIG1pc21hdGNoXG4gICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCBiLmxlbmd0aDsgaisrKXtcbiAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZXMgZG8gbm90IG1hdGNoLCB0aGVuIHRoaXMgaXNuJ3QgYSBjb21wbGV0ZSBtYXRjaCwgZXhpdCBgYmAgaXRlcmF0aW9uIGVhcmx5IGFuZCBpdGVyYXRlIHRvIG5leHQgaW5kZXggb2YgYGFgLlxuICAgICAgICAgICAgaWYgKGFbaSArIGpdICE9PSBiW2pdKSB7XG4gICAgICAgICAgICAgICAgY29tcGxldGVNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb21wbGV0ZU1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG59XG5mdW5jdGlvbiBpc0VxdWl2YWxlbnRVaW50OEFycmF5cyhhLCBiKSB7XG4gICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgaWYgKGFbaV0gIT09IGJbaV0pIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiByZW1vdmVGcm9tVWludDhBcnJheShhLCBiKSB7XG4gICAgY29uc3QgdGFnSW5kZXggPSBpbmRleE9mVWludDhBcnJheShhLCBiKTtcbiAgICBpZiAodGFnSW5kZXggPT09IDApIHJldHVybiBhLnN1YmFycmF5KGIubGVuZ3RoKTtcbiAgICBpZiAodGFnSW5kZXggPiAtMSkge1xuICAgICAgICBjb25zdCByZW1vdmVkID0gbmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGggLSBiLmxlbmd0aCk7XG4gICAgICAgIHJlbW92ZWQuc2V0KGEuc2xpY2UoMCwgdGFnSW5kZXgpKTtcbiAgICAgICAgcmVtb3ZlZC5zZXQoYS5zbGljZSh0YWdJbmRleCArIGIubGVuZ3RoKSwgdGFnSW5kZXgpO1xuICAgICAgICByZXR1cm4gcmVtb3ZlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVpbnQ4YXJyYXktaGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/error.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/server/web/error.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLGtCQUFrQixNQUFNO0FBQ3hCLGlDQUFpQyxLQUFLO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL2Vycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUGFnZVNpZ25hdHVyZUVycm9yOiBudWxsLFxuICAgIFJlbW92ZWRQYWdlRXJyb3I6IG51bGwsXG4gICAgUmVtb3ZlZFVBRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUGFnZVNpZ25hdHVyZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBhZ2VTaWduYXR1cmVFcnJvcjtcbiAgICB9LFxuICAgIFJlbW92ZWRQYWdlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVtb3ZlZFBhZ2VFcnJvcjtcbiAgICB9LFxuICAgIFJlbW92ZWRVQUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbW92ZWRVQUVycm9yO1xuICAgIH1cbn0pO1xuY2xhc3MgUGFnZVNpZ25hdHVyZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHsgcGFnZSB9KXtcbiAgICAgICAgc3VwZXIoYFRoZSBtaWRkbGV3YXJlIFwiJHtwYWdlfVwiIGFjY2VwdHMgYW4gYXN5bmMgQVBJIGRpcmVjdGx5IHdpdGggdGhlIGZvcm06XG4gIFxuICBleHBvcnQgZnVuY3Rpb24gbWlkZGxld2FyZShyZXF1ZXN0LCBldmVudCkge1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UucmVkaXJlY3QoJy9uZXctbG9jYXRpb24nKVxuICB9XG4gIFxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtbmV3LXNpZ25hdHVyZVxuICBgKTtcbiAgICB9XG59XG5jbGFzcyBSZW1vdmVkUGFnZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKGBUaGUgcmVxdWVzdC5wYWdlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIFxcYFVSTFBhdHRlcm5cXGAuXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZXF1ZXN0LXBhZ2VcbiAgYCk7XG4gICAgfVxufVxuY2xhc3MgUmVtb3ZlZFVBRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoYFRoZSByZXF1ZXN0LnVhIGhhcyBiZWVuIHJlbW92ZWQgaW4gZmF2b3VyIG9mIFxcYHVzZXJBZ2VudFxcYCBmdW5jdGlvbi5cbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXBhcnNlLXVzZXItYWdlbnRcbiAgYCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/error.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/exports/index.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/server/web/exports/index.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("// Alias index file of next/server for edge runtime for tree-shaking purpose\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ImageResponse: function() {\n return _imageresponse.ImageResponse;\n },\n NextRequest: function() {\n return _request.NextRequest;\n },\n NextResponse: function() {\n return _response.NextResponse;\n },\n URLPattern: function() {\n return _urlpattern.URLPattern;\n },\n after: function() {\n return _after.after;\n },\n connection: function() {\n return _connection.connection;\n },\n unstable_rootParams: function() {\n return _rootparams.unstable_rootParams;\n },\n userAgent: function() {\n return _useragent.userAgent;\n },\n userAgentFromString: function() {\n return _useragent.userAgentFromString;\n }\n});\nconst _imageresponse = __webpack_require__(/*! ../spec-extension/image-response */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js\");\nconst _request = __webpack_require__(/*! ../spec-extension/request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _response = __webpack_require__(/*! ../spec-extension/response */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js\");\nconst _useragent = __webpack_require__(/*! ../spec-extension/user-agent */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js\");\nconst _urlpattern = __webpack_require__(/*! ../spec-extension/url-pattern */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js\");\nconst _after = __webpack_require__(/*! ../../after */ \"(rsc)/./node_modules/next/dist/server/after/index.js\");\nconst _connection = __webpack_require__(/*! ../../request/connection */ \"(rsc)/./node_modules/next/dist/server/request/connection.js\");\nconst _rootparams = __webpack_require__(/*! ../../request/root-params */ \"(rsc)/./node_modules/next/dist/server/request/root-params.js\");\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXhwb3J0cy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQVVMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdUJBQXVCLG1CQUFPLENBQUMsb0hBQWtDO0FBQ2pFLGlCQUFpQixtQkFBTyxDQUFDLHNHQUEyQjtBQUNwRCxrQkFBa0IsbUJBQU8sQ0FBQyx3R0FBNEI7QUFDdEQsbUJBQW1CLG1CQUFPLENBQUMsNEdBQThCO0FBQ3pELG9CQUFvQixtQkFBTyxDQUFDLDhHQUErQjtBQUMzRCxlQUFlLG1CQUFPLENBQUMseUVBQWE7QUFDcEMsb0JBQW9CLG1CQUFPLENBQUMsNkZBQTBCO0FBQ3RELG9CQUFvQixtQkFBTyxDQUFDLCtGQUEyQjs7QUFFdkQiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL2V4cG9ydHMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQWxpYXMgaW5kZXggZmlsZSBvZiBuZXh0L3NlcnZlciBmb3IgZWRnZSBydW50aW1lIGZvciB0cmVlLXNoYWtpbmcgcHVycG9zZVxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBJbWFnZVJlc3BvbnNlOiBudWxsLFxuICAgIE5leHRSZXF1ZXN0OiBudWxsLFxuICAgIE5leHRSZXNwb25zZTogbnVsbCxcbiAgICBVUkxQYXR0ZXJuOiBudWxsLFxuICAgIGFmdGVyOiBudWxsLFxuICAgIGNvbm5lY3Rpb246IG51bGwsXG4gICAgdW5zdGFibGVfcm9vdFBhcmFtczogbnVsbCxcbiAgICB1c2VyQWdlbnQ6IG51bGwsXG4gICAgdXNlckFnZW50RnJvbVN0cmluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBJbWFnZVJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9pbWFnZXJlc3BvbnNlLkltYWdlUmVzcG9uc2U7XG4gICAgfSxcbiAgICBOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcmVxdWVzdC5OZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIE5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcmVzcG9uc2UuTmV4dFJlc3BvbnNlO1xuICAgIH0sXG4gICAgVVJMUGF0dGVybjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXJscGF0dGVybi5VUkxQYXR0ZXJuO1xuICAgIH0sXG4gICAgYWZ0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2FmdGVyLmFmdGVyO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29ubmVjdGlvbi5jb25uZWN0aW9uO1xuICAgIH0sXG4gICAgdW5zdGFibGVfcm9vdFBhcmFtczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcm9vdHBhcmFtcy51bnN0YWJsZV9yb290UGFyYW1zO1xuICAgIH0sXG4gICAgdXNlckFnZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF91c2VyYWdlbnQudXNlckFnZW50O1xuICAgIH0sXG4gICAgdXNlckFnZW50RnJvbVN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXNlcmFnZW50LnVzZXJBZ2VudEZyb21TdHJpbmc7XG4gICAgfVxufSk7XG5jb25zdCBfaW1hZ2VyZXNwb25zZSA9IHJlcXVpcmUoXCIuLi9zcGVjLWV4dGVuc2lvbi9pbWFnZS1yZXNwb25zZVwiKTtcbmNvbnN0IF9yZXF1ZXN0ID0gcmVxdWlyZShcIi4uL3NwZWMtZXh0ZW5zaW9uL3JlcXVlc3RcIik7XG5jb25zdCBfcmVzcG9uc2UgPSByZXF1aXJlKFwiLi4vc3BlYy1leHRlbnNpb24vcmVzcG9uc2VcIik7XG5jb25zdCBfdXNlcmFnZW50ID0gcmVxdWlyZShcIi4uL3NwZWMtZXh0ZW5zaW9uL3VzZXItYWdlbnRcIik7XG5jb25zdCBfdXJscGF0dGVybiA9IHJlcXVpcmUoXCIuLi9zcGVjLWV4dGVuc2lvbi91cmwtcGF0dGVyblwiKTtcbmNvbnN0IF9hZnRlciA9IHJlcXVpcmUoXCIuLi8uLi9hZnRlclwiKTtcbmNvbnN0IF9jb25uZWN0aW9uID0gcmVxdWlyZShcIi4uLy4uL3JlcXVlc3QvY29ubmVjdGlvblwiKTtcbmNvbnN0IF9yb290cGFyYW1zID0gcmVxdWlyZShcIi4uLy4uL3JlcXVlc3Qvcm9vdC1wYXJhbXNcIik7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/exports/index.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/next-url.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/web/next-url.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextURL\", ({\n enumerable: true,\n get: function() {\n return NextURL;\n }\n}));\nconst _detectdomainlocale = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _gethostname = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'));\n}\nconst Internal = Symbol('NextURLInternal');\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: ''\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !undefined,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? '';\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? '';\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale \"${locale}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E597\",\n enumerable: false,\n configurable: true\n });\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvbmV4dC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw0QkFBNEIsbUJBQU8sQ0FBQywwSEFBNEM7QUFDaEYsZ0NBQWdDLG1CQUFPLENBQUMsb0pBQXlEO0FBQ2pHLHFCQUFxQixtQkFBTyxDQUFDLGdHQUErQjtBQUM1RCw2QkFBNkIsbUJBQU8sQ0FBQyw4SUFBc0Q7QUFDM0YscUdBQXFHLEVBQUU7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixTQUE4QztBQUN0RTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1R0FBdUcsT0FBTztBQUM5RztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGNBQWMsSUFBSSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNFQUFzRSxNQUFNO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvbmV4dC11cmwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOZXh0VVJMXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0VVJMO1xuICAgIH1cbn0pO1xuY29uc3QgX2RldGVjdGRvbWFpbmxvY2FsZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGVcIik7XG5jb25zdCBfZm9ybWF0bmV4dHBhdGhuYW1laW5mbyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvXCIpO1xuY29uc3QgX2dldGhvc3RuYW1lID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lXCIpO1xuY29uc3QgX2dldG5leHRwYXRobmFtZWluZm8gPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mb1wiKTtcbmNvbnN0IFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSA9IC8oPyFeaHR0cHM/OlxcL1xcLykoMTI3KD86XFwuKD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KSl7M318XFxbOjoxXFxdfGxvY2FsaG9zdCkvO1xuZnVuY3Rpb24gcGFyc2VVUkwodXJsLCBiYXNlKSB7XG4gICAgcmV0dXJuIG5ldyBVUkwoU3RyaW5nKHVybCkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsICdsb2NhbGhvc3QnKSwgYmFzZSAmJiBTdHJpbmcoYmFzZSkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsICdsb2NhbGhvc3QnKSk7XG59XG5jb25zdCBJbnRlcm5hbCA9IFN5bWJvbCgnTmV4dFVSTEludGVybmFsJyk7XG5jbGFzcyBOZXh0VVJMIHtcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCwgYmFzZU9yT3B0cywgb3B0cyl7XG4gICAgICAgIGxldCBiYXNlO1xuICAgICAgICBsZXQgb3B0aW9ucztcbiAgICAgICAgaWYgKHR5cGVvZiBiYXNlT3JPcHRzID09PSAnb2JqZWN0JyAmJiAncGF0aG5hbWUnIGluIGJhc2VPck9wdHMgfHwgdHlwZW9mIGJhc2VPck9wdHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBiYXNlID0gYmFzZU9yT3B0cztcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRzIHx8IHt9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdHMgfHwgYmFzZU9yT3B0cyB8fCB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW0ludGVybmFsXSA9IHtcbiAgICAgICAgICAgIHVybDogcGFyc2VVUkwoaW5wdXQsIGJhc2UgPz8gb3B0aW9ucy5iYXNlKSxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICBiYXNlUGF0aDogJydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hbmFseXplKCk7XG4gICAgfVxuICAgIGFuYWx5emUoKSB7XG4gICAgICAgIHZhciBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLCBfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUsIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMSwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMTtcbiAgICAgICAgY29uc3QgaW5mbyA9ICgwLCBfZ2V0bmV4dHBhdGhuYW1laW5mby5nZXROZXh0UGF0aG5hbWVJbmZvKSh0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUsIHtcbiAgICAgICAgICAgIG5leHRDb25maWc6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZyxcbiAgICAgICAgICAgIHBhcnNlRGF0YTogIXByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUsXG4gICAgICAgICAgICBpMThuUHJvdmlkZXI6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBob3N0bmFtZSA9ICgwLCBfZ2V0aG9zdG5hbWUuZ2V0SG9zdG5hbWUpKHRoaXNbSW50ZXJuYWxdLnVybCwgdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5oZWFkZXJzKTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXIgPyB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlci5kZXRlY3REb21haW5Mb2NhbGUoaG9zdG5hbWUpIDogKDAsIF9kZXRlY3Rkb21haW5sb2NhbGUuZGV0ZWN0RG9tYWluTG9jYWxlKSgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5kb21haW5zLCBob3N0bmFtZSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSAoKF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZSA9IHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZS5kZWZhdWx0TG9jYWxlKSB8fCAoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzEgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMS5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xLmRlZmF1bHRMb2NhbGUpO1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUgPSBpbmZvLnBhdGhuYW1lO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGggPSBpbmZvLmJhc2VQYXRoID8/ICcnO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5idWlsZElkID0gaW5mby5idWlsZElkO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5sb2NhbGUgPSBpbmZvLmxvY2FsZSA/PyBkZWZhdWx0TG9jYWxlO1xuICAgICAgICB0aGlzW0ludGVybmFsXS50cmFpbGluZ1NsYXNoID0gaW5mby50cmFpbGluZ1NsYXNoO1xuICAgIH1cbiAgICBmb3JtYXRQYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuICgwLCBfZm9ybWF0bmV4dHBhdGhuYW1laW5mby5mb3JtYXROZXh0UGF0aG5hbWVJbmZvKSh7XG4gICAgICAgICAgICBiYXNlUGF0aDogdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGgsXG4gICAgICAgICAgICBidWlsZElkOiB0aGlzW0ludGVybmFsXS5idWlsZElkLFxuICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogIXRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuZm9yY2VMb2NhbGUgPyB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzW0ludGVybmFsXS5sb2NhbGUsXG4gICAgICAgICAgICBwYXRobmFtZTogdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lLFxuICAgICAgICAgICAgdHJhaWxpbmdTbGFzaDogdGhpc1tJbnRlcm5hbF0udHJhaWxpbmdTbGFzaFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZm9ybWF0U2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaDtcbiAgICB9XG4gICAgZ2V0IGJ1aWxkSWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5idWlsZElkO1xuICAgIH1cbiAgICBzZXQgYnVpbGRJZChidWlsZElkKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQgPSBidWlsZElkO1xuICAgIH1cbiAgICBnZXQgbG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0ubG9jYWxlID8/ICcnO1xuICAgIH1cbiAgICBzZXQgbG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB2YXIgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZztcbiAgICAgICAgaWYgKCF0aGlzW0ludGVybmFsXS5sb2NhbGUgfHwgISgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5sb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkpKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IFR5cGVFcnJvcihgVGhlIE5leHRVUkwgY29uZmlndXJhdGlvbiBpbmNsdWRlcyBubyBsb2NhbGUgXCIke2xvY2FsZX1cImApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTk3XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW0ludGVybmFsXS5sb2NhbGUgPSBsb2NhbGU7XG4gICAgfVxuICAgIGdldCBkZWZhdWx0TG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZTtcbiAgICB9XG4gICAgZ2V0IGRvbWFpbkxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZTtcbiAgICB9XG4gICAgZ2V0IHNlYXJjaFBhcmFtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGdldCBob3N0KCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhvc3Q7XG4gICAgfVxuICAgIHNldCBob3N0KHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBob3N0bmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0bmFtZTtcbiAgICB9XG4gICAgc2V0IGhvc3RuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0bmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcG9ydCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wb3J0O1xuICAgIH1cbiAgICBzZXQgcG9ydCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucG9ydCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcHJvdG9jb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucHJvdG9jb2w7XG4gICAgfVxuICAgIHNldCBwcm90b2NvbCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucHJvdG9jb2wgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhyZWYoKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gdGhpcy5mb3JtYXRQYXRobmFtZSgpO1xuICAgICAgICBjb25zdCBzZWFyY2ggPSB0aGlzLmZvcm1hdFNlYXJjaCgpO1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5wcm90b2NvbH0vLyR7dGhpcy5ob3N0fSR7cGF0aG5hbWV9JHtzZWFyY2h9JHt0aGlzLmhhc2h9YDtcbiAgICB9XG4gICAgc2V0IGhyZWYodXJsKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybCA9IHBhcnNlVVJMKHVybCk7XG4gICAgICAgIHRoaXMuYW5hbHl6ZSgpO1xuICAgIH1cbiAgICBnZXQgb3JpZ2luKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLm9yaWdpbjtcbiAgICB9XG4gICAgZ2V0IHBhdGhuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lO1xuICAgIH1cbiAgICBzZXQgcGF0aG5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBoYXNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhhc2g7XG4gICAgfVxuICAgIHNldCBoYXNoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5oYXNoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBzZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoO1xuICAgIH1cbiAgICBzZXQgc2VhcmNoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2ggPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHBhc3N3b3JkKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBhc3N3b3JkO1xuICAgIH1cbiAgICBzZXQgcGFzc3dvcmQodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhc3N3b3JkID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB1c2VybmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC51c2VybmFtZTtcbiAgICB9XG4gICAgc2V0IHVzZXJuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC51c2VybmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgYmFzZVBhdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5iYXNlUGF0aDtcbiAgICB9XG4gICAgc2V0IGJhc2VQYXRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoID0gdmFsdWUuc3RhcnRzV2l0aCgnLycpID8gdmFsdWUgOiBgLyR7dmFsdWV9YDtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhyZWY7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHJlZjtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoJ2VkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbScpXSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHRoaXMuaHJlZixcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5vcmlnaW4sXG4gICAgICAgICAgICBwcm90b2NvbDogdGhpcy5wcm90b2NvbCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiB0aGlzLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXG4gICAgICAgICAgICBob3N0OiB0aGlzLmhvc3QsXG4gICAgICAgICAgICBob3N0bmFtZTogdGhpcy5ob3N0bmFtZSxcbiAgICAgICAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgICAgICAgIHBhdGhuYW1lOiB0aGlzLnBhdGhuYW1lLFxuICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaCxcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtczogdGhpcy5zZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICBoYXNoOiB0aGlzLmhhc2hcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFVSTChTdHJpbmcodGhpcyksIHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC11cmwuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/next-url.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/adapters/headers.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HeadersAdapter: function() {\n return HeadersAdapter;\n },\n ReadonlyHeadersError: function() {\n return ReadonlyHeadersError;\n }\n});\nconst _reflect = __webpack_require__(/*! ./reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nclass ReadonlyHeadersError extends Error {\n constructor(){\n super('Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers');\n }\n static callable() {\n throw new ReadonlyHeadersError();\n }\n}\nclass HeadersAdapter extends Headers {\n constructor(headers){\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super();\n this.headers = new Proxy(headers, {\n get (target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return;\n // If the original casing exists, return the value.\n return _reflect.ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, use the prop as the key.\n return _reflect.ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'symbol') return _reflect.ReflectAdapter.has(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false;\n // If the original casing exists, return true.\n return _reflect.ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === 'symbol') return _reflect.ReflectAdapter.deleteProperty(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true;\n // If the original casing exists, delete the property.\n return _reflect.ReflectAdapter.deleteProperty(target, original);\n }\n });\n }\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */ static seal(headers) {\n return new Proxy(headers, {\n get (target, prop, receiver) {\n switch(prop){\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable;\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */ merge(value) {\n if (Array.isArray(value)) return value.join(', ');\n return value;\n }\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */ static from(headers) {\n if (headers instanceof Headers) return headers;\n return new HeadersAdapter(headers);\n }\n append(name, value) {\n const existing = this.headers[name];\n if (typeof existing === 'string') {\n this.headers[name] = [\n existing,\n value\n ];\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n this.headers[name] = value;\n }\n }\n delete(name) {\n delete this.headers[name];\n }\n get(name) {\n const value = this.headers[name];\n if (typeof value !== 'undefined') return this.merge(value);\n return null;\n }\n has(name) {\n return typeof this.headers[name] !== 'undefined';\n }\n set(name, value) {\n this.headers[name] = value;\n }\n forEach(callbackfn, thisArg) {\n for (const [name, value] of this.entries()){\n callbackfn.call(thisArg, value, name, this);\n }\n }\n *entries() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name);\n yield [\n name,\n value\n ];\n }\n }\n *keys() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n yield name;\n }\n }\n *values() {\n for (const key of Object.keys(this.headers)){\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key);\n yield value;\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n}\n\n//# sourceMappingURL=headers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQywrRkFBVztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL2hlYWRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBIZWFkZXJzQWRhcHRlcjogbnVsbCxcbiAgICBSZWFkb25seUhlYWRlcnNFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBIZWFkZXJzQWRhcHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBIZWFkZXJzQWRhcHRlcjtcbiAgICB9LFxuICAgIFJlYWRvbmx5SGVhZGVyc0Vycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlYWRvbmx5SGVhZGVyc0Vycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlZmxlY3QgPSByZXF1aXJlKFwiLi9yZWZsZWN0XCIpO1xuY2xhc3MgUmVhZG9ubHlIZWFkZXJzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoJ0hlYWRlcnMgY2Fubm90IGJlIG1vZGlmaWVkLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9oZWFkZXJzJyk7XG4gICAgfVxuICAgIHN0YXRpYyBjYWxsYWJsZSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJlYWRvbmx5SGVhZGVyc0Vycm9yKCk7XG4gICAgfVxufVxuY2xhc3MgSGVhZGVyc0FkYXB0ZXIgZXh0ZW5kcyBIZWFkZXJzIHtcbiAgICBjb25zdHJ1Y3RvcihoZWFkZXJzKXtcbiAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBvdmVycmlkZGVuIHRoZSBtZXRob2RzIHRoYXQgd291bGQgYmUgY2FsbGVkLCBzbyB3ZSdyZSBqdXN0XG4gICAgICAgIC8vIGNhbGxpbmcgdGhlIHN1cGVyIGNvbnN0cnVjdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBpbnN0YW5jZW9mIGNoZWNrIHdvcmtzLlxuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBuZXcgUHJveHkoaGVhZGVycywge1xuICAgICAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGlzIGlzIGp1c3QgYW4gb2JqZWN0LCB3ZSBleHBlY3QgdGhhdCBhbGwgXCJnZXRcIiBvcGVyYXRpb25zXG4gICAgICAgICAgICAgICAgLy8gYXJlIGZvciBwcm9wZXJ0aWVzLiBJZiBpdCdzIGEgXCJnZXRcIiBmb3IgYSBzeW1ib2wsIHdlJ2xsIGp1c3QgcmV0dXJuXG4gICAgICAgICAgICAgICAgLy8gdGhlIHN5bWJvbC5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzeW1ib2wnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCByZXR1cm4gdW5kZWZpbmVkLlxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWwgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBleGlzdHMsIHJldHVybiB0aGUgdmFsdWUuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIG9yaWdpbmFsLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCB1c2UgdGhlIHByb3AgYXMgdGhlIGtleS5cbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuc2V0KHRhcmdldCwgb3JpZ2luYWwgPz8gcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N5bWJvbCcpIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb3dlcmNhc2VkID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIC8vIExldCdzIGZpbmQgdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUga2V5LiBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpc1xuICAgICAgICAgICAgICAgIC8vIG5vIG1peGVkIGNhc2Uga2V5cyAoZS5nLiBcIkNvbnRlbnQtVHlwZVwiIGFuZCBcImNvbnRlbnQtdHlwZVwiKSBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdC5cbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKG8pPT5vLnRvTG93ZXJDYXNlKCkgPT09IGxvd2VyY2FzZWQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZG9lc24ndCBleGlzdCwgcmV0dXJuIGZhbHNlLlxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWwgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBleGlzdHMsIHJldHVybiB0cnVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5oYXModGFyZ2V0LCBvcmlnaW5hbCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVsZXRlUHJvcGVydHkgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N5bWJvbCcpIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCByZXR1cm4gdHJ1ZS5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSAndW5kZWZpbmVkJykgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBleGlzdHMsIGRlbGV0ZSB0aGUgcHJvcGVydHkuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmRlbGV0ZVByb3BlcnR5KHRhcmdldCwgb3JpZ2luYWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFNlYWxzIGEgSGVhZGVycyBpbnN0YW5jZSB0byBwcmV2ZW50IG1vZGlmaWNhdGlvbiBieSB0aHJvd2luZyBhbiBlcnJvciB3aGVuXG4gICAqIGFueSBtdXRhdGluZyBtZXRob2QgaXMgY2FsbGVkLlxuICAgKi8gc3RhdGljIHNlYWwoaGVhZGVycykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5KGhlYWRlcnMsIHtcbiAgICAgICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYXBwZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFkb25seUhlYWRlcnNFcnJvci5jYWxsYWJsZTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAqIE1lcmdlcyBhIGhlYWRlciB2YWx1ZSBpbnRvIGEgc3RyaW5nLiBUaGlzIHN0b3JlcyBtdWx0aXBsZSB2YWx1ZXMgYXMgYW5cbiAgICogYXJyYXksIHNvIHdlIG5lZWQgdG8gbWVyZ2UgdGhlbSBpbnRvIGEgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgYSBoZWFkZXIgdmFsdWVcbiAgICogQHJldHVybnMgYSBtZXJnZWQgaGVhZGVyIHZhbHVlIChhIHN0cmluZylcbiAgICovIG1lcmdlKHZhbHVlKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlLmpvaW4oJywgJyk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENyZWF0ZXMgYSBIZWFkZXJzIGluc3RhbmNlIGZyb20gYSBwbGFpbiBvYmplY3Qgb3IgYSBIZWFkZXJzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gaGVhZGVycyBhIHBsYWluIG9iamVjdCBvciBhIEhlYWRlcnMgaW5zdGFuY2VcbiAgICogQHJldHVybnMgYSBoZWFkZXJzIGluc3RhbmNlXG4gICAqLyBzdGF0aWMgZnJvbShoZWFkZXJzKSB7XG4gICAgICAgIGlmIChoZWFkZXJzIGluc3RhbmNlb2YgSGVhZGVycykgcmV0dXJuIGhlYWRlcnM7XG4gICAgICAgIHJldHVybiBuZXcgSGVhZGVyc0FkYXB0ZXIoaGVhZGVycyk7XG4gICAgfVxuICAgIGFwcGVuZChuYW1lLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuaGVhZGVyc1tuYW1lXTtcbiAgICAgICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tuYW1lXSA9IFtcbiAgICAgICAgICAgICAgICBleGlzdGluZyxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgICAgICAgZXhpc3RpbmcucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWxldGUobmFtZSkge1xuICAgICAgICBkZWxldGUgdGhpcy5oZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgICBnZXQobmFtZSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaGVhZGVyc1tuYW1lXTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0aGlzLm1lcmdlKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGhhcyhuYW1lKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5oZWFkZXJzW25hbWVdICE9PSAndW5kZWZpbmVkJztcbiAgICB9XG4gICAgc2V0KG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cbiAgICBmb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIHRoaXMuZW50cmllcygpKXtcbiAgICAgICAgICAgIGNhbGxiYWNrZm4uY2FsbCh0aGlzQXJnLCB2YWx1ZSwgbmFtZSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmVudHJpZXMoKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuaGVhZGVycykpe1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgLy8gV2UgYXNzZXJ0IGhlcmUgdGhhdCB0aGlzIGlzIGEgc3RyaW5nIGJlY2F1c2Ugd2UgZ290IGl0IGZyb20gdGhlXG4gICAgICAgICAgICAvLyBPYmplY3Qua2V5cygpIGNhbGwgYWJvdmUuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0KG5hbWUpO1xuICAgICAgICAgICAgeWllbGQgW1xuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmtleXMoKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuaGVhZGVycykpe1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgeWllbGQgbmFtZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAqdmFsdWVzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIC8vIFdlIGFzc2VydCBoZXJlIHRoYXQgdGhpcyBpcyBhIHN0cmluZyBiZWNhdXNlIHdlIGdvdCBpdCBmcm9tIHRoZVxuICAgICAgICAgICAgLy8gT2JqZWN0LmtleXMoKSBjYWxsIGFib3ZlLlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChrZXkpO1xuICAgICAgICAgICAgeWllbGQgdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJpZXMoKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWRlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js": /*!***********************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NextRequestAdapter: function() {\n return NextRequestAdapter;\n },\n ResponseAborted: function() {\n return ResponseAborted;\n },\n ResponseAbortedName: function() {\n return ResponseAbortedName;\n },\n createAbortController: function() {\n return createAbortController;\n },\n signalFromNodeResponse: function() {\n return signalFromNodeResponse;\n }\n});\nconst _requestmeta = __webpack_require__(/*! ../../../request-meta */ \"(rsc)/./node_modules/next/dist/server/request-meta.js\");\nconst _utils = __webpack_require__(/*! ../../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _request = __webpack_require__(/*! ../request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _helpers = __webpack_require__(/*! ../../../base-http/helpers */ \"(rsc)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst ResponseAbortedName = 'ResponseAborted';\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\nfunction createAbortController(response) {\n const controller = new AbortController();\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once('close', ()=>{\n if (response.writableFinished) return;\n controller.abort(new ResponseAborted());\n });\n return controller;\n}\nfunction signalFromNodeResponse(response) {\n const { errored, destroyed } = response;\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted());\n }\n const { signal } = createAbortController(response);\n return signal;\n}\nclass NextRequestAdapter {\n static fromBaseNextRequest(request, signal) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n false) {} else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextRequest)(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), \"__NEXT_ERROR_CODE\", {\n value: \"E345\",\n enumerable: false,\n configurable: true\n });\n }\n }\n static fromNodeNextRequest(request, signal) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body;\n }\n let url;\n if (request.url.startsWith('http')) {\n url = new URL(request.url);\n } else {\n // Grab the full URL from the request metadata.\n const base = (0, _requestmeta.getRequestMeta)(request, 'initURL');\n if (!base || !base.startsWith('http')) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, 'http://n');\n } else {\n url = new URL(request.url, base);\n }\n }\n return new _request.NextRequest(url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\n });\n }\n static fromWebNextRequest(request) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD') {\n body = request.body;\n }\n return new _request.NextRequest(request.url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLG9GQUF1QjtBQUNwRCxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEMsaUJBQWlCLG1CQUFPLENBQUMsdUZBQVk7QUFDckMsaUJBQWlCLG1CQUFPLENBQUMsOEZBQTRCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBOEUsRUFBRSxFQUUvRSxDQUFDO0FBQ1Y7QUFDQSxRQUFRLEtBQW1DO0FBQzNDO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBOZXh0UmVxdWVzdEFkYXB0ZXI6IG51bGwsXG4gICAgUmVzcG9uc2VBYm9ydGVkOiBudWxsLFxuICAgIFJlc3BvbnNlQWJvcnRlZE5hbWU6IG51bGwsXG4gICAgY3JlYXRlQWJvcnRDb250cm9sbGVyOiBudWxsLFxuICAgIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTmV4dFJlcXVlc3RBZGFwdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlcjtcbiAgICB9LFxuICAgIFJlc3BvbnNlQWJvcnRlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUFib3J0ZWQ7XG4gICAgfSxcbiAgICBSZXNwb25zZUFib3J0ZWROYW1lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc3BvbnNlQWJvcnRlZE5hbWU7XG4gICAgfSxcbiAgICBjcmVhdGVBYm9ydENvbnRyb2xsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQWJvcnRDb250cm9sbGVyO1xuICAgIH0sXG4gICAgc2lnbmFsRnJvbU5vZGVSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzaWduYWxGcm9tTm9kZVJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlcXVlc3RtZXRhID0gcmVxdWlyZShcIi4uLy4uLy4uL3JlcXVlc3QtbWV0YVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi8uLi91dGlsc1wiKTtcbmNvbnN0IF9yZXF1ZXN0ID0gcmVxdWlyZShcIi4uL3JlcXVlc3RcIik7XG5jb25zdCBfaGVscGVycyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9iYXNlLWh0dHAvaGVscGVyc1wiKTtcbmNvbnN0IFJlc3BvbnNlQWJvcnRlZE5hbWUgPSAnUmVzcG9uc2VBYm9ydGVkJztcbmNsYXNzIFJlc3BvbnNlQWJvcnRlZCBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKXtcbiAgICAgICAgc3VwZXIoLi4uYXJncyksIHRoaXMubmFtZSA9IFJlc3BvbnNlQWJvcnRlZE5hbWU7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAvLyBJZiBgZmluaXNoYCBmaXJlcyBmaXJzdCwgdGhlbiBgcmVzLmVuZCgpYCBoYXMgYmVlbiBjYWxsZWQgYW5kIHRoZSBjbG9zZSBpc1xuICAgIC8vIGp1c3QgdXMgZmluaXNoaW5nIHRoZSBzdHJlYW0gb24gb3VyIHNpZGUuIElmIGBjbG9zZWAgZmlyZXMgZmlyc3QsIHRoZW4gd2VcbiAgICAvLyBrbm93IHRoZSBjbGllbnQgZGlzY29ubmVjdGVkIGJlZm9yZSB3ZSBmaW5pc2hlZC5cbiAgICByZXNwb25zZS5vbmNlKCdjbG9zZScsICgpPT57XG4gICAgICAgIGlmIChyZXNwb25zZS53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIGNvbnRyb2xsZXIuYWJvcnQobmV3IFJlc3BvbnNlQWJvcnRlZCgpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29udHJvbGxlcjtcbn1cbmZ1bmN0aW9uIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICBjb25zdCB7IGVycm9yZWQsIGRlc3Ryb3llZCB9ID0gcmVzcG9uc2U7XG4gICAgaWYgKGVycm9yZWQgfHwgZGVzdHJveWVkKSB7XG4gICAgICAgIHJldHVybiBBYm9ydFNpZ25hbC5hYm9ydChlcnJvcmVkID8/IG5ldyBSZXNwb25zZUFib3J0ZWQoKSk7XG4gICAgfVxuICAgIGNvbnN0IHsgc2lnbmFsIH0gPSBjcmVhdGVBYm9ydENvbnRyb2xsZXIocmVzcG9uc2UpO1xuICAgIHJldHVybiBzaWduYWw7XG59XG5jbGFzcyBOZXh0UmVxdWVzdEFkYXB0ZXIge1xuICAgIHN0YXRpYyBmcm9tQmFzZU5leHRSZXF1ZXN0KHJlcXVlc3QsIHNpZ25hbCkge1xuICAgICAgICBpZiAoLy8gVGhlIHR5cGUgY2hlY2sgaGVyZSBlbnN1cmVzIHRoYXQgYHJlcWAgaXMgY29ycmVjdGx5IHR5cGVkLCBhbmQgdGhlXG4gICAgICAgIC8vIGVudmlyb25tZW50IHZhcmlhYmxlIGNoZWNrIHByb3ZpZGVzIGRlYWQgY29kZSBlbGltaW5hdGlvbi5cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzV2ViTmV4dFJlcXVlc3QpKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21XZWJOZXh0UmVxdWVzdChyZXF1ZXN0KTtcbiAgICAgICAgfSBlbHNlIGlmICgvLyBUaGUgdHlwZSBjaGVjayBoZXJlIGVuc3VyZXMgdGhhdCBgcmVxYCBpcyBjb3JyZWN0bHkgdHlwZWQsIGFuZCB0aGVcbiAgICAgICAgLy8gZW52aXJvbm1lbnQgdmFyaWFibGUgY2hlY2sgcHJvdmlkZXMgZGVhZCBjb2RlIGVsaW1pbmF0aW9uLlxuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiAoMCwgX2hlbHBlcnMuaXNOb2RlTmV4dFJlcXVlc3QpKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21Ob2RlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogVW5zdXBwb3J0ZWQgTmV4dFJlcXVlc3QgdHlwZScpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMzQ1XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgZnJvbU5vZGVOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpIHtcbiAgICAgICAgLy8gSEVBRCBhbmQgR0VUIHJlcXVlc3RzIGNhbiBub3QgaGF2ZSBhIGJvZHkuXG4gICAgICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnICYmIHJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIHRoaXMgaXMgaGFuZGxlZCBieSB1bmRpY2ksIHdoZW4gc3RyZWFtcy93ZWIgbGFuZCB1c2UgaXQgaW5zdGVhZFxuICAgICAgICAgICAgYm9keSA9IHJlcXVlc3QuYm9keTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdXJsO1xuICAgICAgICBpZiAocmVxdWVzdC51cmwuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEdyYWIgdGhlIGZ1bGwgVVJMIGZyb20gdGhlIHJlcXVlc3QgbWV0YWRhdGEuXG4gICAgICAgICAgICBjb25zdCBiYXNlID0gKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxdWVzdCwgJ2luaXRVUkwnKTtcbiAgICAgICAgICAgIGlmICghYmFzZSB8fCAhYmFzZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBVUkwgY29uc3RydWN0aW9uIHJlbGllcyBvbiB0aGUgZmFjdCB0aGF0IHRoZSBVUkwgcHJvdmlkZWRcbiAgICAgICAgICAgICAgICAvLyBpcyBhYnNvbHV0ZSwgd2UgbmVlZCB0byBwcm92aWRlIGEgYmFzZSBVUkwuIFdlIGNhbid0IHVzZSB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgICAgIC8vIFVSTCBiZWNhdXNlIGl0J3MgcmVsYXRpdmUsIHNvIHdlIHVzZSBhIGR1bW15IFVSTCBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgIHVybCA9IG5ldyBVUkwocmVxdWVzdC51cmwsICdodHRwOi8vbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCBiYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IF9yZXF1ZXN0Lk5leHRSZXF1ZXN0KHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMuZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShyZXF1ZXN0LmhlYWRlcnMpLFxuICAgICAgICAgICAgZHVwbGV4OiAnaGFsZicsXG4gICAgICAgICAgICBzaWduYWwsXG4gICAgICAgICAgICAvLyBnZW9cbiAgICAgICAgICAgIC8vIGlwXG4gICAgICAgICAgICAvLyBuZXh0Q29uZmlnXG4gICAgICAgICAgICAvLyBib2R5IGNhbiBub3QgYmUgcGFzc2VkIGlmIHJlcXVlc3Qgd2FzIGFib3J0ZWRcbiAgICAgICAgICAgIC8vIG9yIHdlIGdldCBhIFJlcXVlc3QgYm9keSB3YXMgZGlzdHVyYmVkIGVycm9yXG4gICAgICAgICAgICAuLi5zaWduYWwuYWJvcnRlZCA/IHt9IDoge1xuICAgICAgICAgICAgICAgIGJvZHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tV2ViTmV4dFJlcXVlc3QocmVxdWVzdCkge1xuICAgICAgICAvLyBIRUFEIGFuZCBHRVQgcmVxdWVzdHMgY2FuIG5vdCBoYXZlIGEgYm9keS5cbiAgICAgICAgbGV0IGJvZHkgPSBudWxsO1xuICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgIT09ICdHRVQnICYmIHJlcXVlc3QubWV0aG9kICE9PSAnSEVBRCcpIHtcbiAgICAgICAgICAgIGJvZHkgPSByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBfcmVxdWVzdC5OZXh0UmVxdWVzdChyZXF1ZXN0LnVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMuZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShyZXF1ZXN0LmhlYWRlcnMpLFxuICAgICAgICAgICAgZHVwbGV4OiAnaGFsZicsXG4gICAgICAgICAgICBzaWduYWw6IHJlcXVlc3QucmVxdWVzdC5zaWduYWwsXG4gICAgICAgICAgICAvLyBnZW9cbiAgICAgICAgICAgIC8vIGlwXG4gICAgICAgICAgICAvLyBuZXh0Q29uZmlnXG4gICAgICAgICAgICAvLyBib2R5IGNhbiBub3QgYmUgcGFzc2VkIGlmIHJlcXVlc3Qgd2FzIGFib3J0ZWRcbiAgICAgICAgICAgIC8vIG9yIHdlIGdldCBhIFJlcXVlc3QgYm9keSB3YXMgZGlzdHVyYmVkIGVycm9yXG4gICAgICAgICAgICAuLi5yZXF1ZXN0LnJlcXVlc3Quc2lnbmFsLmFib3J0ZWQgPyB7fSA6IHtcbiAgICAgICAgICAgICAgICBib2R5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC1yZXF1ZXN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReflectAdapter\", ({\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n}));\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlZmxlY3RBZGFwdGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlcjtcbiAgICB9XG59KTtcbmNsYXNzIFJlZmxlY3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmJpbmQodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN0YXRpYyBzZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICB9XG4gICAgc3RhdGljIGhhcyh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgfVxuICAgIHN0YXRpYyBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZmxlY3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/cookies.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(rsc)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n\n//# sourceMappingURL=cookies.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vY29va2llcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLHdIQUEwQzs7QUFFbkUiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2Nvb2tpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBSZXF1ZXN0Q29va2llczogbnVsbCxcbiAgICBSZXNwb25zZUNvb2tpZXM6IG51bGwsXG4gICAgc3RyaW5naWZ5Q29va2llOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFJlcXVlc3RDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLlJlcXVlc3RDb29raWVzO1xuICAgIH0sXG4gICAgUmVzcG9uc2VDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLlJlc3BvbnNlQ29va2llcztcbiAgICB9LFxuICAgIHN0cmluZ2lmeUNvb2tpZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29va2llcy5zdHJpbmdpZnlDb29raWU7XG4gICAgfVxufSk7XG5jb25zdCBfY29va2llcyA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzXCIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb29raWVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/image-response.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * @deprecated ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead.\n * Migration with codemods: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#next-og-import\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ImageResponse\", ({\n enumerable: true,\n get: function() {\n return ImageResponse;\n }\n}));\nfunction ImageResponse() {\n throw Object.defineProperty(new Error('ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead'), \"__NEXT_ERROR_CODE\", {\n value: \"E183\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=image-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vaW1hZ2UtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsaURBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vaW1hZ2UtcmVzcG9uc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVwcmVjYXRlZCBJbWFnZVJlc3BvbnNlIG1vdmVkIGZyb20gXCJuZXh0L3NlcnZlclwiIHRvIFwibmV4dC9vZ1wiIHNpbmNlIE5leHQuanMgMTQsIHBsZWFzZSBpbXBvcnQgZnJvbSBcIm5leHQvb2dcIiBpbnN0ZWFkLlxuICogTWlncmF0aW9uIHdpdGggY29kZW1vZHM6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3VwZ3JhZGluZy9jb2RlbW9kcyNuZXh0LW9nLWltcG9ydFxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSW1hZ2VSZXNwb25zZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSW1hZ2VSZXNwb25zZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIEltYWdlUmVzcG9uc2UoKSB7XG4gICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignSW1hZ2VSZXNwb25zZSBtb3ZlZCBmcm9tIFwibmV4dC9zZXJ2ZXJcIiB0byBcIm5leHQvb2dcIiBzaW5jZSBOZXh0LmpzIDE0LCBwbGVhc2UgaW1wb3J0IGZyb20gXCJuZXh0L29nXCIgaW5zdGVhZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTE4M1wiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLXJlc3BvbnNlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/request.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(rsc)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _error = __webpack_require__(/*! ../error */ \"(rsc)/./node_modules/next/dist/server/web/error.js\");\nconst _cookies = __webpack_require__(/*! ./cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal request');\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== 'string' && 'url' in input ? input.url : String(input);\n (0, _utils.validateURL)(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (true) {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVxdWVzdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQywwRUFBYTtBQUN0QyxlQUFlLG1CQUFPLENBQUMsb0VBQVU7QUFDakMsZUFBZSxtQkFBTyxDQUFDLG9FQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLHNGQUFXO0FBQ3BDO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxJQUFtQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLE1BQThDLEdBQUcsQ0FBRztBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSU5URVJOQUxTOiBudWxsLFxuICAgIE5leHRSZXF1ZXN0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIElOVEVSTkFMUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlRFUk5BTFM7XG4gICAgfSxcbiAgICBOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVxdWVzdDtcbiAgICB9XG59KTtcbmNvbnN0IF9uZXh0dXJsID0gcmVxdWlyZShcIi4uL25leHQtdXJsXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xuY29uc3QgX2Vycm9yID0gcmVxdWlyZShcIi4uL2Vycm9yXCIpO1xuY29uc3QgX2Nvb2tpZXMgPSByZXF1aXJlKFwiLi9jb29raWVzXCIpO1xuY29uc3QgSU5URVJOQUxTID0gU3ltYm9sKCdpbnRlcm5hbCByZXF1ZXN0Jyk7XG5jbGFzcyBOZXh0UmVxdWVzdCBleHRlbmRzIFJlcXVlc3Qge1xuICAgIGNvbnN0cnVjdG9yKGlucHV0LCBpbml0ID0ge30pe1xuICAgICAgICBjb25zdCB1cmwgPSB0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmICd1cmwnIGluIGlucHV0ID8gaW5wdXQudXJsIDogU3RyaW5nKGlucHV0KTtcbiAgICAgICAgKDAsIF91dGlscy52YWxpZGF0ZVVSTCkodXJsKTtcbiAgICAgICAgLy8gbm9kZSBSZXF1ZXN0IGluc3RhbmNlIHJlcXVpcmVzIGR1cGxleCBvcHRpb24gd2hlbiBhIGJvZHlcbiAgICAgICAgLy8gaXMgcHJlc2VudCBvciBpdCBlcnJvcnMsIHdlIGRvbid0IGhhbmRsZSB0aGlzIGZvclxuICAgICAgICAvLyBSZXF1ZXN0IGJlaW5nIHBhc3NlZCBpbiBzaW5jZSBpdCB3b3VsZCBoYXZlIGFscmVhZHlcbiAgICAgICAgLy8gZXJyb3JlZCBpZiB0aGlzIHdhc24ndCBjb25maWd1cmVkXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJykge1xuICAgICAgICAgICAgaWYgKGluaXQuYm9keSAmJiBpbml0LmR1cGxleCAhPT0gJ2hhbGYnKSB7XG4gICAgICAgICAgICAgICAgaW5pdC5kdXBsZXggPSAnaGFsZic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCkgc3VwZXIoaW5wdXQsIGluaXQpO1xuICAgICAgICBlbHNlIHN1cGVyKHVybCwgaW5pdCk7XG4gICAgICAgIGNvbnN0IG5leHRVcmwgPSBuZXcgX25leHR1cmwuTmV4dFVSTCh1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMudG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykodGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIG5leHRDb25maWc6IGluaXQubmV4dENvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpc1tJTlRFUk5BTFNdID0ge1xuICAgICAgICAgICAgY29va2llczogbmV3IF9jb29raWVzLlJlcXVlc3RDb29raWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBuZXh0VXJsLFxuICAgICAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5fX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFID8gdXJsIDogbmV4dFVybC50b1N0cmluZygpXG4gICAgICAgIH07XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICBuZXh0VXJsOiB0aGlzLm5leHRVcmwsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVxdWVzdFxuICAgICAgICAgICAgYm9keVVzZWQ6IHRoaXMuYm9keVVzZWQsXG4gICAgICAgICAgICBjYWNoZTogdGhpcy5jYWNoZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiB0aGlzLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZGVzdGluYXRpb24sXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIGludGVncml0eTogdGhpcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICBrZWVwYWxpdmU6IHRoaXMua2VlcGFsaXZlLFxuICAgICAgICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICAgIHJlZGlyZWN0OiB0aGlzLnJlZGlyZWN0LFxuICAgICAgICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXIsXG4gICAgICAgICAgICByZWZlcnJlclBvbGljeTogdGhpcy5yZWZlcnJlclBvbGljeSxcbiAgICAgICAgICAgIHNpZ25hbDogdGhpcy5zaWduYWxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgZ2V0IG5leHRVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10ubmV4dFVybDtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGBwYWdlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBgVVJMUGF0dGVybmAuXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZXF1ZXN0LXBhZ2VcbiAgICovIGdldCBwYWdlKCkge1xuICAgICAgICB0aHJvdyBuZXcgX2Vycm9yLlJlbW92ZWRQYWdlRXJyb3IoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGB1YWAgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgXFxgdXNlckFnZW50XFxgIGZ1bmN0aW9uLlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcGFyc2UtdXNlci1hZ2VudFxuICAgKi8gZ2V0IHVhKCkge1xuICAgICAgICB0aHJvdyBuZXcgX2Vycm9yLlJlbW92ZWRVQUVycm9yKCk7XG4gICAgfVxuICAgIGdldCB1cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10udXJsO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/response.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextResponse\", ({\n enumerable: true,\n get: function() {\n return NextResponse;\n }\n}));\nconst _cookies = __webpack_require__(/*! ../../web/spec-extension/cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(rsc)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _reflect = __webpack_require__(/*! ./adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _cookies1 = __webpack_require__(/*! ./cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal response');\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw Object.defineProperty(new Error('request.headers must be an instance of Headers'), \"__NEXT_ERROR_CODE\", {\n value: \"E119\",\n enumerable: false,\n configurable: true\n });\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set('x-middleware-request-' + key, value);\n keys.push(key);\n }\n headers.set('x-middleware-override-headers', keys.join(','));\n }\n}\nclass NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n const headers = this.headers;\n const cookies = new _cookies1.ResponseCookies(headers);\n const cookiesProxy = new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case 'delete':\n case 'set':\n {\n return (...args)=>{\n const result = Reflect.apply(target[prop], target, args);\n const newHeaders = new Headers(headers);\n if (result instanceof _cookies1.ResponseCookies) {\n headers.set('x-middleware-set-cookie', result.getAll().map((cookie)=>(0, _cookies.stringifyCookie)(cookie)).join(','));\n }\n handleMiddlewareField(init, newHeaders);\n return result;\n };\n }\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n this[INTERNALS] = {\n cookies: cookiesProxy,\n url: init.url ? new _nexturl.NextURL(init.url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === 'number' ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw Object.defineProperty(new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code'), \"__NEXT_ERROR_CODE\", {\n value: \"E529\",\n enumerable: false,\n configurable: true\n });\n }\n const initObj = typeof init === 'object' ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set('Location', (0, _utils.validateURL)(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set('x-middleware-rewrite', (0, _utils.validateURL)(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set('x-middleware-next', '1');\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n}\n\n//# sourceMappingURL=response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnREFBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixpQkFBaUIsbUJBQU8sQ0FBQyw2R0FBa0M7QUFDM0QsaUJBQWlCLG1CQUFPLENBQUMsMEVBQWE7QUFDdEMsZUFBZSxtQkFBTyxDQUFDLG9FQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLHdHQUFvQjtBQUM3QyxrQkFBa0IsbUJBQU8sQ0FBQyxzRkFBVztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVzcG9uc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOZXh0UmVzcG9uc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9jb29raWVzID0gcmVxdWlyZShcIi4uLy4uL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzXCIpO1xuY29uc3QgX25leHR1cmwgPSByZXF1aXJlKFwiLi4vbmV4dC11cmxcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuL2FkYXB0ZXJzL3JlZmxlY3RcIik7XG5jb25zdCBfY29va2llczEgPSByZXF1aXJlKFwiLi9jb29raWVzXCIpO1xuY29uc3QgSU5URVJOQUxTID0gU3ltYm9sKCdpbnRlcm5hbCByZXNwb25zZScpO1xuY29uc3QgUkVESVJFQ1RTID0gbmV3IFNldChbXG4gICAgMzAxLFxuICAgIDMwMixcbiAgICAzMDMsXG4gICAgMzA3LFxuICAgIDMwOFxuXSk7XG5mdW5jdGlvbiBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgaGVhZGVycykge1xuICAgIHZhciBfaW5pdF9yZXF1ZXN0O1xuICAgIGlmIChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfcmVxdWVzdCA9IGluaXQucmVxdWVzdCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X3JlcXVlc3QuaGVhZGVycykge1xuICAgICAgICBpZiAoIShpbml0LnJlcXVlc3QuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdyZXF1ZXN0LmhlYWRlcnMgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIZWFkZXJzJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUxMTlcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgaW5pdC5yZXF1ZXN0LmhlYWRlcnMpe1xuICAgICAgICAgICAgaGVhZGVycy5zZXQoJ3gtbWlkZGxld2FyZS1yZXF1ZXN0LScgKyBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIGtleXMucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGhlYWRlcnMuc2V0KCd4LW1pZGRsZXdhcmUtb3ZlcnJpZGUtaGVhZGVycycsIGtleXMuam9pbignLCcpKTtcbiAgICB9XG59XG5jbGFzcyBOZXh0UmVzcG9uc2UgZXh0ZW5kcyBSZXNwb25zZSB7XG4gICAgY29uc3RydWN0b3IoYm9keSwgaW5pdCA9IHt9KXtcbiAgICAgICAgc3VwZXIoYm9keSwgaW5pdCk7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmhlYWRlcnM7XG4gICAgICAgIGNvbnN0IGNvb2tpZXMgPSBuZXcgX2Nvb2tpZXMxLlJlc3BvbnNlQ29va2llcyhoZWFkZXJzKTtcbiAgICAgICAgY29uc3QgY29va2llc1Byb3h5ID0gbmV3IFByb3h5KGNvb2tpZXMsIHtcbiAgICAgICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFJlZmxlY3QuYXBwbHkodGFyZ2V0W3Byb3BdLCB0YXJnZXQsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdIZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBfY29va2llczEuUmVzcG9uc2VDb29raWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLnNldCgneC1taWRkbGV3YXJlLXNldC1jb29raWUnLCByZXN1bHQuZ2V0QWxsKCkubWFwKChjb29raWUpPT4oMCwgX2Nvb2tpZXMuc3RyaW5naWZ5Q29va2llKShjb29raWUpKS5qb2luKCcsJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU1pZGRsZXdhcmVGaWVsZChpbml0LCBuZXdIZWFkZXJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzW0lOVEVSTkFMU10gPSB7XG4gICAgICAgICAgICBjb29raWVzOiBjb29raWVzUHJveHksXG4gICAgICAgICAgICB1cmw6IGluaXQudXJsID8gbmV3IF9uZXh0dXJsLk5leHRVUkwoaW5pdC51cmwsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLnRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMpKGhlYWRlcnMpLFxuICAgICAgICAgICAgICAgIG5leHRDb25maWc6IGluaXQubmV4dENvbmZpZ1xuICAgICAgICAgICAgfSkgOiB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoJ2VkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbScpXSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvb2tpZXM6IHRoaXMuY29va2llcyxcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICAvLyByZXN0IG9mIHByb3BzIGNvbWUgZnJvbSBSZXNwb25zZVxuICAgICAgICAgICAgYm9keTogdGhpcy5ib2R5LFxuICAgICAgICAgICAgYm9keVVzZWQ6IHRoaXMuYm9keVVzZWQsXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIG9rOiB0aGlzLm9rLFxuICAgICAgICAgICAgcmVkaXJlY3RlZDogdGhpcy5yZWRpcmVjdGVkLFxuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgICAgICAgIHN0YXR1c1RleHQ6IHRoaXMuc3RhdHVzVGV4dCxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZVxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgY29va2llcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS5jb29raWVzO1xuICAgIH1cbiAgICBzdGF0aWMganNvbihib2R5LCBpbml0KSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gUmVzcG9uc2UuanNvbihib2R5LCBpbml0KTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UocmVzcG9uc2UuYm9keSwgcmVzcG9uc2UpO1xuICAgIH1cbiAgICBzdGF0aWMgcmVkaXJlY3QodXJsLCBpbml0KSB7XG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IHR5cGVvZiBpbml0ID09PSAnbnVtYmVyJyA/IGluaXQgOiAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdC5zdGF0dXMpID8/IDMwNztcbiAgICAgICAgaWYgKCFSRURJUkVDVFMuaGFzKHN0YXR1cykpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgUmFuZ2VFcnJvcignRmFpbGVkIHRvIGV4ZWN1dGUgXCJyZWRpcmVjdFwiIG9uIFwicmVzcG9uc2VcIjogSW52YWxpZCBzdGF0dXMgY29kZScpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTI5XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbml0T2JqID0gdHlwZW9mIGluaXQgPT09ICdvYmplY3QnID8gaW5pdCA6IHt9O1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaW5pdE9iaiA9PSBudWxsID8gdm9pZCAwIDogaW5pdE9iai5oZWFkZXJzKTtcbiAgICAgICAgaGVhZGVycy5zZXQoJ0xvY2F0aW9uJywgKDAsIF91dGlscy52YWxpZGF0ZVVSTCkodXJsKSk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgICAgIC4uLmluaXRPYmosXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgcmV3cml0ZShkZXN0aW5hdGlvbiwgaW5pdCkge1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdC5oZWFkZXJzKTtcbiAgICAgICAgaGVhZGVycy5zZXQoJ3gtbWlkZGxld2FyZS1yZXdyaXRlJywgKDAsIF91dGlscy52YWxpZGF0ZVVSTCkoZGVzdGluYXRpb24pKTtcbiAgICAgICAgaGFuZGxlTWlkZGxld2FyZUZpZWxkKGluaXQsIGhlYWRlcnMpO1xuICAgICAgICByZXR1cm4gbmV3IE5leHRSZXNwb25zZShudWxsLCB7XG4gICAgICAgICAgICAuLi5pbml0LFxuICAgICAgICAgICAgaGVhZGVyc1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIG5leHQoaW5pdCkge1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdC5oZWFkZXJzKTtcbiAgICAgICAgaGVhZGVycy5zZXQoJ3gtbWlkZGxld2FyZS1uZXh0JywgJzEnKTtcbiAgICAgICAgaGFuZGxlTWlkZGxld2FyZUZpZWxkKGluaXQsIGhlYWRlcnMpO1xuICAgICAgICByZXR1cm4gbmV3IE5leHRSZXNwb25zZShudWxsLCB7XG4gICAgICAgICAgICAuLi5pbml0LFxuICAgICAgICAgICAgaGVhZGVyc1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc3BvbnNlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/url-pattern.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"URLPattern\", ({\n enumerable: true,\n get: function() {\n return GlobalURLPattern;\n }\n}));\nconst GlobalURLPattern = // @ts-expect-error: URLPattern is not available in Node.js\ntypeof URLPattern === 'undefined' ? undefined : URLPattern;\n\n//# sourceMappingURL=url-pattern.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXJsLXBhdHRlcm4uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi91cmwtcGF0dGVybi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlVSTFBhdHRlcm5cIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdsb2JhbFVSTFBhdHRlcm47XG4gICAgfVxufSk7XG5jb25zdCBHbG9iYWxVUkxQYXR0ZXJuID0gLy8gQHRzLWV4cGVjdC1lcnJvcjogVVJMUGF0dGVybiBpcyBub3QgYXZhaWxhYmxlIGluIE5vZGUuanNcbnR5cGVvZiBVUkxQYXR0ZXJuID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFVSTFBhdHRlcm47XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVybC1wYXR0ZXJuLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/user-agent.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isBot: function() {\n return isBot;\n },\n userAgent: function() {\n return userAgent;\n },\n userAgentFromString: function() {\n return userAgentFromString;\n }\n});\nconst _uaparserjs = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/ua-parser-js */ \"(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isBot(input) {\n return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(input);\n}\nfunction userAgentFromString(input) {\n return {\n ...(0, _uaparserjs.default)(input),\n isBot: input === undefined ? false : isBot(input)\n };\n}\nfunction userAgent({ headers }) {\n return userAgentFromString(headers.get('user-agent') || undefined);\n}\n\n//# sourceMappingURL=user-agent.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXNlci1hZ2VudC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDJEQUEyRCxtQkFBTyxDQUFDLDBHQUFpQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFNBQVM7QUFDOUI7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXNlci1hZ2VudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzQm90OiBudWxsLFxuICAgIHVzZXJBZ2VudDogbnVsbCxcbiAgICB1c2VyQWdlbnRGcm9tU3RyaW5nOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzQm90OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQm90O1xuICAgIH0sXG4gICAgdXNlckFnZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVzZXJBZ2VudDtcbiAgICB9LFxuICAgIHVzZXJBZ2VudEZyb21TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdXNlckFnZW50RnJvbVN0cmluZztcbiAgICB9XG59KTtcbmNvbnN0IF91YXBhcnNlcmpzID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC91YS1wYXJzZXItanNcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBpc0JvdChpbnB1dCkge1xuICAgIHJldHVybiAvR29vZ2xlYm90fE1lZGlhcGFydG5lcnMtR29vZ2xlfEFkc0JvdC1Hb29nbGV8Z29vZ2xld2VibGlnaHR8U3RvcmVib3QtR29vZ2xlfEdvb2dsZS1QYWdlUmVuZGVyZXJ8R29vZ2xlLUluc3BlY3Rpb25Ub29sfEJpbmdib3R8QmluZ1ByZXZpZXd8U2x1cnB8RHVja0R1Y2tCb3R8YmFpZHVzcGlkZXJ8eWFuZGV4fHNvZ291fExpbmtlZEluQm90fGJpdGx5Ym90fHR1bWJscnx2a1NoYXJlfHF1b3JhIGxpbmsgcHJldmlld3xmYWNlYm9va2V4dGVybmFsaGl0fGZhY2Vib29rY2F0YWxvZ3xUd2l0dGVyYm90fGFwcGxlYm90fHJlZGRpdGJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xpYV9hcmNoaXZlci9pLnRlc3QoaW5wdXQpO1xufVxuZnVuY3Rpb24gdXNlckFnZW50RnJvbVN0cmluZyhpbnB1dCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLigwLCBfdWFwYXJzZXJqcy5kZWZhdWx0KShpbnB1dCksXG4gICAgICAgIGlzQm90OiBpbnB1dCA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBpc0JvdChpbnB1dClcbiAgICB9O1xufVxuZnVuY3Rpb24gdXNlckFnZW50KHsgaGVhZGVycyB9KSB7XG4gICAgcmV0dXJuIHVzZXJBZ2VudEZyb21TdHJpbmcoaGVhZGVycy5nZXQoJ3VzZXItYWdlbnQnKSB8fCB1bmRlZmluZWQpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VyLWFnZW50LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/server/web/utils.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/server/web/utils.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === 'undefined') continue;\n if (typeof v === 'number') {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\nfunction splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== '=' && ch !== ';' && ch !== ',';\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\nfunction toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw Object.defineProperty(new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E61\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction normalizeNextQueryParam(key) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0U7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sbUVBQW1FLFlBQVk7QUFDL0U7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBudWxsLFxuICAgIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtOiBudWxsLFxuICAgIHNwbGl0Q29va2llc1N0cmluZzogbnVsbCxcbiAgICB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBudWxsLFxuICAgIHZhbGlkYXRlVVJMOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcbiAgICBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTtcbiAgICB9LFxuICAgIHNwbGl0Q29va2llc1N0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzcGxpdENvb2tpZXNTdHJpbmc7XG4gICAgfSxcbiAgICB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcbiAgICB2YWxpZGF0ZVVSTDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZVVSTDtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhub2RlSGVhZGVycykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub2RlSGVhZGVycykpe1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChsZXQgdiBvZiB2YWx1ZXMpe1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdiA9IHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKGtleSwgdik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG59XG5mdW5jdGlvbiBzcGxpdENvb2tpZXNTdHJpbmcoY29va2llc1N0cmluZykge1xuICAgIHZhciBjb29raWVzU3RyaW5ncyA9IFtdO1xuICAgIHZhciBwb3MgPSAwO1xuICAgIHZhciBzdGFydDtcbiAgICB2YXIgY2g7XG4gICAgdmFyIGxhc3RDb21tYTtcbiAgICB2YXIgbmV4dFN0YXJ0O1xuICAgIHZhciBjb29raWVzU2VwYXJhdG9yRm91bmQ7XG4gICAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpe1xuICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3RTcGVjaWFsQ2hhcigpIHtcbiAgICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgICByZXR1cm4gY2ggIT09ICc9JyAmJiBjaCAhPT0gJzsnICYmIGNoICE9PSAnLCc7XG4gICAgfVxuICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoKXtcbiAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IGZhbHNlO1xuICAgICAgICB3aGlsZShza2lwV2hpdGVzcGFjZSgpKXtcbiAgICAgICAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJywnKSB7XG4gICAgICAgICAgICAgICAgLy8gJywnIGlzIGEgY29va2llIHNlcGFyYXRvciBpZiB3ZSBoYXZlIGxhdGVyIGZpcnN0ICc9Jywgbm90ICc7JyBvciAnLCdcbiAgICAgICAgICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICAgICAgc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgICAgICAgICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgbm90U3BlY2lhbENoYXIoKSl7XG4gICAgICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50bHkgc3BlY2lhbCBjaGFyYWN0ZXJcbiAgICAgICAgICAgICAgICBpZiAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgY29va2llc1N0cmluZy5jaGFyQXQocG9zKSA9PT0gJz0nKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGZvdW5kIGNvb2tpZXMgc2VwYXJhdG9yXG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIC8vIHBvcyBpcyBpbnNpZGUgdGhlIG5leHQgY29va2llLCBzbyBiYWNrIHVwIGFuZCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IG5leHRTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluIHBhcmFtICcsJyBvciBwYXJhbSBzZXBhcmF0b3IgJzsnLFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb250aW51ZSBmcm9tIHRoYXQgY29tbWFcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29va2llc1N0cmluZ3M7XG59XG5mdW5jdGlvbiB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBjb25zdCBub2RlSGVhZGVycyA9IHt9O1xuICAgIGNvbnN0IGNvb2tpZXMgPSBbXTtcbiAgICBpZiAoaGVhZGVycykge1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBoZWFkZXJzLmVudHJpZXMoKSl7XG4gICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdzZXQtY29va2llJykge1xuICAgICAgICAgICAgICAgIC8vIFdlIG1heSBoYXZlIGdvdHRlbiBhIGNvbW1hIGpvaW5lZCBzdHJpbmcgb2YgY29va2llcywgb3IgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAvLyBzZXQtY29va2llIGhlYWRlcnMuIFdlIG5lZWQgdG8gbWVyZ2UgdGhlbSBpbnRvIG9uZSBoZWFkZXIgYXJyYXlcbiAgICAgICAgICAgICAgICAvLyB0byByZXByZXNlbnQgYWxsIHRoZSBjb29raWVzLlxuICAgICAgICAgICAgICAgIGNvb2tpZXMucHVzaCguLi5zcGxpdENvb2tpZXNTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgICAgICBub2RlSGVhZGVyc1trZXldID0gY29va2llcy5sZW5ndGggPT09IDEgPyBjb29raWVzWzBdIDogY29va2llcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2RlSGVhZGVycztcbn1cbmZ1bmN0aW9uIHZhbGlkYXRlVVJMKHVybCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcobmV3IFVSTChTdHJpbmcodXJsKSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYFVSTCBpcyBtYWxmb3JtZWQgXCIke1N0cmluZyh1cmwpfVwiLiBQbGVhc2UgdXNlIG9ubHkgYWJzb2x1dGUgVVJMcyAtIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVsYXRpdmUtdXJsc2AsIHtcbiAgICAgICAgICAgIGNhdXNlOiBlcnJvclxuICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFNjFcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtKGtleSkge1xuICAgIGNvbnN0IHByZWZpeGVzID0gW1xuICAgICAgICBfY29uc3RhbnRzLk5FWFRfUVVFUllfUEFSQU1fUFJFRklYLFxuICAgICAgICBfY29uc3RhbnRzLk5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVhcbiAgICBdO1xuICAgIGZvciAoY29uc3QgcHJlZml4IG9mIHByZWZpeGVzKXtcbiAgICAgICAgaWYgKGtleSAhPT0gcHJlZml4ICYmIGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgIHJldHVybiBrZXkuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/deep-freeze.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"deepFreeze\", ({\n enumerable: true,\n get: function() {\n return deepFreeze;\n }\n}));\nfunction deepFreeze(obj) {\n // If the object is already frozen, there's no need to freeze it again.\n if (Object.isFrozen(obj)) return obj;\n // An array is an object, but we also want to freeze each element in the array\n // as well.\n if (Array.isArray(obj)) {\n for (const item of obj){\n if (!item || typeof item !== 'object') continue;\n deepFreeze(item);\n }\n return Object.freeze(obj);\n }\n for (const value of Object.values(obj)){\n if (!value || typeof value !== 'object') continue;\n deepFreeze(value);\n }\n return Object.freeze(obj);\n} //# sourceMappingURL=deep-freeze.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZGVlcC1mcmVlemUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FVZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQTZCQyxHQUFNO0lBQ2pELHVFQUF1RTtJQUN2RSxJQUFJQyxPQUFPQyxRQUFRLENBQUNGLE1BQU0sT0FBT0E7SUFFakMsOEVBQThFO0lBQzlFLFdBQVc7SUFDWCxJQUFJRyxNQUFNQyxPQUFPLENBQUNKLE1BQU07UUFDdEIsS0FBSyxNQUFNSyxRQUFRTCxJQUFLO1lBQ3RCLElBQUksQ0FBQ0ssUUFBUSxPQUFPQSxTQUFTLFVBQVU7WUFDdkNOLFdBQVdNO1FBQ2I7UUFFQSxPQUFPSixPQUFPSyxNQUFNLENBQUNOO0lBQ3ZCO0lBRUEsS0FBSyxNQUFNTyxTQUFTTixPQUFPTyxNQUFNLENBQUNSLEtBQU07UUFDdEMsSUFBSSxDQUFDTyxTQUFTLE9BQU9BLFVBQVUsVUFBVTtRQUN6Q1IsV0FBV1E7SUFDYjtJQUVBLE9BQU9OLE9BQU9LLE1BQU0sQ0FBQ047QUFDdkIiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2RlZXAtZnJlZXplLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAnLi9kZWVwLXJlYWRvbmx5J1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGZyZWV6ZXMgYW4gb2JqZWN0IGFuZCBhbGwgb2YgaXRzIHByb3BlcnRpZXMuIFRoaXMgcHJldmVudHMgdGhlXG4gKiBvYmplY3QgZnJvbSBiZWluZyBtb2RpZmllZCBhdCBydW50aW1lLiBXaGVuIHRoZSBKUyBydW50aW1lIGlzIHJ1bm5pbmcgaW5cbiAqIHN0cmljdCBtb2RlLCBhbnkgYXR0ZW1wdHMgdG8gbW9kaWZ5IGEgZnJvemVuIG9iamVjdCB3aWxsIHRocm93IGFuIGVycm9yLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2ZyZWV6ZVxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGZyZWV6ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBGcmVlemU8VCBleHRlbmRzIG9iamVjdD4ob2JqOiBUKTogRGVlcFJlYWRvbmx5PFQ+IHtcbiAgLy8gSWYgdGhlIG9iamVjdCBpcyBhbHJlYWR5IGZyb3plbiwgdGhlcmUncyBubyBuZWVkIHRvIGZyZWV6ZSBpdCBhZ2Fpbi5cbiAgaWYgKE9iamVjdC5pc0Zyb3plbihvYmopKSByZXR1cm4gb2JqIGFzIERlZXBSZWFkb25seTxUPlxuXG4gIC8vIEFuIGFycmF5IGlzIGFuIG9iamVjdCwgYnV0IHdlIGFsc28gd2FudCB0byBmcmVlemUgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheVxuICAvLyBhcyB3ZWxsLlxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIG9iaikge1xuICAgICAgaWYgKCFpdGVtIHx8IHR5cGVvZiBpdGVtICE9PSAnb2JqZWN0JykgY29udGludWVcbiAgICAgIGRlZXBGcmVlemUoaXRlbSlcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShvYmopIGFzIERlZXBSZWFkb25seTxUPlxuICB9XG5cbiAgZm9yIChjb25zdCB2YWx1ZSBvZiBPYmplY3QudmFsdWVzKG9iaikpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIGNvbnRpbnVlXG4gICAgZGVlcEZyZWV6ZSh2YWx1ZSlcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iaikgYXMgRGVlcFJlYWRvbmx5PFQ+XG59XG4iXSwibmFtZXMiOlsiZGVlcEZyZWV6ZSIsIm9iaiIsIk9iamVjdCIsImlzRnJvemVuIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbSIsImZyZWV6ZSIsInZhbHVlIiwidmFsdWVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/errors/constants.js ***! \***************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OzJEQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwwQkFBMEIiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SID0gJ05FWFRfTUlTU0lOR19ST09UX1RBR1MnXG4iXSwibmFtZXMiOlsiTUlTU0lOR19ST09UX1RBR1NfRVJST1IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, '\\\\$&');\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXNjYXBlLXJlZ2V4cC5qcyIsIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7Ozs7O3NEQUkxREE7OztlQUFBQTs7O0FBSGhCLE1BQU1DLGNBQWM7QUFDcEIsTUFBTUMsa0JBQWtCO0FBRWpCLFNBQVNGLG1CQUFtQkcsR0FBVztJQUM1QywrR0FBK0c7SUFDL0csSUFBSUYsWUFBWUcsSUFBSSxDQUFDRCxNQUFNO1FBQ3pCLE9BQU9BLElBQUlFLE9BQU8sQ0FBQ0gsaUJBQWlCO0lBQ3RDO0lBQ0EsT0FBT0M7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvZXNjYXBlLXJlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdleHAgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9lc2NhcGUtc3RyaW5nLXJlZ2V4cFxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9cbmNvbnN0IHJlUmVwbGFjZVJlZ0V4cCA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Li1dL2dcblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHI6IHN0cmluZykge1xuICAvLyBzZWUgYWxzbzogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL2VzY2FwZVJlZ0V4cC5qcyNMMjNcbiAgaWYgKHJlSGFzUmVnRXhwLnRlc3Qoc3RyKSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsICdcXFxcJCYnKVxuICB9XG4gIHJldHVybiBzdHJcbn1cbiJdLCJuYW1lcyI6WyJlc2NhcGVTdHJpbmdSZWdleHAiLCJyZUhhc1JlZ0V4cCIsInJlUmVwbGFjZVJlZ0V4cCIsInN0ciIsInRlc3QiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/get-hostname.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHostname\", ({\n enumerable: true,\n get: function() {\n return getHostname;\n }\n}));\nfunction getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n} //# sourceMappingURL=get-hostname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBUWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxZQUNkQyxNQUFvQyxFQUNwQ0MsT0FBNkI7SUFFN0IsMkVBQTJFO0lBQzNFLFlBQVk7SUFDWixJQUFJQztJQUNKLElBQUlELENBQUFBLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNFLElBQUFBLEtBQVEsQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDSixRQUFRRSxJQUFJLEdBQUc7UUFDakRELFdBQVdELFFBQVFFLElBQUksQ0FBQ0csUUFBUSxHQUFHQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUNyRCxPQUFPLElBQUlQLE9BQU9FLFFBQVEsRUFBRTtRQUMxQkEsV0FBV0YsT0FBT0UsUUFBUTtJQUM1QixPQUFPO0lBRVAsT0FBT0EsU0FBU00sV0FBVztBQUM3QiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3V0Z29pbmdIdHRwSGVhZGVycyB9IGZyb20gJ2h0dHAnXG5cbi8qKlxuICogVGFrZXMgYW4gb2JqZWN0IHdpdGggYSBob3N0bmFtZSBwcm9wZXJ0eSAobGlrZSBhIHBhcnNlZCBVUkwpIGFuZCBzb21lXG4gKiBoZWFkZXJzIHRoYXQgbWF5IGNvbnRhaW4gSG9zdCBhbmQgcmV0dXJucyB0aGUgcHJlZmVycmVkIGhvc3RuYW1lLlxuICogQHBhcmFtIHBhcnNlZCBBbiBvYmplY3QgY29udGFpbmluZyBhIGhvc3RuYW1lIHByb3BlcnR5LlxuICogQHBhcmFtIGhlYWRlcnMgQSBkaWN0aW9uYXJ5IHdpdGggaGVhZGVycyBjb250YWluaW5nIGEgYGhvc3RgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9zdG5hbWUoXG4gIHBhcnNlZDogeyBob3N0bmFtZT86IHN0cmluZyB8IG51bGwgfSxcbiAgaGVhZGVycz86IE91dGdvaW5nSHR0cEhlYWRlcnNcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIEdldCB0aGUgaG9zdG5hbWUgZnJvbSB0aGUgaGVhZGVycyBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1c2UgdGhlIHBhcnNlZFxuICAvLyBob3N0bmFtZS5cbiAgbGV0IGhvc3RuYW1lOiBzdHJpbmdcbiAgaWYgKGhlYWRlcnM/Lmhvc3QgJiYgIUFycmF5LmlzQXJyYXkoaGVhZGVycy5ob3N0KSkge1xuICAgIGhvc3RuYW1lID0gaGVhZGVycy5ob3N0LnRvU3RyaW5nKCkuc3BsaXQoJzonLCAxKVswXVxuICB9IGVsc2UgaWYgKHBhcnNlZC5ob3N0bmFtZSkge1xuICAgIGhvc3RuYW1lID0gcGFyc2VkLmhvc3RuYW1lXG4gIH0gZWxzZSByZXR1cm5cblxuICByZXR1cm4gaG9zdG5hbWUudG9Mb3dlckNhc2UoKVxufVxuIl0sIm5hbWVzIjpbImdldEhvc3RuYW1lIiwicGFyc2VkIiwiaGVhZGVycyIsImhvc3RuYW1lIiwiaG9zdCIsIkFycmF5IiwiaXNBcnJheSIsInRvU3RyaW5nIiwic3BsaXQiLCJ0b0xvd2VyQ2FzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/hash.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/shared/lib/hash.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n djb2Hash: function() {\n return djb2Hash;\n },\n hexHash: function() {\n return hexHash;\n }\n});\nfunction djb2Hash(str) {\n let hash = 5381;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) + hash + char & 0xffffffff;\n }\n return hash >>> 0;\n}\nfunction hexHash(str) {\n return djb2Hash(str).toString(36).slice(0, 5);\n} //# sourceMappingURL=hash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsNENBQTRDO0FBQzVDLGlIQUFpSDtBQUNqSCx3RkFBd0Y7QUFDeEYsZ0dBQWdHO0FBQ2hHLHdIQUF3SDtBQUN4SCx3REFBd0Q7Ozs7Ozs7Ozs7Ozs7SUFDeENBLFFBQVE7ZUFBUkE7O0lBU0FDLE9BQU87ZUFBUEE7OztBQVRULFNBQVNELFNBQVNFLEdBQVc7SUFDbEMsSUFBSUMsT0FBTztJQUNYLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUs7UUFDbkMsTUFBTUUsT0FBT0osSUFBSUssVUFBVSxDQUFDSDtRQUM1QkQsT0FBU0EsQ0FBQUEsU0FBUSxJQUFLQSxPQUFPRyxPQUFRO0lBQ3ZDO0lBQ0EsT0FBT0gsU0FBUztBQUNsQjtBQUVPLFNBQVNGLFFBQVFDLEdBQVc7SUFDakMsT0FBT0YsU0FBU0UsS0FBS00sUUFBUSxDQUFDLElBQUlDLEtBQUssQ0FBQyxHQUFHO0FBQzdDIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9oYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuY3NlLnlvcmt1LmNhL35vei9oYXNoLmh0bWxcbi8vIE1vcmUgc3BlY2lmaWNhbGx5LCAzMi1iaXQgaGFzaCB2aWEgZGpieG9yXG4vLyAocmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9lcGxhd2xlc3MvNTI4MTNiMWQ4YWQ5YWY1MTBkODU/cGVybWFsaW5rX2NvbW1lbnRfaWQ9MzM2Nzc2NSNnaXN0Y29tbWVudC0zMzY3NzY1KVxuLy8gVGhpcyBpcyBkdWUgdG8gbnVtYmVyIHR5cGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBydXN0IGZvciB0dXJib3BhY2sgdG8ganMgbnVtYmVyIHR5cGVzLFxuLy8gd2hlcmUgcnVzdCBkb2VzIG5vdCBoYXZlIGVhc3kgd2F5IHRvIHJlcHJlZXNudCBqcydzIDUzLWJpdCBmbG9hdCBudW1iZXIgdHlwZSBmb3IgdGhlIG1hdGNoaW5nXG4vLyBvdmVyZmxvdyBiZWhhdmlvci4gVGhpcyBpcyBtb3JlIGBjb3JyZWN0YCBpbiB0ZXJtcyBvZiBoYXZpbmcgY2Fub25pY2FsIGhhc2ggYWNyb3NzIGRpZmZlcmVudCBydW50aW1lIC8gaW1wbGVtZW50YXRpb25cbi8vIGFzIGNhbiBnYXVyYW50ZWUgZGV0ZXJtaW5zdGljIG91dHB1dCBmcm9tIDMyYml0IGhhc2guXG5leHBvcnQgZnVuY3Rpb24gZGpiMkhhc2goc3RyOiBzdHJpbmcpIHtcbiAgbGV0IGhhc2ggPSA1MzgxXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGFzaCA9ICgoaGFzaCA8PCA1KSArIGhhc2ggKyBjaGFyKSAmIDB4ZmZmZmZmZmZcbiAgfVxuICByZXR1cm4gaGFzaCA+Pj4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGV4SGFzaChzdHI6IHN0cmluZykge1xuICByZXR1cm4gZGpiMkhhc2goc3RyKS50b1N0cmluZygzNikuc2xpY2UoMCwgNSlcbn1cbiJdLCJuYW1lcyI6WyJkamIySGFzaCIsImhleEhhc2giLCJzdHIiLCJoYXNoIiwiaSIsImxlbmd0aCIsImNoYXIiLCJjaGFyQ29kZUF0IiwidG9TdHJpbmciLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/hash.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(':', 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n} //# sourceMappingURL=detect-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3NEQUVnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQ2RDLFdBQXFDLEVBQ3JDQyxRQUFpQixFQUNqQkMsY0FBdUI7SUFFdkIsSUFBSSxDQUFDRixhQUFhO0lBRWxCLElBQUlFLGdCQUFnQjtRQUNsQkEsaUJBQWlCQSxlQUFlQyxXQUFXO0lBQzdDO0lBRUEsS0FBSyxNQUFNQyxRQUFRSixZQUFhO1lBRVBJLGNBSXJCQTtRQUxGLHlCQUF5QjtRQUN6QixNQUFNQyxpQkFBQUEsQ0FBaUJELGVBQUFBLEtBQUtFLE1BQUFBLEtBQU0sZ0JBQVhGLGFBQWFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUNKLFdBQVc7UUFDaEUsSUFDRUYsYUFBYUksa0JBQ2JILG1CQUFtQkUsS0FBS0ksYUFBYSxDQUFDTCxXQUFXLFFBQ2pEQyxnQkFBQUEsS0FBS0ssT0FBQUEsS0FBTyxnQkFBWkwsY0FBY00sSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9SLFdBQVcsT0FBT0QsZUFBQUEsR0FDeEQ7WUFDQSxPQUFPRTtRQUNUO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERvbWFpbkxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9jb25maWctc2hhcmVkJ1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0RG9tYWluTG9jYWxlKFxuICBkb21haW5JdGVtcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdLFxuICBob3N0bmFtZT86IHN0cmluZyxcbiAgZGV0ZWN0ZWRMb2NhbGU/OiBzdHJpbmdcbikge1xuICBpZiAoIWRvbWFpbkl0ZW1zKSByZXR1cm5cblxuICBpZiAoZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICBkZXRlY3RlZExvY2FsZSA9IGRldGVjdGVkTG9jYWxlLnRvTG93ZXJDYXNlKClcbiAgfVxuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBkb21haW5JdGVtcykge1xuICAgIC8vIHJlbW92ZSBwb3J0IGlmIHByZXNlbnRcbiAgICBjb25zdCBkb21haW5Ib3N0bmFtZSA9IGl0ZW0uZG9tYWluPy5zcGxpdCgnOicsIDEpWzBdLnRvTG93ZXJDYXNlKClcbiAgICBpZiAoXG4gICAgICBob3N0bmFtZSA9PT0gZG9tYWluSG9zdG5hbWUgfHxcbiAgICAgIGRldGVjdGVkTG9jYWxlID09PSBpdGVtLmRlZmF1bHRMb2NhbGUudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgaXRlbS5sb2NhbGVzPy5zb21lKChsb2NhbGUpID0+IGxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBkZXRlY3RlZExvY2FsZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBpdGVtXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZGV0ZWN0RG9tYWluTG9jYWxlIiwiZG9tYWluSXRlbXMiLCJob3N0bmFtZSIsImRldGVjdGVkTG9jYWxlIiwidG9Mb3dlckNhc2UiLCJpdGVtIiwiZG9tYWluSG9zdG5hbWUiLCJkb21haW4iLCJzcGxpdCIsImRlZmF1bHRMb2NhbGUiLCJsb2NhbGVzIiwic29tZSIsImxvY2FsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */ const cache = new WeakMap();\nfunction normalizeLocalePath(pathname, locales) {\n // If locales is undefined, return the pathname as is.\n if (!locales) return {\n pathname\n };\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales);\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale)=>locale.toLowerCase());\n cache.set(locales, lowercasedLocales);\n }\n let detectedLocale;\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2);\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return {\n pathname\n };\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase();\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment);\n if (index < 0) return {\n pathname\n };\n // Return the case-sensitive locale.\n detectedLocale = locales[index];\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/';\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFxQmdCQTs7O2VBQUFBOzs7QUFoQmhCOzs7O0NBSUMsR0FDRCxNQUFNQyxRQUFRLElBQUlDO0FBV1gsU0FBU0Ysb0JBQ2RHLFFBQWdCLEVBQ2hCQyxPQUEyQjtJQUUzQixzREFBc0Q7SUFDdEQsSUFBSSxDQUFDQSxTQUFTLE9BQU87UUFBRUQ7SUFBUztJQUVoQyxpRUFBaUU7SUFDakUsSUFBSUUsb0JBQW9CSixNQUFNSyxHQUFHLENBQUNGO0lBQ2xDLElBQUksQ0FBQ0MsbUJBQW1CO1FBQ3RCQSxvQkFBb0JELFFBQVFHLEdBQUcsQ0FBQyxDQUFDQyxTQUFXQSxPQUFPQyxXQUFXO1FBQzlEUixNQUFNUyxHQUFHLENBQUNOLFNBQVNDO0lBQ3JCO0lBRUEsSUFBSU07SUFFSixvRUFBb0U7SUFDcEUseUVBQXlFO0lBQ3pFLE1BQU1DLFdBQVdULFNBQVNVLEtBQUssQ0FBQyxLQUFLO0lBRXJDLDBFQUEwRTtJQUMxRSxVQUFVO0lBQ1YsSUFBSSxDQUFDRCxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU87UUFBRVQ7SUFBUztJQUVwQywwREFBMEQ7SUFDMUQsTUFBTVcsVUFBVUYsUUFBUSxDQUFDLEVBQUUsQ0FBQ0gsV0FBVztJQUV2Qyx5RUFBeUU7SUFDekUsbUNBQW1DO0lBQ25DLE1BQU1NLFFBQVFWLGtCQUFrQlcsT0FBTyxDQUFDRjtJQUN4QyxJQUFJQyxRQUFRLEdBQUcsT0FBTztRQUFFWjtJQUFTO0lBRWpDLG9DQUFvQztJQUNwQ1EsaUJBQWlCUCxPQUFPLENBQUNXLE1BQU07SUFFL0IsZ0RBQWdEO0lBQ2hEWixXQUFXQSxTQUFTYyxLQUFLLENBQUNOLGVBQWVPLE1BQU0sR0FBRyxNQUFNO0lBRXhELE9BQU87UUFBRWY7UUFBVVE7SUFBZTtBQUNwQyIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQYXRoTG9jYWxlIHtcbiAgZGV0ZWN0ZWRMb2NhbGU/OiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIEEgY2FjaGUgb2YgbG93ZXJjYXNlZCBsb2NhbGVzIGZvciBlYWNoIGxpc3Qgb2YgbG9jYWxlcy4gVGhpcyBpcyBzdG9yZWQgYXMgYVxuICogV2Vha01hcCBzbyBpZiB0aGUgbG9jYWxlcyBhcmUgZ2FyYmFnZSBjb2xsZWN0ZWQsIHRoZSBjYWNoZSBlbnRyeSB3aWxsIGJlXG4gKiByZW1vdmVkIGFzIHdlbGwuXG4gKi9cbmNvbnN0IGNhY2hlID0gbmV3IFdlYWtNYXA8cmVhZG9ubHkgc3RyaW5nW10sIHJlYWRvbmx5IHN0cmluZ1tdPigpXG5cbi8qKlxuICogRm9yIGEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZSBmcm9tIGEgbGlzdCBvZiBsb2NhbGVzLCBpdFxuICogcmVtb3ZlcyB0aGUgbG9jYWxlIGZyb20gdGhlIHBhdGhuYW1lIHJldHVybmluZyBpdCBhbG9uZ3NpZGUgd2l0aCB0aGVcbiAqIGRldGVjdGVkIGxvY2FsZS5cbiAqXG4gKiBAcGFyYW0gcGF0aG5hbWUgQSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlLlxuICogQHBhcmFtIGxvY2FsZXMgQSBsaXN0IG9mIGxvY2FsZXMuXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgbG9jYWxlIGFuZCBwYXRobmFtZSB3aXRob3V0IGxvY2FsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4pOiBQYXRoTG9jYWxlIHtcbiAgLy8gSWYgbG9jYWxlcyBpcyB1bmRlZmluZWQsIHJldHVybiB0aGUgcGF0aG5hbWUgYXMgaXMuXG4gIGlmICghbG9jYWxlcykgcmV0dXJuIHsgcGF0aG5hbWUgfVxuXG4gIC8vIEdldCB0aGUgY2FjaGVkIGxvd2VyY2FzZWQgbG9jYWxlcyBvciBjcmVhdGUgYSBuZXcgY2FjaGUgZW50cnkuXG4gIGxldCBsb3dlcmNhc2VkTG9jYWxlcyA9IGNhY2hlLmdldChsb2NhbGVzKVxuICBpZiAoIWxvd2VyY2FzZWRMb2NhbGVzKSB7XG4gICAgbG93ZXJjYXNlZExvY2FsZXMgPSBsb2NhbGVzLm1hcCgobG9jYWxlKSA9PiBsb2NhbGUudG9Mb3dlckNhc2UoKSlcbiAgICBjYWNoZS5zZXQobG9jYWxlcywgbG93ZXJjYXNlZExvY2FsZXMpXG4gIH1cblxuICBsZXQgZGV0ZWN0ZWRMb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIC8vIFRoZSBmaXJzdCBzZWdtZW50IHdpbGwgYmUgZW1wdHksIGJlY2F1c2UgaXQgaGFzIGEgbGVhZGluZyBgL2AuIElmXG4gIC8vIHRoZXJlIGlzIG5vIGZ1cnRoZXIgc2VnbWVudCwgdGhlcmUgaXMgbm8gbG9jYWxlIChvciBpdCdzIHRoZSBkZWZhdWx0KS5cbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRobmFtZS5zcGxpdCgnLycsIDIpXG5cbiAgLy8gSWYgdGhlcmUncyBubyBzZWNvbmQgc2VnbWVudCAoaWUsIHRoZSBwYXRobmFtZSBpcyBqdXN0IGAvYCksIHRoZXJlJ3Mgbm9cbiAgLy8gbG9jYWxlLlxuICBpZiAoIXNlZ21lbnRzWzFdKSByZXR1cm4geyBwYXRobmFtZSB9XG5cbiAgLy8gVGhlIHNlY29uZCBzZWdtZW50IHdpbGwgY29udGFpbiB0aGUgbG9jYWxlIHBhcnQgaWYgYW55LlxuICBjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbMV0udG9Mb3dlckNhc2UoKVxuXG4gIC8vIFNlZSBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIG9uZSBvZiB0aGUgbG9jYWxlcy4gSWYgaXQgZG9lc24ndCwgdGhlcmUgaXNcbiAgLy8gbm8gbG9jYWxlIChvciBpdCdzIHRoZSBkZWZhdWx0KS5cbiAgY29uc3QgaW5kZXggPSBsb3dlcmNhc2VkTG9jYWxlcy5pbmRleE9mKHNlZ21lbnQpXG4gIGlmIChpbmRleCA8IDApIHJldHVybiB7IHBhdGhuYW1lIH1cblxuICAvLyBSZXR1cm4gdGhlIGNhc2Utc2Vuc2l0aXZlIGxvY2FsZS5cbiAgZGV0ZWN0ZWRMb2NhbGUgPSBsb2NhbGVzW2luZGV4XVxuXG4gIC8vIFJlbW92ZSB0aGUgYC8ke2xvY2FsZX1gIHBhcnQgb2YgdGhlIHBhdGhuYW1lLlxuICBwYXRobmFtZSA9IHBhdGhuYW1lLnNsaWNlKGRldGVjdGVkTG9jYWxlLmxlbmd0aCArIDEpIHx8ICcvJ1xuXG4gIHJldHVybiB7IHBhdGhuYW1lLCBkZXRlY3RlZExvY2FsZSB9XG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplTG9jYWxlUGF0aCIsImNhY2hlIiwiV2Vha01hcCIsInBhdGhuYW1lIiwibG9jYWxlcyIsImxvd2VyY2FzZWRMb2NhbGVzIiwiZ2V0IiwibWFwIiwibG9jYWxlIiwidG9Mb3dlckNhc2UiLCJzZXQiLCJkZXRlY3RlZExvY2FsZSIsInNlZ21lbnRzIiwic3BsaXQiLCJzZWdtZW50IiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/invariant-error.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFyaWFudEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBFcnJvck9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIGBJbnZhcmlhbnQ6ICR7bWVzc2FnZS5lbmRzV2l0aCgnLicpID8gbWVzc2FnZSA6IG1lc3NhZ2UgKyAnLid9IFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgICB0aGlzLm5hbWUgPSAnSW52YXJpYW50RXJyb3InXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbnZhcmlhbnRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwib3B0aW9ucyIsImVuZHNXaXRoIiwibmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/is-thenable.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/isomorphic/path.js ***! \**************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("/**\n * This module is for next.js server internal usage of path module.\n * It will use native path module for nodejs runtime.\n * It will use path-browserify polyfill for edge runtime.\n */ \nlet path;\nif (false) {} else {\n path = __webpack_require__(/*! path */ \"path\");\n}\nmodule.exports = path; //# sourceMappingURL=path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXNvbW9ycGhpYy9wYXRoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7O0NBSUM7QUFDRCxJQUFJQTtBQUVKLElBQUlDLEtBQW1DLEVBQUUsRUFFeEMsTUFBTTtJQUNMRCxPQUFPSSxtQkFBT0EsQ0FBQyxrQkFBTTtBQUN2QjtBQUVBQyxPQUFPQyxPQUFPLEdBQUdOIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIG1vZHVsZSBpcyBmb3IgbmV4dC5qcyBzZXJ2ZXIgaW50ZXJuYWwgdXNhZ2Ugb2YgcGF0aCBtb2R1bGUuXG4gKiBJdCB3aWxsIHVzZSBuYXRpdmUgcGF0aCBtb2R1bGUgZm9yIG5vZGVqcyBydW50aW1lLlxuICogSXQgd2lsbCB1c2UgcGF0aC1icm93c2VyaWZ5IHBvbHlmaWxsIGZvciBlZGdlIHJ1bnRpbWUuXG4gKi9cbmxldCBwYXRoXG5cbmlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICBwYXRoID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtYnJvd3NlcmlmeScpXG59IGVsc2Uge1xuICBwYXRoID0gcmVxdWlyZSgncGF0aCcpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0aFxuIl0sIm5hbWVzIjpbInBhdGgiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This has to be a shared module which is shared between client component error boundary and dynamic component\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BailoutToCSRError: function() {\n return BailoutToCSRError;\n },\n isBailoutToCSRError: function() {\n return isBailoutToCSRError;\n }\n});\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\nclass BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\nfunction isBailoutToCSRError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n} //# sourceMappingURL=bailout-to-csr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtHQUErRzs7Ozs7Ozs7Ozs7OztJQUlsR0EsaUJBQWlCO2VBQWpCQTs7SUFTR0MsbUJBQW1CO2VBQW5CQTs7O0FBWmhCLE1BQU1DLGlCQUFpQjtBQUdoQixNQUFNRiwwQkFBMEJHO0lBR3JDQyxZQUE0QkMsTUFBYyxDQUFFO1FBQzFDLEtBQUssQ0FBRSx3Q0FBcUNBLFNBQUFBLElBQUFBLENBRGxCQSxNQUFBQSxHQUFBQSxRQUFBQSxJQUFBQSxDQUZaQyxNQUFBQSxHQUFTSjtJQUl6QjtBQUNGO0FBR08sU0FBU0Qsb0JBQW9CTSxHQUFZO0lBQzlDLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDakUsT0FBTztJQUNUO0lBRUEsT0FBT0EsSUFBSUQsTUFBTSxLQUFLSjtBQUN4QiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgaGFzIHRvIGJlIGEgc2hhcmVkIG1vZHVsZSB3aGljaCBpcyBzaGFyZWQgYmV0d2VlbiBjbGllbnQgY29tcG9uZW50IGVycm9yIGJvdW5kYXJ5IGFuZCBkeW5hbWljIGNvbXBvbmVudFxuY29uc3QgQkFJTE9VVF9UT19DU1IgPSAnQkFJTE9VVF9UT19DTElFTlRfU0lERV9SRU5ERVJJTkcnXG5cbi8qKiBBbiBlcnJvciB0aGF0IHNob3VsZCBiZSB0aHJvd24gd2hlbiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi9cbmV4cG9ydCBjbGFzcyBCYWlsb3V0VG9DU1JFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGRpZ2VzdCA9IEJBSUxPVVRfVE9fQ1NSXG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlYXNvbjogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZzogJHtyZWFzb259YClcbiAgfVxufVxuXG4vKiogQ2hlY2tzIGlmIGEgcGFzc2VkIGFyZ3VtZW50IGlzIGFuIGVycm9yIHRoYXQgaXMgdGhyb3duIGlmIHdlIHdhbnQgdG8gYmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyOiB1bmtub3duKTogZXJyIGlzIEJhaWxvdXRUb0NTUkVycm9yIHtcbiAgaWYgKHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8IGVyciA9PT0gbnVsbCB8fCAhKCdkaWdlc3QnIGluIGVycikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnIuZGlnZXN0ID09PSBCQUlMT1VUX1RPX0NTUlxufVxuIl0sIm5hbWVzIjpbIkJhaWxvdXRUb0NTUkVycm9yIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsIkJBSUxPVVRfVE9fQ1NSIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsInJlYXNvbiIsImRpZ2VzdCIsImVyciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgbGVhZGluZyBzbGFzaC5cbiAqIElmIHRoZXJlIGlzIG5vdCBhIGxlYWRpbmcgc2xhc2gsIG9uZSBpcyBhZGRlZCwgb3RoZXJ3aXNlIGl0IGlzIG5vb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGggOiBgLyR7cGF0aH1gXG59XG4iXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n} //# sourceMappingURL=normalize-path-sep.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7O29EQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxpQkFBaUJDLElBQVk7SUFDM0MsT0FBT0EsS0FBS0MsT0FBTyxDQUFDLE9BQU87QUFDN0IiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5vIGJhY2tzbGFzaFxuICogZXNjYXBpbmcgc2xhc2hlcyBpbiB0aGUgcGF0aC4gRXhhbXBsZTpcbiAqICAtIGBmb29cXC9iYXJcXC9iYXpgIC0+IGBmb28vYmFyL2JhemBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGhTZXAocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGF0aFNlcCIsInBhdGgiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FRZ0JBOzs7ZUFBQUE7OzsyQ0FSYzsyQ0FDQTtBQU92QixTQUFTQSxVQUNkQyxJQUFZLEVBQ1pDLE1BQXVCLEVBQ3ZCQyxhQUFzQixFQUN0QkMsWUFBc0I7SUFFdEIsNEVBQTRFO0lBQzVFLHNCQUFzQjtJQUN0QixJQUFJLENBQUNGLFVBQVVBLFdBQVdDLGVBQWUsT0FBT0Y7SUFFaEQsTUFBTUksUUFBUUosS0FBS0ssV0FBVztJQUU5QiwyRUFBMkU7SUFDM0UsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQ0YsY0FBYztRQUNqQixJQUFJRyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQUNGLE9BQU8sU0FBUyxPQUFPSjtRQUN6QyxJQUFJTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixPQUFRLE1BQUdILE9BQU9JLFdBQVcsS0FBTyxPQUFPTDtJQUMvRDtJQUVBLHFDQUFxQztJQUNyQyxPQUFPTyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjUCxNQUFPLE1BQUdDO0FBQ2pDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4vYWRkLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuXG4vKipcbiAqIEZvciBhIGdpdmVuIHBhdGggYW5kIGEgbG9jYWxlLCBpZiB0aGUgbG9jYWxlIGlzIGdpdmVuLCBpdCB3aWxsIHByZWZpeCB0aGVcbiAqIGxvY2FsZS4gVGhlIHBhdGggc2hvdWxkbid0IGJlIGFuIEFQSSBwYXRoLiBJZiBhIGRlZmF1bHQgbG9jYWxlIGlzIGdpdmVuIHRoZVxuICogcHJlZml4IHdpbGwgYmUgb21pdHRlZCBpZiB0aGUgbG9jYWxlIGlzIGFscmVhZHkgdGhlIGRlZmF1bHQgbG9jYWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTG9jYWxlKFxuICBwYXRoOiBzdHJpbmcsXG4gIGxvY2FsZT86IHN0cmluZyB8IGZhbHNlLFxuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nLFxuICBpZ25vcmVQcmVmaXg/OiBib29sZWFuXG4pIHtcbiAgLy8gSWYgbm8gbG9jYWxlIHdhcyBnaXZlbiBvciB0aGUgbG9jYWxlIGlzIHRoZSBkZWZhdWx0IGxvY2FsZSwgd2UgZG9uJ3QgbmVlZFxuICAvLyB0byBwcmVmaXggdGhlIHBhdGguXG4gIGlmICghbG9jYWxlIHx8IGxvY2FsZSA9PT0gZGVmYXVsdExvY2FsZSkgcmV0dXJuIHBhdGhcblxuICBjb25zdCBsb3dlciA9IHBhdGgudG9Mb3dlckNhc2UoKVxuXG4gIC8vIElmIHRoZSBwYXRoIGlzIGFuIEFQSSBwYXRoIG9yIHRoZSBwYXRoIGFscmVhZHkgaGFzIHRoZSBsb2NhbGUgcHJlZml4LCB3ZVxuICAvLyBkb24ndCBuZWVkIHRvIHByZWZpeCB0aGUgcGF0aC5cbiAgaWYgKCFpZ25vcmVQcmVmaXgpIHtcbiAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgJy9hcGknKSkgcmV0dXJuIHBhdGhcbiAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgYC8ke2xvY2FsZS50b0xvd2VyQ2FzZSgpfWApKSByZXR1cm4gcGF0aFxuICB9XG5cbiAgLy8gQWRkIHRoZSBsb2NhbGUgcHJlZml4IHRvIHRoZSBwYXRoLlxuICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBgLyR7bG9jYWxlfWApXG59XG4iXSwibmFtZXMiOlsiYWRkTG9jYWxlIiwicGF0aCIsImxvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJsb3dlciIsInRvTG93ZXJDYXNlIiwicGF0aEhhc1ByZWZpeCIsImFkZFBhdGhQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQWRkcyB0aGUgcHJvdmlkZWQgcHJlZml4IHRvIHRoZSBnaXZlbiBwYXRoLiBJdCBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHBhdGhcbiAqIGlzIGluZGVlZCBzdGFydGluZyB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXByZWZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwcmVmaXh9JHtwYXRobmFtZX0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU9nQkE7OztlQUFBQTs7O3VDQVBVO0FBT25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVHLFdBQVdGLFNBQVNHLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogU2ltaWxhcmx5IHRvIGBhZGRQYXRoUHJlZml4YCwgdGhpcyBmdW5jdGlvbiBhZGRzIGEgc3VmZml4IGF0IHRoZSBlbmQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXRoLiBJdCBhbHNvIHdvcmtzIG9ubHkgZm9yIHBhdGhzIGVuc3VyaW5nIHRoZSBhcmd1bWVudCBzdGFydHNcbiAqIHdpdGggYSBzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhdGhTdWZmaXgocGF0aDogc3RyaW5nLCBzdWZmaXg/OiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhc3VmZml4KSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIGAke3BhdGhuYW1lfSR7c3VmZml4fSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJhZGRQYXRoU3VmZml4IiwicGF0aCIsInN1ZmZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZUxlYWRpbmdTbGFzaCB9IGZyb20gJy4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzR3JvdXBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VnbWVudCdcblxuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcHBQYXRoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVuc3VyZUxlYWRpbmdTbGFzaChcbiAgICByb3V0ZS5zcGxpdCgnLycpLnJlZHVjZSgocGF0aG5hbWUsIHNlZ21lbnQsIGluZGV4LCBzZWdtZW50cykgPT4ge1xuICAgICAgLy8gRW1wdHkgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIEdyb3VwcyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gUGFyYWxsZWwgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoc2VnbWVudFswXSA9PT0gJ0AnKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICBpZiAoXG4gICAgICAgIChzZWdtZW50ID09PSAncGFnZScgfHwgc2VnbWVudCA9PT0gJ3JvdXRlJykgJiZcbiAgICAgICAgaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKVxuICApXG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBgLnJzY2AgZXh0ZW5zaW9uIGlmIGl0J3MgaW4gdGhlIHBhdGhuYW1lLlxuICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9uIGZ1bGwgdXJscyBpdCBjaGVja3MgYD9gIGZvciBzZWFyY2hQYXJhbXMgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5yZXBsYWNlKFxuICAgIC9cXC5yc2MoJHxcXD8pLyxcbiAgICAvLyAkMSBlbnN1cmVzIGA/YCBpcyBwcmVzZXJ2ZWRcbiAgICAnJDEnXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwibm9ybWFsaXplUnNjVVJMIiwicm91dGUiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJzcGxpdCIsInJlZHVjZSIsInBhdGhuYW1lIiwic2VnbWVudCIsImluZGV4Iiwic2VnbWVudHMiLCJpc0dyb3VwU2VnbWVudCIsImxlbmd0aCIsInVybCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js": /*!*************************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7OzswREFXZ0JBOzs7ZUFBQUE7OztpREFWb0I7MkNBQ047MkNBQ0E7dUNBQ0o7QUFPbkIsU0FBU0EsdUJBQXVCQyxJQUFrQjtJQUN2RCxJQUFJQyxXQUFXQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUNiRixLQUFLQyxRQUFRLEVBQ2JELEtBQUtHLE1BQU0sRUFDWEgsS0FBS0ksT0FBTyxHQUFHQyxZQUFZTCxLQUFLTSxhQUFhLEVBQzdDTixLQUFLTyxZQUFZO0lBR25CLElBQUlQLEtBQUtJLE9BQU8sSUFBSSxDQUFDSixLQUFLUSxhQUFhLEVBQUU7UUFDdkNQLFdBQVdRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0lBQ2pDO0lBRUEsSUFBSUQsS0FBS0ksT0FBTyxFQUFFO1FBQ2hCSCxXQUFXUyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUNUQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVixVQUFXLGlCQUFjRCxLQUFLSSxPQUFPLEdBQ25ESixLQUFLQyxRQUFRLEtBQUssTUFBTSxlQUFlO0lBRTNDO0lBRUFBLFdBQVdVLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVVELEtBQUtZLFFBQVE7SUFDaEQsT0FBTyxDQUFDWixLQUFLSSxPQUFPLElBQUlKLEtBQUtRLGFBQWEsR0FDdEMsQ0FBQ1AsU0FBU1ksUUFBUSxDQUFDLE9BQ2pCSCxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVCxVQUFVLE9BQ3hCQSxXQUNGUSxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUjtBQUMxQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gJy4vZ2V0LW5leHQtcGF0aG5hbWUtaW5mbydcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcbmltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tICcuL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IGFkZFBhdGhTdWZmaXggfSBmcm9tICcuL2FkZC1wYXRoLXN1ZmZpeCdcbmltcG9ydCB7IGFkZExvY2FsZSB9IGZyb20gJy4vYWRkLWxvY2FsZSdcblxuaW50ZXJmYWNlIEV4dGVuZGVkSW5mbyBleHRlbmRzIE5leHRQYXRobmFtZUluZm8ge1xuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gIGlnbm9yZVByZWZpeD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE5leHRQYXRobmFtZUluZm8oaW5mbzogRXh0ZW5kZWRJbmZvKSB7XG4gIGxldCBwYXRobmFtZSA9IGFkZExvY2FsZShcbiAgICBpbmZvLnBhdGhuYW1lLFxuICAgIGluZm8ubG9jYWxlLFxuICAgIGluZm8uYnVpbGRJZCA/IHVuZGVmaW5lZCA6IGluZm8uZGVmYXVsdExvY2FsZSxcbiAgICBpbmZvLmlnbm9yZVByZWZpeFxuICApXG5cbiAgaWYgKGluZm8uYnVpbGRJZCB8fCAhaW5mby50cmFpbGluZ1NsYXNoKSB7XG4gICAgcGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuICB9XG5cbiAgaWYgKGluZm8uYnVpbGRJZCkge1xuICAgIHBhdGhuYW1lID0gYWRkUGF0aFN1ZmZpeChcbiAgICAgIGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGAvX25leHQvZGF0YS8ke2luZm8uYnVpbGRJZH1gKSxcbiAgICAgIGluZm8ucGF0aG5hbWUgPT09ICcvJyA/ICdpbmRleC5qc29uJyA6ICcuanNvbidcbiAgICApXG4gIH1cblxuICBwYXRobmFtZSA9IGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGluZm8uYmFzZVBhdGgpXG4gIHJldHVybiAhaW5mby5idWlsZElkICYmIGluZm8udHJhaWxpbmdTbGFzaFxuICAgID8gIXBhdGhuYW1lLmVuZHNXaXRoKCcvJylcbiAgICAgID8gYWRkUGF0aFN1ZmZpeChwYXRobmFtZSwgJy8nKVxuICAgICAgOiBwYXRobmFtZVxuICAgIDogcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXROZXh0UGF0aG5hbWVJbmZvIiwiaW5mbyIsInBhdGhuYW1lIiwiYWRkTG9jYWxlIiwibG9jYWxlIiwiYnVpbGRJZCIsInVuZGVmaW5lZCIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJ0cmFpbGluZ1NsYXNoIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImFkZFBhdGhTdWZmaXgiLCJhZGRQYXRoUHJlZml4IiwiYmFzZVBhdGgiLCJlbmRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-url.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(rsc)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7Ozs7Ozs7Ozs7Ozs7SUFRekJBLFNBQVM7ZUFBVEE7O0lBNkRBQyxvQkFBb0I7ZUFBcEJBOztJQWZIQyxhQUFhO2VBQWJBOzs7O21GQWxEZ0I7QUFFN0IsTUFBTUMsbUJBQW1CO0FBRWxCLFNBQVNILFVBQVVJLE1BQWlCO0lBQ3pDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0Y7SUFDekIsSUFBSUcsV0FBV0gsT0FBT0csUUFBUSxJQUFJO0lBQ2xDLElBQUlDLFdBQVdKLE9BQU9JLFFBQVEsSUFBSTtJQUNsQyxJQUFJQyxPQUFPTCxPQUFPSyxJQUFJLElBQUk7SUFDMUIsSUFBSUMsUUFBUU4sT0FBT00sS0FBSyxJQUFJO0lBQzVCLElBQUlDLE9BQXVCO0lBRTNCTixPQUFPQSxPQUFPTyxtQkFBbUJQLE1BQU1RLE9BQU8sQ0FBQyxRQUFRLE9BQU8sTUFBTTtJQUVwRSxJQUFJVCxPQUFPTyxJQUFJLEVBQUU7UUFDZkEsT0FBT04sT0FBT0QsT0FBT08sSUFBSTtJQUMzQixPQUFPLElBQUlMLFVBQVU7UUFDbkJLLE9BQU9OLE9BQVEsRUFBQ0MsU0FBU1EsT0FBTyxDQUFDLE9BQVEsTUFBR1IsV0FBUyxNQUFLQSxRQUFBQSxDQUFPO1FBQ2pFLElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVUsTUFBR0EsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ1osRUFBQ2QsWUFBWUosaUJBQWlCbUIsSUFBSSxDQUFDZixTQUFBQSxDQUFRLElBQU1JLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRLEdBQUM7UUFDeEIsSUFBSUgsWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxXQUFXLE1BQU1BO0lBQ3hELE9BQU8sSUFBSSxDQUFDRyxNQUFNO1FBQ2hCQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJRixRQUFRQSxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDMUMsSUFBSVUsVUFBVUEsTUFBTSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxTQUFTLE1BQU1BO0lBRWhEWCxXQUFXQSxTQUFTSyxPQUFPLENBQUMsU0FBU0Q7SUFDckNPLFNBQVNBLE9BQU9OLE9BQU8sQ0FBQyxLQUFLO0lBRTdCLE9BQVEsS0FBRU4sV0FBV0ksT0FBT0gsV0FBV1csU0FBU1Y7QUFDbEQ7QUFFTyxNQUFNUCxnQkFBZ0I7SUFDM0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCxxQkFBcUJzQixHQUFjO0lBQ2pELElBQUlDLElBQW9CLEVBQW9CO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NJLE9BQU9DLElBQUksQ0FBQ0wsS0FBS00sT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUM1QixjQUFjNkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNULHVEQUFvREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzlCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZvcm1hdCBmdW5jdGlvbiBtb2RpZmllZCBmcm9tIG5vZGVqc1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAnLi9xdWVyeXN0cmluZydcblxuY29uc3Qgc2xhc2hlZFByb3RvY29scyA9IC9odHRwcz98ZnRwfGdvcGhlcnxmaWxlL1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iajogVXJsT2JqZWN0KSB7XG4gIGxldCB7IGF1dGgsIGhvc3RuYW1lIH0gPSB1cmxPYmpcbiAgbGV0IHByb3RvY29sID0gdXJsT2JqLnByb3RvY29sIHx8ICcnXG4gIGxldCBwYXRobmFtZSA9IHVybE9iai5wYXRobmFtZSB8fCAnJ1xuICBsZXQgaGFzaCA9IHVybE9iai5oYXNoIHx8ICcnXG4gIGxldCBxdWVyeSA9IHVybE9iai5xdWVyeSB8fCAnJ1xuICBsZXQgaG9zdDogc3RyaW5nIHwgZmFsc2UgPSBmYWxzZVxuXG4gIGF1dGggPSBhdXRoID8gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCAnOicpICsgJ0AnIDogJydcblxuICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHVybE9iai5ob3N0XG4gIH0gZWxzZSBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0ID0gYXV0aCArICh+aG9zdG5hbWUuaW5kZXhPZignOicpID8gYFske2hvc3RuYW1lfV1gIDogaG9zdG5hbWUpXG4gICAgaWYgKHVybE9iai5wb3J0KSB7XG4gICAgICBob3N0ICs9ICc6JyArIHVybE9iai5wb3J0XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1ZXJ5ICYmIHR5cGVvZiBxdWVyeSA9PT0gJ29iamVjdCcpIHtcbiAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5IGFzIFBhcnNlZFVybFF1ZXJ5KSlcbiAgfVxuXG4gIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IChxdWVyeSAmJiBgPyR7cXVlcnl9YCkgfHwgJydcblxuICBpZiAocHJvdG9jb2wgJiYgIXByb3RvY29sLmVuZHNXaXRoKCc6JykpIHByb3RvY29sICs9ICc6J1xuXG4gIGlmIChcbiAgICB1cmxPYmouc2xhc2hlcyB8fFxuICAgICgoIXByb3RvY29sIHx8IHNsYXNoZWRQcm90b2NvbHMudGVzdChwcm90b2NvbCkpICYmIGhvc3QgIT09IGZhbHNlKVxuICApIHtcbiAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKVxuICAgIGlmIChwYXRobmFtZSAmJiBwYXRobmFtZVswXSAhPT0gJy8nKSBwYXRobmFtZSA9ICcvJyArIHBhdGhuYW1lXG4gIH0gZWxzZSBpZiAoIWhvc3QpIHtcbiAgICBob3N0ID0gJydcbiAgfVxuXG4gIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2hcbiAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoXG5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9bPyNdL2csIGVuY29kZVVSSUNvbXBvbmVudClcbiAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoJyMnLCAnJTIzJylcblxuICByZXR1cm4gYCR7cHJvdG9jb2x9JHtob3N0fSR7cGF0aG5hbWV9JHtzZWFyY2h9JHtoYXNofWBcbn1cblxuZXhwb3J0IGNvbnN0IHVybE9iamVjdEtleXMgPSBbXG4gICdhdXRoJyxcbiAgJ2hhc2gnLFxuICAnaG9zdCcsXG4gICdob3N0bmFtZScsXG4gICdocmVmJyxcbiAgJ3BhdGgnLFxuICAncGF0aG5hbWUnLFxuICAncG9ydCcsXG4gICdwcm90b2NvbCcsXG4gICdxdWVyeScsXG4gICdzZWFyY2gnLFxuICAnc2xhc2hlcycsXG5dXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXaXRoVmFsaWRhdGlvbih1cmw6IFVybE9iamVjdCk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGlmICh1cmwgIT09IG51bGwgJiYgdHlwZW9mIHVybCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIE9iamVjdC5rZXlzKHVybCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICghdXJsT2JqZWN0S2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFVua25vd24ga2V5IHBhc3NlZCB2aWEgdXJsT2JqZWN0IGludG8gdXJsLmZvcm1hdDogJHtrZXl9YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybClcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXRVcmwiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybE9iamVjdEtleXMiLCJzbGFzaGVkUHJvdG9jb2xzIiwidXJsT2JqIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImhhc2giLCJxdWVyeSIsImhvc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInBvcnQiLCJTdHJpbmciLCJxdWVyeXN0cmluZyIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJlbmRzV2l0aCIsInNsYXNoZXMiLCJ0ZXN0IiwidXJsIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PARAMETER_PATTERN: function() {\n return PARAMETER_PATTERN;\n },\n getDynamicParam: function() {\n return getDynamicParam;\n },\n parseMatchedParameter: function() {\n return parseMatchedParameter;\n },\n parseParameter: function() {\n return parseParameter;\n }\n});\nfunction getDynamicParam(params, segmentKey, dynamicParamType, pagePath, fallbackRouteParams) {\n let value = params[segmentKey];\n if (fallbackRouteParams && fallbackRouteParams.has(segmentKey)) {\n value = fallbackRouteParams.get(segmentKey);\n } else if (Array.isArray(value)) {\n value = value.map((i)=>encodeURIComponent(i));\n } else if (typeof value === 'string') {\n value = encodeURIComponent(value);\n }\n if (!value) {\n const isCatchall = dynamicParamType === 'c';\n const isOptionalCatchall = dynamicParamType === 'oc';\n if (isCatchall || isOptionalCatchall) {\n // handle the case where an optional catchall does not have a value,\n // e.g. `/dashboard/[[...slug]]` when requesting `/dashboard`\n if (isOptionalCatchall) {\n return {\n param: segmentKey,\n value: null,\n type: dynamicParamType,\n treeSegment: [\n segmentKey,\n '',\n dynamicParamType\n ]\n };\n }\n // handle the case where a catchall or optional catchall does not have a value,\n // e.g. `/foo/bar/hello` and `@slot/[...catchall]` or `@slot/[[...catchall]]` is matched\n value = pagePath.split('/') // remove the first empty string\n .slice(1) // replace any dynamic params with the actual values\n .flatMap((pathSegment)=>{\n const param = parseParameter(pathSegment);\n var _params_param_key;\n // if the segment matches a param, return the param value\n // otherwise, it's a static segment, so just return that\n return (_params_param_key = params[param.key]) != null ? _params_param_key : param.key;\n });\n return {\n param: segmentKey,\n value,\n type: dynamicParamType,\n // This value always has to be a string.\n treeSegment: [\n segmentKey,\n value.join('/'),\n dynamicParamType\n ]\n };\n }\n }\n return {\n param: segmentKey,\n // The value that is passed to user code.\n value: value,\n // The value that is rendered in the router tree.\n treeSegment: [\n segmentKey,\n Array.isArray(value) ? value.join('/') : value,\n dynamicParamType\n ],\n type: dynamicParamType\n };\n}\nconst PARAMETER_PATTERN = /^([^[]*)\\[((?:\\[[^\\]]*\\])|[^\\]]+)\\](.*)$/;\nfunction parseParameter(param) {\n const match = param.match(PARAMETER_PATTERN);\n if (!match) {\n return parseMatchedParameter(param);\n }\n return parseMatchedParameter(match[2]);\n}\nfunction parseMatchedParameter(param) {\n const optional = param.startsWith('[') && param.endsWith(']');\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith('...');\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n} //# sourceMappingURL=get-dynamic-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1keW5hbWljLXBhcmFtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQStGYUEsaUJBQWlCO2VBQWpCQTs7SUFoRkdDLGVBQWU7ZUFBZkE7O0lBbUhBQyxxQkFBcUI7ZUFBckJBOztJQXJCQUMsY0FBYztlQUFkQTs7O0FBOUZULFNBQVNGLGdCQUNkRyxNQUE4QixFQUM5QkMsVUFBa0IsRUFDbEJDLGdCQUF3QyxFQUN4Q0MsUUFBZ0IsRUFDaEJDLG1CQUErQztJQUUvQyxJQUFJQyxRQUFRTCxNQUFNLENBQUNDLFdBQVc7SUFFOUIsSUFBSUcsdUJBQXVCQSxvQkFBb0JFLEdBQUcsQ0FBQ0wsYUFBYTtRQUM5REksUUFBUUQsb0JBQW9CRyxHQUFHLENBQUNOO0lBQ2xDLE9BQU8sSUFBSU8sTUFBTUMsT0FBTyxDQUFDSixRQUFRO1FBQy9CQSxRQUFRQSxNQUFNSyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUMsbUJBQW1CRDtJQUM5QyxPQUFPLElBQUksT0FBT04sVUFBVSxVQUFVO1FBQ3BDQSxRQUFRTyxtQkFBbUJQO0lBQzdCO0lBRUEsSUFBSSxDQUFDQSxPQUFPO1FBQ1YsTUFBTVEsYUFBYVgscUJBQXFCO1FBQ3hDLE1BQU1ZLHFCQUFxQloscUJBQXFCO1FBRWhELElBQUlXLGNBQWNDLG9CQUFvQjtZQUNwQyxvRUFBb0U7WUFDcEUsNkRBQTZEO1lBQzdELElBQUlBLG9CQUFvQjtnQkFDdEIsT0FBTztvQkFDTEMsT0FBT2Q7b0JBQ1BJLE9BQU87b0JBQ1BXLE1BQU1kO29CQUNOZSxhQUFhO3dCQUFDaEI7d0JBQVk7d0JBQUlDO3FCQUFpQjtnQkFDakQ7WUFDRjtZQUVBLCtFQUErRTtZQUMvRSx3RkFBd0Y7WUFDeEZHLFFBQVFGLFNBQ0xlLEtBQUssQ0FBQyxLQUNQLGdDQUFnQzthQUMvQkMsS0FBSyxDQUFDLEdBQ1Asb0RBQW9EO2FBQ25EQyxPQUFPLENBQUMsQ0FBQ0M7Z0JBQ1IsTUFBTU4sUUFBUWhCLGVBQWVzQjtvQkFHdEJyQjtnQkFGUCx5REFBeUQ7Z0JBQ3pELHdEQUF3RDtnQkFDeEQsT0FBT0EsQ0FBQUEsb0JBQUFBLE1BQU0sQ0FBQ2UsTUFBTU8sSUFBRyxLQUFDLE9BQWpCdEIsb0JBQXFCZSxNQUFNTyxHQUFHO1lBQ3ZDO1lBRUYsT0FBTztnQkFDTFAsT0FBT2Q7Z0JBQ1BJO2dCQUNBVyxNQUFNZDtnQkFDTix3Q0FBd0M7Z0JBQ3hDZSxhQUFhO29CQUFDaEI7b0JBQVlJLE1BQU1rQixJQUFJLENBQUM7b0JBQU1yQjtpQkFBaUI7WUFDOUQ7UUFDRjtJQUNGO0lBRUEsT0FBTztRQUNMYSxPQUFPZDtRQUNQLHlDQUF5QztRQUN6Q0ksT0FBT0E7UUFDUCxpREFBaUQ7UUFDakRZLGFBQWE7WUFDWGhCO1lBQ0FPLE1BQU1DLE9BQU8sQ0FBQ0osU0FBU0EsTUFBTWtCLElBQUksQ0FBQyxPQUFPbEI7WUFDekNIO1NBQ0Q7UUFDRGMsTUFBTWQ7SUFDUjtBQUNGO0FBV08sTUFBTU4sb0JBQW9CO0FBYzFCLFNBQVNHLGVBQWVnQixLQUFhO0lBQzFDLE1BQU1TLFFBQVFULE1BQU1TLEtBQUssQ0FBQzVCO0lBRTFCLElBQUksQ0FBQzRCLE9BQU87UUFDVixPQUFPMUIsc0JBQXNCaUI7SUFDL0I7SUFFQSxPQUFPakIsc0JBQXNCMEIsS0FBSyxDQUFDLEVBQUU7QUFDdkM7QUFhTyxTQUFTMUIsc0JBQXNCaUIsS0FBYTtJQUNqRCxNQUFNVSxXQUFXVixNQUFNVyxVQUFVLENBQUMsUUFBUVgsTUFBTVksUUFBUSxDQUFDO0lBQ3pELElBQUlGLFVBQVU7UUFDWlYsUUFBUUEsTUFBTUksS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUMxQjtJQUNBLE1BQU1TLFNBQVNiLE1BQU1XLFVBQVUsQ0FBQztJQUNoQyxJQUFJRSxRQUFRO1FBQ1ZiLFFBQVFBLE1BQU1JLEtBQUssQ0FBQztJQUN0QjtJQUNBLE9BQU87UUFBRUcsS0FBS1A7UUFBT2E7UUFBUUg7SUFBUztBQUN4QyIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtZHluYW1pYy1wYXJhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IER5bmFtaWNQYXJhbSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL2FwcC1yZW5kZXInXG5pbXBvcnQgdHlwZSB7IER5bmFtaWNQYXJhbVR5cGVzU2hvcnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgRmFsbGJhY2tSb3V0ZVBhcmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0L2ZhbGxiYWNrLXBhcmFtcydcblxuLyoqXG4gKlxuICogU2hhcmVkIGxvZ2ljIG9uIGNsaWVudCBhbmQgc2VydmVyIGZvciBjcmVhdGluZyBhIGR5bmFtaWMgcGFyYW0gdmFsdWUuXG4gKlxuICogVGhpcyBjb2RlIG5lZWRzIHRvIGJlIHNoYXJlZCB3aXRoIHRoZSBjbGllbnQgc28gaXQgY2FuIGV4dHJhY3QgZHluYW1pYyByb3V0ZVxuICogcGFyYW1zIGZyb20gdGhlIFVSTCB3aXRob3V0IGEgc2VydmVyIHJlcXVlc3QuXG4gKlxuICogQmVjYXVzZSBldmVyeXRoaW5nIGluIHRoaXMgbW9kdWxlIGlzIHNlbnQgdG8gdGhlIGNsaWVudCwgd2Ugc2hvdWxkIGFpbSB0b1xuICoga2VlcCB0aGlzIGNvZGUgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLiBUaGUgc3BlY2lhbCBjYXNlIGhhbmRsaW5nIGZvciBjYXRjaGFsbFxuICogYW5kIG9wdGlvbmFsIGlzLCBhbGFzLCB1bmZvcnR1bmF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldER5bmFtaWNQYXJhbShcbiAgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICBzZWdtZW50S2V5OiBzdHJpbmcsXG4gIGR5bmFtaWNQYXJhbVR5cGU6IER5bmFtaWNQYXJhbVR5cGVzU2hvcnQsXG4gIHBhZ2VQYXRoOiBzdHJpbmcsXG4gIGZhbGxiYWNrUm91dGVQYXJhbXM6IEZhbGxiYWNrUm91dGVQYXJhbXMgfCBudWxsXG4pOiBEeW5hbWljUGFyYW0ge1xuICBsZXQgdmFsdWUgPSBwYXJhbXNbc2VnbWVudEtleV1cblxuICBpZiAoZmFsbGJhY2tSb3V0ZVBhcmFtcyAmJiBmYWxsYmFja1JvdXRlUGFyYW1zLmhhcyhzZWdtZW50S2V5KSkge1xuICAgIHZhbHVlID0gZmFsbGJhY2tSb3V0ZVBhcmFtcy5nZXQoc2VnbWVudEtleSlcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHZhbHVlID0gdmFsdWUubWFwKChpKSA9PiBlbmNvZGVVUklDb21wb25lbnQoaSkpXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKVxuICB9XG5cbiAgaWYgKCF2YWx1ZSkge1xuICAgIGNvbnN0IGlzQ2F0Y2hhbGwgPSBkeW5hbWljUGFyYW1UeXBlID09PSAnYydcbiAgICBjb25zdCBpc09wdGlvbmFsQ2F0Y2hhbGwgPSBkeW5hbWljUGFyYW1UeXBlID09PSAnb2MnXG5cbiAgICBpZiAoaXNDYXRjaGFsbCB8fCBpc09wdGlvbmFsQ2F0Y2hhbGwpIHtcbiAgICAgIC8vIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhbiBvcHRpb25hbCBjYXRjaGFsbCBkb2VzIG5vdCBoYXZlIGEgdmFsdWUsXG4gICAgICAvLyBlLmcuIGAvZGFzaGJvYXJkL1tbLi4uc2x1Z11dYCB3aGVuIHJlcXVlc3RpbmcgYC9kYXNoYm9hcmRgXG4gICAgICBpZiAoaXNPcHRpb25hbENhdGNoYWxsKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGFyYW06IHNlZ21lbnRLZXksXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgdHlwZTogZHluYW1pY1BhcmFtVHlwZSxcbiAgICAgICAgICB0cmVlU2VnbWVudDogW3NlZ21lbnRLZXksICcnLCBkeW5hbWljUGFyYW1UeXBlXSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBjYXRjaGFsbCBvciBvcHRpb25hbCBjYXRjaGFsbCBkb2VzIG5vdCBoYXZlIGEgdmFsdWUsXG4gICAgICAvLyBlLmcuIGAvZm9vL2Jhci9oZWxsb2AgYW5kIGBAc2xvdC9bLi4uY2F0Y2hhbGxdYCBvciBgQHNsb3QvW1suLi5jYXRjaGFsbF1dYCBpcyBtYXRjaGVkXG4gICAgICB2YWx1ZSA9IHBhZ2VQYXRoXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC8vIHJlbW92ZSB0aGUgZmlyc3QgZW1wdHkgc3RyaW5nXG4gICAgICAgIC5zbGljZSgxKVxuICAgICAgICAvLyByZXBsYWNlIGFueSBkeW5hbWljIHBhcmFtcyB3aXRoIHRoZSBhY3R1YWwgdmFsdWVzXG4gICAgICAgIC5mbGF0TWFwKChwYXRoU2VnbWVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhcmFtID0gcGFyc2VQYXJhbWV0ZXIocGF0aFNlZ21lbnQpXG4gICAgICAgICAgLy8gaWYgdGhlIHNlZ21lbnQgbWF0Y2hlcyBhIHBhcmFtLCByZXR1cm4gdGhlIHBhcmFtIHZhbHVlXG4gICAgICAgICAgLy8gb3RoZXJ3aXNlLCBpdCdzIGEgc3RhdGljIHNlZ21lbnQsIHNvIGp1c3QgcmV0dXJuIHRoYXRcbiAgICAgICAgICByZXR1cm4gcGFyYW1zW3BhcmFtLmtleV0gPz8gcGFyYW0ua2V5XG4gICAgICAgIH0pXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtOiBzZWdtZW50S2V5LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdHlwZTogZHluYW1pY1BhcmFtVHlwZSxcbiAgICAgICAgLy8gVGhpcyB2YWx1ZSBhbHdheXMgaGFzIHRvIGJlIGEgc3RyaW5nLlxuICAgICAgICB0cmVlU2VnbWVudDogW3NlZ21lbnRLZXksIHZhbHVlLmpvaW4oJy8nKSwgZHluYW1pY1BhcmFtVHlwZV0sXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwYXJhbTogc2VnbWVudEtleSxcbiAgICAvLyBUaGUgdmFsdWUgdGhhdCBpcyBwYXNzZWQgdG8gdXNlciBjb2RlLlxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAvLyBUaGUgdmFsdWUgdGhhdCBpcyByZW5kZXJlZCBpbiB0aGUgcm91dGVyIHRyZWUuXG4gICAgdHJlZVNlZ21lbnQ6IFtcbiAgICAgIHNlZ21lbnRLZXksXG4gICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oJy8nKSA6IHZhbHVlLFxuICAgICAgZHluYW1pY1BhcmFtVHlwZSxcbiAgICBdLFxuICAgIHR5cGU6IGR5bmFtaWNQYXJhbVR5cGUsXG4gIH1cbn1cblxuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB1c2VkIHRvIG1hdGNoIHJvdXRlIHBhcmFtZXRlcnMuXG4gKiBNYXRjaGVzIGJvdGggc2luZ2xlIHBhcmFtZXRlcnMgYW5kIHBhcmFtZXRlciBncm91cHMuXG4gKiBFeGFtcGxlczpcbiAqICAgLSBgW1suLi5zbHVnXV1gIG1hdGNoZXMgcGFyYW1ldGVyIGdyb3VwIHdpdGgga2V5ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZVxuICogICAtIGBbLi4uc2x1Z11gIG1hdGNoZXMgcGFyYW1ldGVyIGdyb3VwIHdpdGgga2V5ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2VcbiAqICAgLSBgW1tmb29dXWAgbWF0Y2hlcyBwYXJhbWV0ZXIgd2l0aCBrZXkgJ2ZvbycsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlXG4gKiAgIC0gYFtiYXJdYCBtYXRjaGVzIHBhcmFtZXRlciB3aXRoIGtleSAnYmFyJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlXG4gKi9cbmV4cG9ydCBjb25zdCBQQVJBTUVURVJfUEFUVEVSTiA9IC9eKFteW10qKVxcWygoPzpcXFtbXlxcXV0qXFxdKXxbXlxcXV0rKVxcXSguKikkL1xuXG4vKipcbiAqIFBhcnNlcyBhIGdpdmVuIHBhcmFtZXRlciBmcm9tIGEgcm91dGUgdG8gYSBkYXRhIHN0cnVjdHVyZSB0aGF0IGNhbiBiZSB1c2VkXG4gKiB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldHJpemVkIHJvdXRlLlxuICogRXhhbXBsZXM6XG4gKiAgIC0gYFtbLi4uc2x1Z11dYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGBbLi4uc2x1Z11gIC0+IGB7IGtleTogJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogICAtIGBbW2Zvb11dYCAtPiBgeyBrZXk6ICdmb28nLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGBbYmFyXWAgLT4gYHsga2V5OiAnYmFyJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiAgIC0gYGZpenpgIC0+IGB7IGtleTogJ2ZpenonLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqIEBwYXJhbSBwYXJhbSAtIFRoZSBwYXJhbWV0ZXIgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHBhcmFtZXRlciBhcyBhIGRhdGEgc3RydWN0dXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYXJhbWV0ZXIocGFyYW06IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IHBhcmFtLm1hdGNoKFBBUkFNRVRFUl9QQVRURVJOKVxuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtKVxuICB9XG5cbiAgcmV0dXJuIHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihtYXRjaFsyXSlcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBtYXRjaGVkIHBhcmFtZXRlciBmcm9tIHRoZSBQQVJBTUVURVJfUEFUVEVSTiByZWdleCB0byBhIGRhdGEgc3RydWN0dXJlIHRoYXQgY2FuIGJlIHVzZWRcbiAqIHRvIGdlbmVyYXRlIHRoZSBwYXJhbWV0cml6ZWQgcm91dGUuXG4gKiBFeGFtcGxlczpcbiAqICAgLSBgWy4uLnNsdWddYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGAuLi5zbHVnYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqICAgLSBgW2Zvb11gIC0+IGB7IGtleTogJ2ZvbycsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlIH1gXG4gKiAgIC0gYGJhcmAgLT4gYHsga2V5OiAnYmFyJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiBAcGFyYW0gcGFyYW0gLSBUaGUgbWF0Y2hlZCBwYXJhbWV0ZXIgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHBhcmFtZXRlciBhcyBhIGRhdGEgc3RydWN0dXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtOiBzdHJpbmcpIHtcbiAgY29uc3Qgb3B0aW9uYWwgPSBwYXJhbS5zdGFydHNXaXRoKCdbJykgJiYgcGFyYW0uZW5kc1dpdGgoJ10nKVxuICBpZiAob3B0aW9uYWwpIHtcbiAgICBwYXJhbSA9IHBhcmFtLnNsaWNlKDEsIC0xKVxuICB9XG4gIGNvbnN0IHJlcGVhdCA9IHBhcmFtLnN0YXJ0c1dpdGgoJy4uLicpXG4gIGlmIChyZXBlYXQpIHtcbiAgICBwYXJhbSA9IHBhcmFtLnNsaWNlKDMpXG4gIH1cbiAgcmV0dXJuIHsga2V5OiBwYXJhbSwgcmVwZWF0LCBvcHRpb25hbCB9XG59XG4iXSwibmFtZXMiOlsiUEFSQU1FVEVSX1BBVFRFUk4iLCJnZXREeW5hbWljUGFyYW0iLCJwYXJzZU1hdGNoZWRQYXJhbWV0ZXIiLCJwYXJzZVBhcmFtZXRlciIsInBhcmFtcyIsInNlZ21lbnRLZXkiLCJkeW5hbWljUGFyYW1UeXBlIiwicGFnZVBhdGgiLCJmYWxsYmFja1JvdXRlUGFyYW1zIiwidmFsdWUiLCJoYXMiLCJnZXQiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJpIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiaXNDYXRjaGFsbCIsImlzT3B0aW9uYWxDYXRjaGFsbCIsInBhcmFtIiwidHlwZSIsInRyZWVTZWdtZW50Iiwic3BsaXQiLCJzbGljZSIsImZsYXRNYXAiLCJwYXRoU2VnbWVudCIsImtleSIsImpvaW4iLCJtYXRjaCIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwicmVwZWF0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js": /*!**********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, '').replace(/\\.json$/, '').split('/');\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== 'index' ? \"/\" + paths.slice(1).join('/') : '/';\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n} //# sourceMappingURL=get-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFvRGdCQTs7O2VBQUFBOzs7aURBcERvQjs4Q0FDSDsyQ0FDSDtBQWtEdkIsU0FBU0Esb0JBQ2RDLFFBQWdCLEVBQ2hCQyxPQUFnQjtRQUUwQkE7SUFBMUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsYUFBYSxFQUFFLEdBQUdILENBQUFBLHNCQUFBQSxRQUFRSSxVQUFBQSxLQUFVLE9BQWxCSixzQkFBc0IsQ0FBQztJQUNqRSxNQUFNSyxPQUF5QjtRQUM3Qk47UUFDQUksZUFBZUosYUFBYSxNQUFNQSxTQUFTTyxRQUFRLENBQUMsT0FBT0g7SUFDN0Q7SUFFQSxJQUFJRixZQUFZTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixLQUFLTixRQUFRLEVBQUVFLFdBQVc7UUFDdERJLEtBQUtOLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQkgsS0FBS04sUUFBUSxFQUFFRTtRQUNoREksS0FBS0osUUFBUSxHQUFHQTtJQUNsQjtJQUNBLElBQUlRLHVCQUF1QkosS0FBS04sUUFBUTtJQUV4QyxJQUNFTSxLQUFLTixRQUFRLENBQUNXLFVBQVUsQ0FBQyxtQkFDekJMLEtBQUtOLFFBQVEsQ0FBQ08sUUFBUSxDQUFDLFVBQ3ZCO1FBQ0EsTUFBTUssUUFBUU4sS0FBS04sUUFBUSxDQUN4QmEsT0FBTyxDQUFDLG9CQUFvQixJQUM1QkEsT0FBTyxDQUFDLFdBQVcsSUFDbkJDLEtBQUssQ0FBQztRQUVULE1BQU1DLFVBQVVILEtBQUssQ0FBQyxFQUFFO1FBQ3hCTixLQUFLUyxPQUFPLEdBQUdBO1FBQ2ZMLHVCQUNFRSxLQUFLLENBQUMsRUFBRSxLQUFLLFVBQVcsTUFBR0EsTUFBTUksS0FBSyxDQUFDLEdBQUdDLElBQUksQ0FBQyxPQUFTO1FBRTFELHNEQUFzRDtRQUN0RCxrREFBa0Q7UUFDbEQsSUFBSWhCLFFBQVFpQixTQUFTLEtBQUssTUFBTTtZQUM5QlosS0FBS04sUUFBUSxHQUFHVTtRQUNsQjtJQUNGO0lBRUEsNEVBQTRFO0lBQzVFLHlCQUF5QjtJQUN6QixJQUFJUCxNQUFNO1FBQ1IsSUFBSWdCLFNBQVNsQixRQUFRbUIsWUFBWSxHQUM3Qm5CLFFBQVFtQixZQUFZLENBQUNDLE9BQU8sQ0FBQ2YsS0FBS04sUUFBUSxJQUMxQ3NCLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JoQixLQUFLTixRQUFRLEVBQUVHLEtBQUtvQixPQUFPO1FBRW5EakIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNuQk47UUFBaEJiLEtBQUtOLFFBQVEsR0FBR21CLENBQUFBLG1CQUFBQSxPQUFPbkIsUUFBQUEsS0FBUSxPQUFmbUIsbUJBQW1CYixLQUFLTixRQUFRO1FBRWhELElBQUksQ0FBQ21CLE9BQU9NLGNBQWMsSUFBSW5CLEtBQUtTLE9BQU8sRUFBRTtZQUMxQ0ksU0FBU2xCLFFBQVFtQixZQUFZLEdBQ3pCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDWCx3QkFDN0JZLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JaLHNCQUFzQlAsS0FBS29CLE9BQU87WUFFMUQsSUFBSUosT0FBT00sY0FBYyxFQUFFO2dCQUN6Qm5CLEtBQUtrQixNQUFNLEdBQUdMLE9BQU9NLGNBQWM7WUFDckM7UUFDRjtJQUNGO0lBQ0EsT0FBT25CO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVMb2NhbGVQYXRoIH0gZnJvbSAnLi4vLi4vaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnXG5pbXBvcnQgeyByZW1vdmVQYXRoUHJlZml4IH0gZnJvbSAnLi9yZW1vdmUtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5pbXBvcnQgdHlwZSB7IEkxOE5Qcm92aWRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9saWIvaTE4bi1wcm92aWRlcidcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIHBhdGggaW4gY2FzZSB0aGUgcGF0aG5hbWUgaW5jbHVkZWQgaXQuXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIGJ1aWxkSWQgZm9yIHdoZW4gdGhlIHBhcnNlZCBVUkwgaXMgYSBkYXRhIFVSTC4gUGFyc2luZyBpdCBjYW4gYmVcbiAgICogZGlzYWJsZWQgd2l0aCB0aGUgYHBhcnNlRGF0YWAgb3B0aW9uLlxuICAgKi9cbiAgYnVpbGRJZD86IHN0cmluZ1xuICAvKipcbiAgICogSWYgdGhlcmUgd2FzIGEgbG9jYWxlIGluIHRoZSBwYXRobmFtZSwgdGhpcyB3aWxsIGhvbGQgaXRzIHZhbHVlLlxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgcHJvY2Vzc2VkIHBhdGhuYW1lIHdpdGhvdXQgYSBiYXNlIHBhdGgsIGxvY2FsZSwgb3IgZGF0YSBVUkwgZWxlbWVudHNcbiAgICogd2hlbiBwYXJzaW5nIGl0IGlzIGVuYWJsZWQuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gdGVsbGluZyBpZiB0aGUgcGF0aG5hbWUgaGFkIGEgdHJhaWxpbmdTbGFzaC4gVGhpcyBjYW4gYmUgb25seVxuICAgKiB0cnVlIGlmIHRyYWlsaW5nU2xhc2ggaXMgZW5hYmxlZC5cbiAgICovXG4gIHRyYWlsaW5nU2xhc2g/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZW4gcGFzc2VkIHRvIHRydWUsIHRoaXMgZnVuY3Rpb24gd2lsbCBhbHNvIHBhcnNlIE5leHRqcyBkYXRhIFVSTHMuXG4gICAqL1xuICBwYXJzZURhdGE/OiBib29sZWFuXG4gIC8qKlxuICAgKiBBIHBhcnRpYWwgb2YgdGhlIE5leHQuanMgY29uZmlndXJhdGlvbiB0byBwYXJzZSB0aGUgVVJMLlxuICAgKi9cbiAgbmV4dENvbmZpZz86IHtcbiAgICBiYXNlUGF0aD86IHN0cmluZ1xuICAgIGkxOG4/OiB7IGxvY2FsZXM/OiByZWFkb25seSBzdHJpbmdbXSB9IHwgbnVsbFxuICAgIHRyYWlsaW5nU2xhc2g/OiBib29sZWFuXG4gIH1cblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoaXMgbm9ybWFsaXplciB3aWxsIGJlIHVzZWQgdG8gZGV0ZWN0IHRoZSBsb2NhbGUgaW5zdGVhZCBvZlxuICAgKiB0aGUgZGVmYXVsdCBsb2NhbGUgZGV0ZWN0aW9uLlxuICAgKi9cbiAgaTE4blByb3ZpZGVyPzogSTE4TlByb3ZpZGVyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0UGF0aG5hbWVJbmZvKFxuICBwYXRobmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBPcHRpb25zXG4pOiBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgY29uc3QgeyBiYXNlUGF0aCwgaTE4biwgdHJhaWxpbmdTbGFzaCB9ID0gb3B0aW9ucy5uZXh0Q29uZmlnID8/IHt9XG4gIGNvbnN0IGluZm86IE5leHRQYXRobmFtZUluZm8gPSB7XG4gICAgcGF0aG5hbWUsXG4gICAgdHJhaWxpbmdTbGFzaDogcGF0aG5hbWUgIT09ICcvJyA/IHBhdGhuYW1lLmVuZHNXaXRoKCcvJykgOiB0cmFpbGluZ1NsYXNoLFxuICB9XG5cbiAgaWYgKGJhc2VQYXRoICYmIHBhdGhIYXNQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpKSB7XG4gICAgaW5mby5wYXRobmFtZSA9IHJlbW92ZVBhdGhQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpXG4gICAgaW5mby5iYXNlUGF0aCA9IGJhc2VQYXRoXG4gIH1cbiAgbGV0IHBhdGhuYW1lTm9EYXRhUHJlZml4ID0gaW5mby5wYXRobmFtZVxuXG4gIGlmIChcbiAgICBpbmZvLnBhdGhuYW1lLnN0YXJ0c1dpdGgoJy9fbmV4dC9kYXRhLycpICYmXG4gICAgaW5mby5wYXRobmFtZS5lbmRzV2l0aCgnLmpzb24nKVxuICApIHtcbiAgICBjb25zdCBwYXRocyA9IGluZm8ucGF0aG5hbWVcbiAgICAgIC5yZXBsYWNlKC9eXFwvX25leHRcXC9kYXRhXFwvLywgJycpXG4gICAgICAucmVwbGFjZSgvXFwuanNvbiQvLCAnJylcbiAgICAgIC5zcGxpdCgnLycpXG5cbiAgICBjb25zdCBidWlsZElkID0gcGF0aHNbMF1cbiAgICBpbmZvLmJ1aWxkSWQgPSBidWlsZElkXG4gICAgcGF0aG5hbWVOb0RhdGFQcmVmaXggPVxuICAgICAgcGF0aHNbMV0gIT09ICdpbmRleCcgPyBgLyR7cGF0aHMuc2xpY2UoMSkuam9pbignLycpfWAgOiAnLydcblxuICAgIC8vIHVwZGF0ZSBwYXRobmFtZSB3aXRoIG5vcm1hbGl6ZWQgaWYgZW5hYmxlZCBhbHRob3VnaFxuICAgIC8vIHdlIHVzZSBub3JtYWxpemVkIHRvIHBvcHVsYXRlIGxvY2FsZSBpbmZvIHN0aWxsXG4gICAgaWYgKG9wdGlvbnMucGFyc2VEYXRhID09PSB0cnVlKSB7XG4gICAgICBpbmZvLnBhdGhuYW1lID0gcGF0aG5hbWVOb0RhdGFQcmVmaXhcbiAgICB9XG4gIH1cblxuICAvLyBJZiBwcm92aWRlZCwgdXNlIHRoZSBsb2NhbGUgcm91dGUgbm9ybWFsaXplciB0byBkZXRlY3QgdGhlIGxvY2FsZSBpbnN0ZWFkXG4gIC8vIG9mIHRoZSBmdW5jdGlvbiBiZWxvdy5cbiAgaWYgKGkxOG4pIHtcbiAgICBsZXQgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShpbmZvLnBhdGhuYW1lKVxuICAgICAgOiBub3JtYWxpemVMb2NhbGVQYXRoKGluZm8ucGF0aG5hbWUsIGkxOG4ubG9jYWxlcylcblxuICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgaW5mby5wYXRobmFtZSA9IHJlc3VsdC5wYXRobmFtZSA/PyBpbmZvLnBhdGhuYW1lXG5cbiAgICBpZiAoIXJlc3VsdC5kZXRlY3RlZExvY2FsZSAmJiBpbmZvLmJ1aWxkSWQpIHtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShwYXRobmFtZU5vRGF0YVByZWZpeClcbiAgICAgICAgOiBub3JtYWxpemVMb2NhbGVQYXRoKHBhdGhuYW1lTm9EYXRhUHJlZml4LCBpMThuLmxvY2FsZXMpXG5cbiAgICAgIGlmIChyZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgaW5mby5sb2NhbGUgPSByZXN1bHQuZGV0ZWN0ZWRMb2NhbGVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluZm9cbn1cbiJdLCJuYW1lcyI6WyJnZXROZXh0UGF0aG5hbWVJbmZvIiwicGF0aG5hbWUiLCJvcHRpb25zIiwiYmFzZVBhdGgiLCJpMThuIiwidHJhaWxpbmdTbGFzaCIsIm5leHRDb25maWciLCJpbmZvIiwiZW5kc1dpdGgiLCJwYXRoSGFzUHJlZml4IiwicmVtb3ZlUGF0aFByZWZpeCIsInBhdGhuYW1lTm9EYXRhUHJlZml4Iiwic3RhcnRzV2l0aCIsInBhdGhzIiwicmVwbGFjZSIsInNwbGl0IiwiYnVpbGRJZCIsInNsaWNlIiwiam9pbiIsInBhcnNlRGF0YSIsInJlc3VsdCIsImkxOG5Qcm92aWRlciIsImFuYWx5emUiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwibG9jYWxlcyIsImxvY2FsZSIsImRldGVjdGVkTG9jYWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n// Note: The pattern [\\w-]+-Google captures all Google crawlers with \"-Google\" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)\n// as well as crawlers starting with \"Google-\" (e.g., Google-PageRenderer, Google-InspectionTool)\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFDN0csc0tBQXNLO0FBQ3RLLGtKQUFrSjtBQUNsSixpR0FBaUc7Ozs7OzBEQUNwRkE7OztlQUFBQTs7O0FBQU4sTUFBTUEseUJBQ1giLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaHRtbC1ib3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggY29udGFpbnMgdGhlIGJvdHMgdGhhdCB3ZSBuZWVkIHRvIGRvIGEgYmxvY2tpbmcgcmVuZGVyIGZvciBhbmQgY2FuJ3Qgc2FmZWx5IHN0cmVhbSB0aGUgcmVzcG9uc2Vcbi8vIGR1ZSB0byBob3cgdGhleSBwYXJzZSB0aGUgRE9NLiBGb3IgZXhhbXBsZSwgdGhleSBtaWdodCBleHBsaWNpdGx5IGNoZWNrIGZvciBtZXRhZGF0YSBpbiB0aGUgYGhlYWRgIHRhZywgc28gd2UgY2FuJ3Qgc3RyZWFtIG1ldGFkYXRhIHRhZ3MgYWZ0ZXIgdGhlIGBoZWFkYCB3YXMgc2VudC5cbi8vIE5vdGU6IFRoZSBwYXR0ZXJuIFtcXHctXSstR29vZ2xlIGNhcHR1cmVzIGFsbCBHb29nbGUgY3Jhd2xlcnMgd2l0aCBcIi1Hb29nbGVcIiBzdWZmaXggKGUuZy4sIE1lZGlhcGFydG5lcnMtR29vZ2xlLCBBZHNCb3QtR29vZ2xlLCBTdG9yZWJvdC1Hb29nbGUpXG4vLyBhcyB3ZWxsIGFzIGNyYXdsZXJzIHN0YXJ0aW5nIHdpdGggXCJHb29nbGUtXCIgKGUuZy4sIEdvb2dsZS1QYWdlUmVuZGVyZXIsIEdvb2dsZS1JbnNwZWN0aW9uVG9vbClcbmV4cG9ydCBjb25zdCBIVE1MX0xJTUlURURfQk9UX1VBX1JFID1cbiAgL1tcXHctXSstR29vZ2xlfEdvb2dsZS1bXFx3LV0rfENocm9tZS1MaWdodGhvdXNlfFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8cmVkZGl0Ym90fGlhX2FyY2hpdmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8YXBwbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxMaW5rZWRJbkJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xZZXRpfGdvb2dsZXdlYmxpZ2h0L2lcbiJdLCJuYW1lcyI6WyJIVE1MX0xJTUlURURfQk9UX1VBX1JFIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = \"/\" + interceptedRoute;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2FBLDBCQUEwQjtlQUExQkE7O0lBa0JHQyxtQ0FBbUM7ZUFBbkNBOztJQVhBQywwQkFBMEI7ZUFBMUJBOzs7c0NBVmlCO0FBRzFCLE1BQU1GLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0UsMkJBQTJCQyxJQUFZO0lBQ3JELHdDQUF3QztJQUN4QyxPQUNFQSxLQUNHQyxLQUFLLENBQUMsS0FDTkMsSUFBSSxDQUFDLENBQUNDLFVBQ0xOLDJCQUEyQkssSUFBSSxDQUFDLENBQUNFLElBQU1ELFFBQVFFLFVBQVUsQ0FBQ0QsU0FDdERFO0FBRVo7QUFFTyxTQUFTUixvQ0FBb0NFLElBQVk7SUFDOUQsSUFBSU8sbUJBQ0ZDLFFBQ0FDO0lBRUYsS0FBSyxNQUFNTixXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBTTtRQUNyQ08sU0FBU1gsMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNuRSxJQUFJSSxRQUFROztZQUNULENBQUNELG1CQUFtQkUsaUJBQWlCLEdBQUdULEtBQUtDLEtBQUssQ0FBQ08sUUFBUTtZQUM1RDtRQUNGO0lBQ0Y7SUFFQSxJQUFJLENBQUNELHFCQUFxQixDQUFDQyxVQUFVLENBQUNDLGtCQUFrQjtRQUN0RCxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUCxpQ0FBOEJWLE9BQUssc0ZBRGhDO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUVBTyxvQkFBb0JJLENBQUFBLEdBQUFBLFVBQUFBLGdCQUFBQSxFQUFpQkosbUJBQW1CLGlEQUFpRDs7SUFFekcsT0FBUUM7UUFDTixLQUFLO1lBQ0gsb0lBQW9JO1lBQ3BJLElBQUlELHNCQUFzQixLQUFLO2dCQUM3QkUsbUJBQW9CLE1BQUdBO1lBQ3pCLE9BQU87Z0JBQ0xBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQy9DO1lBQ0E7UUFDRixLQUFLO1lBQ0gsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUM3QixNQUFNLHFCQUVMLENBRkssSUFBSUcsTUFDUCxpQ0FBOEJWLE9BQUssaUVBRGhDOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFDQVMsbUJBQW1CRixrQkFDaEJOLEtBQUssQ0FBQyxLQUNOVyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0YsS0FBSztZQUNILGtJQUFrSTtZQUNsSUwsbUJBQW1CLE1BQU1BO1lBQ3pCO1FBQ0YsS0FBSztZQUNILGlJQUFpSTtZQUVqSSxNQUFNTSx5QkFBeUJSLGtCQUFrQk4sS0FBSyxDQUFDO1lBQ3ZELElBQUljLHVCQUF1QkMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3RDLE1BQU0scUJBRUwsQ0FGSyxJQUFJTixNQUNQLGlDQUE4QlYsT0FBSyxvRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBUyxtQkFBbUJNLHVCQUNoQkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUNWQyxNQUFNLENBQUNKLGtCQUNQSyxJQUFJLENBQUM7WUFDUjtRQUNGO1lBQ0UsTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUosTUFBTSxpQ0FBVjt1QkFBQTs0QkFBQTs4QkFBQTtZQUF3QztJQUNsRDtJQUVBLE9BQU87UUFBRUg7UUFBbUJFO0lBQWlCO0FBQy9DIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4vYXBwLXBhdGhzJ1xuXG4vLyBvcmRlciBtYXR0ZXJzIGhlcmUsIHRoZSBmaXJzdCBtYXRjaCB3aWxsIGJlIHVzZWRcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyA9IFtcbiAgJyguLikoLi4pJyxcbiAgJyguKScsXG4gICcoLi4pJyxcbiAgJyguLi4pJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgICApICE9PSB1bmRlZmluZWRcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocGF0aDogc3RyaW5nKSB7XG4gIGxldCBpbnRlcmNlcHRpbmdSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG1hcmtlcjogKHR5cGVvZiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUylbbnVtYmVyXSB8IHVuZGVmaW5lZCxcbiAgICBpbnRlcmNlcHRlZFJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLycpKSB7XG4gICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgIGlmIChtYXJrZXIpIHtcbiAgICAgIDtbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghaW50ZXJjZXB0aW5nUm91dGUgfHwgIW1hcmtlciB8fCAhaW50ZXJjZXB0ZWRSb3V0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmBcbiAgICApXG4gIH1cblxuICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcblxuICBzd2l0Y2ggKG1hcmtlcikge1xuICAgIGNhc2UgJyguKSc6XG4gICAgICAvLyAoLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIHdpdGggc2libGluZyByb3V0ZXMsIHNvIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlIHRvIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLiknOlxuICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSAoLikgaW5zdGVhZC5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4uKSc6XG4gICAgICAvLyAoLi4uKSB3aWxsIG1hdGNoIHRoZSByb3V0ZSBzZWdtZW50IGluIHRoZSByb290IGRpcmVjdG9yeSwgc28gd2UgbmVlZCB0byB1c2UgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pKC4uKSc6XG4gICAgICAvLyAoLi4pKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgdHdvIGxldmVscyB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3QgdHdvIHNlZ21lbnRzIG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcblxuICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJylcbiAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsIG9yIG9uZSBsZXZlbCB1cC5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNsaWNlKDAsIC0yKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpXG4gIH1cblxuICByZXR1cm4geyBpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZSB9XG59XG4iXSwibmFtZXMiOlsiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwicGF0aCIsInNwbGl0IiwiZmluZCIsInNlZ21lbnQiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwibm9ybWFsaXplQXBwUGF0aCIsInNsaWNlIiwiY29uY2F0Iiwiam9pbiIsInNwbGl0SW50ZXJjZXB0aW5nUm91dGUiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\n// This regex specifically matches \"Googlebot\" but NOT \"Mediapartners-Google\", \"AdsBot-Google\", etc.\nconst HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFVU0Esc0JBQXNCO2VBQXRCQSxVQUFBQSxzQkFBc0I7O0lBRmxCQyw2QkFBNkI7ZUFBN0JBOztJQWdCR0MsVUFBVTtlQUFWQTs7SUFKQUMsS0FBSztlQUFMQTs7O3NDQXBCdUI7QUFFdkMsbUVBQW1FO0FBQ25FLHlGQUF5RjtBQUN6Riw0RkFBNEY7QUFDNUYsb0dBQW9HO0FBQ3BHLE1BQU1DLDZCQUE2QjtBQUU1QixNQUFNSCxnQ0FBZ0NELFVBQUFBLHNCQUFzQixDQUFDSyxNQUFNO0FBSTFFLFNBQVNDLFdBQVdDLFNBQWlCO0lBQ25DLE9BQU9ILDJCQUEyQkksSUFBSSxDQUFDRDtBQUN6QztBQUVBLFNBQVNFLG1CQUFtQkYsU0FBaUI7SUFDM0MsT0FBT1AsVUFBQUEsc0JBQXNCLENBQUNRLElBQUksQ0FBQ0Q7QUFDckM7QUFFTyxTQUFTSixNQUFNSSxTQUFpQjtJQUNyQyxPQUFPRCxXQUFXQyxjQUFjRSxtQkFBbUJGO0FBQ3JEO0FBRU8sU0FBU0wsV0FBV0ssU0FBaUI7SUFDMUMsSUFBSUQsV0FBV0MsWUFBWTtRQUN6QixPQUFPO0lBQ1Q7SUFDQSxJQUFJRSxtQkFBbUJGLFlBQVk7UUFDakMsT0FBTztJQUNUO0lBQ0EsT0FBT0c7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSB9IGZyb20gJy4vaHRtbC1ib3RzJ1xuXG4vLyBCb3QgY3Jhd2xlciB0aGF0IHdpbGwgc3BpbiB1cCBhIGhlYWRsZXNzIGJyb3dzZXIgYW5kIGV4ZWN1dGUgSlMuXG4vLyBPbmx5IHRoZSBtYWluIEdvb2dsZWJvdCBzZWFyY2ggY3Jhd2xlciBleGVjdXRlcyBKYXZhU2NyaXB0LCBub3Qgb3RoZXIgR29vZ2xlIGNyYXdsZXJzLlxuLy8geC1yZWY6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3NlYXJjaC9kb2NzL2NyYXdsaW5nLWluZGV4aW5nL2dvb2dsZS1jb21tb24tY3Jhd2xlcnNcbi8vIFRoaXMgcmVnZXggc3BlY2lmaWNhbGx5IG1hdGNoZXMgXCJHb29nbGVib3RcIiBidXQgTk9UIFwiTWVkaWFwYXJ0bmVycy1Hb29nbGVcIiwgXCJBZHNCb3QtR29vZ2xlXCIsIGV0Yy5cbmNvbnN0IEhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFID0gL0dvb2dsZWJvdCg/IS0pfEdvb2dsZWJvdCQvaVxuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkcgPSBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnNvdXJjZVxuXG5leHBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH1cblxuZnVuY3Rpb24gaXNEb21Cb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUudGVzdCh1c2VyQWdlbnQpXG59XG5cbmZ1bmN0aW9uIGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm90KHVzZXJBZ2VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0RvbUJvdFVBKHVzZXJBZ2VudCkgfHwgaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdFR5cGUodXNlckFnZW50OiBzdHJpbmcpOiAnZG9tJyB8ICdodG1sJyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc0RvbUJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2RvbSdcbiAgfVxuICBpZiAoaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2h0bWwnXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiLCJIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyIsImdldEJvdFR5cGUiLCJpc0JvdCIsIkhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFIiwic291cmNlIiwiaXNEb21Cb3RVQSIsInVzZXJBZ2VudCIsInRlc3QiLCJpc0h0bWxMaW1pdGVkQm90VUEiLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n} //# sourceMappingURL=parse-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGEgcGF0aCB0aGlzIGZ1bmN0aW9uIHdpbGwgZmluZCB0aGUgcGF0aG5hbWUsIHF1ZXJ5IGFuZCBoYXNoIGFuZCByZXR1cm5cbiAqIHRoZW0uIFRoaXMgaXMgdXNlZnVsIHRvIHBhcnNlIGZ1bGwgcGF0aHMgb24gdGhlIGNsaWVudCBzaWRlLlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHBhcnNlIGUuZy4gL2Zvby9iYXI/aWQ9MSNoYXNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpXG4gIGNvbnN0IHF1ZXJ5SW5kZXggPSBwYXRoLmluZGV4T2YoJz8nKVxuICBjb25zdCBoYXNRdWVyeSA9IHF1ZXJ5SW5kZXggPiAtMSAmJiAoaGFzaEluZGV4IDwgMCB8fCBxdWVyeUluZGV4IDwgaGFzaEluZGV4KVxuXG4gIGlmIChoYXNRdWVyeSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXRobmFtZTogcGF0aC5zdWJzdHJpbmcoMCwgaGFzUXVlcnkgPyBxdWVyeUluZGV4IDogaGFzaEluZGV4KSxcbiAgICAgIHF1ZXJ5OiBoYXNRdWVyeVxuICAgICAgICA/IHBhdGguc3Vic3RyaW5nKHF1ZXJ5SW5kZXgsIGhhc2hJbmRleCA+IC0xID8gaGFzaEluZGV4IDogdW5kZWZpbmVkKVxuICAgICAgICA6ICcnLFxuICAgICAgaGFzaDogaGFzaEluZGV4ID4gLTEgPyBwYXRoLnNsaWNlKGhhc2hJbmRleCkgOiAnJyxcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBwYXRobmFtZTogcGF0aCwgcXVlcnk6ICcnLCBoYXNoOiAnJyB9XG59XG4iXSwibmFtZXMiOlsicGFyc2VQYXRoIiwicGF0aCIsImhhc2hJbmRleCIsImluZGV4T2YiLCJxdWVyeUluZGV4IiwiaGFzUXVlcnkiLCJwYXRobmFtZSIsInN1YnN0cmluZyIsInF1ZXJ5IiwidW5kZWZpbmVkIiwiaGFzaCIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseRelativeUrl\", ({\n enumerable: true,\n get: function() {\n return parseRelativeUrl;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _querystring = __webpack_require__(/*! ./querystring */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nfunction parseRelativeUrl(url, base, parseQuery) {\n if (parseQuery === void 0) parseQuery = true;\n const globalBase = new URL( true ? 'http://n' : 0);\n const resolvedBase = base ? new URL(base, globalBase) : url.startsWith('.') ? new URL( true ? 'http://n' : 0) : globalBase;\n const { pathname, searchParams, search, hash, href, origin } = new URL(url, resolvedBase);\n if (origin !== globalBase.origin) {\n throw Object.defineProperty(new Error(\"invariant: invalid relative URL, router received \" + url), \"__NEXT_ERROR_CODE\", {\n value: \"E159\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n pathname,\n query: parseQuery ? (0, _querystring.searchParamsToUrlQuery)(searchParams) : undefined,\n search,\n hash,\n href: href.slice(origin.length),\n // We don't know for relative URLs at this point since we set a custom, internal\n // base that isn't surfaced to users.\n slashes: undefined\n };\n} //# sourceMappingURL=parse-relative-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQTZCZ0JBOzs7ZUFBQUE7OzttQ0E1QmtCO3lDQUNLO0FBMkJoQyxTQUFTQSxpQkFDZEMsR0FBVyxFQUNYQyxJQUFhLEVBQ2JDLFVBQWlCO0lBQWpCQSxJQUFBQSxlQUFBQSxLQUFBQSxHQUFBQSxhQUFhO0lBRWIsTUFBTUMsYUFBYSxJQUFJQyxJQUNyQixLQUE2QixHQUFHLGFBQWFFLENBQUFBO0lBRy9DLE1BQU1DLGVBQWVOLE9BQ2pCLElBQUlHLElBQUlILE1BQU1FLGNBQ2RILElBQUlRLFVBQVUsQ0FBQyxPQUNiLElBQUlKLElBQ0YsS0FBNkIsR0FBRyxhQUFhQyxDQUFvQixJQUVuRUY7SUFFTixNQUFNLEVBQUVRLFFBQVEsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUosSUFBSSxFQUFFSyxNQUFNLEVBQUUsR0FBRyxJQUFJWCxJQUNqRUosS0FDQU87SUFHRixJQUFJUSxXQUFXWixXQUFXWSxNQUFNLEVBQUU7UUFDaEMsTUFBTSxxQkFBb0UsQ0FBcEUsSUFBSUMsTUFBTyxzREFBbURoQixNQUE5RDttQkFBQTt3QkFBQTswQkFBQTtRQUFtRTtJQUMzRTtJQUVBLE9BQU87UUFDTFc7UUFDQU0sT0FBT2YsYUFBYWdCLENBQUFBLEdBQUFBLGFBQUFBLHNCQUFBQSxFQUF1Qk4sZ0JBQWdCTztRQUMzRE47UUFDQUM7UUFDQUosTUFBTUEsS0FBS1UsS0FBSyxDQUFDTCxPQUFPTSxNQUFNO1FBQzlCLGdGQUFnRjtRQUNoRixxQ0FBcUM7UUFDckNDLFNBQVNIO0lBQ1g7QUFDRiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgZ2V0TG9jYXRpb25PcmlnaW4gfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkgfSBmcm9tICcuL3F1ZXJ5c3RyaW5nJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFJlbGF0aXZlVXJsIHtcbiAgaGFzaDogc3RyaW5nXG4gIGhyZWY6IHN0cmluZ1xuICBwYXRobmFtZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBzZWFyY2g6IHN0cmluZ1xuICBzbGFzaGVzOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBQYXJzZXMgcGF0aC1yZWxhdGl2ZSB1cmxzIChlLmcuIGAvaGVsbG8vd29ybGQ/Zm9vPWJhcmApLiBJZiB1cmwgaXNuJ3QgcGF0aC1yZWxhdGl2ZVxuICogKGUuZy4gYC4vaGVsbG9gKSB0aGVuIGF0IGxlYXN0IGJhc2UgbXVzdCBiZS5cbiAqIEFic29sdXRlIHVybHMgYXJlIHJlamVjdGVkIHdpdGggb25lIGV4Y2VwdGlvbiwgaW4gdGhlIGJyb3dzZXIsIGFic29sdXRlIHVybHMgdGhhdCBhcmUgb25cbiAqIHRoZSBjdXJyZW50IG9yaWdpbiB3aWxsIGJlIHBhcnNlZCBhcyByZWxhdGl2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybChcbiAgdXJsOiBzdHJpbmcsXG4gIGJhc2U/OiBzdHJpbmcsXG4gIHBhcnNlUXVlcnk/OiB0cnVlXG4pOiBQYXJzZWRSZWxhdGl2ZVVybFxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVVcmwoXG4gIHVybDogc3RyaW5nLFxuICBiYXNlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHBhcnNlUXVlcnk6IGZhbHNlXG4pOiBPbWl0PFBhcnNlZFJlbGF0aXZlVXJsLCAncXVlcnknPlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVVcmwoXG4gIHVybDogc3RyaW5nLFxuICBiYXNlPzogc3RyaW5nLFxuICBwYXJzZVF1ZXJ5ID0gdHJ1ZVxuKTogUGFyc2VkUmVsYXRpdmVVcmwgfCBPbWl0PFBhcnNlZFJlbGF0aXZlVXJsLCAncXVlcnknPiB7XG4gIGNvbnN0IGdsb2JhbEJhc2UgPSBuZXcgVVJMKFxuICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gJ2h0dHA6Ly9uJyA6IGdldExvY2F0aW9uT3JpZ2luKClcbiAgKVxuXG4gIGNvbnN0IHJlc29sdmVkQmFzZSA9IGJhc2VcbiAgICA/IG5ldyBVUkwoYmFzZSwgZ2xvYmFsQmFzZSlcbiAgICA6IHVybC5zdGFydHNXaXRoKCcuJylcbiAgICAgID8gbmV3IFVSTChcbiAgICAgICAgICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgICAgICApXG4gICAgICA6IGdsb2JhbEJhc2VcblxuICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIHNlYXJjaCwgaGFzaCwgaHJlZiwgb3JpZ2luIH0gPSBuZXcgVVJMKFxuICAgIHVybCxcbiAgICByZXNvbHZlZEJhc2VcbiAgKVxuXG4gIGlmIChvcmlnaW4gIT09IGdsb2JhbEJhc2Uub3JpZ2luKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhcmlhbnQ6IGludmFsaWQgcmVsYXRpdmUgVVJMLCByb3V0ZXIgcmVjZWl2ZWQgJHt1cmx9YClcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGF0aG5hbWUsXG4gICAgcXVlcnk6IHBhcnNlUXVlcnkgPyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHNlYXJjaFBhcmFtcykgOiB1bmRlZmluZWQsXG4gICAgc2VhcmNoLFxuICAgIGhhc2gsXG4gICAgaHJlZjogaHJlZi5zbGljZShvcmlnaW4ubGVuZ3RoKSxcbiAgICAvLyBXZSBkb24ndCBrbm93IGZvciByZWxhdGl2ZSBVUkxzIGF0IHRoaXMgcG9pbnQgc2luY2Ugd2Ugc2V0IGEgY3VzdG9tLCBpbnRlcm5hbFxuICAgIC8vIGJhc2UgdGhhdCBpc24ndCBzdXJmYWNlZCB0byB1c2Vycy5cbiAgICBzbGFzaGVzOiB1bmRlZmluZWQsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVJlbGF0aXZlVXJsIiwidXJsIiwiYmFzZSIsInBhcnNlUXVlcnkiLCJnbG9iYWxCYXNlIiwiVVJMIiwid2luZG93IiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZEJhc2UiLCJzdGFydHNXaXRoIiwibG9jYXRpb24iLCJocmVmIiwicGF0aG5hbWUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJoYXNoIiwib3JpZ2luIiwiRXJyb3IiLCJxdWVyeSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1bmRlZmluZWQiLCJzbGljZSIsImxlbmd0aCIsInNsYXNoZXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-url.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/parse-url.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseUrl\", ({\n enumerable: true,\n get: function() {\n return parseUrl;\n }\n}));\nconst _querystring = __webpack_require__(/*! ./querystring */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _parserelativeurl = __webpack_require__(/*! ./parse-relative-url */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nfunction parseUrl(url) {\n if (url.startsWith('/')) {\n return (0, _parserelativeurl.parseRelativeUrl)(url);\n }\n const parsedURL = new URL(url);\n return {\n hash: parsedURL.hash,\n hostname: parsedURL.hostname,\n href: parsedURL.href,\n pathname: parsedURL.pathname,\n port: parsedURL.port,\n protocol: parsedURL.protocol,\n query: (0, _querystring.searchParamsToUrlQuery)(parsedURL.searchParams),\n search: parsedURL.search,\n slashes: parsedURL.href.slice(parsedURL.protocol.length, parsedURL.protocol.length + 2) === '//'\n };\n} //# sourceMappingURL=parse-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQWlCZ0JBOzs7ZUFBQUE7Ozt5Q0FmdUI7OENBQ047QUFjMUIsU0FBU0EsU0FBU0MsR0FBVztJQUNsQyxJQUFJQSxJQUFJQyxVQUFVLENBQUMsTUFBTTtRQUN2QixPQUFPQyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCRjtJQUMxQjtJQUVBLE1BQU1HLFlBQVksSUFBSUMsSUFBSUo7SUFDMUIsT0FBTztRQUNMSyxNQUFNRixVQUFVRSxJQUFJO1FBQ3BCQyxVQUFVSCxVQUFVRyxRQUFRO1FBQzVCQyxNQUFNSixVQUFVSSxJQUFJO1FBQ3BCQyxVQUFVTCxVQUFVSyxRQUFRO1FBQzVCQyxNQUFNTixVQUFVTSxJQUFJO1FBQ3BCQyxVQUFVUCxVQUFVTyxRQUFRO1FBQzVCQyxPQUFPQyxDQUFBQSxHQUFBQSxhQUFBQSxzQkFBQUEsRUFBdUJULFVBQVVVLFlBQVk7UUFDcERDLFFBQVFYLFVBQVVXLE1BQU07UUFDeEJDLFNBQ0VaLFVBQVVJLElBQUksQ0FBQ1MsS0FBSyxDQUNsQmIsVUFBVU8sUUFBUSxDQUFDTyxNQUFNLEVBQ3pCZCxVQUFVTyxRQUFRLENBQUNPLE1BQU0sR0FBRyxPQUN4QjtJQUNWO0FBQ0YiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcblxuaW1wb3J0IHsgc2VhcmNoUGFyYW1zVG9VcmxRdWVyeSB9IGZyb20gJy4vcXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBwYXJzZVJlbGF0aXZlVXJsIH0gZnJvbSAnLi9wYXJzZS1yZWxhdGl2ZS11cmwnXG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVXJsIHtcbiAgaGFzaDogc3RyaW5nXG4gIGhvc3RuYW1lPzogc3RyaW5nIHwgbnVsbFxuICBocmVmOiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xuICBwb3J0Pzogc3RyaW5nIHwgbnVsbFxuICBwcm90b2NvbD86IHN0cmluZyB8IG51bGxcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIHNlYXJjaDogc3RyaW5nXG4gIHNsYXNoZXM6IGJvb2xlYW4gfCB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVXJsKHVybDogc3RyaW5nKTogUGFyc2VkVXJsIHtcbiAgaWYgKHVybC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gcGFyc2VSZWxhdGl2ZVVybCh1cmwpXG4gIH1cblxuICBjb25zdCBwYXJzZWRVUkwgPSBuZXcgVVJMKHVybClcbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBwYXJzZWRVUkwuaGFzaCxcbiAgICBob3N0bmFtZTogcGFyc2VkVVJMLmhvc3RuYW1lLFxuICAgIGhyZWY6IHBhcnNlZFVSTC5ocmVmLFxuICAgIHBhdGhuYW1lOiBwYXJzZWRVUkwucGF0aG5hbWUsXG4gICAgcG9ydDogcGFyc2VkVVJMLnBvcnQsXG4gICAgcHJvdG9jb2w6IHBhcnNlZFVSTC5wcm90b2NvbCxcbiAgICBxdWVyeTogc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShwYXJzZWRVUkwuc2VhcmNoUGFyYW1zKSxcbiAgICBzZWFyY2g6IHBhcnNlZFVSTC5zZWFyY2gsXG4gICAgc2xhc2hlczpcbiAgICAgIHBhcnNlZFVSTC5ocmVmLnNsaWNlKFxuICAgICAgICBwYXJzZWRVUkwucHJvdG9jb2wubGVuZ3RoLFxuICAgICAgICBwYXJzZWRVUkwucHJvdG9jb2wubGVuZ3RoICsgMlxuICAgICAgKSA9PT0gJy8vJyxcbiAgfVxufVxuIl0sIm5hbWVzIjpbInBhcnNlVXJsIiwidXJsIiwic3RhcnRzV2l0aCIsInBhcnNlUmVsYXRpdmVVcmwiLCJwYXJzZWRVUkwiLCJVUkwiLCJoYXNoIiwiaG9zdG5hbWUiLCJocmVmIiwicGF0aG5hbWUiLCJwb3J0IiwicHJvdG9jb2wiLCJxdWVyeSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJzbGFzaGVzIiwic2xpY2UiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-url.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n} //# sourceMappingURL=path-has-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQVNnQkE7OztlQUFBQTs7O3VDQVRVO0FBU25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBYztJQUN4RCxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSDtJQUMvQixPQUFPRSxhQUFhRCxVQUFVQyxTQUFTRSxVQUFVLENBQUNILFNBQVM7QUFDN0QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBwYXRoIHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gcHJlZml4LiBJdCBlbnN1cmVzIGl0IG1hdGNoZXNcbiAqIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzLiBlLmcuIHByZWZpeCAvZG9jcyBzaG91bGQgcmVwbGFjZVxuICogZm9yIC9kb2NzLCAvZG9jcy8sIC9kb2NzL2EgYnV0IG5vdCAvZG9jc3NzXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBjaGVjayBhZ2FpbnN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aEhhc1ByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gcGF0aG5hbWUgPT09IHByZWZpeCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHByZWZpeCArICcvJylcbn1cbiJdLCJuYW1lcyI6WyJwYXRoSGFzUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhuYW1lIiwicGFyc2VQYXRoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-match.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/path-match.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getPathMatch\", ({\n enumerable: true,\n get: function() {\n return getPathMatch;\n }\n}));\nconst _pathtoregexp = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\");\nfunction getPathMatch(path, options) {\n const keys = [];\n const regexp = (0, _pathtoregexp.pathToRegexp)(path, keys, {\n delimiter: '/',\n sensitive: typeof (options == null ? void 0 : options.sensitive) === 'boolean' ? options.sensitive : false,\n strict: options == null ? void 0 : options.strict\n });\n const matcher = (0, _pathtoregexp.regexpToFunction)((options == null ? void 0 : options.regexModifier) ? new RegExp(options.regexModifier(regexp.source), regexp.flags) : regexp, keys);\n /**\n * A matcher function that will check if a given pathname matches the path\n * given in the builder function. When the path does not match it will return\n * `false` but if it does it will return an object with the matched params\n * merged with the params provided in the second argument.\n */ return (pathname, params)=>{\n // If no pathname is provided it's not a match.\n if (typeof pathname !== 'string') return false;\n const match = matcher(pathname);\n // If the path did not match `false` will be returned.\n if (!match) return false;\n /**\n * If unnamed params are not allowed they must be removed from\n * the matched parameters. path-to-regexp uses \"string\" for named and\n * \"number\" for unnamed parameters.\n */ if (options == null ? void 0 : options.removeUnnamedParams) {\n for (const key of keys){\n if (typeof key.name === 'number') {\n delete match.params[key.name];\n }\n }\n }\n return {\n ...params,\n ...match.params\n };\n };\n} //# sourceMappingURL=path-match.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtbWF0Y2guanMiLCJtYXBwaW5ncyI6Ijs7OztnREFxQ2dCQTs7O2VBQUFBOzs7MENBcENpQjtBQW9DMUIsU0FBU0EsYUFBYUMsSUFBWSxFQUFFQyxPQUFpQjtJQUMxRCxNQUFNQyxPQUFjLEVBQUU7SUFDdEIsTUFBTUMsU0FBU0MsQ0FBQUEsR0FBQUEsY0FBQUEsWUFBQUEsRUFBYUosTUFBTUUsTUFBTTtRQUN0Q0csV0FBVztRQUNYQyxXQUNFLE9BQU9MLFlBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNLLFNBQUFBLE1BQWMsWUFBWUwsUUFBUUssU0FBUyxHQUFHO1FBQ2hFQyxNQUFNLEVBQUVOLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNNLE1BQU07SUFDekI7SUFFQSxNQUFNQyxVQUFVQyxDQUFBQSxHQUFBQSxjQUFBQSxnQkFBQUEsRUFDZFIsQ0FBQUEsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU1MsYUFBQUEsSUFDTCxJQUFJQyxPQUFPVixRQUFRUyxhQUFhLENBQUNQLE9BQU9TLE1BQU0sR0FBR1QsT0FBT1UsS0FBSyxJQUM3RFYsUUFDSkQ7SUFHRjs7Ozs7R0FLQyxHQUNELE9BQU8sQ0FBQ1ksVUFBVUM7UUFDaEIsK0NBQStDO1FBQy9DLElBQUksT0FBT0QsYUFBYSxVQUFVLE9BQU87UUFFekMsTUFBTUUsUUFBUVIsUUFBUU07UUFFdEIsc0RBQXNEO1FBQ3RELElBQUksQ0FBQ0UsT0FBTyxPQUFPO1FBRW5COzs7O0tBSUMsR0FDRCxJQUFJZixXQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxRQUFTZ0IsbUJBQW1CLEVBQUU7WUFDaEMsS0FBSyxNQUFNQyxPQUFPaEIsS0FBTTtnQkFDdEIsSUFBSSxPQUFPZ0IsSUFBSUMsSUFBSSxLQUFLLFVBQVU7b0JBQ2hDLE9BQU9ILE1BQU1ELE1BQU0sQ0FBQ0csSUFBSUMsSUFBSSxDQUFDO2dCQUMvQjtZQUNGO1FBQ0Y7UUFFQSxPQUFPO1lBQUUsR0FBR0osTUFBTTtZQUFFLEdBQUdDLE1BQU1ELE1BQU07UUFBQztJQUN0QztBQUNGIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtbWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBLZXkgfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHAnXG5pbXBvcnQgeyByZWdleHBUb0Z1bmN0aW9uIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwJ1xuaW1wb3J0IHsgcGF0aFRvUmVnZXhwIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwJ1xuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIHRyYW5zZm9ybWVyIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSByZWdleHAgZ2VuZXJhdGVkXG4gICAqIGZyb20gdGhlIHByb3ZpZGVkIHBhdGggYW5kIHBhdGgtdG8tcmVnZXhwLlxuICAgKi9cbiAgcmVnZXhNb2RpZmllcj86IChyZWdleDogc3RyaW5nKSA9PiBzdHJpbmdcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSB0aGUgZnVuY3Rpb24gd2lsbCByZW1vdmUgYWxsIHVubmFtZWQgcGFyYW1ldGVyc1xuICAgKiBmcm9tIHRoZSBtYXRjaGVkIHBhcmFtZXRlcnMuXG4gICAqL1xuICByZW1vdmVVbm5hbWVkUGFyYW1zPzogYm9vbGVhblxuICAvKipcbiAgICogV2hlbiB0cnVlIHRoZSByZWdleHAgd29uJ3QgYWxsb3cgYW4gb3B0aW9uYWwgdHJhaWxpbmcgZGVsaW1pdGVyXG4gICAqIHRvIG1hdGNoLlxuICAgKi9cbiAgc3RyaWN0PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUgdGhlIG1hdGNoZXIgd2lsbCBiZSBjYXNlLXNlbnNpdGl2ZSwgZGVmYXVsdHMgdG8gZmFsc2VcbiAgICovXG4gIHNlbnNpdGl2ZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgUGF0Y2hNYXRjaGVyID0gKFxuICBwYXRobmFtZTogc3RyaW5nLFxuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4pID0+IFJlY29yZDxzdHJpbmcsIGFueT4gfCBmYWxzZVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHBhdGggbWF0Y2hlciBmdW5jdGlvbiBmb3IgYSBnaXZlbiBwYXRoIGFuZCBvcHRpb25zIGJhc2VkIG9uXG4gKiBwYXRoLXRvLXJlZ2V4cC4gQnkgZGVmYXVsdCB0aGUgbWF0Y2ggd2lsbCBiZSBjYXNlIGluc2Vuc2l0aXZlLCBub24gc3RyaWN0XG4gKiBhbmQgZGVsaW1pdGVkIGJ5IGAvYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdGhNYXRjaChwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKTogUGF0Y2hNYXRjaGVyIHtcbiAgY29uc3Qga2V5czogS2V5W10gPSBbXVxuICBjb25zdCByZWdleHAgPSBwYXRoVG9SZWdleHAocGF0aCwga2V5cywge1xuICAgIGRlbGltaXRlcjogJy8nLFxuICAgIHNlbnNpdGl2ZTpcbiAgICAgIHR5cGVvZiBvcHRpb25zPy5zZW5zaXRpdmUgPT09ICdib29sZWFuJyA/IG9wdGlvbnMuc2Vuc2l0aXZlIDogZmFsc2UsXG4gICAgc3RyaWN0OiBvcHRpb25zPy5zdHJpY3QsXG4gIH0pXG5cbiAgY29uc3QgbWF0Y2hlciA9IHJlZ2V4cFRvRnVuY3Rpb248UmVjb3JkPHN0cmluZywgYW55Pj4oXG4gICAgb3B0aW9ucz8ucmVnZXhNb2RpZmllclxuICAgICAgPyBuZXcgUmVnRXhwKG9wdGlvbnMucmVnZXhNb2RpZmllcihyZWdleHAuc291cmNlKSwgcmVnZXhwLmZsYWdzKVxuICAgICAgOiByZWdleHAsXG4gICAga2V5c1xuICApXG5cbiAgLyoqXG4gICAqIEEgbWF0Y2hlciBmdW5jdGlvbiB0aGF0IHdpbGwgY2hlY2sgaWYgYSBnaXZlbiBwYXRobmFtZSBtYXRjaGVzIHRoZSBwYXRoXG4gICAqIGdpdmVuIGluIHRoZSBidWlsZGVyIGZ1bmN0aW9uLiBXaGVuIHRoZSBwYXRoIGRvZXMgbm90IG1hdGNoIGl0IHdpbGwgcmV0dXJuXG4gICAqIGBmYWxzZWAgYnV0IGlmIGl0IGRvZXMgaXQgd2lsbCByZXR1cm4gYW4gb2JqZWN0IHdpdGggdGhlIG1hdGNoZWQgcGFyYW1zXG4gICAqIG1lcmdlZCB3aXRoIHRoZSBwYXJhbXMgcHJvdmlkZWQgaW4gdGhlIHNlY29uZCBhcmd1bWVudC5cbiAgICovXG4gIHJldHVybiAocGF0aG5hbWUsIHBhcmFtcykgPT4ge1xuICAgIC8vIElmIG5vIHBhdGhuYW1lIGlzIHByb3ZpZGVkIGl0J3Mgbm90IGEgbWF0Y2guXG4gICAgaWYgKHR5cGVvZiBwYXRobmFtZSAhPT0gJ3N0cmluZycpIHJldHVybiBmYWxzZVxuXG4gICAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyKHBhdGhuYW1lKVxuXG4gICAgLy8gSWYgdGhlIHBhdGggZGlkIG5vdCBtYXRjaCBgZmFsc2VgIHdpbGwgYmUgcmV0dXJuZWQuXG4gICAgaWYgKCFtYXRjaCkgcmV0dXJuIGZhbHNlXG5cbiAgICAvKipcbiAgICAgKiBJZiB1bm5hbWVkIHBhcmFtcyBhcmUgbm90IGFsbG93ZWQgdGhleSBtdXN0IGJlIHJlbW92ZWQgZnJvbVxuICAgICAqIHRoZSBtYXRjaGVkIHBhcmFtZXRlcnMuIHBhdGgtdG8tcmVnZXhwIHVzZXMgXCJzdHJpbmdcIiBmb3IgbmFtZWQgYW5kXG4gICAgICogXCJudW1iZXJcIiBmb3IgdW5uYW1lZCBwYXJhbWV0ZXJzLlxuICAgICAqL1xuICAgIGlmIChvcHRpb25zPy5yZW1vdmVVbm5hbWVkUGFyYW1zKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgIGlmICh0eXBlb2Yga2V5Lm5hbWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgZGVsZXRlIG1hdGNoLnBhcmFtc1trZXkubmFtZV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IC4uLnBhcmFtcywgLi4ubWF0Y2gucGFyYW1zIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldFBhdGhNYXRjaCIsInBhdGgiLCJvcHRpb25zIiwia2V5cyIsInJlZ2V4cCIsInBhdGhUb1JlZ2V4cCIsImRlbGltaXRlciIsInNlbnNpdGl2ZSIsInN0cmljdCIsIm1hdGNoZXIiLCJyZWdleHBUb0Z1bmN0aW9uIiwicmVnZXhNb2RpZmllciIsIlJlZ0V4cCIsInNvdXJjZSIsImZsYWdzIiwicGF0aG5hbWUiLCJwYXJhbXMiLCJtYXRjaCIsInJlbW92ZVVubmFtZWRQYXJhbXMiLCJrZXkiLCJuYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-match.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/prepare-destination.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/prepare-destination.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n compileNonPath: function() {\n return compileNonPath;\n },\n matchHas: function() {\n return matchHas;\n },\n parseDestination: function() {\n return parseDestination;\n },\n prepareDestination: function() {\n return prepareDestination;\n }\n});\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _parseurl = __webpack_require__(/*! ./parse-url */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-url.js\");\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _getcookieparser = __webpack_require__(/*! ../../../../server/api-utils/get-cookie-parser */ \"(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js\");\nconst _routematchutils = __webpack_require__(/*! ./route-match-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js\");\n/**\n * Ensure only a-zA-Z are used for param names for proper interpolating\n * with path-to-regexp\n */ function getSafeParamName(paramName) {\n let newParamName = '';\n for(let i = 0; i < paramName.length; i++){\n const charCode = paramName.charCodeAt(i);\n if (charCode > 64 && charCode < 91 || // A-Z\n charCode > 96 && charCode < 123 // a-z\n ) {\n newParamName += paramName[i];\n }\n }\n return newParamName;\n}\nfunction escapeSegment(str, segmentName) {\n return str.replace(new RegExp(\":\" + (0, _escaperegexp.escapeStringRegexp)(segmentName), 'g'), \"__ESC_COLON_\" + segmentName);\n}\nfunction unescapeSegments(str) {\n return str.replace(/__ESC_COLON_/gi, ':');\n}\nfunction matchHas(req, query, has, missing) {\n if (has === void 0) has = [];\n if (missing === void 0) missing = [];\n const params = {};\n const hasMatch = (hasItem)=>{\n let value;\n let key = hasItem.key;\n switch(hasItem.type){\n case 'header':\n {\n key = key.toLowerCase();\n value = req.headers[key];\n break;\n }\n case 'cookie':\n {\n if ('cookies' in req) {\n value = req.cookies[hasItem.key];\n } else {\n const cookies = (0, _getcookieparser.getCookieParser)(req.headers)();\n value = cookies[hasItem.key];\n }\n break;\n }\n case 'query':\n {\n value = query[key];\n break;\n }\n case 'host':\n {\n const { host } = (req == null ? void 0 : req.headers) || {};\n // remove port from host if present\n const hostname = host == null ? void 0 : host.split(':', 1)[0].toLowerCase();\n value = hostname;\n break;\n }\n default:\n {\n break;\n }\n }\n if (!hasItem.value && value) {\n params[getSafeParamName(key)] = value;\n return true;\n } else if (value) {\n const matcher = new RegExp(\"^\" + hasItem.value + \"$\");\n const matches = Array.isArray(value) ? value.slice(-1)[0].match(matcher) : value.match(matcher);\n if (matches) {\n if (Array.isArray(matches)) {\n if (matches.groups) {\n Object.keys(matches.groups).forEach((groupKey)=>{\n params[groupKey] = matches.groups[groupKey];\n });\n } else if (hasItem.type === 'host' && matches[0]) {\n params.host = matches[0];\n }\n }\n return true;\n }\n }\n return false;\n };\n const allMatch = has.every((item)=>hasMatch(item)) && !missing.some((item)=>hasMatch(item));\n if (allMatch) {\n return params;\n }\n return false;\n}\nfunction compileNonPath(value, params) {\n if (!value.includes(':')) {\n return value;\n }\n for (const key of Object.keys(params)){\n if (value.includes(\":\" + key)) {\n value = value.replace(new RegExp(\":\" + key + \"\\\\*\", 'g'), \":\" + key + \"--ESCAPED_PARAM_ASTERISKS\").replace(new RegExp(\":\" + key + \"\\\\?\", 'g'), \":\" + key + \"--ESCAPED_PARAM_QUESTION\").replace(new RegExp(\":\" + key + \"\\\\+\", 'g'), \":\" + key + \"--ESCAPED_PARAM_PLUS\").replace(new RegExp(\":\" + key + \"(?!\\\\w)\", 'g'), \"--ESCAPED_PARAM_COLON\" + key);\n }\n }\n value = value.replace(/(:|\\*|\\?|\\+|\\(|\\)|\\{|\\})/g, '\\\\$1').replace(/--ESCAPED_PARAM_PLUS/g, '+').replace(/--ESCAPED_PARAM_COLON/g, ':').replace(/--ESCAPED_PARAM_QUESTION/g, '?').replace(/--ESCAPED_PARAM_ASTERISKS/g, '*');\n // the value needs to start with a forward-slash to be compiled\n // correctly\n return (0, _routematchutils.safeCompile)(\"/\" + value, {\n validate: false\n })(params).slice(1);\n}\nfunction parseDestination(args) {\n let escaped = args.destination;\n for (const param of Object.keys({\n ...args.params,\n ...args.query\n })){\n if (!param) continue;\n escaped = escapeSegment(escaped, param);\n }\n const parsed = (0, _parseurl.parseUrl)(escaped);\n let pathname = parsed.pathname;\n if (pathname) {\n pathname = unescapeSegments(pathname);\n }\n let href = parsed.href;\n if (href) {\n href = unescapeSegments(href);\n }\n let hostname = parsed.hostname;\n if (hostname) {\n hostname = unescapeSegments(hostname);\n }\n let hash = parsed.hash;\n if (hash) {\n hash = unescapeSegments(hash);\n }\n let search = parsed.search;\n if (search) {\n search = unescapeSegments(search);\n }\n return {\n ...parsed,\n pathname,\n hostname,\n href,\n hash,\n search\n };\n}\nfunction prepareDestination(args) {\n const parsedDestination = parseDestination(args);\n const { hostname: destHostname, query: destQuery, search: destSearch } = parsedDestination;\n // The following code assumes that the pathname here includes the hash if it's\n // present.\n let destPath = parsedDestination.pathname;\n if (parsedDestination.hash) {\n destPath = \"\" + destPath + parsedDestination.hash;\n }\n const destParams = [];\n const destPathParamKeys = [];\n (0, _routematchutils.safePathToRegexp)(destPath, destPathParamKeys);\n for (const key of destPathParamKeys){\n destParams.push(key.name);\n }\n if (destHostname) {\n const destHostnameParamKeys = [];\n (0, _routematchutils.safePathToRegexp)(destHostname, destHostnameParamKeys);\n for (const key of destHostnameParamKeys){\n destParams.push(key.name);\n }\n }\n const destPathCompiler = (0, _routematchutils.safeCompile)(destPath, // have already validated before we got to this point and validating\n // breaks compiling destinations with named pattern params from the source\n // e.g. /something:hello(.*) -> /another/:hello is broken with validation\n // since compile validation is meant for reversing and not for inserting\n // params from a separate path-regex into another\n {\n validate: false\n });\n let destHostnameCompiler;\n if (destHostname) {\n destHostnameCompiler = (0, _routematchutils.safeCompile)(destHostname, {\n validate: false\n });\n }\n // update any params in query values\n for (const [key, strOrArray] of Object.entries(destQuery)){\n // the value needs to start with a forward-slash to be compiled\n // correctly\n if (Array.isArray(strOrArray)) {\n destQuery[key] = strOrArray.map((value)=>compileNonPath(unescapeSegments(value), args.params));\n } else if (typeof strOrArray === 'string') {\n destQuery[key] = compileNonPath(unescapeSegments(strOrArray), args.params);\n }\n }\n // add path params to query if it's not a redirect and not\n // already defined in destination query or path\n let paramKeys = Object.keys(args.params).filter((name)=>name !== 'nextInternalLocale');\n if (args.appendParamsToQuery && !paramKeys.some((key)=>destParams.includes(key))) {\n for (const key of paramKeys){\n if (!(key in destQuery)) {\n destQuery[key] = args.params[key];\n }\n }\n }\n let newUrl;\n // The compiler also that the interception route marker is an unnamed param, hence '0',\n // so we need to add it to the params object.\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(destPath)) {\n for (const segment of destPath.split('/')){\n const marker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n if (marker === '(..)(..)') {\n args.params['0'] = '(..)';\n args.params['1'] = '(..)';\n } else {\n args.params['0'] = marker;\n }\n break;\n }\n }\n }\n try {\n newUrl = destPathCompiler(args.params);\n const [pathname, hash] = newUrl.split('#', 2);\n if (destHostnameCompiler) {\n parsedDestination.hostname = destHostnameCompiler(args.params);\n }\n parsedDestination.pathname = pathname;\n parsedDestination.hash = \"\" + (hash ? '#' : '') + (hash || '');\n parsedDestination.search = destSearch ? compileNonPath(destSearch, args.params) : '';\n } catch (err) {\n if (err.message.match(/Expected .*? to not repeat, but got an array/)) {\n throw Object.defineProperty(new Error(\"To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match\"), \"__NEXT_ERROR_CODE\", {\n value: \"E329\",\n enumerable: false,\n configurable: true\n });\n }\n throw err;\n }\n // Query merge order lowest priority to highest\n // 1. initial URL query values\n // 2. path segment values\n // 3. destination specified query values\n parsedDestination.query = {\n ...args.query,\n ...parsedDestination.query\n };\n return {\n newUrl,\n destQuery,\n parsedDestination\n };\n} //# sourceMappingURL=prepare-destination.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3ByZXBhcmUtZGVzdGluYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBOEhnQkEsY0FBYztlQUFkQTs7SUEvRUFDLFFBQVE7ZUFBUkE7O0lBa0hBQyxnQkFBZ0I7ZUFBaEJBOztJQWlEQUMsa0JBQWtCO2VBQWxCQTs7OzBDQTVNbUI7c0NBQ1Y7Z0RBSWxCOzZDQUN5Qjs2Q0FFYztBQUU5Qzs7O0NBR0MsR0FDRCxTQUFTQyxpQkFBaUJDLFNBQWlCO0lBQ3pDLElBQUlDLGVBQWU7SUFFbkIsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlGLFVBQVVHLE1BQU0sRUFBRUQsSUFBSztRQUN6QyxNQUFNRSxXQUFXSixVQUFVSyxVQUFVLENBQUNIO1FBRXRDLElBQ0dFLFdBQVcsTUFBTUEsV0FBVyxNQUFPLE1BQU07UUFDekNBLFdBQVcsTUFBTUEsV0FBVyxJQUFLLE1BQU07VUFDeEM7WUFDQUgsZ0JBQWdCRCxTQUFTLENBQUNFLEVBQUU7UUFDOUI7SUFDRjtJQUNBLE9BQU9EO0FBQ1Q7QUFFQSxTQUFTSyxjQUFjQyxHQUFXLEVBQUVDLFdBQW1CO0lBQ3JELE9BQU9ELElBQUlFLE9BQU8sQ0FDaEIsSUFBSUMsT0FBUSxNQUFHQyxDQUFBQSxHQUFBQSxjQUFBQSxrQkFBa0IsRUFBQ0gsY0FBZ0IsTUFDakQsaUJBQWNBO0FBRW5CO0FBRUEsU0FBU0ksaUJBQWlCTCxHQUFXO0lBQ25DLE9BQU9BLElBQUlFLE9BQU8sQ0FBQyxrQkFBa0I7QUFDdkM7QUFFTyxTQUFTYixTQUNkaUIsR0FBc0MsRUFDdENDLEtBQWEsRUFDYkMsR0FBb0IsRUFDcEJDLE9BQXdCO0lBRHhCRCxJQUFBQSxRQUFBQSxLQUFBQSxHQUFBQSxNQUFrQixFQUFFO0lBQ3BCQyxJQUFBQSxZQUFBQSxLQUFBQSxHQUFBQSxVQUFzQixFQUFFO0lBRXhCLE1BQU1DLFNBQWlCLENBQUM7SUFFeEIsTUFB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LGtCQUFrQjVDLEtBQUs7SUFDNUI7SUFFQSxPQUFPO1FBQ0wrRDtRQUNBakI7UUFDQUY7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3ByZXBhcmUtZGVzdGluYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UgfSBmcm9tICdodHRwJ1xuaW1wb3J0IHR5cGUgeyBLZXkgfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHAnXG5pbXBvcnQgdHlwZSB7IE5leHRQYXJzZWRVcmxRdWVyeSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0LW1ldGEnXG5pbXBvcnQgdHlwZSB7IFJvdXRlSGFzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2xvYWQtY3VzdG9tLXJvdXRlcydcbmltcG9ydCB0eXBlIHsgQmFzZU5leHRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Jhc2UtaHR0cCdcblxuaW1wb3J0IHsgZXNjYXBlU3RyaW5nUmVnZXhwIH0gZnJvbSAnLi4vLi4vZXNjYXBlLXJlZ2V4cCdcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSAnLi9wYXJzZS11cmwnXG5pbXBvcnQge1xuICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyxcbiAgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgsXG59IGZyb20gJy4vaW50ZXJjZXB0aW9uLXJvdXRlcydcbmltcG9ydCB7IGdldENvb2tpZVBhcnNlciB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9hcGktdXRpbHMvZ2V0LWNvb2tpZS1wYXJzZXInXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcbmltcG9ydCB7IHNhZmVQYXRoVG9SZWdleHAsIHNhZmVDb21waWxlIH0gZnJvbSAnLi9yb3V0ZS1tYXRjaC11dGlscydcblxuLyoqXG4gKiBFbnN1cmUgb25seSBhLXpBLVogYXJlIHVzZWQgZm9yIHBhcmFtIG5hbWVzIGZvciBwcm9wZXIgaW50ZXJwb2xhdGluZ1xuICogd2l0aCBwYXRoLXRvLXJlZ2V4cFxuICovXG5mdW5jdGlvbiBnZXRTYWZlUGFyYW1OYW1lKHBhcmFtTmFtZTogc3RyaW5nKSB7XG4gIGxldCBuZXdQYXJhbU5hbWUgPSAnJ1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGFyYW1OYW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhckNvZGUgPSBwYXJhbU5hbWUuY2hhckNvZGVBdChpKVxuXG4gICAgaWYgKFxuICAgICAgKGNoYXJDb2RlID4gNjQgJiYgY2hhckNvZGUgPCA5MSkgfHwgLy8gQS1aXG4gICAgICAoY2hhckNvZGUgPiA5NiAmJiBjaGFyQ29kZSA8IDEyMykgLy8gYS16XG4gICAgKSB7XG4gICAgICBuZXdQYXJhbU5hbWUgKz0gcGFyYW1OYW1lW2ldXG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdQYXJhbU5hbWVcbn1cblxuZnVuY3Rpb24gZXNjYXBlU2VnbWVudChzdHI6IHN0cmluZywgc2VnbWVudE5hbWU6IHN0cmluZykge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoXG4gICAgbmV3IFJlZ0V4cChgOiR7ZXNjYXBlU3RyaW5nUmVnZXhwKHNlZ21lbnROYW1lKX1gLCAnZycpLFxuICAgIGBfX0VTQ19DT0xPTl8ke3NlZ21lbnROYW1lfWBcbiAgKVxufVxuXG5mdW5jdGlvbiB1bmVzY2FwZVNlZ21lbnRzKHN0cjogc3RyaW5nKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvX19FU0NfQ09MT05fL2dpLCAnOicpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaEhhcyhcbiAgcmVxOiBCYXNlTmV4dFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gIHF1ZXJ5OiBQYXJhbXMsXG4gIGhhczogUm91dGVIYXNbXSA9IFtdLFxuICBtaXNzaW5nOiBSb3V0ZUhhc1tdID0gW11cbik6IGZhbHNlIHwgUGFyYW1zIHtcbiAgY29uc3QgcGFyYW1zOiBQYXJhbXMgPSB7fVxuXG4gIGNvbnN0IGhhc01hdGNoID0gKGhhc0l0ZW06IFJvdXRlSGFzKSA9PiB7XG4gICAgbGV0IHZhbHVlXG4gICAgbGV0IGtleSA9IGhhc0l0ZW0ua2V5XG5cbiAgICBzd2l0Y2ggKGhhc0l0ZW0udHlwZSkge1xuICAgICAgY2FzZSAnaGVhZGVyJzoge1xuICAgICAgICBrZXkgPSBrZXkhLnRvTG93ZXJDYXNlKClcbiAgICAgICAgdmFsdWUgPSByZXEuaGVhZGVyc1trZXldIGFzIHN0cmluZ1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnY29va2llJzoge1xuICAgICAgICBpZiAoJ2Nvb2tpZXMnIGluIHJlcSkge1xuICAgICAgICAgIHZhbHVlID0gcmVxLmNvb2tpZXNbaGFzSXRlbS5rZXldXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY29va2llcyA9IGdldENvb2tpZVBhcnNlcihyZXEuaGVhZGVycykoKVxuICAgICAgICAgIHZhbHVlID0gY29va2llc1toYXNJdGVtLmtleV1cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdxdWVyeSc6IHtcbiAgICAgICAgdmFsdWUgPSBxdWVyeVtrZXkhXVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnaG9zdCc6IHtcbiAgICAgICAgY29uc3QgeyBob3N0IH0gPSByZXE/LmhlYWRlcnMgfHwge31cbiAgICAgICAgLy8gcmVtb3ZlIHBvcnQgZnJvbSBob3N0IGlmIHByZXNlbnRcbiAgICAgICAgY29uc3QgaG9zdG5hbWUgPSBob3N0Py5zcGxpdCgnOicsIDEpWzBdLnRvTG93ZXJDYXNlKClcbiAgICAgICAgdmFsdWUgPSBob3N0bmFtZVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaGFzSXRlbS52YWx1ZSAmJiB2YWx1ZSkge1xuICAgICAgcGFyYW1zW2dldFNhZmVQYXJhbU5hbWUoa2V5ISldID0gdmFsdWVcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbWF0Y2hlciA9IG5ldyBSZWdFeHAoYF4ke2hhc0l0ZW0udmFsdWV9JGApXG4gICAgICBjb25zdCBtYXRjaGVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgPyB2YWx1ZS5zbGljZSgtMSlbMF0ubWF0Y2gobWF0Y2hlcilcbiAgICAgICAgOiB2YWx1ZS5tYXRjaChtYXRjaGVyKVxuXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShtYXRjaGVzKSkge1xuICAgICAgICAgIGlmIChtYXRjaGVzLmdyb3Vwcykge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMobWF0Y2hlcy5ncm91cHMpLmZvckVhY2goKGdyb3VwS2V5KSA9PiB7XG4gICAgICAgICAgICAgIHBhcmFtc1tncm91cEtleV0gPSBtYXRjaGVzLmdyb3VwcyFbZ3JvdXBLZXldXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSBpZiAoaGFzSXRlbS50eXBlID09PSAnaG9zdCcgJiYgbWF0Y2hlc1swXSkge1xuICAgICAgICAgICAgcGFyYW1zLmhvc3QgPSBtYXRjaGVzWzBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgYWxsTWF0Y2ggPVxuICAgIGhhcy5ldmVyeSgoaXRlbSkgPT4gaGFzTWF0Y2goaXRlbSkpICYmXG4gICAgIW1pc3Npbmcuc29tZSgoaXRlbSkgPT4gaGFzTWF0Y2goaXRlbSkpXG5cbiAgaWYgKGFsbE1hdGNoKSB7XG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZU5vblBhdGgodmFsdWU6IHN0cmluZywgcGFyYW1zOiBQYXJhbXMpOiBzdHJpbmcge1xuICBpZiAoIXZhbHVlLmluY2x1ZGVzKCc6JykpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcbiAgICBpZiAodmFsdWUuaW5jbHVkZXMoYDoke2tleX1gKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZVxuICAgICAgICAucmVwbGFjZShcbiAgICAgICAgICBuZXcgUmVnRXhwKGA6JHtrZXl9XFxcXCpgLCAnZycpLFxuICAgICAgICAgIGA6JHtrZXl9LS1FU0NBUEVEX1BBUkFNX0FTVEVSSVNLU2BcbiAgICAgICAgKVxuICAgICAgICAucmVwbGFjZShcbiAgICAgICAgICBuZXcgUmVnRXhwKGA6JHtrZXl9XFxcXD9gLCAnZycpLFxuICAgICAgICAgIGA6JHtrZXl9LS1FU0NBUEVEX1BBUkFNX1FVRVNUSU9OYFxuICAgICAgICApXG4gICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoYDoke2tleX1cXFxcK2AsICdnJyksIGA6JHtrZXl9LS1FU0NBUEVEX1BBUkFNX1BMVVNgKVxuICAgICAgICAucmVwbGFjZShcbiAgICAgICAgICBuZXcgUmVnRXhwKGA6JHtrZXl9KD8hXFxcXHcpYCwgJ2cnKSxcbiAgICAgICAgICBgLS1FU0NBUEVEX1BBUkFNX0NPTE9OJHtrZXl9YFxuICAgICAgICApXG4gICAgfVxuICB9XG4gIHZhbHVlID0gdmFsdWVcbiAgICAucmVwbGFjZSgvKDp8XFwqfFxcP3xcXCt8XFwofFxcKXxcXHt8XFx9KS9nLCAnXFxcXCQxJylcbiAgICAucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX1BMVVMvZywgJysnKVxuICAgIC5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fQ09MT04vZywgJzonKVxuICAgIC5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fUVVFU1RJT04vZywgJz8nKVxuICAgIC5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fQVNURVJJU0tTL2csICcqJylcblxuICAvLyB0aGUgdmFsdWUgbmVlZHMgdG8gc3RhcnQgd2l0aCBhIGZvcndhcmQtc2xhc2ggdG8gYmUgY29tcGlsZWRcbiAgLy8gY29ycmVjdGx5XG4gIHJldHVybiBzYWZlQ29tcGlsZShgLyR7dmFsdWV9YCwgeyB2YWxpZGF0ZTogZmFsc2UgfSkocGFyYW1zKS5zbGljZSgxKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZXN0aW5hdGlvbihhcmdzOiB7XG4gIGRlc3RpbmF0aW9uOiBzdHJpbmdcbiAgcGFyYW1zOiBSZWFkb25seTxQYXJhbXM+XG4gIHF1ZXJ5OiBSZWFkb25seTxOZXh0UGFyc2VkVXJsUXVlcnk+XG59KSB7XG4gIGxldCBlc2NhcGVkID0gYXJncy5kZXN0aW5hdGlvblxuICBmb3IgKGNvbnN0IHBhcmFtIG9mIE9iamVjdC5rZXlzKHsgLi4uYXJncy5wYXJhbXMsIC4uLmFyZ3MucXVlcnkgfSkpIHtcbiAgICBpZiAoIXBhcmFtKSBjb250aW51ZVxuXG4gICAgZXNjYXBlZCA9IGVzY2FwZVNlZ21lbnQoZXNjYXBlZCwgcGFyYW0pXG4gIH1cblxuICBjb25zdCBwYXJzZWQgPSBwYXJzZVVybChlc2NhcGVkKVxuXG4gIGxldCBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZVxuICBpZiAocGF0aG5hbWUpIHtcbiAgICBwYXRobmFtZSA9IHVuZXNjYXBlU2VnbWVudHMocGF0aG5hbWUpXG4gIH1cblxuICBsZXQgaHJlZiA9IHBhcnNlZC5ocmVmXG4gIGlmIChocmVmKSB7XG4gICAgaHJlZiA9IHVuZXNjYXBlU2VnbWVudHMoaHJlZilcbiAgfVxuXG4gIGxldCBob3N0bmFtZSA9IHBhcnNlZC5ob3N0bmFtZVxuICBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0bmFtZSA9IHVuZXNjYXBlU2VnbWVudHMoaG9zdG5hbWUpXG4gIH1cblxuICBsZXQgaGFzaCA9IHBhcnNlZC5oYXNoXG4gIGlmIChoYXNoKSB7XG4gICAgaGFzaCA9IHVuZXNjYXBlU2VnbWVudHMoaGFzaClcbiAgfVxuXG4gIGxldCBzZWFyY2ggPSBwYXJzZWQuc2VhcmNoXG4gIGlmIChzZWFyY2gpIHtcbiAgICBzZWFyY2ggPSB1bmVzY2FwZVNlZ21lbnRzKHNlYXJjaClcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucGFyc2VkLFxuICAgIHBhdGhuYW1lLFxuICAgIGhvc3RuYW1lLFxuICAgIGhyZWYsXG4gICAgaGFzaCxcbiAgICBzZWFyY2gsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVEZXN0aW5hdGlvbihhcmdzOiB7XG4gIGFwcGVuZFBhcmFtc1RvUXVlcnk6IGJvb2xlYW5cbiAgZGVzdGluYXRpb246IHN0cmluZ1xuICBwYXJhbXM6IFBhcmFtc1xuICBxdWVyeTogTmV4dFBhcnNlZFVybFF1ZXJ5XG59KSB7XG4gIGNvbnN0IHBhcnNlZERlc3RpbmF0aW9uID0gcGFyc2VEZXN0aW5hdGlvbihhcmdzKVxuXG4gIGNvbnN0IHtcbiAgICBob3N0bmFtZTogZGVzdEhvc3RuYW1lLFxuICAgIHF1ZXJ5OiBkZXN0UXVlcnksXG4gICAgc2VhcmNoOiBkZXN0U2VhcmNoLFxuICB9ID0gcGFyc2VkRGVzdGluYXRpb25cblxuICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgYXNzdW1lcyB0aGF0IHRoZSBwYXRobmFtZSBoZXJlIGluY2x1ZGVzIHRoZSBoYXNoIGlmIGl0J3NcbiAgLy8gcHJlc2VudC5cbiAgbGV0IGRlc3RQYXRoID0gcGFyc2VkRGVzdGluYXRpb24ucGF0aG5hbWVcbiAgaWYgKHBhcnNlZERlc3RpbmF0aW9uLmhhc2gpIHtcbiAgICBkZXN0UGF0aCA9IGAke2Rlc3RQYXRofSR7cGFyc2VkRGVzdGluYXRpb24uaGFzaH1gXG4gIH1cblxuICBjb25zdCBkZXN0UGFyYW1zOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gW11cblxuICBjb25zdCBkZXN0UGF0aFBhcmFtS2V5czogS2V5W10gPSBbXVxuICBzYWZlUGF0aFRvUmVnZXhwKGRlc3RQYXRoLCBkZXN0UGF0aFBhcmFtS2V5cylcbiAgZm9yIChjb25zdCBrZXkgb2YgZGVzdFBhdGhQYXJhbUtleXMpIHtcbiAgICBkZXN0UGFyYW1zLnB1c2goa2V5Lm5hbWUpXG4gIH1cblxuICBpZiAoZGVzdEhvc3RuYW1lKSB7XG4gICAgY29uc3QgZGVzdEhvc3RuYW1lUGFyYW1LZXlzOiBLZXlbXSA9IFtdXG4gICAgc2FmZVBhdGhUb1JlZ2V4cChkZXN0SG9zdG5hbWUsIGRlc3RIb3N0bmFtZVBhcmFtS2V5cylcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBkZXN0SG9zdG5hbWVQYXJhbUtleXMpIHtcbiAgICAgIGRlc3RQYXJhbXMucHVzaChrZXkubmFtZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBkZXN0UGF0aENvbXBpbGVyID0gc2FmZUNvbXBpbGUoXG4gICAgZGVzdFBhdGgsXG4gICAgLy8gd2UgZG9uJ3QgdmFsaWRhdGUgd2hpbGUgY29tcGlsaW5nIHRoZSBkZXN0aW5hdGlvbiBzaW5jZSB3ZSBzaG91bGRcbiAgICAvLyBoYXZlIGFscmVhZHkgdmFsaWRhdGVkIGJlZm9yZSB3ZSBnb3QgdG8gdGhpcyBwb2ludCBhbmQgdmFsaWRhdGluZ1xuICAgIC8vIGJyZWFrcyBjb21waWxpbmcgZGVzdGluYXRpb25zIHdpdGggbmFtZWQgcGF0dGVybiBwYXJhbXMgZnJvbSB0aGUgc291cmNlXG4gICAgLy8gZS5nLiAvc29tZXRoaW5nOmhlbGxvKC4qKSAtPiAvYW5vdGhlci86aGVsbG8gaXMgYnJva2VuIHdpdGggdmFsaWRhdGlvblxuICAgIC8vIHNpbmNlIGNvbXBpbGUgdmFsaWRhdGlvbiBpcyBtZWFudCBmb3IgcmV2ZXJzaW5nIGFuZCBub3QgZm9yIGluc2VydGluZ1xuICAgIC8vIHBhcmFtcyBmcm9tIGEgc2VwYXJhdGUgcGF0aC1yZWdleCBpbnRvIGFub3RoZXJcbiAgICB7IHZhbGlkYXRlOiBmYWxzZSB9XG4gIClcblxuICBsZXQgZGVzdEhvc3RuYW1lQ29tcGlsZXJcbiAgaWYgKGRlc3RIb3N0bmFtZSkge1xuICAgIGRlc3RIb3N0bmFtZUNvbXBpbGVyID0gc2FmZUNvbXBpbGUoZGVzdEhvc3RuYW1lLCB7IHZhbGlkYXRlOiBmYWxzZSB9KVxuICB9XG5cbiAgLy8gdXBkYXRlIGFueSBwYXJhbXMgaW4gcXVlcnkgdmFsdWVzXG4gIGZvciAoY29uc3QgW2tleSwgc3RyT3JBcnJheV0gb2YgT2JqZWN0LmVudHJpZXMoZGVzdFF1ZXJ5KSkge1xuICAgIC8vIHRoZSB2YWx1ZSBuZWVkcyB0byBzdGFydCB3aXRoIGEgZm9yd2FyZC1zbGFzaCB0byBiZSBjb21waWxlZFxuICAgIC8vIGNvcnJlY3RseVxuICAgIGlmIChBcnJheS5pc0FycmF5KHN0ck9yQXJyYXkpKSB7XG4gICAgICBkZXN0UXVlcnlba2V5XSA9IHN0ck9yQXJyYXkubWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgY29tcGlsZU5vblBhdGgodW5lc2NhcGVTZWdtZW50cyh2YWx1ZSksIGFyZ3MucGFyYW1zKVxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0ck9yQXJyYXkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkZXN0UXVlcnlba2V5XSA9IGNvbXBpbGVOb25QYXRoKHVuZXNjYXBlU2VnbWVudHMoc3RyT3JBcnJheSksIGFyZ3MucGFyYW1zKVxuICAgIH1cbiAgfVxuXG4gIC8vIGFkZCBwYXRoIHBhcmFtcyB0byBxdWVyeSBpZiBpdCdzIG5vdCBhIHJlZGlyZWN0IGFuZCBub3RcbiAgLy8gYWxyZWFkeSBkZWZpbmVkIGluIGRlc3RpbmF0aW9uIHF1ZXJ5IG9yIHBhdGhcbiAgbGV0IHBhcmFtS2V5cyA9IE9iamVjdC5rZXlzKGFyZ3MucGFyYW1zKS5maWx0ZXIoXG4gICAgKG5hbWUpID0+IG5hbWUgIT09ICduZXh0SW50ZXJuYWxMb2NhbGUnXG4gIClcblxuICBpZiAoXG4gICAgYXJncy5hcHBlbmRQYXJhbXNUb1F1ZXJ5ICYmXG4gICAgIXBhcmFtS2V5cy5zb21lKChrZXkpID0+IGRlc3RQYXJhbXMuaW5jbHVkZXMoa2V5KSlcbiAgKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgcGFyYW1LZXlzKSB7XG4gICAgICBpZiAoIShrZXkgaW4gZGVzdFF1ZXJ5KSkge1xuICAgICAgICBkZXN0UXVlcnlba2V5XSA9IGFyZ3MucGFyYW1zW2tleV1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgbmV3VXJsXG5cbiAgLy8gVGhlIGNvbXBpbGVyIGFsc28gdGhhdCB0aGUgaW50ZXJjZXB0aW9uIHJvdXRlIG1hcmtlciBpcyBhbiB1bm5hbWVkIHBhcmFtLCBoZW5jZSAnMCcsXG4gIC8vIHNvIHdlIG5lZWQgdG8gYWRkIGl0IHRvIHRoZSBwYXJhbXMgb2JqZWN0LlxuICBpZiAoaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgoZGVzdFBhdGgpKSB7XG4gICAgZm9yIChjb25zdCBzZWdtZW50IG9mIGRlc3RQYXRoLnNwbGl0KCcvJykpIHtcbiAgICAgIGNvbnN0IG1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pID0+XG4gICAgICAgIHNlZ21lbnQuc3RhcnRzV2l0aChtKVxuICAgICAgKVxuICAgICAgaWYgKG1hcmtlcikge1xuICAgICAgICBpZiAobWFya2VyID09PSAnKC4uKSguLiknKSB7XG4gICAgICAgICAgYXJncy5wYXJhbXNbJzAnXSA9ICcoLi4pJ1xuICAgICAgICAgIGFyZ3MucGFyYW1zWycxJ10gPSAnKC4uKSdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhcmdzLnBhcmFtc1snMCddID0gbWFya2VyXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cnkge1xuICAgIG5ld1VybCA9IGRlc3RQYXRoQ29tcGlsZXIoYXJncy5wYXJhbXMpXG5cbiAgICBjb25zdCBbcGF0aG5hbWUsIGhhc2hdID0gbmV3VXJsLnNwbGl0KCcjJywgMilcbiAgICBpZiAoZGVzdEhvc3RuYW1lQ29tcGlsZXIpIHtcbiAgICAgIHBhcnNlZERlc3RpbmF0aW9uLmhvc3RuYW1lID0gZGVzdEhvc3RuYW1lQ29tcGlsZXIoYXJncy5wYXJhbXMpXG4gICAgfVxuICAgIHBhcnNlZERlc3RpbmF0aW9uLnBhdGhuYW1lID0gcGF0aG5hbWVcbiAgICBwYXJzZWREZXN0aW5hdGlvbi5oYXNoID0gYCR7aGFzaCA/ICcjJyA6ICcnfSR7aGFzaCB8fCAnJ31gXG4gICAgcGFyc2VkRGVzdGluYXRpb24uc2VhcmNoID0gZGVzdFNlYXJjaFxuICAgICAgPyBjb21waWxlTm9uUGF0aChkZXN0U2VhcmNoLCBhcmdzLnBhcmFtcylcbiAgICAgIDogJydcbiAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICBpZiAoZXJyLm1lc3NhZ2UubWF0Y2goL0V4cGVjdGVkIC4qPyB0byBub3QgcmVwZWF0LCBidXQgZ290IGFuIGFycmF5LykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRvIHVzZSBhIG11bHRpLW1hdGNoIGluIHRoZSBkZXN0aW5hdGlvbiB5b3UgbXVzdCBhZGQgXFxgKlxcYCBhdCB0aGUgZW5kIG9mIHRoZSBwYXJhbSBuYW1lIHRvIHNpZ25pZnkgaXQgc2hvdWxkIHJlcGVhdC4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1tdWx0aS1tYXRjaGBcbiAgICAgIClcbiAgICB9XG4gICAgdGhyb3cgZXJyXG4gIH1cblxuICAvLyBRdWVyeSBtZXJnZSBvcmRlciBsb3dlc3QgcHJpb3JpdHkgdG8gaGlnaGVzdFxuICAvLyAxLiBpbml0aWFsIFVSTCBxdWVyeSB2YWx1ZXNcbiAgLy8gMi4gcGF0aCBzZWdtZW50IHZhbHVlc1xuICAvLyAzLiBkZXN0aW5hdGlvbiBzcGVjaWZpZWQgcXVlcnkgdmFsdWVzXG4gIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5ID0ge1xuICAgIC4uLmFyZ3MucXVlcnksXG4gICAgLi4ucGFyc2VkRGVzdGluYXRpb24ucXVlcnksXG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5ld1VybCxcbiAgICBkZXN0UXVlcnksXG4gICAgcGFyc2VkRGVzdGluYXRpb24sXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjb21waWxlTm9uUGF0aCIsIm1hdGNoSGFzIiwicGFyc2VEZXN0aW5hdGlvbiIsInByZXBhcmVEZXN0aW5hdGlvbiIsImdldFNhZmVQYXJhbU5hbWUiLCJwYXJhbU5hbWUiLCJuZXdQYXJhbU5hbWUiLCJpIiwibGVuZ3RoIiwiY2hhckNvZGUiLCJjaGFyQ29kZUF0IiwiZXNjYXBlU2VnbWVudCIsInN0ciIsInNlZ21lbnROYW1lIiwicmVwbGFjZSIsIlJlZ0V4cCIsImVzY2FwZVN0cmluZ1JlZ2V4cCIsInVuZXNjYXBlU2VnbWVudHMiLCJyZXEiLCJxdWVyeSIsImhhcyIsIm1pc3NpbmciLCJwYXJhbXMiLCJoYXNNYXRjaCIsImhhc0l0ZW0iLCJ2YWx1ZSIsImtleSIsInR5cGUiLCJ0b0xvd2VyQ2FzZSIsImhlYWRlcnMiLCJjb29raWVzIiwiZ2V0Q29va2llUGFyc2VyIiwiaG9zdCIsImhvc3RuYW1lIiwic3BsaXQiLCJtYXRjaGVyIiwibWF0Y2hlcyIsIkFycmF5IiwiaXNBcnJheSIsInNsaWNlIiwibWF0Y2giLCJncm91cHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImdyb3VwS2V5IiwiYWxsTWF0Y2giLCJldmVyeSIsIml0ZW0iLCJzb21lIiwiaW5jbHVkZXMiLCJzYWZlQ29tcGlsZSIsInZhbGlkYXRlIiwiYXJncyIsImVzY2FwZWQiLCJkZXN0aW5hdGlvbiIsInBhcmFtIiwicGFyc2VkIiwicGFyc2VVcmwiLCJwYXRobmFtZSIsImhyZWYiLCJoYXNoIiwic2VhcmNoIiwicGFyc2VkRGVzdGluYXRpb24iLCJkZXN0SG9zdG5hbWUiLCJkZXN0UXVlcnkiLCJkZXN0U2VhcmNoIiwiZGVzdFBhdGgiLCJkZXN0UGFyYW1zIiwiZGVzdFBhdGhQYXJhbUtleXMiLCJzYWZlUGF0aFRvUmVnZXhwIiwicHVzaCIsIm5hbWUiLCJkZXN0SG9zdG5hbWVQYXJhbUtleXMiLCJkZXN0UGF0aENvbXBpbGVyIiwiZGVzdEhvc3RuYW1lQ29tcGlsZXIiLCJzdHJPckFycmF5IiwiZW50cmllcyIsIm1hcCIsInBhcmFtS2V5cyIsImZpbHRlciIsImFwcGVuZFBhcmFtc1RvUXVlcnkiLCJuZXdVcmwiLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsInNlZ21lbnQiLCJtYXJrZXIiLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImZpbmQiLCJtIiwic3RhcnRzV2l0aCIsImVyciIsIm1lc3NhZ2UiLCJFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/prepare-destination.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdEZ0JBLE1BQU07ZUFBTkE7O0lBOUNBQyxzQkFBc0I7ZUFBdEJBOztJQWdDQUMsc0JBQXNCO2VBQXRCQTs7O0FBaENULFNBQVNELHVCQUNkRSxZQUE2QjtJQUU3QixNQUFNQyxRQUF3QixDQUFDO0lBQy9CLEtBQUssTUFBTSxDQUFDQyxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtRQUNqRCxNQUFNQyxXQUFXSixLQUFLLENBQUNDLElBQUk7UUFDM0IsSUFBSSxPQUFPRyxhQUFhLGFBQWE7WUFDbkNKLEtBQUssQ0FBQ0MsSUFBSSxHQUFHQztRQUNmLE9BQU8sSUFBSUcsTUFBTUMsT0FBTyxDQUFDRixXQUFXO1lBQ2xDQSxTQUFTRyxJQUFJLENBQUNMO1FBQ2hCLE9BQU87WUFDTEYsS0FBSyxDQUFDQyxJQUFJLEdBQUc7Z0JBQUNHO2dCQUFVRjthQUFNO1FBQ2hDO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUO0FBRUEsU0FBU1EsdUJBQXVCQyxLQUFjO0lBQzVDLElBQUksT0FBT0EsVUFBVSxVQUFVO1FBQzdCLE9BQU9BO0lBQ1Q7SUFFQSxJQUNHLE9BQU9BLFVBQVUsWUFBWSxDQUFDQyxNQUFNRCxVQUNyQyxPQUFPQSxVQUFVLFdBQ2pCO1FBQ0EsT0FBT0UsT0FBT0Y7SUFDaEIsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBU1gsdUJBQXVCRSxLQUFxQjtJQUMxRCxNQUFNRCxlQUFlLElBQUlhO0lBQ3pCLEtBQUssTUFBTSxDQUFDWCxLQUFLQyxNQUFNLElBQUlXLE9BQU9WLE9BQU8sQ0FBQ0gsT0FBUTtRQUNoRCxJQUFJSyxNQUFNQyxPQUFPLENBQUNKLFFBQVE7WUFDeEIsS0FBSyxNQUFNWSxRQUFRWixNQUFPO2dCQUN4QkgsYUFBYWdCLE1BQU0sQ0FBQ2QsS0FBS08sdUJBQXVCTTtZQUNsRDtRQUNGLE9BQU87WUFDTGYsYUFBYWlCLEdBQUcsQ0FBQ2YsS0FBS08sdUJBQXVCTjtRQUMvQztJQUNGO0lBQ0EsT0FBT0g7QUFDVDtBQUVPLFNBQVNILE9BQ2RxQixNQUF1QjtJQUN2QixpQ0FBR0MsbUJBQUg7UUFBR0EsZ0JBQUFBLENBQUgsMkJBQXNDOztJQUV0QyxLQUFLLE1BQU1uQixnQkFBZ0JtQixpQkFBa0I7UUFDM0MsS0FBSyxNQUFNakIsT0FBT0YsYUFBYW9CLElBQUksR0FBSTtZQUNyQ0YsT0FBT0csTUFBTSxDQUFDbkI7UUFDaEI7UUFFQSxLQUFLLE1BQU0sQ0FBQ0EsS0FBS0MsTUFBTSxJQUFJSCxhQUFhSSxPQUFPLEdBQUk7WUFDakRjLE9BQU9GLE1BQU0sQ0FBQ2QsS0FBS0M7UUFDckI7SUFDRjtJQUVBLE9BQU9lO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShcbiAgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXNcbik6IFBhcnNlZFVybFF1ZXJ5IHtcbiAgY29uc3QgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5ID0ge31cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gcXVlcnlba2V5XVxuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBxdWVyeVtrZXldID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpKSB7XG4gICAgICBleGlzdGluZy5wdXNoKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeVtrZXldID0gW2V4aXN0aW5nLCB2YWx1ZV1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHF1ZXJ5XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0ocGFyYW06IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJhbVxuICB9XG5cbiAgaWYgKFxuICAgICh0eXBlb2YgcGFyYW0gPT09ICdudW1iZXInICYmICFpc05hTihwYXJhbSkpIHx8XG4gICAgdHlwZW9mIHBhcmFtID09PSAnYm9vbGVhbidcbiAgKSB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeTogUGFyc2VkVXJsUXVlcnkpOiBVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocXVlcnkpKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0oaXRlbSkpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlYXJjaFBhcmFtcy5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlYXJjaFBhcmFtc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKFxuICB0YXJnZXQ6IFVSTFNlYXJjaFBhcmFtcyxcbiAgLi4uc2VhcmNoUGFyYW1zTGlzdDogVVJMU2VhcmNoUGFyYW1zW11cbik6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIGZvciAoY29uc3Qgc2VhcmNoUGFyYW1zIG9mIHNlYXJjaFBhcmFtc0xpc3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBzZWFyY2hQYXJhbXMua2V5cygpKSB7XG4gICAgICB0YXJnZXQuZGVsZXRlKGtleSlcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzZWFyY2hQYXJhbXMuZW50cmllcygpKSB7XG4gICAgICB0YXJnZXQuYXBwZW5kKGtleSwgdmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldFxufVxuIl0sIm5hbWVzIjpbImFzc2lnbiIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJrZXkiLCJ2YWx1ZSIsImVudHJpZXMiLCJleGlzdGluZyIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsIlVSTFNlYXJjaFBhcmFtcyIsIk9iamVjdCIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0Iiwia2V5cyIsImRlbGV0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n} //# sourceMappingURL=remove-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQVVnQkE7OztlQUFBQTs7OzJDQVZjO0FBVXZCLFNBQVNBLGlCQUFpQkMsSUFBWSxFQUFFQyxNQUFjO0lBQzNELHlFQUF5RTtJQUN6RSwwRUFBMEU7SUFDMUUsa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0YsTUFBTUMsU0FBUztRQUNoQyxPQUFPRDtJQUNUO0lBRUEsK0NBQStDO0lBQy9DLE1BQU1HLGdCQUFnQkgsS0FBS0ksS0FBSyxDQUFDSCxPQUFPSSxNQUFNO0lBRTlDLDJFQUEyRTtJQUMzRSxJQUFJRixjQUFjRyxVQUFVLENBQUMsTUFBTTtRQUNqQyxPQUFPSDtJQUNUO0lBRUEsNEVBQTRFO0lBQzVFLG1EQUFtRDtJQUNuRCxPQUFRLE1BQUdBO0FBQ2IiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBHaXZlbiBhIHBhdGggYW5kIGEgcHJlZml4IGl0IHdpbGwgcmVtb3ZlIHRoZSBwcmVmaXggd2hlbiBpdCBleGlzdHMgaW4gdGhlXG4gKiBnaXZlbiBwYXRoLiBJdCBlbnN1cmVzIGl0IG1hdGNoZXMgZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnNcbiAqIGFuZCBpZiB0aGUgcHJlZml4IGlzIG5vdCB0aGVyZSBpdCB3aWxsIGJlIG5vb3AuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gcmVtb3ZlIHRoZSBwcmVmaXggZnJvbS5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBiZSByZW1vdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGF0aFByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gSWYgdGhlIHBhdGggZG9lc24ndCBzdGFydCB3aXRoIHRoZSBwcmVmaXggd2UgY2FuIHJldHVybiBpdCBhcyBpcy4gVGhpc1xuICAvLyBwcm90ZWN0cyB1cyBmcm9tIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHByZWZpeCBpcyBhIHN1YnN0cmluZyBvZiB0aGUgcGF0aFxuICAvLyBwcmVmaXggc3VjaCBhczpcbiAgLy9cbiAgLy8gRm9yIHByZWZpeDogL2Jsb2dcbiAgLy9cbiAgLy8gICAvYmxvZyAtPiB0cnVlXG4gIC8vICAgL2Jsb2cvIC0+IHRydWVcbiAgLy8gICAvYmxvZy8xIC0+IHRydWVcbiAgLy8gICAvYmxvZ2dpbmcgLT4gZmFsc2VcbiAgLy8gICAvYmxvZ2dpbmcvIC0+IGZhbHNlXG4gIC8vICAgL2Jsb2dnaW5nLzEgLT4gZmFsc2VcbiAgaWYgKCFwYXRoSGFzUHJlZml4KHBhdGgsIHByZWZpeCkpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBwcmVmaXggZnJvbSB0aGUgcGF0aCB2aWEgc2xpY2luZy5cbiAgY29uc3Qgd2l0aG91dFByZWZpeCA9IHBhdGguc2xpY2UocHJlZml4Lmxlbmd0aClcblxuICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggc3RhcnRzIHdpdGggYSBgL2Agd2UgY2FuIHJldHVybiBpdCBhcyBpcy5cbiAgaWYgKHdpdGhvdXRQcmVmaXguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIHdpdGhvdXRQcmVmaXhcbiAgfVxuXG4gIC8vIElmIHRoZSBwYXRoIHdpdGhvdXQgdGhlIHByZWZpeCBkb2Vzbid0IHN0YXJ0IHdpdGggYSBgL2Agd2UgbmVlZCB0byBhZGQgaXRcbiAgLy8gYmFjayB0byB0aGUgcGF0aCB0byBtYWtlIHN1cmUgaXQncyBhIHZhbGlkIHBhdGguXG4gIHJldHVybiBgLyR7d2l0aG91dFByZWZpeH1gXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJwYXRoSGFzUHJlZml4Iiwid2l0aG91dFByZWZpeCIsInNsaWNlIiwibGVuZ3RoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, '') || '/';\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIGZvciBhIGdpdmVuIHJvdXRlIG9yIHBhZ2UgcGF0aC4gUHJlc2VydmVzIHRoZVxuICogcm9vdCBwYWdlLiBFeGFtcGxlczpcbiAqICAgLSBgL2Zvby9iYXIvYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9mb28vYmFyYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9gIC0+IGAvYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJ1xufVxuIl0sIm5hbWVzIjpbInJlbW92ZVRyYWlsaW5nU2xhc2giLCJyb3V0ZSIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/**\n * Client-safe utilities for route matching that don't import server-side\n * utilities to avoid bundling issues with Turbopack\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n safeCompile: function() {\n return safeCompile;\n },\n safePathToRegexp: function() {\n return safePathToRegexp;\n },\n safeRegexpToFunction: function() {\n return safeRegexpToFunction;\n },\n safeRouteMatcher: function() {\n return safeRouteMatcher;\n }\n});\nconst _pathtoregexp = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\");\nconst _routepatternnormalizer = __webpack_require__(/*! ../../../../lib/route-pattern-normalizer */ \"(rsc)/./node_modules/next/dist/lib/route-pattern-normalizer.js\");\nfunction safePathToRegexp(route, keys, options) {\n if (typeof route !== 'string') {\n return (0, _pathtoregexp.pathToRegexp)(route, keys, options);\n }\n // Check if normalization is needed and cache the result\n const needsNormalization = (0, _routepatternnormalizer.hasAdjacentParameterIssues)(route);\n const routeToUse = needsNormalization ? (0, _routepatternnormalizer.normalizeAdjacentParameters)(route) : route;\n try {\n return (0, _pathtoregexp.pathToRegexp)(routeToUse, keys, options);\n } catch (error) {\n // Only try normalization if we haven't already normalized\n if (!needsNormalization) {\n try {\n const normalizedRoute = (0, _routepatternnormalizer.normalizeAdjacentParameters)(route);\n return (0, _pathtoregexp.pathToRegexp)(normalizedRoute, keys, options);\n } catch (retryError) {\n // If that doesn't work, fall back to original error\n throw error;\n }\n }\n throw error;\n }\n}\nfunction safeCompile(route, options) {\n // Check if normalization is needed and cache the result\n const needsNormalization = (0, _routepatternnormalizer.hasAdjacentParameterIssues)(route);\n const routeToUse = needsNormalization ? (0, _routepatternnormalizer.normalizeAdjacentParameters)(route) : route;\n try {\n return (0, _pathtoregexp.compile)(routeToUse, options);\n } catch (error) {\n // Only try normalization if we haven't already normalized\n if (!needsNormalization) {\n try {\n const normalizedRoute = (0, _routepatternnormalizer.normalizeAdjacentParameters)(route);\n return (0, _pathtoregexp.compile)(normalizedRoute, options);\n } catch (retryError) {\n // If that doesn't work, fall back to original error\n throw error;\n }\n }\n throw error;\n }\n}\nfunction safeRegexpToFunction(regexp, keys) {\n const originalMatcher = (0, _pathtoregexp.regexpToFunction)(regexp, keys || []);\n return (pathname)=>{\n const result = originalMatcher(pathname);\n if (!result) return false;\n // Clean parameters before returning\n return {\n ...result,\n params: (0, _routepatternnormalizer.stripParameterSeparators)(result.params)\n };\n };\n}\nfunction safeRouteMatcher(matcherFn) {\n return (pathname)=>{\n const result = matcherFn(pathname);\n if (!result) return false;\n // Clean parameters before returning\n return (0, _routepatternnormalizer.stripParameterSeparators)(result);\n };\n} //# sourceMappingURL=route-match-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoLXV0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7Ozs7Ozs7Ozs7O0lBMkRlQSxXQUFXO2VBQVhBOztJQXBDQUMsZ0JBQWdCO2VBQWhCQTs7SUFrRUFDLG9CQUFvQjtlQUFwQkE7O0lBcUJBQyxnQkFBZ0I7ZUFBaEJBOzs7MENBbEdUO29EQUtBO0FBTUEsU0FBU0YsaUJBQ2RHLEtBQStDLEVBQy9DQyxJQUFZLEVBQ1pDLE9BQThDO0lBRTlDLElBQUksT0FBT0YsVUFBVSxVQUFVO1FBQzdCLE9BQU9HLENBQUFBLEdBQUFBLGNBQUFBLFlBQUFBLEVBQWFILE9BQU9DLE1BQU1DO0lBQ25DO0lBRUEsd0RBQXdEO0lBQ3hELE1BQU1FLHFCQUFxQkMsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUEyQkw7SUFDdEQsTUFBTU0sYUFBYUYscUJBQ2ZHLENBQUFBLEdBQUFBLHdCQUFBQSwyQkFBQUEsRUFBNEJQLFNBQzVCQTtJQUVKLElBQUk7UUFDRixPQUFPRyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhRyxZQUFZTCxNQUFNQztJQUN4QyxFQUFFLE9BQU9NLE9BQU87UUFDZCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDSixvQkFBb0I7WUFDdkIsSUFBSTtnQkFDRixNQUFNSyxrQkFBa0JGLENBQUFBLEdBQUFBLHdCQUFBQSwyQkFBQUEsRUFBNEJQO2dCQUNwRCxPQUFPRyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFZLEVBQUNNLGlCQUFpQlIsTUFBTUM7WUFDN0MsRUFBRSxPQUFPUSxZQUFZO2dCQUNuQixvREFBb0Q7Z0JBQ3BELE1BQU1GO1lBQ1I7UUFDRjtRQUNBLE1BQU1BO0lBQ1I7QUFDRjtBQU1PLFNBQVNaLFlBQ2RJLEtBQWEsRUFDYkUsT0FBZ0Q7SUFFaEQsd0RBQXdEO0lBQ3hELE1BQU1FLHFCQUFxQkMsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUEyQkw7SUFDdEQsTUFBTU0sYUFBYUYscUJBQ2ZHLENBQUFBLEdBQUFBLHdCQUFBQSwyQkFBQUEsRUFBNEJQLFNBQzVCQTtJQUVKLElBQUk7UUFDRixPQUFPVyxDQUFBQSxHQUFBQSxjQUFBQSxPQUFBQSxFQUFRTCxZQUFZSjtJQUM3QixFQUFFLE9BQU9NLE9BQU87UUFDZCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDSixvQkFBb0I7WUFDdkIsSUFBSTtnQkFDRixNQUFNSyxrQkFBa0JGLENBQUFBLEdBQUFBLHdCQUFBQSwyQkFBQUEsRUFBNEJQO2dCQUNwRCxPQUFPVyxDQUFBQSxHQUFBQSxjQUFBQSxPQUFBQSxFQUFRRixpQkFBaUJQO1lBQ2xDLEVBQUUsT0FBT1EsWUFBWTtnQkFDbkIsb0RBQW9EO2dCQUNwRCxNQUFNRjtZQUNSO1FBQ0Y7UUFDQSxNQUFNQTtJQUNSO0FBQ0Y7QUFLTyxTQUFTVixxQkFFZGMsTUFBYyxFQUFFWCxJQUFZO0lBQzVCLE1BQU1ZLGtCQUFrQkMsQ0FBQUEsR0FBQUEsY0FBQUEsZ0JBQUFBLEVBQW9CRixRQUFRWCxRQUFRLEVBQUU7SUFFOUQsT0FBTyxDQUFDYztRQUNOLE1BQU1DLFNBQVNILGdCQUFnQkU7UUFDL0IsSUFBSSxDQUFDQyxRQUFRLE9BQU87UUFFcEIsb0NBQW9DO1FBQ3BDLE9BQU87WUFDTCxHQUFHQSxNQUFNO1lBQ1RDLFFBQVFDLENBQUFBLEdBQUFBLHdCQUFBQSx3QkFBQUEsRUFBeUJGLE9BQU9DLE1BQU07UUFDaEQ7SUFDRjtBQUNGO0FBTU8sU0FBU2xCLGlCQUNkb0IsU0FBMEM7SUFFMUMsT0FBTyxDQUFDSjtRQUNOLE1BQU1DLFNBQVNHLFVBQVVKO1FBQ3pCLElBQUksQ0FBQ0MsUUFBUSxPQUFPO1FBRXBCLG9DQUFvQztRQUNwQyxPQUFPRSxDQUFBQSxHQUFBQSx3QkFBQUEsd0JBQUFBLEVBQXlCRjtJQUNsQztBQUNGIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xpZW50LXNhZmUgdXRpbGl0aWVzIGZvciByb3V0ZSBtYXRjaGluZyB0aGF0IGRvbid0IGltcG9ydCBzZXJ2ZXItc2lkZVxuICogdXRpbGl0aWVzIHRvIGF2b2lkIGJ1bmRsaW5nIGlzc3VlcyB3aXRoIFR1cmJvcGFja1xuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgS2V5LFxuICBUb2tlbnNUb1JlZ2V4cE9wdGlvbnMsXG4gIFBhcnNlT3B0aW9ucyxcbiAgVG9rZW5zVG9GdW5jdGlvbk9wdGlvbnMsXG59IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cCdcbmltcG9ydCB7XG4gIHBhdGhUb1JlZ2V4cCxcbiAgY29tcGlsZSxcbiAgcmVnZXhwVG9GdW5jdGlvbixcbn0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwJ1xuaW1wb3J0IHtcbiAgaGFzQWRqYWNlbnRQYXJhbWV0ZXJJc3N1ZXMsXG4gIG5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycyxcbiAgc3RyaXBQYXJhbWV0ZXJTZXBhcmF0b3JzLFxufSBmcm9tICcuLi8uLi8uLi8uLi9saWIvcm91dGUtcGF0dGVybi1ub3JtYWxpemVyJ1xuXG4vKipcbiAqIENsaWVudC1zYWZlIHdyYXBwZXIgYXJvdW5kIHBhdGhUb1JlZ2V4cCB0aGF0IGhhbmRsZXMgcGF0aC10by1yZWdleHAgNi4zLjArIHZhbGlkYXRpb24gZXJyb3JzLlxuICogVGhpcyBpbmNsdWRlcyBib3RoIFwiQ2FuIG5vdCByZXBlYXQgd2l0aG91dCBwcmVmaXgvc3VmZml4XCIgYW5kIFwiTXVzdCBoYXZlIHRleHQgYmV0d2VlbiBwYXJhbWV0ZXJzXCIgZXJyb3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZVBhdGhUb1JlZ2V4cChcbiAgcm91dGU6IHN0cmluZyB8IFJlZ0V4cCB8IEFycmF5PHN0cmluZyB8IFJlZ0V4cD4sXG4gIGtleXM/OiBLZXlbXSxcbiAgb3B0aW9ucz86IFRva2Vuc1RvUmVnZXhwT3B0aW9ucyAmIFBhcnNlT3B0aW9uc1xuKTogUmVnRXhwIHtcbiAgaWYgKHR5cGVvZiByb3V0ZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGF0aFRvUmVnZXhwKHJvdXRlLCBrZXlzLCBvcHRpb25zKVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQgYW5kIGNhY2hlIHRoZSByZXN1bHRcbiAgY29uc3QgbmVlZHNOb3JtYWxpemF0aW9uID0gaGFzQWRqYWNlbnRQYXJhbWV0ZXJJc3N1ZXMocm91dGUpXG4gIGNvbnN0IHJvdXRlVG9Vc2UgPSBuZWVkc05vcm1hbGl6YXRpb25cbiAgICA/IG5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycyhyb3V0ZSlcbiAgICA6IHJvdXRlXG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGF0aFRvUmVnZXhwKHJvdXRlVG9Vc2UsIGtleXMsIG9wdGlvbnMpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gT25seSB0cnkgbm9ybWFsaXphdGlvbiBpZiB3ZSBoYXZlbid0IGFscmVhZHkgbm9ybWFsaXplZFxuICAgIGlmICghbmVlZHNOb3JtYWxpemF0aW9uKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkUm91dGUgPSBub3JtYWxpemVBZGphY2VudFBhcmFtZXRlcnMocm91dGUpXG4gICAgICAgIHJldHVybiBwYXRoVG9SZWdleHAobm9ybWFsaXplZFJvdXRlLCBrZXlzLCBvcHRpb25zKVxuICAgICAgfSBjYXRjaCAocmV0cnlFcnJvcikge1xuICAgICAgICAvLyBJZiB0aGF0IGRvZXNuJ3Qgd29yaywgZmFsbCBiYWNrIHRvIG9yaWdpbmFsIGVycm9yXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuLyoqXG4gKiBDbGllbnQtc2FmZSB3cmFwcGVyIGFyb3VuZCBjb21waWxlIHRoYXQgaGFuZGxlcyBwYXRoLXRvLXJlZ2V4cCA2LjMuMCsgdmFsaWRhdGlvbiBlcnJvcnMuXG4gKiBObyBzZXJ2ZXItc2lkZSBlcnJvciByZXBvcnRpbmcgdG8gYXZvaWQgYnVuZGxpbmcgaXNzdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZUNvbXBpbGUoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBUb2tlbnNUb0Z1bmN0aW9uT3B0aW9ucyAmIFBhcnNlT3B0aW9uc1xuKSB7XG4gIC8vIENoZWNrIGlmIG5vcm1hbGl6YXRpb24gaXMgbmVlZGVkIGFuZCBjYWNoZSB0aGUgcmVzdWx0XG4gIGNvbnN0IG5lZWRzTm9ybWFsaXphdGlvbiA9IGhhc0FkamFjZW50UGFyYW1ldGVySXNzdWVzKHJvdXRlKVxuICBjb25zdCByb3V0ZVRvVXNlID0gbmVlZHNOb3JtYWxpemF0aW9uXG4gICAgPyBub3JtYWxpemVBZGphY2VudFBhcmFtZXRlcnMocm91dGUpXG4gICAgOiByb3V0ZVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGNvbXBpbGUocm91dGVUb1VzZSwgb3B0aW9ucylcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBPbmx5IHRyeSBub3JtYWxpemF0aW9uIGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBub3JtYWxpemVkXG4gICAgaWYgKCFuZWVkc05vcm1hbGl6YXRpb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSb3V0ZSA9IG5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycyhyb3V0ZSlcbiAgICAgICAgcmV0dXJuIGNvbXBpbGUobm9ybWFsaXplZFJvdXRlLCBvcHRpb25zKVxuICAgICAgfSBjYXRjaCAocmV0cnlFcnJvcikge1xuICAgICAgICAvLyBJZiB0aGF0IGRvZXNuJ3Qgd29yaywgZmFsbCBiYWNrIHRvIG9yaWdpbmFsIGVycm9yXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuLyoqXG4gKiBDbGllbnQtc2FmZSB3cmFwcGVyIGFyb3VuZCByZWdleHBUb0Z1bmN0aW9uIHRoYXQgYXV0b21hdGljYWxseSBjbGVhbnMgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhZmVSZWdleHBUb0Z1bmN0aW9uPFxuICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4+KHJlZ2V4cDogUmVnRXhwLCBrZXlzPzogS2V5W10pOiAocGF0aG5hbWU6IHN0cmluZykgPT4geyBwYXJhbXM6IFQgfSB8IGZhbHNlIHtcbiAgY29uc3Qgb3JpZ2luYWxNYXRjaGVyID0gcmVnZXhwVG9GdW5jdGlvbjxUPihyZWdleHAsIGtleXMgfHwgW10pXG5cbiAgcmV0dXJuIChwYXRobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gb3JpZ2luYWxNYXRjaGVyKHBhdGhuYW1lKVxuICAgIGlmICghcmVzdWx0KSByZXR1cm4gZmFsc2VcblxuICAgIC8vIENsZWFuIHBhcmFtZXRlcnMgYmVmb3JlIHJldHVybmluZ1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXN1bHQsXG4gICAgICBwYXJhbXM6IHN0cmlwUGFyYW1ldGVyU2VwYXJhdG9ycyhyZXN1bHQucGFyYW1zIGFzIGFueSkgYXMgVCxcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHJvdXRlIG1hdGNoZXIgZnVuY3Rpb25zIHRoYXQgYXV0b21hdGljYWxseSBjbGVhbnMgcGFyYW1ldGVycy5cbiAqIFRoaXMgaXMgY2xpZW50LXNhZmUgYW5kIGRvZXNuJ3QgaW1wb3J0IHBhdGgtdG8tcmVnZXhwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZVJvdXRlTWF0Y2hlcjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIG1hdGNoZXJGbjogKHBhdGhuYW1lOiBzdHJpbmcpID0+IGZhbHNlIHwgVFxuKTogKHBhdGhuYW1lOiBzdHJpbmcpID0+IGZhbHNlIHwgVCB7XG4gIHJldHVybiAocGF0aG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG1hdGNoZXJGbihwYXRobmFtZSlcbiAgICBpZiAoIXJlc3VsdCkgcmV0dXJuIGZhbHNlXG5cbiAgICAvLyBDbGVhbiBwYXJhbWV0ZXJzIGJlZm9yZSByZXR1cm5pbmdcbiAgICByZXR1cm4gc3RyaXBQYXJhbWV0ZXJTZXBhcmF0b3JzKHJlc3VsdCkgYXMgVFxuICB9XG59XG4iXSwibmFtZXMiOlsic2FmZUNvbXBpbGUiLCJzYWZlUGF0aFRvUmVnZXhwIiwic2FmZVJlZ2V4cFRvRnVuY3Rpb24iLCJzYWZlUm91dGVNYXRjaGVyIiwicm91dGUiLCJrZXlzIiwib3B0aW9ucyIsInBhdGhUb1JlZ2V4cCIsIm5lZWRzTm9ybWFsaXphdGlvbiIsImhhc0FkamFjZW50UGFyYW1ldGVySXNzdWVzIiwicm91dGVUb1VzZSIsIm5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycyIsImVycm9yIiwibm9ybWFsaXplZFJvdXRlIiwicmV0cnlFcnJvciIsImNvbXBpbGUiLCJyZWdleHAiLCJvcmlnaW5hbE1hdGNoZXIiLCJyZWdleHBUb0Z1bmN0aW9uIiwicGF0aG5hbWUiLCJyZXN1bHQiLCJwYXJhbXMiLCJzdHJpcFBhcmFtZXRlclNlcGFyYXRvcnMiLCJtYXRjaGVyRm4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _routematchutils = __webpack_require__(/*! ./route-match-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n const rawMatcher = (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) return false;\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (e) {\n throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), \"__NEXT_ERROR_CODE\", {\n value: \"E528\",\n enumerable: false,\n configurable: true\n });\n }\n };\n const params = {};\n for (const [key, group] of Object.entries(groups)){\n const match = routeMatch[group.pos];\n if (match !== undefined) {\n if (group.repeat) {\n params[key] = match.split('/').map((entry)=>decode(entry));\n } else {\n params[key] = decode(match);\n }\n }\n }\n return params;\n };\n // Wrap with safe matcher to handle parameter cleaning\n return (0, _routematchutils.safeRouteMatcher)(rawMatcher);\n} //# sourceMappingURL=route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIuanMiLCJtYXBwaW5ncyI6Ijs7OzttREFnQmdCQTs7O2VBQUFBOzs7bUNBZlk7NkNBRUs7QUFhMUIsU0FBU0EsZ0JBQWdCLEtBR1Y7SUFIVSxNQUM5QkMsRUFBRSxFQUNGQyxNQUFNLEVBQ2MsR0FIVTtJQUk5QixNQUFNQyxhQUFhLENBQUNDO1FBQ2xCLE1BQU1DLGFBQWFKLEdBQUdLLElBQUksQ0FBQ0Y7UUFDM0IsSUFBSSxDQUFDQyxZQUFZLE9BQU87UUFFeEIsTUFBTUUsU0FBUyxDQUFDQztZQUNkLElBQUk7Z0JBQ0YsT0FBT0MsbUJBQW1CRDtZQUM1QixFQUFFLFVBQU07Z0JBQ04sTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUUsT0FBQUEsV0FBVyxDQUFDLDJCQUFoQjsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFBd0M7WUFDaEQ7UUFDRjtRQUVBLE1BQU1DLFNBQWlCLENBQUM7UUFDeEIsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDYixRQUFTO1lBQ2pELE1BQU1jLFFBQVFYLFVBQVUsQ0FBQ1EsTUFBTUksR0FBRyxDQUFDO1lBQ25DLElBQUlELFVBQVVFLFdBQVc7Z0JBQ3ZCLElBQUlMLE1BQU1NLE1BQU0sRUFBRTtvQkFDaEJSLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHSSxNQUFNSSxLQUFLLENBQUMsS0FBS0MsR0FBRyxDQUFDLENBQUNDLFFBQVVmLE9BQU9lO2dCQUN2RCxPQUFPO29CQUNMWCxNQUFNLENBQUNDLElBQUksR0FBR0wsT0FBT1M7Z0JBQ3ZCO1lBQ0Y7UUFDRjtRQUVBLE9BQU9MO0lBQ1Q7SUFFQSxzREFBc0Q7SUFDdEQsT0FBT1ksQ0FBQUEsR0FBQUEsaUJBQUFBLGdCQUFBQSxFQUFpQnBCO0FBQzFCIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHcm91cCB9IGZyb20gJy4vcm91dGUtcmVnZXgnXG5pbXBvcnQgeyBEZWNvZGVFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5pbXBvcnQgeyBzYWZlUm91dGVNYXRjaGVyIH0gZnJvbSAnLi9yb3V0ZS1tYXRjaC11dGlscydcblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZU1hdGNoRm4ge1xuICAocGF0aG5hbWU6IHN0cmluZyk6IGZhbHNlIHwgUGFyYW1zXG59XG5cbnR5cGUgUm91dGVNYXRjaGVyT3B0aW9ucyA9IHtcbiAgLy8gV2Ugb25seSB1c2UgdGhlIGV4ZWMgbWV0aG9kIG9mIHRoZSBSZWdFeHAgb2JqZWN0LiBUaGlzIGhlbHBzIHVzIGF2b2lkIHVzaW5nXG4gIC8vIHR5cGUgYXNzZXJ0aW9ucyB0aGF0IHRoZSBwYXNzZWQgaW4gcHJvcGVydGllcyBhcmUgb2YgdGhlIGNvcnJlY3QgdHlwZS5cbiAgcmU6IFBpY2s8UmVnRXhwLCAnZXhlYyc+XG4gIGdyb3VwczogUmVjb3JkPHN0cmluZywgR3JvdXA+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZU1hdGNoZXIoe1xuICByZSxcbiAgZ3JvdXBzLFxufTogUm91dGVNYXRjaGVyT3B0aW9ucyk6IFJvdXRlTWF0Y2hGbiB7XG4gIGNvbnN0IHJhd01hdGNoZXIgPSAocGF0aG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJvdXRlTWF0Y2ggPSByZS5leGVjKHBhdGhuYW1lKVxuICAgIGlmICghcm91dGVNYXRjaCkgcmV0dXJuIGZhbHNlXG5cbiAgICBjb25zdCBkZWNvZGUgPSAocGFyYW06IHN0cmluZykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSlcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aHJvdyBuZXcgRGVjb2RlRXJyb3IoJ2ZhaWxlZCB0byBkZWNvZGUgcGFyYW0nKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogUGFyYW1zID0ge31cbiAgICBmb3IgKGNvbnN0IFtrZXksIGdyb3VwXSBvZiBPYmplY3QuZW50cmllcyhncm91cHMpKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHJvdXRlTWF0Y2hbZ3JvdXAucG9zXVxuICAgICAgaWYgKG1hdGNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGdyb3VwLnJlcGVhdCkge1xuICAgICAgICAgIHBhcmFtc1trZXldID0gbWF0Y2guc3BsaXQoJy8nKS5tYXAoKGVudHJ5KSA9PiBkZWNvZGUoZW50cnkpKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcmFtc1trZXldID0gZGVjb2RlKG1hdGNoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG5cbiAgLy8gV3JhcCB3aXRoIHNhZmUgbWF0Y2hlciB0byBoYW5kbGUgcGFyYW1ldGVyIGNsZWFuaW5nXG4gIHJldHVybiBzYWZlUm91dGVNYXRjaGVyKHJhd01hdGNoZXIpXG59XG4iXSwibmFtZXMiOlsiZ2V0Um91dGVNYXRjaGVyIiwicmUiLCJncm91cHMiLCJyYXdNYXRjaGVyIiwicGF0aG5hbWUiLCJyb3V0ZU1hdGNoIiwiZXhlYyIsImRlY29kZSIsInBhcmFtIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJrZXkiLCJncm91cCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXRjaCIsInBvcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsInNwbGl0IiwibWFwIiwiZW50cnkiLCJzYWZlUm91dGVNYXRjaGVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getRouteRegex: function() {\n return getRouteRegex;\n }\n});\nconst _constants = __webpack_require__(/*! ../../../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _getdynamicparam = __webpack_require__(/*! ./get-dynamic-param */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js\");\nfunction getParametrizedRoute(route, includeSuffix, includePrefix) {\n const groups = {};\n let groupIndex = 1;\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters\n ;\n if (markerMatch && paramMatches && paramMatches[2]) {\n const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\");\n } else if (paramMatches && paramMatches[2]) {\n const { key, repeat, optional } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n parameterizedRoute: segments.join(''),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute, param) {\n let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param;\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix);\n let re = parameterizedRoute;\n if (!excludeOptionalTrailingSlash) {\n re += '(?:/)?';\n }\n return {\n re: new RegExp(\"^\" + re + \"$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = '';\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param;\n const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, '');\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n const duplicateKey = cleanedKey in routeKeys;\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : '';\n let pattern;\n if (duplicateKey && backreferenceDuplicateKeys) {\n // Use a backreference to the key to ensure that the key is the same value\n // in each of the placeholders.\n pattern = \"\\\\k<\" + cleanedKey + \">\";\n } else if (repeat) {\n pattern = \"(?<\" + cleanedKey + \">.+?)\";\n } else {\n pattern = \"(?<\" + cleanedKey + \">[^/]+?)\";\n }\n return optional ? \"(?:/\" + interceptionPrefix + pattern + \")?\" : \"/\" + interceptionPrefix + pattern;\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) {\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches && paramMatches[2]) {\n // If there's an interception marker, add it to the segments.\n segments.push(getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: paramMatches[1],\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined,\n backreferenceDuplicateKeys\n }));\n } else if (paramMatches && paramMatches[2]) {\n // If there's a prefix, add it to the segments if it's enabled.\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined,\n backreferenceDuplicateKeys\n });\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n namedParameterizedRoute: segments.join(''),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, options) {\n var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys;\n const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false);\n let namedRegex = result.namedParameterizedRoute;\n if (!options.excludeOptionalTrailingSlash) {\n namedRegex += '(?:/)?';\n }\n return {\n ...getRouteRegex(normalizedRoute, options),\n namedRegex: \"^\" + namedRegex + \"$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false);\n const { catchAll = true } = options;\n if (parameterizedRoute === '/') {\n let catchAllRegex = catchAll ? '.*' : '';\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false);\n let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWlXZ0JBLHVCQUF1QjtlQUF2QkE7O0lBNUJBQyxrQkFBa0I7ZUFBbEJBOztJQTdMQUMsYUFBYTtlQUFiQTs7O3VDQXJJVDtnREFDb0M7MENBQ1I7aURBQ0M7NkNBQ3FCO0FBeUV6RCxTQUFTQyxxQkFDUEMsS0FBYSxFQUNiQyxhQUFzQixFQUN0QkMsYUFBc0I7SUFFdEIsTUFBTUMsU0FBeUMsQ0FBQztJQUNoRCxJQUFJQyxhQUFhO0lBRWpCLE1BQU1DLFdBQXFCLEVBQUU7SUFDN0IsS0FBSyxNQUFNQyxXQUFXQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUCxPQUFPUSxLQUFLLENBQUMsR0FBR0MsS0FBSyxDQUFDLEtBQU07UUFDcEUsTUFBTUMsY0FBY0Msb0JBQUFBLDBCQUEwQixDQUFDQyxJQUFJLENBQUMsQ0FBQ0MsSUFDbkRQLFFBQVFRLFVBQVUsQ0FBQ0Q7UUFFckIsTUFBTUUsZUFBZVQsUUFBUVUsS0FBSyxDQUFDQyxpQkFBQUEsaUJBQWlCLEVBQUUsdUJBQXVCOztRQUU3RSxJQUFJUCxlQUFlSyxnQkFBZ0JBLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDbEQsTUFBTSxFQUFFRyxHQUFHLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLGlCQUFBQSxxQkFBQUEsRUFBc0JOLFlBQVksQ0FBQyxFQUFFO1lBQ3ZFWixNQUFNLENBQUNlLElBQUksR0FBRztnQkFBRUksS0FBS2xCO2dCQUFjZ0I7Z0JBQVFEO1lBQVM7WUFDcERkLFNBQVNrQixJQUFJLENBQUUsTUFBR0MsQ0FBQUEsR0FBQUEsY0FBQUEsa0JBQUFBLEVBQW1CZCxlQUFhO1FBQ3BELE9BQU8sSUFBSUssZ0JBQWdCQSxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQzFDLE1BQU0sRUFBRUcsR0FBRyxFQUFFRSxNQUFNLEVBQUVELFFBQVEsRUFBRSxHQUFHRSxDQUFBQSxHQUFBQSxpQkFBQUEscUJBQUFBLEVBQXNCTixZQUFZLENBQUMsRUFBRTtZQUN2RVosTUFBTSxDQUFDZSxJQUFJLEdBQUc7Z0JBQUVJLEtBQUtsQjtnQkFBY2dCO2dCQUFRRDtZQUFTO1lBRXBELElBQUlqQixpQkFBaUJhLFlBQVksQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDVixTQUFTa0IsSUFBSSxDQUFFLE1BQUdDLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFBQSxFQUFtQlQsWUFBWSxDQUFDLEVBQUU7WUFDdEQ7WUFFQSxJQUFJVSxJQUFJTCxTQUFVRCxXQUFXLGdCQUFnQixXQUFZO1lBRXpELDhEQUE4RDtZQUM5RCxJQUFJakIsaUJBQWlCYSxZQUFZLENBQUMsRUFBRSxFQUFFO2dCQUNwQ1UsSUFBSUEsRUFBRUMsU0FBUyxDQUFDO1lBQ2xCO1lBRUFyQixTQUFTa0IsSUFBSSxDQUFDRTtRQUNoQixPQUFPO1lBQ0xwQixTQUFTa0IsSUFBSSxDQUFFLE1BQUdDLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFBQSxFQUFtQmxCO1FBQ3ZDO1FBRUEsK0RBQStEO1FBQy9ELElBQUlMLGlCQUFpQmMsZ0JBQWdCQSxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQ3BEVixTQUFTa0IsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxjQUFBQSxrQkFBQUEsRUFBbUJULFlBQVksQ0FBQyxFQUFFO1FBQ2xEO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xZLG9CQUFvQnRCLFNBQVN1QixJQUFJLENBQUM7UUFDbEN6QjtJQUNGO0FBQ0Y7QUFPTyxTQUFTTCxjQUNkK0IsZUFBdUIsRUFDdkI7SUFBQSxNQUNFNUIsZ0JBQWdCLEtBQUssRUFDckJDLGdCQUFnQixLQUFLLEVBQ3JCNEIsK0JBQStCLEtBQUssRUFDZixHQUp2QixtQkFJMEIsQ0FBQyxJQUozQjtJQU1BLE1BQU0sRUFBRUgsa0JBQWtCLEVBQUV4QixNQUFNLEVBQUUsR0FBR0oscUJBQ3JDOEIsaUJBQ0E1QixlQUNBQztJQUdGLElBQUk2QixLQUFLSjtJQUNULElBQUksQ0FBQ0csOEJBQThCO1FBQ2pDQyxNQUFNO0lBQ1I7SUFFQSxPQUFPO1FBQ0xBLElBQUksSUFBSUMsT0FBUSxNQUFHRCxLQUFHO1FBQ3RCNUIsUUFBUUE7SUFDVjtBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBUzhCO0lBQ1AsSUFBSUMsSUFBSTtJQUVSLE9BQU87UUFDTCxJQUFJQyxXQUFXO1FBQ2YsSUFBSUMsSUFBSSxFQUFFRjtRQUNWLE1BQU9FLElBQUksRUFBRztZQUNaRCxZQUFZRSxPQUFPQyxZQUFZLENBQUMsS0FBT0YsQ0FBQUEsS0FBSSxJQUFLO1lBQ2hEQSxJQUFJRyxLQUFLQyxLQUFLLENBQUVKLENBQUFBLEtBQUksSUFBSztRQUMzQjtRQUNBLE9BQU9EO0lBQ1Q7QUFDRjtBQUVBLFNBQVNNLHNCQUFzQixLQWM5QjtJQWQ4QixNQUM3QkMsa0JBQWtCLEVBQ2xCQyxlQUFlLEVBQ2ZyQyxPQUFPLEVBQ1BzQyxTQUFTLEVBQ1RDLFNBQVMsRUFDVEMsMEJBQTBCLEVBUTNCLEdBZDhCO0lBZTdCLE1BQU0sRUFBRTVCLEdBQUcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsaUJBQUFBLHFCQUFBQSxFQUFzQmY7SUFFeEQsdURBQXVEO0lBQ3ZELGtCQUFrQjtJQUNsQixJQUFJeUMsYUFBYTdCLElBQUk4QixPQUFPLENBQUMsT0FBTztJQUVwQyxJQUFJSCxXQUFXO1FBQ2JFLGFBQWMsS0FBRUYsWUFBWUU7SUFDOUI7SUFDQSxJQUFJRSxhQUFhO0lBRWpCLGtFQUFrRTtJQUNsRSxXQUFXO0lBQ1gsSUFBSUYsV0FBV0csTUFBTSxLQUFLLEtBQUtILFdBQVdHLE1BQU0sR0FBRyxJQUFJO1FBQ3JERCxhQUFhO0lBQ2Y7SUFDQSxJQUFJLENBQUNFLE1BQU1DLFNBQVNMLFdBQVd2QyxLQUFLLENBQUMsR0FBRyxNQUFNO1FBQzVDeUMsYUFBYTtJQUNmO0lBRUEsSUFBSUEsWUFBWTtRQUNkRixhQUFhSjtJQUNmO0lBRUEsTUFBTVUsZUFBZU4sY0FBY0g7SUFFbkMsSUFBSUMsV0FBVztRQUNiRCxTQUFTLENBQUNHLFdBQVcsR0FBSSxLQUFFRixZQUFZM0I7SUFDekMsT0FBTztRQUNMMEIsU0FBUyxDQUFDRyxXQUFXLEdBQUc3QjtJQUMxQjtJQUVBLHdGQUF3RjtJQUN4RiwwRkFBMEY7SUFDMUYscUZBQXFGO0lBQ3JGLE1BQU1vQyxxQkFBcUJaLHFCQUN2QmxCLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFBQSxFQUFtQmtCLHNCQUNuQjtJQUVKLElBQUlhO0lBQ0osSUFBSUYsZ0JBQWdCUCw0QkFBNEI7UUFDOUMsMEVBQTBFO1FBQzFFLCtCQUErQjtRQUMvQlMsVUFBVyxTQUFNUixhQUFXO0lBQzlCLE9BQU8sSUFBSTNCLFFBQVE7UUFDakJtQyxVQUFXLFFBQUtSLGFBQVc7SUFDN0IsT0FBTztRQUNMUSxVQUFXLFFBQUtSLGFBQVc7SUFDN0I7SUFFQSxPQUFPNUIsV0FDRixTQUFNbUMscUJBQXFCQyxVQUFRLE9BQ25DLE1BQUdELHFCQUFxQkM7QUFDL0I7QUFFQSxTQUFTQywwQkFDUHhELEtBQWEsRUFDYnlELGVBQXdCLEVBQ3hCeEQsYUFBc0IsRUFDdEJDLGFBQXNCLEVBQ3RCNEMsMEJBQW1DO0lBRW5DLE1BQU1ILGtCQUFrQlY7SUFDeEIsTUFBTVcsWUFBeUMsQ0FBQztJQUVoRCxNQUFNdkMsV0FBcUIsRUFBRTtJQUM3QixLQUFLLE1BQU1DLFdBQVdDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JQLE9BQU9RLEtBQUssQ0FBQyxHQUFHQyxLQUFLLENBQUMsS0FBTTtRQUNwRSxNQUFNaUQsd0JBQXdCL0Msb0JBQUFBLDBCQUEwQixDQUFDZ0QsSUFBSSxDQUFDLENBQUM5QyxJQUM3RFAsUUFBUVEsVUFBVSxDQUFDRDtRQUdyQixNQUFNRSxlQUFlVCxRQUFRVSxLQUFLLENBQUNDLGlCQUFBQSxpQkFBaUIsRUFBRSx1QkFBdUI7O1FBRTdFLElBQUl5Qyx5QkFBeUIzQyxnQkFBZ0JBLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDNUQsNkRBQTZEO1lBQzdEVixTQUFTa0IsSUFBSSxDQUNYa0Isc0JBQXNCO2dCQUNwQkU7Z0JBQ0FELG9CQUFvQjNCLFlBQVksQ0FBQyxFQUFFO2dCQUNuQ1QsU0FBU1MsWUFBWSxDQUFDLEVBQUU7Z0JBQ3hCNkI7Z0JBQ0FDLFdBQVdZLGtCQUNQRyxXQUFBQSwrQkFBK0IsR0FDL0JDO2dCQUNKZjtZQUNGO1FBRUosT0FBTyxJQUFJL0IsZ0JBQWdCQSxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQzFDLCtEQUErRDtZQUMvRCxJQUFJYixpQkFBaUJhLFlBQVksQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDVixTQUFTa0IsSUFBSSxDQUFFLE1BQUdDLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFBQSxFQUFtQlQsWUFBWSxDQUFDLEVBQUU7WUFDdEQ7WUFFQSxJQUFJVSxJQUFJZ0Isc0JBQXNCO2dCQUM1QkU7Z0JBQ0FyQyxTQUFTUyxZQUFZLENBQUMsRUFBRTtnQkFDeEI2QjtnQkFDQUMsV0FBV1ksa0JBQWtCSyxXQUFBQSx1QkFBdUIsR0FBR0Q7Z0JBQ3ZEZjtZQUNGO1lBRUEsOERBQThEO1lBQzlELElBQUk1QyxpQkFBaUJhLFlBQVksQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDVSxJQUFJQSxFQUFFQyxTQUFTLENBQUM7WUFDbEI7WUFFQXJCLFNBQVNrQixJQUFJLENBQUNFO1FBQ2hCLE9BQU87WUFDTHBCLFNBQVNrQixJQUFJLENBQUUsTUFBR0MsQ0FBQUEsR0FBQUEsY0FBQUEsa0JBQUFBLEVBQW1CbEI7UUFDdkM7UUFFQSwrREFBK0Q7UUFDL0QsSUFBSUwsaUJBQWlCYyxnQkFBZ0JBLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDcERWLFNBQVNrQixJQUFJLENBQUNDLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFBQSxFQUFtQlQsWUFBWSxDQUFDLEVBQUU7UUFDbEQ7SUFDRjtJQUVBLE9BQU87UUFDTGdELHlCQUF5QjFELFNBQVN1QixJQUFJLENBQUM7UUFDdkNnQjtJQUNGO0FBQ0Y7QUFVTyxTQUFTL0MsbUJBQ2RnQyxlQUF1QixFQUN2Qm1DLE9BQWtDO1FBS2hDQSx3QkFDQUEsd0JBQ0FBO0lBTEYsTUFBTUMsU0FBU1QsMEJBQ2IzQixpQkFDQW1DLFFBQVFQLGVBQWUsRUFDdkJPLENBQUFBLHlCQUFBQSxRQUFRL0QsYUFBQUEsS0FBYSxPQUFyQitELHlCQUF5QixPQUN6QkEsQ0FBQUEseUJBQUFBLFFBQVE5RCxhQUFBQSxLQUFhLE9BQXJCOEQseUJBQXlCLE9BQ3pCQSxDQUFBQSxzQ0FBQUEsUUFBUWxCLDBCQUFBQSxLQUEwQixPQUFsQ2tCLHNDQUFzQztJQUd4QyxJQUFJRSxhQUFhRCxPQUFPRix1QkFBdUI7SUFDL0MsSUFBSSxDQUFDQyxRQUFRbEMsNEJBQTRCLEVBQUU7UUFDekNvQyxjQUFjO0lBQ2hCO0lBRUEsT0FBTztRQUNMLEdBQUdwRSxjQUFjK0IsaUJBQWlCbUMsUUFBUTtRQUMxQ0UsWUFBYSxNQUFHQSxhQUFXO1FBQzNCdEIsV0FBV3FCLE9BQU9yQixTQUFTO0lBQzdCO0FBQ0Y7QUFNTyxTQUFTaEQsd0JBQ2RpQyxlQUF1QixFQUN2Qm1DLE9BRUM7SUFFRCxNQUFNLEVBQUVyQyxrQkFBa0IsRUFBRSxHQUFHNUIscUJBQzdCOEIsaUJBQ0EsT0FDQTtJQUVGLE1BQU0sRUFBRXNDLFdBQVcsSUFBSSxFQUFFLEdBQUdIO0lBQzVCLElBQUlyQyx1QkFBdUIsS0FBSztRQUM5QixJQUFJeUMsZ0JBQWdCRCxXQUFXLE9BQU87UUFDdEMsT0FBTztZQUNMRCxZQUFhLE9BQUlFLGdCQUFjO1FBQ2pDO0lBQ0Y7SUFFQSxNQUFNLEVBQUVMLHVCQUF1QixFQUFFLEdBQUdQLDBCQUNsQzNCLGlCQUNBLE9BQ0EsT0FDQSxPQUNBO0lBRUYsSUFBSXdDLHVCQUF1QkYsV0FBVyxlQUFlO0lBQ3JELE9BQU87UUFDTEQsWUFBYSxNQUFHSCwwQkFBMEJNLHVCQUFxQjtJQUNqRTtBQUNGIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVgsXG4gIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLFxufSBmcm9tICcuLi8uLi8uLi8uLi9saWIvY29uc3RhbnRzJ1xuaW1wb3J0IHsgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgfSBmcm9tICcuL2ludGVyY2VwdGlvbi1yb3V0ZXMnXG5pbXBvcnQgeyBlc2NhcGVTdHJpbmdSZWdleHAgfSBmcm9tICcuLi8uLi9lc2NhcGUtcmVnZXhwJ1xuaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgUEFSQU1FVEVSX1BBVFRFUk4sIHBhcnNlTWF0Y2hlZFBhcmFtZXRlciB9IGZyb20gJy4vZ2V0LWR5bmFtaWMtcGFyYW0nXG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXAge1xuICBwb3M6IG51bWJlclxuICByZXBlYXQ6IGJvb2xlYW5cbiAgb3B0aW9uYWw6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVJlZ2V4IHtcbiAgZ3JvdXBzOiB7IFtncm91cE5hbWU6IHN0cmluZ106IEdyb3VwIH1cbiAgcmU6IFJlZ0V4cFxufVxuXG50eXBlIEdldE5hbWVkUm91dGVSZWdleE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZWZpeCB0aGUgcm91dGUga2V5cyB3aXRoIHRoZSBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYXG4gICAqIG9yIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBjcmVhdGluZyB0aGVcbiAgICogcm91dGVzLW1hbmlmZXN0IGR1cmluZyB0aGUgYnVpbGQuXG4gICAqL1xuICBwcmVmaXhSb3V0ZUtleXM6IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBzdWZmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC5qc29uYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgLyguKikuanNvbmAgYXMgdGhlIHJlZ2V4LlxuICAgKi9cbiAgaW5jbHVkZVN1ZmZpeD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBwcmVmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC9gIHBhcnQgd2lsbCBiZSBpbmNsdWRlZFxuICAgKiBpbiB0aGUgcmVnZXgsIHlpZWxkaW5nIGBeLyguKikuanNvbiRgIGFzIHRoZSByZWdleC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGludGVyY2VwdGlvbiBtYXJrZXJzIHdpbGwgYWxyZWFkeSBiZSBpbmNsdWRlZCB3aXRob3V0IHRoZSBuZWVkXG4gICAqL1xuICBpbmNsdWRlUHJlZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIHJvdXRlIHJlZ2V4LlxuICAgKi9cbiAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBiYWNrdHJhY2sgZHVwbGljYXRlIGtleXMuIFRoaXMgaXMgb25seSByZWxldmFudCB3aGVuIGNyZWF0aW5nXG4gICAqIHRoZSByb3V0ZXMtbWFuaWZlc3QgZHVyaW5nIHRoZSBidWlsZC5cbiAgICovXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzPzogYm9vbGVhblxufVxuXG50eXBlIEdldFJvdXRlUmVnZXhPcHRpb25zID0ge1xuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIGV4dHJhIHBhcnRzIGluIHRoZSByb3V0ZSByZWdleC4gVGhpcyBtZWFucyB0aGF0IHdoZW4geW91XG4gICAqIGhhdmUgc29tZXRoaW5nIGxpa2UgYC9bLi4uc2x1Z10uanNvbmAgdGhlIGAuanNvbmAgcGFydCB3aWxsIGJlIGluY2x1ZGVkXG4gICAqIGluIHRoZSByZWdleCwgeWllbGRpbmcgYC8oLiopLmpzb25gIGFzIHRoZSByZWdleC5cbiAgICovXG4gIGluY2x1ZGVTdWZmaXg/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgcHJlZml4IGluIHRoZSByb3V0ZSByZWdleC4gVGhpcyBtZWFucyB0aGF0IHdoZW4geW91XG4gICAqIGhhdmUgc29tZXRoaW5nIGxpa2UgYC9bLi4uc2x1Z10uanNvbmAgdGhlIGAvYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgXi8oLiopLmpzb24kYCBhcyB0aGUgcmVnZXguXG4gICAqXG4gICAqIE5vdGUgdGhhdCBpbnRlcmNlcHRpb24gbWFya2VycyB3aWxsIGFscmVhZHkgYmUgaW5jbHVkZWQgd2l0aG91dCB0aGUgbmVlZFxuICAgKiBvZiBhZGRpbmcgdGhpcyBvcHRpb24uXG4gICAqL1xuICBpbmNsdWRlUHJlZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIHJvdXRlIHJlZ2V4LlxuICAgKi9cbiAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1ldHJpemVkUm91dGUoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGluY2x1ZGVTdWZmaXg6IGJvb2xlYW4sXG4gIGluY2x1ZGVQcmVmaXg6IGJvb2xlYW5cbikge1xuICBjb25zdCBncm91cHM6IHsgW2dyb3VwTmFtZTogc3RyaW5nXTogR3JvdXAgfSA9IHt9XG4gIGxldCBncm91cEluZGV4ID0gMVxuXG4gIGNvbnN0IHNlZ21lbnRzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoY29uc3Qgc2VnbWVudCBvZiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlKS5zbGljZSgxKS5zcGxpdCgnLycpKSB7XG4gICAgY29uc3QgbWFya2VyTWF0Y2ggPSBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PlxuICAgICAgc2VnbWVudC5zdGFydHNXaXRoKG0pXG4gICAgKVxuICAgIGNvbnN0IHBhcmFtTWF0Y2hlcyA9IHNlZ21lbnQubWF0Y2goUEFSQU1FVEVSX1BBVFRFUk4pIC8vIENoZWNrIGZvciBwYXJhbWV0ZXJzXG5cbiAgICBpZiAobWFya2VyTWF0Y2ggJiYgcGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1syXSkge1xuICAgICAgY29uc3QgeyBrZXksIG9wdGlvbmFsLCByZXBlYXQgfSA9IHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihwYXJhbU1hdGNoZXNbMl0pXG4gICAgICBncm91cHNba2V5XSA9IHsgcG9zOiBncm91cEluZGV4KyssIHJlcGVhdCwgb3B0aW9uYWwgfVxuICAgICAgc2VnbWVudHMucHVzaChgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKG1hcmtlck1hdGNoKX0oW14vXSs/KWApXG4gICAgfSBlbHNlIGlmIChwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzJdKSB7XG4gICAgICBjb25zdCB7IGtleSwgcmVwZWF0LCBvcHRpb25hbCB9ID0gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtTWF0Y2hlc1syXSlcbiAgICAgIGdyb3Vwc1trZXldID0geyBwb3M6IGdyb3VwSW5kZXgrKywgcmVwZWF0LCBvcHRpb25hbCB9XG5cbiAgICAgIGlmIChpbmNsdWRlUHJlZml4ICYmIHBhcmFtTWF0Y2hlc1sxXSkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAocGFyYW1NYXRjaGVzWzFdKX1gKVxuICAgICAgfVxuXG4gICAgICBsZXQgcyA9IHJlcGVhdCA/IChvcHRpb25hbCA/ICcoPzovKC4rPykpPycgOiAnLyguKz8pJykgOiAnLyhbXi9dKz8pJ1xuXG4gICAgICAvLyBSZW1vdmUgdGhlIGxlYWRpbmcgc2xhc2ggaWYgaW5jbHVkZVByZWZpeCBhbHJlYWR5IGFkZGVkIGl0LlxuICAgICAgaWYgKGluY2x1ZGVQcmVmaXggJiYgcGFyYW1NYXRjaGVzWzFdKSB7XG4gICAgICAgIHMgPSBzLnN1YnN0cmluZygxKVxuICAgICAgfVxuXG4gICAgICBzZWdtZW50cy5wdXNoKHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChzZWdtZW50KX1gKVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlJ3MgYSBzdWZmaXgsIGFkZCBpdCB0byB0aGUgc2VnbWVudHMgaWYgaXQncyBlbmFibGVkLlxuICAgIGlmIChpbmNsdWRlU3VmZml4ICYmIHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbM10pIHtcbiAgICAgIHNlZ21lbnRzLnB1c2goZXNjYXBlU3RyaW5nUmVnZXhwKHBhcmFtTWF0Y2hlc1szXSkpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzLmpvaW4oJycpLFxuICAgIGdyb3VwcyxcbiAgfVxufVxuXG4vKipcbiAqIEZyb20gYSBub3JtYWxpemVkIHJvdXRlIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgcmVndWxhciBleHByZXNzaW9uIGFuZFxuICogYSBjb3JyZXNwb25kaW5nIGdyb3VwcyBvYmplY3QgaW50ZW5kZWQgdG8gYmUgdXNlZCB0byBzdG9yZSBtYXRjaGluZyBncm91cHNcbiAqIGZyb20gdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlUmVnZXgoXG4gIG5vcm1hbGl6ZWRSb3V0ZTogc3RyaW5nLFxuICB7XG4gICAgaW5jbHVkZVN1ZmZpeCA9IGZhbHNlLFxuICAgIGluY2x1ZGVQcmVmaXggPSBmYWxzZSxcbiAgICBleGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoID0gZmFsc2UsXG4gIH06IEdldFJvdXRlUmVnZXhPcHRpb25zID0ge31cbik6IFJvdXRlUmVnZXgge1xuICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSwgZ3JvdXBzIH0gPSBnZXRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgICBub3JtYWxpemVkUm91dGUsXG4gICAgaW5jbHVkZVN1ZmZpeCxcbiAgICBpbmNsdWRlUHJlZml4XG4gIClcblxuICBsZXQgcmUgPSBwYXJhbWV0ZXJpemVkUm91dGVcbiAgaWYgKCFleGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoKSB7XG4gICAgcmUgKz0gJyg/Oi8pPydcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmU6IG5ldyBSZWdFeHAoYF4ke3JlfSRgKSxcbiAgICBncm91cHM6IGdyb3VwcyxcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbFxuICogbnVtYmVyIG9mIGNoYXJhY3RlcnMuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkR2V0U2FmZVJvdXRlS2V5KCkge1xuICBsZXQgaSA9IDBcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGxldCByb3V0ZUtleSA9ICcnXG4gICAgbGV0IGogPSArK2lcbiAgICB3aGlsZSAoaiA+IDApIHtcbiAgICAgIHJvdXRlS2V5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoOTcgKyAoKGogLSAxKSAlIDI2KSlcbiAgICAgIGogPSBNYXRoLmZsb29yKChqIC0gMSkgLyAyNilcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlS2V5XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcbiAgaW50ZXJjZXB0aW9uTWFya2VyLFxuICBnZXRTYWZlUm91dGVLZXksXG4gIHNlZ21lbnQsXG4gIHJvdXRlS2V5cyxcbiAga2V5UHJlZml4LFxuICBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cyxcbn06IHtcbiAgaW50ZXJjZXB0aW9uTWFya2VyPzogc3RyaW5nXG4gIGdldFNhZmVSb3V0ZUtleTogKCkgPT4gc3RyaW5nXG4gIHNlZ21lbnQ6IHN0cmluZ1xuICByb3V0ZUtleXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAga2V5UHJlZml4Pzogc3RyaW5nXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzOiBib29sZWFuXG59KSB7XG4gIGNvbnN0IHsga2V5LCBvcHRpb25hbCwgcmVwZWF0IH0gPSBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIoc2VnbWVudClcblxuICAvLyByZXBsYWNlIGFueSBub24td29yZCBjaGFyYWN0ZXJzIHNpbmNlIHRoZXkgY2FuIGJyZWFrXG4gIC8vIHRoZSBuYW1lZCByZWdleFxuICBsZXQgY2xlYW5lZEtleSA9IGtleS5yZXBsYWNlKC9cXFcvZywgJycpXG5cbiAgaWYgKGtleVByZWZpeCkge1xuICAgIGNsZWFuZWRLZXkgPSBgJHtrZXlQcmVmaXh9JHtjbGVhbmVkS2V5fWBcbiAgfVxuICBsZXQgaW52YWxpZEtleSA9IGZhbHNlXG5cbiAgLy8gY2hlY2sgaWYgdGhlIGtleSBpcyBzdGlsbCBpbnZhbGlkIGFuZCBmYWxsYmFjayB0byB1c2luZyBhIGtub3duXG4gIC8vIHNhZmUga2V5XG4gIGlmIChjbGVhbmVkS2V5Lmxlbmd0aCA9PT0gMCB8fCBjbGVhbmVkS2V5Lmxlbmd0aCA+IDMwKSB7XG4gICAgaW52YWxpZEtleSA9IHRydWVcbiAgfVxuICBpZiAoIWlzTmFOKHBhcnNlSW50KGNsZWFuZWRLZXkuc2xpY2UoMCwgMSkpKSkge1xuICAgIGludmFsaWRLZXkgPSB0cnVlXG4gIH1cblxuICBpZiAoaW52YWxpZEtleSkge1xuICAgIGNsZWFuZWRLZXkgPSBnZXRTYWZlUm91dGVLZXkoKVxuICB9XG5cbiAgY29uc3QgZHVwbGljYXRlS2V5ID0gY2xlYW5lZEtleSBpbiByb3V0ZUtleXNcblxuICBpZiAoa2V5UHJlZml4KSB7XG4gICAgcm91dGVLZXlzW2NsZWFuZWRLZXldID0gYCR7a2V5UHJlZml4fSR7a2V5fWBcbiAgfSBlbHNlIHtcbiAgICByb3V0ZUtleXNbY2xlYW5lZEtleV0gPSBrZXlcbiAgfVxuXG4gIC8vIGlmIHRoZSBzZWdtZW50IGhhcyBhbiBpbnRlcmNlcHRpb24gbWFya2VyLCBtYWtlIHN1cmUgdGhhdCdzIHBhcnQgb2YgdGhlIHJlZ2V4IHBhdHRlcm5cbiAgLy8gdGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcm91dGUgd2l0aCB0aGUgaW50ZXJjZXB0aW9uIG1hcmtlciBkb2Vzbid0IGluY29ycmVjdGx5IG1hdGNoXG4gIC8vIHRoZSBub24taW50ZXJjZXB0ZWQgcm91dGUgKGllIC9hcHAvKC4pW3VzZXJuYW1lXSBzaG91bGQgbm90IG1hdGNoIC9hcHAvW3VzZXJuYW1lXSlcbiAgY29uc3QgaW50ZXJjZXB0aW9uUHJlZml4ID0gaW50ZXJjZXB0aW9uTWFya2VyXG4gICAgPyBlc2NhcGVTdHJpbmdSZWdleHAoaW50ZXJjZXB0aW9uTWFya2VyKVxuICAgIDogJydcblxuICBsZXQgcGF0dGVybjogc3RyaW5nXG4gIGlmIChkdXBsaWNhdGVLZXkgJiYgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMpIHtcbiAgICAvLyBVc2UgYSBiYWNrcmVmZXJlbmNlIHRvIHRoZSBrZXkgdG8gZW5zdXJlIHRoYXQgdGhlIGtleSBpcyB0aGUgc2FtZSB2YWx1ZVxuICAgIC8vIGluIGVhY2ggb2YgdGhlIHBsYWNlaG9sZGVycy5cbiAgICBwYXR0ZXJuID0gYFxcXFxrPCR7Y2xlYW5lZEtleX0+YFxuICB9IGVsc2UgaWYgKHJlcGVhdCkge1xuICAgIHBhdHRlcm4gPSBgKD88JHtjbGVhbmVkS2V5fT4uKz8pYFxuICB9IGVsc2Uge1xuICAgIHBhdHRlcm4gPSBgKD88JHtjbGVhbmVkS2V5fT5bXi9dKz8pYFxuICB9XG5cbiAgcmV0dXJuIG9wdGlvbmFsXG4gICAgPyBgKD86LyR7aW50ZXJjZXB0aW9uUHJlZml4fSR7cGF0dGVybn0pP2BcbiAgICA6IGAvJHtpbnRlcmNlcHRpb25QcmVmaXh9JHtwYXR0ZXJufWBcbn1cblxuZnVuY3Rpb24gZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgcm91dGU6IHN0cmluZyxcbiAgcHJlZml4Um91dGVLZXlzOiBib29sZWFuLFxuICBpbmNsdWRlU3VmZml4OiBib29sZWFuLFxuICBpbmNsdWRlUHJlZml4OiBib29sZWFuLFxuICBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5czogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGdldFNhZmVSb3V0ZUtleSA9IGJ1aWxkR2V0U2FmZVJvdXRlS2V5KClcbiAgY29uc3Qgcm91dGVLZXlzOiB7IFtuYW1lZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fVxuXG4gIGNvbnN0IHNlZ21lbnRzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoY29uc3Qgc2VnbWVudCBvZiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlKS5zbGljZSgxKS5zcGxpdCgnLycpKSB7XG4gICAgY29uc3QgaGFzSW50ZXJjZXB0aW9uTWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuc29tZSgobSkgPT5cbiAgICAgIHNlZ21lbnQuc3RhcnRzV2l0aChtKVxuICAgIClcblxuICAgIGNvbnN0IHBhcmFtTWF0Y2hlcyA9IHNlZ21lbnQubWF0Y2goUEFSQU1FVEVSX1BBVFRFUk4pIC8vIENoZWNrIGZvciBwYXJhbWV0ZXJzXG5cbiAgICBpZiAoaGFzSW50ZXJjZXB0aW9uTWFya2VyICYmIHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbMl0pIHtcbiAgICAgIC8vIElmIHRoZXJlJ3MgYW4gaW50ZXJjZXB0aW9uIG1hcmtlciwgYWRkIGl0IHRvIHRoZSBzZWdtZW50cy5cbiAgICAgIHNlZ21lbnRzLnB1c2goXG4gICAgICAgIGdldFNhZmVLZXlGcm9tU2VnbWVudCh7XG4gICAgICAgICAgZ2V0U2FmZVJvdXRlS2V5LFxuICAgICAgICAgIGludGVyY2VwdGlvbk1hcmtlcjogcGFyYW1NYXRjaGVzWzFdLFxuICAgICAgICAgIHNlZ21lbnQ6IHBhcmFtTWF0Y2hlc1syXSxcbiAgICAgICAgICByb3V0ZUtleXMsXG4gICAgICAgICAga2V5UHJlZml4OiBwcmVmaXhSb3V0ZUtleXNcbiAgICAgICAgICAgID8gTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWFxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzJdKSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGEgcHJlZml4LCBhZGQgaXQgdG8gdGhlIHNlZ21lbnRzIGlmIGl0J3MgZW5hYmxlZC5cbiAgICAgIGlmIChpbmNsdWRlUHJlZml4ICYmIHBhcmFtTWF0Y2hlc1sxXSkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAocGFyYW1NYXRjaGVzWzFdKX1gKVxuICAgICAgfVxuXG4gICAgICBsZXQgcyA9IGdldFNhZmVLZXlGcm9tU2VnbWVudCh7XG4gICAgICAgIGdldFNhZmVSb3V0ZUtleSxcbiAgICAgICAgc2VnbWVudDogcGFyYW1NYXRjaGVzWzJdLFxuICAgICAgICByb3V0ZUtleXMsXG4gICAgICAgIGtleVByZWZpeDogcHJlZml4Um91dGVLZXlzID8gTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggOiB1bmRlZmluZWQsXG4gICAgICAgIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzLFxuICAgICAgfSlcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBsZWFkaW5nIHNsYXNoIGlmIGluY2x1ZGVQcmVmaXggYWxyZWFkeSBhZGRlZCBpdC5cbiAgICAgIGlmIChpbmNsdWRlUHJlZml4ICYmIHBhcmFtTWF0Y2hlc1sxXSkge1xuICAgICAgICBzID0gcy5zdWJzdHJpbmcoMSlcbiAgICAgIH1cblxuICAgICAgc2VnbWVudHMucHVzaChzKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAoc2VnbWVudCl9YClcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSdzIGEgc3VmZml4LCBhZGQgaXQgdG8gdGhlIHNlZ21lbnRzIGlmIGl0J3MgZW5hYmxlZC5cbiAgICBpZiAoaW5jbHVkZVN1ZmZpeCAmJiBwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzNdKSB7XG4gICAgICBzZWdtZW50cy5wdXNoKGVzY2FwZVN0cmluZ1JlZ2V4cChwYXJhbU1hdGNoZXNbM10pKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzLmpvaW4oJycpLFxuICAgIHJvdXRlS2V5cyxcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gZXh0ZW5kcyBgZ2V0Um91dGVSZWdleGAgZ2VuZXJhdGluZyBhbHNvIGEgbmFtZWQgcmVnZXhwIHdoZXJlXG4gKiBlYWNoIGdyb3VwIGlzIG5hbWVkIGFsb25nIHdpdGggYSByb3V0ZUtleXMgb2JqZWN0IHRoYXQgaW5kZXhlcyB0aGUgYXNzaWduZWRcbiAqIG5hbWVkIGdyb3VwIHdpdGggaXRzIGNvcnJlc3BvbmRpbmcga2V5LiBXaGVuIHRoZSByb3V0ZUtleXMgbmVlZCB0byBiZVxuICogcHJlZml4ZWQgdG8gdW5pcXVlbHkgaWRlbnRpZnkgaW50ZXJuYWxseSB0aGUgXCJwcmVmaXhSb3V0ZUtleVwiIGFyZyBzaG91bGRcbiAqIGJlIFwidHJ1ZVwiIGN1cnJlbnRseSB0aGlzIGlzIG9ubHkgdGhlIGNhc2Ugd2hlbiBjcmVhdGluZyB0aGUgcm91dGVzLW1hbmlmZXN0XG4gKiBkdXJpbmcgdGhlIGJ1aWxkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROYW1lZFJvdXRlUmVnZXgoXG4gIG5vcm1hbGl6ZWRSb3V0ZTogc3RyaW5nLFxuICBvcHRpb25zOiBHZXROYW1lZFJvdXRlUmVnZXhPcHRpb25zXG4pIHtcbiAgY29uc3QgcmVzdWx0ID0gZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgICBub3JtYWxpemVkUm91dGUsXG4gICAgb3B0aW9ucy5wcmVmaXhSb3V0ZUtleXMsXG4gICAgb3B0aW9ucy5pbmNsdWRlU3VmZml4ID8/IGZhbHNlLFxuICAgIG9wdGlvbnMuaW5jbHVkZVByZWZpeCA/PyBmYWxzZSxcbiAgICBvcHRpb25zLmJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzID8/IGZhbHNlXG4gIClcblxuICBsZXQgbmFtZWRSZWdleCA9IHJlc3VsdC5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZVxuICBpZiAoIW9wdGlvbnMuZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaCkge1xuICAgIG5hbWVkUmVnZXggKz0gJyg/Oi8pPydcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uZ2V0Um91dGVSZWdleChub3JtYWxpemVkUm91dGUsIG9wdGlvbnMpLFxuICAgIG5hbWVkUmVnZXg6IGBeJHtuYW1lZFJlZ2V4fSRgLFxuICAgIHJvdXRlS2V5czogcmVzdWx0LnJvdXRlS2V5cyxcbiAgfVxufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIG5hbWVkIHJlZ2V4cC5cbiAqIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNpbmcgZm9yIGJ1aWxkIHRpbWUgb25seS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWVkTWlkZGxld2FyZVJlZ2V4KFxuICBub3JtYWxpemVkUm91dGU6IHN0cmluZyxcbiAgb3B0aW9uczoge1xuICAgIGNhdGNoQWxsPzogYm9vbGVhblxuICB9XG4pIHtcbiAgY29uc3QgeyBwYXJhbWV0ZXJpemVkUm91dGUgfSA9IGdldFBhcmFtZXRyaXplZFJvdXRlKFxuICAgIG5vcm1hbGl6ZWRSb3V0ZSxcbiAgICBmYWxzZSxcbiAgICBmYWxzZVxuICApXG4gIGNvbnN0IHsgY2F0Y2hBbGwgPSB0cnVlIH0gPSBvcHRpb25zXG4gIGlmIChwYXJhbWV0ZXJpemVkUm91dGUgPT09ICcvJykge1xuICAgIGxldCBjYXRjaEFsbFJlZ2V4ID0gY2F0Y2hBbGwgPyAnLionIDogJydcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZWRSZWdleDogYF4vJHtjYXRjaEFsbFJlZ2V4fSRgLFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHsgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGUgfSA9IGdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUoXG4gICAgbm9ybWFsaXplZFJvdXRlLFxuICAgIGZhbHNlLFxuICAgIGZhbHNlLFxuICAgIGZhbHNlLFxuICAgIGZhbHNlXG4gIClcbiAgbGV0IGNhdGNoQWxsR3JvdXBlZFJlZ2V4ID0gY2F0Y2hBbGwgPyAnKD86KC8uKik/KScgOiAnJ1xuICByZXR1cm4ge1xuICAgIG5hbWVkUmVnZXg6IGBeJHtuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZX0ke2NhdGNoQWxsR3JvdXBlZFJlZ2V4fSRgLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0TmFtZWRNaWRkbGV3YXJlUmVnZXgiLCJnZXROYW1lZFJvdXRlUmVnZXgiLCJnZXRSb3V0ZVJlZ2V4IiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJyb3V0ZSIsImluY2x1ZGVTdWZmaXgiLCJpbmNsdWRlUHJlZml4IiwiZ3JvdXBzIiwiZ3JvdXBJbmRleCIsInNlZ21lbnRzIiwic2VnbWVudCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJzbGljZSIsInNwbGl0IiwibWFya2VyTWF0Y2giLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImZpbmQiLCJtIiwic3RhcnRzV2l0aCIsInBhcmFtTWF0Y2hlcyIsIm1hdGNoIiwiUEFSQU1FVEVSX1BBVFRFUk4iLCJrZXkiLCJvcHRpb25hbCIsInJlcGVhdCIsInBhcnNlTWF0Y2hlZFBhcmFtZXRlciIsInBvcyIsInB1c2giLCJlc2NhcGVTdHJpbmdSZWdleHAiLCJzIiwic3Vic3RyaW5nIiwicGFyYW1ldGVyaXplZFJvdXRlIiwiam9pbiIsIm5vcm1hbGl6ZWRSb3V0ZSIsImV4Y2x1ZGVPcHRpb25hbFRyYWlsaW5nU2xhc2giLCJyZSIsIlJlZ0V4cCIsImJ1aWxkR2V0U2FmZVJvdXRlS2V5IiwiaSIsInJvdXRlS2V5IiwiaiIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIk1hdGgiLCJmbG9vciIsImdldFNhZmVLZXlGcm9tU2VnbWVudCIsImludGVyY2VwdGlvbk1hcmtlciIsImdldFNhZmVSb3V0ZUtleSIsInJvdXRlS2V5cyIsImtleVByZWZpeCIsImJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzIiwiY2xlYW5lZEtleSIsInJlcGxhY2UiLCJpbnZhbGlkS2V5IiwibGVuZ3RoIiwiaXNOYU4iLCJwYXJzZUludCIsImR1cGxpY2F0ZUtleSIsImludGVyY2VwdGlvblByZWZpeCIsInBhdHRlcm4iLCJnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlIiwicHJlZml4Um91dGVLZXlzIiwiaGFzSW50ZXJjZXB0aW9uTWFya2VyIiwic29tZSIsIk5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVgiLCJ1bmRlZmluZWQiLCJORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCIsIm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlIiwib3B0aW9ucyIsInJlc3VsdCIsIm5hbWVkUmVnZXgiLCJjYXRjaEFsbCIsImNhdGNoQWxsUmVnZXgiLCJjYXRjaEFsbEdyb3VwZWRSZWdleCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js": /*!********************************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js ***! \********************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// In output: export mode, the build id is added to the start of the HTML\n// document, directly after the doctype declaration. During a prefetch, the\n// client performs a range request to get the build id, so it can check whether\n// the target page belongs to the same build.\n//\n// The first 64 bytes of the document are requested. The exact number isn't\n// too important; it must be larger than the build id + doctype + closing and\n// ending comment markers, but it doesn't need to match the end of the\n// comment exactly.\n//\n// Build ids are 21 bytes long in the default implementation, though this\n// can be overridden in the Next.js config. For the purposes of this check,\n// it's OK to only match the start of the id, so we'll truncate it if exceeds\n// a certain length.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DOC_PREFETCH_RANGE_HEADER_VALUE: function() {\n return DOC_PREFETCH_RANGE_HEADER_VALUE;\n },\n doesExportedHtmlMatchBuildId: function() {\n return doesExportedHtmlMatchBuildId;\n },\n insertBuildIdComment: function() {\n return insertBuildIdComment;\n }\n});\nconst DOCTYPE_PREFIX = '<!DOCTYPE html>' // 15 bytes\n;\nconst MAX_BUILD_ID_LENGTH = 24;\nconst DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63';\nfunction escapeBuildId(buildId) {\n // If the build id is longer than the given limit, it's OK for our purposes\n // to only match the beginning.\n const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH);\n // Replace hyphens with underscores so it doesn't break the HTML comment.\n // (Unlikely, but if this did happen it would break the whole document.)\n return truncated.replace(/-/g, '_');\n}\nfunction insertBuildIdComment(originalHtml, buildId) {\n if (buildId.includes('-->') || // React always inserts a doctype at the start of the document. Skip if it\n // isn't present. Shouldn't happen; suggests an issue elsewhere.\n !originalHtml.startsWith(DOCTYPE_PREFIX)) {\n // Return the original HTML unchanged. This means the document will not\n // be prefetched.\n // TODO: The build id comment is currently only used during prefetches, but\n // if we eventually use this mechanism for regular navigations, we may need\n // to error during build if we fail to insert it for some reason.\n return originalHtml;\n }\n // The comment must be inserted after the doctype.\n return originalHtml.replace(DOCTYPE_PREFIX, DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n}\nfunction doesExportedHtmlMatchBuildId(partialHtmlDocument, buildId) {\n // Check whether the document starts with the expected buildId.\n return partialHtmlDocument.startsWith(DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n} //# sourceMappingURL=output-export-prefetch-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9vdXRwdXQtZXhwb3J0LXByZWZldGNoLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsK0VBQStFO0FBQy9FLDZDQUE2QztBQUM3QyxFQUFFO0FBQ0YsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxzRUFBc0U7QUFDdEUsbUJBQW1CO0FBQ25CLEVBQUU7QUFDRix5RUFBeUU7QUFDekUsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxvQkFBb0I7Ozs7Ozs7Ozs7Ozs7SUFNUEEsK0JBQStCO2VBQS9CQTs7SUFpQ0dDLDRCQUE0QjtlQUE1QkE7O0lBdEJBQyxvQkFBb0I7ZUFBcEJBOzs7QUFmaEIsTUFBTUMsaUJBQWlCLGtCQUFrQixXQUFXOztBQUNwRCxNQUFNQyxzQkFBc0I7QUFHckIsTUFBTUosa0NBQWtDO0FBRS9DLFNBQVNLLGNBQWNDLE9BQWU7SUFDcEMsMkVBQTJFO0lBQzNFLCtCQUErQjtJQUMvQixNQUFNQyxZQUFZRCxRQUFRRSxLQUFLLENBQUMsR0FBR0o7SUFDbkMseUVBQXlFO0lBQ3pFLHdFQUF3RTtJQUN4RSxPQUFPRyxVQUFVRSxPQUFPLENBQUMsTUFBTTtBQUNqQztBQUVPLFNBQVNQLHFCQUFxQlEsWUFBb0IsRUFBRUosT0FBZTtJQUN4RSxJQUNFLFFBQ1FLLFFBQVEsQ0FBQyxVQUNqQiwrQkFGMEQsMkNBRWdCO0lBQzFFLGdFQUFnRTtJQUNoRSxDQUFDRCxhQUFhRSxVQUFVLENBQUNULGlCQUN6QjtRQUNBLHVFQUF1RTtRQUN2RSxpQkFBaUI7UUFDakIsMkVBQTJFO1FBQzNFLDJFQUEyRTtRQUMzRSxpRUFBaUU7UUFDakUsT0FBT087SUFDVDtJQUNBLGtEQUFrRDtJQUNsRCxPQUFPQSxhQUFhRCxPQUFPLENBQ3pCTixnQkFDQUEsaUJBQWlCLFNBQVNFLGNBQWNDLFdBQVc7QUFFdkQ7QUFFTyxTQUFTTCw2QkFDZFksbUJBQTJCLEVBQzNCUCxPQUFlO0lBRWYsK0RBQStEO0lBQy9ELE9BQU9PLG9CQUFvQkQsVUFBVSxDQUNuQ1QsaUJBQWlCLFNBQVNFLGNBQWNDLFdBQVc7QUFFdkQiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3NlZ21lbnQtY2FjaGUvb3V0cHV0LWV4cG9ydC1wcmVmZXRjaC1lbmNvZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbiBvdXRwdXQ6IGV4cG9ydCBtb2RlLCB0aGUgYnVpbGQgaWQgaXMgYWRkZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBIVE1MXG4vLyBkb2N1bWVudCwgZGlyZWN0bHkgYWZ0ZXIgdGhlIGRvY3R5cGUgZGVjbGFyYXRpb24uIER1cmluZyBhIHByZWZldGNoLCB0aGVcbi8vIGNsaWVudCBwZXJmb3JtcyBhIHJhbmdlIHJlcXVlc3QgdG8gZ2V0IHRoZSBidWlsZCBpZCwgc28gaXQgY2FuIGNoZWNrIHdoZXRoZXJcbi8vIHRoZSB0YXJnZXQgcGFnZSBiZWxvbmdzIHRvIHRoZSBzYW1lIGJ1aWxkLlxuLy9cbi8vIFRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZG9jdW1lbnQgYXJlIHJlcXVlc3RlZC4gVGhlIGV4YWN0IG51bWJlciBpc24ndFxuLy8gdG9vIGltcG9ydGFudDsgaXQgbXVzdCBiZSBsYXJnZXIgdGhhbiB0aGUgYnVpbGQgaWQgKyBkb2N0eXBlICsgY2xvc2luZyBhbmRcbi8vIGVuZGluZyBjb21tZW50IG1hcmtlcnMsIGJ1dCBpdCBkb2Vzbid0IG5lZWQgdG8gbWF0Y2ggdGhlIGVuZCBvZiB0aGVcbi8vIGNvbW1lbnQgZXhhY3RseS5cbi8vXG4vLyBCdWlsZCBpZHMgYXJlIDIxIGJ5dGVzIGxvbmcgaW4gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIHRob3VnaCB0aGlzXG4vLyBjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgTmV4dC5qcyBjb25maWcuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBjaGVjayxcbi8vIGl0J3MgT0sgdG8gb25seSBtYXRjaCB0aGUgc3RhcnQgb2YgdGhlIGlkLCBzbyB3ZSdsbCB0cnVuY2F0ZSBpdCBpZiBleGNlZWRzXG4vLyBhIGNlcnRhaW4gbGVuZ3RoLlxuXG5jb25zdCBET0NUWVBFX1BSRUZJWCA9ICc8IURPQ1RZUEUgaHRtbD4nIC8vIDE1IGJ5dGVzXG5jb25zdCBNQVhfQlVJTERfSURfTEVOR1RIID0gMjRcblxuLy8gUmVxdWVzdCB0aGUgZmlyc3QgNjQgYnl0ZXMuIFRoZSBSYW5nZSBoZWFkZXIgaXMgaW5jbHVzaXZlIG9mIHRoZSBlbmQgdmFsdWUuXG5leHBvcnQgY29uc3QgRE9DX1BSRUZFVENIX1JBTkdFX0hFQURFUl9WQUxVRSA9ICdieXRlcz0wLTYzJ1xuXG5mdW5jdGlvbiBlc2NhcGVCdWlsZElkKGJ1aWxkSWQ6IHN0cmluZykge1xuICAvLyBJZiB0aGUgYnVpbGQgaWQgaXMgbG9uZ2VyIHRoYW4gdGhlIGdpdmVuIGxpbWl0LCBpdCdzIE9LIGZvciBvdXIgcHVycG9zZXNcbiAgLy8gdG8gb25seSBtYXRjaCB0aGUgYmVnaW5uaW5nLlxuICBjb25zdCB0cnVuY2F0ZWQgPSBidWlsZElkLnNsaWNlKDAsIE1BWF9CVUlMRF9JRF9MRU5HVEgpXG4gIC8vIFJlcGxhY2UgaHlwaGVucyB3aXRoIHVuZGVyc2NvcmVzIHNvIGl0IGRvZXNuJ3QgYnJlYWsgdGhlIEhUTUwgY29tbWVudC5cbiAgLy8gKFVubGlrZWx5LCBidXQgaWYgdGhpcyBkaWQgaGFwcGVuIGl0IHdvdWxkIGJyZWFrIHRoZSB3aG9sZSBkb2N1bWVudC4pXG4gIHJldHVybiB0cnVuY2F0ZWQucmVwbGFjZSgvLS9nLCAnXycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRCdWlsZElkQ29tbWVudChvcmlnaW5hbEh0bWw6IHN0cmluZywgYnVpbGRJZDogc3RyaW5nKSB7XG4gIGlmIChcbiAgICAvLyBTa2lwIGlmIHRoZSBidWlsZCBpZCBjb250YWlucyBhIGNsb3NpbmcgY29tbWVudCBtYXJrZXIuXG4gICAgYnVpbGRJZC5pbmNsdWRlcygnLS0+JykgfHxcbiAgICAvLyBSZWFjdCBhbHdheXMgaW5zZXJ0cyBhIGRvY3R5cGUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudC4gU2tpcCBpZiBpdFxuICAgIC8vIGlzbid0IHByZXNlbnQuIFNob3VsZG4ndCBoYXBwZW47IHN1Z2dlc3RzIGFuIGlzc3VlIGVsc2V3aGVyZS5cbiAgICAhb3JpZ2luYWxIdG1sLnN0YXJ0c1dpdGgoRE9DVFlQRV9QUkVGSVgpXG4gICkge1xuICAgIC8vIFJldHVybiB0aGUgb3JpZ2luYWwgSFRNTCB1bmNoYW5nZWQuIFRoaXMgbWVhbnMgdGhlIGRvY3VtZW50IHdpbGwgbm90XG4gICAgLy8gYmUgcHJlZmV0Y2hlZC5cbiAgICAvLyBUT0RPOiBUaGUgYnVpbGQgaWQgY29tbWVudCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGR1cmluZyBwcmVmZXRjaGVzLCBidXRcbiAgICAvLyBpZiB3ZSBldmVudHVhbGx5IHVzZSB0aGlzIG1lY2hhbmlzbSBmb3IgcmVndWxhciBuYXZpZ2F0aW9ucywgd2UgbWF5IG5lZWRcbiAgICAvLyB0byBlcnJvciBkdXJpbmcgYnVpbGQgaWYgd2UgZmFpbCB0byBpbnNlcnQgaXQgZm9yIHNvbWUgcmVhc29uLlxuICAgIHJldHVybiBvcmlnaW5hbEh0bWxcbiAgfVxuICAvLyBUaGUgY29tbWVudCBtdXN0IGJlIGluc2VydGVkIGFmdGVyIHRoZSBkb2N0eXBlLlxuICByZXR1cm4gb3JpZ2luYWxIdG1sLnJlcGxhY2UoXG4gICAgRE9DVFlQRV9QUkVGSVgsXG4gICAgRE9DVFlQRV9QUkVGSVggKyAnPCEtLScgKyBlc2NhcGVCdWlsZElkKGJ1aWxkSWQpICsgJy0tPidcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9lc0V4cG9ydGVkSHRtbE1hdGNoQnVpbGRJZChcbiAgcGFydGlhbEh0bWxEb2N1bWVudDogc3RyaW5nLFxuICBidWlsZElkOiBzdHJpbmdcbikge1xuICAvLyBDaGVjayB3aGV0aGVyIHRoZSBkb2N1bWVudCBzdGFydHMgd2l0aCB0aGUgZXhwZWN0ZWQgYnVpbGRJZC5cbiAgcmV0dXJuIHBhcnRpYWxIdG1sRG9jdW1lbnQuc3RhcnRzV2l0aChcbiAgICBET0NUWVBFX1BSRUZJWCArICc8IS0tJyArIGVzY2FwZUJ1aWxkSWQoYnVpbGRJZCkgKyAnLS0+J1xuICApXG59XG4iXSwibmFtZXMiOlsiRE9DX1BSRUZFVENIX1JBTkdFX0hFQURFUl9WQUxVRSIsImRvZXNFeHBvcnRlZEh0bWxNYXRjaEJ1aWxkSWQiLCJpbnNlcnRCdWlsZElkQ29tbWVudCIsIkRPQ1RZUEVfUFJFRklYIiwiTUFYX0JVSUxEX0lEX0xFTkdUSCIsImVzY2FwZUJ1aWxkSWQiLCJidWlsZElkIiwidHJ1bmNhdGVkIiwic2xpY2UiLCJyZXBsYWNlIiwib3JpZ2luYWxIdG1sIiwiaW5jbHVkZXMiLCJzdGFydHNXaXRoIiwicGFydGlhbEh0bWxEb2N1bWVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js": /*!***********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ROOT_SEGMENT_CACHE_KEY: function() {\n return ROOT_SEGMENT_CACHE_KEY;\n },\n ROOT_SEGMENT_REQUEST_KEY: function() {\n return ROOT_SEGMENT_REQUEST_KEY;\n },\n appendSegmentCacheKeyPart: function() {\n return appendSegmentCacheKeyPart;\n },\n appendSegmentRequestKeyPart: function() {\n return appendSegmentRequestKeyPart;\n },\n convertSegmentPathToStaticExportFilename: function() {\n return convertSegmentPathToStaticExportFilename;\n },\n createSegmentCacheKeyPart: function() {\n return createSegmentCacheKeyPart;\n },\n createSegmentRequestKeyPart: function() {\n return createSegmentRequestKeyPart;\n }\n});\nconst _segment = __webpack_require__(/*! ../segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nconst ROOT_SEGMENT_REQUEST_KEY = '';\nconst ROOT_SEGMENT_CACHE_KEY = '';\nfunction createSegmentRequestKeyPart(segment) {\n if (typeof segment === 'string') {\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n // The Flight Router State type sometimes includes the search params in\n // the page segment. However, the Segment Cache tracks this as a separate\n // key. So, we strip the search params here, and then add them back when\n // the cache entry is turned back into a FlightRouterState. This is an\n // unfortunate consequence of the FlightRouteState being used both as a\n // transport type and as a cache key; we'll address this once more of the\n // Segment Cache implementation has settled.\n // TODO: We should hoist the search params out of the FlightRouterState\n // type entirely, This is our plan for dynamic route params, too.\n return _segment.PAGE_SEGMENT_KEY;\n }\n const safeName = // But params typically don't include the leading slash. We should use\n // a different encoding to avoid this special case.\n segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment);\n // Since this is not a dynamic segment, it's fully encoded. It does not\n // need to be \"hydrated\" with a param value.\n return safeName;\n }\n const name = segment[0];\n const paramType = segment[2];\n const safeName = encodeToFilesystemAndURLSafeString(name);\n const encodedName = '$' + paramType + '$' + safeName;\n return encodedName;\n}\nfunction appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) {\n // Aside from being filesystem safe, segment keys are also designed so that\n // each segment and parallel route creates its own subdirectory. Roughly in\n // the same shape as the source app directory. This is mostly just for easier\n // debugging (you can open up the build folder and navigate the output); if\n // we wanted to do we could just use a flat structure.\n // Omit the parallel route key for children, since this is the most\n // common case. Saves some bytes (and it's what the app directory does).\n const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + childRequestKeyPart;\n return parentRequestKey + '/' + slotKey;\n}\nfunction createSegmentCacheKeyPart(requestKeyPart, segment) {\n if (typeof segment === 'string') {\n return requestKeyPart;\n }\n const paramValue = segment[1];\n const safeValue = encodeToFilesystemAndURLSafeString(paramValue);\n return requestKeyPart + '$' + safeValue;\n}\nfunction appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) {\n const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + childCacheKeyPart;\n return parentSegmentKey + '/' + slotKey;\n}\n// Define a regex pattern to match the most common characters found in a route\n// param. It excludes anything that might not be cross-platform filesystem\n// compatible, like |. It does not need to be precise because the fallback is to\n// just base64url-encode the whole parameter, which is fine; we just don't do it\n// by default for compactness, and for easier debugging.\nconst simpleParamValueRegex = /^[a-zA-Z0-9\\-_@]+$/;\nfunction encodeToFilesystemAndURLSafeString(value) {\n if (simpleParamValueRegex.test(value)) {\n return value;\n }\n // If there are any unsafe characters, base64url-encode the entire value.\n // We also add a ! prefix so it doesn't collide with the simple case.\n const base64url = btoa(value).replace(/\\+/g, '-') // Replace '+' with '-'\n .replace(/\\//g, '_') // Replace '/' with '_'\n .replace(/=+$/, '') // Remove trailing '='\n ;\n return '!' + base64url;\n}\nfunction convertSegmentPathToStaticExportFilename(segmentPath) {\n return \"__next\" + segmentPath.replace(/\\//g, '.') + \".txt\";\n} //# sourceMappingURL=segment-value-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVlhQSxzQkFBc0I7ZUFBdEJBOztJQURBQyx3QkFBd0I7ZUFBeEJBOztJQXVFR0MseUJBQXlCO2VBQXpCQTs7SUFoQ0FDLDJCQUEyQjtlQUEzQkE7O0lBZ0VBQyx3Q0FBd0M7ZUFBeENBOztJQTVDQUMseUJBQXlCO2VBQXpCQTs7SUF4REFDLDJCQUEyQjtlQUEzQkE7OztxQ0FkaUI7QUFXMUIsTUFBTUwsMkJBQTJCO0FBQ2pDLE1BQU1ELHlCQUF5QjtBQUUvQixTQUFTTSw0QkFDZEMsT0FBaUM7SUFFakMsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsSUFBSUEsUUFBUUMsVUFBVSxDQUFDQyxTQUFBQSxnQkFBZ0IsR0FBRztZQUN4Qyx1RUFBdUU7WUFDdkUseUVBQXlFO1lBQ3pFLHdFQUF3RTtZQUN4RSxzRUFBc0U7WUFDdEUsdUVBQXVFO1lBQ3ZFLHlFQUF5RTtZQUN6RSw0Q0FBNEM7WUFDNUMsdUVBQXVFO1lBQ3ZFLGlFQUFpRTtZQUNqRSxPQUFPQSxTQUFBQSxnQkFBZ0I7UUFDekI7UUFDQSxNQUFNQyxXQUNKLHFFQUFxRSxDQUNDO1FBQ3RFLG1EQUFtRDtRQUNuREgsWUFBWSxnQkFDUixlQUNBSSxtQ0FBbUNKO1FBQ3pDLHVFQUF1RTtRQUN2RSw0Q0FBNEM7UUFDNUMsT0FBT0c7SUFDVDtJQUVBLE1BQU1FLE9BQU9MLE9BQU8sQ0FBQyxFQUFFO0lBQ3ZCLE1BQU1NLFlBQVlOLE9BQU8sQ0FBQyxFQUFFO0lBQzVCLE1BQU1HLFdBQVdDLG1DQUFtQ0M7SUFFcEQsTUFBTUUsY0FBYyxNQUFNRCxZQUFZLE1BQU1IO0lBQzVDLE9BQU9JO0FBQ1Q7QUFFTyxTQUFTWCw0QkFDZFksZ0JBQW1DLEVBQ25DQyxnQkFBd0IsRUFDeEJDLG1CQUEwQztJQUUxQywyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDZFQUE2RTtJQUM3RSwyRUFBMkU7SUFDM0Usc0RBQXNEO0lBRXRELG1FQUFtRTtJQUNuRSx3RUFBd0U7SUFDeEUsTUFBTUMsVUFDSkYscUJBQXFCLGFBQ2pCQyxzQkFDQyxNQUFHTixtQ0FBbUNLLG9CQUFrQixNQUFHQztJQUNsRSxPQUFRRixtQkFBbUIsTUFBTUc7QUFDbkM7QUFFTyxTQUFTYiwwQkFDZGMsY0FBcUMsRUFDckNaLE9BQWlDO0lBRWpDLElBQUksT0FBT0EsWUFBWSxVQUFVO1FBQy9CLE9BQU9ZO0lBQ1Q7SUFDQSxNQUFNQyxhQUFhYixPQUFPLENBQUMsRUFBRTtJQUM3QixNQUFNYyxZQUFZVixtQ0FBbUNTO0lBQ3JELE9BQVFELGlCQUFpQixNQUFNRTtBQUNqQztBQUVPLFNBQVNuQiwwQkFDZG9CLGdCQUFpQyxFQUNqQ04sZ0JBQXdCLEVBQ3hCTyxpQkFBc0M7SUFFdEMsTUFBTUwsVUFDSkYscUJBQXFCLGFBQ2pCTyxvQkFDQyxNQUFHWixtQ0FBbUNLLG9CQUFrQixNQUFHTztJQUNsRSxPQUFRRCxtQkFBbUIsTUFBTUo7QUFDbkM7QUFFQSw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBQzFFLGdGQUFnRjtBQUNoRixnRkFBZ0Y7QUFDaEYsd0RBQXdEO0FBQ3hELE1BQU1NLHdCQUF3QjtBQUU5QixTQUFTYixtQ0FBbUNjLEtBQWE7SUFDdkQsSUFBSUQsc0JBQXNCRSxJQUFJLENBQUNELFFBQVE7UUFDckMsT0FBT0E7SUFDVDtJQUNBLHlFQUF5RTtJQUN6RSxxRUFBcUU7SUFDckUsTUFBTUUsWUFBWUMsS0FBS0gsT0FDcEJJLE9BQU8sQ0FBQyxPQUFPLEtBQUssdUJBQXVCO0tBQzNDQSxPQUFPLENBQUMsT0FBTyxLQUFLLHVCQUF1QjtLQUMzQ0EsT0FBTyxDQUFDLE9BQU8sSUFBSSxzQkFBc0I7O0lBQzVDLE9BQU8sTUFBTUY7QUFDZjtBQUVPLFNBQVN2Qix5Q0FDZDBCLFdBQW1CO0lBRW5CLE9BQVEsV0FBUUEsWUFBWUQsT0FBTyxDQUFDLE9BQU8sT0FBSztBQUNsRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi9zZWdtZW50J1xuaW1wb3J0IHR5cGUgeyBTZWdtZW50IGFzIEZsaWdodFJvdXRlclN0YXRlU2VnbWVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG4vLyBUeXBlU2NyaXB0IHRyaWNrIHRvIHNpbXVsYXRlIG9wYXF1ZSB0eXBlcywgbGlrZSBpbiBGbG93LlxudHlwZSBPcGFxdWU8SywgVD4gPSBUICYgeyBfX2JyYW5kOiBLIH1cblxuZXhwb3J0IHR5cGUgU2VnbWVudFJlcXVlc3RLZXlQYXJ0ID0gT3BhcXVlPCdTZWdtZW50UmVxdWVzdEtleVBhcnQnLCBzdHJpbmc+XG5leHBvcnQgdHlwZSBTZWdtZW50UmVxdWVzdEtleSA9IE9wYXF1ZTwnU2VnbWVudFJlcXVlc3RLZXknLCBzdHJpbmc+XG5leHBvcnQgdHlwZSBTZWdtZW50Q2FjaGVLZXlQYXJ0ID0gT3BhcXVlPCdTZWdtZW50Q2FjaGVLZXlQYXJ0Jywgc3RyaW5nPlxuZXhwb3J0IHR5cGUgU2VnbWVudENhY2hlS2V5ID0gT3BhcXVlPCdTZWdtZW50Q2FjaGVLZXknLCBzdHJpbmc+XG5cbmV4cG9ydCBjb25zdCBST09UX1NFR01FTlRfUkVRVUVTVF9LRVkgPSAnJyBhcyBTZWdtZW50UmVxdWVzdEtleVxuZXhwb3J0IGNvbnN0IFJPT1RfU0VHTUVOVF9DQUNIRV9LRVkgPSAnJyBhcyBTZWdtZW50Q2FjaGVLZXlcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydChcbiAgc2VnbWVudDogRmxpZ2h0Um91dGVyU3RhdGVTZWdtZW50XG4pOiBTZWdtZW50UmVxdWVzdEtleVBhcnQge1xuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgICAgLy8gVGhlIEZsaWdodCBSb3V0ZXIgU3RhdGUgdHlwZSBzb21ldGltZXMgaW5jbHVkZXMgdGhlIHNlYXJjaCBwYXJhbXMgaW5cbiAgICAgIC8vIHRoZSBwYWdlIHNlZ21lbnQuIEhvd2V2ZXIsIHRoZSBTZWdtZW50IENhY2hlIHRyYWNrcyB0aGlzIGFzIGEgc2VwYXJhdGVcbiAgICAgIC8vIGtleS4gU28sIHdlIHN0cmlwIHRoZSBzZWFyY2ggcGFyYW1zIGhlcmUsIGFuZCB0aGVuIGFkZCB0aGVtIGJhY2sgd2hlblxuICAgICAgLy8gdGhlIGNhY2hlIGVudHJ5IGlzIHR1cm5lZCBiYWNrIGludG8gYSBGbGlnaHRSb3V0ZXJTdGF0ZS4gVGhpcyBpcyBhblxuICAgICAgLy8gdW5mb3J0dW5hdGUgY29uc2VxdWVuY2Ugb2YgdGhlIEZsaWdodFJvdXRlU3RhdGUgYmVpbmcgdXNlZCBib3RoIGFzIGFcbiAgICAgIC8vIHRyYW5zcG9ydCB0eXBlIGFuZCBhcyBhIGNhY2hlIGtleTsgd2UnbGwgYWRkcmVzcyB0aGlzIG9uY2UgbW9yZSBvZiB0aGVcbiAgICAgIC8vIFNlZ21lbnQgQ2FjaGUgaW1wbGVtZW50YXRpb24gaGFzIHNldHRsZWQuXG4gICAgICAvLyBUT0RPOiBXZSBzaG91bGQgaG9pc3QgdGhlIHNlYXJjaCBwYXJhbXMgb3V0IG9mIHRoZSBGbGlnaHRSb3V0ZXJTdGF0ZVxuICAgICAgLy8gdHlwZSBlbnRpcmVseSwgVGhpcyBpcyBvdXIgcGxhbiBmb3IgZHluYW1pYyByb3V0ZSBwYXJhbXMsIHRvby5cbiAgICAgIHJldHVybiBQQUdFX1NFR01FTlRfS0VZIGFzIFNlZ21lbnRSZXF1ZXN0S2V5UGFydFxuICAgIH1cbiAgICBjb25zdCBzYWZlTmFtZSA9XG4gICAgICAvLyBUT0RPOiBGbGlnaHRSb3V0ZXJTdGF0ZSBlbmNvZGVzIE5vdCBGb3VuZCByb3V0ZXMgYXMgXCIvX25vdC1mb3VuZFwiLlxuICAgICAgLy8gQnV0IHBhcmFtcyB0eXBpY2FsbHkgZG9uJ3QgaW5jbHVkZSB0aGUgbGVhZGluZyBzbGFzaC4gV2Ugc2hvdWxkIHVzZVxuICAgICAgLy8gYSBkaWZmZXJlbnQgZW5jb2RpbmcgdG8gYXZvaWQgdGhpcyBzcGVjaWFsIGNhc2UuXG4gICAgICBzZWdtZW50ID09PSAnL19ub3QtZm91bmQnXG4gICAgICAgID8gJ19ub3QtZm91bmQnXG4gICAgICAgIDogZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyhzZWdtZW50KVxuICAgIC8vIFNpbmNlIHRoaXMgaXMgbm90IGEgZHluYW1pYyBzZWdtZW50LCBpdCdzIGZ1bGx5IGVuY29kZWQuIEl0IGRvZXMgbm90XG4gICAgLy8gbmVlZCB0byBiZSBcImh5ZHJhdGVkXCIgd2l0aCBhIHBhcmFtIHZhbHVlLlxuICAgIHJldHVybiBzYWZlTmFtZSBhcyBTZWdtZW50UmVxdWVzdEtleVBhcnRcbiAgfVxuXG4gIGNvbnN0IG5hbWUgPSBzZWdtZW50WzBdXG4gIGNvbnN0IHBhcmFtVHlwZSA9IHNlZ21lbnRbMl1cbiAgY29uc3Qgc2FmZU5hbWUgPSBlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKG5hbWUpXG5cbiAgY29uc3QgZW5jb2RlZE5hbWUgPSAnJCcgKyBwYXJhbVR5cGUgKyAnJCcgKyBzYWZlTmFtZVxuICByZXR1cm4gZW5jb2RlZE5hbWUgYXMgU2VnbWVudFJlcXVlc3RLZXlQYXJ0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRTZWdtZW50UmVxdWVzdEtleVBhcnQoXG4gIHBhcmVudFJlcXVlc3RLZXk6IFNlZ21lbnRSZXF1ZXN0S2V5LFxuICBwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmcsXG4gIGNoaWxkUmVxdWVzdEtleVBhcnQ6IFNlZ21lbnRSZXF1ZXN0S2V5UGFydFxuKTogU2VnbWVudFJlcXVlc3RLZXkge1xuICAvLyBBc2lkZSBmcm9tIGJlaW5nIGZpbGVzeXN0ZW0gc2FmZSwgc2VnbWVudCBrZXlzIGFyZSBhbHNvIGRlc2lnbmVkIHNvIHRoYXRcbiAgLy8gZWFjaCBzZWdtZW50IGFuZCBwYXJhbGxlbCByb3V0ZSBjcmVhdGVzIGl0cyBvd24gc3ViZGlyZWN0b3J5LiBSb3VnaGx5IGluXG4gIC8vIHRoZSBzYW1lIHNoYXBlIGFzIHRoZSBzb3VyY2UgYXBwIGRpcmVjdG9yeS4gVGhpcyBpcyBtb3N0bHkganVzdCBmb3IgZWFzaWVyXG4gIC8vIGRlYnVnZ2luZyAoeW91IGNhbiBvcGVuIHVwIHRoZSBidWlsZCBmb2xkZXIgYW5kIG5hdmlnYXRlIHRoZSBvdXRwdXQpOyBpZlxuICAvLyB3ZSB3YW50ZWQgdG8gZG8gd2UgY291bGQganVzdCB1c2UgYSBmbGF0IHN0cnVjdHVyZS5cblxuICAvLyBPbWl0IHRoZSBwYXJhbGxlbCByb3V0ZSBrZXkgZm9yIGNoaWxkcmVuLCBzaW5jZSB0aGlzIGlzIHRoZSBtb3N0XG4gIC8vIGNvbW1vbiBjYXNlLiBTYXZlcyBzb21lIGJ5dGVzIChhbmQgaXQncyB3aGF0IHRoZSBhcHAgZGlyZWN0b3J5IGRvZXMpLlxuICBjb25zdCBzbG90S2V5ID1cbiAgICBwYXJhbGxlbFJvdXRlS2V5ID09PSAnY2hpbGRyZW4nXG4gICAgICA/IGNoaWxkUmVxdWVzdEtleVBhcnRcbiAgICAgIDogYEAke2VuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcocGFyYWxsZWxSb3V0ZUtleSl9LyR7Y2hpbGRSZXF1ZXN0S2V5UGFydH1gXG4gIHJldHVybiAocGFyZW50UmVxdWVzdEtleSArICcvJyArIHNsb3RLZXkpIGFzIFNlZ21lbnRSZXF1ZXN0S2V5XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWdtZW50Q2FjaGVLZXlQYXJ0KFxuICByZXF1ZXN0S2V5UGFydDogU2VnbWVudFJlcXVlc3RLZXlQYXJ0LFxuICBzZWdtZW50OiBGbGlnaHRSb3V0ZXJTdGF0ZVNlZ21lbnRcbik6IFNlZ21lbnRDYWNoZUtleVBhcnQge1xuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHJlcXVlc3RLZXlQYXJ0IGFzIGFueSBhcyBTZWdtZW50Q2FjaGVLZXlQYXJ0XG4gIH1cbiAgY29uc3QgcGFyYW1WYWx1ZSA9IHNlZ21lbnRbMV1cbiAgY29uc3Qgc2FmZVZhbHVlID0gZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyhwYXJhbVZhbHVlKVxuICByZXR1cm4gKHJlcXVlc3RLZXlQYXJ0ICsgJyQnICsgc2FmZVZhbHVlKSBhcyBTZWdtZW50Q2FjaGVLZXlQYXJ0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRTZWdtZW50Q2FjaGVLZXlQYXJ0KFxuICBwYXJlbnRTZWdtZW50S2V5OiBTZWdtZW50Q2FjaGVLZXksXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyxcbiAgY2hpbGRDYWNoZUtleVBhcnQ6IFNlZ21lbnRDYWNoZUtleVBhcnRcbik6IFNlZ21lbnRDYWNoZUtleSB7XG4gIGNvbnN0IHNsb3RLZXkgPVxuICAgIHBhcmFsbGVsUm91dGVLZXkgPT09ICdjaGlsZHJlbidcbiAgICAgID8gY2hpbGRDYWNoZUtleVBhcnRcbiAgICAgIDogYEAke2VuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcocGFyYWxsZWxSb3V0ZUtleSl9LyR7Y2hpbGRDYWNoZUtleVBhcnR9YFxuICByZXR1cm4gKHBhcmVudFNlZ21lbnRLZXkgKyAnLycgKyBzbG90S2V5KSBhcyBTZWdtZW50Q2FjaGVLZXlcbn1cblxuLy8gRGVmaW5lIGEgcmVnZXggcGF0dGVybiB0byBtYXRjaCB0aGUgbW9zdCBjb21tb24gY2hhcmFjdGVycyBmb3VuZCBpbiBhIHJvdXRlXG4vLyBwYXJhbS4gSXQgZXhjbHVkZXMgYW55dGhpbmcgdGhhdCBtaWdodCBub3QgYmUgY3Jvc3MtcGxhdGZvcm0gZmlsZXN5c3RlbVxuLy8gY29tcGF0aWJsZSwgbGlrZSB8LiBJdCBkb2VzIG5vdCBuZWVkIHRvIGJlIHByZWNpc2UgYmVjYXVzZSB0aGUgZmFsbGJhY2sgaXMgdG9cbi8vIGp1c3QgYmFzZTY0dXJsLWVuY29kZSB0aGUgd2hvbGUgcGFyYW1ldGVyLCB3aGljaCBpcyBmaW5lOyB3ZSBqdXN0IGRvbid0IGRvIGl0XG4vLyBieSBkZWZhdWx0IGZvciBjb21wYWN0bmVzcywgYW5kIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuY29uc3Qgc2ltcGxlUGFyYW1WYWx1ZVJlZ2V4ID0gL15bYS16QS1aMC05XFwtX0BdKyQvXG5cbmZ1bmN0aW9uIGVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcodmFsdWU6IHN0cmluZykge1xuICBpZiAoc2ltcGxlUGFyYW1WYWx1ZVJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cbiAgLy8gSWYgdGhlcmUgYXJlIGFueSB1bnNhZmUgY2hhcmFjdGVycywgYmFzZTY0dXJsLWVuY29kZSB0aGUgZW50aXJlIHZhbHVlLlxuICAvLyBXZSBhbHNvIGFkZCBhICEgcHJlZml4IHNvIGl0IGRvZXNuJ3QgY29sbGlkZSB3aXRoIHRoZSBzaW1wbGUgY2FzZS5cbiAgY29uc3QgYmFzZTY0dXJsID0gYnRvYSh2YWx1ZSlcbiAgICAucmVwbGFjZSgvXFwrL2csICctJykgLy8gUmVwbGFjZSAnKycgd2l0aCAnLSdcbiAgICAucmVwbGFjZSgvXFwvL2csICdfJykgLy8gUmVwbGFjZSAnLycgd2l0aCAnXydcbiAgICAucmVwbGFjZSgvPSskLywgJycpIC8vIFJlbW92ZSB0cmFpbGluZyAnPSdcbiAgcmV0dXJuICchJyArIGJhc2U2NHVybFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFNlZ21lbnRQYXRoVG9TdGF0aWNFeHBvcnRGaWxlbmFtZShcbiAgc2VnbWVudFBhdGg6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBfX25leHQke3NlZ21lbnRQYXRoLnJlcGxhY2UoL1xcLy9nLCAnLicpfS50eHRgXG59XG4iXSwibmFtZXMiOlsiUk9PVF9TRUdNRU5UX0NBQ0hFX0tFWSIsIlJPT1RfU0VHTUVOVF9SRVFVRVNUX0tFWSIsImFwcGVuZFNlZ21lbnRDYWNoZUtleVBhcnQiLCJhcHBlbmRTZWdtZW50UmVxdWVzdEtleVBhcnQiLCJjb252ZXJ0U2VnbWVudFBhdGhUb1N0YXRpY0V4cG9ydEZpbGVuYW1lIiwiY3JlYXRlU2VnbWVudENhY2hlS2V5UGFydCIsImNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydCIsInNlZ21lbnQiLCJzdGFydHNXaXRoIiwiUEFHRV9TRUdNRU5UX0tFWSIsInNhZmVOYW1lIiwiZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyIsIm5hbWUiLCJwYXJhbVR5cGUiLCJlbmNvZGVkTmFtZSIsInBhcmVudFJlcXVlc3RLZXkiLCJwYXJhbGxlbFJvdXRlS2V5IiwiY2hpbGRSZXF1ZXN0S2V5UGFydCIsInNsb3RLZXkiLCJyZXF1ZXN0S2V5UGFydCIsInBhcmFtVmFsdWUiLCJzYWZlVmFsdWUiLCJwYXJlbnRTZWdtZW50S2V5IiwiY2hpbGRDYWNoZUtleVBhcnQiLCJzaW1wbGVQYXJhbVZhbHVlUmVnZXgiLCJ2YWx1ZSIsInRlc3QiLCJiYXNlNjR1cmwiLCJidG9hIiwicmVwbGFjZSIsInNlZ21lbnRQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/segment.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment.js ***! \******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/utils.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFDQUMsaUJBQWlCO2VBQWpCQTs7SUFUQUMsRUFBRTtlQUFGQTs7SUFDQUMsRUFBRTtlQUFGQTs7SUFsWEFDLFVBQVU7ZUFBVkE7O0lBc1FHQyxRQUFRO2VBQVJBOztJQStCQUMsY0FBYztlQUFkQTs7SUFYQUMsaUJBQWlCO2VBQWpCQTs7SUFLQUMsTUFBTTtlQUFOQTs7SUFQSEMsYUFBYTtlQUFiQTs7SUFtQkdDLFNBQVM7ZUFBVEE7O0lBa0JNQyxtQkFBbUI7ZUFBbkJBOztJQWROQyx3QkFBd0I7ZUFBeEJBOztJQStHQUMsY0FBYztlQUFkQTs7O0FBOVpULE1BQU1ULGFBQWE7SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87Q0FBTztBQXNROUQsU0FBU0MsU0FDZFMsRUFBSztJQUVMLElBQUlDLE9BQU87SUFDWCxJQUFJQztJQUVKLE9BQVE7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNWLElBQUksQ0FBQ0YsTUFBTTtZQUNUQSxPQUFPO1lBQ1BDLFNBQVNGLE1BQU1HO1FBQ2pCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsMERBQTBEO0FBQzFELGdFQUFnRTtBQUNoRSxNQUFNRSxxQkFBcUI7QUFDcEIsTUFBTVQsZ0JBQWdCLENBQUNVLE1BQWdCRCxtQkFBbUJFLElBQUksQ0FBQ0Q7QUFFL0QsU0FBU1o7SUFDZCxNQUFNLEVBQUVjLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFB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QUFJLEdBQUc7UUFDWixJQUFJLENBQUNpQixPQUFPLEdBQUksa0NBQStCWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTlELDBCQUEwQm1EO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUksMENBQXVDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNbkQsZ0NBQWdDb0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU3BDLGVBQWVrRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils/reflect-utils.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\n }\n});\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nfunction describeStringPropertyAccess(target, prop) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return \"`\" + target + \".\" + prop + \"`\";\n }\n return \"`\" + target + \"[\" + JSON.stringify(prop) + \"]`\";\n}\nfunction describeHasCheckingStringProperty(target, prop) {\n const stringifiedProp = JSON.stringify(prop);\n return \"`Reflect.has(\" + target + \", \" + stringifiedProp + \")`, `\" + stringifiedProp + \" in \" + target + \"`, or similar\";\n}\nconst wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n // Promise prototype\n // fallthrough\n 'then',\n 'catch',\n 'finally',\n // React Promise extension\n // fallthrough\n 'status',\n // React introspection\n 'displayName',\n '_debugInfo',\n // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule'\n]); //# sourceMappingURL=reflect-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsaUZBQWlGO0FBQ2pGLDBGQUEwRjtBQUMxRix1RkFBdUY7QUFDdkYsMkRBQTJEOzs7Ozs7Ozs7Ozs7O0lBVTNDQSxpQ0FBaUM7ZUFBakNBOztJQVBBQyw0QkFBNEI7ZUFBNUJBOztJQWVIQyxtQkFBbUI7ZUFBbkJBOzs7QUFqQmIsTUFBTUMsK0JBQStCO0FBRTlCLFNBQVNGLDZCQUE2QkcsTUFBYyxFQUFFQyxJQUFZO0lBQ3ZFLElBQUlGLDZCQUE2QkcsSUFBSSxDQUFDRCxPQUFPO1FBQzNDLE9BQVEsTUFBSUQsU0FBTyxNQUFHQyxPQUFLO0lBQzdCO0lBQ0EsT0FBUSxNQUFJRCxTQUFPLE1BQUdHLEtBQUtDLFNBQVMsQ0FBQ0gsUUFBTTtBQUM3QztBQUVPLFNBQVNMLGtDQUNkSSxNQUFjLEVBQ2RDLElBQVk7SUFFWixNQUFNSSxrQkFBa0JGLEtBQUtDLFNBQVMsQ0FBQ0g7SUFDdkMsT0FBUSxrQkFBZ0JELFNBQU8sT0FBSUssa0JBQWdCLFVBQVNBLGtCQUFnQixTQUFNTCxTQUFPO0FBQzNGO0FBRU8sTUFBTUYsc0JBQXNCLElBQUlRLElBQUk7SUFDekM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUEsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZDtJQUNBO0lBQ0E7SUFFQSwwQkFBMEI7SUFDMUIsY0FBYztJQUNkO0lBRUEsc0JBQXNCO0lBQ3RCO0lBQ0E7SUFFQSwyQkFBMkI7SUFDM0IsY0FBYztJQUNkO0lBQ0E7SUFDQTtDQUNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggd2lsbCBoYXZlIGZhc3QgbmVnYXRpdmVzIG1lYW5pbmcgdmFsaWQgaWRlbnRpZmllcnMgbWF5IG5vdCBwYXNzXG4vLyB0aGlzIHRlc3QuIEhvd2V2ZXIgdGhpcyBpcyBvbmx5IHVzZWQgZHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uIHRvIHByb3ZpZGUgaGludHNcbi8vIGFib3V0IHdoeSBhIHBhZ2UgYmFpbGVkIG91dCBvZiBzb21lIG9yIGFsbCBwcmVyZW5kZXJpbmcgYW5kIHdlIGNhbiB1c2UgYnJhY2tldCBub3RhdGlvblxuLy8gZm9yIGV4YW1wbGUgd2hpbGUgYOCyoF/gsqBgIGlzIGEgdmFsaWQgaWRlbnRpZmllciBpdCdzIG9rIHRvIHByaW50IGBzZWFyY2hQYXJhbXNbJ+CyoF/gsqAnXWBcbi8vIGV2ZW4gaWYgdGhpcyB3b3VsZCBoYXZlIGJlZW4gZmluZSB0b28gYHNlYXJjaFBhcmFtcy7gsqBf4LKgYFxuY29uc3QgaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciA9IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC9cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3ModGFyZ2V0OiBzdHJpbmcsIHByb3A6IHN0cmluZykge1xuICBpZiAoaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllci50ZXN0KHByb3ApKSB7XG4gICAgcmV0dXJuIGBcXGAke3RhcmdldH0uJHtwcm9wfVxcYGBcbiAgfVxuICByZXR1cm4gYFxcYCR7dGFyZ2V0fVske0pTT04uc3RyaW5naWZ5KHByb3ApfV1cXGBgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkoXG4gIHRhcmdldDogc3RyaW5nLFxuICBwcm9wOiBzdHJpbmdcbikge1xuICBjb25zdCBzdHJpbmdpZmllZFByb3AgPSBKU09OLnN0cmluZ2lmeShwcm9wKVxuICByZXR1cm4gYFxcYFJlZmxlY3QuaGFzKCR7dGFyZ2V0fSwgJHtzdHJpbmdpZmllZFByb3B9KVxcYCwgXFxgJHtzdHJpbmdpZmllZFByb3B9IGluICR7dGFyZ2V0fVxcYCwgb3Igc2ltaWxhcmBcbn1cblxuZXhwb3J0IGNvbnN0IHdlbGxLbm93blByb3BlcnRpZXMgPSBuZXcgU2V0KFtcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZicsXG4gICd0b0xvY2FsZVN0cmluZycsXG5cbiAgLy8gUHJvbWlzZSBwcm90b3R5cGVcbiAgLy8gZmFsbHRocm91Z2hcbiAgJ3RoZW4nLFxuICAnY2F0Y2gnLFxuICAnZmluYWxseScsXG5cbiAgLy8gUmVhY3QgUHJvbWlzZSBleHRlbnNpb25cbiAgLy8gZmFsbHRocm91Z2hcbiAgJ3N0YXR1cycsXG5cbiAgLy8gUmVhY3QgaW50cm9zcGVjdGlvblxuICAnZGlzcGxheU5hbWUnLFxuICAnX2RlYnVnSW5mbycsXG5cbiAgLy8gQ29tbW9uIHRlc3RlZCBwcm9wZXJ0aWVzXG4gIC8vIGZhbGx0aHJvdWdoXG4gICd0b0pTT04nLFxuICAnJCR0eXBlb2YnLFxuICAnX19lc01vZHVsZScsXG5dKVxuIl0sIm5hbWVzIjpbImRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSIsImRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MiLCJ3ZWxsS25vd25Qcm9wZXJ0aWVzIiwiaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciIsInRhcmdldCIsInByb3AiLCJ0ZXN0IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0cmluZ2lmaWVkUHJvcCIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\n"); /***/ }), /***/ "(rsc)/./node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Playfair_Display\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-heading\",\"display\":\"swap\"}],\"variableName\":\"playfair\"}": /*!***********************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/font/google/target.css?{"path":"src/app/layout.tsx","import":"Playfair_Display","arguments":[{"subsets":["latin"],"variable":"--font-heading","display":"swap"}],"variableName":"playfair"} ***! \***********************************************************************************************************************************************************************************************************************/ /***/ ((module) => { eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'Playfair Display', 'Playfair Display Fallback'\",\"fontStyle\":\"normal\"},\n\t\"className\": \"__className_0a80b4\",\n\t\"variable\": \"__variable_0a80b4\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2dvb2dsZS90YXJnZXQuY3NzP3tcInBhdGhcIjpcInNyYy9hcHAvbGF5b3V0LnRzeFwiLFwiaW1wb3J0XCI6XCJQbGF5ZmFpcl9EaXNwbGF5XCIsXCJhcmd1bWVudHNcIjpbe1wic3Vic2V0c1wiOltcImxhdGluXCJdLFwidmFyaWFibGVcIjpcIi0tZm9udC1oZWFkaW5nXCIsXCJkaXNwbGF5XCI6XCJzd2FwXCJ9XSxcInZhcmlhYmxlTmFtZVwiOlwicGxheWZhaXJcIn0iLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLFdBQVcsb0ZBQW9GO0FBQy9GO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9mb250L2dvb2dsZS90YXJnZXQuY3NzP3tcInBhdGhcIjpcInNyYy9hcHAvbGF5b3V0LnRzeFwiLFwiaW1wb3J0XCI6XCJQbGF5ZmFpcl9EaXNwbGF5XCIsXCJhcmd1bWVudHNcIjpbe1wic3Vic2V0c1wiOltcImxhdGluXCJdLFwidmFyaWFibGVcIjpcIi0tZm9udC1oZWFkaW5nXCIsXCJkaXNwbGF5XCI6XCJzd2FwXCJ9XSxcInZhcmlhYmxlTmFtZVwiOlwicGxheWZhaXJcIn0iXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0c1xubW9kdWxlLmV4cG9ydHMgPSB7XG5cdFwic3R5bGVcIjoge1wiZm9udEZhbWlseVwiOlwiJ1BsYXlmYWlyIERpc3BsYXknLCAnUGxheWZhaXIgRGlzcGxheSBGYWxsYmFjaydcIixcImZvbnRTdHlsZVwiOlwibm9ybWFsXCJ9LFxuXHRcImNsYXNzTmFtZVwiOiBcIl9fY2xhc3NOYW1lXzBhODBiNFwiLFxuXHRcInZhcmlhYmxlXCI6IFwiX192YXJpYWJsZV8wYTgwYjRcIlxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Playfair_Display\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-heading\",\"display\":\"swap\"}],\"variableName\":\"playfair\"}\n"); /***/ }), /***/ "(rsc)/./node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Space_Grotesk\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-body\",\"display\":\"swap\"}],\"variableName\":\"spaceGrotesk\"}": /*!*********************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/font/google/target.css?{"path":"src/app/layout.tsx","import":"Space_Grotesk","arguments":[{"subsets":["latin"],"variable":"--font-body","display":"swap"}],"variableName":"spaceGrotesk"} ***! \*********************************************************************************************************************************************************************************************************************/ /***/ ((module) => { eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'Space Grotesk', 'Space Grotesk Fallback'\",\"fontStyle\":\"normal\"},\n\t\"className\": \"__className_dd5b2f\",\n\t\"variable\": \"__variable_dd5b2f\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2dvb2dsZS90YXJnZXQuY3NzP3tcInBhdGhcIjpcInNyYy9hcHAvbGF5b3V0LnRzeFwiLFwiaW1wb3J0XCI6XCJTcGFjZV9Hcm90ZXNrXCIsXCJhcmd1bWVudHNcIjpbe1wic3Vic2V0c1wiOltcImxhdGluXCJdLFwidmFyaWFibGVcIjpcIi0tZm9udC1ib2R5XCIsXCJkaXNwbGF5XCI6XCJzd2FwXCJ9XSxcInZhcmlhYmxlTmFtZVwiOlwic3BhY2VHcm90ZXNrXCJ9IiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxXQUFXLDhFQUE4RTtBQUN6RjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZm9udC9nb29nbGUvdGFyZ2V0LmNzcz97XCJwYXRoXCI6XCJzcmMvYXBwL2xheW91dC50c3hcIixcImltcG9ydFwiOlwiU3BhY2VfR3JvdGVza1wiLFwiYXJndW1lbnRzXCI6W3tcInN1YnNldHNcIjpbXCJsYXRpblwiXSxcInZhcmlhYmxlXCI6XCItLWZvbnQtYm9keVwiLFwiZGlzcGxheVwiOlwic3dhcFwifV0sXCJ2YXJpYWJsZU5hbWVcIjpcInNwYWNlR3JvdGVza1wifSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBvcnRzXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0XCJzdHlsZVwiOiB7XCJmb250RmFtaWx5XCI6XCInU3BhY2UgR3JvdGVzaycsICdTcGFjZSBHcm90ZXNrIEZhbGxiYWNrJ1wiLFwiZm9udFN0eWxlXCI6XCJub3JtYWxcIn0sXG5cdFwiY2xhc3NOYW1lXCI6IFwiX19jbGFzc05hbWVfZGQ1YjJmXCIsXG5cdFwidmFyaWFibGVcIjogXCJfX3ZhcmlhYmxlX2RkNWIyZlwiXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Space_Grotesk\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-body\",\"display\":\"swap\"}],\"variableName\":\"spaceGrotesk\"}\n"); /***/ }), /***/ "(rsc)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/mono.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-mono/GeistMono-Variable.woff2\",\"variable\":\"--font-geist-mono\",\"adjustFontFallback\":false,\"fallback\":[\"ui-monospace\",\"SFMono-Regular\",\"Roboto Mono\",\"Menlo\",\"Monaco\",\"Liberation Mono\",\"DejaVu Sans Mono\",\"Courier New\",\"monospace\"],\"weight\":\"100 900\"}],\"variableName\":\"GeistMono\"}": /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/font/local/target.css?{"path":"node_modules/geist/dist/mono.js","import":"","arguments":[{"src":"./fonts/geist-mono/GeistMono-Variable.woff2","variable":"--font-geist-mono","adjustFontFallback":false,"fallback":["ui-monospace","SFMono-Regular","Roboto Mono","Menlo","Monaco","Liberation Mono","DejaVu Sans Mono","Courier New","monospace"],"weight":"100 900"}],"variableName":"GeistMono"} ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((module) => { eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'GeistMono', ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace\"},\n\t\"className\": \"__className_f910ec\",\n\t\"variable\": \"__variable_f910ec\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2xvY2FsL3RhcmdldC5jc3M/e1wicGF0aFwiOlwibm9kZV9tb2R1bGVzL2dlaXN0L2Rpc3QvbW9uby5qc1wiLFwiaW1wb3J0XCI6XCJcIixcImFyZ3VtZW50c1wiOlt7XCJzcmNcIjpcIi4vZm9udHMvZ2Vpc3QtbW9uby9HZWlzdE1vbm8tVmFyaWFibGUud29mZjJcIixcInZhcmlhYmxlXCI6XCItLWZvbnQtZ2Vpc3QtbW9ub1wiLFwiYWRqdXN0Rm9udEZhbGxiYWNrXCI6ZmFsc2UsXCJmYWxsYmFja1wiOltcInVpLW1vbm9zcGFjZVwiLFwiU0ZNb25vLVJlZ3VsYXJcIixcIlJvYm90byBNb25vXCIsXCJNZW5sb1wiLFwiTW9uYWNvXCIsXCJMaWJlcmF0aW9uIE1vbm9cIixcIkRlamFWdSBTYW5zIE1vbm9cIixcIkNvdXJpZXIgTmV3XCIsXCJtb25vc3BhY2VcIl0sXCJ3ZWlnaHRcIjpcIjEwMCA5MDBcIn1dLFwidmFyaWFibGVOYW1lXCI6XCJHZWlzdE1vbm9cIn0iLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLFdBQVcsZ0pBQWdKO0FBQzNKO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9mb250L2xvY2FsL3RhcmdldC5jc3M/e1wicGF0aFwiOlwibm9kZV9tb2R1bGVzL2dlaXN0L2Rpc3QvbW9uby5qc1wiLFwiaW1wb3J0XCI6XCJcIixcImFyZ3VtZW50c1wiOlt7XCJzcmNcIjpcIi4vZm9udHMvZ2Vpc3QtbW9uby9HZWlzdE1vbm8tVmFyaWFibGUud29mZjJcIixcInZhcmlhYmxlXCI6XCItLWZvbnQtZ2Vpc3QtbW9ub1wiLFwiYWRqdXN0Rm9udEZhbGxiYWNrXCI6ZmFsc2UsXCJmYWxsYmFja1wiOltcInVpLW1vbm9zcGFjZVwiLFwiU0ZNb25vLVJlZ3VsYXJcIixcIlJvYm90byBNb25vXCIsXCJNZW5sb1wiLFwiTW9uYWNvXCIsXCJMaWJlcmF0aW9uIE1vbm9cIixcIkRlamFWdSBTYW5zIE1vbm9cIixcIkNvdXJpZXIgTmV3XCIsXCJtb25vc3BhY2VcIl0sXCJ3ZWlnaHRcIjpcIjEwMCA5MDBcIn1dLFwidmFyaWFibGVOYW1lXCI6XCJHZWlzdE1vbm9cIn0iXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0c1xubW9kdWxlLmV4cG9ydHMgPSB7XG5cdFwic3R5bGVcIjoge1wiZm9udEZhbWlseVwiOlwiJ0dlaXN0TW9ubycsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIFJvYm90byBNb25vLCBNZW5sbywgTW9uYWNvLCBMaWJlcmF0aW9uIE1vbm8sIERlamFWdSBTYW5zIE1vbm8sIENvdXJpZXIgTmV3LCBtb25vc3BhY2VcIn0sXG5cdFwiY2xhc3NOYW1lXCI6IFwiX19jbGFzc05hbWVfZjkxMGVjXCIsXG5cdFwidmFyaWFibGVcIjogXCJfX3ZhcmlhYmxlX2Y5MTBlY1wiXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/mono.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-mono/GeistMono-Variable.woff2\",\"variable\":\"--font-geist-mono\",\"adjustFontFallback\":false,\"fallback\":[\"ui-monospace\",\"SFMono-Regular\",\"Roboto Mono\",\"Menlo\",\"Monaco\",\"Liberation Mono\",\"DejaVu Sans Mono\",\"Courier New\",\"monospace\"],\"weight\":\"100 900\"}],\"variableName\":\"GeistMono\"}\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/api/navigation.js": /*!**************************************************!*\ !*** ./node_modules/next/dist/api/navigation.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRDs7QUFFaEQiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvbmF2aWdhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmF2aWdhdGlvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/api/navigation.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/app-build-id.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/client/app-build-id.js ***! \*******************************************************/ /***/ ((module, exports) => { "use strict"; eval("// This gets assigned as a side-effect during app initialization. Because it\n// represents the build used to create the JS bundle, it should never change\n// after being set, so we store it in a global variable.\n//\n// When performing RSC requests, if the incoming data has a different build ID,\n// we perform an MPA navigation/refresh to load the updated build and ensure\n// that the client and server in sync.\n// Starts as an empty string. In practice, because setAppBuildId is called\n// during initialization before hydration starts, this will always get\n// reassigned to the actual build ID before it's ever needed by a navigation.\n// If for some reasons it didn't, due to a bug or race condition, then on\n// navigation the build comparision would fail and trigger an MPA navigation.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getAppBuildId: function() {\n return getAppBuildId;\n },\n setAppBuildId: function() {\n return setAppBuildId;\n }\n});\nlet globalBuildId = '';\nfunction setAppBuildId(buildId) {\n globalBuildId = buildId;\n}\nfunction getAppBuildId() {\n return globalBuildId;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-build-id.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtYnVpbGQtaWQuanMiLCJtYXBwaW5ncyI6IkFBQUEsNEVBQTRFO0FBQzVFLDRFQUE0RTtBQUM1RSx3REFBd0Q7QUFDeEQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsc0NBQXNDO0FBRXRDLDBFQUEwRTtBQUMxRSxzRUFBc0U7QUFDdEUsNkVBQTZFO0FBQzdFLHlFQUF5RTtBQUN6RSw2RUFBNkU7Ozs7Ozs7Ozs7Ozs7SUFPN0RBLGFBQWE7ZUFBYkE7O0lBSkFDLGFBQWE7ZUFBYkE7OztBQUZoQixJQUFJQyxnQkFBd0I7QUFFckIsU0FBU0QsY0FBY0UsT0FBZTtJQUMzQ0QsZ0JBQWdCQztBQUNsQjtBQUVPLFNBQVNIO0lBQ2QsT0FBT0U7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL3NyYy9jbGllbnQvYXBwLWJ1aWxkLWlkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZ2V0cyBhc3NpZ25lZCBhcyBhIHNpZGUtZWZmZWN0IGR1cmluZyBhcHAgaW5pdGlhbGl6YXRpb24uIEJlY2F1c2UgaXRcbi8vIHJlcHJlc2VudHMgdGhlIGJ1aWxkIHVzZWQgdG8gY3JlYXRlIHRoZSBKUyBidW5kbGUsIGl0IHNob3VsZCBuZXZlciBjaGFuZ2Vcbi8vIGFmdGVyIGJlaW5nIHNldCwgc28gd2Ugc3RvcmUgaXQgaW4gYSBnbG9iYWwgdmFyaWFibGUuXG4vL1xuLy8gV2hlbiBwZXJmb3JtaW5nIFJTQyByZXF1ZXN0cywgaWYgdGhlIGluY29taW5nIGRhdGEgaGFzIGEgZGlmZmVyZW50IGJ1aWxkIElELFxuLy8gd2UgcGVyZm9ybSBhbiBNUEEgbmF2aWdhdGlvbi9yZWZyZXNoIHRvIGxvYWQgdGhlIHVwZGF0ZWQgYnVpbGQgYW5kIGVuc3VyZVxuLy8gdGhhdCB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgaW4gc3luYy5cblxuLy8gU3RhcnRzIGFzIGFuIGVtcHR5IHN0cmluZy4gSW4gcHJhY3RpY2UsIGJlY2F1c2Ugc2V0QXBwQnVpbGRJZCBpcyBjYWxsZWRcbi8vIGR1cmluZyBpbml0aWFsaXphdGlvbiBiZWZvcmUgaHlkcmF0aW9uIHN0YXJ0cywgdGhpcyB3aWxsIGFsd2F5cyBnZXRcbi8vIHJlYXNzaWduZWQgdG8gdGhlIGFjdHVhbCBidWlsZCBJRCBiZWZvcmUgaXQncyBldmVyIG5lZWRlZCBieSBhIG5hdmlnYXRpb24uXG4vLyBJZiBmb3Igc29tZSByZWFzb25zIGl0IGRpZG4ndCwgZHVlIHRvIGEgYnVnIG9yIHJhY2UgY29uZGl0aW9uLCB0aGVuIG9uXG4vLyBuYXZpZ2F0aW9uIHRoZSBidWlsZCBjb21wYXJpc2lvbiB3b3VsZCBmYWlsIGFuZCB0cmlnZ2VyIGFuIE1QQSBuYXZpZ2F0aW9uLlxubGV0IGdsb2JhbEJ1aWxkSWQ6IHN0cmluZyA9ICcnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBcHBCdWlsZElkKGJ1aWxkSWQ6IHN0cmluZykge1xuICBnbG9iYWxCdWlsZElkID0gYnVpbGRJZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwQnVpbGRJZCgpOiBzdHJpbmcge1xuICByZXR1cm4gZ2xvYmFsQnVpbGRJZFxufVxuIl0sIm5hbWVzIjpbImdldEFwcEJ1aWxkSWQiLCJzZXRBcHBCdWlsZElkIiwiZ2xvYmFsQnVpbGRJZCIsImJ1aWxkSWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-build-id.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/app-call-server.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/client/app-call-server.js ***! \**********************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"callServer\", ({\n enumerable: true,\n get: function() {\n return callServer;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./components/router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _useactionqueue = __webpack_require__(/*! ./components/use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nasync function callServer(actionId, actionArgs) {\n return new Promise((resolve, reject)=>{\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_SERVER_ACTION,\n actionId,\n actionArgs,\n resolve,\n reject\n });\n });\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-call-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtY2FsbC1zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FJc0JBOzs7ZUFBQUE7OzttQ0FKVTtnREFDSzs0Q0FDRztBQUVqQyxlQUFlQSxXQUFXQyxRQUFnQixFQUFFQyxVQUFpQjtJQUNsRSxPQUFPLElBQUlDLFFBQVEsQ0FBQ0MsU0FBU0M7UUFDM0JDLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO1lBQ2RDLENBQUFBLEdBQUFBLGdCQUFBQSx1QkFBQUEsRUFBd0I7Z0JBQ3RCQyxNQUFNQyxvQkFBQUEsb0JBQW9CO2dCQUMxQlI7Z0JBQ0FDO2dCQUNBRTtnQkFDQUM7WUFDRjtRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL3NyYy9jbGllbnQvYXBwLWNhbGwtc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXJ0VHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQUNUSU9OX1NFUlZFUl9BQ1RJT04gfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy91c2UtYWN0aW9uLXF1ZXVlJ1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFNlcnZlcihhY3Rpb25JZDogc3RyaW5nLCBhY3Rpb25BcmdzOiBhbnlbXSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IEFDVElPTl9TRVJWRVJfQUNUSU9OLFxuICAgICAgICBhY3Rpb25JZCxcbiAgICAgICAgYWN0aW9uQXJncyxcbiAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgcmVqZWN0LFxuICAgICAgfSlcbiAgICB9KVxuICB9KVxufVxuIl0sIm5hbWVzIjpbImNhbGxTZXJ2ZXIiLCJhY3Rpb25JZCIsImFjdGlvbkFyZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInN0YXJ0VHJhbnNpdGlvbiIsImRpc3BhdGNoQXBwUm91dGVyQWN0aW9uIiwidHlwZSIsIkFDVElPTl9TRVJWRVJfQUNUSU9OIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-call-server.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/client/app-find-source-map-url.js ***! \******************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"findSourceMapURL\", ({\n enumerable: true,\n get: function() {\n return findSourceMapURL;\n }\n}));\nconst basePath = false || '';\nconst pathname = \"\" + basePath + \"/__nextjs_source-map\";\nconst findSourceMapURL = true ? function findSourceMapURL(filename) {\n if (filename === '') {\n return null;\n }\n if (filename.startsWith(document.location.origin) && filename.includes('/_next/static')) {\n // This is a request for a client chunk. This can only happen when\n // using Turbopack. In this case, since we control how those source\n // maps are generated, we can safely assume that the sourceMappingURL\n // is relative to the filename, with an added `.map` extension. The\n // browser can just request this file, and it gets served through the\n // normal dev server, without the need to route this through\n // the `/__nextjs_source-map` dev middleware.\n return \"\" + filename + \".map\";\n }\n const url = new URL(pathname, document.location.origin);\n url.searchParams.set('filename', filename);\n return url.href;\n} : 0;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-find-source-map-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtZmluZC1zb3VyY2UtbWFwLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQUdhQTs7O2VBQUFBOzs7QUFIYixNQUFNQyxXQUFXQyxNQUFrQyxJQUFJO0FBQ3ZELE1BQU1HLFdBQVksS0FBRUosV0FBUztBQUV0QixNQUFNRCxtQkFDWEUsS0FBb0IsR0FDaEIsU0FBU0YsaUJBQWlCTyxRQUFnQjtJQUN4QyxJQUFJQSxhQUFhLElBQUk7UUFDbkIsT0FBTztJQUNUO0lBRUEsSUFDRUEsU0FBU0MsVUFBVSxDQUFDQyxTQUFTQyxRQUFRLENBQUNDLE1BQU0sS0FDNUNKLFNBQVNLLFFBQVEsQ0FBQyxrQkFDbEI7UUFDQSxrRUFBa0U7UUFDbEUsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSxtRUFBbUU7UUFDbkUscUVBQXFFO1FBQ3JFLDREQUE0RDtRQUM1RCw2Q0FBNkM7UUFDN0MsT0FBUSxLQUFFTCxXQUFTO0lBQ3JCO0lBRUEsTUFBTU0sTUFBTSxJQUFJQyxJQUFJVCxVQUFVSSxTQUFTQyxRQUFRLENBQUNDLE1BQU07SUFDdERFLElBQUlFLFlBQVksQ0FBQ0MsR0FBRyxDQUFDLFlBQVlUO0lBRWpDLE9BQU9NLElBQUlJLElBQUk7QUFDakIsSUFDQUMsQ0FBU0EiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9zcmMvY2xpZW50L2FwcC1maW5kLXNvdXJjZS1tYXAtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJ1xuY29uc3QgcGF0aG5hbWUgPSBgJHtiYXNlUGF0aH0vX19uZXh0anNfc291cmNlLW1hcGBcblxuZXhwb3J0IGNvbnN0IGZpbmRTb3VyY2VNYXBVUkwgPVxuICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50J1xuICAgID8gZnVuY3Rpb24gZmluZFNvdXJjZU1hcFVSTChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmIChmaWxlbmFtZSA9PT0gJycpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZpbGVuYW1lLnN0YXJ0c1dpdGgoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKSAmJlxuICAgICAgICAgIGZpbGVuYW1lLmluY2x1ZGVzKCcvX25leHQvc3RhdGljJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBhIHJlcXVlc3QgZm9yIGEgY2xpZW50IGNodW5rLiBUaGlzIGNhbiBvbmx5IGhhcHBlbiB3aGVuXG4gICAgICAgICAgLy8gdXNpbmcgVHVyYm9wYWNrLiBJbiB0aGlzIGNhc2UsIHNpbmNlIHdlIGNvbnRyb2wgaG93IHRob3NlIHNvdXJjZVxuICAgICAgICAgIC8vIG1hcHMgYXJlIGdlbmVyYXRlZCwgd2UgY2FuIHNhZmVseSBhc3N1bWUgdGhhdCB0aGUgc291cmNlTWFwcGluZ1VSTFxuICAgICAgICAgIC8vIGlzIHJlbGF0aXZlIHRvIHRoZSBmaWxlbmFtZSwgd2l0aCBhbiBhZGRlZCBgLm1hcGAgZXh0ZW5zaW9uLiBUaGVcbiAgICAgICAgICAvLyBicm93c2VyIGNhbiBqdXN0IHJlcXVlc3QgdGhpcyBmaWxlLCBhbmQgaXQgZ2V0cyBzZXJ2ZWQgdGhyb3VnaCB0aGVcbiAgICAgICAgICAvLyBub3JtYWwgZGV2IHNlcnZlciwgd2l0aG91dCB0aGUgbmVlZCB0byByb3V0ZSB0aGlzIHRocm91Z2hcbiAgICAgICAgICAvLyB0aGUgYC9fX25leHRqc19zb3VyY2UtbWFwYCBkZXYgbWlkZGxld2FyZS5cbiAgICAgICAgICByZXR1cm4gYCR7ZmlsZW5hbWV9Lm1hcGBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwocGF0aG5hbWUsIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbilcbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2ZpbGVuYW1lJywgZmlsZW5hbWUpXG5cbiAgICAgICAgcmV0dXJuIHVybC5ocmVmXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWRcbiJdLCJuYW1lcyI6WyJmaW5kU291cmNlTWFwVVJMIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInBhdGhuYW1lIiwiTk9ERV9FTlYiLCJmaWxlbmFtZSIsInN0YXJ0c1dpdGgiLCJkb2N1bWVudCIsImxvY2F0aW9uIiwib3JpZ2luIiwiaW5jbHVkZXMiLCJ1cmwiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJocmVmIiwidW5kZWZpbmVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/app-router-headers.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/client/components/app-router-headers.js ***! \************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_HEADER: function() {\n return ACTION_HEADER;\n },\n FLIGHT_HEADERS: function() {\n return FLIGHT_HEADERS;\n },\n NEXT_ACTION_NOT_FOUND_HEADER: function() {\n return NEXT_ACTION_NOT_FOUND_HEADER;\n },\n NEXT_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\n },\n NEXT_HMR_REFRESH_HASH_COOKIE: function() {\n return NEXT_HMR_REFRESH_HASH_COOKIE;\n },\n NEXT_HMR_REFRESH_HEADER: function() {\n return NEXT_HMR_REFRESH_HEADER;\n },\n NEXT_IS_PRERENDER_HEADER: function() {\n return NEXT_IS_PRERENDER_HEADER;\n },\n NEXT_REWRITTEN_PATH_HEADER: function() {\n return NEXT_REWRITTEN_PATH_HEADER;\n },\n NEXT_REWRITTEN_QUERY_HEADER: function() {\n return NEXT_REWRITTEN_QUERY_HEADER;\n },\n NEXT_ROUTER_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_PREFETCH_HEADER;\n },\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_SEGMENT_PREFETCH_HEADER;\n },\n NEXT_ROUTER_STALE_TIME_HEADER: function() {\n return NEXT_ROUTER_STALE_TIME_HEADER;\n },\n NEXT_ROUTER_STATE_TREE_HEADER: function() {\n return NEXT_ROUTER_STATE_TREE_HEADER;\n },\n NEXT_RSC_UNION_QUERY: function() {\n return NEXT_RSC_UNION_QUERY;\n },\n NEXT_URL: function() {\n return NEXT_URL;\n },\n RSC_CONTENT_TYPE_HEADER: function() {\n return RSC_CONTENT_TYPE_HEADER;\n },\n RSC_HEADER: function() {\n return RSC_HEADER;\n }\n});\nconst RSC_HEADER = 'rsc';\nconst ACTION_HEADER = 'next-action';\nconst NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree';\nconst NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch';\nconst NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'next-router-segment-prefetch';\nconst NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh';\nconst NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__';\nconst NEXT_URL = 'next-url';\nconst RSC_CONTENT_TYPE_HEADER = 'text/x-component';\nconst FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER\n];\nconst NEXT_RSC_UNION_QUERY = '_rsc';\nconst NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time';\nconst NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed';\nconst NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path';\nconst NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query';\nconst NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\nconst NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYUEsYUFBYTtlQUFiQTs7SUFpQkFDLGNBQWM7ZUFBZEE7O0lBZUFDLDRCQUE0QjtlQUE1QkE7O0lBSkFDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLDRCQUE0QjtlQUE1QkE7O0lBREFDLHVCQUF1QjtlQUF2QkE7O0lBbUJBQyx3QkFBd0I7ZUFBeEJBOztJQUZBQywwQkFBMEI7ZUFBMUJBOztJQUNBQywyQkFBMkI7ZUFBM0JBOztJQXpCQUMsMkJBQTJCO2VBQTNCQTs7SUFLQUMsbUNBQW1DO2VBQW5DQTs7SUFpQkFDLDZCQUE2QjtlQUE3QkE7O0lBdkJBQyw2QkFBNkI7ZUFBN0JBOztJQXFCQUMsb0JBQW9CO2VBQXBCQTs7SUFYQUMsUUFBUTtlQUFSQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFoQkFDLFVBQVU7ZUFBVkE7OztBQUFOLE1BQU1BLGFBQWE7QUFDbkIsTUFBTWhCLGdCQUFnQjtBQUl0QixNQUFNWSxnQ0FBZ0M7QUFDdEMsTUFBTUgsOEJBQThCO0FBS3BDLE1BQU1DLHNDQUNYO0FBQ0ssTUFBTUwsMEJBQTBCO0FBQ2hDLE1BQU1ELCtCQUErQjtBQUNyQyxNQUFNVSxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUVoQyxNQUFNZCxpQkFBaUI7SUFDNUJlO0lBQ0FKO0lBQ0FIO0lBQ0FKO0lBQ0FLO0NBQ0Q7QUFFTSxNQUFNRyx1QkFBdUI7QUFFN0IsTUFBTUYsZ0NBQWdDO0FBQ3RDLE1BQU1SLDJCQUEyQjtBQUNqQyxNQUFNSSw2QkFBNkI7QUFDbkMsTUFBTUMsOEJBQThCO0FBQ3BDLE1BQU1GLDJCQUEyQjtBQUNqQyxNQUFNSiwrQkFBK0IiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJTQ19IRUFERVIgPSAncnNjJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IEFDVElPTl9IRUFERVIgPSAnbmV4dC1hY3Rpb24nIGFzIGNvbnN0XG4vLyBUT0RPOiBJbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGZ1bGwgcm91dGVyIHN0YXRlLCB3ZSBvbmx5IG5lZWQgdG8gc2VuZCB0aGVcbi8vIHNlZ21lbnQgcGF0aC4gU2F2ZXMgYnl0ZXMuIFRoZW4gd2UgY291bGQgYWxzbyB1c2UgdGhpcyBmaWVsZCBmb3Igc2VnbWVudFxuLy8gcHJlZmV0Y2hlcywgd2hpY2ggYWxzbyBuZWVkIHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIgPSAnbmV4dC1yb3V0ZXItc3RhdGUtdHJlZScgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIgPSAnbmV4dC1yb3V0ZXItcHJlZmV0Y2gnIGFzIGNvbnN0XG4vLyBUaGlzIGNvbnRhaW5zIHRoZSBwYXRoIHRvIHRoZSBzZWdtZW50IGJlaW5nIHByZWZldGNoZWQuXG4vLyBUT0RPOiBJZiB3ZSBjaGFuZ2UgbmV4dC1yb3V0ZXItc3RhdGUtdHJlZSB0byBiZSBhIHNlZ21lbnQgcGF0aCwgd2UgY2FuIHVzZVxuLy8gdGhhdCBpbnN0ZWFkLiBUaGVuIG5leHQtcm91dGVyLXByZWZldGNoIGFuZCBuZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoIGNhblxuLy8gYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgZW51bS5cbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUiA9XG4gICduZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSID0gJ25leHQtaG1yLXJlZnJlc2gnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRSA9ICdfX25leHRfaG1yX3JlZnJlc2hfaGFzaF9fJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ25leHQtdXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiA9ICd4LW5leHRqcy1yZXdyaXR0ZW4tcGF0aCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIgPSAneC1uZXh0anMtcmV3cml0dGVuLXF1ZXJ5JyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSVNfUFJFUkVOREVSX0hFQURFUiA9ICd4LW5leHRqcy1wcmVyZW5kZXInIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUiA9ICd4LW5leHRqcy1hY3Rpb24tbm90LWZvdW5kJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIiLCJORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiIsIk5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUiIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9VUkwiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIlJTQ19IRUFERVIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/client/components/bailout-to-client-rendering.js ***! \*********************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"bailoutToClientRendering\", ({\n enumerable: true,\n get: function() {\n return bailoutToClientRendering;\n }\n}));\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../../server/app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nfunction bailoutToClientRendering(reason) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore == null ? void 0 : workStore.forceStatic) return;\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n throw Object.defineProperty(new _bailouttocsr.BailoutToCSRError(reason), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=bailout-to-client-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcyIsIm1hcHBpbmdzIjoiOzs7OzREQUlnQkE7OztlQUFBQTs7OzBDQUprQjtzREFDRDswREFDSTtBQUU5QixTQUFTQSx5QkFBeUJDLE1BQWM7SUFDckQsTUFBTUMsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBRTNDLElBQUlGLGFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFVBQVdHLFdBQVcsRUFBRTtJQUU1QixNQUFNQyxnQkFBZ0JDLDhCQUFBQSxvQkFBb0IsQ0FBQ0gsUUFBUTtJQUVuRCxJQUFJRSxlQUFlO1FBQ2pCLE9BQVFBLGNBQWNFLElBQUk7WUFDeEIsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7Z0JBQ0gsTUFBTSxxQkFBNkIsQ0FBN0IsSUFBSUMsY0FBQUEsaUJBQWlCLENBQUNSLFNBQXRCOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUE0QjtZQUNwQyxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO2dCQUNIO1lBQ0Y7Z0JBQ0VLO1FBQ0o7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhaWxvdXRUb0NTUkVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3InXG5pbXBvcnQgeyB3b3JrQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcblxuZXhwb3J0IGZ1bmN0aW9uIGJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyhyZWFzb246IHN0cmluZyk6IHZvaWQgfCBuZXZlciB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICh3b3JrU3RvcmU/LmZvcmNlU3RhdGljKSByZXR1cm5cblxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgIHRocm93IG5ldyBCYWlsb3V0VG9DU1JFcnJvcihyZWFzb24pXG4gICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmciLCJyZWFzb24iLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJmb3JjZVN0YXRpYyIsIndvcmtVbml0U3RvcmUiLCJ3b3JrVW5pdEFzeW5jU3RvcmFnZSIsInR5cGUiLCJCYWlsb3V0VG9DU1JFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/bfcache.js": /*!*************************************************************!*\ !*** ./node_modules/next/dist/client/components/bfcache.js ***! \*************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useRouterBFCache\", ({\n enumerable: true,\n get: function() {\n return useRouterBFCache;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n// When the flag is disabled, only track the currently active tree\nconst MAX_BF_CACHE_ENTRIES = false ? 0 : 1;\nfunction useRouterBFCache(activeTree, activeStateKey) {\n // The currently active entry. The entries form a linked list, sorted in\n // order of most recently active. This allows us to reuse parts of the list\n // without cloning, unless there's a reordering or removal.\n // TODO: Once we start tracking back/forward history at each route level,\n // we should use the history order instead. In other words, when traversing\n // to an existing entry as a result of a popstate event, we should maintain\n // the existing order instead of moving it to the front of the list. I think\n // an initial implementation of this could be to pass an incrementing id\n // to history.pushState/replaceState, then use that here for ordering.\n const [prevActiveEntry, setPrevActiveEntry] = (0, _react.useState)(()=>{\n const initialEntry = {\n tree: activeTree,\n stateKey: activeStateKey,\n next: null\n };\n return initialEntry;\n });\n if (prevActiveEntry.tree === activeTree) {\n // Fast path. The active tree hasn't changed, so we can reuse the\n // existing state.\n return prevActiveEntry;\n }\n // The route tree changed. Note that this doesn't mean that the tree changed\n // *at this level* — the change may be due to a child route. Either way, we\n // need to either add or update the router tree in the bfcache.\n //\n // The rest of the code looks more complicated than it actually is because we\n // can't mutate the state in place; we have to copy-on-write.\n // Create a new entry for the active cache key. This is the head of the new\n // linked list.\n const newActiveEntry = {\n tree: activeTree,\n stateKey: activeStateKey,\n next: null\n };\n // We need to append the old list onto the new list. If the head of the new\n // list was already present in the cache, then we'll need to clone everything\n // that came before it. Then we can reuse the rest.\n let n = 1;\n let oldEntry = prevActiveEntry;\n let clonedEntry = newActiveEntry;\n while(oldEntry !== null && n < MAX_BF_CACHE_ENTRIES){\n if (oldEntry.stateKey === activeStateKey) {\n // Fast path. This entry in the old list that corresponds to the key that\n // is now active. We've already placed a clone of this entry at the front\n // of the new list. We can reuse the rest of the old list without cloning.\n // NOTE: We don't need to worry about eviction in this case because we\n // haven't increased the size of the cache, and we assume the max size\n // is constant across renders. If we were to change it to a dynamic limit,\n // then the implementation would need to account for that.\n clonedEntry.next = oldEntry.next;\n break;\n } else {\n // Clone the entry and append it to the list.\n n++;\n const entry = {\n tree: oldEntry.tree,\n stateKey: oldEntry.stateKey,\n next: null\n };\n clonedEntry.next = entry;\n clonedEntry = entry;\n }\n oldEntry = oldEntry.next;\n }\n setPrevActiveEntry(newActiveEntry);\n return newActiveEntry;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=bfcache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2JmY2FjaGUuanMiLCJtYXBwaW5ncyI6Ijs7OztvREFpQ2dCQTs7O2VBQUFBOzs7bUNBaENTO0FBRXpCLGtFQUFrRTtBQUNsRSxNQUFNQyx1QkFBdUJDLE1BQWtDLEdBQUcsQ0FBQyxHQUFHO0FBNkIvRCxTQUFTRixpQkFDZEssVUFBNkIsRUFDN0JDLGNBQXNCO0lBRXRCLHdFQUF3RTtJQUN4RSwyRUFBMkU7SUFDM0UsMkRBQTJEO0lBQzNELHlFQUF5RTtJQUN6RSwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDRFQUE0RTtJQUM1RSx3RUFBd0U7SUFDeEUsc0VBQXNFO0lBQ3RFLE1BQU0sQ0FBQ0MsaUJBQWlCQyxtQkFBbUIsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFDNUM7UUFDRSxNQUFNQyxlQUFtQztZQUN2Q0MsTUFBTU47WUFDTk8sVUFBVU47WUFDVk8sTUFBTTtRQUNSO1FBQ0EsT0FBT0g7SUFDVDtJQUdGLElBQUlILGdCQUFnQkksSUFBSSxLQUFLTixZQUFZO1FBQ3ZDLGlFQUFpRTtRQUNqRSxrQkFBa0I7UUFDbEIsT0FBT0U7SUFDVDtJQUVBLDRFQUE0RTtJQUM1RSwyRUFBMkU7SUFDM0UsK0RBQStEO0lBQy9ELEVBQUU7SUFDRiw2RUFBNkU7SUFDN0UsNkRBQTZEO0lBRTdELDJFQUEyRTtJQUMzRSxlQUFlO0lBQ2YsTUFBTU8saUJBQXFDO1FBQ3pDSCxNQUFNTjtRQUNOTyxVQUFVTjtRQUNWTyxNQUFNO0lBQ1I7SUFFQSwyRUFBMkU7SUFDM0UsNkVBQTZFO0lBQzdFLG1EQUFtRDtJQUNuRCxJQUFJRSxJQUFJO0lBQ1IsSUFBSUMsV0FBc0NUO0lBQzFDLElBQUlVLGNBQWtDSDtJQUN0QyxNQUFPRSxhQUFhLFFBQVFELElBQUlkLHFCQUFzQjtRQUNwRCxJQUFJZSxTQUFTSixRQUFRLEtBQUtOLGdCQUFnQjtZQUN4Qyx5RUFBeUU7WUFDekUseUVBQXlFO1lBQ3pFLDBFQUEwRTtZQUMxRSxzRUFBc0U7WUFDdEUsc0VBQXNFO1lBQ3RFLDBFQUEwRTtZQUMxRSwwREFBMEQ7WUFDMURXLFlBQVlKLElBQUksR0FBR0csU0FBU0gsSUFBSTtZQUNoQztRQUNGLE9BQU87WUFDTCw2Q0FBNkM7WUFDN0NFO1lBQ0EsTUFBTUcsUUFBNEI7Z0JBQ2hDUCxNQUFNSyxTQUFTTCxJQUFJO2dCQUNuQkMsVUFBVUksU0FBU0osUUFBUTtnQkFDM0JDLE1BQU07WUFDUjtZQUNBSSxZQUFZSixJQUFJLEdBQUdLO1lBQ25CRCxjQUFjQztRQUNoQjtRQUNBRixXQUFXQSxTQUFTSCxJQUFJO0lBQzFCO0lBRUFMLG1CQUFtQk07SUFDbkIsT0FBT0E7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL2JmY2FjaGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuLy8gV2hlbiB0aGUgZmxhZyBpcyBkaXNhYmxlZCwgb25seSB0cmFjayB0aGUgY3VycmVudGx5IGFjdGl2ZSB0cmVlXG5jb25zdCBNQVhfQkZfQ0FDSEVfRU5UUklFUyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkZfQ0FDSEUgPyAzIDogMVxuXG5leHBvcnQgdHlwZSBSb3V0ZXJCRkNhY2hlRW50cnkgPSB7XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHN0YXRlS2V5OiBzdHJpbmdcbiAgLy8gVGhlIGVudHJpZXMgZm9ybSBhIGxpbmtlZCBsaXN0LCBzb3J0ZWQgaW4gb3JkZXIgb2YgbW9zdCByZWNlbnRseSBhY3RpdmUuXG4gIG5leHQ6IFJvdXRlckJGQ2FjaGVFbnRyeSB8IG51bGxcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgbW9zdCByZWNlbnQgTiB0cmVlcyAoRmxpZ2h0Um91dGVyU3RhdGVzKSB0aGF0IHdlcmUgYWN0aXZlXG4gKiBhdCBhIGNlcnRhaW4gc2VnbWVudCBsZXZlbC4gRS5nLiBmb3IgYSBzZWdtZW50IFwiL2EvYi9bcGFyYW1dXCIsIHRoaXMgaG9va1xuICogdHJhY2tzIHRoZSBsYXN0IE4gcGFyYW0gdmFsdWVzIHRoYXQgdGhlIHJvdXRlciByZW5kZXJlZCBmb3IgTi5cbiAqXG4gKiBUaGUgcmVzdWx0IG9mIHRoaXMgaG9vayBwcmVjaXNlbHkgZGV0ZXJtaW5lcyB0aGUgbnVtYmVyIGFuZCBvcmRlciBvZlxuICogdHJlZXMgdGhhdCBhcmUgcmVuZGVyZWQgaW4gcGFyYWxsZWwgYXQgdGhlaXIgc2VnbWVudCBsZXZlbC5cbiAqXG4gKiBUaGUgcHVycG9zZSBvZiB0aGlzIGNhY2hlIGlzIHRvIHdlIGNhbiBwcmVzZXJ2ZSB0aGUgUmVhY3QgYW5kIERPTSBzdGF0ZSBvZlxuICogc29tZSBudW1iZXIgb2YgaW5hY3RpdmUgdHJlZXMsIGJ5IHJlbmRlcmluZyB0aGVtIGluIGFuIDxBY3Rpdml0eT4gYm91bmRhcnkuXG4gKiBUaGF0IG1lYW5zIGl0IHdvdWxkIG5vdCBtYWtlIHNlbnNlIGZvciB0aGUgdGhlIGxpZmV0aW1lIG9mIHRoZSBjYWNoZSB0byBiZVxuICogYW55IGxvbmdlciB0aGFuIHRoZSBsaWZldGltZSBvZiB0aGUgUmVhY3QgdHJlZTsgZS5nLiBpZiB0aGUgaG9vayB3ZXJlXG4gKiB1bm1vdW50ZWQsIHRoZW4gdGhlIFJlYWN0IHRyZWUgd291bGQgYmUsIHRvby4gU28sIHdlIHVzZSBSZWFjdCBzdGF0ZSB0b1xuICogbWFuYWdlIGl0LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkb24ndCBzdG9yZSB0aGUgUlNDIGRhdGEgZm9yIHRoZSBjYWNoZSBlbnRyaWVzIGluIHRoaXMgaG9vayDigJRcbiAqIHRoZSBkYXRhIGZvciBpbmFjdGl2ZSBzZWdtZW50cyBpcyBzdG9yZWQgaW4gdGhlIHBhcmVudCBDYWNoZU5vZGUsIHdoaWNoXG4gKiAqZG9lcyogaGF2ZSBhIGxvbmdlciBsaWZldGltZSB0aGFuIHRoZSBSZWFjdCB0cmVlLiBUaGlzIGhvb2sgb25seSBkZXRlcm1pbmVzXG4gKiB3aGljaCBvZiB0aG9zZSB0cmVlcyBzaG91bGQgaGF2ZSB0aGVpciAqc3RhdGUqIHByZXNlcnZlZCwgYnkgPEFjdGl2aXR5Pi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlckJGQ2FjaGUoXG4gIGFjdGl2ZVRyZWU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBhY3RpdmVTdGF0ZUtleTogc3RyaW5nXG4pOiBSb3V0ZXJCRkNhY2hlRW50cnkge1xuICAvLyBUaGUgY3VycmVudGx5IGFjdGl2ZSBlbnRyeS4gVGhlIGVudHJpZXMgZm9ybSBhIGxpbmtlZCBsaXN0LCBzb3J0ZWQgaW5cbiAgLy8gb3JkZXIgb2YgbW9zdCByZWNlbnRseSBhY3RpdmUuIFRoaXMgYWxsb3dzIHVzIHRvIHJldXNlIHBhcnRzIG9mIHRoZSBsaXN0XG4gIC8vIHdpdGhvdXQgY2xvbmluZywgdW5sZXNzIHRoZXJlJ3MgYSByZW9yZGVyaW5nIG9yIHJlbW92YWwuXG4gIC8vIFRPRE86IE9uY2Ugd2Ugc3RhcnQgdHJhY2tpbmcgYmFjay9mb3J3YXJkIGhpc3RvcnkgYXQgZWFjaCByb3V0ZSBsZXZlbCxcbiAgLy8gd2Ugc2hvdWxkIHVzZSB0aGUgaGlzdG9yeSBvcmRlciBpbnN0ZWFkLiBJbiBvdGhlciB3b3Jkcywgd2hlbiB0cmF2ZXJzaW5nXG4gIC8vIHRvIGFuIGV4aXN0aW5nIGVudHJ5IGFzIGEgcmVzdWx0IG9mIGEgcG9wc3RhdGUgZXZlbnQsIHdlIHNob3VsZCBtYWludGFpblxuICAvLyB0aGUgZXhpc3Rpbmcgb3JkZXIgaW5zdGVhZCBvZiBtb3ZpbmcgaXQgdG8gdGhlIGZyb250IG9mIHRoZSBsaXN0LiBJIHRoaW5rXG4gIC8vIGFuIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjb3VsZCBiZSB0byBwYXNzIGFuIGluY3JlbWVudGluZyBpZFxuICAvLyB0byBoaXN0b3J5LnB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUsIHRoZW4gdXNlIHRoYXQgaGVyZSBmb3Igb3JkZXJpbmcuXG4gIGNvbnN0IFtwcmV2QWN0aXZlRW50cnksIHNldFByZXZBY3RpdmVFbnRyeV0gPSB1c2VTdGF0ZTxSb3V0ZXJCRkNhY2hlRW50cnk+KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0ge1xuICAgICAgICB0cmVlOiBhY3RpdmVUcmVlLFxuICAgICAgICBzdGF0ZUtleTogYWN0aXZlU3RhdGVLZXksXG4gICAgICAgIG5leHQ6IG51bGwsXG4gICAgICB9XG4gICAgICByZXR1cm4gaW5pdGlhbEVudHJ5XG4gICAgfVxuICApXG5cbiAgaWYgKHByZXZBY3RpdmVFbnRyeS50cmVlID09PSBhY3RpdmVUcmVlKSB7XG4gICAgLy8gRmFzdCBwYXRoLiBUaGUgYWN0aXZlIHRyZWUgaGFzbid0IGNoYW5nZWQsIHNvIHdlIGNhbiByZXVzZSB0aGVcbiAgICAvLyBleGlzdGluZyBzdGF0ZS5cbiAgICByZXR1cm4gcHJldkFjdGl2ZUVudHJ5XG4gIH1cblxuICAvLyBUaGUgcm91dGUgdHJlZSBjaGFuZ2VkLiBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IG1lYW4gdGhhdCB0aGUgdHJlZSBjaGFuZ2VkXG4gIC8vICphdCB0aGlzIGxldmVsKiDigJQgdGhlIGNoYW5nZSBtYXkgYmUgZHVlIHRvIGEgY2hpbGQgcm91dGUuIEVpdGhlciB3YXksIHdlXG4gIC8vIG5lZWQgdG8gZWl0aGVyIGFkZCBvciB1cGRhdGUgdGhlIHJvdXRlciB0cmVlIGluIHRoZSBiZmNhY2hlLlxuICAvL1xuICAvLyBUaGUgcmVzdCBvZiB0aGUgY29kZSBsb29rcyBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gaXQgYWN0dWFsbHkgaXMgYmVjYXVzZSB3ZVxuICAvLyBjYW4ndCBtdXRhdGUgdGhlIHN0YXRlIGluIHBsYWNlOyB3ZSBoYXZlIHRvIGNvcHktb24td3JpdGUuXG5cbiAgLy8gQ3JlYXRlIGEgbmV3IGVudHJ5IGZvciB0aGUgYWN0aXZlIGNhY2hlIGtleS4gVGhpcyBpcyB0aGUgaGVhZCBvZiB0aGUgbmV3XG4gIC8vIGxpbmtlZCBsaXN0LlxuICBjb25zdCBuZXdBY3RpdmVFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0ge1xuICAgIHRyZWU6IGFjdGl2ZVRyZWUsXG4gICAgc3RhdGVLZXk6IGFjdGl2ZVN0YXRlS2V5LFxuICAgIG5leHQ6IG51bGwsXG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIGFwcGVuZCB0aGUgb2xkIGxpc3Qgb250byB0aGUgbmV3IGxpc3QuIElmIHRoZSBoZWFkIG9mIHRoZSBuZXdcbiAgLy8gbGlzdCB3YXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBjYWNoZSwgdGhlbiB3ZSdsbCBuZWVkIHRvIGNsb25lIGV2ZXJ5dGhpbmdcbiAgLy8gdGhhdCBjYW1lIGJlZm9yZSBpdC4gVGhlbiB3ZSBjYW4gcmV1c2UgdGhlIHJlc3QuXG4gIGxldCBuID0gMVxuICBsZXQgb2xkRW50cnk6IFJvdXRlckJGQ2FjaGVFbnRyeSB8IG51bGwgPSBwcmV2QWN0aXZlRW50cnlcbiAgbGV0IGNsb25lZEVudHJ5OiBSb3V0ZXJCRkNhY2hlRW50cnkgPSBuZXdBY3RpdmVFbnRyeVxuICB3aGlsZSAob2xkRW50cnkgIT09IG51bGwgJiYgbiA8IE1BWF9CRl9DQUNIRV9FTlRSSUVTKSB7XG4gICAgaWYgKG9sZEVudHJ5LnN0YXRlS2V5ID09PSBhY3RpdmVTdGF0ZUtleSkge1xuICAgICAgLy8gRmFzdCBwYXRoLiBUaGlzIGVudHJ5IGluIHRoZSBvbGQgbGlzdCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBrZXkgdGhhdFxuICAgICAgLy8gaXMgbm93IGFjdGl2ZS4gV2UndmUgYWxyZWFkeSBwbGFjZWQgYSBjbG9uZSBvZiB0aGlzIGVudHJ5IGF0IHRoZSBmcm9udFxuICAgICAgLy8gb2YgdGhlIG5ldyBsaXN0LiBXZSBjYW4gcmV1c2UgdGhlIHJlc3Qgb2YgdGhlIG9sZCBsaXN0IHdpdGhvdXQgY2xvbmluZy5cbiAgICAgIC8vIE5PVEU6IFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgZXZpY3Rpb24gaW4gdGhpcyBjYXNlIGJlY2F1c2Ugd2VcbiAgICAgIC8vIGhhdmVuJ3QgaW5jcmVhc2VkIHRoZSBzaXplIG9mIHRoZSBjYWNoZSwgYW5kIHdlIGFzc3VtZSB0aGUgbWF4IHNpemVcbiAgICAgIC8vIGlzIGNvbnN0YW50IGFjcm9zcyByZW5kZXJzLiBJZiB3ZSB3ZXJlIHRvIGNoYW5nZSBpdCB0byBhIGR5bmFtaWMgbGltaXQsXG4gICAgICAvLyB0aGVuIHRoZSBpbXBsZW1lbnRhdGlvbiB3b3VsZCBuZWVkIHRvIGFjY291bnQgZm9yIHRoYXQuXG4gICAgICBjbG9uZWRFbnRyeS5uZXh0ID0gb2xkRW50cnkubmV4dFxuICAgICAgYnJlYWtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2xvbmUgdGhlIGVudHJ5IGFuZCBhcHBlbmQgaXQgdG8gdGhlIGxpc3QuXG4gICAgICBuKytcbiAgICAgIGNvbnN0IGVudHJ5OiBSb3V0ZXJCRkNhY2hlRW50cnkgPSB7XG4gICAgICAgIHRyZWU6IG9sZEVudHJ5LnRyZWUsXG4gICAgICAgIHN0YXRlS2V5OiBvbGRFbnRyeS5zdGF0ZUtleSxcbiAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgIH1cbiAgICAgIGNsb25lZEVudHJ5Lm5leHQgPSBlbnRyeVxuICAgICAgY2xvbmVkRW50cnkgPSBlbnRyeVxuICAgIH1cbiAgICBvbGRFbnRyeSA9IG9sZEVudHJ5Lm5leHRcbiAgfVxuXG4gIHNldFByZXZBY3RpdmVFbnRyeShuZXdBY3RpdmVFbnRyeSlcbiAgcmV0dXJuIG5ld0FjdGl2ZUVudHJ5XG59XG4iXSwibmFtZXMiOlsidXNlUm91dGVyQkZDYWNoZSIsIk1BWF9CRl9DQUNIRV9FTlRSSUVTIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkZfQ0FDSEUiLCJhY3RpdmVUcmVlIiwiYWN0aXZlU3RhdGVLZXkiLCJwcmV2QWN0aXZlRW50cnkiLCJzZXRQcmV2QWN0aXZlRW50cnkiLCJ1c2VTdGF0ZSIsImluaXRpYWxFbnRyeSIsInRyZWUiLCJzdGF0ZUtleSIsIm5leHQiLCJuZXdBY3RpdmVFbnRyeSIsIm4iLCJvbGRFbnRyeSIsImNsb25lZEVudHJ5IiwiZW50cnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/bfcache.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/builtin/global-error.js ***! \**************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _handleisrerror = __webpack_require__(/*! ../handle-isr-error */ \"(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\");\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n text: {\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '28px',\n margin: '0 8px'\n }\n};\nfunction DefaultGlobalError(param) {\n let { error } = param;\n const digest = error == null ? void 0 : error.digest;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n id: \"__next_error__\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_handleisrerror.HandleISRError, {\n error: error\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.text,\n children: [\n \"Application error: a \",\n digest ? 'server' : 'client',\n \"-side exception has occurred while loading \",\n window.location.hostname,\n \" (see the\",\n ' ',\n digest ? 'server logs' : 'browser console',\n \" for more information).\"\n ]\n }),\n digest ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n style: styles.text,\n children: \"Digest: \" + digest\n }) : null\n ]\n })\n })\n ]\n })\n ]\n });\n}\nconst _default = DefaultGlobalError;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=global-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBb0RBOzs7ZUFBQTs7Ozs0Q0FsRCtCO0FBRS9CLE1BQU1BLFNBQVM7SUFDYkMsT0FBTztRQUNMLDBGQUEwRjtRQUMxRkMsWUFDRTtRQUNGQyxRQUFRO1FBQ1JDLFdBQVc7UUFDWEMsU0FBUztRQUNUQyxlQUFlO1FBQ2ZDLFlBQVk7UUFDWkMsZ0JBQWdCO0lBQ2xCO0lBQ0FDLE1BQU07UUFDSkMsVUFBVTtRQUNWQyxZQUFZO1FBQ1pDLFlBQVk7UUFDWkMsUUFBUTtJQUNWO0FBQ0Y7QUFLQSxTQUFTQyxtQkFBbUIsS0FBeUI7SUFBekIsTUFBRWIsS0FBSyxFQUFrQixHQUF6QjtJQUMxQixNQUFNYyxTQUE2QmQsU0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsTUFBT2MsTUFBTTtJQUNoRCxxQkFDRSxzQkFBQ0MsUUFBQUE7UUFBS0MsSUFBRzs7MEJBQ1AscUJBQUNDLFFBQUFBLENBQUFBOzBCQUNELHNCQUFDQyxRQUFBQTs7a0NBQ0MscUJBQUNDLGdCQUFBQSxjQUFjO3dCQUFDbkIsT0FBT0E7O2tDQUN2QixxQkFBQ29CLE9BQUFBO3dCQUFJQyxPQUFPdEIsT0FBT0MsS0FBSztrQ0FDdEIsb0NBQUNvQixPQUFBQTs7OENBQ0Msc0JBQUNFLE1BQUFBO29DQUFHRCxPQUFPdEIsT0FBT1MsSUFBSTs7d0NBQUU7d0NBQ0FNLFNBQVMsV0FBVzt3Q0FBUzt3Q0FDdkJTLE9BQU9DLFFBQVEsQ0FBQ0MsUUFBUTt3Q0FBQzt3Q0FBVTt3Q0FDOURYLFNBQVMsZ0JBQWdCO3dDQUFrQjs7O2dDQUc3Q0EsU0FBQUEsV0FBQUEsR0FBUyxxQkFBQ1ksS0FBQUE7b0NBQUVMLE9BQU90QixPQUFPUyxJQUFJOzhDQUFJLGFBQVVNO3FDQUFnQjs7Ozs7Ozs7QUFNekU7TUFJQSxXQUFlRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgSGFuZGxlSVNSRXJyb3IgfSBmcm9tICcuLi9oYW5kbGUtaXNyLWVycm9yJ1xuXG5jb25zdCBzdHlsZXMgPSB7XG4gIGVycm9yOiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2Jsb2IvbWFpbi9tb2Rlcm4tbm9ybWFsaXplLmNzcyNMMzgtTDUyXG4gICAgZm9udEZhbWlseTpcbiAgICAgICdzeXN0ZW0tdWksXCJTZWdvZSBVSVwiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiJyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuICB0ZXh0OiB7XG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA0MDAsXG4gICAgbGluZUhlaWdodDogJzI4cHgnLFxuICAgIG1hcmdpbjogJzAgOHB4JyxcbiAgfSxcbn0gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgR2xvYmFsRXJyb3JDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPHtcbiAgZXJyb3I6IGFueVxufT5cbmZ1bmN0aW9uIERlZmF1bHRHbG9iYWxFcnJvcih7IGVycm9yIH06IHsgZXJyb3I6IGFueSB9KSB7XG4gIGNvbnN0IGRpZ2VzdDogc3RyaW5nIHwgdW5kZWZpbmVkID0gZXJyb3I/LmRpZ2VzdFxuICByZXR1cm4gKFxuICAgIDxodG1sIGlkPVwiX19uZXh0X2Vycm9yX19cIj5cbiAgICAgIDxoZWFkPjwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8SGFuZGxlSVNSRXJyb3IgZXJyb3I9e2Vycm9yfSAvPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXJyb3J9PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy50ZXh0fT5cbiAgICAgICAgICAgICAgQXBwbGljYXRpb24gZXJyb3I6IGEge2RpZ2VzdCA/ICdzZXJ2ZXInIDogJ2NsaWVudCd9LXNpZGUgZXhjZXB0aW9uXG4gICAgICAgICAgICAgIGhhcyBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9IChzZWUgdGhleycgJ31cbiAgICAgICAgICAgICAge2RpZ2VzdCA/ICdzZXJ2ZXIgbG9ncycgOiAnYnJvd3NlciBjb25zb2xlJ30gZm9yIG1vcmVcbiAgICAgICAgICAgICAgaW5mb3JtYXRpb24pLlxuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgIHtkaWdlc3QgPyA8cCBzdHlsZT17c3R5bGVzLnRleHR9PntgRGlnZXN0OiAke2RpZ2VzdH1gfTwvcD4gOiBudWxsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gIClcbn1cblxuLy8gRXhwb3J0ZWQgc28gdGhhdCB0aGUgaW1wb3J0IHNpZ25hdHVyZSBpbiB0aGUgbG9hZGVycyBjYW4gYmUgaWRlbnRpY2FsIHRvIHVzZXJcbi8vIHN1cHBsaWVkIGN1c3RvbSBnbG9iYWwgZXJyb3Igc2lnbmF0dXJlcy5cbmV4cG9ydCBkZWZhdWx0IERlZmF1bHRHbG9iYWxFcnJvclxuIl0sIm5hbWVzIjpbInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwidGV4dCIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImxpbmVIZWlnaHQiLCJtYXJnaW4iLCJEZWZhdWx0R2xvYmFsRXJyb3IiLCJkaWdlc3QiLCJodG1sIiwiaWQiLCJoZWFkIiwiYm9keSIsIkhhbmRsZUlTUkVycm9yIiwiZGl2Iiwic3R5bGUiLCJoMiIsIndpbmRvdyIsImxvY2F0aW9uIiwiaG9zdG5hbWUiLCJwIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/client-page.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/client/components/client-page.js ***! \*****************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ClientPageRoot\", ({\n enumerable: true,\n get: function() {\n return ClientPageRoot;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction ClientPageRoot(param) {\n let { Component, searchParams, params, promises } = param;\n if (true) {\n const { workAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\n let clientSearchParams;\n let clientParams;\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore();\n if (!store) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to exist when handling searchParams in a client Page.'), \"__NEXT_ERROR_CODE\", {\n value: \"E564\",\n enumerable: false,\n configurable: true\n });\n }\n const { createSearchParamsFromClient } = __webpack_require__(/*! ../../server/request/search-params */ \"(ssr)/./node_modules/next/dist/server/request/search-params.js\");\n clientSearchParams = createSearchParamsFromClient(searchParams, store);\n const { createParamsFromClient } = __webpack_require__(/*! ../../server/request/params */ \"(ssr)/./node_modules/next/dist/server/request/params.js\");\n clientParams = createParamsFromClient(params, store);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n params: clientParams,\n searchParams: clientSearchParams\n });\n } else {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=client-page.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBZWdCQTs7O2VBQUFBOzs7OzRDQVplO0FBWXhCLFNBQVNBLGVBQWUsS0FXOUI7SUFYOEIsTUFDN0JDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyxNQUFNLEVBQ04sUUFDUSxFQU1ULEdBWDhCO0lBWTdCLElBQUksSUFBNkIsRUFBRTtRQUNqQyxNQUFNLEVBQUVHLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQywwRkFBcUQ7UUFFL0QsSUFBSUM7UUFDSixJQUFJQztRQUNKLHlFQUF5RTtRQUN6RSx3RUFBd0U7UUFDeEUsTUFBTUMsUUFBUUosaUJBQWlCSyxRQUFRO1FBQ3ZDLElBQUksQ0FBQ0QsT0FBTztZQUNWLE1BQU0scUJBRUwsQ0FGSyxJQUFJRSxnQkFBQUEsY0FBYyxDQUN0Qiw2RUFESTt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxNQUFNLEVBQUVDLDRCQUE0QixFQUFFLEdBQ3BDTixtQkFBT0EsQ0FBQywwR0FBb0M7UUFDOUNDLHFCQUFxQkssNkJBQTZCWCxjQUFjUTtRQUVoRSxNQUFNLEVBQUVJLHNCQUFzQixFQUFFLEdBQzlCUCxtQkFBT0EsQ0FBQyw0RkFBNkI7UUFDdkNFLGVBQWVLLHVCQUF1QlgsUUFBUU87UUFFOUMscUJBQU8scUJBQUNULFdBQUFBO1lBQVVFLFFBQVFNO1lBQWNQLGNBQWNNOztJQUN4RCxPQUFPLEVBU047QUFDSCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgSW52YXJpYW50RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvcidcblxuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbi8qKlxuICogV2hlbiB0aGUgUGFnZSBpcyBhIGNsaWVudCBjb21wb25lbnQgd2Ugc2VuZCB0aGUgcGFyYW1zIGFuZCBzZWFyY2hQYXJhbXMgdG8gdGhpcyBjbGllbnQgd3JhcHBlclxuICogd2hlcmUgdGhleSBhcmUgdHVybmVkIGludG8gZHluYW1pY2FsbHkgdHJhY2tlZCB2YWx1ZXMgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgYWN0dWFsIFBhZ2UgY29tcG9uZW50LlxuICpcbiAqIGFkZGl0aW9uYWxseSB3ZSBtYXkgc2VuZCBwcm9taXNlcyByZXByZXNlbnRpbmcgdGhlIHBhcmFtcyBhbmQgc2VhcmNoUGFyYW1zLiBXZSBkb24ndCBldmVyIHVzZSB0aGVzZSBwYXNzZWRcbiAqIHZhbHVlcyBidXQgaXQgY2FuIGJlIG5lY2Vzc2FyeSBmb3IgdGhlIHNlbmRlciB0byBzZW5kIGEgUHJvbWlzZSB0aGF0IGRvZXNuJ3QgcmVzb2x2ZSBpbiBjZXJ0YWluIHNpdHVhdGlvbnMuXG4gKiBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGRlY2lkZSBpZiB0aGUgcHJvbWlzZXMgYXJlIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsaWVudFBhZ2VSb290KHtcbiAgQ29tcG9uZW50LFxuICBzZWFyY2hQYXJhbXMsXG4gIHBhcmFtcyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm9taXNlcyxcbn06IHtcbiAgQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgc2VhcmNoUGFyYW1zOiBQYXJzZWRVcmxRdWVyeVxuICBwYXJhbXM6IFBhcmFtc1xuICBwcm9taXNlcz86IEFycmF5PFByb21pc2U8YW55Pj5cbn0pIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyB3b3JrQXN5bmNTdG9yYWdlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcblxuICAgIGxldCBjbGllbnRTZWFyY2hQYXJhbXM6IFByb21pc2U8UGFyc2VkVXJsUXVlcnk+XG4gICAgbGV0IGNsaWVudFBhcmFtczogUHJvbWlzZTxQYXJhbXM+XG4gICAgLy8gV2UgYXJlIGdvaW5nIHRvIGluc3RydW1lbnQgdGhlIHNlYXJjaFBhcmFtcyBwcm9wIHdpdGggdHJhY2tpbmcgZm9yIHRoZVxuICAgIC8vIGFwcHJvcHJpYXRlIGNvbnRleHQuIFdlIHdyYXAgZGlmZmVyZW50bHkgaW4gcHJlcmVuZGVyaW5nIHZzIHJlbmRlcmluZ1xuICAgIGNvbnN0IHN0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gICAgaWYgKCFzdG9yZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAnRXhwZWN0ZWQgd29ya1N0b3JlIHRvIGV4aXN0IHdoZW4gaGFuZGxpbmcgc2VhcmNoUGFyYW1zIGluIGEgY2xpZW50IFBhZ2UuJ1xuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHsgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zJylcbiAgICBjbGllbnRTZWFyY2hQYXJhbXMgPSBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHNlYXJjaFBhcmFtcywgc3RvcmUpXG5cbiAgICBjb25zdCB7IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKVxuICAgIGNsaWVudFBhcmFtcyA9IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQocGFyYW1zLCBzdG9yZSlcblxuICAgIHJldHVybiA8Q29tcG9uZW50IHBhcmFtcz17Y2xpZW50UGFyYW1zfSBzZWFyY2hQYXJhbXM9e2NsaWVudFNlYXJjaFBhcmFtc30gLz5cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuYnJvd3NlcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5icm93c2VyJylcbiAgICBjb25zdCBjbGllbnRTZWFyY2hQYXJhbXMgPSBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHNlYXJjaFBhcmFtcylcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vcmVxdWVzdC9wYXJhbXMuYnJvd3NlcicpXG4gICAgY29uc3QgY2xpZW50UGFyYW1zID0gY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudChwYXJhbXMpXG5cbiAgICByZXR1cm4gPENvbXBvbmVudCBwYXJhbXM9e2NsaWVudFBhcmFtc30gc2VhcmNoUGFyYW1zPXtjbGllbnRTZWFyY2hQYXJhbXN9IC8+XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDbGllbnRQYWdlUm9vdCIsIkNvbXBvbmVudCIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsInByb21pc2VzIiwid2luZG93Iiwid29ya0FzeW5jU3RvcmFnZSIsInJlcXVpcmUiLCJjbGllbnRTZWFyY2hQYXJhbXMiLCJjbGllbnRQYXJhbXMiLCJzdG9yZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50IiwiY3JlYXRlUGFyYW1zRnJvbUNsaWVudCIsImNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQiLCJjcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/client-page.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/client-segment.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/components/client-segment.js ***! \********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ClientSegmentRoot\", ({\n enumerable: true,\n get: function() {\n return ClientSegmentRoot;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction ClientSegmentRoot(param) {\n let { Component, slots, params, promise } = param;\n if (true) {\n const { workAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\n let clientParams;\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore();\n if (!store) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to exist when handling params in a client segment such as a Layout or Template.'), \"__NEXT_ERROR_CODE\", {\n value: \"E600\",\n enumerable: false,\n configurable: true\n });\n }\n const { createParamsFromClient } = __webpack_require__(/*! ../../server/request/params */ \"(ssr)/./node_modules/next/dist/server/request/params.js\");\n clientParams = createParamsFromClient(params, store);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...slots,\n params: clientParams\n });\n } else {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=client-segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBY2dCQTs7O2VBQUFBOzs7OzRDQVplO0FBWXhCLFNBQVNBLGtCQUFrQixLQVdqQztJQVhpQyxNQUNoQ0MsU0FBUyxFQUNUQyxLQUFLLEVBQ0xDLE1BQU0sRUFFTkMsT0FBTyxFQU1SLEdBWGlDO0lBWWhDLElBQUksSUFBNkIsRUFBRTtRQUNqQyxNQUFNLEVBQUVFLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQywwRkFBcUQ7UUFFL0QsSUFBSUM7UUFDSix5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLE1BQU1DLFFBQVFILGlCQUFpQkksUUFBUTtRQUN2QyxJQUFJLENBQUNELE9BQU87WUFDVixNQUFNLHFCQUVMLENBRkssSUFBSUUsZ0JBQUFBLGNBQWMsQ0FDdEIsdUdBREk7dUJBQUE7NEJBQUE7OEJBQUE7WUFFTjtRQUNGO1FBRUEsTUFBTSxFQUFFQyxzQkFBc0IsRUFBRSxHQUM5QkwsbUJBQU9BLENBQUMsNEZBQTZCO1FBQ3ZDQyxlQUFlSSx1QkFBdUJULFFBQVFNO1FBRTlDLHFCQUFPLHFCQUFDUixXQUFBQTtZQUFXLEdBQUdDLEtBQUs7WUFBRUMsUUFBUUs7O0lBQ3ZDLE9BQU8sRUFLTjtBQUNIIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBJbnZhcmlhbnRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yJ1xuXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcblxuLyoqXG4gKiBXaGVuIHRoZSBQYWdlIGlzIGEgY2xpZW50IGNvbXBvbmVudCB3ZSBzZW5kIHRoZSBwYXJhbXMgdG8gdGhpcyBjbGllbnQgd3JhcHBlclxuICogd2hlcmUgdGhleSBhcmUgdHVybmVkIGludG8gZHluYW1pY2FsbHkgdHJhY2tlZCB2YWx1ZXMgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgYWN0dWFsIFNlZ21lbnQgY29tcG9uZW50LlxuICpcbiAqIGFkZGl0aW9uYWxseSB3ZSBtYXkgc2VuZCBhIHByb21pc2UgcmVwcmVzZW50aW5nIHBhcmFtcy4gV2UgZG9uJ3QgZXZlciB1c2UgdGhpcyBwYXNzZWRcbiAqIHZhbHVlIGJ1dCBpdCBjYW4gYmUgbmVjZXNzYXJ5IGZvciB0aGUgc2VuZGVyIHRvIHNlbmQgYSBQcm9taXNlIHRoYXQgZG9lc24ndCByZXNvbHZlIGluIGNlcnRhaW4gc2l0dWF0aW9uc1xuICogc3VjaCBhcyB3aGVuIGNhY2hlQ29tcG9uZW50cyBpcyBlbmFibGVkLiBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGRlY2lkZSBpZiB0aGUgcHJvbWlzZXMgYXJlIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsaWVudFNlZ21lbnRSb290KHtcbiAgQ29tcG9uZW50LFxuICBzbG90cyxcbiAgcGFyYW1zLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHByb21pc2UsXG59OiB7XG4gIENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHNsb3RzOiB7IFtrZXk6IHN0cmluZ106IFJlYWN0LlJlYWN0Tm9kZSB9XG4gIHBhcmFtczogUGFyYW1zXG4gIHByb21pc2U/OiBQcm9taXNlPGFueT5cbn0pIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyB3b3JrQXN5bmNTdG9yYWdlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcblxuICAgIGxldCBjbGllbnRQYXJhbXM6IFByb21pc2U8UGFyYW1zPlxuICAgIC8vIFdlIGFyZSBnb2luZyB0byBpbnN0cnVtZW50IHRoZSBzZWFyY2hQYXJhbXMgcHJvcCB3aXRoIHRyYWNraW5nIGZvciB0aGVcbiAgICAvLyBhcHByb3ByaWF0ZSBjb250ZXh0LiBXZSB3cmFwIGRpZmZlcmVudGx5IGluIHByZXJlbmRlcmluZyB2cyByZW5kZXJpbmdcbiAgICBjb25zdCBzdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmICghc3RvcmUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgICAgJ0V4cGVjdGVkIHdvcmtTdG9yZSB0byBleGlzdCB3aGVuIGhhbmRsaW5nIHBhcmFtcyBpbiBhIGNsaWVudCBzZWdtZW50IHN1Y2ggYXMgYSBMYXlvdXQgb3IgVGVtcGxhdGUuJ1xuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHsgY3JlYXRlUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcycpXG4gICAgY2xpZW50UGFyYW1zID0gY3JlYXRlUGFyYW1zRnJvbUNsaWVudChwYXJhbXMsIHN0b3JlKVxuXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnNsb3RzfSBwYXJhbXM9e2NsaWVudFBhcmFtc30gLz5cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vcmVxdWVzdC9wYXJhbXMuYnJvd3NlcicpXG4gICAgY29uc3QgY2xpZW50UGFyYW1zID0gY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudChwYXJhbXMpXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnNsb3RzfSBwYXJhbXM9e2NsaWVudFBhcmFtc30gLz5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNsaWVudFNlZ21lbnRSb290IiwiQ29tcG9uZW50Iiwic2xvdHMiLCJwYXJhbXMiLCJwcm9taXNlIiwid2luZG93Iiwid29ya0FzeW5jU3RvcmFnZSIsInJlcXVpcmUiLCJjbGllbnRQYXJhbXMiLCJzdG9yZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IiwiY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/client-segment.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/error-boundary.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/components/error-boundary.js ***! \********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ErrorBoundary: function() {\n return ErrorBoundary;\n },\n ErrorBoundaryHandler: function() {\n return ErrorBoundaryHandler;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigationuntracked = __webpack_require__(/*! ./navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _isnextroutererror = __webpack_require__(/*! ./is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _navfailurehandler = __webpack_require__(/*! ./nav-failure-handler */ \"(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js\");\nconst _handleisrerror = __webpack_require__(/*! ./handle-isr-error */ \"(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\");\nconst _isbot = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst isBotUserAgent = false && 0;\nclass ErrorBoundaryHandler extends _react.default.Component {\n static getDerivedStateFromError(error) {\n if ((0, _isnextroutererror.isNextRouterError)(error)) {\n // Re-throw if an expected internal Next.js router error occurs\n // this means it should be handled by a different boundary (such as a NotFound boundary in a parent segment)\n throw error;\n }\n return {\n error\n };\n }\n static getDerivedStateFromProps(props, state) {\n const { error } = state;\n // if we encounter an error while\n // a navigation is pending we shouldn't render\n // the error boundary and instead should fallback\n // to a hard navigation to attempt recovering\n if (false) {}\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */ if (props.pathname !== state.previousPathname && state.error) {\n return {\n error: null,\n previousPathname: props.pathname\n };\n }\n return {\n error: state.error,\n previousPathname: props.pathname\n };\n }\n // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render() {\n //When it's bot request, segment level error boundary will keep rendering the children,\n // the final error will be caught by the root error boundary and determine wether need to apply graceful degrade.\n if (this.state.error && !isBotUserAgent) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_handleisrerror.HandleISRError, {\n error: this.state.error\n }),\n this.props.errorStyles,\n this.props.errorScripts,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(this.props.errorComponent, {\n error: this.state.error,\n reset: this.reset\n })\n ]\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props), this.reset = ()=>{\n this.setState({\n error: null\n });\n };\n this.state = {\n error: null,\n previousPathname: this.props.pathname\n };\n }\n}\nfunction ErrorBoundary(param) {\n let { errorComponent, errorStyles, errorScripts, children } = param;\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these errors can occur), we will get the correct pathname.\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n if (errorComponent) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorBoundaryHandler, {\n pathname: pathname,\n errorComponent: errorComponent,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdJZ0JBLGFBQWE7ZUFBYkE7O0lBNUZIQyxvQkFBb0I7ZUFBcEJBOzs7Ozs0RUFsQ21CO2lEQUNLOytDQUNIOytDQUNDOzRDQUNKO21DQUNUO0FBRXRCLE1BQU1DLGlCQUNKLE1BQTZCLElBQUlFLENBQWlDO0FBMEI3RCxNQUFNSCw2QkFBNkJNLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQVN2RCxPQUFPQyx5QkFBeUJDLEtBQVksRUFBRTtRQUM1QyxJQUFJQyxDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCRCxRQUFRO1lBQzVCLCtEQUErRDtZQUMvRCw0R0FBNEc7WUFDNUcsTUFBTUE7UUFDUjtRQUVBLE9BQU87WUFBRUE7UUFBTTtJQUNqQjtJQUVBLE9BQU9FLHlCQUNMQyxLQUFnQyxFQUNoQ0MsS0FBZ0MsRUFDRTtRQUNsQyxNQUFNLEVBQUVKLEtBQUssRUFBRSxHQUFHSTtRQUVsQixpQ0FBaUM7UUFDakMsOENBQThDO1FBQzlDLGlEQUFpRDtRQUNqRCw2Q0FBNkM7UUFDN0MsSUFBSUMsS0FBd0MsRUFBRSxFQVE3QztRQUVEOzs7OztLQUtDLEdBQ0QsSUFBSUYsTUFBTU8sUUFBUSxLQUFLTixNQUFNSyxnQkFBZ0IsSUFBSUwsTUFBTUosS0FBSyxFQUFFO1lBQzVELE9BQU87Z0JBQ0xBLE9BQU87Z0JBQ1BTLGtCQUFrQk4sTUFBTU8sUUFBUTtZQUNsQztRQUNGO1FBQ0EsT0FBTztZQUNMVixPQUFPSSxNQUFNSixLQUFLO1lBQ2xCUyxrQkFBa0JOLE1BQU1PLFFBQVE7UUFDbEM7SUFDRjtJQU1BLHlJQUF5STtJQUN6SUMsU0FBMEI7UUFDeEIsdUZBQXVGO1FBQ3ZGLGlIQUFpSDtRQUNqSCxJQUFJLElBQUksQ0FBQ1AsS0FBSyxDQUFDSixLQUFLLElBQUksQ0FBQ1IsZ0JBQWdCO1lBQ3ZDLHFCQUNFOztrQ0FDRSxxQkFBQ29CLGdCQUFBQSxjQUFjO3dCQUFDWixPQUFPLElBQUksQ0FBQ0ksS0FBSyxDQUFDSixLQUFLOztvQkFDdEMsSUFBSSxDQUFDRyxLQUFLLENBQUNVLFdBQVc7b0JBQ3RCLElBQUksQ0FBQ1YsS0FBSyxDQUFDVyxZQUFZO2tDQUN4QixxQkFBQ0MsSUFBSSxDQUFDWixLQUFLLENBQUNhLGNBQWM7d0JBQ3hCaEIsT0FBTyxJQUFJLENBQUNJLEtBQUssQ0FBQ0osS0FBSzt3QkFDdkJpQixPQUFPLElBQUksQ0FBQ0EsS0FBSzs7OztRQUl6QjtRQUVBLE9BQU8sSUFBSSxDQUFDZCxLQUFLLENBQUNlLFFBQVE7SUFDNUI7SUE1RUFDLFlBQVloQixLQUFnQyxDQUFFO1FBQzVDLEtBQUssQ0FBQ0EsUUFBQUEsSUFBQUEsQ0FvRFJjLEtBQUFBLEdBQVE7WUFDTixJQUFJLENBQUNHLFFBQVEsQ0FBQztnQkFBRXBCLE9BQU87WUFBSztRQUM5QjtRQXJERSxJQUFJLENBQUNJLEtBQUssR0FBRztZQUFFSixPQUFPO1lBQU1TLGtCQUFrQixJQUFJLENBQUNOLEtBQUssQ0FBQ08sUUFBUTtRQUFDO0lBQ3BFO0FBMEVGO0FBV08sU0FBU3BCLGNBQWMsS0FPN0I7SUFQNkIsTUFDNUIwQixjQUFjLEVBQ2RILFdBQVcsRUFDWEMsWUFBWSxFQUNaSSxRQUFRLEVBR1QsR0FQNkI7SUFRNUIsNkVBQTZFO0lBQzdFLHFFQUFxRTtJQUNyRSx3RUFBd0U7SUFDeEUsb0VBQW9FO0lBQ3BFLE1BQU1SLFdBQVdXLENBQUFBLEdBQUFBLHFCQUFBQSxvQkFBQUE7SUFDakIsSUFBSUwsZ0JBQWdCO1FBQ2xCLE9BQ0UsV0FERixHQUNFLHFCQUFDekIsc0JBQUFBO1lBQ0NtQixVQUFVQTtZQUNWTSxnQkFBZ0JBO1lBQ2hCSCxhQUFhQTtZQUNiQyxjQUFjQTtzQkFFYkk7O0lBR1A7SUFFQSxxQkFBTztrQkFBR0E7O0FBQ1oiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCwgeyB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVW50cmFja2VkUGF0aG5hbWUgfSBmcm9tICcuL25hdmlnYXRpb24tdW50cmFja2VkJ1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuL2lzLW5leHQtcm91dGVyLWVycm9yJ1xuaW1wb3J0IHsgaGFuZGxlSGFyZE5hdkVycm9yIH0gZnJvbSAnLi9uYXYtZmFpbHVyZS1oYW5kbGVyJ1xuaW1wb3J0IHsgSGFuZGxlSVNSRXJyb3IgfSBmcm9tICcuL2hhbmRsZS1pc3ItZXJyb3InXG5pbXBvcnQgeyBpc0JvdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdCdcblxuY29uc3QgaXNCb3RVc2VyQWdlbnQgPVxuICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiBpc0JvdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudClcblxuZXhwb3J0IHR5cGUgRXJyb3JDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPHtcbiAgZXJyb3I6IEVycm9yXG4gIC8vIGdsb2JhbC1lcnJvciwgdGhlcmUncyBubyBgcmVzZXRgIGZ1bmN0aW9uO1xuICAvLyByZWd1bGFyIGVycm9yIGJvdW5kYXJ5LCB0aGVyZSdzIGEgYHJlc2V0YCBmdW5jdGlvbi5cbiAgcmVzZXQ/OiAoKSA9PiB2b2lkXG59PlxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yQm91bmRhcnlQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGVycm9yQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBlcnJvclN0eWxlcz86IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICBlcnJvclNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbn1cblxuaW50ZXJmYWNlIEVycm9yQm91bmRhcnlIYW5kbGVyUHJvcHMgZXh0ZW5kcyBFcnJvckJvdW5kYXJ5UHJvcHMge1xuICBwYXRobmFtZTogc3RyaW5nIHwgbnVsbFxuICBlcnJvckNvbXBvbmVudDogRXJyb3JDb21wb25lbnRcbn1cblxuaW50ZXJmYWNlIEVycm9yQm91bmRhcnlIYW5kbGVyU3RhdGUge1xuICBlcnJvcjogRXJyb3IgfCBudWxsXG4gIHByZXZpb3VzUGF0aG5hbWU6IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yQm91bmRhcnlIYW5kbGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxuICBFcnJvckJvdW5kYXJ5SGFuZGxlclByb3BzLFxuICBFcnJvckJvdW5kYXJ5SGFuZGxlclN0YXRlXG4+IHtcbiAgY29uc3RydWN0b3IocHJvcHM6IEVycm9yQm91bmRhcnlIYW5kbGVyUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLnN0YXRlID0geyBlcnJvcjogbnVsbCwgcHJldmlvdXNQYXRobmFtZTogdGhpcy5wcm9wcy5wYXRobmFtZSB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yOiBFcnJvcikge1xuICAgIGlmIChpc05leHRSb3V0ZXJFcnJvcihlcnJvcikpIHtcbiAgICAgIC8vIFJlLXRocm93IGlmIGFuIGV4cGVjdGVkIGludGVybmFsIE5leHQuanMgcm91dGVyIGVycm9yIG9jY3Vyc1xuICAgICAgLy8gdGhpcyBtZWFucyBpdCBzaG91bGQgYmUgaGFuZGxlZCBieSBhIGRpZmZlcmVudCBib3VuZGFyeSAoc3VjaCBhcyBhIE5vdEZvdW5kIGJvdW5kYXJ5IGluIGEgcGFyZW50IHNlZ21lbnQpXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHJldHVybiB7IGVycm9yIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoXG4gICAgcHJvcHM6IEVycm9yQm91bmRhcnlIYW5kbGVyUHJvcHMsXG4gICAgc3RhdGU6IEVycm9yQm91bmRhcnlIYW5kbGVyU3RhdGVcbiAgKTogRXJyb3JCb3VuZGFyeUhhbmRsZXJTdGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IHsgZXJyb3IgfSA9IHN0YXRlXG5cbiAgICAvLyBpZiB3ZSBlbmNvdW50ZXIgYW4gZXJyb3Igd2hpbGVcbiAgICAvLyBhIG5hdmlnYXRpb24gaXMgcGVuZGluZyB3ZSBzaG91bGRuJ3QgcmVuZGVyXG4gICAgLy8gdGhlIGVycm9yIGJvdW5kYXJ5IGFuZCBpbnN0ZWFkIHNob3VsZCBmYWxsYmFja1xuICAgIC8vIHRvIGEgaGFyZCBuYXZpZ2F0aW9uIHRvIGF0dGVtcHQgcmVjb3ZlcmluZ1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HKSB7XG4gICAgICBpZiAoZXJyb3IgJiYgaGFuZGxlSGFyZE5hdkVycm9yKGVycm9yKSkge1xuICAgICAgICAvLyBjbGVhciBlcnJvciBzbyB3ZSBkb24ndCByZW5kZXIgYW55dGhpbmdcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgcmVzZXQgb2YgdGhlIGVycm9yIGJvdW5kYXJ5IHdoZW4gYSBuYXZpZ2F0aW9uIGhhcHBlbnMuXG4gICAgICogRW5zdXJlcyB0aGUgZXJyb3IgYm91bmRhcnkgZG9lcyBub3Qgc3RheSBlbmFibGVkIHdoZW4gbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlLlxuICAgICAqIEFwcHJvYWNoIG9mIHNldFN0YXRlIGluIHJlbmRlciBpcyBzYWZlIGFzIGl0IGNoZWNrcyB0aGUgcHJldmlvdXMgcGF0aG5hbWUgYW5kIHRoZW4gb3ZlcnJpZGVzXG4gICAgICogaXQgYXMgb3V0bGluZWQgaW4gaHR0cHM6Ly9yZWFjdC5kZXYvcmVmZXJlbmNlL3JlYWN0L3VzZVN0YXRlI3N0b3JpbmctaW5mb3JtYXRpb24tZnJvbS1wcmV2aW91cy1yZW5kZXJzXG4gICAgICovXG4gICAgaWYgKHByb3BzLnBhdGhuYW1lICE9PSBzdGF0ZS5wcmV2aW91c1BhdGhuYW1lICYmIHN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogc3RhdGUuZXJyb3IsXG4gICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZSxcbiAgICB9XG4gIH1cblxuICByZXNldCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3I6IG51bGwgfSlcbiAgfVxuXG4gIC8vIEV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBnZW5lcmF0ZWQgYC5kLnRzYCBoYXZpbmcgYSB3aWRlIHJldHVybiB0eXBlIHRoYXQgY291bGQgYmUgc3BlY2lmaWMgdG8gdGhlIGBAdHlwZXMvcmVhY3RgIHZlcnNpb24uXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIC8vV2hlbiBpdCdzIGJvdCByZXF1ZXN0LCBzZWdtZW50IGxldmVsIGVycm9yIGJvdW5kYXJ5IHdpbGwga2VlcCByZW5kZXJpbmcgdGhlIGNoaWxkcmVuLFxuICAgIC8vIHRoZSBmaW5hbCBlcnJvciB3aWxsIGJlIGNhdWdodCBieSB0aGUgcm9vdCBlcnJvciBib3VuZGFyeSBhbmQgZGV0ZXJtaW5lIHdldGhlciBuZWVkIHRvIGFwcGx5IGdyYWNlZnVsIGRlZ3JhZGUuXG4gICAgaWYgKHRoaXMuc3RhdGUuZXJyb3IgJiYgIWlzQm90VXNlckFnZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxIYW5kbGVJU1JFcnJvciBlcnJvcj17dGhpcy5zdGF0ZS5lcnJvcn0gLz5cbiAgICAgICAgICB7dGhpcy5wcm9wcy5lcnJvclN0eWxlc31cbiAgICAgICAgICB7dGhpcy5wcm9wcy5lcnJvclNjcmlwdHN9XG4gICAgICAgICAgPHRoaXMucHJvcHMuZXJyb3JDb21wb25lbnRcbiAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmVycm9yfVxuICAgICAgICAgICAgcmVzZXQ9e3RoaXMucmVzZXR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgfVxufVxuXG4vKipcbiAqIEhhbmRsZXMgZXJyb3JzIHRocm91Z2ggYGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcmAuXG4gKiBSZW5kZXJzIHRoZSBwcm92aWRlZCBlcnJvciBjb21wb25lbnQgYW5kIHByb3ZpZGVzIGEgd2F5IHRvIGByZXNldGAgdGhlIGVycm9yIGJvdW5kYXJ5IHN0YXRlLlxuICovXG5cbi8qKlxuICogUmVuZGVycyBlcnJvciBib3VuZGFyeSB3aXRoIHRoZSBwcm92aWRlZCBcImVycm9yQ29tcG9uZW50XCIgcHJvcGVydHkgYXMgdGhlIGZhbGxiYWNrLlxuICogSWYgbm8gXCJlcnJvckNvbXBvbmVudFwiIHByb3BlcnR5IGlzIHByb3ZpZGVkIGl0IHJlbmRlcnMgdGhlIGNoaWxkcmVuIHdpdGhvdXQgYW4gZXJyb3IgYm91bmRhcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFcnJvckJvdW5kYXJ5KHtcbiAgZXJyb3JDb21wb25lbnQsXG4gIGVycm9yU3R5bGVzLFxuICBlcnJvclNjcmlwdHMsXG4gIGNoaWxkcmVuLFxufTogRXJyb3JCb3VuZGFyeVByb3BzICYge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KTogSlNYLkVsZW1lbnQge1xuICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyB0aGUgbWlzc2luZyBwYXJhbXMgc2hlbGwsIHRoaXMgd2lsbCByZXR1cm4gbnVsbC4gVGhpc1xuICAvLyBpcyBiZWNhdXNlIHdlIHdvbid0IGJlIHJlbmRlcmluZyBhbnkgbm90IGZvdW5kIGJvdW5kYXJpZXMgb3IgZXJyb3JcbiAgLy8gYm91bmRhcmllcyBmb3IgdGhlIG1pc3NpbmcgcGFyYW1zIHNoZWxsLiBXaGVuIHRoaXMgcnVucyBvbiB0aGUgY2xpZW50XG4gIC8vICh3aGVyZSB0aGVzZSBlcnJvcnMgY2FuIG9jY3VyKSwgd2Ugd2lsbCBnZXQgdGhlIGNvcnJlY3QgcGF0aG5hbWUuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlVW50cmFja2VkUGF0aG5hbWUoKVxuICBpZiAoZXJyb3JDb21wb25lbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEVycm9yQm91bmRhcnlIYW5kbGVyXG4gICAgICAgIHBhdGhuYW1lPXtwYXRobmFtZX1cbiAgICAgICAgZXJyb3JDb21wb25lbnQ9e2Vycm9yQ29tcG9uZW50fVxuICAgICAgICBlcnJvclN0eWxlcz17ZXJyb3JTdHlsZXN9XG4gICAgICAgIGVycm9yU2NyaXB0cz17ZXJyb3JTY3JpcHRzfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0Vycm9yQm91bmRhcnlIYW5kbGVyPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz5cbn1cbiJdLCJuYW1lcyI6WyJFcnJvckJvdW5kYXJ5IiwiRXJyb3JCb3VuZGFyeUhhbmRsZXIiLCJpc0JvdFVzZXJBZ2VudCIsIndpbmRvdyIsImlzQm90IiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiUmVhY3QiLCJDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImlzTmV4dFJvdXRlckVycm9yIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwicHJvcHMiLCJzdGF0ZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HIiwiaGFuZGxlSGFyZE5hdkVycm9yIiwicHJldmlvdXNQYXRobmFtZSIsInBhdGhuYW1lIiwicmVuZGVyIiwiSGFuZGxlSVNSRXJyb3IiLCJlcnJvclN0eWxlcyIsImVycm9yU2NyaXB0cyIsInRoaXMiLCJlcnJvckNvbXBvbmVudCIsInJlc2V0IiwiY2hpbGRyZW4iLCJjb25zdHJ1Y3RvciIsInNldFN0YXRlIiwidXNlVW50cmFja2VkUGF0aG5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/error-boundary.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/forbidden.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/client/components/forbidden.js ***! \***************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"forbidden\", ({\n enumerable: true,\n get: function() {\n return forbidden;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n// TODO: Add `forbidden` docs\n/**\n * @experimental\n * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)\n * within a route segment as well as inject a tag.\n *\n * `forbidden()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";403\";\nfunction forbidden() {\n if (true) {\n throw Object.defineProperty(new Error(\"`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E488\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=forbidden.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2ZvcmJpZGRlbi5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQXFCZ0JBOzs7ZUFBQUE7OztnREFsQlQ7QUFFUCw2QkFBNkI7QUFDN0I7Ozs7Ozs7Ozs7O0NBV0MsR0FFRCxNQUFNQyxTQUFVLEtBQUVDLG9CQUFBQSw4QkFBOEIsR0FBQztBQUUxQyxTQUFTRjtJQUNkLElBQUksSUFBZ0QsRUFBRTtRQUNwRCxNQUFNLHFCQUVMLENBRkssSUFBSU0sTUFDUCxnSEFERzttQkFBQTt3QkFBQTswQkFBQTtRQUVOO0lBQ0Y7SUFFQSw0Q0FBNEM7SUFDNUMsTUFBTUMsUUFBUSxxQkFBaUIsQ0FBakIsSUFBSUQsTUFBTUwsU0FBVjtlQUFBO29CQUFBO3NCQUFBO0lBQWdCO0lBQzVCTSxNQUFrQ0MsTUFBTSxHQUFHUDtJQUM3QyxNQUFNTTtBQUNSIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvZm9yYmlkZGVuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSxcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcblxuLy8gVE9ETzogQWRkIGBmb3JiaWRkZW5gIGRvY3Ncbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHJlbmRlciB0aGUgW2ZvcmJpZGRlbi5qcyBmaWxlXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9maWxlLWNvbnZlbnRpb25zL2ZvcmJpZGRlbilcbiAqIHdpdGhpbiBhIHJvdXRlIHNlZ21lbnQgYXMgd2VsbCBhcyBpbmplY3QgYSB0YWcuXG4gKlxuICogYGZvcmJpZGRlbigpYCBjYW4gYmUgdXNlZCBpblxuICogW1NlcnZlciBDb21wb25lbnRzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMpLFxuICogW1JvdXRlIEhhbmRsZXJzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL3JvdXRlLWhhbmRsZXJzKSwgYW5kXG4gKiBbU2VydmVyIEFjdGlvbnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvc2VydmVyLWFjdGlvbnMtYW5kLW11dGF0aW9ucykuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgZm9yYmlkZGVuYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2ZvcmJpZGRlbilcbiAqL1xuXG5jb25zdCBESUdFU1QgPSBgJHtIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OzQwM2BcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmJpZGRlbigpOiBuZXZlciB7XG4gIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9BVVRIX0lOVEVSUlVQVFMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgXFxgZm9yYmlkZGVuKClcXGAgaXMgZXhwZXJpbWVudGFsIGFuZCBvbmx5IGFsbG93ZWQgdG8gYmUgZW5hYmxlZCB3aGVuIFxcYGV4cGVyaW1lbnRhbC5hdXRoSW50ZXJydXB0c1xcYCBpcyBlbmFibGVkLmBcbiAgICApXG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihESUdFU1QpIGFzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4gIDsoZXJyb3IgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpLmRpZ2VzdCA9IERJR0VTVFxuICB0aHJvdyBlcnJvclxufVxuIl0sIm5hbWVzIjpbImZvcmJpZGRlbiIsIkRJR0VTVCIsIkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfRVhQRVJJTUVOVEFMX0FVVEhfSU5URVJSVVBUUyIsIkVycm9yIiwiZXJyb3IiLCJkaWdlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/forbidden.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/client/components/handle-isr-error.js ***! \**********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HandleISRError\", ({\n enumerable: true,\n get: function() {\n return HandleISRError;\n }\n}));\nconst workAsyncStorage = true ? (__webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\").workAsyncStorage) : 0;\nfunction HandleISRError(param) {\n let { error } = param;\n if (workAsyncStorage) {\n const store = workAsyncStorage.getStore();\n if ((store == null ? void 0 : store.isRevalidate) || (store == null ? void 0 : store.isStaticGeneration)) {\n console.error(error);\n throw error;\n }\n }\n return null;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=handle-isr-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hhbmRsZS1pc3ItZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFVZ0JBOzs7ZUFBQUE7OztBQVZoQixNQUFNQyxtQkFDSixLQUE2QixHQUV2QkUsa0lBQ2dCLEdBQ2xCQyxDQUFTQTtBQUtSLFNBQVNKLGVBQWUsS0FBeUI7SUFBekIsTUFBRUssS0FBSyxFQUFrQixHQUF6QjtJQUM3QixJQUFJSixrQkFBa0I7UUFDcEIsTUFBTUssUUFBUUwsaUJBQWlCTSxRQUFRO1FBQ3ZDLElBQUlELENBQUFBLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE1BQU9FLFlBQUFBLE1BQWdCRixTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxNQUFPRyxrQkFBQUEsR0FBb0I7WUFDcERDLFFBQVFMLEtBQUssQ0FBQ0E7WUFDZCxNQUFNQTtRQUNSO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9oYW5kbGUtaXNyLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB3b3JrQXN5bmNTdG9yYWdlID1cbiAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCdcbiAgICA/IChcbiAgICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcbiAgICAgICkud29ya0FzeW5jU3RvcmFnZVxuICAgIDogdW5kZWZpbmVkXG5cbi8vIGlmIHdlIGFyZSByZXZhbGlkYXRpbmcgd2Ugd2FudCB0byByZS10aHJvdyB0aGUgZXJyb3Igc28gdGhlXG4vLyBmdW5jdGlvbiBjcmFzaGVzIHNvIHdlIGNhbiBtYWludGFpbiBvdXIgcHJldmlvdXMgY2FjaGVcbi8vIGluc3RlYWQgb2YgY2FjaGluZyB0aGUgZXJyb3IgcGFnZVxuZXhwb3J0IGZ1bmN0aW9uIEhhbmRsZUlTUkVycm9yKHsgZXJyb3IgfTogeyBlcnJvcjogYW55IH0pIHtcbiAgaWYgKHdvcmtBc3luY1N0b3JhZ2UpIHtcbiAgICBjb25zdCBzdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmIChzdG9yZT8uaXNSZXZhbGlkYXRlIHx8IHN0b3JlPy5pc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiSGFuZGxlSVNSRXJyb3IiLCJ3b3JrQXN5bmNTdG9yYWdlIiwid2luZG93IiwicmVxdWlyZSIsInVuZGVmaW5lZCIsImVycm9yIiwic3RvcmUiLCJnZXRTdG9yZSIsImlzUmV2YWxpZGF0ZSIsImlzU3RhdGljR2VuZXJhdGlvbiIsImNvbnNvbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/hooks-server-context.js ***! \**************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DynamicServerError: function() {\n return DynamicServerError;\n },\n isDynamicServerError: function() {\n return isDynamicServerError;\n }\n});\nconst DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE;\n }\n}\nfunction isDynamicServerError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') {\n return false;\n }\n return err.digest === DYNAMIC_ERROR_CODE;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxrQkFBa0I7ZUFBbEJBOztJQVFHQyxvQkFBb0I7ZUFBcEJBOzs7QUFWaEIsTUFBTUMscUJBQXFCO0FBRXBCLE1BQU1GLDJCQUEyQkc7SUFHdENDLFlBQTRCQyxXQUFtQixDQUFFO1FBQy9DLEtBQUssQ0FBRSwyQkFBd0JBLGNBQUFBLElBQUFBLENBRExBLFdBQUFBLEdBQUFBLGFBQUFBLElBQUFBLENBRjVCQyxNQUFBQSxHQUFvQ0o7SUFJcEM7QUFDRjtBQUVPLFNBQVNELHFCQUFxQk0sR0FBWTtJQUMvQyxJQUNFLE9BQU9BLFFBQVEsWUFDZkEsUUFBUSxRQUNSLENBQUUsYUFBWUEsR0FBQUEsQ0FBRSxJQUNoQixPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFlOQU1JQ19FUlJPUl9DT0RFID0gJ0RZTkFNSUNfU0VSVkVSX1VTQUdFJ1xuXG5leHBvcnQgY2xhc3MgRHluYW1pY1NlcnZlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBkaWdlc3Q6IHR5cGVvZiBEWU5BTUlDX0VSUk9SX0NPREUgPSBEWU5BTUlDX0VSUk9SX0NPREVcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgIHN1cGVyKGBEeW5hbWljIHNlcnZlciB1c2FnZTogJHtkZXNjcmlwdGlvbn1gKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgRHluYW1pY1NlcnZlckVycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnIpIHx8XG4gICAgdHlwZW9mIGVyci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGVyci5kaWdlc3QgPT09IERZTkFNSUNfRVJST1JfQ09ERVxufVxuIl0sIm5hbWVzIjpbIkR5bmFtaWNTZXJ2ZXJFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiRFlOQU1JQ19FUlJPUl9DT0RFIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImRlc2NyaXB0aW9uIiwiZGlnZXN0IiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js ***! \*****************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTTPAccessFallbackBoundary\", ({\n enumerable: true,\n get: function() {\n return HTTPAccessFallbackBoundary;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigationuntracked = __webpack_require__(/*! ../navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _warnonce = __webpack_require__(/*! ../../../shared/lib/utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nclass HTTPAccessFallbackErrorBoundary extends _react.default.Component {\n componentDidCatch() {\n if ( true && this.props.missingSlots && this.props.missingSlots.size > 0 && // A missing children slot is the typical not-found case, so no need to warn\n !this.props.missingSlots.has('children')) {\n let warningMessage = 'No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\\n\\n';\n const formattedSlots = Array.from(this.props.missingSlots).sort((a, b)=>a.localeCompare(b)).map((slot)=>\"@\" + slot).join(', ');\n warningMessage += 'Missing slots: ' + formattedSlots;\n (0, _warnonce.warnOnce)(warningMessage);\n }\n }\n static getDerivedStateFromError(error) {\n if ((0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) {\n const httpStatus = (0, _httpaccessfallback.getAccessFallbackHTTPStatus)(error);\n return {\n triggeredStatus: httpStatus\n };\n }\n // Re-throw if error is not for 404\n throw error;\n }\n static getDerivedStateFromProps(props, state) {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */ if (props.pathname !== state.previousPathname && state.triggeredStatus) {\n return {\n triggeredStatus: undefined,\n previousPathname: props.pathname\n };\n }\n return {\n triggeredStatus: state.triggeredStatus,\n previousPathname: props.pathname\n };\n }\n render() {\n const { notFound, forbidden, unauthorized, children } = this.props;\n const { triggeredStatus } = this.state;\n const errorComponents = {\n [_httpaccessfallback.HTTPAccessErrorStatus.NOT_FOUND]: notFound,\n [_httpaccessfallback.HTTPAccessErrorStatus.FORBIDDEN]: forbidden,\n [_httpaccessfallback.HTTPAccessErrorStatus.UNAUTHORIZED]: unauthorized\n };\n if (triggeredStatus) {\n const isNotFound = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.NOT_FOUND && notFound;\n const isForbidden = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.FORBIDDEN && forbidden;\n const isUnauthorized = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.UNAUTHORIZED && unauthorized;\n // If there's no matched boundary in this layer, keep throwing the error by rendering the children\n if (!(isNotFound || isForbidden || isUnauthorized)) {\n return children;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }),\n true && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"boundary-next-error\",\n content: (0, _httpaccessfallback.getAccessFallbackErrorTypeByStatus)(triggeredStatus)\n }),\n errorComponents[triggeredStatus]\n ]\n });\n }\n return children;\n }\n constructor(props){\n super(props);\n this.state = {\n triggeredStatus: undefined,\n previousPathname: props.pathname\n };\n }\n}\nfunction HTTPAccessFallbackBoundary(param) {\n let { notFound, forbidden, unauthorized, children } = param;\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these error can occur), we will get the correct pathname.\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n const missingSlots = (0, _react.useContext)(_approutercontextsharedruntime.MissingSlotContext);\n const hasErrorFallback = !!(notFound || forbidden || unauthorized);\n if (hasErrorFallback) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(HTTPAccessFallbackErrorBoundary, {\n pathname: pathname,\n notFound: notFound,\n forbidden: forbidden,\n unauthorized: unauthorized,\n missingSlots: missingSlots,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7OERBdUpnQkE7OztlQUFBQTs7Ozs7NkVBMUlrQjtpREFDRztnREFNOUI7c0NBQ2tCOzJEQUNVO0FBcUJuQyxNQUFNQyx3Q0FBd0NDLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQVkzREMsb0JBQTBCO1FBQ3hCLElBQ0VDLEtBQW9CLElBQ3BCLElBQUksQ0FBQ0csS0FBSyxDQUFDQyxZQUFZLElBQ3ZCLElBQUksQ0FBQ0QsS0FBSyxDQUFDQyxZQUFZLENBQUNDLElBQUksR0FBRyxLQUMvQiw0RUFBNEU7UUFDNUUsQ0FBQyxJQUFJLENBQUNGLEtBQUssQ0FBQ0MsWUFBWSxDQUFDRSxHQUFHLENBQUMsYUFDN0I7WUFDQSxJQUFJQyxpQkFDRiw0SEFDQTtZQUVGLE1BQU1DLGlCQUFpQkMsTUFBTUMsSUFBSSxDQUFDLElBQUksQ0FBQ1AsS0FBSyxDQUFDQyxZQUFZLEVBQ3RETyxJQUFJLENBQUMsQ0FBQ0MsR0FBR0MsSUFBTUQsRUFBRUUsYUFBYSxDQUFDRCxJQUMvQkUsR0FBRyxDQUFDLENBQUNDLE9BQVUsTUFBR0EsTUFDbEJDLElBQUksQ0FBQztZQUVSVixrQkFBa0Isb0JBQW9CQztZQUV0Q1UsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFBU1g7UUFDWDtJQUNGO0lBRUEsT0FBT1kseUJBQXlCQyxLQUFVLEVBQUU7UUFDMUMsSUFBSUMsQ0FBQUEsR0FBQUEsb0JBQUFBLHlCQUF5QixFQUFDRCxRQUFRO1lBQ3BDLE1BQU1FLGFBQWFDLENBQUFBLEdBQUFBLG9CQUFBQSwyQkFBQUEsRUFBNEJIO1lBQy9DLE9BQU87Z0JBQ0xJLGlCQUFpQkY7WUFDbkI7UUFDRjtRQUNBLG1DQUFtQztRQUNuQyxNQUFNRjtJQUNSO0lBRUEsT0FBT0sseUJBQ0x0QixLQUEyQyxFQUMzQ3VCLEtBQThCLEVBQ0U7UUFDaEM7Ozs7O0tBS0MsR0FDRCxJQUFJdkIsTUFBTXdCLFFBQVEsS0FBS0QsTUFBTUUsZ0JBQWdCLElBQUlGLE1BQU1GLGVBQWUsRUFBRTtZQUN0RSxPQUFPO2dCQUNMQSxpQkFBaUJLO2dCQUNqQkQsa0JBQWtCekIsTUFBTXdCLFFBQVE7WUFDbEM7UUFDRjtRQUNBLE9BQU87WUFDTEgsaUJBQWlCRSxNQUFNRixlQUFlO1lBQ3RDSSxrQkFBa0J6QixNQUFNd0IsUUFBUTtRQUNsQztJQUNGO0lBRUFHLFNBQVM7UUFDUCxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQy9CLEtBQUs7UUFDbEUsTUFBTSxFQUFFcUIsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDRSxLQUFLO1FBQ3RDLE1BQU1TLGtCQUFrQjtZQUN0QixDQUFDQyxvQkFBQUEscUJBQXFCLENBQUNDLFNBQVMsQ0FBQyxFQUFFTjtZQUNuQyxDQUFDSyxvQkFBQUEscUJBQXFCLENBQUNFLFNBQVMsQ0FBQyxFQUFFTjtZQUNuQyxDQUFDSSxvQkFBQUEscUJBQXFCLENBQUNHLFlBQVksQ0FBQyxFQUFFTjtRQUN4QztRQUVBLElBQUlULGlCQUFpQjtZQUNuQixNQUFNZ0IsYUFDSmhCLG9CQUFvQlksb0JBQUFBLHFCQUFxQixDQUFDQyxTQUFTLElBQUlOO1lBQ3pELE1BQU1VLGNBQ0pqQixvQkFBb0JZLG9CQUFBQSxxQkFBcUIsQ0FBQ0UsU0FBUyxJQUFJTjtZQUN6RCxNQUFNVSxpQkFDSmxCLG9CQUFvQlksb0JBQUFBLHFCQUFxQixDQUFDRyxZQUFZLElBQUlOO1lBRTVELGtHQUFrRztZQUNsRyxJQUFJLENBQUVPLENBQUFBLGNBQWNDLGVBQWVDLGNBQUFBLENBQWEsRUFBSTtnQkFDbEQsT0FBT1I7WUFDVDtZQUVBLHFCQUNFOztrQ0FDRSxxQkFBQ1MsUUFBQUE7d0JBQUtDLE1BQUs7d0JBQVNDLFNBQVE7O3lCQUNXLElBQWIsY0FDeEIscUJBQUNGLFFBQUFBO3dCQUNDQyxNQUFLO3dCQUNMQyxTQUFTQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0NBQUFBLEVBQW1DdEI7O29CQUcvQ1csZUFBZSxDQUFDWCxnQkFBZ0I7OztRQUd2QztRQUVBLE9BQU9VO0lBQ1Q7SUFyR0FhLFlBQVk1QyxLQUEyQyxDQUFFO1FBQ3ZELEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUN1QixLQUFLLEdBQUc7WUFDWEYsaUJBQWlCSztZQUNqQkQsa0JBQWtCekIsTUFBTXdCLFFBQVE7UUFDbEM7SUFDRjtBQWdHRjtBQUVPLFNBQVNoQywyQkFBMkIsS0FLVDtJQUxTLE1BQ3pDb0MsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsUUFBUSxFQUN3QixHQUxTO0lBTXpDLDZFQUE2RTtJQUM3RSxxRUFBcUU7SUFDckUsd0VBQXdFO0lBQ3hFLG1FQUFtRTtJQUNuRSxNQUFNUCxXQUFXcUIsQ0FBQUEsR0FBQUEscUJBQUFBLG9CQUFBQTtJQUNqQixNQUFNNUMsZUFBZTZDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLCtCQUFBQSxrQkFBa0I7SUFDbEQsTUFBTUMsbUJBQW1CLENBQUMsQ0FBRXBCLENBQUFBLFlBQVlDLGFBQWFDLFlBQUFBLENBQVc7SUFFaEUsSUFBSWtCLGtCQUFrQjtRQUNwQixPQUNFLFdBREYsR0FDRSxxQkFBQ3ZELGlDQUFBQTtZQUNDK0IsVUFBVUE7WUFDVkksVUFBVUE7WUFDVkMsV0FBV0E7WUFDWEMsY0FBY0E7WUFDZDdCLGNBQWNBO3NCQUViOEI7O0lBR1A7SUFFQSxxQkFBTztrQkFBR0E7O0FBQ1oiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1ib3VuZGFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbi8qKlxuICogSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkgaXMgYSBib3VuZGFyeSB0aGF0IGNhdGNoZXMgZXJyb3JzIGFuZCByZW5kZXJzIGFcbiAqIGZhbGxiYWNrIGNvbXBvbmVudCBmb3IgSFRUUCBlcnJvcnMuXG4gKlxuICogSXQgcmVjZWl2ZXMgdGhlIHN0YXR1cyBjb2RlLCBhbmQgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCByZW5kZXIgZmFsbGJhY2tzIGZvciBmZXcgSFRUUCA0eHggZXJyb3JzLlxuICpcbiAqIGUuZy4gNDA0XG4gKiA0MDQgcmVwcmVzZW50cyBub3QgZm91bmQsIGFuZCB0aGUgZmFsbGJhY2sgY29tcG9uZW50IHBhaXIgY29udGFpbnMgdGhlIGNvbXBvbmVudCBhbmQgaXRzIHN0eWxlcy5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVVudHJhY2tlZFBhdGhuYW1lIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi11bnRyYWNrZWQnXG5pbXBvcnQge1xuICBIVFRQQWNjZXNzRXJyb3JTdGF0dXMsXG4gIGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyxcbiAgZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyxcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UnXG5pbXBvcnQgeyBNaXNzaW5nU2xvdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcblxuaW50ZXJmYWNlIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5UHJvcHMge1xuICBub3RGb3VuZD86IFJlYWN0LlJlYWN0Tm9kZVxuICBmb3JiaWRkZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgdW5hdXRob3JpemVkPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgbWlzc2luZ1Nsb3RzPzogU2V0PHN0cmluZz5cbn1cblxuaW50ZXJmYWNlIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlQcm9wc1xuICBleHRlbmRzIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5UHJvcHMge1xuICBwYXRobmFtZTogc3RyaW5nIHwgbnVsbFxuICBtaXNzaW5nU2xvdHM/OiBTZXQ8c3RyaW5nPlxufVxuXG5pbnRlcmZhY2UgSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGUge1xuICB0cmlnZ2VyZWRTdGF0dXM6IG51bWJlciB8IHVuZGVmaW5lZFxuICBwcmV2aW91c1BhdGhuYW1lOiBzdHJpbmcgfCBudWxsXG59XG5cbmNsYXNzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XG4gIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlQcm9wcyxcbiAgSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGVcbj4ge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeVByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHRyaWdnZXJlZFN0YXR1czogdW5kZWZpbmVkLFxuICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkQ2F0Y2goKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICAgIHRoaXMucHJvcHMubWlzc2luZ1Nsb3RzICYmXG4gICAgICB0aGlzLnByb3BzLm1pc3NpbmdTbG90cy5zaXplID4gMCAmJlxuICAgICAgLy8gQSBtaXNzaW5nIGNoaWxkcmVuIHNsb3QgaXMgdGhlIHR5cGljYWwgbm90LWZvdW5kIGNhc2UsIHNvIG5vIG5lZWQgdG8gd2FyblxuICAgICAgIXRoaXMucHJvcHMubWlzc2luZ1Nsb3RzLmhhcygnY2hpbGRyZW4nKVxuICAgICkge1xuICAgICAgbGV0IHdhcm5pbmdNZXNzYWdlID1cbiAgICAgICAgJ05vIGRlZmF1bHQgY29tcG9uZW50IHdhcyBmb3VuZCBmb3IgYSBwYXJhbGxlbCByb3V0ZSByZW5kZXJlZCBvbiB0aGlzIHBhZ2UuIEZhbGxpbmcgYmFjayB0byBuZWFyZXN0IE5vdEZvdW5kIGJvdW5kYXJ5LlxcbicgK1xuICAgICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9wYXJhbGxlbC1yb3V0ZXMjZGVmYXVsdGpzXFxuXFxuJ1xuXG4gICAgICBjb25zdCBmb3JtYXR0ZWRTbG90cyA9IEFycmF5LmZyb20odGhpcy5wcm9wcy5taXNzaW5nU2xvdHMpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpXG4gICAgICAgIC5tYXAoKHNsb3QpID0+IGBAJHtzbG90fWApXG4gICAgICAgIC5qb2luKCcsICcpXG5cbiAgICAgIHdhcm5pbmdNZXNzYWdlICs9ICdNaXNzaW5nIHNsb3RzOiAnICsgZm9ybWF0dGVkU2xvdHNcblxuICAgICAgd2Fybk9uY2Uod2FybmluZ01lc3NhZ2UpXG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcjogYW55KSB7XG4gICAgaWYgKGlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IoZXJyb3IpKSB7XG4gICAgICBjb25zdCBodHRwU3RhdHVzID0gZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzKGVycm9yKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJpZ2dlcmVkU3RhdHVzOiBodHRwU3RhdHVzLFxuICAgICAgfVxuICAgIH1cbiAgICAvLyBSZS10aHJvdyBpZiBlcnJvciBpcyBub3QgZm9yIDQwNFxuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgIHByb3BzOiBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvckJvdW5kYXJ5UHJvcHMsXG4gICAgc3RhdGU6IEhUVFBBY2Nlc3NCb3VuZGFyeVN0YXRlXG4gICk6IEhUVFBBY2Nlc3NCb3VuZGFyeVN0YXRlIHwgbnVsbCB7XG4gICAgLyoqXG4gICAgICogSGFuZGxlcyByZXNldCBvZiB0aGUgZXJyb3IgYm91bmRhcnkgd2hlbiBhIG5hdmlnYXRpb24gaGFwcGVucy5cbiAgICAgKiBFbnN1cmVzIHRoZSBlcnJvciBib3VuZGFyeSBkb2VzIG5vdCBzdGF5IGVuYWJsZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UuXG4gICAgICogQXBwcm9hY2ggb2Ygc2V0U3RhdGUgaW4gcmVuZGVyIGlzIHNhZmUgYXMgaXQgY2hlY2tzIHRoZSBwcmV2aW91cyBwYXRobmFtZSBhbmQgdGhlbiBvdmVycmlkZXNcbiAgICAgKiBpdCBhcyBvdXRsaW5lZCBpbiBodHRwczovL3JlYWN0LmRldi9yZWZlcmVuY2UvcmVhY3QvdXNlU3RhdGUjc3RvcmluZy1pbmZvcm1hdGlvbi1mcm9tLXByZXZpb3VzLXJlbmRlcnNcbiAgICAgKi9cbiAgICBpZiAocHJvcHMucGF0aG5hbWUgIT09IHN0YXRlLnByZXZpb3VzUGF0aG5hbWUgJiYgc3RhdGUudHJpZ2dlcmVkU3RhdHVzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmlnZ2VyZWRTdGF0dXM6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0cmlnZ2VyZWRTdGF0dXM6IHN0YXRlLnRyaWdnZXJlZFN0YXR1cyxcbiAgICAgIHByZXZpb3VzUGF0aG5hbWU6IHByb3BzLnBhdGhuYW1lLFxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IG5vdEZvdW5kLCBmb3JiaWRkZW4sIHVuYXV0aG9yaXplZCwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7IHRyaWdnZXJlZFN0YXR1cyB9ID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IGVycm9yQ29tcG9uZW50cyA9IHtcbiAgICAgIFtIVFRQQWNjZXNzRXJyb3JTdGF0dXMuTk9UX0ZPVU5EXTogbm90Rm91bmQsXG4gICAgICBbSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLkZPUkJJRERFTl06IGZvcmJpZGRlbixcbiAgICAgIFtIVFRQQWNjZXNzRXJyb3JTdGF0dXMuVU5BVVRIT1JJWkVEXTogdW5hdXRob3JpemVkLFxuICAgIH1cblxuICAgIGlmICh0cmlnZ2VyZWRTdGF0dXMpIHtcbiAgICAgIGNvbnN0IGlzTm90Rm91bmQgPVxuICAgICAgICB0cmlnZ2VyZWRTdGF0dXMgPT09IEhUVFBBY2Nlc3NFcnJvclN0YXR1cy5OT1RfRk9VTkQgJiYgbm90Rm91bmRcbiAgICAgIGNvbnN0IGlzRm9yYmlkZGVuID1cbiAgICAgICAgdHJpZ2dlcmVkU3RhdHVzID09PSBIVFRQQWNjZXNzRXJyb3JTdGF0dXMuRk9SQklEREVOICYmIGZvcmJpZGRlblxuICAgICAgY29uc3QgaXNVbmF1dGhvcml6ZWQgPVxuICAgICAgICB0cmlnZ2VyZWRTdGF0dXMgPT09IEhUVFBBY2Nlc3NFcnJvclN0YXR1cy5VTkFVVEhPUklaRUQgJiYgdW5hdXRob3JpemVkXG5cbiAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gbWF0Y2hlZCBib3VuZGFyeSBpbiB0aGlzIGxheWVyLCBrZWVwIHRocm93aW5nIHRoZSBlcnJvciBieSByZW5kZXJpbmcgdGhlIGNoaWxkcmVuXG4gICAgICBpZiAoIShpc05vdEZvdW5kIHx8IGlzRm9yYmlkZGVuIHx8IGlzVW5hdXRob3JpemVkKSkge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8bWV0YSBuYW1lPVwicm9ib3RzXCIgY29udGVudD1cIm5vaW5kZXhcIiAvPlxuICAgICAgICAgIHtwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiAoXG4gICAgICAgICAgICA8bWV0YVxuICAgICAgICAgICAgICBuYW1lPVwiYm91bmRhcnktbmV4dC1lcnJvclwiXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2dldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXModHJpZ2dlcmVkU3RhdHVzKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7ZXJyb3JDb21wb25lbnRzW3RyaWdnZXJlZFN0YXR1c119XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBjaGlsZHJlblxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeSh7XG4gIG5vdEZvdW5kLFxuICBmb3JiaWRkZW4sXG4gIHVuYXV0aG9yaXplZCxcbiAgY2hpbGRyZW4sXG59OiBIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeVByb3BzKSB7XG4gIC8vIFdoZW4gd2UncmUgcmVuZGVyaW5nIHRoZSBtaXNzaW5nIHBhcmFtcyBzaGVsbCwgdGhpcyB3aWxsIHJldHVybiBudWxsLiBUaGlzXG4gIC8vIGlzIGJlY2F1c2Ugd2Ugd29uJ3QgYmUgcmVuZGVyaW5nIGFueSBub3QgZm91bmQgYm91bmRhcmllcyBvciBlcnJvclxuICAvLyBib3VuZGFyaWVzIGZvciB0aGUgbWlzc2luZyBwYXJhbXMgc2hlbGwuIFdoZW4gdGhpcyBydW5zIG9uIHRoZSBjbGllbnRcbiAgLy8gKHdoZXJlIHRoZXNlIGVycm9yIGNhbiBvY2N1ciksIHdlIHdpbGwgZ2V0IHRoZSBjb3JyZWN0IHBhdGhuYW1lLlxuICBjb25zdCBwYXRobmFtZSA9IHVzZVVudHJhY2tlZFBhdGhuYW1lKClcbiAgY29uc3QgbWlzc2luZ1Nsb3RzID0gdXNlQ29udGV4dChNaXNzaW5nU2xvdENvbnRleHQpXG4gIGNvbnN0IGhhc0Vycm9yRmFsbGJhY2sgPSAhIShub3RGb3VuZCB8fCBmb3JiaWRkZW4gfHwgdW5hdXRob3JpemVkKVxuXG4gIGlmIChoYXNFcnJvckZhbGxiYWNrKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxIVFRQQWNjZXNzRmFsbGJhY2tFcnJvckJvdW5kYXJ5XG4gICAgICAgIHBhdGhuYW1lPXtwYXRobmFtZX1cbiAgICAgICAgbm90Rm91bmQ9e25vdEZvdW5kfVxuICAgICAgICBmb3JiaWRkZW49e2ZvcmJpZGRlbn1cbiAgICAgICAgdW5hdXRob3JpemVkPXt1bmF1dGhvcml6ZWR9XG4gICAgICAgIG1pc3NpbmdTbG90cz17bWlzc2luZ1Nsb3RzfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnk+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxufVxuIl0sIm5hbWVzIjpbIkhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IiwiSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29tcG9uZW50RGlkQ2F0Y2giLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJwcm9wcyIsIm1pc3NpbmdTbG90cyIsInNpemUiLCJoYXMiLCJ3YXJuaW5nTWVzc2FnZSIsImZvcm1hdHRlZFNsb3RzIiwiQXJyYXkiLCJmcm9tIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsIm1hcCIsInNsb3QiLCJqb2luIiwid2Fybk9uY2UiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IiLCJodHRwU3RhdHVzIiwiZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzIiwidHJpZ2dlcmVkU3RhdHVzIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwic3RhdGUiLCJwYXRobmFtZSIsInByZXZpb3VzUGF0aG5hbWUiLCJ1bmRlZmluZWQiLCJyZW5kZXIiLCJub3RGb3VuZCIsImZvcmJpZGRlbiIsInVuYXV0aG9yaXplZCIsImNoaWxkcmVuIiwiZXJyb3JDb21wb25lbnRzIiwiSFRUUEFjY2Vzc0Vycm9yU3RhdHVzIiwiTk9UX0ZPVU5EIiwiRk9SQklEREVOIiwiVU5BVVRIT1JJWkVEIiwiaXNOb3RGb3VuZCIsImlzRm9yYmlkZGVuIiwiaXNVbmF1dGhvcml6ZWQiLCJtZXRhIiwibmFtZSIsImNvbnRlbnQiLCJnZXRBY2Nlc3NGYWxsYmFja0Vycm9yVHlwZUJ5U3RhdHVzIiwiY29uc3RydWN0b3IiLCJ1c2VVbnRyYWNrZWRQYXRobmFtZSIsInVzZUNvbnRleHQiLCJNaXNzaW5nU2xvdENvbnRleHQiLCJoYXNFcnJvckZhbGxiYWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js": /*!***********************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js ***! \***********************************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTTPAccessErrorStatus: function() {\n return HTTPAccessErrorStatus;\n },\n HTTP_ERROR_FALLBACK_ERROR_CODE: function() {\n return HTTP_ERROR_FALLBACK_ERROR_CODE;\n },\n getAccessFallbackErrorTypeByStatus: function() {\n return getAccessFallbackErrorTypeByStatus;\n },\n getAccessFallbackHTTPStatus: function() {\n return getAccessFallbackHTTPStatus;\n },\n isHTTPAccessFallbackError: function() {\n return isHTTPAccessFallbackError;\n }\n});\nconst HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nconst HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\nfunction isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nfunction getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nfunction getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=http-access-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSFRUUEFjY2Vzc0Vycm9yU3RhdHVzID0ge1xuICBOT1RfRk9VTkQ6IDQwNCxcbiAgRk9SQklEREVOOiA0MDMsXG4gIFVOQVVUSE9SSVpFRDogNDAxLFxufVxuXG5jb25zdCBBTExPV0VEX0NPREVTID0gbmV3IFNldChPYmplY3QudmFsdWVzKEhUVFBBY2Nlc3NFcnJvclN0YXR1cykpXG5cbmV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgPSAnTkVYVF9IVFRQX0VSUk9SX0ZBTExCQUNLJ1xuXG5leHBvcnQgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciA9IEVycm9yICYge1xuICBkaWdlc3Q6IGAke3R5cGVvZiBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OyR7c3RyaW5nfWBcbn1cblxuLyoqXG4gKiBDaGVja3MgYW4gZXJyb3IgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgSFRUUCBuYXZpZ2F0aW9uIEFQSXMgYG5vdEZvdW5kKClgLCBgZm9yYmlkZGVuKClgIG9yIGB1bmF1dGhvcml6ZWQoKWAuXG4gKlxuICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciB0aGF0IG1heSByZWZlcmVuY2UgYSBIVFRQIGFjY2VzcyBlcnJvclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXJyb3IgaXMgYSBIVFRQIGFjY2VzcyBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHxcbiAgICBlcnJvciA9PT0gbnVsbCB8fFxuICAgICEoJ2RpZ2VzdCcgaW4gZXJyb3IpIHx8XG4gICAgdHlwZW9mIGVycm9yLmRpZ2VzdCAhPT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgW3ByZWZpeCwgaHR0cFN0YXR1c10gPSBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKVxuXG4gIHJldHVybiAoXG4gICAgcHJlZml4ID09PSBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgJiZcbiAgICBBTExPV0VEX0NPREVTLmhhcyhOdW1iZXIoaHR0cFN0YXR1cykpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyhcbiAgZXJyb3I6IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4pOiBudW1iZXIge1xuICBjb25zdCBodHRwU3RhdHVzID0gZXJyb3IuZGlnZXN0LnNwbGl0KCc7JylbMV1cbiAgcmV0dXJuIE51bWJlcihodHRwU3RhdHVzKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyhcbiAgc3RhdHVzOiBudW1iZXJcbik6ICdub3QtZm91bmQnIHwgJ2ZvcmJpZGRlbicgfCAndW5hdXRob3JpemVkJyB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgY2FzZSA0MDE6XG4gICAgICByZXR1cm4gJ3VuYXV0aG9yaXplZCdcbiAgICBjYXNlIDQwMzpcbiAgICAgIHJldHVybiAnZm9yYmlkZGVuJ1xuICAgIGNhc2UgNDA0OlxuICAgICAgcmV0dXJuICdub3QtZm91bmQnXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVyblxuICB9XG59XG4iXSwibmFtZXMiOlsiSFRUUEFjY2Vzc0Vycm9yU3RhdHVzIiwiSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFIiwiZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyIsImdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyIsImlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IiLCJOT1RfRk9VTkQiLCJGT1JCSURERU4iLCJVTkFVVEhPUklaRUQiLCJBTExPV0VEX0NPREVTIiwiU2V0IiwiT2JqZWN0IiwidmFsdWVzIiwiZXJyb3IiLCJkaWdlc3QiLCJwcmVmaXgiLCJodHRwU3RhdHVzIiwic3BsaXQiLCJoYXMiLCJOdW1iZXIiLCJzdGF0dXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/is-next-router-error.js ***! \**************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction isNextRouterError(error) {\n return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-next-router-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBV2dCQTs7O2VBQUFBOzs7Z0RBUlQ7MkNBQzZDO0FBTzdDLFNBQVNBLGtCQUNkQyxLQUFjO0lBRWQsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsZUFBQUEsRUFBZ0JELFVBQVVFLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJGO0FBQzdEIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgdHlwZSBSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgbmF2aWdhdGlvbiBzaWduYWwgZXJyb3IuIFRoZXNlIGVycm9ycyBhcmVcbiAqIHRocm93biBieSB1c2VyIGNvZGUgdG8gcGVyZm9ybSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgYW5kIGludGVycnVwdCB0aGUgUmVhY3RcbiAqIHJlbmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgUmVkaXJlY3RFcnJvciB8IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgcmV0dXJuIGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcilcbn1cbiJdLCJuYW1lcyI6WyJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/layout-router.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/client/components/layout-router.js ***! \*******************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return OuterLayoutRouter;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _fetchserverresponse = __webpack_require__(/*! ./router-reducer/fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _unresolvedthenable = __webpack_require__(/*! ./unresolved-thenable */ \"(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js\");\nconst _errorboundary = __webpack_require__(/*! ./error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _matchsegments = __webpack_require__(/*! ./match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst _disablesmoothscroll = __webpack_require__(/*! ../../shared/lib/router/utils/disable-smooth-scroll */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\");\nconst _redirectboundary = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\");\nconst _errorboundary1 = __webpack_require__(/*! ./http-access-fallback/error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./router-reducer/create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./router-reducer/reducers/has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\nconst _useactionqueue = __webpack_require__(/*! ./use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nconst _bfcache = __webpack_require__(/*! ./bfcache */ \"(ssr)/./node_modules/next/dist/client/components/bfcache.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst Activity = false ? 0 : null;\n/**\n * Add refetch marker to router state at the point of the current layout segment.\n * This ensures the response returned is not further down than the current layout segment.\n */ function walkAddRefetch(segmentPathToWalk, treeToRecreate) {\n if (segmentPathToWalk) {\n const [segment, parallelRouteKey] = segmentPathToWalk;\n const isLast = segmentPathToWalk.length === 2;\n if ((0, _matchsegments.matchSegment)(treeToRecreate[0], segment)) {\n if (treeToRecreate[1].hasOwnProperty(parallelRouteKey)) {\n if (isLast) {\n const subTree = walkAddRefetch(undefined, treeToRecreate[1][parallelRouteKey]);\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: [\n subTree[0],\n subTree[1],\n subTree[2],\n 'refetch'\n ]\n }\n ];\n }\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: walkAddRefetch(segmentPathToWalk.slice(2), treeToRecreate[1][parallelRouteKey])\n }\n ];\n }\n }\n }\n return treeToRecreate;\n}\nconst __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = _reactdom.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available\n/**\n * Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning\n */ function findDOMNode(instance) {\n // Tree-shake for server bundle\n if (true) return null;\n // __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode is null during module init.\n // We need to lazily reference it.\n const internal_reactDOMfindDOMNode = __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode;\n return internal_reactDOMfindDOMNode(instance);\n}\nconst rectProperties = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width',\n 'x',\n 'y'\n];\n/**\n * Check if a HTMLElement is hidden or fixed/sticky position\n */ function shouldSkipElement(element) {\n // we ignore fixed or sticky positioned elements since they'll likely pass the \"in-viewport\" check\n // and will result in a situation we bail on scroll because of something like a fixed nav,\n // even though the actual page content is offscreen\n if ([\n 'sticky',\n 'fixed'\n ].includes(getComputedStyle(element).position)) {\n if (true) {\n console.warn('Skipping auto-scroll behavior due to `position: sticky` or `position: fixed` on element:', element);\n }\n return true;\n }\n // Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`\n // because `offsetParent` doesn't consider document/body\n const rect = element.getBoundingClientRect();\n return rectProperties.every((item)=>rect[item] === 0);\n}\n/**\n * Check if the top corner of the HTMLElement is in the viewport.\n */ function topOfElementInViewport(element, viewportHeight) {\n const rect = element.getBoundingClientRect();\n return rect.top >= 0 && rect.top <= viewportHeight;\n}\n/**\n * Find the DOM node for a hash fragment.\n * If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.\n * If the hash fragment is an id, the page has to scroll to the element with that id.\n * If the hash fragment is a name, the page has to scroll to the first element with that name.\n */ function getHashFragmentDomNode(hashFragment) {\n // If the hash fragment is `top` the page has to scroll to the top of the page.\n if (hashFragment === 'top') {\n return document.body;\n }\n var _document_getElementById;\n // If the hash fragment is an id, the page has to scroll to the element with that id.\n return (_document_getElementById = document.getElementById(hashFragment)) != null ? _document_getElementById : document.getElementsByName(hashFragment)[0];\n}\nclass InnerScrollAndFocusHandler extends _react.default.Component {\n componentDidMount() {\n this.handlePotentialScroll();\n }\n componentDidUpdate() {\n // Because this property is overwritten in handlePotentialScroll it's fine to always run it when true as it'll be set to false for subsequent renders.\n if (this.props.focusAndScrollRef.apply) {\n this.handlePotentialScroll();\n }\n }\n render() {\n return this.props.children;\n }\n constructor(...args){\n super(...args), this.handlePotentialScroll = ()=>{\n // Handle scroll and focus, it's only applied once in the first useEffect that triggers that changed.\n const { focusAndScrollRef, segmentPath } = this.props;\n if (focusAndScrollRef.apply) {\n // segmentPaths is an array of segment paths that should be scrolled to\n // if the current segment path is not in the array, the scroll is not applied\n // unless the array is empty, in which case the scroll is always applied\n if (focusAndScrollRef.segmentPaths.length !== 0 && !focusAndScrollRef.segmentPaths.some((scrollRefSegmentPath)=>segmentPath.every((segment, index)=>(0, _matchsegments.matchSegment)(segment, scrollRefSegmentPath[index])))) {\n return;\n }\n let domNode = null;\n const hashFragment = focusAndScrollRef.hashFragment;\n if (hashFragment) {\n domNode = getHashFragmentDomNode(hashFragment);\n }\n // `findDOMNode` is tricky because it returns just the first child if the component is a fragment.\n // This already caused a bug where the first child was a <link/> in head.\n if (!domNode) {\n domNode = findDOMNode(this);\n }\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (!(domNode instanceof Element)) {\n return;\n }\n // Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.\n // If the element is skipped, try to select the next sibling and try again.\n while(!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)){\n if (true) {\n var _domNode_parentElement;\n if (((_domNode_parentElement = domNode.parentElement) == null ? void 0 : _domNode_parentElement.localName) === 'head') {\n // TODO: We enter this state when metadata was rendered as part of the page or via Next.js.\n // This is always a bug in Next.js and caused by React hoisting metadata.\n // We need to replace `findDOMNode` in favor of Fragment Refs (when available) so that we can skip over metadata.\n }\n }\n // No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.\n if (domNode.nextElementSibling === null) {\n return;\n }\n domNode = domNode.nextElementSibling;\n }\n // State is mutated to ensure that the focus and scroll is applied only once.\n focusAndScrollRef.apply = false;\n focusAndScrollRef.hashFragment = null;\n focusAndScrollRef.segmentPaths = [];\n (0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n ;\n domNode.scrollIntoView();\n return;\n }\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n const htmlElement = document.documentElement;\n const viewportHeight = htmlElement.clientHeight;\n // If the element's top edge is already in the viewport, exit early.\n if (topOfElementInViewport(domNode, viewportHeight)) {\n return;\n }\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `<html/>` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0;\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (!topOfElementInViewport(domNode, viewportHeight)) {\n // Scroll into view doesn't scroll horizontally by default when not needed\n ;\n domNode.scrollIntoView();\n }\n }, {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: focusAndScrollRef.onlyHashChange\n });\n // Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`\n focusAndScrollRef.onlyHashChange = false;\n // Set focus on the element\n domNode.focus();\n }\n };\n }\n}\nfunction ScrollAndFocusHandler(param) {\n let { segmentPath, children } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant global layout router not mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E473\",\n enumerable: false,\n configurable: true\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerScrollAndFocusHandler, {\n segmentPath: segmentPath,\n focusAndScrollRef: context.focusAndScrollRef,\n children: children\n });\n}\n/**\n * InnerLayoutRouter handles rendering the provided segment based on the cache.\n */ function InnerLayoutRouter(param) {\n let { tree, segmentPath, cacheNode, url } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant global layout router not mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E473\",\n enumerable: false,\n configurable: true\n });\n }\n const { tree: fullTree } = context;\n // `rsc` represents the renderable node for this segment.\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc = cacheNode.prefetchRsc !== null ? cacheNode.prefetchRsc : cacheNode.rsc;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n const rsc = (0, _react.useDeferredValue)(cacheNode.rsc, resolvedPrefetchRsc);\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n const resolvedRsc = typeof rsc === 'object' && rsc !== null && typeof rsc.then === 'function' ? (0, _react.use)(rsc) : rsc;\n if (!resolvedRsc) {\n // The data for this segment is not available, and there's no pending\n // navigation that will be able to fulfill it. We need to fetch more from\n // the server and patch the cache.\n // Check if there's already a pending request.\n let lazyData = cacheNode.lazyData;\n if (lazyData === null) {\n /**\n * Router state with refetch marker added\n */ // TODO-APP: remove ''\n const refetchTree = walkAddRefetch([\n '',\n ...segmentPath\n ], fullTree);\n const includeNextUrl = (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(fullTree);\n const navigatedAt = Date.now();\n cacheNode.lazyData = lazyData = (0, _fetchserverresponse.fetchServerResponse)(new URL(url, location.origin), {\n flightRouterState: refetchTree,\n nextUrl: includeNextUrl ? context.nextUrl : null\n }).then((serverResponse)=>{\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_SERVER_PATCH,\n previousTree: fullTree,\n serverResponse,\n navigatedAt\n });\n });\n return serverResponse;\n });\n // Suspend while waiting for lazyData to resolve\n (0, _react.use)(lazyData);\n }\n // Suspend infinitely as `changeByServerResponse` will cause a different part of the tree to be rendered.\n // A falsey `resolvedRsc` indicates missing data -- we should not commit that branch, and we need to wait for the data to arrive.\n (0, _react.use)(_unresolvedthenable.unresolvedThenable);\n }\n // If we get to this point, then we know we have something we can render.\n const subtree = /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: {\n parentTree: tree,\n parentCacheNode: cacheNode,\n parentSegmentPath: segmentPath,\n // TODO-APP: overriding of url for parallel routes\n url: url\n },\n children: resolvedRsc\n });\n // Ensure root layout is not wrapped in a div as the root layout renders `<html>`\n return subtree;\n}\n/**\n * Renders suspense boundary with the provided \"loading\" property as the fallback.\n * If no loading property is provided it renders the children without a suspense boundary.\n */ function LoadingBoundary(param) {\n let { loading, children } = param;\n // If loading is a promise, unwrap it. This happens in cases where we haven't\n // yet received the loading data from the server — which includes whether or\n // not this layout has a loading component at all.\n //\n // It's OK to suspend here instead of inside the fallback because this\n // promise will resolve simultaneously with the data for the segment itself.\n // So it will never suspend for longer than it would have if we didn't use\n // a Suspense fallback at all.\n let loadingModuleData;\n if (typeof loading === 'object' && loading !== null && typeof loading.then === 'function') {\n const promiseForLoading = loading;\n loadingModuleData = (0, _react.use)(promiseForLoading);\n } else {\n loadingModuleData = loading;\n }\n if (loadingModuleData) {\n const loadingRsc = loadingModuleData[0];\n const loadingStyles = loadingModuleData[1];\n const loadingScripts = loadingModuleData[2];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n loadingStyles,\n loadingScripts,\n loadingRsc\n ]\n }),\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nfunction OuterLayoutRouter(param) {\n let { parallelRouterKey, error, errorStyles, errorScripts, templateStyles, templateScripts, template, notFound, forbidden, unauthorized, segmentViewBoundaries } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant expected layout router to be mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E56\",\n enumerable: false,\n configurable: true\n });\n }\n const { parentTree, parentCacheNode, parentSegmentPath, url } = context;\n // Get the CacheNode for this segment by reading it from the parent segment's\n // child map.\n const parentParallelRoutes = parentCacheNode.parallelRoutes;\n let segmentMap = parentParallelRoutes.get(parallelRouterKey);\n // If the parallel router cache node does not exist yet, create it.\n // This writes to the cache when there is no item in the cache yet. It never *overwrites* existing cache items which is why it's safe in concurrent mode.\n if (!segmentMap) {\n segmentMap = new Map();\n parentParallelRoutes.set(parallelRouterKey, segmentMap);\n }\n const parentTreeSegment = parentTree[0];\n const segmentPath = parentSegmentPath === null ? // the code. We should clean this up.\n [\n parallelRouterKey\n ] : parentSegmentPath.concat([\n parentTreeSegment,\n parallelRouterKey\n ]);\n // The \"state\" key of a segment is the one passed to React — it represents the\n // identity of the UI tree. Whenever the state key changes, the tree is\n // recreated and the state is reset. In the App Router model, search params do\n // not cause state to be lost, so two segments with the same segment path but\n // different search params should have the same state key.\n //\n // The \"cache\" key of a segment, however, *does* include the search params, if\n // it's possible that the segment accessed the search params on the server.\n // (This only applies to page segments; layout segments cannot access search\n // params on the server.)\n const activeTree = parentTree[1][parallelRouterKey];\n const activeSegment = activeTree[0];\n const activeStateKey = (0, _createroutercachekey.createRouterCacheKey)(activeSegment, true) // no search params\n ;\n // At each level of the route tree, not only do we render the currently\n // active segment — we also render the last N segments that were active at\n // this level inside a hidden <Activity> boundary, to preserve their state\n // if or when the user navigates to them again.\n //\n // bfcacheEntry is a linked list of FlightRouterStates.\n let bfcacheEntry = (0, _bfcache.useRouterBFCache)(activeTree, activeStateKey);\n let children = [];\n do {\n const tree = bfcacheEntry.tree;\n const stateKey = bfcacheEntry.stateKey;\n const segment = tree[0];\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n // Read segment path from the parallel router cache node.\n let cacheNode = segmentMap.get(cacheKey);\n if (cacheNode === undefined) {\n // When data is not available during rendering client-side we need to fetch\n // it from the server.\n const newLazyCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\n };\n // Flight data fetch kicked off during render and put into the cache.\n cacheNode = newLazyCacheNode;\n segmentMap.set(cacheKey, newLazyCacheNode);\n }\n /*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - When gracefully degrade for bots, skip rendering error boundary.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */ let segmentBoundaryTriggerNode = null;\n let segmentViewStateNode = null;\n if (true) {\n const { SegmentBoundaryTriggerNode, SegmentViewStateNode } = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n const pagePrefix = (0, _apppaths.normalizeAppPath)(url);\n segmentViewStateNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewStateNode, {\n page: pagePrefix\n }, pagePrefix);\n segmentBoundaryTriggerNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentBoundaryTriggerNode, {})\n });\n }\n // TODO: The loading module data for a segment is stored on the parent, then\n // applied to each of that parent segment's parallel route slots. In the\n // simple case where there's only one parallel route (the `children` slot),\n // this is no different from if the loading module data where stored on the\n // child directly. But I'm not sure this actually makes sense when there are\n // multiple parallel routes. It's not a huge issue because you always have\n // the option to define a narrower loading boundary for a particular slot. But\n // this sort of smells like an implementation accident to me.\n const loadingModuleData = parentCacheNode.loading;\n let child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_approutercontextsharedruntime.TemplateContext.Provider, {\n value: /*#__PURE__*/ (0, _jsxruntime.jsxs)(ScrollAndFocusHandler, {\n segmentPath: segmentPath,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {\n errorComponent: error,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingBoundary, {\n loading: loadingModuleData,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary1.HTTPAccessFallbackBoundary, {\n notFound: notFound,\n forbidden: forbidden,\n unauthorized: unauthorized,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_redirectboundary.RedirectBoundary, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerLayoutRouter, {\n url: url,\n tree: tree,\n cacheNode: cacheNode,\n segmentPath: segmentPath\n }),\n segmentBoundaryTriggerNode\n ]\n })\n })\n })\n }),\n segmentViewStateNode\n ]\n }),\n children: [\n templateStyles,\n templateScripts,\n template\n ]\n }, stateKey);\n if (true) {\n const { SegmentStateProvider } = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(SegmentStateProvider, {\n children: [\n child,\n segmentViewBoundaries\n ]\n }, stateKey);\n }\n if (false) {}\n children.push(child);\n bfcacheEntry = bfcacheEntry.next;\n }while (bfcacheEntry !== null);\n return children;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=layout-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0E4ZUE7OztlQUF3QkE7Ozs7OztnREEvZGpCOzZFQVNBOytFQUNjOzJEQUtkO2lEQUM2QjtnREFDRDsyQ0FDTDsyQ0FDRDtpREFDNEI7OENBQ3hCOzRDQUNVO2tEQUNOOytEQUNhOzRDQUNWO3FDQUNrQjtzQ0FDekI7QUFFakMsTUFBTUMsV0FBV0MsTUFBa0MsR0FDOUNHLENBQTZELEdBQzlEO0FBRUo7OztDQUdDLEdBQ0QsU0FBU0UsZUFDUEMsaUJBQWdELEVBQ2hEQyxjQUFpQztJQUVqQyxJQUFJRCxtQkFBbUI7UUFDckIsTUFBTSxDQUFDRSxTQUFTQyxpQkFBaUIsR0FBR0g7UUFDcEMsTUFBTUksU0FBU0osa0JBQWtCSyxNQUFNLEtBQUs7UUFFNUMsSUFBSUMsQ0FBQUEsR0FBQUEsZUFBQUEsWUFBWSxFQUFDTCxjQUFjLENBQUMsRUFBRSxFQUFFQyxVQUFVO1lBQzVDLElBQUlELGNBQWMsQ0FBQyxFQUFFLENBQUNNLGNBQWMsQ0FBQ0osbUJBQW1CO2dCQUN0RCxJQUFJQyxRQUFRO29CQUNWLE1BQU1JLFVBQVVULGVBQ2RVLFdBQ0FSLGNBQWMsQ0FBQyxFQUFFLENBQUNFLGlCQUFpQjtvQkFFckMsT0FBTzt3QkFDTEYsY0FBYyxDQUFDLEVBQUU7d0JBQ2pCOzRCQUNFLEdBQUdBLGNBQWMsQ0FBQyxFQUFFOzRCQUNwQixDQUFDRSxpQkFBaUIsRUFBRTtnQ0FDbEJLLE9BQU8sQ0FBQyxFQUFFO2dDQUNWQSxPQUFPLENBQUMsRUFBRTtnQ0FDVkEsT0FBTyxDQUFDLEVBQUU7Z0NBQ1Y7NkJBQ0Q7d0JBQ0g7cUJBQ0Q7Z0JBQ0g7Z0JBRUEsT0FBTztvQkFDTFAsY0FBYyxDQUFDLEVBQUU7b0JBQ2pCO3dCQUNFLEdBQUdBLGNBQWMsQ0FBQyxFQUFFO3dCQUNwQixDQUFDRSxpQkFBaUIsRUFBRUosZUFDbEJDLGtCQUFr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Ozs7b0JBS1JDOzs7O2dCQUlKM0I7Z0JBQ0FDO2dCQUNBQzs7V0FoQ0ltQjtRQW9DVCxJQUFJMUosSUFBb0IsRUFBbUI7WUFDekMsTUFBTSxFQUFFNkssb0JBQW9CLEVBQUUsR0FDNUIxSyxtQkFBT0EsQ0FBQyxvSkFBeUQ7WUFFbkVvSyxRQUFBQSxXQUFBQSxHQUNFLHNCQUFDTSxzQkFBQUE7O29CQUNFTjtvQkFDQTVCOztlQUZ3QmU7UUFLL0I7UUFFQSxJQUFJMUosS0FBa0MsRUFBRSxFQVN2QztRQUVEdUQsU0FBU3dILElBQUksQ0FBQ1I7UUFFZGYsZUFBZUEsYUFBYXdCLElBQUk7SUFDbEMsUUFBU3hCLGlCQUFpQixNQUFLO0lBRS9CLE9BQU9qRztBQUNUIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHtcbiAgQ2FjaGVOb2RlLFxuICBMYXp5Q2FjaGVOb2RlLFxuICBMb2FkaW5nTW9kdWxlRGF0YSxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7XG4gIEZsaWdodFJvdXRlclN0YXRlLFxuICBGbGlnaHRTZWdtZW50UGF0aCxcbn0gZnJvbSAnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9lcnJvci1ib3VuZGFyeSdcbmltcG9ydCB7XG4gIEFDVElPTl9TRVJWRVJfUEFUQ0gsXG4gIHR5cGUgRm9jdXNBbmRTY3JvbGxSZWYsXG59IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5cbmltcG9ydCBSZWFjdCwge1xuICB1c2VDb250ZXh0LFxuICB1c2UsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgU3VzcGVuc2UsXG4gIHVzZURlZmVycmVkVmFsdWUsXG4gIHR5cGUgSlNYLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQge1xuICBMYXlvdXRSb3V0ZXJDb250ZXh0LFxuICBHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0LFxuICBUZW1wbGF0ZUNvbnRleHQsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZmV0Y2hTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuaW1wb3J0IHsgdW5yZXNvbHZlZFRoZW5hYmxlIH0gZnJvbSAnLi91bnJlc29sdmVkLXRoZW5hYmxlJ1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gJy4vZXJyb3ItYm91bmRhcnknXG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tICcuL21hdGNoLXNlZ21lbnRzJ1xuaW1wb3J0IHsgZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Rpc2FibGUtc21vb3RoLXNjcm9sbCdcbmltcG9ydCB7IFJlZGlyZWN0Qm91bmRhcnkgfSBmcm9tICcuL3JlZGlyZWN0LWJvdW5kYXJ5J1xuaW1wb3J0IHsgSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkgfSBmcm9tICcuL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5J1xuaW1wb3J0IHsgY3JlYXRlUm91dGVyQ2FjaGVLZXkgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5J1xuaW1wb3J0IHsgaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlIH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9oYXMtaW50ZXJjZXB0aW9uLXJvdXRlLWluLWN1cnJlbnQtdHJlZSdcbmltcG9ydCB7IGRpc3BhdGNoQXBwUm91dGVyQWN0aW9uIH0gZnJvbSAnLi91c2UtYWN0aW9uLXF1ZXVlJ1xuaW1wb3J0IHsgdXNlUm91dGVyQkZDYWNoZSwgdHlwZSBSb3V0ZXJCRkNhY2hlRW50cnkgfSBmcm9tICcuL2JmY2FjaGUnXG5pbXBvcnQgeyBub3JtYWxpemVBcHBQYXRoIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzJ1xuXG5jb25zdCBBY3Rpdml0eSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkZfQ0FDSEVcbiAgPyAocmVxdWlyZSgncmVhY3QnKSBhcyB0eXBlb2YgaW1wb3J0KCdyZWFjdCcpKS51bnN0YWJsZV9BY3Rpdml0eVxuICA6IG51bGwhXG5cbi8qKlxuICogQWRkIHJlZmV0Y2ggbWFya2VyIHRvIHJvdXRlciBzdGF0ZSBhdCB0aGUgcG9pbnQgb2YgdGhlIGN1cnJlbnQgbGF5b3V0IHNlZ21lbnQuXG4gKiBUaGlzIGVuc3VyZXMgdGhlIHJlc3BvbnNlIHJldHVybmVkIGlzIG5vdCBmdXJ0aGVyIGRvd24gdGhhbiB0aGUgY3VycmVudCBsYXlvdXQgc2VnbWVudC5cbiAqL1xuZnVuY3Rpb24gd2Fsa0FkZFJlZmV0Y2goXG4gIHNlZ21lbnRQYXRoVG9XYWxrOiBGbGlnaHRTZWdtZW50UGF0aCB8IHVuZGVmaW5lZCxcbiAgdHJlZVRvUmVjcmVhdGU6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBGbGlnaHRSb3V0ZXJTdGF0ZSB7XG4gIGlmIChzZWdtZW50UGF0aFRvV2Fsaykge1xuICAgIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlS2V5XSA9IHNlZ21lbnRQYXRoVG9XYWxrXG4gICAgY29uc3QgaXNMYXN0ID0gc2VnbWVudFBhdGhUb1dhbGsubGVuZ3RoID09PSAyXG5cbiAgICBpZiAobWF0Y2hTZWdtZW50KHRyZWVUb1JlY3JlYXRlWzBdLCBzZWdtZW50KSkge1xuICAgICAgaWYgKHRyZWVUb1JlY3JlYXRlWzFdLmhhc093blByb3BlcnR5KHBhcmFsbGVsUm91dGVLZXkpKSB7XG4gICAgICAgIGlmIChpc0xhc3QpIHtcbiAgICAgICAgICBjb25zdCBzdWJUcmVlID0gd2Fsa0FkZFJlZmV0Y2goXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICB0cmVlVG9SZWNyZWF0ZVsxXVtwYXJhbGxlbFJvdXRlS2V5XVxuICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdHJlZVRvUmVjcmVhdGVbMF0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLnRyZWVUb1JlY3JlYXRlWzFdLFxuICAgICAgICAgICAgICBbcGFyYWxsZWxSb3V0ZUtleV06IFtcbiAgICAgICAgICAgICAgICBzdWJUcmVlWzBdLFxuICAgICAgICAgICAgICAgIHN1YlRyZWVbMV0sXG4gICAgICAgICAgICAgICAgc3ViVHJlZVsyXSxcbiAgICAgICAgICAgICAgICAncmVmZXRjaCcsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgdHJlZVRvUmVjcmVhdGVbMF0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4udHJlZVRvUmVjcmVhdGVbMV0sXG4gICAgICAgICAgICBbcGFyYWxsZWxSb3V0ZUtleV06IHdhbGtBZGRSZWZldGNoKFxuICAgICAgICAgICAgICBzZWdtZW50UGF0aFRvV2Fsay5zbGljZSgyKSxcbiAgICAgICAgICAgICAgdHJlZVRvUmVjcmVhdGVbMV1bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmVlVG9SZWNyZWF0ZVxufVxuXG5jb25zdCBfX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUgPSAoXG4gIFJlYWN0RE9NIGFzIGFueVxuKS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREVcblxuLy8gVE9ETy1BUFA6IFJlcGxhY2Ugd2l0aCBuZXcgUmVhY3QgQVBJIGZvciBmaW5kaW5nIGRvbSBub2RlcyB3aXRob3V0IGEgYHJlZmAgd2hlbiBhdmFpbGFibGVcbi8qKlxuICogV3JhcHMgUmVhY3RET00uZmluZERPTU5vZGUgd2l0aCBhZGRpdGlvbmFsIGxvZ2ljIHRvIGhpZGUgUmVhY3QgU3RyaWN0IE1vZGUgd2FybmluZ1xuICovXG5mdW5jdGlvbiBmaW5kRE9NTm9kZShcbiAgaW5zdGFuY2U6IFJlYWN0LlJlYWN0SW5zdGFuY2UgfCBudWxsIHwgdW5kZWZpbmVkXG4pOiBFbGVtZW50IHwgVGV4dCB8IG51bGwge1xuICAvLyBUcmVlLXNoYWtlIGZvciBzZXJ2ZXIgYnVuZGxlXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGxcblxuICAvLyBfX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUuZmluZERPTU5vZGUgaXMgbnVsbCBkdXJpbmcgbW9kdWxlIGluaXQuXG4gIC8vIFdlIG5lZWQgdG8gbGF6aWx5IHJlZmVyZW5jZSBpdC5cbiAgY29uc3QgaW50ZXJuYWxfcmVhY3RET01maW5kRE9NTm9kZSA9XG4gICAgX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLmZpbmRET01Ob2RlXG4gIHJldHVybiBpbnRlcm5hbF9yZWFjdERPTWZpbmRET01Ob2RlKGluc3RhbmNlKVxufVxuXG5jb25zdCByZWN0UHJvcGVydGllcyA9IFtcbiAgJ2JvdHRvbScsXG4gICdoZWlnaHQnLFxuICAnbGVmdCcsXG4gICdyaWdodCcsXG4gICd0b3AnLFxuICAnd2lkdGgnLFxuICAneCcsXG4gICd5Jyxcbl0gYXMgY29uc3Rcbi8qKlxuICogQ2hlY2sgaWYgYSBIVE1MRWxlbWVudCBpcyBoaWRkZW4gb3IgZml4ZWQvc3RpY2t5IHBvc2l0aW9uXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFNraXBFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gIC8vIHdlIGlnbm9yZSBmaXhlZCBvciBzdGlja3kgcG9zaXRpb25lZCBlbGVtZW50cyBzaW5jZSB0aGV5J2xsIGxpa2VseSBwYXNzIHRoZSBcImluLXZpZXdwb3J0XCIgY2hlY2tcbiAgLy8gYW5kIHdpbGwgcmVzdWx0IGluIGEgc2l0dWF0aW9uIHdlIGJhaWwgb24gc2Nyb2xsIGJlY2F1c2Ugb2Ygc29tZXRoaW5nIGxpa2UgYSBmaXhlZCBuYXYsXG4gIC8vIGV2ZW4gdGhvdWdoIHRoZSBhY3R1YWwgcGFnZSBjb250ZW50IGlzIG9mZnNjcmVlblxuICBpZiAoWydzdGlja3knLCAnZml4ZWQnXS5pbmNsdWRlcyhnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnU2tpcHBpbmcgYXV0by1zY3JvbGwgYmVoYXZpb3IgZHVlIHRvIGBwb3NpdGlvbjogc3RpY2t5YCBvciBgcG9zaXRpb246IGZpeGVkYCBvbiBlbGVtZW50OicsXG4gICAgICAgIGVsZW1lbnRcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIFVzZXMgYGdldEJvdW5kaW5nQ2xpZW50UmVjdGAgdG8gY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgaGlkZGVuIGluc3RlYWQgb2YgYG9mZnNldFBhcmVudGBcbiAgLy8gYmVjYXVzZSBgb2Zmc2V0UGFyZW50YCBkb2Vzbid0IGNvbnNpZGVyIGRvY3VtZW50L2JvZHlcbiAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgcmV0dXJuIHJlY3RQcm9wZXJ0aWVzLmV2ZXJ5KChpdGVtKSA9PiByZWN0W2l0ZW1dID09PSAwKVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSB0b3AgY29ybmVyIG9mIHRoZSBIVE1MRWxlbWVudCBpcyBpbiB0aGUgdmlld3BvcnQuXG4gKi9cbmZ1bmN0aW9uIHRvcE9mRWxlbWVudEluVmlld3BvcnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIHZpZXdwb3J0SGVpZ2h0OiBudW1iZXIpIHtcbiAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgcmV0dXJuIHJlY3QudG9wID49IDAgJiYgcmVjdC50b3AgPD0gdmlld3BvcnRIZWlnaHRcbn1cblxuLyoqXG4gKiBGaW5kIHRoZSBET00gbm9kZSBmb3IgYSBoYXNoIGZyYWdtZW50LlxuICogSWYgYHRvcGAgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlLiBUaGlzIG1pcnJvcnMgdGhlIGJyb3dzZXIncyBiZWhhdmlvci5cbiAqIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGFuIGlkLCB0aGUgcGFnZSBoYXMgdG8gc2Nyb2xsIHRvIHRoZSBlbGVtZW50IHdpdGggdGhhdCBpZC5cbiAqIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGEgbmFtZSwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZmlyc3QgZWxlbWVudCB3aXRoIHRoYXQgbmFtZS5cbiAqL1xuZnVuY3Rpb24gZ2V0SGFzaEZyYWdtZW50RG9tTm9kZShoYXNoRnJhZ21lbnQ6IHN0cmluZykge1xuICAvLyBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBgdG9wYCB0aGUgcGFnZSBoYXMgdG8gc2Nyb2xsIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2UuXG4gIGlmIChoYXNoRnJhZ21lbnQgPT09ICd0b3AnKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbiAgfVxuXG4gIC8vIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGFuIGlkLCB0aGUgcGFnZSBoYXMgdG8gc2Nyb2xsIHRvIHRoZSBlbGVtZW50IHdpdGggdGhhdCBpZC5cbiAgcmV0dXJuIChcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoYXNoRnJhZ21lbnQpID8/XG4gICAgLy8gSWYgdGhlIGhhc2ggZnJhZ21lbnQgaXMgYSBuYW1lLCB0aGUgcGFnZSBoYXMgdG8gc2Nyb2xsIHRvIHRoZSBmaXJzdCBlbGVtZW50IHdpdGggdGhhdCBuYW1lLlxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKGhhc2hGcmFnbWVudClbMF1cbiAgKVxufVxuaW50ZXJmYWNlIFNjcm9sbEFuZEZvY3VzSGFuZGxlclByb3BzIHtcbiAgZm9jdXNBbmRTY3JvbGxSZWY6IEZvY3VzQW5kU2Nyb2xsUmVmXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgc2VnbWVudFBhdGg6IEZsaWdodFNlZ21lbnRQYXRoXG59XG5jbGFzcyBJbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxTY3JvbGxBbmRGb2N1c0hhbmRsZXJQcm9wcz4ge1xuICBoYW5kbGVQb3RlbnRpYWxTY3JvbGwgPSAoKSA9PiB7XG4gICAgLy8gSGFuZGxlIHNjcm9sbCBhbmQgZm9jdXMsIGl0J3Mgb25seSBhcHBsaWVkIG9uY2UgaW4gdGhlIGZpcnN0IHVzZUVmZmVjdCB0aGF0IHRyaWdnZXJzIHRoYXQgY2hhbmdlZC5cbiAgICBjb25zdCB7IGZvY3VzQW5kU2Nyb2xsUmVmLCBzZWdtZW50UGF0aCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKGZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5KSB7XG4gICAgICAvLyBzZWdtZW50UGF0aHMgaXMgYW4gYXJyYXkgb2Ygc2VnbWVudCBwYXRocyB0aGF0IHNob3VsZCBiZSBzY3JvbGxlZCB0b1xuICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgc2VnbWVudCBwYXRoIGlzIG5vdCBpbiB0aGUgYXJyYXksIHRoZSBzY3JvbGwgaXMgbm90IGFwcGxpZWRcbiAgICAgIC8vIHVubGVzcyB0aGUgYXJyYXkgaXMgZW1wdHksIGluIHdoaWNoIGNhc2UgdGhlIHNjcm9sbCBpcyBhbHdheXMgYXBwbGllZFxuICAgICAgaWYgKFxuICAgICAgICBmb2N1c0FuZFNjcm9sbFJlZi5zZWdtZW50UGF0aHMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgICFmb2N1c0FuZFNjcm9sbFJlZi5zZWdtZW50UGF0aHMuc29tZSgoc2Nyb2xsUmVmU2VnbWVudFBhdGgpID0+XG4gICAgICAgICAgc2VnbWVudFBhdGguZXZlcnkoKHNlZ21lbnQsIGluZGV4KSA9PlxuICAgICAgICAgICAgbWF0Y2hTZWdtZW50KHNlZ21lbnQsIHNjcm9sbFJlZlNlZ21lbnRQYXRoW2luZGV4XSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbGV0IGRvbU5vZGU6XG4gICAgICAgIHwgUmV0dXJuVHlwZTx0eXBlb2YgZ2V0SGFzaEZyYWdtZW50RG9tTm9kZT5cbiAgICAgICAgfCBSZXR1cm5UeXBlPHR5cGVvZiBmaW5kRE9NTm9kZT4gPSBudWxsXG4gICAgICBjb25zdCBoYXNoRnJhZ21lbnQgPSBmb2N1c0FuZFNjcm9sbFJlZi5oYXNoRnJhZ21lbnRcblxuICAgICAgaWYgKGhhc2hGcmFnbWVudCkge1xuICAgICAgICBkb21Ob2RlID0gZ2V0SGFzaEZyYWdtZW50RG9tTm9kZShoYXNoRnJhZ21lbnQpXG4gICAgICB9XG5cbiAgICAgIC8vIGBmaW5kRE9NTm9kZWAgaXMgdHJpY2t5IGJlY2F1c2UgaXQgcmV0dXJucyBqdXN0IHRoZSBmaXJzdCBjaGlsZCBpZiB0aGUgY29tcG9uZW50IGlzIGEgZnJhZ21lbnQuXG4gICAgICAvLyBUaGlzIGFscmVhZHkgY2F1c2VkIGEgYnVnIHdoZXJlIHRoZSBmaXJzdCBjaGlsZCB3YXMgYSA8bGluay8+IGluIGhlYWQuXG4gICAgICBpZiAoIWRvbU5vZGUpIHtcbiAgICAgICAgZG9tTm9kZSA9IGZpbmRET01Ob2RlKHRoaXMpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIG5vIERPTSBub2RlIHRoaXMgbGF5b3V0LXJvdXRlciBsZXZlbCBpcyBza2lwcGVkLiBJdCdsbCBiZSBoYW5kbGVkIGhpZ2hlci11cCBpbiB0aGUgdHJlZS5cbiAgICAgIGlmICghKGRvbU5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gVmVyaWZ5IGlmIHRoZSBlbGVtZW50IGlzIGEgSFRNTEVsZW1lbnQgYW5kIGlmIHdlIHdhbnQgdG8gY29uc2lkZXIgaXQgZm9yIHNjcm9sbCBiZWhhdmlvci5cbiAgICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHNraXBwZWQsIHRyeSB0byBzZWxlY3QgdGhlIG5leHQgc2libGluZyBhbmQgdHJ5IGFnYWluLlxuICAgICAgd2hpbGUgKCEoZG9tTm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB8fCBzaG91bGRTa2lwRWxlbWVudChkb21Ob2RlKSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGlmIChkb21Ob2RlLnBhcmVudEVsZW1lbnQ/LmxvY2FsTmFtZSA9PT0gJ2hlYWQnKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBXZSBlbnRlciB0aGlzIHN0YXRlIHdoZW4gbWV0YWRhdGEgd2FzIHJlbmRlcmVkIGFzIHBhcnQgb2YgdGhlIHBhZ2Ugb3IgdmlhIE5leHQuanMuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGFsd2F5cyBhIGJ1ZyBpbiBOZXh0LmpzIGFuZCBjYXVzZWQgYnkgUmVhY3QgaG9pc3RpbmcgbWV0YWRhdGEuXG4gICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHJlcGxhY2UgYGZpbmRET01Ob2RlYCBpbiBmYXZvciBvZiBGcmFnbWVudCBSZWZzICh3aGVuIGF2YWlsYWJsZSkgc28gdGhhdCB3ZSBjYW4gc2tpcCBvdmVyIG1ldGFkYXRhLlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vIHNpYmxpbmdzIGZvdW5kIHRoYXQgbWF0Y2ggdGhlIGNyaXRlcmlhIGFyZSBmb3VuZCwgc28gaGFuZGxlIHNjcm9sbCBoaWdoZXIgdXAgaW4gdGhlIHRyZWUgaW5zdGVhZC5cbiAgICAgICAgaWYgKGRvbU5vZGUubmV4dEVsZW1lbnRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgZG9tTm9kZSA9IGRvbU5vZGUubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICB9XG5cbiAgICAgIC8vIFN0YXRlIGlzIG11dGF0ZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGZvY3VzIGFuZCBzY3JvbGwgaXMgYXBwbGllZCBvbmx5IG9uY2UuXG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZi5hcHBseSA9IGZhbHNlXG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZi5oYXNoRnJhZ21lbnQgPSBudWxsXG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZi5zZWdtZW50UGF0aHMgPSBbXVxuXG4gICAgICBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgLy8gSW4gY2FzZSBvZiBoYXNoIHNjcm9sbCwgd2Ugb25seSBuZWVkIHRvIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXdcbiAgICAgICAgICBpZiAoaGFzaEZyYWdtZW50KSB7XG4gICAgICAgICAgICA7KGRvbU5vZGUgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbEludG9WaWV3KClcblxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFN0b3JlIHRoZSBjdXJyZW50IHZpZXdwb3J0IGhlaWdodCBiZWNhdXNlIHJlYWRpbmcgYGNsaWVudEhlaWdodGAgY2F1c2VzIGEgcmVmbG93LFxuICAgICAgICAgIC8vIGFuZCBpdCB3b24ndCBjaGFuZ2UgZHVyaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IGh0bWxFbGVtZW50LmNsaWVudEhlaWdodFxuXG4gICAgICAgICAgLy8gSWYgdGhlIGVsZW1lbnQncyB0b3AgZWRnZSBpcyBhbHJlYWR5IGluIHRoZSB2aWV3cG9ydCwgZXhpdCBlYXJseS5cbiAgICAgICAgICBpZiAodG9wT2ZFbGVtZW50SW5WaWV3cG9ydChkb21Ob2RlIGFzIEhUTUxFbGVtZW50LCB2aWV3cG9ydEhlaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIE90aGVyd2lzZSwgdHJ5IHNjcm9sbGluZyBnbyB0aGUgdG9wIG9mIHRoZSBkb2N1bWVudCB0byBiZSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggcGFnZXNcbiAgICAgICAgICAvLyBzY3JvbGxJbnRvVmlldygpIGNhbGxlZCBvbiBgPGh0bWwvPmAgZWxlbWVudCBzY3JvbGxzIGhvcml6b250YWxseSBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggKHRoYXQgc2hvdWxkbid0IGhhcHBlbilcbiAgICAgICAgICAvLyBXZSBjb3VsZCB1c2UgaXQgdG8gc2Nyb2xsIGhvcml6b250YWxseSBmb2xsb3dpbmcgUlRMIGJ1dCB0aGF0IGFsc28gc2VlbXMgdG8gYmUgYnJva2VuIC0gaXQgd2lsbCBhbHdheXMgc2Nyb2xsIGxlZnRcbiAgICAgICAgICAvLyBzY3JvbGxMZWZ0ID0gMCBhbHNvIHNlZW1zIHRvIGlnbm9yZSBSVEwgYW5kIG1hbnVhbGx5IGNoZWNraW5nIGZvciBSVEwgaXMgdG9vIG11Y2ggaGFzc2xlIHNvIHdlIHdpbGwgc2Nyb2xsIGp1c3QgdmVydGljYWxseVxuICAgICAgICAgIGh0bWxFbGVtZW50LnNjcm9sbFRvcCA9IDBcblxuICAgICAgICAgIC8vIFNjcm9sbCB0byBkb21Ob2RlIGlmIGRvbU5vZGUgaXMgbm90IGluIHZpZXdwb3J0IHdoZW4gc2Nyb2xsZWQgdG8gdG9wIG9mIGRvY3VtZW50XG4gICAgICAgICAgaWYgKCF0b3BPZkVsZW1lbnRJblZpZXdwb3J0KGRvbU5vZGUgYXMgSFRNTEVsZW1lbnQsIHZpZXdwb3J0SGVpZ2h0KSkge1xuICAgICAgICAgICAgLy8gU2Nyb2xsIGludG8gdmlldyBkb2Vzbid0IHNjcm9sbCBob3Jpem9udGFsbHkgYnkgZGVmYXVsdCB3aGVuIG5vdCBuZWVkZWRcbiAgICAgICAgICAgIDsoZG9tTm9kZSBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsSW50b1ZpZXcoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8vIFdlIHdpbGwgZm9yY2UgbGF5b3V0IGJ5IHF1ZXJ5aW5nIGRvbU5vZGUgcG9zaXRpb25cbiAgICAgICAgICBkb250Rm9yY2VMYXlvdXQ6IHRydWUsXG4gICAgICAgICAgb25seUhhc2hDaGFuZ2U6IGZvY3VzQW5kU2Nyb2xsUmVmLm9ubHlIYXNoQ2hhbmdlLFxuICAgICAgICB9XG4gICAgICApXG5cbiAgICAgIC8vIE11dGF0ZSBhZnRlciBzY3JvbGxpbmcgc28gdGhhdCBpdCBjYW4gYmUgcmVhZCBieSBgZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbmBcbiAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLm9ubHlIYXNoQ2hhbmdlID0gZmFsc2VcblxuICAgICAgLy8gU2V0IGZvY3VzIG9uIHRoZSBlbGVtZW50XG4gICAgICBkb21Ob2RlLmZvY3VzKClcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCgpXG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgLy8gQmVjYXVzZSB0aGlzIHByb3BlcnR5IGlzIG92ZXJ3cml0dGVuIGluIGhhbmRsZVBvdGVudGlhbFNjcm9sbCBpdCdzIGZpbmUgdG8gYWx3YXlzIHJ1biBpdCB3aGVuIHRydWUgYXMgaXQnbGwgYmUgc2V0IHRvIGZhbHNlIGZvciBzdWJzZXF1ZW50IHJlbmRlcnMuXG4gICAgaWYgKHRoaXMucHJvcHMuZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkpIHtcbiAgICAgIHRoaXMuaGFuZGxlUG90ZW50aWFsU2Nyb2xsKClcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgfVxufVxuXG5mdW5jdGlvbiBTY3JvbGxBbmRGb2N1c0hhbmRsZXIoe1xuICBzZWdtZW50UGF0aCxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IGdsb2JhbCBsYXlvdXQgcm91dGVyIG5vdCBtb3VudGVkJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPElubmVyU2Nyb2xsQW5kRm9jdXNIYW5kbGVyXG4gICAgICBzZWdtZW50UGF0aD17c2VnbWVudFBhdGh9XG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZj17Y29udGV4dC5mb2N1c0FuZFNjcm9sbFJlZn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Jbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlcj5cbiAgKVxufVxuXG4vKipcbiAqIElubmVyTGF5b3V0Um91dGVyIGhhbmRsZXMgcmVuZGVyaW5nIHRoZSBwcm92aWRlZCBzZWdtZW50IGJhc2VkIG9uIHRoZSBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gSW5uZXJMYXlvdXRSb3V0ZXIoe1xuICB0cmVlLFxuICBzZWdtZW50UGF0aCxcbiAgY2FjaGVOb2RlLFxuICB1cmwsXG59OiB7XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxuICBjYWNoZU5vZGU6IENhY2hlTm9kZVxuICB1cmw6IHN0cmluZ1xufSkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFyaWFudCBnbG9iYWwgbGF5b3V0IHJvdXRlciBub3QgbW91bnRlZCcpXG4gIH1cblxuICBjb25zdCB7IHRyZWU6IGZ1bGxUcmVlIH0gPSBjb250ZXh0XG5cbiAgLy8gYHJzY2AgcmVwcmVzZW50cyB0aGUgcmVuZGVyYWJsZSBub2RlIGZvciB0aGlzIHNlZ21lbnQuXG5cbiAgLy8gSWYgdGhpcyBzZWdtZW50IGhhcyBhIGBwcmVmZXRjaFJzY2AsIGl0J3MgdGhlIHN0YXRpY2FsbHkgcHJlZmV0Y2hlZCBkYXRhLlxuICAvLyBXZSBzaG91bGQgdXNlIHRoYXQgb24gaW5pdGlhbCByZW5kZXIgaW5zdGVhZCBvZiBgcnNjYC4gVGhlbiB3ZSdsbCBzd2l0Y2hcbiAgLy8gdG8gYHJzY2Agd2hlbiB0aGUgZHluYW1pYyByZXNwb25zZSBzdHJlYW1zIGluLlxuICAvL1xuICAvLyBJZiBubyBwcmVmZXRjaCBkYXRhIGlzIGF2YWlsYWJsZSwgdGhlbiB3ZSBnbyBzdHJhaWdodCB0byByZW5kZXJpbmcgYHJzY2AuXG4gIGNvbnN0IHJlc29sdmVkUHJlZmV0Y2hSc2MgPVxuICAgIGNhY2hlTm9kZS5wcmVmZXRjaFJzYyAhPT0gbnVsbCA/IGNhY2hlTm9kZS5wcmVmZXRjaFJzYyA6IGNhY2hlTm9kZS5yc2NcblxuICAvLyBXZSB1c2UgYHVzZURlZmVycmVkVmFsdWVgIHRvIGhhbmRsZSBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgcHJlZmV0Y2hlZCBhbmRcbiAgLy8gZmluYWwgdmFsdWVzLiBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIHJldHVybmVkIG9uIGluaXRpYWwgcmVuZGVyLCB0aGVuIGl0XG4gIC8vIHJlLXJlbmRlcnMgd2l0aCB0aGUgZmlyc3QgYXJndW1lbnQuXG4gIGNvbnN0IHJzYzogYW55ID0gdXNlRGVmZXJyZWRWYWx1ZShjYWNoZU5vZGUucnNjLCByZXNvbHZlZFByZWZldGNoUnNjKVxuXG4gIC8vIGByc2NgIGlzIGVpdGhlciBhIFJlYWN0IG5vZGUgb3IgYSBwcm9taXNlIGZvciBhIFJlYWN0IG5vZGUsIGV4Y2VwdCB3ZVxuICAvLyBzcGVjaWFsIGNhc2UgYG51bGxgIHRvIHJlcHJlc2VudCB0aGF0IHRoaXMgc2VnbWVudCdzIGRhdGEgaXMgbWlzc2luZy4gSWZcbiAgLy8gaXQncyBhIHByb21pc2UsIHdlIG5lZWQgdG8gdW53cmFwIGl0IHNvIHdlIGNhbiBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlXG4gIC8vIGRhdGEgaXMgbWlzc2luZy5cbiAgY29uc3QgcmVzb2x2ZWRSc2M6IFJlYWN0LlJlYWN0Tm9kZSA9XG4gICAgdHlwZW9mIHJzYyA9PT0gJ29iamVjdCcgJiYgcnNjICE9PSBudWxsICYmIHR5cGVvZiByc2MudGhlbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyB1c2UocnNjKVxuICAgICAgOiByc2NcblxuICBpZiAoIXJlc29sdmVkUnNjKSB7XG4gICAgLy8gVGhlIGRhdGEgZm9yIHRoaXMgc2VnbWVudCBpcyBub3QgYXZhaWxhYmxlLCBhbmQgdGhlcmUncyBubyBwZW5kaW5nXG4gICAgLy8gbmF2aWdhdGlvbiB0aGF0IHdpbGwgYmUgYWJsZSB0byBmdWxmaWxsIGl0LiBXZSBuZWVkIHRvIGZldGNoIG1vcmUgZnJvbVxuICAgIC8vIHRoZSBzZXJ2ZXIgYW5kIHBhdGNoIHRoZSBjYWNoZS5cblxuICAgIC8vIENoZWNrIGlmIHRoZXJlJ3MgYWxyZWFkeSBhIHBlbmRpbmcgcmVxdWVzdC5cbiAgICBsZXQgbGF6eURhdGEgPSBjYWNoZU5vZGUubGF6eURhdGFcbiAgICBpZiAobGF6eURhdGEgPT09IG51bGwpIHtcbiAgICAgIC8qKlxuICAgICAgICogUm91dGVyIHN0YXRlIHdpdGggcmVmZXRjaCBtYXJrZXIgYWRkZWRcbiAgICAgICAqL1xuICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgY29uc3QgcmVmZXRjaFRyZWUgPSB3YWxrQWRkUmVmZXRjaChbJycsIC4uLnNlZ21lbnRQYXRoXSwgZnVsbFRyZWUpXG4gICAgICBjb25zdCBpbmNsdWRlTmV4dFVybCA9IGhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZShmdWxsVHJlZSlcbiAgICAgIGNvbnN0IG5hdmlnYXRlZEF0ID0gRGF0ZS5ub3coKVxuICAgICAgY2FjaGVOb2RlLmxhenlEYXRhID0gbGF6eURhdGEgPSBmZXRjaFNlcnZlclJlc3BvbnNlKFxuICAgICAgICBuZXcgVVJMKHVybCwgbG9jYXRpb24ub3JpZ2luKSxcbiAgICAgICAge1xuICAgICAgICAgIGZsaWdodFJvdXRlclN0YXRlOiByZWZldGNoVHJlZSxcbiAgICAgICAgICBuZXh0VXJsOiBpbmNsdWRlTmV4dFVybCA/IGNvbnRleHQubmV4dFVybCA6IG51bGwsXG4gICAgICAgIH1cbiAgICAgICkudGhlbigoc2VydmVyUmVzcG9uc2UpID0+IHtcbiAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbih7XG4gICAgICAgICAgICB0eXBlOiBBQ1RJT05fU0VSVkVSX1BBVENILFxuICAgICAgICAgICAgcHJldmlvdXNUcmVlOiBmdWxsVHJlZSxcbiAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlLFxuICAgICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gc2VydmVyUmVzcG9uc2VcbiAgICAgIH0pXG5cbiAgICAgIC8vIFN1c3BlbmQgd2hpbGUgd2FpdGluZyBmb3IgbGF6eURhdGEgdG8gcmVzb2x2ZVxuICAgICAgdXNlKGxhenlEYXRhKVxuICAgIH1cbiAgICAvLyBTdXNwZW5kIGluZmluaXRlbHkgYXMgYGNoYW5nZUJ5U2VydmVyUmVzcG9uc2VgIHdpbGwgY2F1c2UgYSBkaWZmZXJlbnQgcGFydCBvZiB0aGUgdHJlZSB0byBiZSByZW5kZXJlZC5cbiAgICAvLyBBIGZhbHNleSBgcmVzb2x2ZWRSc2NgIGluZGljYXRlcyBtaXNzaW5nIGRhdGEgLS0gd2Ugc2hvdWxkIG5vdCBjb21taXQgdGhhdCBicmFuY2gsIGFuZCB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBkYXRhIHRvIGFycml2ZS5cbiAgICB1c2UodW5yZXNvbHZlZFRoZW5hYmxlKSBhcyBuZXZlclxuICB9XG5cbiAgLy8gSWYgd2UgZ2V0IHRvIHRoaXMgcG9pbnQsIHRoZW4gd2Uga25vdyB3ZSBoYXZlIHNvbWV0aGluZyB3ZSBjYW4gcmVuZGVyLlxuICBjb25zdCBzdWJ0cmVlID0gKFxuICAgIC8vIFRoZSBsYXlvdXQgcm91dGVyIGNvbnRleHQgbmFycm93cyBkb3duIHRyZWUgYW5kIGNoaWxkTm9kZXMgYXQgZWFjaCBsZXZlbC5cbiAgICA8TGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgcGFyZW50VHJlZTogdHJlZSxcbiAgICAgICAgcGFyZW50Q2FjaGVOb2RlOiBjYWNoZU5vZGUsXG4gICAgICAgIHBhcmVudFNlZ21lbnRQYXRoOiBzZWdtZW50UGF0aCxcblxuICAgICAgICAvLyBUT0RPLUFQUDogb3ZlcnJpZGluZyBvZiB1cmwgZm9yIHBhcmFsbGVsIHJvdXRlc1xuICAgICAgICB1cmw6IHVybCxcbiAgICAgIH19XG4gICAgPlxuICAgICAge3Jlc29sdmVkUnNjfVxuICAgIDwvTGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxuICAvLyBFbnN1cmUgcm9vdCBsYXlvdXQgaXMgbm90IHdyYXBwZWQgaW4gYSBkaXYgYXMgdGhlIHJvb3QgbGF5b3V0IHJlbmRlcnMgYDxodG1sPmBcbiAgcmV0dXJuIHN1YnRyZWVcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHN1c3BlbnNlIGJvdW5kYXJ5IHdpdGggdGhlIHByb3ZpZGVkIFwibG9hZGluZ1wiIHByb3BlcnR5IGFzIHRoZSBmYWxsYmFjay5cbiAqIElmIG5vIGxvYWRpbmcgcHJvcGVydHkgaXMgcHJvdmlkZWQgaXQgcmVuZGVycyB0aGUgY2hpbGRyZW4gd2l0aG91dCBhIHN1c3BlbnNlIGJvdW5kYXJ5LlxuICovXG5mdW5jdGlvbiBMb2FkaW5nQm91bmRhcnkoe1xuICBsb2FkaW5nLFxuICBjaGlsZHJlbixcbn06IHtcbiAgbG9hZGluZzogTG9hZGluZ01vZHVsZURhdGEgfCBQcm9taXNlPExvYWRpbmdNb2R1bGVEYXRhPlxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KTogSlNYLkVsZW1lbnQge1xuICAvLyBJZiBsb2FkaW5nIGlzIGEgcHJvbWlzZSwgdW53cmFwIGl0LiBUaGlzIGhhcHBlbnMgaW4gY2FzZXMgd2hlcmUgd2UgaGF2ZW4ndFxuICAvLyB5ZXQgcmVjZWl2ZWQgdGhlIGxvYWRpbmcgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIg4oCUIHdoaWNoIGluY2x1ZGVzIHdoZXRoZXIgb3JcbiAgLy8gbm90IHRoaXMgbGF5b3V0IGhhcyBhIGxvYWRpbmcgY29tcG9uZW50IGF0IGFsbC5cbiAgLy9cbiAgLy8gSXQncyBPSyB0byBzdXNwZW5kIGhlcmUgaW5zdGVhZCBvZiBpbnNpZGUgdGhlIGZhbGxiYWNrIGJlY2F1c2UgdGhpc1xuICAvLyBwcm9taXNlIHdpbGwgcmVzb2x2ZSBzaW11bHRhbmVvdXNseSB3aXRoIHRoZSBkYXRhIGZvciB0aGUgc2VnbWVudCBpdHNlbGYuXG4gIC8vIFNvIGl0IHdpbGwgbmV2ZXIgc3VzcGVuZCBmb3IgbG9uZ2VyIHRoYW4gaXQgd291bGQgaGF2ZSBpZiB3ZSBkaWRuJ3QgdXNlXG4gIC8vIGEgU3VzcGVuc2UgZmFsbGJhY2sgYXQgYWxsLlxuICBsZXQgbG9hZGluZ01vZHVsZURhdGFcbiAgaWYgKFxuICAgIHR5cGVvZiBsb2FkaW5nID09PSAnb2JqZWN0JyAmJlxuICAgIGxvYWRpbmcgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgKGxvYWRpbmcgYXMgYW55KS50aGVuID09PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIGNvbnN0IHByb21pc2VGb3JMb2FkaW5nID0gbG9hZGluZyBhcyBQcm9taXNlPExvYWRpbmdNb2R1bGVEYXRhPlxuICAgIGxvYWRpbmdNb2R1bGVEYXRhID0gdXNlKHByb21pc2VGb3JMb2FkaW5nKVxuICB9IGVsc2Uge1xuICAgIGxvYWRpbmdNb2R1bGVEYXRhID0gbG9hZGluZyBhcyBMb2FkaW5nTW9kdWxlRGF0YVxuICB9XG5cbiAgaWYgKGxvYWRpbmdNb2R1bGVEYXRhKSB7XG4gICAgY29uc3QgbG9hZGluZ1JzYyA9IGxvYWRpbmdNb2R1bGVEYXRhWzBdXG4gICAgY29uc3QgbG9hZGluZ1N0eWxlcyA9IGxvYWRpbmdNb2R1bGVEYXRhWzFdXG4gICAgY29uc3QgbG9hZGluZ1NjcmlwdHMgPSBsb2FkaW5nTW9kdWxlRGF0YVsyXVxuICAgIHJldHVybiAoXG4gICAgICA8U3VzcGVuc2VcbiAgICAgICAgZmFsbGJhY2s9e1xuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7bG9hZGluZ1N0eWxlc31cbiAgICAgICAgICAgIHtsb2FkaW5nU2NyaXB0c31cbiAgICAgICAgICAgIHtsb2FkaW5nUnNjfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvU3VzcGVuc2U+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxufVxuXG4vKipcbiAqIE91dGVyTGF5b3V0Um91dGVyIGhhbmRsZXMgdGhlIGN1cnJlbnQgc2VnbWVudCBhcyB3ZWxsIGFzIDxPZmZzY3JlZW4+IHJlbmRlcmluZyBvZiBvdGhlciBzZWdtZW50cy5cbiAqIEl0IGNhbiBiZSByZW5kZXJlZCBuZXh0IHRvIGVhY2ggb3RoZXIgd2l0aCBhIGRpZmZlcmVudCBgcGFyYWxsZWxSb3V0ZXJLZXlgLCBhbGxvd2luZyBmb3IgUGFyYWxsZWwgcm91dGVzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBPdXRlckxheW91dFJvdXRlcih7XG4gIHBhcmFsbGVsUm91dGVyS2V5LFxuICBlcnJvcixcbiAgZXJyb3JTdHlsZXMsXG4gIGVycm9yU2NyaXB0cyxcbiAgdGVtcGxhdGVTdHlsZXMsXG4gIHRlbXBsYXRlU2NyaXB0cyxcbiAgdGVtcGxhdGUsXG4gIG5vdEZvdW5kLFxuICBmb3JiaWRkZW4sXG4gIHVuYXV0aG9yaXplZCxcbiAgc2VnbWVudFZpZXdCb3VuZGFyaWVzLFxufToge1xuICBwYXJhbGxlbFJvdXRlcktleTogc3RyaW5nXG4gIGVycm9yOiBFcnJvckNvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBlcnJvclN0eWxlczogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIGVycm9yU2NyaXB0czogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIHRlbXBsYXRlU3R5bGVzOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgdGVtcGxhdGVTY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgdGVtcGxhdGU6IFJlYWN0LlJlYWN0Tm9kZVxuICBub3RGb3VuZDogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIGZvcmJpZGRlbjogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIHVuYXV0aG9yaXplZDogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIHNlZ21lbnRWaWV3Qm91bmRhcmllcz86IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFyaWFudCBleHBlY3RlZCBsYXlvdXQgcm91dGVyIHRvIGJlIG1vdW50ZWQnKVxuICB9XG5cbiAgY29uc3QgeyBwYXJlbnRUcmVlLCBwYXJlbnRDYWNoZU5vZGUsIHBhcmVudFNlZ21lbnRQYXRoLCB1cmwgfSA9IGNvbnRleHRcblxuICAvLyBHZXQgdGhlIENhY2hlTm9kZSBmb3IgdGhpcyBzZWdtZW50IGJ5IHJlYWRpbmcgaXQgZnJvbSB0aGUgcGFyZW50IHNlZ21lbnQnc1xuICAvLyBjaGlsZCBtYXAuXG4gIGNvbnN0IHBhcmVudFBhcmFsbGVsUm91dGVzID0gcGFyZW50Q2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzXG4gIGxldCBzZWdtZW50TWFwID0gcGFyZW50UGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVyS2V5KVxuICAvLyBJZiB0aGUgcGFyYWxsZWwgcm91dGVyIGNhY2hlIG5vZGUgZG9lcyBub3QgZXhpc3QgeWV0LCBjcmVhdGUgaXQuXG4gIC8vIFRoaXMgd3JpdGVzIHRvIHRoZSBjYWNoZSB3aGVuIHRoZXJlIGlzIG5vIGl0ZW0gaW4gdGhlIGNhY2hlIHlldC4gSXQgbmV2ZXIgKm92ZXJ3cml0ZXMqIGV4aXN0aW5nIGNhY2hlIGl0ZW1zIHdoaWNoIGlzIHdoeSBpdCdzIHNhZmUgaW4gY29uY3VycmVudCBtb2RlLlxuICBpZiAoIXNlZ21lbnRNYXApIHtcbiAgICBzZWdtZW50TWFwID0gbmV3IE1hcCgpXG4gICAgcGFyZW50UGFyYWxsZWxSb3V0ZXMuc2V0KHBhcmFsbGVsUm91dGVyS2V5LCBzZWdtZW50TWFwKVxuICB9XG4gIGNvbnN0IHBhcmVudFRyZWVTZWdtZW50ID0gcGFyZW50VHJlZVswXVxuICBjb25zdCBzZWdtZW50UGF0aCA9XG4gICAgcGFyZW50U2VnbWVudFBhdGggPT09IG51bGxcbiAgICAgID8gLy8gVE9ETzogVGhlIHJvb3Qgc2VnbWVudCB2YWx1ZSBpcyBjdXJyZW50bHkgb21pdHRlZCBmcm9tIHRoZSBzZWdtZW50XG4gICAgICAgIC8vIHBhdGguIFRoaXMgaGFzIGxlZCB0byBhIGJ1bmNoIG9mIHNwZWNpYWwgY2FzZXMgc2NhdHRlcmVkIHRocm91Z2hvdXRcbiAgICAgICAgLy8gdGhlIGNvZGUuIFdlIHNob3VsZCBjbGVhbiB0aGlzIHVwLlxuICAgICAgICBbcGFyYWxsZWxSb3V0ZXJLZXldXG4gICAgICA6IHBhcmVudFNlZ21lbnRQYXRoLmNvbmNhdChbcGFyZW50VHJlZVNlZ21lbnQsIHBhcmFsbGVsUm91dGVyS2V5XSlcblxuICAvLyBUaGUgXCJzdGF0ZVwiIGtleSBvZiBhIHNlZ21lbnQgaXMgdGhlIG9uZSBwYXNzZWQgdG8gUmVhY3Qg4oCUIGl0IHJlcHJlc2VudHMgdGhlXG4gIC8vIGlkZW50aXR5IG9mIHRoZSBVSSB0cmVlLiBXaGVuZXZlciB0aGUgc3RhdGUga2V5IGNoYW5nZXMsIHRoZSB0cmVlIGlzXG4gIC8vIHJlY3JlYXRlZCBhbmQgdGhlIHN0YXRlIGlzIHJlc2V0LiBJbiB0aGUgQXBwIFJvdXRlciBtb2RlbCwgc2VhcmNoIHBhcmFtcyBkb1xuICAvLyBub3QgY2F1c2Ugc3RhdGUgdG8gYmUgbG9zdCwgc28gdHdvIHNlZ21lbnRzIHdpdGggdGhlIHNhbWUgc2VnbWVudCBwYXRoIGJ1dFxuICAvLyBkaWZmZXJlbnQgc2VhcmNoIHBhcmFtcyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdGF0ZSBrZXkuXG4gIC8vXG4gIC8vIFRoZSBcImNhY2hlXCIga2V5IG9mIGEgc2VnbWVudCwgaG93ZXZlciwgKmRvZXMqIGluY2x1ZGUgdGhlIHNlYXJjaCBwYXJhbXMsIGlmXG4gIC8vIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgc2VnbWVudCBhY2Nlc3NlZCB0aGUgc2VhcmNoIHBhcmFtcyBvbiB0aGUgc2VydmVyLlxuICAvLyAoVGhpcyBvbmx5IGFwcGxpZXMgdG8gcGFnZSBzZWdtZW50czsgbGF5b3V0IHNlZ21lbnRzIGNhbm5vdCBhY2Nlc3Mgc2VhcmNoXG4gIC8vIHBhcmFtcyBvbiB0aGUgc2VydmVyLilcbiAgY29uc3QgYWN0aXZlVHJlZSA9IHBhcmVudFRyZWVbMV1bcGFyYWxsZWxSb3V0ZXJLZXldXG4gIGNvbnN0IGFjdGl2ZVNlZ21lbnQgPSBhY3RpdmVUcmVlWzBdXG4gIGNvbnN0IGFjdGl2ZVN0YXRlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoYWN0aXZlU2VnbWVudCwgdHJ1ZSkgLy8gbm8gc2VhcmNoIHBhcmFtc1xuXG4gIC8vIEF0IGVhY2ggbGV2ZWwgb2YgdGhlIHJvdXRlIHRyZWUsIG5vdCBvbmx5IGRvIHdlIHJlbmRlciB0aGUgY3VycmVudGx5XG4gIC8vIGFjdGl2ZSBzZWdtZW50IOKAlCB3ZSBhbHNvIHJlbmRlciB0aGUgbGFzdCBOIHNlZ21lbnRzIHRoYXQgd2VyZSBhY3RpdmUgYXRcbiAgLy8gdGhpcyBsZXZlbCBpbnNpZGUgYSBoaWRkZW4gPEFjdGl2aXR5PiBib3VuZGFyeSwgdG8gcHJlc2VydmUgdGhlaXIgc3RhdGVcbiAgLy8gaWYgb3Igd2hlbiB0aGUgdXNlciBuYXZpZ2F0ZXMgdG8gdGhlbSBhZ2Fpbi5cbiAgLy9cbiAgLy8gYmZjYWNoZUVudHJ5IGlzIGEgbGlua2VkIGxpc3Qgb2YgRmxpZ2h0Um91dGVyU3RhdGVzLlxuICBsZXQgYmZjYWNoZUVudHJ5OiBSb3V0ZXJCRkNhY2hlRW50cnkgfCBudWxsID0gdXNlUm91dGVyQkZDYWNoZShcbiAgICBhY3RpdmVUcmVlLFxuICAgIGFjdGl2ZVN0YXRlS2V5XG4gIClcbiAgbGV0IGNoaWxkcmVuOiBBcnJheTxSZWFjdC5SZWFjdE5vZGU+ID0gW11cbiAgZG8ge1xuICAgIGNvbnN0IHRyZWUgPSBiZmNhY2hlRW50cnkudHJlZVxuICAgIGNvbnN0IHN0YXRlS2V5ID0gYmZjYWNoZUVudHJ5LnN0YXRlS2V5XG4gICAgY29uc3Qgc2VnbWVudCA9IHRyZWVbMF1cbiAgICBjb25zdCBjYWNoZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnQpXG5cbiAgICAvLyBSZWFkIHNlZ21lbnQgcGF0aCBmcm9tIHRoZSBwYXJhbGxlbCByb3V0ZXIgY2FjaGUgbm9kZS5cbiAgICBsZXQgY2FjaGVOb2RlID0gc2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpXG4gICAgaWYgKGNhY2hlTm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBXaGVuIGRhdGEgaXMgbm90IGF2YWlsYWJsZSBkdXJpbmcgcmVuZGVyaW5nIGNsaWVudC1zaWRlIHdlIG5lZWQgdG8gZmV0Y2hcbiAgICAgIC8vIGl0IGZyb20gdGhlIHNlcnZlci5cbiAgICAgIGNvbnN0IG5ld0xhenlDYWNoZU5vZGU6IExhenlDYWNoZU5vZGUgPSB7XG4gICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICByc2M6IG51bGwsXG4gICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICBoZWFkOiBudWxsLFxuICAgICAgICBwcmVmZXRjaEhlYWQ6IG51bGwsXG4gICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKCksXG4gICAgICAgIGxvYWRpbmc6IG51bGwsXG4gICAgICAgIG5hdmlnYXRlZEF0OiAtMSxcbiAgICAgIH1cblxuICAgICAgLy8gRmxpZ2h0IGRhdGEgZmV0Y2gga2lja2VkIG9mZiBkdXJpbmcgcmVuZGVyIGFuZCBwdXQgaW50byB0aGUgY2FjaGUuXG4gICAgICBjYWNoZU5vZGUgPSBuZXdMYXp5Q2FjaGVOb2RlXG4gICAgICBzZWdtZW50TWFwLnNldChjYWNoZUtleSwgbmV3TGF6eUNhY2hlTm9kZSlcbiAgICB9XG5cbiAgICAvKlxuICAgIC0gRXJyb3IgYm91bmRhcnlcbiAgICAgIC0gT25seSByZW5kZXJzIGVycm9yIGJvdW5kYXJ5IGlmIGVycm9yIGNvbXBvbmVudCBpcyBwcm92aWRlZC5cbiAgICAgIC0gUmVuZGVyZWQgZm9yIGVhY2ggc2VnbWVudCB0byBlbnN1cmUgdGhleSBoYXZlIHRoZWlyIG93biBlcnJvciBzdGF0ZS5cbiAgICAgIC0gV2hlbiBncmFjZWZ1bGx5IGRlZ3JhZGUgZm9yIGJvdHMsIHNraXAgcmVuZGVyaW5nIGVycm9yIGJvdW5kYXJ5LlxuICAgIC0gTG9hZGluZyBib3VuZGFyeVxuICAgICAgLSBPbmx5IHJlbmRlcnMgc3VzcGVuc2UgYm91bmRhcnkgaWYgbG9hZGluZyBjb21wb25lbnRzIGlzIHByb3ZpZGVkLlxuICAgICAgLSBSZW5kZXJlZCBmb3IgZWFjaCBzZWdtZW50IHRvIGVuc3VyZSB0aGV5IGhhdmUgdGhlaXIgb3duIGxvYWRpbmcgc3RhdGUuXG4gICAgICAtIFBhc3NlZCB0byB0aGUgcm91dGVyIGR1cmluZyByZW5kZXJpbmcgdG8gZW5zdXJlIGl0IGNhbiBiZSBpbW1lZGlhdGVseSByZW5kZXJlZCB3aGVuIHN1c3BlbmRpbmcgb24gYSBGbGlnaHQgZmV0Y2guXG4gICovXG5cbiAgICBsZXQgc2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGU6IFJlYWN0LlJlYWN0Tm9kZSA9IG51bGxcbiAgICBsZXQgc2VnbWVudFZpZXdTdGF0ZU5vZGU6IFJlYWN0LlJlYWN0Tm9kZSA9IG51bGxcbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICBwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSXG4gICAgKSB7XG4gICAgICBjb25zdCB7IFNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlLCBTZWdtZW50Vmlld1N0YXRlTm9kZSB9ID1cbiAgICAgICAgcmVxdWlyZSgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZScpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUnKVxuXG4gICAgICBjb25zdCBwYWdlUHJlZml4ID0gbm9ybWFsaXplQXBwUGF0aCh1cmwpXG4gICAgICBzZWdtZW50Vmlld1N0YXRlTm9kZSA9IChcbiAgICAgICAgPFNlZ21lbnRWaWV3U3RhdGVOb2RlIGtleT17cGFnZVByZWZpeH0gcGFnZT17cGFnZVByZWZpeH0gLz5cbiAgICAgIClcblxuICAgICAgc2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUgPSAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlIC8+XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRPRE86IFRoZSBsb2FkaW5nIG1vZHVsZSBkYXRhIGZvciBhIHNlZ21lbnQgaXMgc3RvcmVkIG9uIHRoZSBwYXJlbnQsIHRoZW5cbiAgICAvLyBhcHBsaWVkIHRvIGVhY2ggb2YgdGhhdCBwYXJlbnQgc2VnbWVudCdzIHBhcmFsbGVsIHJvdXRlIHNsb3RzLiBJbiB0aGVcbiAgICAvLyBzaW1wbGUgY2FzZSB3aGVyZSB0aGVyZSdzIG9ubHkgb25lIHBhcmFsbGVsIHJvdXRlICh0aGUgYGNoaWxkcmVuYCBzbG90KSxcbiAgICAvLyB0aGlzIGlzIG5vIGRpZmZlcmVudCBmcm9tIGlmIHRoZSBsb2FkaW5nIG1vZHVsZSBkYXRhIHdoZXJlIHN0b3JlZCBvbiB0aGVcbiAgICAvLyBjaGlsZCBkaXJlY3RseS4gQnV0IEknbSBub3Qgc3VyZSB0aGlzIGFjdHVhbGx5IG1ha2VzIHNlbnNlIHdoZW4gdGhlcmUgYXJlXG4gICAgLy8gbXVsdGlwbGUgcGFyYWxsZWwgcm91dGVzLiBJdCdzIG5vdCBhIGh1Z2UgaXNzdWUgYmVjYXVzZSB5b3UgYWx3YXlzIGhhdmVcbiAgICAvLyB0aGUgb3B0aW9uIHRvIGRlZmluZSBhIG5hcnJvd2VyIGxvYWRpbmcgYm91bmRhcnkgZm9yIGEgcGFydGljdWxhciBzbG90LiBCdXRcbiAgICAvLyB0aGlzIHNvcnQgb2Ygc21lbGxzIGxpa2UgYW4gaW1wbGVtZW50YXRpb24gYWNjaWRlbnQgdG8gbWUuXG4gICAgY29uc3QgbG9hZGluZ01vZHVsZURhdGEgPSBwYXJlbnRDYWNoZU5vZGUubG9hZGluZ1xuICAgIGxldCBjaGlsZCA9IChcbiAgICAgIDxUZW1wbGF0ZUNvbnRleHQuUHJvdmlkZXJcbiAgICAgICAga2V5PXtzdGF0ZUtleX1cbiAgICAgICAgdmFsdWU9e1xuICAgICAgICAgIDxTY3JvbGxBbmRGb2N1c0hhbmRsZXIgc2VnbWVudFBhdGg9e3NlZ21lbnRQYXRofT5cbiAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5XG4gICAgICAgICAgICAgIGVycm9yQ29tcG9uZW50PXtlcnJvcn1cbiAgICAgICAgICAgICAgZXJyb3JTdHlsZXM9e2Vycm9yU3R5bGVzfVxuICAgICAgICAgICAgICBlcnJvclNjcmlwdHM9e2Vycm9yU2NyaXB0c31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPExvYWRpbmdCb3VuZGFyeSBsb2FkaW5nPXtsb2FkaW5nTW9kdWxlRGF0YX0+XG4gICAgICAgICAgICAgICAgPEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5XG4gICAgICAgICAgICAgICAgICBub3RGb3VuZD17bm90Rm91bmR9XG4gICAgICAgICAgICAgICAgICBmb3JiaWRkZW49e2ZvcmJpZGRlbn1cbiAgICAgICAgICAgICAgICAgIHVuYXV0aG9yaXplZD17dW5hdXRob3JpemVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdEJvdW5kYXJ5PlxuICAgICAgICAgICAgICAgICAgICA8SW5uZXJMYXlvdXRSb3V0ZXJcbiAgICAgICAgICAgICAgICAgICAgICB1cmw9e3VybH1cbiAgICAgICAgICAgICAgICAgICAgICB0cmVlPXt0cmVlfVxuICAgICAgICAgICAgICAgICAgICAgIGNhY2hlTm9kZT17Y2FjaGVOb2RlfVxuICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRQYXRoPXtzZWdtZW50UGF0aH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAge3NlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlfVxuICAgICAgICAgICAgICAgICAgPC9SZWRpcmVjdEJvdW5kYXJ5PlxuICAgICAgICAgICAgICAgIDwvSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk+XG4gICAgICAgICAgICAgIDwvTG9hZGluZ0JvdW5kYXJ5PlxuICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgICAgICAge3NlZ21lbnRWaWV3U3RhdGVOb2RlfVxuICAgICAgICAgIDwvU2Nyb2xsQW5kRm9jdXNIYW5kbGVyPlxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHt0ZW1wbGF0ZVN0eWxlc31cbiAgICAgICAge3RlbXBsYXRlU2NyaXB0c31cbiAgICAgICAge3RlbXBsYXRlfVxuICAgICAgPC9UZW1wbGF0ZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnN0IHsgU2VnbWVudFN0YXRlUHJvdmlkZXIgfSA9XG4gICAgICAgIHJlcXVpcmUoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlJylcblxuICAgICAgY2hpbGQgPSAoXG4gICAgICAgIDxTZWdtZW50U3RhdGVQcm92aWRlciBrZXk9e3N0YXRlS2V5fT5cbiAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAge3NlZ21lbnRWaWV3Qm91bmRhcmllc31cbiAgICAgICAgPC9TZWdtZW50U3RhdGVQcm92aWRlcj5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CRl9DQUNIRSkge1xuICAgICAgY2hpbGQgPSAoXG4gICAgICAgIDxBY3Rpdml0eVxuICAgICAgICAgIGtleT17c3RhdGVLZXl9XG4gICAgICAgICAgbW9kZT17c3RhdGVLZXkgPT09IGFjdGl2ZVN0YXRlS2V5ID8gJ3Zpc2libGUnIDogJ2hpZGRlbid9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgIDwvQWN0aXZpdHk+XG4gICAgICApXG4gICAgfVxuXG4gICAgY2hpbGRyZW4ucHVzaChjaGlsZClcblxuICAgIGJmY2FjaGVFbnRyeSA9IGJmY2FjaGVFbnRyeS5uZXh0XG4gIH0gd2hpbGUgKGJmY2FjaGVFbnRyeSAhPT0gbnVsbClcblxuICByZXR1cm4gY2hpbGRyZW5cbn1cbiJdLCJuYW1lcyI6WyJPdXRlckxheW91dFJvdXRlciIsIkFjdGl2aXR5IiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkZfQ0FDSEUiLCJyZXF1aXJlIiwidW5zdGFibGVfQWN0aXZpdHkiLCJ3YWxrQWRkUmVmZXRjaCIsInNlZ21lbnRQYXRoVG9XYWxrIiwidHJlZVRvUmVjcmVhdGUiLCJzZWdtZW50IiwicGFyYWxsZWxSb3V0ZUtleSIsImlzTGFzdCIsImxlbmd0aCIsIm1hdGNoU2VnbWVudCIsImhhc093blByb3BlcnR5Iiwic3ViVHJlZSIsInVuZGVmaW5lZCIsInNsaWNlIiwiX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFIiwiUmVhY3RET00iLCJmaW5kRE9NTm9kZSIsImluc3RhbmNlIiwid2luZG93IiwiaW50ZXJuYWxfcmVhY3RET01maW5kRE9NTm9kZSIsInJlY3RQcm9wZXJ0aWVzIiwic2hvdWxkU2tpcEVsZW1lbnQiLCJlbGVtZW50IiwiaW5jbHVkZXMiLCJnZXRDb21wdXRlZFN0eWxlIiwicG9zaXRpb24iLCJOT0RFX0VOViIsImNvbnNvbGUiLCJ3YXJuIiwicmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImV2ZXJ5IiwiaXRlbSIsInRvcE9mRWxlbWVudEluVmlld3BvcnQiLCJ2aWV3cG9ydEhlaWdodCIsInRvcCIsImdldEhhc2hGcmFnbWVudERvbU5vZGUiLCJoYXNoRnJhZ21lbnQiLCJkb2N1bWVudCIsImJvZHkiLCJnZXRFbGVtZW50QnlJZCIsImdldEVsZW1lbnRzQnlOYW1lIiwiSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbXBvbmVudERpZE1vdW50IiwiaGFuZGxlUG90ZW50aWFsU2Nyb2xsIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJvcHMiLCJmb2N1c0FuZFNjcm9sbFJlZiIsImFwcGx5IiwicmVuZGVyIiwiY2hpbGRyZW4iLCJzZWdtZW50UGF0aCIsInNlZ21lbnRQYXRocyIsInNvbWUiLCJzY3JvbGxSZWZTZWdtZW50UGF0aCIsImluZGV4IiwiZG9tTm9kZSIsIkVsZW1lbnQiLCJIVE1MRWxlbWVudCIsInBhcmVudEVsZW1lbnQiLCJsb2NhbE5hbWUiLCJuZXh0RWxlbWVudFNpYmxpbmciLCJkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uIiwic2Nyb2xsSW50b1ZpZXciLCJodG1sRWxlbWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudEhlaWdodCIsInNjcm9sbFRvcCIsImRvbnRGb3JjZUxheW91dCIsIm9ubHlIYXNoQ2hhbmdlIiwiZm9jdXMiLCJTY3JvbGxBbmRGb2N1c0hhbmRsZXIiLCJjb250ZXh0IiwidXNlQ29udGV4dCIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJFcnJvciIsIklubmVyTGF5b3V0Um91dGVyIiwidHJlZSIsImNhY2hlTm9kZSIsInVybCIsImZ1bGxUcmVlIiwicmVzb2x2ZWRQcmVmZXRjaFJzYyIsInByZWZldGNoUnNjIiwicnNjIiwidXNlRGVmZXJyZWRWYWx1ZSIsInJlc29sdmVkUnNjIiwidGhlbiIsInVzZSIsImxhenlEYXRhIiwicmVmZXRjaFRyZWUiLCJpbmNsdWRlTmV4dFVybCIsImhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZSIsIm5hdmlnYXRlZEF0IiwiRGF0ZSIsIm5vdyIsImZldGNoU2VydmVyUmVzcG9uc2UiLCJVUkwiLCJsb2NhdGlvbiIsIm9yaWdpbiIsImZsaWdodFJvdXRlclN0YXRlIiwibmV4dFVybCIsInNlcnZlclJlc3BvbnNlIiwic3RhcnRUcmFuc2l0aW9uIiwiZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24iLCJ0eXBlIiwiQUNUSU9OX1NFUlZFUl9QQVRDSCIsInByZXZpb3VzVHJlZSIsInVucmVzb2x2ZWRUaGVuYWJsZSIsInN1YnRyZWUiLCJMYXlvdXRSb3V0ZXJDb250ZXh0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInBhcmVudFRyZWUiLCJwYXJlbnRDYWNoZU5vZGUiLCJwYXJlbnRTZWdtZW50UGF0aCIsIkxvYWRpbmdCb3VuZGFyeSIsImxvYWRpbmciLCJsb2FkaW5nTW9kdWxlRGF0YSIsInByb21pc2VGb3JMb2FkaW5nIiwibG9hZGluZ1JzYyIsImxvYWRpbmdTdHlsZXMiLCJsb2FkaW5nU2NyaXB0cyIsIlN1c3BlbnNlIiwiZmFsbGJhY2siLCJwYXJhbGxlbFJvdXRlcktleSIsImVycm9yIiwiZXJyb3JTdHlsZXMiLCJlcnJvclNjcmlwdHMiLCJ0ZW1wbGF0ZVN0eWxlcyIsInRlbXBsYXRlU2NyaXB0cyIsInRlbXBsYXRlIiwibm90Rm91bmQiLCJmb3JiaWRkZW4iLCJ1bmF1dGhvcml6ZWQiLCJzZWdtZW50Vmlld0JvdW5kYXJpZXMiLCJwYXJlbnRQYXJhbGxlbFJvdXRlcyIsInBhcmFsbGVsUm91dGVzIiwic2VnbWVudE1hcCIsImdldCIsIk1hcCIsInNldCIsInBhcmVudFRyZWVTZWdtZW50IiwiY29uY2F0IiwiYWN0aXZlVHJlZSIsImFjdGl2ZVNlZ21lbnQiLCJhY3RpdmVTdGF0ZUtleSIsImNyZWF0ZVJvdXRlckNhY2hlS2V5IiwiYmZjYWNoZUVudHJ5IiwidXNlUm91dGVyQkZDYWNoZSIsInN0YXRlS2V5IiwiY2FjaGVLZXkiLCJuZXdMYXp5Q2FjaGVOb2RlIiwiaGVhZCIsInByZWZldGNoSGVhZCIsInNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlIiwic2VnbWVudFZpZXdTdGF0ZU5vZGUiLCJfX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSIiwiU2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUiLCJTZWdtZW50Vmlld1N0YXRlTm9kZSIsInBhZ2VQcmVmaXgiLCJub3JtYWxpemVBcHBQYXRoIiwicGFnZSIsImNoaWxkIiwiVGVtcGxhdGVDb250ZXh0IiwiRXJyb3JCb3VuZGFyeSIsImVycm9yQ29tcG9uZW50IiwiSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkiLCJSZWRpcmVjdEJvdW5kYXJ5IiwiU2VnbWVudFN0YXRlUHJvdmlkZXIiLCJtb2RlIiwicHVzaCIsIm5leHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/layout-router.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/match-segments.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/components/match-segments.js ***! \********************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"matchSegment\", ({\n enumerable: true,\n get: function() {\n return matchSegment;\n }\n}));\nconst matchSegment = (existingSegment, segment)=>{\n // segment is either Array or string\n if (typeof existingSegment === 'string') {\n if (typeof segment === 'string') {\n // Common case: segment is just a string\n return existingSegment === segment;\n }\n return false;\n }\n if (typeof segment === 'string') {\n return false;\n }\n return existingSegment[0] === segment[0] && existingSegment[1] === segment[1];\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=match-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21hdGNoLXNlZ21lbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLGVBQWUsQ0FDMUJDLGlCQUNBQztJQUVBLG9DQUFvQztJQUNwQyxJQUFJLE9BQU9ELG9CQUFvQixVQUFVO1FBQ3ZDLElBQUksT0FBT0MsWUFBWSxVQUFVO1lBQy9CLHdDQUF3QztZQUN4QyxPQUFPRCxvQkFBb0JDO1FBQzdCO1FBQ0EsT0FBTztJQUNUO0lBRUEsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsT0FBTztJQUNUO0lBQ0EsT0FBT0QsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUUsSUFBSUQsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUU7QUFDL0UiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9tYXRjaC1zZWdtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGNvbnN0IG1hdGNoU2VnbWVudCA9IChcbiAgZXhpc3RpbmdTZWdtZW50OiBTZWdtZW50LFxuICBzZWdtZW50OiBTZWdtZW50XG4pOiBib29sZWFuID0+IHtcbiAgLy8gc2VnbWVudCBpcyBlaXRoZXIgQXJyYXkgb3Igc3RyaW5nXG4gIGlmICh0eXBlb2YgZXhpc3RpbmdTZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIENvbW1vbiBjYXNlOiBzZWdtZW50IGlzIGp1c3QgYSBzdHJpbmdcbiAgICAgIHJldHVybiBleGlzdGluZ1NlZ21lbnQgPT09IHNlZ21lbnRcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGV4aXN0aW5nU2VnbWVudFswXSA9PT0gc2VnbWVudFswXSAmJiBleGlzdGluZ1NlZ21lbnRbMV0gPT09IHNlZ21lbnRbMV1cbn1cbiJdLCJuYW1lcyI6WyJtYXRjaFNlZ21lbnQiLCJleGlzdGluZ1NlZ21lbnQiLCJzZWdtZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/match-segments.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/client/components/metadata/async-metadata.js ***! \*****************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AsyncMetadataOutlet\", ({\n enumerable: true,\n get: function() {\n return AsyncMetadataOutlet;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nfunction MetadataOutlet(param) {\n let { promise } = param;\n const { error, digest } = (0, _react.use)(promise);\n if (error) {\n if (digest) {\n // The error will lose its original digest after passing from server layer to client layer;\n // We recover the digest property here to override the React created one if original digest exists.\n ;\n error.digest = digest;\n }\n throw error;\n }\n return null;\n}\nfunction AsyncMetadataOutlet(param) {\n let { promise } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: null,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataOutlet, {\n promise: promise\n })\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=async-metadata.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBc0JnQkE7OztlQUFBQTs7OzttQ0FwQmM7QUFHOUIsU0FBU0MsZUFBZSxLQUl2QjtJQUp1QixNQUN0QkMsT0FBTyxFQUdSLEdBSnVCO0lBS3RCLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsR0FBRyxFQUFDSDtJQUM5QixJQUFJQyxPQUFPO1FBQ1QsSUFBSUMsUUFBUTtZQUNWLDJGQUEyRjtZQUMzRixtR0FBbUc7O1lBQ2pHRCxNQUFjQyxNQUFNLEdBQUdBO1FBQzNCO1FBQ0EsTUFBTUQ7SUFDUjtJQUNBLE9BQU87QUFDVDtBQUVPLFNBQVNILG9CQUFvQixLQUluQztJQUptQyxNQUNsQ0UsT0FBTyxFQUdSLEdBSm1DO0lBS2xDLHFCQUNFLHFCQUFDSSxPQUFBQSxRQUFRO1FBQUNDLFVBQVU7a0JBQ2xCLG1DQUFDTixnQkFBQUE7WUFBZUMsU0FBU0E7OztBQUcvQiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgU3VzcGVuc2UsIHVzZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1pbmdNZXRhZGF0YVJlc29sdmVkU3RhdGUgfSBmcm9tICcuL3R5cGVzJ1xuXG5mdW5jdGlvbiBNZXRhZGF0YU91dGxldCh7XG4gIHByb21pc2UsXG59OiB7XG4gIHByb21pc2U6IFByb21pc2U8U3RyZWFtaW5nTWV0YWRhdGFSZXNvbHZlZFN0YXRlPlxufSkge1xuICBjb25zdCB7IGVycm9yLCBkaWdlc3QgfSA9IHVzZShwcm9taXNlKVxuICBpZiAoZXJyb3IpIHtcbiAgICBpZiAoZGlnZXN0KSB7XG4gICAgICAvLyBUaGUgZXJyb3Igd2lsbCBsb3NlIGl0cyBvcmlnaW5hbCBkaWdlc3QgYWZ0ZXIgcGFzc2luZyBmcm9tIHNlcnZlciBsYXllciB0byBjbGllbnQgbGF5ZXLvvJtcbiAgICAgIC8vIFdlIHJlY292ZXIgdGhlIGRpZ2VzdCBwcm9wZXJ0eSBoZXJlIHRvIG92ZXJyaWRlIHRoZSBSZWFjdCBjcmVhdGVkIG9uZSBpZiBvcmlnaW5hbCBkaWdlc3QgZXhpc3RzLlxuICAgICAgOyhlcnJvciBhcyBhbnkpLmRpZ2VzdCA9IGRpZ2VzdFxuICAgIH1cbiAgICB0aHJvdyBlcnJvclxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBc3luY01ldGFkYXRhT3V0bGV0KHtcbiAgcHJvbWlzZSxcbn06IHtcbiAgcHJvbWlzZTogUHJvbWlzZTxTdHJlYW1pbmdNZXRhZGF0YVJlc29sdmVkU3RhdGU+XG59KSB7XG4gIHJldHVybiAoXG4gICAgPFN1c3BlbnNlIGZhbGxiYWNrPXtudWxsfT5cbiAgICAgIDxNZXRhZGF0YU91dGxldCBwcm9taXNlPXtwcm9taXNlfSAvPlxuICAgIDwvU3VzcGVuc2U+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJBc3luY01ldGFkYXRhT3V0bGV0IiwiTWV0YWRhdGFPdXRsZXQiLCJwcm9taXNlIiwiZXJyb3IiLCJkaWdlc3QiLCJ1c2UiLCJTdXNwZW5zZSIsImZhbGxiYWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/client/components/nav-failure-handler.js ***! \*************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n handleHardNavError: function() {\n return handleHardNavError;\n },\n useNavFailureHandler: function() {\n return useNavFailureHandler;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _createhreffromurl = __webpack_require__(/*! ./router-reducer/create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nfunction handleHardNavError(error) {\n if (error && \"undefined\" !== 'undefined' && 0 && 0) {}\n return false;\n}\nfunction useNavFailureHandler() {\n if (false) {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=nav-failure-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdi1mYWlsdXJlLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2dCQSxrQkFBa0I7ZUFBbEJBOztJQWtCQUMsb0JBQW9CO2VBQXBCQTs7O21DQXJCVTsrQ0FDUTtBQUUzQixTQUFTRCxtQkFBbUJFLEtBQWM7SUFDL0MsSUFDRUEsU0FDQSxPQUFPQyxTQUFXLGVBQ2xCQSxDQUF3QixJQUN4QkcsQ0FDNkMsRUFDN0MsRUFPRDtJQUNELE9BQU87QUFDVDtBQUVPLFNBQVNMO0lBQ2QsSUFBSVcsS0FBd0MsRUFBRSxFQXVCN0M7QUFDSCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL25hdi1mYWlsdXJlLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvY3JlYXRlLWhyZWYtZnJvbS11cmwnXG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVIYXJkTmF2RXJyb3IoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIGVycm9yICYmXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwgJiZcbiAgICBjcmVhdGVIcmVmRnJvbVVybChuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkgIT09XG4gICAgICBjcmVhdGVIcmVmRnJvbVVybCh3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwpXG4gICkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgRXJyb3Igb2NjdXJyZWQgZHVyaW5nIG5hdmlnYXRpb24sIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb25gLFxuICAgICAgZXJyb3JcbiAgICApXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwudG9TdHJpbmcoKVxuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VOYXZGYWlsdXJlSGFuZGxlcigpIHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9BUFBfTkFWX0ZBSUxfSEFORExJTkcpIHtcbiAgICAvLyB0aGlzIGlmIGlzIG9ubHkgZm9yIERDRSBvZiB0aGUgZmVhdHVyZSBmbGFnIG5vdCBjb25kaXRpb25hbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIgPSAoXG4gICAgICAgIGV2dDogRXJyb3JFdmVudCB8IFByb21pc2VSZWplY3Rpb25FdmVudFxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gJ3JlYXNvbicgaW4gZXZ0ID8gZXZ0LnJlYXNvbiA6IGV2dC5lcnJvclxuICAgICAgICAvLyBpZiB3ZSBoYXZlIGFuIHVuaGFuZGxlZCBleGNlcHRpb24vcmVqZWN0aW9uIGR1cmluZ1xuICAgICAgICAvLyBhIG5hdmlnYXRpb24gd2UgZmFsbCBiYWNrIHRvIGEgaGFyZCBuYXZpZ2F0aW9uIHRvXG4gICAgICAgIC8vIGF0dGVtcHQgcmVjb3ZlcmluZyB0byBhIGdvb2Qgc3RhdGVcbiAgICAgICAgaGFuZGxlSGFyZE5hdkVycm9yKGVycm9yKVxuICAgICAgfVxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFuZGxlZHJlamVjdGlvbicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgJ3VuaGFuZGxlZHJlamVjdGlvbicsXG4gICAgICAgICAgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9LCBbXSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZUhhcmROYXZFcnJvciIsInVzZU5hdkZhaWx1cmVIYW5kbGVyIiwiZXJyb3IiLCJ3aW5kb3ciLCJuZXh0IiwiX19wZW5kaW5nVXJsIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJVUkwiLCJsb2NhdGlvbiIsImhyZWYiLCJjb25zb2xlIiwidG9TdHJpbmciLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0FQUF9OQVZfRkFJTF9IQU5ETElORyIsInVzZUVmZmVjdCIsInVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlciIsImV2dCIsInJlYXNvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/navigation-untracked.js ***! \**************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useUntrackedPathname\", ({\n enumerable: true,\n get: function() {\n return useUntrackedPathname;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\n/**\n * This checks to see if the current render has any unknown route parameters.\n * It's used to trigger a different render path in the error boundary.\n *\n * @returns true if there are any unknown route parameters, false otherwise\n */ function hasFallbackRouteParams() {\n if (true) {\n // AsyncLocalStorage should not be included in the client bundle.\n const { workUnitAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (!workUnitStore) return false;\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n const fallbackParams = workUnitStore.fallbackRouteParams;\n return fallbackParams ? fallbackParams.size > 0 : false;\n case 'prerender-legacy':\n case 'request':\n case 'prerender-runtime':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n return false;\n }\n return false;\n}\nfunction useUntrackedPathname() {\n // If there are any unknown route parameters we would typically throw\n // an error, but this internal method allows us to return a null value instead\n // for components that do not propagate the pathname to the static shell (like\n // the error boundary).\n if (hasFallbackRouteParams()) {\n return null;\n }\n // This shouldn't cause any issues related to conditional rendering because\n // the environment will be consistent for the render.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathnameContext);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation-untracked.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24tdW50cmFja2VkLmpzIiwibWFwcGluZ3MiOiI7Ozs7d0RBb0RnQkE7OztlQUFBQTs7O21DQXBEVzs2REFDSztBQUVoQzs7Ozs7Q0FLQyxHQUNELFNBQVNDO0lBQ1AsSUFBSSxJQUE2QixFQUFFO1FBQ2pDLGlFQUFpRTtRQUNqRSxNQUFNLEVBQUVFLG9CQUFvQixFQUFFLEdBQzVCQyxtQkFBT0EsQ0FBQyxvR0FBMEQ7UUFFcEUsTUFBTUMsZ0JBQWdCRixxQkFBcUJHLFFBQVE7UUFDbkQsSUFBSSxDQUFDRCxlQUFlLE9BQU87UUFFM0IsT0FBUUEsY0FBY0UsSUFBSTtZQUN4QixLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7Z0JBQ0gsTUFBTUMsaUJBQWlCSCxjQUFjSSxtQkFBbUI7Z0JBQ3hELE9BQU9ELGlCQUFpQkEsZUFBZUUsSUFBSSxHQUFHLElBQUk7WUFDcEQsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO2dCQUNIO1lBQ0Y7Z0JBQ0VMO1FBQ0o7UUFFQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFhTyxTQUFTTDtJQUNkLHFFQUFxRTtJQUNyRSw4RUFBOEU7SUFDOUUsOEVBQThFO0lBQzlFLHVCQUF1QjtJQUN2QixJQUFJQywwQkFBMEI7UUFDNUIsT0FBTztJQUNUO0lBRUEsMkVBQTJFO0lBQzNFLHFEQUFxRDtJQUNyRCxzREFBc0Q7SUFDdEQsT0FBT1UsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsaUNBQUFBLGVBQWU7QUFDbkMiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uLXVudHJhY2tlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBQYXRobmFtZUNvbnRleHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG4vKipcbiAqIFRoaXMgY2hlY2tzIHRvIHNlZSBpZiB0aGUgY3VycmVudCByZW5kZXIgaGFzIGFueSB1bmtub3duIHJvdXRlIHBhcmFtZXRlcnMuXG4gKiBJdCdzIHVzZWQgdG8gdHJpZ2dlciBhIGRpZmZlcmVudCByZW5kZXIgcGF0aCBpbiB0aGUgZXJyb3IgYm91bmRhcnkuXG4gKlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgYW55IHVua25vd24gcm91dGUgcGFyYW1ldGVycywgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGhhc0ZhbGxiYWNrUm91dGVQYXJhbXMoKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgY29uc3QgeyB3b3JrVW5pdEFzeW5jU3RvcmFnZSB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnKVxuXG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IHdvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgICBpZiAoIXdvcmtVbml0U3RvcmUpIHJldHVybiBmYWxzZVxuXG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtc1xuICAgICAgICByZXR1cm4gZmFsbGJhY2tQYXJhbXMgPyBmYWxsYmFja1BhcmFtcy5zaXplID4gMCA6IGZhbHNlXG4gICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKlxuICogVGhpcyByZXR1cm5zIGEgYG51bGxgIHZhbHVlIGlmIHRoZXJlIGFyZSBhbnkgdW5rbm93biByb3V0ZSBwYXJhbWV0ZXJzLCBhbmRcbiAqIG90aGVyd2lzZSByZXR1cm5zIHRoZSBwYXRobmFtZSBmcm9tIHRoZSBjb250ZXh0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvXG4gKiBgdXNlUGF0aG5hbWVgIHRoYXQgaXMgdXNlZCBpbiB0aGUgZXJyb3IgYm91bmRhcnkgdG8gYXZvaWQgcmVuZGVyaW5nIHRoZVxuICogZXJyb3IgYm91bmRhcnkgd2hlbiB0aGVyZSBhcmUgdW5rbm93biByb3V0ZSBwYXJhbWV0ZXJzLiBUaGlzIGRvZXNuJ3QgdGhyb3dcbiAqIHdoZW4gYWNjZXNzZWQgd2l0aCB1bmtub3duIHJvdXRlIHBhcmFtZXRlcnMuXG4gKlxuICogQHJldHVybnNcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVudHJhY2tlZFBhdGhuYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAvLyBJZiB0aGVyZSBhcmUgYW55IHVua25vd24gcm91dGUgcGFyYW1ldGVycyB3ZSB3b3VsZCB0eXBpY2FsbHkgdGhyb3dcbiAgLy8gYW4gZXJyb3IsIGJ1dCB0aGlzIGludGVybmFsIG1ldGhvZCBhbGxvd3MgdXMgdG8gcmV0dXJuIGEgbnVsbCB2YWx1ZSBpbnN0ZWFkXG4gIC8vIGZvciBjb21wb25lbnRzIHRoYXQgZG8gbm90IHByb3BhZ2F0ZSB0aGUgcGF0aG5hbWUgdG8gdGhlIHN0YXRpYyBzaGVsbCAobGlrZVxuICAvLyB0aGUgZXJyb3IgYm91bmRhcnkpLlxuICBpZiAoaGFzRmFsbGJhY2tSb3V0ZVBhcmFtcygpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBpc3N1ZXMgcmVsYXRlZCB0byBjb25kaXRpb25hbCByZW5kZXJpbmcgYmVjYXVzZVxuICAvLyB0aGUgZW52aXJvbm1lbnQgd2lsbCBiZSBjb25zaXN0ZW50IGZvciB0aGUgcmVuZGVyLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgcmV0dXJuIHVzZUNvbnRleHQoUGF0aG5hbWVDb250ZXh0KVxufVxuIl0sIm5hbWVzIjpbInVzZVVudHJhY2tlZFBhdGhuYW1lIiwiaGFzRmFsbGJhY2tSb3V0ZVBhcmFtcyIsIndpbmRvdyIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwicmVxdWlyZSIsIndvcmtVbml0U3RvcmUiLCJnZXRTdG9yZSIsInR5cGUiLCJmYWxsYmFja1BhcmFtcyIsImZhbGxiYWNrUm91dGVQYXJhbXMiLCJzaXplIiwidXNlQ29udGV4dCIsIlBhdGhuYW1lQ29udGV4dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/navigation.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/client/components/navigation.js ***! \****************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ReadonlyURLSearchParams: function() {\n return _navigationreactserver.ReadonlyURLSearchParams;\n },\n RedirectType: function() {\n return _navigationreactserver.RedirectType;\n },\n ServerInsertedHTMLContext: function() {\n return _serverinsertedhtmlsharedruntime.ServerInsertedHTMLContext;\n },\n forbidden: function() {\n return _navigationreactserver.forbidden;\n },\n notFound: function() {\n return _navigationreactserver.notFound;\n },\n permanentRedirect: function() {\n return _navigationreactserver.permanentRedirect;\n },\n redirect: function() {\n return _navigationreactserver.redirect;\n },\n unauthorized: function() {\n return _navigationreactserver.unauthorized;\n },\n unstable_isUnrecognizedActionError: function() {\n return _unrecognizedactionerror.unstable_isUnrecognizedActionError;\n },\n unstable_rethrow: function() {\n return _navigationreactserver.unstable_rethrow;\n },\n useParams: function() {\n return useParams;\n },\n usePathname: function() {\n return usePathname;\n },\n useRouter: function() {\n return useRouter;\n },\n useSearchParams: function() {\n return useSearchParams;\n },\n useSelectedLayoutSegment: function() {\n return useSelectedLayoutSegment;\n },\n useSelectedLayoutSegments: function() {\n return useSelectedLayoutSegments;\n },\n useServerInsertedHTML: function() {\n return _serverinsertedhtmlsharedruntime.useServerInsertedHTML;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\nconst _getsegmentvalue = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _navigationreactserver = __webpack_require__(/*! ./navigation.react-server */ \"(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js\");\nconst _serverinsertedhtmlsharedruntime = __webpack_require__(/*! ../../shared/lib/server-inserted-html.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js\");\nconst _unrecognizedactionerror = __webpack_require__(/*! ./unrecognized-action-error */ \"(ssr)/./node_modules/next/dist/client/components/unrecognized-action-error.js\");\nconst useDynamicRouteParams = true ? (__webpack_require__(/*! ../../server/app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\").useDynamicRouteParams) : 0;\nfunction useSearchParams() {\n const searchParams = (0, _react.useContext)(_hooksclientcontextsharedruntime.SearchParamsContext);\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = (0, _react.useMemo)(()=>{\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null;\n }\n return new _navigationreactserver.ReadonlyURLSearchParams(searchParams);\n }, [\n searchParams\n ]);\n if (true) {\n // AsyncLocalStorage should not be included in the client bundle.\n const { bailoutToClientRendering } = __webpack_require__(/*! ./bailout-to-client-rendering */ \"(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js\");\n // TODO-APP: handle dynamic = 'force-static' here and on the client\n bailoutToClientRendering('useSearchParams()');\n }\n return readonlySearchParams;\n}\nfunction usePathname() {\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('usePathname()');\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathnameContext);\n}\nfunction useRouter() {\n const router = (0, _react.useContext)(_approutercontextsharedruntime.AppRouterContext);\n if (router === null) {\n throw Object.defineProperty(new Error('invariant expected app router to be mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E238\",\n enumerable: false,\n configurable: true\n });\n }\n return router;\n}\nfunction useParams() {\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useParams()');\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathParamsContext);\n}\n/** Get the canonical parameters from the current level to the leaf node. */ // Client components API\nfunction getSelectedLayoutSegmentPath(tree, parallelRouteKey, first, segmentPath) {\n if (first === void 0) first = true;\n if (segmentPath === void 0) segmentPath = [];\n let node;\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey];\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1];\n var _parallelRoutes_children;\n node = (_parallelRoutes_children = parallelRoutes.children) != null ? _parallelRoutes_children : Object.values(parallelRoutes)[0];\n }\n if (!node) return segmentPath;\n const segment = node[0];\n let segmentValue = (0, _getsegmentvalue.getSegmentValue)(segment);\n if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n return segmentPath;\n }\n segmentPath.push(segmentValue);\n return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath);\n}\nfunction useSelectedLayoutSegments(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = 'children';\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useSelectedLayoutSegments()');\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n // @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts\n if (!context) return null;\n return getSelectedLayoutSegmentPath(context.parentTree, parallelRouteKey);\n}\nfunction useSelectedLayoutSegment(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = 'children';\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useSelectedLayoutSegment()');\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);\n if (!selectedLayoutSegments || selectedLayoutSegments.length === 0) {\n return null;\n }\n const selectedLayoutSegment = parallelRouteKey === 'children' ? selectedLayoutSegments[0] : selectedLayoutSegments[selectedLayoutSegments.length - 1];\n // if the default slot is showing, we return null since it's not technically \"selected\" (it's a fallback)\n // and returning an internal value like `__DEFAULT__` would be confusing.\n return selectedLayoutSegment === _segment.DEFAULT_SEGMENT_KEY ? null : selectedLayoutSegment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNFJFQSx1QkFBdUI7ZUFBdkJBLHVCQUFBQSx1QkFBdUI7O0lBRHZCQyxZQUFZO2VBQVpBLHVCQUFBQSxZQUFZOztJQXRMWkMseUJBQXlCO2VBQXpCQSxpQ0FBQUEseUJBQXlCOztJQWtMekJDLFNBQVM7ZUFBVEEsdUJBQUFBLFNBQVM7O0lBRFRDLFFBQVE7ZUFBUkEsdUJBQUFBLFFBQVE7O0lBSVJDLGlCQUFpQjtlQUFqQkEsdUJBQUFBLGlCQUFpQjs7SUFEakJDLFFBQVE7ZUFBUkEsdUJBQUFBLFFBQVE7O0lBRFJDLFlBQVk7ZUFBWkEsdUJBQUFBLFlBQVk7O0lBTkxDLGtDQUFrQztlQUFsQ0EseUJBQUFBLGtDQUFrQzs7SUFXekNDLGdCQUFnQjtlQUFoQkEsdUJBQUFBLGdCQUFnQjs7SUF0SUZDLFNBQVM7ZUFBVEE7O0lBNURBQyxXQUFXO2VBQVhBOztJQWlDQUMsU0FBUztlQUFUQTs7SUE5RUFDLGVBQWU7ZUFBZkE7O0lBNk1BQyx3QkFBd0I7ZUFBeEJBOztJQS9CQUMseUJBQXlCO2VBQXpCQTs7SUF0SGRDLHFCQUFxQjtlQUFyQkEsaUNBQUFBLHFCQUFxQjs7O21DQW5HYTsyREFLN0I7NkRBS0E7NkNBQ3lCO3FDQUNzQjttREFDZDs2REF1RmpDO3FEQTJLNEM7QUFoUW5ELE1BQU1DLHdCQUNKLEtBQTZCLEdBRXZCRSxxS0FDcUIsR0FDdkJDLENBQVNBO0FBdUJSLFNBQVNQO0lBQ2QsTUFBTVEsZUFBZUMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsaUNBQUFBLG1CQUFtQjtJQUVuRCw4REFBOEQ7SUFDOUQsMEVBQTBFO0lBQzFFLGtCQUFrQjtJQUNsQixNQUFNQyx1QkFBdUJDLENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQVE7UUFDbkMsSUFBSSxDQUFDSixjQUFjO1lBQ2pCLHlFQUF5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QUFxQixhQUNqQmlCLHNCQUFzQixDQUFDLEVBQUUsR0FDekJBLHNCQUFzQixDQUFDQSx1QkFBdUJDLE1BQU0sR0FBRyxFQUFFO0lBRS9ELHlHQUF5RztJQUN6Ryx5RUFBeUU7SUFDekUsT0FBT0MsMEJBQTBCQyxTQUFBQSxtQkFBbUIsR0FDaEQsT0FDQUQ7QUFDTiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIEFwcFJvdXRlckNvbnRleHQsXG4gIExheW91dFJvdXRlckNvbnRleHQsXG4gIHR5cGUgQXBwUm91dGVySW5zdGFuY2UsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHtcbiAgU2VhcmNoUGFyYW1zQ29udGV4dCxcbiAgUGF0aG5hbWVDb250ZXh0LFxuICBQYXRoUGFyYW1zQ29udGV4dCxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGdldFNlZ21lbnRWYWx1ZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUnXG5pbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZLCBERUZBVUxUX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuaW1wb3J0IHsgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMgfSBmcm9tICcuL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyJ1xuXG5jb25zdCB1c2VEeW5hbWljUm91dGVQYXJhbXMgPVxuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuICAgID8gKFxuICAgICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nJylcbiAgICAgICkudXNlRHluYW1pY1JvdXRlUGFyYW1zXG4gICAgOiB1bmRlZmluZWRcblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgKnJlYWQqIHRoZSBjdXJyZW50IFVSTCdzIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICpcbiAqIExlYXJuIG1vcmUgYWJvdXQgW2BVUkxTZWFyY2hQYXJhbXNgIG9uIE1ETl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1VSTFNlYXJjaFBhcmFtcylcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFnZSgpIHtcbiAqICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gdXNlU2VhcmNoUGFyYW1zKClcbiAqICAgc2VhcmNoUGFyYW1zLmdldCgnZm9vJykgLy8gcmV0dXJucyAnYmFyJyB3aGVuID9mb289YmFyXG4gKiAgIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlU2VhcmNoUGFyYW1zYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWFyY2hQYXJhbXMoKTogUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VDb250ZXh0KFNlYXJjaFBhcmFtc0NvbnRleHQpXG5cbiAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW5cbiAgLy8gYG5leHQtZW52LmQudHNgIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG9cbiAgLy8gaW5jbHVkZSBgbnVsbGAuXG4gIGNvbnN0IHJlYWRvbmx5U2VhcmNoUGFyYW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzZWFyY2hQYXJhbXMpIHtcbiAgICAgIC8vIFdoZW4gdGhlIHJvdXRlciBpcyBub3QgcmVhZHkgaW4gcGFnZXMsIHdlIHdvbid0IGhhdmUgdGhlIHNlYXJjaCBwYXJhbXNcbiAgICAgIC8vIGF2YWlsYWJsZS5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyhzZWFyY2hQYXJhbXMpXG4gIH0sIFtzZWFyY2hQYXJhbXNdKSBhcyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc1xuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgY29uc3QgeyBiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmcgfSA9XG4gICAgICByZXF1aXJlKCcuL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZycpIGFzIHR5cGVvZiBpbXBvcnQoJy4vYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nJylcbiAgICAvLyBUT0RPLUFQUDogaGFuZGxlIGR5bmFtaWMgPSAnZm9yY2Utc3RhdGljJyBoZXJlIGFuZCBvbiB0aGUgY2xpZW50XG4gICAgYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nKCd1c2VTZWFyY2hQYXJhbXMoKScpXG4gIH1cblxuICByZXR1cm4gcmVhZG9ubHlTZWFyY2hQYXJhbXNcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCB0aGUgY3VycmVudCBVUkwncyBwYXRobmFtZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VQYXRobmFtZSB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICogIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKSAvLyByZXR1cm5zIFwiL2Rhc2hib2FyZFwiIG9uIC9kYXNoYm9hcmQ/Zm9vPWJhclxuICogIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlUGF0aG5hbWVgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXBhdGhuYW1lKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VQYXRobmFtZSgpOiBzdHJpbmcge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlUGF0aG5hbWUoKScpXG5cbiAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW4gYG5leHQtZW52LmQudHNgXG4gIC8vIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG8gaW5jbHVkZSBgbnVsbGAuXG4gIHJldHVybiB1c2VDb250ZXh0KFBhdGhuYW1lQ29udGV4dCkgYXMgc3RyaW5nXG59XG5cbi8vIENsaWVudCBjb21wb25lbnRzIEFQSVxuZXhwb3J0IHtcbiAgU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCxcbiAgdXNlU2VydmVySW5zZXJ0ZWRIVE1MLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3NlcnZlci1pbnNlcnRlZC1odG1sLnNoYXJlZC1ydW50aW1lJ1xuXG4vKipcbiAqXG4gKiBUaGlzIGhvb2sgYWxsb3dzIHlvdSB0byBwcm9ncmFtbWF0aWNhbGx5IGNoYW5nZSByb3V0ZXMgaW5zaWRlIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogXCJ1c2UgY2xpZW50XCJcbiAqIGltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICogIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG4gKiAgLy8gLi4uXG4gKiAgcm91dGVyLnB1c2goJy9kYXNoYm9hcmQnKSAvLyBOYXZpZ2F0ZSB0byAvZGFzaGJvYXJkXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VSb3V0ZXJgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXJvdXRlcilcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlUm91dGVyKCk6IEFwcFJvdXRlckluc3RhbmNlIHtcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChBcHBSb3V0ZXJDb250ZXh0KVxuICBpZiAocm91dGVyID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgZXhwZWN0ZWQgYXBwIHJvdXRlciB0byBiZSBtb3VudGVkJylcbiAgfVxuXG4gIHJldHVybiByb3V0ZXJcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCBhIHJvdXRlJ3MgZHluYW1pYyBwYXJhbXMgZmlsbGVkIGluIGJ5IHRoZSBjdXJyZW50IFVSTC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFnZSgpIHtcbiAqICAgLy8gb24gL2Rhc2hib2FyZC9bdGVhbV0gd2hlcmUgcGF0aG5hbWUgaXMgL2Rhc2hib2FyZC9uZXh0anNcbiAqICAgY29uc3QgeyB0ZWFtIH0gPSB1c2VQYXJhbXMoKSAvLyB0ZWFtID09PSBcIm5leHRqc1wiXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VQYXJhbXNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXBhcmFtcylcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlUGFyYW1zPFQgZXh0ZW5kcyBQYXJhbXMgPSBQYXJhbXM+KCk6IFQge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlUGFyYW1zKCknKVxuXG4gIHJldHVybiB1c2VDb250ZXh0KFBhdGhQYXJhbXNDb250ZXh0KSBhcyBUXG59XG5cbi8qKiBHZXQgdGhlIGNhbm9uaWNhbCBwYXJhbWV0ZXJzIGZyb20gdGhlIGN1cnJlbnQgbGV2ZWwgdG8gdGhlIGxlYWYgbm9kZS4gKi9cbi8vIENsaWVudCBjb21wb25lbnRzIEFQSVxuZnVuY3Rpb24gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aChcbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyxcbiAgZmlyc3QgPSB0cnVlLFxuICBzZWdtZW50UGF0aDogc3RyaW5nW10gPSBbXVxuKTogc3RyaW5nW10ge1xuICBsZXQgbm9kZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgaWYgKGZpcnN0KSB7XG4gICAgLy8gVXNlIHRoZSBwcm92aWRlZCBwYXJhbGxlbCByb3V0ZSBrZXkgb24gdGhlIGZpcnN0IHBhcmFsbGVsIHJvdXRlXG4gICAgbm9kZSA9IHRyZWVbMV1bcGFyYWxsZWxSb3V0ZUtleV1cbiAgfSBlbHNlIHtcbiAgICAvLyBBZnRlciBmaXJzdCBwYXJhbGxlbCByb3V0ZSBwcmVmZXIgY2hpbGRyZW4sIGlmIHRoZXJlJ3Mgbm8gY2hpbGRyZW4gcGljayB0aGUgZmlyc3QgcGFyYWxsZWwgcm91dGUuXG4gICAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSB0cmVlWzFdXG4gICAgbm9kZSA9IHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuID8/IE9iamVjdC52YWx1ZXMocGFyYWxsZWxSb3V0ZXMpWzBdXG4gIH1cblxuICBpZiAoIW5vZGUpIHJldHVybiBzZWdtZW50UGF0aFxuICBjb25zdCBzZWdtZW50ID0gbm9kZVswXVxuXG4gIGxldCBzZWdtZW50VmFsdWUgPSBnZXRTZWdtZW50VmFsdWUoc2VnbWVudClcblxuICBpZiAoIXNlZ21lbnRWYWx1ZSB8fCBzZWdtZW50VmFsdWUuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgIHJldHVybiBzZWdtZW50UGF0aFxuICB9XG5cbiAgc2VnbWVudFBhdGgucHVzaChzZWdtZW50VmFsdWUpXG5cbiAgcmV0dXJuIGdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgoXG4gICAgbm9kZSxcbiAgICBwYXJhbGxlbFJvdXRlS2V5LFxuICAgIGZhbHNlLFxuICAgIHNlZ21lbnRQYXRoXG4gIClcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCB0aGUgYWN0aXZlIHJvdXRlIHNlZ21lbnRzICoqYmVsb3cqKiB0aGUgTGF5b3V0IGl0IGlzIGNhbGxlZCBmcm9tLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogJ3VzZSBjbGllbnQnXG4gKlxuICogaW1wb3J0IHsgdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cyB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFeGFtcGxlQ2xpZW50Q29tcG9uZW50KCkge1xuICogICBjb25zdCBzZWdtZW50cyA9IHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMoKVxuICpcbiAqICAgcmV0dXJuIChcbiAqICAgICA8dWw+XG4gKiAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpbmRleCkgPT4gKFxuICogICAgICAgICA8bGkga2V5PXtpbmRleH0+e3NlZ21lbnR9PC9saT5cbiAqICAgICAgICkpfVxuICogICAgIDwvdWw+XG4gKiAgIClcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlbGVjdGVkLWxheW91dC1zZWdtZW50cylcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cyhcbiAgcGFyYWxsZWxSb3V0ZUtleTogc3RyaW5nID0gJ2NoaWxkcmVuJ1xuKTogc3RyaW5nW10ge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cygpJylcblxuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICAvLyBAdHMtZXhwZWN0LWVycm9yIFRoaXMgb25seSBoYXBwZW5zIGluIGBwYWdlc2AuIFR5cGUgaXMgb3ZlcndyaXR0ZW4gaW4gbmF2aWdhdGlvbi5kLnRzXG4gIGlmICghY29udGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aChjb250ZXh0LnBhcmVudFRyZWUsIHBhcmFsbGVsUm91dGVLZXkpXG59XG5cbi8qKlxuICogQSBbQ2xpZW50IENvbXBvbmVudF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL2NsaWVudC1jb21wb25lbnRzKSBob29rXG4gKiB0aGF0IGxldHMgeW91IHJlYWQgdGhlIGFjdGl2ZSByb3V0ZSBzZWdtZW50ICoqb25lIGxldmVsIGJlbG93KiogdGhlIExheW91dCBpdCBpcyBjYWxsZWQgZnJvbS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqICd1c2UgY2xpZW50J1xuICogaW1wb3J0IHsgdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50IH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEV4YW1wbGVDbGllbnRDb21wb25lbnQoKSB7XG4gKiAgIGNvbnN0IHNlZ21lbnQgPSB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQoKVxuICpcbiAqICAgcmV0dXJuIDxwPkFjdGl2ZSBzZWdtZW50OiB7c2VnbWVudH08L3A+XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlbGVjdGVkLWxheW91dC1zZWdtZW50KVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQoXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyA9ICdjaGlsZHJlbidcbik6IHN0cmluZyB8IG51bGwge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50KCknKVxuXG4gIGNvbnN0IHNlbGVjdGVkTGF5b3V0U2VnbWVudHMgPSB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzKHBhcmFsbGVsUm91dGVLZXkpXG5cbiAgaWYgKCFzZWxlY3RlZExheW91dFNlZ21lbnRzIHx8IHNlbGVjdGVkTGF5b3V0U2VnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkTGF5b3V0U2VnbWVudCA9XG4gICAgcGFyYWxsZWxSb3V0ZUtleSA9PT0gJ2NoaWxkcmVuJ1xuICAgICAgPyBzZWxlY3RlZExheW91dFNlZ21lbnRzWzBdXG4gICAgICA6IHNlbGVjdGVkTGF5b3V0U2VnbWVudHNbc2VsZWN0ZWRMYXlvdXRTZWdtZW50cy5sZW5ndGggLSAxXVxuXG4gIC8vIGlmIHRoZSBkZWZhdWx0IHNsb3QgaXMgc2hvd2luZywgd2UgcmV0dXJuIG51bGwgc2luY2UgaXQncyBub3QgdGVjaG5pY2FsbHkgXCJzZWxlY3RlZFwiIChpdCdzIGEgZmFsbGJhY2spXG4gIC8vIGFuZCByZXR1cm5pbmcgYW4gaW50ZXJuYWwgdmFsdWUgbGlrZSBgX19ERUZBVUxUX19gIHdvdWxkIGJlIGNvbmZ1c2luZy5cbiAgcmV0dXJuIHNlbGVjdGVkTGF5b3V0U2VnbWVudCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWVxuICAgID8gbnVsbFxuICAgIDogc2VsZWN0ZWRMYXlvdXRTZWdtZW50XG59XG5cbmV4cG9ydCB7IHVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3IgfSBmcm9tICcuL3VucmVjb2duaXplZC1hY3Rpb24tZXJyb3InXG5cbi8vIFNoYXJlZCBjb21wb25lbnRzIEFQSXNcbmV4cG9ydCB7XG4gIG5vdEZvdW5kLFxuICBmb3JiaWRkZW4sXG4gIHVuYXV0aG9yaXplZCxcbiAgcmVkaXJlY3QsXG4gIHBlcm1hbmVudFJlZGlyZWN0LFxuICBSZWRpcmVjdFR5cGUsXG4gIFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zLFxuICB1bnN0YWJsZV9yZXRocm93LFxufSBmcm9tICcuL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyJ1xuIl0sIm5hbWVzIjpbIlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIiwiUmVkaXJlY3RUeXBlIiwiU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCIsImZvcmJpZGRlbiIsIm5vdEZvdW5kIiwicGVybWFuZW50UmVkaXJlY3QiLCJyZWRpcmVjdCIsInVuYXV0aG9yaXplZCIsInVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3IiLCJ1bnN0YWJsZV9yZXRocm93IiwidXNlUGFyYW1zIiwidXNlUGF0aG5hbWUiLCJ1c2VSb3V0ZXIiLCJ1c2VTZWFyY2hQYXJhbXMiLCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnQiLCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzIiwidXNlU2VydmVySW5zZXJ0ZWRIVE1MIiwidXNlRHluYW1pY1JvdXRlUGFyYW1zIiwid2luZG93IiwicmVxdWlyZSIsInVuZGVmaW5lZCIsInNlYXJjaFBhcmFtcyIsInVzZUNvbnRleHQiLCJTZWFyY2hQYXJhbXNDb250ZXh0IiwicmVhZG9ubHlTZWFyY2hQYXJhbXMiLCJ1c2VNZW1vIiwiYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nIiwiUGF0aG5hbWVDb250ZXh0Iiwicm91dGVyIiwiQXBwUm91dGVyQ29udGV4dCIsIkVycm9yIiwiUGF0aFBhcmFtc0NvbnRleHQiLCJnZXRTZWxlY3RlZExheW91dFNlZ21lbnRQYXRoIiwidHJlZSIsInBhcmFsbGVsUm91dGVLZXkiLCJmaXJzdCIsInNlZ21lbnRQYXRoIiwibm9kZSIsInBhcmFsbGVsUm91dGVzIiwiY2hpbGRyZW4iLCJPYmplY3QiLCJ2YWx1ZXMiLCJzZWdtZW50Iiwic2VnbWVudFZhbHVlIiwiZ2V0U2VnbWVudFZhbHVlIiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJwdXNoIiwiY29udGV4dCIsIkxheW91dFJvdXRlckNvbnRleHQiLCJwYXJlbnRUcmVlIiwic2VsZWN0ZWRMYXlvdXRTZWdtZW50cyIsImxlbmd0aCIsInNlbGVjdGVkTGF5b3V0U2VnbWVudCIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/client/components/navigation.react-server.js ***! \*****************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/** @internal */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ReadonlyURLSearchParams: function() {\n return ReadonlyURLSearchParams;\n },\n RedirectType: function() {\n return _redirecterror.RedirectType;\n },\n forbidden: function() {\n return _forbidden.forbidden;\n },\n notFound: function() {\n return _notfound.notFound;\n },\n permanentRedirect: function() {\n return _redirect.permanentRedirect;\n },\n redirect: function() {\n return _redirect.redirect;\n },\n unauthorized: function() {\n return _unauthorized.unauthorized;\n },\n unstable_isUnrecognizedActionError: function() {\n return unstable_isUnrecognizedActionError;\n },\n unstable_rethrow: function() {\n return _unstablerethrow.unstable_rethrow;\n }\n});\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst _notfound = __webpack_require__(/*! ./not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst _forbidden = __webpack_require__(/*! ./forbidden */ \"(ssr)/./node_modules/next/dist/client/components/forbidden.js\");\nconst _unauthorized = __webpack_require__(/*! ./unauthorized */ \"(ssr)/./node_modules/next/dist/client/components/unauthorized.js\");\nconst _unstablerethrow = __webpack_require__(/*! ./unstable-rethrow */ \"(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js\");\nclass ReadonlyURLSearchParamsError extends Error {\n constructor(){\n super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams');\n }\n}\nclass ReadonlyURLSearchParams extends URLSearchParams {\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() {\n throw new ReadonlyURLSearchParamsError();\n }\n}\nfunction unstable_isUnrecognizedActionError() {\n throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), \"__NEXT_ERROR_CODE\", {\n value: \"E776\",\n enumerable: false,\n configurable: true\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation.react-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWM7Ozs7Ozs7Ozs7OztJQXdDTEEsdUJBQXVCO2VBQXZCQTs7SUFMQUMsWUFBWTtlQUFaQSxlQUFBQSxZQUFZOztJQUVaQyxTQUFTO2VBQVRBLFdBQUFBLFNBQVM7O0lBRFRDLFFBQVE7ZUFBUkEsVUFBQUEsUUFBUTs7SUFGRUMsaUJBQWlCO2VBQWpCQSxVQUFBQSxpQkFBaUI7O0lBQTNCQyxRQUFRO2VBQVJBLFVBQUFBLFFBQVE7O0lBSVJDLFlBQVk7ZUFBWkEsY0FBQUEsWUFBWTs7SUFWTEMsa0NBQWtDO2VBQWxDQTs7SUFXUEMsZ0JBQWdCO2VBQWhCQSxpQkFBQUEsZ0JBQWdCOzs7c0NBTG1COzJDQUNmO3NDQUNKO3VDQUNDOzBDQUNHOzZDQUNJO0FBdENqQyxNQUFNQyxxQ0FBcUNDO0lBQ3pDQyxhQUFjO1FBQ1osS0FBSyxDQUNIO0lBRUo7QUFDRjtBQUVBLE1BQU1YLGdDQUFnQ1k7SUFDcEMsd0tBQXdLLEdBQ3hLQyxTQUFTO1FBQ1AsTUFBTSxJQUFJSjtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLSyxTQUFTO1FBQ1AsTUFBTSxJQUFJTDtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLTSxNQUFNO1FBQ0osTUFBTSxJQUFJTjtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLTyxPQUFPO1FBQ0wsTUFBTSxJQUFJUDtJQUNaO0FBQ0Y7QUFFTyxTQUFTRjtJQUNkLE1BQU0scUJBRUwsQ0FGSyxJQUFJRyxNQUNSLHlFQURJO2VBQUE7b0JBQUE7c0JBQUE7SUFFTjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvbmF2aWdhdGlvbi5yZWFjdC1zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXG4gICAgICAnTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcydcbiAgICApXG4gIH1cbn1cblxuY2xhc3MgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMgZXh0ZW5kcyBVUkxTZWFyY2hQYXJhbXMge1xuICAvKiogQGRlcHJlY2F0ZWQgTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcyAqL1xuICBhcHBlbmQoKSB7XG4gICAgdGhyb3cgbmV3IFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKVxuICB9XG4gIC8qKiBAZGVwcmVjYXRlZCBNZXRob2QgdW5hdmFpbGFibGUgb24gYFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zYC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlYXJjaC1wYXJhbXMjdXBkYXRpbmctc2VhcmNocGFyYW1zICovXG4gIGRlbGV0ZSgpIHtcbiAgICB0aHJvdyBuZXcgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvcigpXG4gIH1cbiAgLyoqIEBkZXByZWNhdGVkIE1ldGhvZCB1bmF2YWlsYWJsZSBvbiBgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNgLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91c2Utc2VhcmNoLXBhcmFtcyN1cGRhdGluZy1zZWFyY2hwYXJhbXMgKi9cbiAgc2V0KCkge1xuICAgIHRocm93IG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKClcbiAgfVxuICAvKiogQGRlcHJlY2F0ZWQgTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcyAqL1xuICBzb3J0KCkge1xuICAgIHRocm93IG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcigpOiBib29sZWFuIHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdgdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcmAgY2FuIG9ubHkgYmUgdXNlZCBvbiB0aGUgY2xpZW50LidcbiAgKVxufVxuXG5leHBvcnQgeyByZWRpcmVjdCwgcGVybWFuZW50UmVkaXJlY3QgfSBmcm9tICcuL3JlZGlyZWN0J1xuZXhwb3J0IHsgUmVkaXJlY3RUeXBlIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcbmV4cG9ydCB7IG5vdEZvdW5kIH0gZnJvbSAnLi9ub3QtZm91bmQnXG5leHBvcnQgeyBmb3JiaWRkZW4gfSBmcm9tICcuL2ZvcmJpZGRlbidcbmV4cG9ydCB7IHVuYXV0aG9yaXplZCB9IGZyb20gJy4vdW5hdXRob3JpemVkJ1xuZXhwb3J0IHsgdW5zdGFibGVfcmV0aHJvdyB9IGZyb20gJy4vdW5zdGFibGUtcmV0aHJvdydcbmV4cG9ydCB7IFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIH1cbiJdLCJuYW1lcyI6WyJSZWFkb25seVVSTFNlYXJjaFBhcmFtcyIsIlJlZGlyZWN0VHlwZSIsImZvcmJpZGRlbiIsIm5vdEZvdW5kIiwicGVybWFuZW50UmVkaXJlY3QiLCJyZWRpcmVjdCIsInVuYXV0aG9yaXplZCIsInVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3IiLCJ1bnN0YWJsZV9yZXRocm93IiwiUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJkZWxldGUiLCJzZXQiLCJzb3J0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/not-found.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/client/components/not-found.js ***! \***************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"notFound\", ({\n enumerable: true,\n get: function() {\n return notFound;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";404\";\nfunction notFound() {\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQXNCZ0JBOzs7ZUFBQUE7OztnREFuQlQ7QUFFUDs7Ozs7Ozs7Ozs7OztDQWFDLEdBRUQsTUFBTUMsU0FBVSxLQUFFQyxvQkFBQUEsOEJBQThCLEdBQUM7QUFFMUMsU0FBU0Y7SUFDZCw0Q0FBNEM7SUFDNUMsTUFBTUcsUUFBUSxxQkFBaUIsQ0FBakIsSUFBSUMsTUFBTUgsU0FBVjtlQUFBO29CQUFBO3NCQUFBO0lBQWdCO0lBQzVCRSxNQUFrQ0UsTUFBTSxHQUFHSjtJQUU3QyxNQUFNRTtBQUNSIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSxcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVuZGVyIHRoZSBbbm90LWZvdW5kLmpzIGZpbGVdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2ZpbGUtY29udmVudGlvbnMvbm90LWZvdW5kKVxuICogd2l0aGluIGEgcm91dGUgc2VnbWVudCBhcyB3ZWxsIGFzIGluamVjdCBhIHRhZy5cbiAqXG4gKiBgbm90Rm91bmQoKWAgY2FuIGJlIHVzZWQgaW5cbiAqIFtTZXJ2ZXIgQ29tcG9uZW50c10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzKSxcbiAqIFtSb3V0ZSBIYW5kbGVyc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9yb3V0ZS1oYW5kbGVycyksIGFuZFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLlxuICpcbiAqIC0gSW4gYSBTZXJ2ZXIgQ29tcG9uZW50LCB0aGlzIHdpbGwgaW5zZXJ0IGEgYDxtZXRhIG5hbWU9XCJyb2JvdHNcIiBjb250ZW50PVwibm9pbmRleFwiIC8+YCBtZXRhIHRhZyBhbmQgc2V0IHRoZSBzdGF0dXMgY29kZSB0byA0MDQuXG4gKiAtIEluIGEgUm91dGUgSGFuZGxlciBvciBTZXJ2ZXIgQWN0aW9uLCBpdCB3aWxsIHNlcnZlIGEgNDA0IHRvIHRoZSBjYWxsZXIuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgbm90Rm91bmRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvbm90LWZvdW5kKVxuICovXG5cbmNvbnN0IERJR0VTVCA9IGAke0hUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07NDA0YFxuXG5leHBvcnQgZnVuY3Rpb24gbm90Rm91bmQoKTogbmV2ZXIge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihESUdFU1QpIGFzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4gIDsoZXJyb3IgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpLmRpZ2VzdCA9IERJR0VTVFxuXG4gIHRocm93IGVycm9yXG59XG4iXSwibmFtZXMiOlsibm90Rm91bmQiLCJESUdFU1QiLCJIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUiLCJlcnJvciIsIkVycm9yIiwiZGlnZXN0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/not-found.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/client/components/redirect-boundary.js ***! \***********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RedirectBoundary: function() {\n return RedirectBoundary;\n },\n RedirectErrorBoundary: function() {\n return RedirectErrorBoundary;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigation = __webpack_require__(/*! ./navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction HandleRedirect(param) {\n let { redirect, reset, redirectType } = param;\n const router = (0, _navigation.useRouter)();\n (0, _react.useEffect)(()=>{\n _react.default.startTransition(()=>{\n if (redirectType === _redirecterror.RedirectType.push) {\n router.push(redirect, {});\n } else {\n router.replace(redirect, {});\n }\n reset();\n });\n }, [\n redirect,\n redirectType,\n reset,\n router\n ]);\n return null;\n}\nclass RedirectErrorBoundary extends _react.default.Component {\n static getDerivedStateFromError(error) {\n if ((0, _redirecterror.isRedirectError)(error)) {\n const url = (0, _redirect.getURLFromRedirectError)(error);\n const redirectType = (0, _redirect.getRedirectTypeFromError)(error);\n return {\n redirect: url,\n redirectType\n };\n }\n // Re-throw if error is not for redirect\n throw error;\n }\n // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render() {\n const { redirect, redirectType } = this.state;\n if (redirect !== null && redirectType !== null) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(HandleRedirect, {\n redirect: redirect,\n redirectType: redirectType,\n reset: ()=>this.setState({\n redirect: null\n })\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.state = {\n redirect: null,\n redirectType: null\n };\n }\n}\nfunction RedirectBoundary(param) {\n let { children } = param;\n const router = (0, _navigation.useRouter)();\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(RedirectErrorBoundary, {\n router: router,\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXlFZ0JBLGdCQUFnQjtlQUFoQkE7O0lBcENIQyxxQkFBcUI7ZUFBckJBOzs7Ozs2RUFwQ29CO3dDQUVQO3NDQUN3QzsyQ0FDcEI7QUFPOUMsU0FBU0MsZUFBZSxLQVF2QjtJQVJ1QixNQUN0QkMsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLFlBQVksRUFLYixHQVJ1QjtJQVN0QixNQUFNQyxTQUFTQyxDQUFBQSxHQUFBQSxZQUFBQSxTQUFBQTtJQUVmQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1JDLE9BQUFBLE9BQUssQ0FBQ0MsZUFBZSxDQUFDO1lBQ3BCLElBQUlMLGlCQUFpQk0sZUFBQUEsWUFBWSxDQUFDQyxJQUFJLEVBQUU7Z0JBQ3RDTixPQUFPTSxJQUFJLENBQUNULFVBQVUsQ0FBQztZQUN6QixPQUFPO2dCQUNMRyxPQUFPTyxPQUFPLENBQUNWLFVBQVUsQ0FBQztZQUM1QjtZQUNBQztRQUNGO0lBQ0YsR0FBRztRQUFDRDtRQUFVRTtRQUFjRDtRQUFPRTtLQUFPO0lBRTFDLE9BQU87QUFDVDtBQUVPLE1BQU1MLDhCQUE4QlEsT0FBQUEsT0FBSyxDQUFDSyxTQUFTO0lBU3hELE9BQU9DLHlCQUF5QkMsS0FBVSxFQUFFO1FBQzFDLElBQUlDLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCRCxRQUFRO1lBQzFCLE1BQU1FLE1BQU1DLENBQUFBLEdBQUFBLFVBQUFBLHVCQUFBQSxFQUF3Qkg7WUFDcEMsTUFBTVgsZUFBZWUsQ0FBQUEsR0FBQUEsVUFBQUEsd0JBQUFBLEVBQXlCSjtZQUM5QyxPQUFPO2dCQUFFYixVQUFVZTtnQkFBS2I7WUFBYTtRQUN2QztRQUNBLHdDQUF3QztRQUN4QyxNQUFNVztJQUNSO0lBRUEseUlBQXlJO0lBQ3pJSyxTQUEwQjtRQUN4QixNQUFNLEVBQUVsQixRQUFRLEVBQUVFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQ2lCLEtBQUs7UUFDN0MsSUFBSW5CLGFBQWEsUUFBUUUsaUJBQWlCLE1BQU07WUFDOUMscUJBQ0UscUJBQUNILGdCQUFBQTtnQkFDQ0MsVUFBVUE7Z0JBQ1ZFLGNBQWNBO2dCQUNkRCxPQUFPLElBQU0sSUFBSSxDQUFDbUIsUUFBUSxDQUFDO3dCQUFFcEIsVUFBVTtvQkFBSzs7UUFHbEQ7UUFFQSxPQUFPLElBQUksQ0FBQ3FCLEtBQUssQ0FBQ0MsUUFBUTtJQUM1QjtJQTdCQUMsWUFBWUYsS0FBNEIsQ0FBRTtRQUN4QyxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDRixLQUFLLEdBQUc7WUFBRW5CLFVBQVU7WUFBTUUsY0FBYztRQUFLO0lBQ3BEO0FBMkJGO0FBRU8sU0FBU0wsaUJBQWlCLEtBQTJDO0lBQTNDLE1BQUV5QixRQUFRLEVBQWlDLEdBQTNDO0lBQy9CLE1BQU1uQixTQUFTQyxDQUFBQSxHQUFBQSxZQUFBQSxTQUFBQTtJQUNmLHFCQUNFLHFCQUFDTix1QkFBQUE7UUFBc0JLLFFBQVFBO2tCQUFTbUI7O0FBRTVDIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QtYm91bmRhcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBcHBSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAnLi9uYXZpZ2F0aW9uJ1xuaW1wb3J0IHsgZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yLCBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvciB9IGZyb20gJy4vcmVkaXJlY3QnXG5pbXBvcnQgeyBSZWRpcmVjdFR5cGUsIGlzUmVkaXJlY3RFcnJvciB9IGZyb20gJy4vcmVkaXJlY3QtZXJyb3InXG5cbmludGVyZmFjZSBSZWRpcmVjdEJvdW5kYXJ5UHJvcHMge1xuICByb3V0ZXI6IEFwcFJvdXRlckluc3RhbmNlXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuZnVuY3Rpb24gSGFuZGxlUmVkaXJlY3Qoe1xuICByZWRpcmVjdCxcbiAgcmVzZXQsXG4gIHJlZGlyZWN0VHlwZSxcbn06IHtcbiAgcmVkaXJlY3Q6IHN0cmluZ1xuICByZWRpcmVjdFR5cGU6IFJlZGlyZWN0VHlwZVxuICByZXNldDogKCkgPT4gdm9pZFxufSkge1xuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIGlmIChyZWRpcmVjdFR5cGUgPT09IFJlZGlyZWN0VHlwZS5wdXNoKSB7XG4gICAgICAgIHJvdXRlci5wdXNoKHJlZGlyZWN0LCB7fSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvdXRlci5yZXBsYWNlKHJlZGlyZWN0LCB7fSlcbiAgICAgIH1cbiAgICAgIHJlc2V0KClcbiAgICB9KVxuICB9LCBbcmVkaXJlY3QsIHJlZGlyZWN0VHlwZSwgcmVzZXQsIHJvdXRlcl0pXG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0RXJyb3JCb3VuZGFyeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgUmVkaXJlY3RCb3VuZGFyeVByb3BzLFxuICB7IHJlZGlyZWN0OiBzdHJpbmcgfCBudWxsOyByZWRpcmVjdFR5cGU6IFJlZGlyZWN0VHlwZSB8IG51bGwgfVxuPiB7XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBSZWRpcmVjdEJvdW5kYXJ5UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLnN0YXRlID0geyByZWRpcmVjdDogbnVsbCwgcmVkaXJlY3RUeXBlOiBudWxsIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIGlmIChpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICBjb25zdCB1cmwgPSBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvcihlcnJvcilcbiAgICAgIGNvbnN0IHJlZGlyZWN0VHlwZSA9IGdldFJlZGlyZWN0VHlwZUZyb21FcnJvcihlcnJvcilcbiAgICAgIHJldHVybiB7IHJlZGlyZWN0OiB1cmwsIHJlZGlyZWN0VHlwZSB9XG4gICAgfVxuICAgIC8vIFJlLXRocm93IGlmIGVycm9yIGlzIG5vdCBmb3IgcmVkaXJlY3RcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgLy8gRXhwbGljaXQgdHlwZSBpcyBuZWVkZWQgdG8gYXZvaWQgdGhlIGdlbmVyYXRlZCBgLmQudHNgIGhhdmluZyBhIHdpZGUgcmV0dXJuIHR5cGUgdGhhdCBjb3VsZCBiZSBzcGVjaWZpYyB0byB0aGUgYEB0eXBlcy9yZWFjdGAgdmVyc2lvbi5cbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgY29uc3QgeyByZWRpcmVjdCwgcmVkaXJlY3RUeXBlIH0gPSB0aGlzLnN0YXRlXG4gICAgaWYgKHJlZGlyZWN0ICE9PSBudWxsICYmIHJlZGlyZWN0VHlwZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEhhbmRsZVJlZGlyZWN0XG4gICAgICAgICAgcmVkaXJlY3Q9e3JlZGlyZWN0fVxuICAgICAgICAgIHJlZGlyZWN0VHlwZT17cmVkaXJlY3RUeXBlfVxuICAgICAgICAgIHJlc2V0PXsoKSA9PiB0aGlzLnNldFN0YXRlKHsgcmVkaXJlY3Q6IG51bGwgfSl9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gUmVkaXJlY3RCb3VuZGFyeSh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG4gIHJldHVybiAoXG4gICAgPFJlZGlyZWN0RXJyb3JCb3VuZGFyeSByb3V0ZXI9e3JvdXRlcn0+e2NoaWxkcmVufTwvUmVkaXJlY3RFcnJvckJvdW5kYXJ5PlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVkaXJlY3RCb3VuZGFyeSIsIlJlZGlyZWN0RXJyb3JCb3VuZGFyeSIsIkhhbmRsZVJlZGlyZWN0IiwicmVkaXJlY3QiLCJyZXNldCIsInJlZGlyZWN0VHlwZSIsInJvdXRlciIsInVzZVJvdXRlciIsInVzZUVmZmVjdCIsIlJlYWN0Iiwic3RhcnRUcmFuc2l0aW9uIiwiUmVkaXJlY3RUeXBlIiwicHVzaCIsInJlcGxhY2UiLCJDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImlzUmVkaXJlY3RFcnJvciIsInVybCIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwicmVuZGVyIiwic3RhdGUiLCJzZXRTdGF0ZSIsInByb3BzIiwiY2hpbGRyZW4iLCJjb25zdHJ1Y3RvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/redirect-error.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/components/redirect-error.js ***! \********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REDIRECT_ERROR_CODE: function() {\n return REDIRECT_ERROR_CODE;\n },\n RedirectType: function() {\n return RedirectType;\n },\n isRedirectError: function() {\n return isRedirectError;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\nvar RedirectType = /*#__PURE__*/ function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n return RedirectType;\n}({});\nfunction isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxtQkFBbUI7ZUFBbkJBOztJQUVEQyxZQUFZO2VBQVpBOztJQWdCSUMsZUFBZTtlQUFmQTs7O2dEQXBCbUI7QUFFNUIsTUFBTUYsc0JBQXNCO0FBRTVCLElBQUtDLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7V0FBQUE7O0FBZ0JMLFNBQVNDLGdCQUFnQkMsS0FBYztJQUM1QyxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBRUEsTUFBTUEsU0FBU0QsTUFBTUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxDQUFDQyxXQUFXQyxLQUFLLEdBQUdIO0lBQzFCLE1BQU1JLGNBQWNKLE9BQU9LLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzdDLE1BQU1DLFNBQVNQLE9BQU9RLEVBQUUsQ0FBQyxDQUFDO0lBRTFCLE1BQU1DLGFBQWFDLE9BQU9IO0lBRTFCLE9BQ0VMLGNBQWNOLHVCQUNiTyxDQUFBQSxTQUFTLGFBQWFBLFNBQVMsT0FBSyxJQUNyQyxPQUFPQyxnQkFBZ0IsWUFDdkIsQ0FBQ08sTUFBTUYsZUFDUEEsY0FBY0csb0JBQUFBLGtCQUFrQjtBQUVwQyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gJy4vcmVkaXJlY3Qtc3RhdHVzLWNvZGUnXG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9FUlJPUl9DT0RFID0gJ05FWFRfUkVESVJFQ1QnXG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIHB1c2ggPSAncHVzaCcsXG4gIHJlcGxhY2UgPSAncmVwbGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIFJlZGlyZWN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgUkVESVJFQ1RfRVJST1JfQ09ERX07JHtSZWRpcmVjdFR5cGV9OyR7c3RyaW5nfTske1JlZGlyZWN0U3RhdHVzQ29kZX07YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3RFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGRpZ2VzdCA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG4gIGNvbnN0IFtlcnJvckNvZGUsIHR5cGVdID0gZGlnZXN0XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0gZGlnZXN0LnNsaWNlKDIsIC0yKS5qb2luKCc7JylcbiAgY29uc3Qgc3RhdHVzID0gZGlnZXN0LmF0KC0yKVxuXG4gIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoc3RhdHVzKVxuXG4gIHJldHVybiAoXG4gICAgZXJyb3JDb2RlID09PSBSRURJUkVDVF9FUlJPUl9DT0RFICYmXG4gICAgKHR5cGUgPT09ICdyZXBsYWNlJyB8fCB0eXBlID09PSAncHVzaCcpICYmXG4gICAgdHlwZW9mIGRlc3RpbmF0aW9uID09PSAnc3RyaW5nJyAmJlxuICAgICFpc05hTihzdGF0dXNDb2RlKSAmJlxuICAgIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiaXNSZWRpcmVjdEVycm9yIiwiZXJyb3IiLCJkaWdlc3QiLCJzcGxpdCIsImVycm9yQ29kZSIsInR5cGUiLCJkZXN0aW5hdGlvbiIsInNsaWNlIiwiam9pbiIsInN0YXR1cyIsImF0Iiwic3RhdHVzQ29kZSIsIk51bWJlciIsImlzTmFOIiwiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/redirect-status-code.js ***! \**************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/redirect.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/client/components/redirect.js ***! \**************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getRedirectError: function() {\n return getRedirectError;\n },\n getRedirectStatusCodeFromError: function() {\n return getRedirectStatusCodeFromError;\n },\n getRedirectTypeFromError: function() {\n return getRedirectTypeFromError;\n },\n getURLFromRedirectError: function() {\n return getURLFromRedirectError;\n },\n permanentRedirect: function() {\n return permanentRedirect;\n },\n redirect: function() {\n return redirect;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst actionAsyncStorage = true ? (__webpack_require__(/*! ../../server/app-render/action-async-storage.external */ \"../app-render/action-async-storage.external\").actionAsyncStorage) : 0;\nfunction getRedirectError(url, type, statusCode) {\n if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect;\n const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = _redirecterror.REDIRECT_ERROR_CODE + \";\" + type + \";\" + url + \";\" + statusCode + \";\";\n return error;\n}\nfunction redirect(/** The URL to redirect to */ url, type) {\n var _actionAsyncStorage_getStore;\n type != null ? type : type = (actionAsyncStorage == null ? void 0 : (_actionAsyncStorage_getStore = actionAsyncStorage.getStore()) == null ? void 0 : _actionAsyncStorage_getStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace;\n throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect);\n}\nfunction permanentRedirect(/** The URL to redirect to */ url, type) {\n if (type === void 0) type = _redirecterror.RedirectType.replace;\n throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect);\n}\nfunction getURLFromRedirectError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) return null;\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(';').slice(2, -2).join(';');\n}\nfunction getRedirectTypeFromError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) {\n throw Object.defineProperty(new Error('Not a redirect error'), \"__NEXT_ERROR_CODE\", {\n value: \"E260\",\n enumerable: false,\n configurable: true\n });\n }\n return error.digest.split(';', 2)[1];\n}\nfunction getRedirectStatusCodeFromError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) {\n throw Object.defineProperty(new Error('Not a redirect error'), \"__NEXT_ERROR_CODE\", {\n value: \"E260\",\n enumerable: false,\n configurable: true\n });\n }\n return Number(error.digest.split(';').at(-2));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWVnQkEsZ0JBQWdCO2VBQWhCQTs7SUE2RUFDLDhCQUE4QjtlQUE5QkE7O0lBUkFDLHdCQUF3QjtlQUF4QkE7O0lBUkFDLHVCQUF1QjtlQUF2QkE7O0lBaEJBQyxpQkFBaUI7ZUFBakJBOztJQXZCQUMsUUFBUTtlQUFSQTs7O2dEQXJDbUI7MkNBTTVCO0FBRVAsTUFBTUMscUJBQ0osS0FBNkIsR0FFdkJFLG9KQUNrQixHQUNwQkMsQ0FBU0E7QUFFUixTQUFTVCxpQkFDZFUsR0FBVyxFQUNYQyxJQUFrQixFQUNsQkMsVUFBcUU7SUFBckVBLElBQUFBLGVBQUFBLEtBQUFBLEdBQUFBLGFBQWlDQyxvQkFBQUEsa0JBQWtCLENBQUNDLGlCQUFpQjtJQUVyRSxNQUFNQyxRQUFRLHFCQUE4QixDQUE5QixJQUFJQyxNQUFNQyxlQUFBQSxtQkFBbUIsR0FBN0I7ZUFBQTtvQkFBQTtzQkFBQTtJQUE2QjtJQUMzQ0YsTUFBTUcsTUFBTSxHQUFNRCxlQUFBQSxtQkFBbUIsR0FBQyxNQUFHTixPQUFLLE1BQUdELE1BQUksTUFBR0UsYUFBVztJQUNuRSxPQUFPRztBQUNUO0FBY08sU0FBU1YsU0FDZCwyQkFBMkIsR0FDM0JLLEdBQVcsRUFDWEMsSUFBbUI7UUFFVkw7SUFBVEssUUFBQUEsT0FBQUEsT0FBQUEsT0FBU0wsQ0FBQUEsc0JBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLCtCQUFBQSxtQkFBb0JhLFFBQVEsdUJBQTVCYiw2QkFBZ0NjLFFBQUFBLElBQ3JDQyxlQUFBQSxZQUFZLENBQUNDLElBQUksR0FDakJELGVBQUFBLFlBQVksQ0FBQ0UsT0FBTztJQUV4QixNQUFNdkIsaUJBQWlCVSxLQUFLQyxNQUFNRSxvQkFBQUEsa0JBQWtCLENBQUNDLGlCQUFpQjtBQUN4RTtBQWFPLFNBQVNWLGtCQUNkLDJCQUEyQixHQUMzQk0sR0FBVyxFQUNYQyxJQUF5QztJQUF6Q0EsSUFBQUEsU0FBQUEsS0FBQUEsR0FBQUEsT0FBcUJVLGVBQUFBLFlBQVksQ0FBQ0UsT0FBTztJQUV6QyxNQUFNdkIsaUJBQWlCVSxLQUFLQyxNQUFNRSxvQkFBQUEsa0JBQWtCLENBQUNXLGlCQUFpQjtBQUN4RTtBQVVPLFNBQVNyQix3QkFBd0JZLEtBQWM7SUFDcEQsSUFBSSxDQUFDVSxDQUFBQSxHQUFBQSxlQUFBQSxlQUFBQSxFQUFnQlYsUUFBUSxPQUFPO0lBRXBDLHdFQUF3RTtJQUN4RSxrQkFBa0I7SUFDbEIsT0FBT0EsTUFBTUcsTUFBTSxDQUFDUSxLQUFLLENBQUMsS0FBS0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHQyxJQUFJLENBQUM7QUFDbkQ7QUFFTyxTQUFTMUIseUJBQXlCYSxLQUFvQjtJQUMzRCxJQUFJLENBQUNVLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCVixRQUFRO1FBQzNCLE1BQU0scUJBQWlDLENBQWpDLElBQUlDLE1BQU0seUJBQVY7bUJBQUE7d0JBQUE7MEJBQUE7UUFBZ0M7SUFDeEM7SUFFQSxPQUFPRCxNQUFNRyxNQUFNLENBQUNRLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0FBQ3RDO0FBRU8sU0FBU3pCLCtCQUErQmMsS0FBb0I7SUFDakUsSUFBSSxDQUFDVSxDQUFBQSxHQUFBQSxlQUFBQSxlQUFBQSxFQUFnQlYsUUFBUTtRQUMzQixNQUFNLHFCQUFpQyxDQUFqQyxJQUFJQyxNQUFNLHlCQUFWO21CQUFBO3dCQUFBOzBCQUFBO1FBQWdDO0lBQ3hDO0lBRUEsT0FBT2EsT0FBT2QsTUFBTUcsTUFBTSxDQUFDUSxLQUFLLENBQUMsS0FBS0ksRUFBRSxDQUFDLENBQUM7QUFDNUMiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tICcuL3JlZGlyZWN0LXN0YXR1cy1jb2RlJ1xuaW1wb3J0IHtcbiAgUmVkaXJlY3RUeXBlLFxuICB0eXBlIFJlZGlyZWN0RXJyb3IsXG4gIGlzUmVkaXJlY3RFcnJvcixcbiAgUkVESVJFQ1RfRVJST1JfQ09ERSxcbn0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuY29uc3QgYWN0aW9uQXN5bmNTdG9yYWdlID1cbiAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCdcbiAgICA/IChcbiAgICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvYWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9hY3Rpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbCcpXG4gICAgICApLmFjdGlvbkFzeW5jU3RvcmFnZVxuICAgIDogdW5kZWZpbmVkXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWRpcmVjdEVycm9yKFxuICB1cmw6IHN0cmluZyxcbiAgdHlwZTogUmVkaXJlY3RUeXBlLFxuICBzdGF0dXNDb2RlOiBSZWRpcmVjdFN0YXR1c0NvZGUgPSBSZWRpcmVjdFN0YXR1c0NvZGUuVGVtcG9yYXJ5UmVkaXJlY3Rcbik6IFJlZGlyZWN0RXJyb3Ige1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihSRURJUkVDVF9FUlJPUl9DT0RFKSBhcyBSZWRpcmVjdEVycm9yXG4gIGVycm9yLmRpZ2VzdCA9IGAke1JFRElSRUNUX0VSUk9SX0NPREV9OyR7dHlwZX07JHt1cmx9OyR7c3RhdHVzQ29kZX07YFxuICByZXR1cm4gZXJyb3Jcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBVUkwuIEl0IGNhbiBiZSB1c2VkIGluXG4gKiBbU2VydmVyIENvbXBvbmVudHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyksXG4gKiBbUm91dGUgSGFuZGxlcnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvcm91dGUtaGFuZGxlcnMpLCBhbmRcbiAqIFtTZXJ2ZXIgQWN0aW9uc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9zZXJ2ZXItYWN0aW9ucy1hbmQtbXV0YXRpb25zKS5cbiAqXG4gKiAtIEluIGEgU2VydmVyIENvbXBvbmVudCwgdGhpcyB3aWxsIGluc2VydCBhIG1ldGEgdGFnIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS5cbiAqIC0gSW4gYSBSb3V0ZSBIYW5kbGVyIG9yIFNlcnZlciBBY3Rpb24sIGl0IHdpbGwgc2VydmUgYSAzMDcvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKiAtIEluIGEgU2VydmVyIEFjdGlvbiwgdHlwZSBkZWZhdWx0cyB0byAncHVzaCcgYW5kICdyZXBsYWNlJyBlbHNld2hlcmUuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgcmVkaXJlY3RgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvcmVkaXJlY3QpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWRpcmVjdChcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgdXJsOiBzdHJpbmcsXG4gIHR5cGU/OiBSZWRpcmVjdFR5cGVcbik6IG5ldmVyIHtcbiAgdHlwZSA/Pz0gYWN0aW9uQXN5bmNTdG9yYWdlPy5nZXRTdG9yZSgpPy5pc0FjdGlvblxuICAgID8gUmVkaXJlY3RUeXBlLnB1c2hcbiAgICA6IFJlZGlyZWN0VHlwZS5yZXBsYWNlXG5cbiAgdGhyb3cgZ2V0UmVkaXJlY3RFcnJvcih1cmwsIHR5cGUsIFJlZGlyZWN0U3RhdHVzQ29kZS5UZW1wb3JhcnlSZWRpcmVjdClcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBVUkwuIEl0IGNhbiBiZSB1c2VkIGluXG4gKiBbU2VydmVyIENvbXBvbmVudHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyksXG4gKiBbUm91dGUgSGFuZGxlcnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvcm91dGUtaGFuZGxlcnMpLCBhbmRcbiAqIFtTZXJ2ZXIgQWN0aW9uc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9zZXJ2ZXItYWN0aW9ucy1hbmQtbXV0YXRpb25zKS5cbiAqXG4gKiAtIEluIGEgU2VydmVyIENvbXBvbmVudCwgdGhpcyB3aWxsIGluc2VydCBhIG1ldGEgdGFnIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS5cbiAqIC0gSW4gYSBSb3V0ZSBIYW5kbGVyIG9yIFNlcnZlciBBY3Rpb24sIGl0IHdpbGwgc2VydmUgYSAzMDgvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgcmVkaXJlY3RgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvcmVkaXJlY3QpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZXJtYW5lbnRSZWRpcmVjdChcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgdXJsOiBzdHJpbmcsXG4gIHR5cGU6IFJlZGlyZWN0VHlwZSA9IFJlZGlyZWN0VHlwZS5yZXBsYWNlXG4pOiBuZXZlciB7XG4gIHRocm93IGdldFJlZGlyZWN0RXJyb3IodXJsLCB0eXBlLCBSZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpXG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZW5jb2RlZCBVUkwgZnJvbSB0aGUgZXJyb3IgaWYgaXQncyBhIFJlZGlyZWN0RXJyb3IsIG51bGxcbiAqIG90aGVyd2lzZS4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgdmFsaWRhdGUgdGhlIFVSTCByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgdGhlIGVycm9yIHRoYXQgbWF5IGJlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm4gdGhlIHVybCBpZiB0aGUgZXJyb3Igd2FzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVSTEZyb21SZWRpcmVjdEVycm9yKGVycm9yOiBSZWRpcmVjdEVycm9yKTogc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IoZXJyb3I6IHVua25vd24pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSByZXR1cm4gbnVsbFxuXG4gIC8vIFNsaWNlcyBvZmYgdGhlIGJlZ2lubmluZyBvZiB0aGUgZGlnZXN0IHRoYXQgY29udGFpbnMgdGhlIGNvZGUgYW5kIHRoZVxuICAvLyBzZXBhcmF0aW5nICc7Jy5cbiAgcmV0dXJuIGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpLnNsaWNlKDIsIC0yKS5qb2luKCc7Jylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZGlyZWN0VHlwZUZyb21FcnJvcihlcnJvcjogUmVkaXJlY3RFcnJvcik6IFJlZGlyZWN0VHlwZSB7XG4gIGlmICghaXNSZWRpcmVjdEVycm9yKGVycm9yKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGEgcmVkaXJlY3QgZXJyb3InKVxuICB9XG5cbiAgcmV0dXJuIGVycm9yLmRpZ2VzdC5zcGxpdCgnOycsIDIpWzFdIGFzIFJlZGlyZWN0VHlwZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yKGVycm9yOiBSZWRpcmVjdEVycm9yKTogbnVtYmVyIHtcbiAgaWYgKCFpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSByZWRpcmVjdCBlcnJvcicpXG4gIH1cblxuICByZXR1cm4gTnVtYmVyKGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpLmF0KC0yKSlcbn1cbiJdLCJuYW1lcyI6WyJnZXRSZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwiZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IiLCJwZXJtYW5lbnRSZWRpcmVjdCIsInJlZGlyZWN0IiwiYWN0aW9uQXN5bmNTdG9yYWdlIiwid2luZG93IiwicmVxdWlyZSIsInVuZGVmaW5lZCIsInVybCIsInR5cGUiLCJzdGF0dXNDb2RlIiwiUmVkaXJlY3RTdGF0dXNDb2RlIiwiVGVtcG9yYXJ5UmVkaXJlY3QiLCJlcnJvciIsIkVycm9yIiwiUkVESVJFQ1RfRVJST1JfQ09ERSIsImRpZ2VzdCIsImdldFN0b3JlIiwiaXNBY3Rpb24iLCJSZWRpcmVjdFR5cGUiLCJwdXNoIiwicmVwbGFjZSIsIlBlcm1hbmVudFJlZGlyZWN0IiwiaXNSZWRpcmVjdEVycm9yIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJOdW1iZXIiLCJhdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js": /*!**********************************************************************************!*\ !*** ./node_modules/next/dist/client/components/render-from-template-context.js ***! \**********************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderFromTemplateContext;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nfunction RenderFromTemplateContext() {\n const children = (0, _react.useContext)(_approutercontextsharedruntime.TemplateContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=render-from-template-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FLQTs7O2VBQXdCQTs7Ozs7NkVBSG9COzJEQUNaO0FBRWpCLFNBQVNBO0lBQ3RCLE1BQU1DLFdBQVdDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLCtCQUFBQSxlQUFlO0lBQzNDLHFCQUFPO2tCQUFHRjs7QUFDWiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSZW5kZXJGcm9tVGVtcGxhdGVDb250ZXh0KCk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgY2hpbGRyZW4gPSB1c2VDb250ZXh0KFRlbXBsYXRlQ29udGV4dClcbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxufVxuIl0sIm5hbWVzIjpbIlJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQiLCJjaGlsZHJlbiIsInVzZUNvbnRleHQiLCJUZW1wbGF0ZUNvbnRleHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js ***! \*****************************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createHrefFromUrl\", ({\n enumerable: true,\n get: function() {\n return createHrefFromUrl;\n }\n}));\nfunction createHrefFromUrl(url, includeHash) {\n if (includeHash === void 0) includeHash = true;\n return url.pathname + url.search + (includeHash ? url.hash : '');\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=create-href-from-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1ocmVmLWZyb20tdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxrQkFDZEMsR0FBOEMsRUFDOUNDLFdBQTJCO0lBQTNCQSxJQUFBQSxnQkFBQUEsS0FBQUEsR0FBQUEsY0FBdUI7SUFFdkIsT0FBT0QsSUFBSUUsUUFBUSxHQUFHRixJQUFJRyxNQUFNLEdBQUlGLENBQUFBLGNBQWNELElBQUlJLElBQUksR0FBRyxHQUFDO0FBQ2hFIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY3JlYXRlLWhyZWYtZnJvbS11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhyZWZGcm9tVXJsKFxuICB1cmw6IFBpY2s8VVJMLCAncGF0aG5hbWUnIHwgJ3NlYXJjaCcgfCAnaGFzaCc+LFxuICBpbmNsdWRlSGFzaDogYm9vbGVhbiA9IHRydWVcbik6IHN0cmluZyB7XG4gIHJldHVybiB1cmwucGF0aG5hbWUgKyB1cmwuc2VhcmNoICsgKGluY2x1ZGVIYXNoID8gdXJsLmhhc2ggOiAnJylcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVIcmVmRnJvbVVybCIsInVybCIsImluY2x1ZGVIYXNoIiwicGF0aG5hbWUiLCJzZWFyY2giLCJoYXNoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js": /*!********************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js ***! \********************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createRouterCacheKey\", ({\n enumerable: true,\n get: function() {\n return createRouterCacheKey;\n }\n}));\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction createRouterCacheKey(segment, withoutSearchParameters) {\n if (withoutSearchParameters === void 0) withoutSearchParameters = false;\n // if the segment is an array, it means it's a dynamic segment\n // for example, ['lang', 'en', 'd']. We need to convert it to a string to store it as a cache node key.\n if (Array.isArray(segment)) {\n return segment[0] + \"|\" + segment[1] + \"|\" + segment[2];\n }\n // Page segments might have search parameters, ie __PAGE__?foo=bar\n // When `withoutSearchParameters` is true, we only want to return the page segment\n if (withoutSearchParameters && segment.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n return _segment.PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=create-router-cache-key.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5LmpzIiwibWFwcGluZ3MiOiI7Ozs7d0RBR2dCQTs7O2VBQUFBOzs7cUNBRmlCO0FBRTFCLFNBQVNBLHFCQUNkQyxPQUFnQixFQUNoQkMsdUJBQXdDO0lBQXhDQSxJQUFBQSw0QkFBQUEsS0FBQUEsR0FBQUEsMEJBQW1DO0lBRW5DLDhEQUE4RDtJQUM5RCx1R0FBdUc7SUFDdkcsSUFBSUMsTUFBTUMsT0FBTyxDQUFDSCxVQUFVO1FBQzFCLE9BQVVBLE9BQU8sQ0FBQyxFQUFFLEdBQUMsTUFBR0EsT0FBTyxDQUFDLEVBQUUsR0FBQyxNQUFHQSxPQUFPLENBQUMsRUFBRTtJQUNsRDtJQUVBLGtFQUFrRTtJQUNsRSxrRkFBa0Y7SUFDbEYsSUFBSUMsMkJBQTJCRCxRQUFRSSxVQUFVLENBQUNDLFNBQUFBLGdCQUFnQixHQUFHO1FBQ25FLE9BQU9BLFNBQUFBLGdCQUFnQjtJQUN6QjtJQUVBLE9BQU9MO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9jcmVhdGUtcm91dGVyLWNhY2hlLWtleS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSb3V0ZXJDYWNoZUtleShcbiAgc2VnbWVudDogU2VnbWVudCxcbiAgd2l0aG91dFNlYXJjaFBhcmFtZXRlcnM6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIC8vIGlmIHRoZSBzZWdtZW50IGlzIGFuIGFycmF5LCBpdCBtZWFucyBpdCdzIGEgZHluYW1pYyBzZWdtZW50XG4gIC8vIGZvciBleGFtcGxlLCBbJ2xhbmcnLCAnZW4nLCAnZCddLiBXZSBuZWVkIHRvIGNvbnZlcnQgaXQgdG8gYSBzdHJpbmcgdG8gc3RvcmUgaXQgYXMgYSBjYWNoZSBub2RlIGtleS5cbiAgaWYgKEFycmF5LmlzQXJyYXkoc2VnbWVudCkpIHtcbiAgICByZXR1cm4gYCR7c2VnbWVudFswXX18JHtzZWdtZW50WzFdfXwke3NlZ21lbnRbMl19YFxuICB9XG5cbiAgLy8gUGFnZSBzZWdtZW50cyBtaWdodCBoYXZlIHNlYXJjaCBwYXJhbWV0ZXJzLCBpZSBfX1BBR0VfXz9mb289YmFyXG4gIC8vIFdoZW4gYHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzYCBpcyB0cnVlLCB3ZSBvbmx5IHdhbnQgdG8gcmV0dXJuIHRoZSBwYWdlIHNlZ21lbnRcbiAgaWYgKHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzICYmIHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgIHJldHVybiBQQUdFX1NFR01FTlRfS0VZXG4gIH1cblxuICByZXR1cm4gc2VnbWVudFxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJvdXRlckNhY2hlS2V5Iiwic2VnbWVudCIsIndpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzIiwiQXJyYXkiLCJpc0FycmF5Iiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js": /*!******************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js ***! \******************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createFetch: function() {\n return createFetch;\n },\n createFromNextReadableStream: function() {\n return createFromNextReadableStream;\n },\n fetchServerResponse: function() {\n return fetchServerResponse;\n }\n});\nconst _client = __webpack_require__(/*! react-server-dom-webpack/client */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js\");\nconst _approuterheaders = __webpack_require__(/*! ../app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _appcallserver = __webpack_require__(/*! ../../app-call-server */ \"(ssr)/./node_modules/next/dist/client/app-call-server.js\");\nconst _appfindsourcemapurl = __webpack_require__(/*! ../../app-find-source-map-url */ \"(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _appbuildid = __webpack_require__(/*! ../../app-build-id */ \"(ssr)/./node_modules/next/dist/client/app-build-id.js\");\nconst _setcachebustingsearchparam = __webpack_require__(/*! ./set-cache-busting-search-param */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js\");\nconst _routeparams = __webpack_require__(/*! ../../route-params */ \"(ssr)/./node_modules/next/dist/client/route-params.js\");\nconst createFromReadableStream = _client.createFromReadableStream;\nfunction doMpaNavigation(url) {\n return {\n flightData: (0, _routeparams.urlToUrlWithoutFlightMarker)(new URL(url, location.origin)).toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1\n };\n}\nlet abortController = new AbortController();\nif (false) {}\nasync function fetchServerResponse(url, options) {\n const { flightRouterState, nextUrl, prefetchKind } = options;\n const headers = {\n // Enable flight response\n [_approuterheaders.RSC_HEADER]: '1',\n // Provide the current router state\n [_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER]: (0, _flightdatahelpers.prepareFlightRouterStateForRequest)(flightRouterState, options.isHmrRefresh)\n };\n /**\n * Three cases:\n * - `prefetchKind` is `undefined`, it means it's a normal navigation, so we want to prefetch the page data fully\n * - `prefetchKind` is `full` - we want to prefetch the whole page so same as above\n * - `prefetchKind` is `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully\n */ if (prefetchKind === _routerreducertypes.PrefetchKind.AUTO) {\n headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] = '1';\n }\n if ( true && options.isHmrRefresh) {\n headers[_approuterheaders.NEXT_HMR_REFRESH_HEADER] = '1';\n }\n if (nextUrl) {\n headers[_approuterheaders.NEXT_URL] = nextUrl;\n }\n try {\n var _res_headers_get;\n // When creating a \"temporary\" prefetch (the \"on-demand\" prefetch that gets created on navigation, if one doesn't exist)\n // we send the request with a \"high\" priority as it's in response to a user interaction that could be blocking a transition.\n // Otherwise, all other prefetches are sent with a \"low\" priority.\n // We use \"auto\" for in all other cases to match the existing default, as this function is shared outside of prefetching.\n const fetchPriority = prefetchKind ? prefetchKind === _routerreducertypes.PrefetchKind.TEMPORARY ? 'high' : 'low' : 'auto';\n if (false) {}\n const res = await createFetch(url, headers, fetchPriority, abortController.signal);\n const responseUrl = (0, _routeparams.urlToUrlWithoutFlightMarker)(new URL(res.url));\n const canonicalUrl = res.redirected ? responseUrl : undefined;\n const contentType = res.headers.get('content-type') || '';\n const interception = !!((_res_headers_get = res.headers.get('vary')) == null ? void 0 : _res_headers_get.includes(_approuterheaders.NEXT_URL));\n const postponed = !!res.headers.get(_approuterheaders.NEXT_DID_POSTPONE_HEADER);\n const staleTimeHeaderSeconds = res.headers.get(_approuterheaders.NEXT_ROUTER_STALE_TIME_HEADER);\n const staleTime = staleTimeHeaderSeconds !== null ? parseInt(staleTimeHeaderSeconds, 10) * 1000 : -1;\n let isFlightResponse = contentType.startsWith(_approuterheaders.RSC_CONTENT_TYPE_HEADER);\n if (false) {}\n // If fetch returns something different than flight response handle it like a mpa navigation\n // If the fetch was not 200, we also handle it like a mpa navigation\n if (!isFlightResponse || !res.ok || !res.body) {\n // in case the original URL came with a hash, preserve it before redirecting to the new URL\n if (url.hash) {\n responseUrl.hash = url.hash;\n }\n return doMpaNavigation(responseUrl.toString());\n }\n // We may navigate to a page that requires a different Webpack runtime.\n // In prod, every page will have the same Webpack runtime.\n // In dev, the Webpack runtime is minimal for each page.\n // We need to ensure the Webpack runtime is updated before executing client-side JS of the new page.\n if (true) {\n await (__webpack_require__(/*! ../../dev/hot-reloader/app/hot-reloader-app */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js\").waitForWebpackRuntimeHotUpdate)();\n }\n // Handle the `fetch` readable stream that can be unwrapped by `React.use`.\n const flightStream = postponed ? createUnclosingPrefetchStream(res.body) : res.body;\n const response = await createFromNextReadableStream(flightStream);\n if ((0, _appbuildid.getAppBuildId)() !== response.b) {\n return doMpaNavigation(res.url);\n }\n return {\n flightData: (0, _flightdatahelpers.normalizeFlightData)(response.f),\n canonicalUrl: canonicalUrl,\n couldBeIntercepted: interception,\n prerendered: response.S,\n postponed,\n staleTime\n };\n } catch (err) {\n if (!abortController.signal.aborted) {\n console.error(\"Failed to fetch RSC payload for \" + url + \". Falling back to browser navigation.\", err);\n }\n // If fetch fails handle it like a mpa navigation\n // TODO-APP: Add a test for the case where a CORS request fails, e.g. external url redirect coming from the response.\n // See https://github.com/vercel/next.js/issues/43605#issuecomment-1451617521 for a reproduction.\n return {\n flightData: url.toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1\n };\n }\n}\nasync function createFetch(url, headers, fetchPriority, signal) {\n // TODO: In output: \"export\" mode, the headers do nothing. Omit them (and the\n // cache busting search param) from the request so they're\n // maximally cacheable.\n if (false) {}\n if (false) {}\n const fetchOptions = {\n // Backwards compat for older browsers. `same-origin` is the default in modern browsers.\n credentials: 'same-origin',\n headers,\n priority: fetchPriority || undefined,\n signal\n };\n // `fetchUrl` is slightly different from `url` because we add a cache-busting\n // search param to it. This should not leak outside of this function, so we\n // track them separately.\n let fetchUrl = new URL(url);\n (0, _setcachebustingsearchparam.setCacheBustingSearchParam)(fetchUrl, headers);\n let browserResponse = await fetch(fetchUrl, fetchOptions);\n // If the server responds with a redirect (e.g. 307), and the redirected\n // location does not contain the cache busting search param set in the\n // original request, the response is likely invalid — when following the\n // redirect, the browser forwards the request headers, but since the cache\n // busting search param is missing, the server will reject the request due to\n // a mismatch.\n //\n // Ideally, we would be able to intercept the redirect response and perform it\n // manually, instead of letting the browser automatically follow it, but this\n // is not allowed by the fetch API.\n //\n // So instead, we must \"replay\" the redirect by fetching the new location\n // again, but this time we'll append the cache busting search param to prevent\n // a mismatch.\n //\n // TODO: We can optimize Next.js's built-in middleware APIs by returning a\n // custom status code, to prevent the browser from automatically following it.\n //\n // This does not affect Server Action-based redirects; those are encoded\n // differently, as part of the Flight body. It only affects redirects that\n // occur in a middleware or a third-party proxy.\n let redirected = browserResponse.redirected;\n if (false) {}\n // Remove the cache busting search param from the response URL, to prevent it\n // from leaking outside of this function.\n const responseUrl = new URL(browserResponse.url, fetchUrl);\n responseUrl.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n const rscResponse = {\n url: responseUrl.href,\n // This is true if any redirects occurred, either automatically by the\n // browser, or manually by us. So it's different from\n // `browserResponse.redirected`, which only tells us whether the browser\n // followed a redirect, and only for the last response in the chain.\n redirected,\n // These can be copied from the last browser response we received. We\n // intentionally only expose the subset of fields that are actually used\n // elsewhere in the codebase.\n ok: browserResponse.ok,\n headers: browserResponse.headers,\n body: browserResponse.body,\n status: browserResponse.status\n };\n return rscResponse;\n}\nfunction createFromNextReadableStream(flightStream) {\n return createFromReadableStream(flightStream, {\n callServer: _appcallserver.callServer,\n findSourceMapURL: _appfindsourcemapurl.findSourceMapURL\n });\n}\nfunction createUnclosingPrefetchStream(originalFlightStream) {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader();\n return new ReadableStream({\n async pull (controller) {\n while(true){\n const { done, value } = await reader.read();\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value);\n continue;\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return;\n }\n }\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fetch-server-response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZldGNoLXNlcnZlci1yZXNwb25zZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUEyUXNCQSxXQUFXO2VBQVhBOztJQXFITkMsNEJBQTRCO2VBQTVCQTs7SUEzUk1DLG1CQUFtQjtlQUFuQkE7OztvQ0FqR3NEOzhDQWtCckU7MkNBQ29CO2lEQUNNO2dEQUNKOytDQUt0Qjt3Q0FDdUI7d0RBQ2E7eUNBQ0M7QUFFNUMsTUFBTUMsMkJBQ0pDLFFBQUFBLHdCQUErQjtBQThCakMsU0FBU0MsZ0JBQWdCQyxHQUFXO0lBQ2xDLE9BQU87UUFDTEMsWUFBWUMsQ0FBQUEsR0FBQUEsYUFBQUEsMkJBQUFBLEVBQ1YsSUFBSUMsSUFBSUgsS0FBS0ksU0FBU0MsTUFBTSxHQUM1QkMsUUFBUTtRQUNWQyxjQUFjQztRQUNkQyxvQkFBb0I7UUFDcEJDLGFBQWE7UUFDYkMsV0FBVztRQUNYQyxXQUFXLENBQUM7SUFDZDtBQUNGO0FBRUEsSUFBSUMsa0JBQWtCLElBQUlDO0FBRTFCLElBQUksS0FBNkIsRUFBRSxFQWNsQztBQU1NLGVBQWVsQixvQkFDcEJJLEdBQVEsRUFDUmtCLE9BQW1DO0lBRW5DLE1BQU0sRUFBRUMsaUJBQWlCLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFLEdBQUdIO0lBRXJELE1BQU1JLFVBQTBCO1FBQzlCLHlCQUF5QjtRQUN6QixDQUFDQyxrQkFBQUEsVUFBVSxDQUFDLEVBQUU7UUFDZCxtQ0FBbUM7UUFDbkMsQ0FBQ0Msa0JBQUFBLDZCQUE2QixDQUFDLEVBQUVDLENBQUFBLEdBQUFBLG1CQUFBQSxrQ0FBQUEsRUFDL0JOLG1CQUNBRCxRQUFRUSxZQUFZO0lBRXhCO0lBRUE7Ozs7O0dBS0MsR0FDRCxJQUFJTCxpQkFBaUJNLG9CQUFBQSxZQUFZLENBQUNDLElBQUksRUFBRTtRQUN0Q04sT0FBTyxDQUFDTyxrQkFBQUEsMkJBQTJCLENB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RjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG4vLyBUT0RPOiBFeHBsaWNpdGx5IGltcG9ydCBmcm9tIGNsaWVudC5icm93c2VyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0gYXMgY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtQnJvd3NlciB9IGZyb20gJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnXG5cbmltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIE5hdmlnYXRpb25GbGlnaHRSZXNwb25zZSxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIgfSBmcm9tICcuLi9hcHAtcm91dGVyLWhlYWRlcnMnXG5pbXBvcnQge1xuICBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSLFxuICBORVhUX1JTQ19VTklPTl9RVUVSWSxcbiAgTkVYVF9VUkwsXG4gIFJTQ19IRUFERVIsXG4gIFJTQ19DT05URU5UX1RZUEVfSEVBREVSLFxuICBORVhUX0hNUl9SRUZSRVNIX0hFQURFUixcbiAgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSLFxuICBORVhUX1JPVVRFUl9TVEFMRV9USU1FX0hFQURFUixcbn0gZnJvbSAnLi4vYXBwLXJvdXRlci1oZWFkZXJzJ1xuaW1wb3J0IHsgY2FsbFNlcnZlciB9IGZyb20gJy4uLy4uL2FwcC1jYWxsLXNlcnZlcidcbmltcG9ydCB7IGZpbmRTb3VyY2VNYXBVUkwgfSBmcm9tICcuLi8uLi9hcHAtZmluZC1zb3VyY2UtbWFwLXVybCdcbmltcG9ydCB7IFByZWZldGNoS2luZCB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQge1xuICBub3JtYWxpemVGbGlnaHREYXRhLFxuICBwcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0LFxuICB0eXBlIE5vcm1hbGl6ZWRGbGlnaHREYXRhLFxufSBmcm9tICcuLi8uLi9mbGlnaHQtZGF0YS1oZWxwZXJzJ1xuaW1wb3J0IHsgZ2V0QXBwQnVpbGRJZCB9IGZyb20gJy4uLy4uL2FwcC1idWlsZC1pZCdcbmltcG9ydCB7IHNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtIH0gZnJvbSAnLi9zZXQtY2FjaGUtYnVzdGluZy1zZWFyY2gtcGFyYW0nXG5pbXBvcnQgeyB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIgfSBmcm9tICcuLi8uLi9yb3V0ZS1wYXJhbXMnXG5cbmNvbnN0IGNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSA9XG4gIGNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbUJyb3dzZXIgYXMgKHR5cGVvZiBpbXBvcnQoJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQuYnJvd3NlcicpKVsnY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtJ11cblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaFNlcnZlclJlc3BvbnNlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICByZWFkb25seSBuZXh0VXJsOiBzdHJpbmcgfCBudWxsXG4gIHJlYWRvbmx5IHByZWZldGNoS2luZD86IFByZWZldGNoS2luZFxuICByZWFkb25seSBpc0htclJlZnJlc2g/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQgPSB7XG4gIGZsaWdodERhdGE6IE5vcm1hbGl6ZWRGbGlnaHREYXRhW10gfCBzdHJpbmdcbiAgY2Fub25pY2FsVXJsOiBVUkwgfCB1bmRlZmluZWRcbiAgY291bGRCZUludGVyY2VwdGVkOiBib29sZWFuXG4gIHByZXJlbmRlcmVkOiBib29sZWFuXG4gIHBvc3Rwb25lZDogYm9vbGVhblxuICBzdGFsZVRpbWU6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHtcbiAgW1JTQ19IRUFERVJdPzogJzEnXG4gIFtORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl0/OiBzdHJpbmdcbiAgW05FWFRfVVJMXT86IHN0cmluZ1xuICBbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXT86ICcxJyB8ICcyJ1xuICBbTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVJdPzogc3RyaW5nXG4gICd4LWRlcGxveW1lbnQtaWQnPzogc3RyaW5nXG4gIFtORVhUX0hNUl9SRUZSRVNIX0hFQURFUl0/OiAnMSdcbiAgLy8gQSBoZWFkZXIgdGhhdCBpcyBvbmx5IGFkZGVkIGluIHRlc3QgbW9kZSB0byBhc3NlcnQgb24gZmV0Y2ggcHJpb3JpdHlcbiAgJ05leHQtVGVzdC1GZXRjaC1Qcmlvcml0eSc/OiBSZXF1ZXN0SW5pdFsncHJpb3JpdHknXVxufVxuXG5mdW5jdGlvbiBkb01wYU5hdmlnYXRpb24odXJsOiBzdHJpbmcpOiBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICBmbGlnaHREYXRhOiB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIoXG4gICAgICBuZXcgVVJMKHVybCwgbG9jYXRpb24ub3JpZ2luKVxuICAgICkudG9TdHJpbmcoKSxcbiAgICBjYW5vbmljYWxVcmw6IHVuZGVmaW5lZCxcbiAgICBjb3VsZEJlSW50ZXJjZXB0ZWQ6IGZhbHNlLFxuICAgIHByZXJlbmRlcmVkOiBmYWxzZSxcbiAgICBwb3N0cG9uZWQ6IGZhbHNlLFxuICAgIHN0YWxlVGltZTogLTEsXG4gIH1cbn1cblxubGV0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgLy8gQWJvcnQgYW55IGluLWZsaWdodCByZXF1ZXN0cyB3aGVuIHRoZSBwYWdlIGlzIHVubG9hZGVkLCBlLmcuIGR1ZSB0b1xuICAvLyByZWxvYWRpbmcgdGhlIHBhZ2Ugb3IgcGVyZm9ybWluZyBoYXJkIG5hdmlnYXRpb25zLiBUaGlzIGFsbG93cyB1cyB0byBpZ25vcmVcbiAgLy8gd2hhdCB3b3VsZCBvdGhlcndpc2UgYmUgYSB0aHJvd24gVHlwZUVycm9yIHdoZW4gdGhlIGJyb3dzZXIgY2FuY2VscyB0aGVcbiAgLy8gcmVxdWVzdHMuXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsICgpID0+IHtcbiAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKVxuICB9KVxuXG4gIC8vIFVzZSBhIGZyZXNoIEFib3J0Q29udHJvbGxlciBpbnN0YW5jZSBvbiBwYWdlc2hvdywgZS5nLiB3aGVuIG5hdmlnYXRpbmcgYmFja1xuICAvLyBhbmQgdGhlIEphdmFTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgaXMgcmVzdG9yZWQgYnkgdGhlIGJyb3dzZXIuXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsICgpID0+IHtcbiAgICBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgfSlcbn1cblxuLyoqXG4gKiBGZXRjaCB0aGUgZmxpZ2h0IGRhdGEgZm9yIHRoZSBwcm92aWRlZCB1cmwuIFRha2VzIGluIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZVxuICogdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyIHNlcnZlci1zaWRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hTZXJ2ZXJSZXNwb25zZShcbiAgdXJsOiBVUkwsXG4gIG9wdGlvbnM6IEZldGNoU2VydmVyUmVzcG9uc2VPcHRpb25zXG4pOiBQcm9taXNlPEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQ+IHtcbiAgY29uc3QgeyBmbGlnaHRSb3V0ZXJTdGF0ZSwgbmV4dFVybCwgcHJlZmV0Y2hLaW5kIH0gPSBvcHRpb25zXG5cbiAgY29uc3QgaGVhZGVyczogUmVxdWVzdEhlYWRlcnMgPSB7XG4gICAgLy8gRW5hYmxlIGZsaWdodCByZXNwb25zZVxuICAgIFtSU0NfSEVBREVSXTogJzEnLFxuICAgIC8vIFByb3ZpZGUgdGhlIGN1cnJlbnQgcm91dGVyIHN0YXRlXG4gICAgW05FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXTogcHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdChcbiAgICAgIGZsaWdodFJvdXRlclN0YXRlLFxuICAgICAgb3B0aW9ucy5pc0htclJlZnJlc2hcbiAgICApLFxuICB9XG5cbiAgLyoqXG4gICAqIFRocmVlIGNhc2VzOlxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGB1bmRlZmluZWRgLCBpdCBtZWFucyBpdCdzIGEgbm9ybWFsIG5hdmlnYXRpb24sIHNvIHdlIHdhbnQgdG8gcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseVxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGBmdWxsYCAtIHdlIHdhbnQgdG8gcHJlZmV0Y2ggdGhlIHdob2xlIHBhZ2Ugc28gc2FtZSBhcyBhYm92ZVxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGBhdXRvYCAtIGlmIHRoZSBwYWdlIGlzIGR5bmFtaWMsIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgcGFydGlhbGx5LCBpZiBzdGF0aWMgcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseVxuICAgKi9cbiAgaWYgKHByZWZldGNoS2luZCA9PT0gUHJlZmV0Y2hLaW5kLkFVVE8pIHtcbiAgICBoZWFkZXJzW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0gPSAnMSdcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBvcHRpb25zLmlzSG1yUmVmcmVzaCkge1xuICAgIGhlYWRlcnNbTkVYVF9ITVJfUkVGUkVTSF9IRUFERVJdID0gJzEnXG4gIH1cblxuICBpZiAobmV4dFVybCkge1xuICAgIGhlYWRlcnNbTkVYVF9VUkxdID0gbmV4dFVybFxuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBXaGVuIGNyZWF0aW5nIGEgXCJ0ZW1wb3JhcnlcIiBwcmVmZXRjaCAodGhlIFwib24tZGVtYW5kXCIgcHJlZmV0Y2ggdGhhdCBnZXRzIGNyZWF0ZWQgb24gbmF2aWdhdGlvbiwgaWYgb25lIGRvZXNuJ3QgZXhpc3QpXG4gICAgLy8gd2Ugc2VuZCB0aGUgcmVxdWVzdCB3aXRoIGEgXCJoaWdoXCIgcHJpb3JpdHkgYXMgaXQncyBpbiByZXNwb25zZSB0byBhIHVzZXIgaW50ZXJhY3Rpb24gdGhhdCBjb3VsZCBiZSBibG9ja2luZyBhIHRyYW5zaXRpb24uXG4gICAgLy8gT3RoZXJ3aXNlLCBhbGwgb3RoZXIgcHJlZmV0Y2hlcyBhcmUgc2VudCB3aXRoIGEgXCJsb3dcIiBwcmlvcml0eS5cbiAgICAvLyBXZSB1c2UgXCJhdXRvXCIgZm9yIGluIGFsbCBvdGhlciBjYXNlcyB0byBtYXRjaCB0aGUgZXhpc3RpbmcgZGVmYXVsdCwgYXMgdGhpcyBmdW5jdGlvbiBpcyBzaGFyZWQgb3V0c2lkZSBvZiBwcmVmZXRjaGluZy5cbiAgICBjb25zdCBmZXRjaFByaW9yaXR5ID0gcHJlZmV0Y2hLaW5kXG4gICAgICA/IHByZWZldGNoS2luZCA9PT0gUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWVxuICAgICAgICA/ICdoaWdoJ1xuICAgICAgICA6ICdsb3cnXG4gICAgICA6ICdhdXRvJ1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ09ORklHX09VVFBVVCA9PT0gJ2V4cG9ydCcpIHtcbiAgICAgICAgLy8gSW4gXCJvdXRwdXQ6IGV4cG9ydFwiIG1vZGUsIHdlIGNhbid0IHJlbHkgb24gaGVhZGVycyB0byBkaXN0aW5ndWlzaFxuICAgICAgICAvLyBiZXR3ZWVuIEhUTUwgYW5kIFJTQyByZXF1ZXN0cy4gSW5zdGVhZCwgd2UgYXBwZW5kIGFuIGV4dHJhIHByZWZpeFxuICAgICAgICAvLyB0byB0aGUgcmVxdWVzdC5cbiAgICAgICAgdXJsID0gbmV3IFVSTCh1cmwpXG4gICAgICAgIGlmICh1cmwucGF0aG5hbWUuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICAgIHVybC5wYXRobmFtZSArPSAnaW5kZXgudHh0J1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVybC5wYXRobmFtZSArPSAnLnR4dCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNyZWF0ZUZldGNoKFxuICAgICAgdXJsLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGZldGNoUHJpb3JpdHksXG4gICAgICBhYm9ydENvbnRyb2xsZXIuc2lnbmFsXG4gICAgKVxuXG4gICAgY29uc3QgcmVzcG9uc2VVcmwgPSB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIobmV3IFVSTChyZXMudXJsKSlcbiAgICBjb25zdCBjYW5vbmljYWxVcmwgPSByZXMucmVkaXJlY3RlZCA/IHJlc3BvbnNlVXJsIDogdW5kZWZpbmVkXG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykgfHwgJydcbiAgICBjb25zdCBpbnRlcmNlcHRpb24gPSAhIXJlcy5oZWFkZXJzLmdldCgndmFyeScpPy5pbmNsdWRlcyhORVhUX1VSTClcbiAgICBjb25zdCBwb3N0cG9uZWQgPSAhIXJlcy5oZWFkZXJzLmdldChORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIpXG4gICAgY29uc3Qgc3RhbGVUaW1lSGVhZGVyU2Vjb25kcyA9IHJlcy5oZWFkZXJzLmdldChcbiAgICAgIE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSXG4gICAgKVxuICAgIGNvbnN0IHN0YWxlVGltZSA9XG4gICAgICBzdGFsZVRpbWVIZWFkZXJTZWNvbmRzICE9PSBudWxsXG4gICAgICAgID8gcGFyc2VJbnQoc3RhbGVUaW1lSGVhZGVyU2Vjb25kcywgMTApICogMTAwMFxuICAgICAgICA6IC0xXG4gICAgbGV0IGlzRmxpZ2h0UmVzcG9uc2UgPSBjb250ZW50VHlwZS5zdGFydHNXaXRoKFJTQ19DT05URU5UX1RZUEVfSEVBREVSKVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ09ORklHX09VVFBVVCA9PT0gJ2V4cG9ydCcpIHtcbiAgICAgICAgaWYgKCFpc0ZsaWdodFJlc3BvbnNlKSB7XG4gICAgICAgICAgaXNGbGlnaHRSZXNwb25zZSA9IGNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoJ3RleHQvcGxhaW4nKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgZmV0Y2ggcmV0dXJucyBzb21ldGhpbmcgZGlmZmVyZW50IHRoYW4gZmxpZ2h0IHJlc3BvbnNlIGhhbmRsZSBpdCBsaWtlIGEgbXBhIG5hdmlnYXRpb25cbiAgICAvLyBJZiB0aGUgZmV0Y2ggd2FzIG5vdCAyMDAsIHdlIGFsc28gaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgIGlmICghaXNGbGlnaHRSZXNwb25zZSB8fCAhcmVzLm9rIHx8ICFyZXMuYm9keSkge1xuICAgICAgLy8gaW4gY2FzZSB0aGUgb3JpZ2luYWwgVVJMIGNhbWUgd2l0aCBhIGhhc2gsIHByZXNlcnZlIGl0IGJlZm9yZSByZWRpcmVjdGluZyB0byB0aGUgbmV3IFVSTFxuICAgICAgaWYgKHVybC5oYXNoKSB7XG4gICAgICAgIHJlc3BvbnNlVXJsLmhhc2ggPSB1cmwuaGFzaFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZG9NcGFOYXZpZ2F0aW9uKHJlc3BvbnNlVXJsLnRvU3RyaW5nKCkpXG4gICAgfVxuXG4gICAgLy8gV2UgbWF5IG5hdmlnYXRlIHRvIGEgcGFnZSB0aGF0IHJlcXVpcmVzIGEgZGlmZmVyZW50IFdlYnBhY2sgcnVudGltZS5cbiAgICAvLyBJbiBwcm9kLCBldmVyeSBwYWdlIHdpbGwgaGF2ZSB0aGUgc2FtZSBXZWJwYWNrIHJ1bnRpbWUuXG4gICAgLy8gSW4gZGV2LCB0aGUgV2VicGFjayBydW50aW1lIGlzIG1pbmltYWwgZm9yIGVhY2ggcGFnZS5cbiAgICAvLyBXZSBuZWVkIHRvIGVuc3VyZSB0aGUgV2VicGFjayBydW50aW1lIGlzIHVwZGF0ZWQgYmVmb3JlIGV4ZWN1dGluZyBjbGllbnQtc2lkZSBKUyBvZiB0aGUgbmV3IHBhZ2UuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgYXdhaXQgKFxuICAgICAgICByZXF1aXJlKCcuLi8uLi9kZXYvaG90LXJlbG9hZGVyL2FwcC9ob3QtcmVsb2FkZXItYXBwJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vZGV2L2hvdC1yZWxvYWRlci9hcHAvaG90LXJlbG9hZGVyLWFwcCcpXG4gICAgICApLndhaXRGb3JXZWJwYWNrUnVudGltZUhvdFVwZGF0ZSgpXG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHRoZSBgZmV0Y2hgIHJlYWRhYmxlIHN0cmVhbSB0aGF0IGNhbiBiZSB1bndyYXBwZWQgYnkgYFJlYWN0LnVzZWAuXG4gICAgY29uc3QgZmxpZ2h0U3RyZWFtID0gcG9zdHBvbmVkXG4gICAgICA/IGNyZWF0ZVVuY2xvc2luZ1ByZWZldGNoU3RyZWFtKHJlcy5ib2R5KVxuICAgICAgOiByZXMuYm9keVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgKGNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0oXG4gICAgICBmbGlnaHRTdHJlYW1cbiAgICApIGFzIFByb21pc2U8TmF2aWdhdGlvbkZsaWdodFJlc3BvbnNlPilcblxuICAgIGlmIChnZXRBcHBCdWlsZElkKCkgIT09IHJlc3BvbnNlLmIpIHtcbiAgICAgIHJldHVybiBkb01wYU5hdmlnYXRpb24ocmVzLnVybClcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmxpZ2h0RGF0YTogbm9ybWFsaXplRmxpZ2h0RGF0YShyZXNwb25zZS5mKSxcbiAgICAgIGNhbm9uaWNhbFVybDogY2Fub25pY2FsVXJsLFxuICAgICAgY291bGRCZUludGVyY2VwdGVkOiBpbnRlcmNlcHRpb24sXG4gICAgICBwcmVyZW5kZXJlZDogcmVzcG9uc2UuUyxcbiAgICAgIHBvc3Rwb25lZCxcbiAgICAgIHN0YWxlVGltZSxcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICghYWJvcnRDb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGZldGNoIFJTQyBwYXlsb2FkIGZvciAke3VybH0uIEZhbGxpbmcgYmFjayB0byBicm93c2VyIG5hdmlnYXRpb24uYCxcbiAgICAgICAgZXJyXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gSWYgZmV0Y2ggZmFpbHMgaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgIC8vIFRPRE8tQVBQOiBBZGQgYSB0ZXN0IGZvciB0aGUgY2FzZSB3aGVyZSBhIENPUlMgcmVxdWVzdCBmYWlscywgZS5nLiBleHRlcm5hbCB1cmwgcmVkaXJlY3QgY29taW5nIGZyb20gdGhlIHJlc3BvbnNlLlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvaXNzdWVzLzQzNjA1I2lzc3VlY29tbWVudC0xNDUxNjE3NTIxIGZvciBhIHJlcHJvZHVjdGlvbi5cbiAgICByZXR1cm4ge1xuICAgICAgZmxpZ2h0RGF0YTogdXJsLnRvU3RyaW5nKCksXG4gICAgICBjYW5vbmljYWxVcmw6IHVuZGVmaW5lZCxcbiAgICAgIGNvdWxkQmVJbnRlcmNlcHRlZDogZmFsc2UsXG4gICAgICBwcmVyZW5kZXJlZDogZmFsc2UsXG4gICAgICBwb3N0cG9uZWQ6IGZhbHNlLFxuICAgICAgc3RhbGVUaW1lOiAtMSxcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBpcyBhIHN1YnNldCBvZiB0aGUgc3RhbmRhcmQgUmVzcG9uc2UgdHlwZS4gV2UgdXNlIGEgY3VzdG9tIHR5cGUgZm9yXG4vLyB0aGlzIHNvIHdlIGNhbiBsaW1pdCB3aGljaCBkZXRhaWxzIGFib3V0IHRoZSByZXNwb25zZSBsZWFrIGludG8gdGhlIHJlc3Qgb2Zcbi8vIHRoZSBjb2RlYmFzZS4gRm9yIGV4YW1wbGUsIHRoZXJlJ3Mgc29tZSBjdXN0b20gbG9naWMgZm9yIG1hbnVhbGx5IGZvbGxvd2luZ1xuLy8gcmVkaXJlY3RzLCBzbyBcInJlZGlyZWN0ZWRcIiBpbiB0aGlzIHR5cGUgY291bGQgYmUgYSBjb21wb3NpdGUgb2YgbXVsdGlwbGVcbi8vIGJyb3dzZXIgZmV0Y2ggY2FsbHM7IGhvd2V2ZXIsIHRoaXMgZmFjdCBzaG91bGQgbm90IGxlYWsgdG8gdGhlIGNhbGxlci5cbmV4cG9ydCB0eXBlIFJTQ1Jlc3BvbnNlID0ge1xuICBvazogYm9vbGVhblxuICByZWRpcmVjdGVkOiBib29sZWFuXG4gIGhlYWRlcnM6IEhlYWRlcnNcbiAgYm9keTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4gfCBudWxsXG4gIHN0YXR1czogbnVtYmVyXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVGZXRjaChcbiAgdXJsOiBVUkwsXG4gIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzLFxuICBmZXRjaFByaW9yaXR5OiAnYXV0bycgfCAnaGlnaCcgfCAnbG93JyB8IG51bGwsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsXG4pOiBQcm9taXNlPFJTQ1Jlc3BvbnNlPiB7XG4gIC8vIFRPRE86IEluIG91dHB1dDogXCJleHBvcnRcIiBtb2RlLCB0aGUgaGVhZGVycyBkbyBub3RoaW5nLiBPbWl0IHRoZW0gKGFuZCB0aGVcbiAgLy8gY2FjaGUgYnVzdGluZyBzZWFyY2ggcGFyYW0pIGZyb20gdGhlIHJlcXVlc3Qgc28gdGhleSdyZVxuICAvLyBtYXhpbWFsbHkgY2FjaGVhYmxlLlxuXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFICYmIGZldGNoUHJpb3JpdHkgIT09IG51bGwpIHtcbiAgICBoZWFkZXJzWydOZXh0LVRlc3QtRmV0Y2gtUHJpb3JpdHknXSA9IGZldGNoUHJpb3JpdHlcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQpIHtcbiAgICBoZWFkZXJzWyd4LWRlcGxveW1lbnQtaWQnXSA9IHByb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRFxuICB9XG5cbiAgY29uc3QgZmV0Y2hPcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAvLyBCYWNrd2FyZHMgY29tcGF0IGZvciBvbGRlciBicm93c2Vycy4gYHNhbWUtb3JpZ2luYCBpcyB0aGUgZGVmYXVsdCBpbiBtb2Rlcm4gYnJvd3NlcnMuXG4gICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicsXG4gICAgaGVhZGVycyxcbiAgICBwcmlvcml0eTogZmV0Y2hQcmlvcml0eSB8fCB1bmRlZmluZWQsXG4gICAgc2lnbmFsLFxuICB9XG4gIC8vIGBmZXRjaFVybGAgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGZyb20gYHVybGAgYmVjYXVzZSB3ZSBhZGQgYSBjYWNoZS1idXN0aW5nXG4gIC8vIHNlYXJjaCBwYXJhbSB0byBpdC4gVGhpcyBzaG91bGQgbm90IGxlYWsgb3V0c2lkZSBvZiB0aGlzIGZ1bmN0aW9uLCBzbyB3ZVxuICAvLyB0cmFjayB0aGVtIHNlcGFyYXRlbHkuXG4gIGxldCBmZXRjaFVybCA9IG5ldyBVUkwodXJsKVxuICBzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbShmZXRjaFVybCwgaGVhZGVycylcbiAgbGV0IGJyb3dzZXJSZXNwb25zZSA9IGF3YWl0IGZldGNoKGZldGNoVXJsLCBmZXRjaE9wdGlvbnMpXG5cbiAgLy8gSWYgdGhlIHNlcnZlciByZXNwb25kcyB3aXRoIGEgcmVkaXJlY3QgKGUuZy4gMzA3KSwgYW5kIHRoZSByZWRpcmVjdGVkXG4gIC8vIGxvY2F0aW9uIGRvZXMgbm90IGNvbnRhaW4gdGhlIGNhY2hlIGJ1c3Rpbmcgc2VhcmNoIHBhcmFtIHNldCBpbiB0aGVcbiAgLy8gb3JpZ2luYWwgcmVxdWVzdCwgdGhlIHJlc3BvbnNlIGlzIGxpa2VseSBpbnZhbGlkIOKAlCB3aGVuIGZvbGxvd2luZyB0aGVcbiAgLy8gcmVkaXJlY3QsIHRoZSBicm93c2VyIGZvcndhcmRzIHRoZSByZXF1ZXN0IGhlYWRlcnMsIGJ1dCBzaW5jZSB0aGUgY2FjaGVcbiAgLy8gYnVzdGluZyBzZWFyY2ggcGFyYW0gaXMgbWlzc2luZywgdGhlIHNlcnZlciB3aWxsIHJlamVjdCB0aGUgcmVxdWVzdCBkdWUgdG9cbiAgLy8gYSBtaXNtYXRjaC5cbiAgLy9cbiAgLy8gSWRlYWxseSwgd2Ugd291bGQgYmUgYWJsZSB0byBpbnRlcmNlcHQgdGhlIHJlZGlyZWN0IHJlc3BvbnNlIGFuZCBwZXJmb3JtIGl0XG4gIC8vIG1hbnVhbGx5LCBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGJyb3dzZXIgYXV0b21hdGljYWxseSBmb2xsb3cgaXQsIGJ1dCB0aGlzXG4gIC8vIGlzIG5vdCBhbGxvd2VkIGJ5IHRoZSBmZXRjaCBBUEkuXG4gIC8vXG4gIC8vIFNvIGluc3RlYWQsIHdlIG11c3QgXCJyZXBsYXlcIiB0aGUgcmVkaXJlY3QgYnkgZmV0Y2hpbmcgdGhlIG5ldyBsb2NhdGlvblxuICAvLyBhZ2FpbiwgYnV0IHRoaXMgdGltZSB3ZSdsbCBhcHBlbmQgdGhlIGNhY2hlIGJ1c3Rpbmcgc2VhcmNoIHBhcmFtIHRvIHByZXZlbnRcbiAgLy8gYSBtaXNtYXRjaC5cbiAgLy9cbiAgLy8gVE9ETzogV2UgY2FuIG9wdGltaXplIE5leHQuanMncyBidWlsdC1pbiBtaWRkbGV3YXJlIEFQSXMgYnkgcmV0dXJuaW5nIGFcbiAgLy8gY3VzdG9tIHN0YXR1cyBjb2RlLCB0byBwcmV2ZW50IHRoZSBicm93c2VyIGZyb20gYXV0b21hdGljYWxseSBmb2xsb3dpbmcgaXQuXG4gIC8vXG4gIC8vIFRoaXMgZG9lcyBub3QgYWZmZWN0IFNlcnZlciBBY3Rpb24tYmFzZWQgcmVkaXJlY3RzOyB0aG9zZSBhcmUgZW5jb2RlZFxuICAvLyBkaWZmZXJlbnRseSwgYXMgcGFydCBvZiB0aGUgRmxpZ2h0IGJvZHkuIEl0IG9ubHkgYWZmZWN0cyByZWRpcmVjdHMgdGhhdFxuICAvLyBvY2N1ciBpbiBhIG1pZGRsZXdhcmUgb3IgYSB0aGlyZC1wYXJ0eSBwcm94eS5cblxuICBsZXQgcmVkaXJlY3RlZCA9IGJyb3dzZXJSZXNwb25zZS5yZWRpcmVjdGVkXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1ZBTElEQVRFX1JTQ19SRVFVRVNUX0hFQURFUlMpIHtcbiAgICAvLyBUaGlzIGlzIHRvIHByZXZlbnQgYSByZWRpcmVjdCBsb29wLiBTYW1lIGxpbWl0IHVzZWQgYnkgQ2hyb21lLlxuICAgIGNvbnN0IE1BWF9SRURJUkVDVFMgPSAyMFxuICAgIGZvciAobGV0IG4gPSAwOyBuIDwgTUFYX1JFRElSRUNUUzsgbisrKSB7XG4gICAgICBpZiAoIWJyb3dzZXJSZXNwb25zZS5yZWRpcmVjdGVkKSB7XG4gICAgICAgIC8vIFRoZSBzZXJ2ZXIgZGlkIG5vdCBwZXJmb3JtIGEgcmVkaXJlY3QuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjb25zdCByZXNwb25zZVVybCA9IG5ldyBVUkwoYnJvd3NlclJlc3BvbnNlLnVybCwgZmV0Y2hVcmwpXG4gICAgICBpZiAocmVzcG9uc2VVcmwub3JpZ2luICE9PSBmZXRjaFVybC5vcmlnaW4pIHtcbiAgICAgICAgLy8gVGhlIHNlcnZlciByZWRpcmVjdGVkIHRvIGFuIGV4dGVybmFsIFVSTC4gVGhlIHJlc3Qgb2YgdGhlIGxvZ2ljIGJlbG93XG4gICAgICAgIC8vIGlzIG5vdCByZWxldmFudCwgYmVjYXVzZSBpdCBvbmx5IGFwcGxpZXMgdG8gaW50ZXJuYWwgcmVkaXJlY3RzLlxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICByZXNwb25zZVVybC5zZWFyY2hQYXJhbXMuZ2V0KE5FWFRfUlNDX1VOSU9OX1FVRVJZKSA9PT1cbiAgICAgICAgZmV0Y2hVcmwuc2VhcmNoUGFyYW1zLmdldChORVhUX1JTQ19VTklPTl9RVUVSWSlcbiAgICAgICkge1xuICAgICAgICAvLyBUaGUgcmVkaXJlY3RlZCBVUkwgYWxyZWFkeSBpbmNsdWRlcyB0aGUgY2FjaGUgYnVzdGluZyBzZWFyY2ggcGFyYW0uXG4gICAgICAgIC8vIFRoaXMgd2FzIHByb2JhYmx5IGludGVudGlvbmFsLiBSZWdhcmRsZXNzLCB0aGVyZSdzIG5vIHJlYXNvbiB0b1xuICAgICAgICAvLyBpc3N1ZSBhbm90aGVyIHJlcXVlc3QgdG8gdGhpcyBVUkwgYmVjYXVzZSBpdCBhbHJlYWR5IGhhcyB0aGUgcGFyYW1cbiAgICAgICAgLy8gdmFsdWUgdGhhdCB3ZSB3b3VsZCBoYXZlIGFkZGVkIGJlbG93LlxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgLy8gVGhlIFJTQyByZXF1ZXN0IHdhcyByZWRpcmVjdGVkLiBBc3N1bWUgdGhlIHJlc3BvbnNlIGlzIGludmFsaWQuXG4gICAgICAvL1xuICAgICAgLy8gQXBwZW5kIHRoZSBjYWNoZSBidXN0aW5nIHNlYXJjaCBwYXJhbSB0byB0aGUgcmVkaXJlY3RlZCBVUkwgYW5kXG4gICAgICAvLyBmZXRjaCBhZ2Fpbi5cbiAgICAgIGZldGNoVXJsID0gbmV3IFVSTChyZXNwb25zZVVybClcbiAgICAgIHNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtKGZldGNoVXJsLCBoZWFkZXJzKVxuICAgICAgYnJvd3NlclJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZmV0Y2hVcmwsIGZldGNoT3B0aW9ucylcbiAgICAgIC8vIFdlIGp1c3QgcGVyZm9ybWVkIGEgbWFudWFsIHJlZGlyZWN0LCBzbyB0aGlzIGlzIG5vdyB0cnVlLlxuICAgICAgcmVkaXJlY3RlZCA9IHRydWVcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGNhY2hlIGJ1c3Rpbmcgc2VhcmNoIHBhcmFtIGZyb20gdGhlIHJlc3BvbnNlIFVSTCwgdG8gcHJldmVudCBpdFxuICAvLyBmcm9tIGxlYWtpbmcgb3V0c2lkZSBvZiB0aGlzIGZ1bmN0aW9uLlxuICBjb25zdCByZXNwb25zZVVybCA9IG5ldyBVUkwoYnJvd3NlclJlc3BvbnNlLnVybCwgZmV0Y2hVcmwpXG4gIHJlc3BvbnNlVXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoTkVYVF9SU0NfVU5JT05fUVVFUlkpXG5cbiAgY29uc3QgcnNjUmVzcG9uc2U6IFJTQ1Jlc3BvbnNlID0ge1xuICAgIHVybDogcmVzcG9uc2VVcmwuaHJlZixcblxuICAgIC8vIFRoaXMgaXMgdHJ1ZSBpZiBhbnkgcmVkaXJlY3RzIG9jY3VycmVkLCBlaXRoZXIgYXV0b21hdGljYWxseSBieSB0aGVcbiAgICAvLyBicm93c2VyLCBvciBtYW51YWxseSBieSB1cy4gU28gaXQncyBkaWZmZXJlbnQgZnJvbVxuICAgIC8vIGBicm93c2VyUmVzcG9uc2UucmVkaXJlY3RlZGAsIHdoaWNoIG9ubHkgdGVsbHMgdXMgd2hldGhlciB0aGUgYnJvd3NlclxuICAgIC8vIGZvbGxvd2VkIGEgcmVkaXJlY3QsIGFuZCBvbmx5IGZvciB0aGUgbGFzdCByZXNwb25zZSBpbiB0aGUgY2hhaW4uXG4gICAgcmVkaXJlY3RlZCxcblxuICAgIC8vIFRoZXNlIGNhbiBiZSBjb3BpZWQgZnJvbSB0aGUgbGFzdCBicm93c2VyIHJlc3BvbnNlIHdlIHJlY2VpdmVkLiBXZVxuICAgIC8vIGludGVudGlvbmFsbHkgb25seSBleHBvc2UgdGhlIHN1YnNldCBvZiBmaWVsZHMgdGhhdCBhcmUgYWN0dWFsbHkgdXNlZFxuICAgIC8vIGVsc2V3aGVyZSBpbiB0aGUgY29kZWJhc2UuXG4gICAgb2s6IGJyb3dzZXJSZXNwb25zZS5vayxcbiAgICBoZWFkZXJzOiBicm93c2VyUmVzcG9uc2UuaGVhZGVycyxcbiAgICBib2R5OiBicm93c2VyUmVzcG9uc2UuYm9keSxcbiAgICBzdGF0dXM6IGJyb3dzZXJSZXNwb25zZS5zdGF0dXMsXG4gIH1cblxuICByZXR1cm4gcnNjUmVzcG9uc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0oXG4gIGZsaWdodFN0cmVhbTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT5cbik6IFByb21pc2U8dW5rbm93bj4ge1xuICByZXR1cm4gY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtKGZsaWdodFN0cmVhbSwge1xuICAgIGNhbGxTZXJ2ZXIsXG4gICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgfSlcbn1cblxuZnVuY3Rpb24gY3JlYXRlVW5jbG9zaW5nUHJlZmV0Y2hTdHJlYW0oXG4gIG9yaWdpbmFsRmxpZ2h0U3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PlxuKTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4ge1xuICAvLyBXaGVuIFBQUiBpcyBlbmFibGVkLCBwcmVmZXRjaCBzdHJlYW1zIG1heSBjb250YWluIHJlZmVyZW5jZXMgdGhhdCBuZXZlclxuICAvLyByZXNvbHZlLCBiZWNhdXNlIHRoYXQncyBob3cgd2UgZW5jb2RlIGR5bmFtaWMgZGF0YSBhY2Nlc3MuIEluIHRoZSBkZWNvZGVkXG4gIC8vIG9iamVjdCByZXR1cm5lZCBieSB0aGUgRmxpZ2h0IGNsaWVudCwgdGhlc2UgYXJlIHJlaWZpZWQgaW50byBoYW5naW5nXG4gIC8vIHByb21pc2VzIHRoYXQgc3VzcGVuZCBkdXJpbmcgcmVuZGVyLCB3aGljaCBpcyBlZmZlY3RpdmVseSB3aGF0IHdlIHdhbnQuXG4gIC8vIFRoZSBVSSByZXNvbHZlcyB3aGVuIGl0IHN3aXRjaGVzIHRvIHRoZSBkeW5hbWljIGRhdGEgc3RyZWFtXG4gIC8vICh2aWEgdXNlRGVmZXJyZWRWYWx1ZShkeW5hbWljLCBzdGF0aWMpKS5cbiAgLy9cbiAgLy8gSG93ZXZlciwgdGhlIEZsaWdodCBpbXBsZW1lbnRhdGlvbiBjdXJyZW50bHkgZXJyb3JzIGlmIHRoZSBzZXJ2ZXIgY2xvc2VzXG4gIC8vIHRoZSByZXNwb25zZSBiZWZvcmUgYWxsIHRoZSByZWZlcmVuY2VzIGFyZSByZXNvbHZlZC4gQXMgYSBjaGVhdCB0byB3b3JrXG4gIC8vIGFyb3VuZCB0aGlzLCB3ZSB3cmFwIHRoZSBvcmlnaW5hbCBzdHJlYW0gaW4gYSBuZXcgc3RyZWFtIHRoYXQgbmV2ZXIgY2xvc2VzLFxuICAvLyBhbmQgdGhlcmVmb3JlIGRvZXNuJ3QgZXJyb3IuXG4gIGNvbnN0IHJlYWRlciA9IG9yaWdpbmFsRmxpZ2h0U3RyZWFtLmdldFJlYWRlcigpXG4gIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgIGFzeW5jIHB1bGwoY29udHJvbGxlcikge1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKVxuICAgICAgICBpZiAoIWRvbmUpIHtcbiAgICAgICAgICAvLyBQYXNzIHRvIHRoZSB0YXJnZXQgc3RyZWFtIGFuZCBrZWVwIGNvbnN1bWluZyB0aGUgRmxpZ2h0IHJlc3BvbnNlXG4gICAgICAgICAgLy8gZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSlcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIC8vIFRoZSBzZXJ2ZXIgc3RyZWFtIGhhcyBjbG9zZWQuIEV4aXQsIGJ1dCBpbnRlbnRpb25hbGx5IGRvIG5vdCBjbG9zZVxuICAgICAgICAvLyB0aGUgdGFyZ2V0IHN0cmVhbS5cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfSxcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVGZXRjaCIsImNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0iLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIiwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtQnJvd3NlciIsImRvTXBhTmF2aWdhdGlvbiIsInVybCIsImZsaWdodERhdGEiLCJ1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIiLCJVUkwiLCJsb2NhdGlvbiIsIm9yaWdpbiIsInRvU3RyaW5nIiwiY2Fub25pY2FsVXJsIiwidW5kZWZpbmVkIiwiY291bGRCZUludGVyY2VwdGVkIiwicHJlcmVuZGVyZWQiLCJwb3N0cG9uZWQiLCJzdGFsZVRpbWUiLCJhYm9ydENvbnRyb2xsZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiYWJvcnQiLCJvcHRpb25zIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJuZXh0VXJsIiwicHJlZmV0Y2hLaW5kIiwiaGVhZGVycyIsIlJTQ19IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsInByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3QiLCJpc0htclJlZnJlc2giLCJQcmVmZXRjaEtpbmQiLCJBVVRPIiwiTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX1VSTCIsInJlcyIsImZldGNoUHJpb3JpdHkiLCJURU1QT1JBUlkiLCJfX05FWFRfQ09ORklHX09VVFBVVCIsInBhdGhuYW1lIiwiZW5kc1dpdGgiLCJzaWduYWwiLCJyZXNwb25zZVVybCIsInJlZGlyZWN0ZWQiLCJjb250ZW50VHlwZSIsImdldCIsImludGVyY2VwdGlvbiIsImluY2x1ZGVzIiwiTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSIiwic3RhbGVUaW1lSGVhZGVyU2Vjb25kcyIsIk5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSIiwicGFyc2VJbnQiLCJpc0ZsaWdodFJlc3BvbnNlIiwic3RhcnRzV2l0aCIsIlJTQ19DT05URU5UX1RZUEVfSEVBREVSIiwib2siLCJib2R5IiwiaGFzaCIsIlRVUkJPUEFDSyIsInJlcXVpcmUiLCJ3YWl0Rm9yV2VicGFja1J1bnRpbWVIb3RVcGRhdGUiLCJmbGlnaHRTdHJlYW0iLCJjcmVhdGVVbmNsb3NpbmdQcmVmZXRjaFN0cmVhbSIsInJlc3BvbnNlIiwiZ2V0QXBwQnVpbGRJZCIsImIiLCJub3JtYWxpemVGbGlnaHREYXRhIiwiZiIsIlMiLCJlcnIiLCJhYm9ydGVkIiwiY29uc29sZSIsImVycm9yIiwiX19ORVhUX1RFU1RfTU9ERSIsIk5FWFRfREVQTE9ZTUVOVF9JRCIsImZldGNoT3B0aW9ucyIsImNyZWRlbnRpYWxzIiwicHJpb3JpdHkiLCJmZXRjaFVybCIsInNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtIiwiYnJvd3NlclJlc3BvbnNlIiwiZmV0Y2giLCJfX05FWFRfQ0xJRU5UX1ZBTElEQVRFX1JTQ19SRVFVRVNUX0hFQURFUlMiLCJNQVhfUkVESVJFQ1RTIiwibiIsInNlYXJjaFBhcmFtcyIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiZGVsZXRlIiwicnNjUmVzcG9uc2UiLCJocmVmIiwic3RhdHVzIiwiY2FsbFNlcnZlciIsImZpbmRTb3VyY2VNYXBVUkwiLCJvcmlnaW5hbEZsaWdodFN0cmVhbSIsInJlYWRlciIsImdldFJlYWRlciIsIlJlYWRhYmxlU3RyZWFtIiwicHVsbCIsImNvbnRyb2xsZXIiLCJkb25lIiwidmFsdWUiLCJyZWFkIiwiZW5xdWV1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js": /*!***********************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js ***! \***********************************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSegmentValue\", ({\n enumerable: true,\n get: function() {\n return getSegmentValue;\n }\n}));\nfunction getSegmentValue(segment) {\n return Array.isArray(segment) ? segment[1] : segment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-segment-value.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2dldC1zZWdtZW50LXZhbHVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxnQkFBZ0JDLE9BQWdCO0lBQzlDLE9BQU9DLE1BQU1DLE9BQU8sQ0FBQ0YsV0FBV0EsT0FBTyxDQUFDLEVBQUUsR0FBR0E7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWdtZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWdtZW50VmFsdWUoc2VnbWVudDogU2VnbWVudCkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShzZWdtZW50KSA/IHNlZ21lbnRbMV0gOiBzZWdtZW50XG59XG4iXSwibmFtZXMiOlsiZ2V0U2VnbWVudFZhbHVlIiwic2VnbWVudCIsIkFycmF5IiwiaXNBcnJheSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js": /*!********************************************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js ***! \********************************************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hasInterceptionRouteInCurrentTree\", ({\n enumerable: true,\n get: function() {\n return hasInterceptionRouteInCurrentTree;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ../../../../shared/lib/router/utils/interception-routes */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nfunction hasInterceptionRouteInCurrentTree(param) {\n let [segment, parallelRoutes] = param;\n // If we have a dynamic segment, it's marked as an interception route by the presence of the `i` suffix.\n if (Array.isArray(segment) && (segment[2] === 'di' || segment[2] === 'ci')) {\n return true;\n }\n // If segment is not an array, apply the existing string-based check\n if (typeof segment === 'string' && (0, _interceptionroutes.isInterceptionRouteAppPath)(segment)) {\n return true;\n }\n // Iterate through parallelRoutes if they exist\n if (parallelRoutes) {\n for(const key in parallelRoutes){\n if (hasInterceptionRouteInCurrentTree(parallelRoutes[key])) {\n return true;\n }\n }\n }\n return false;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-interception-route-in-current-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7cUVBR2dCQTs7O2VBQUFBOzs7Z0RBRjJCO0FBRXBDLFNBQVNBLGtDQUFrQyxLQUc5QjtJQUg4QixLQUNoREMsU0FDQUMsZUFDa0IsR0FIOEI7SUFJaEQsd0dBQXdHO0lBQ3hHLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0gsWUFBYUEsQ0FBQUEsT0FBTyxDQUFDLEVBQUUsS0FBSyxRQUFRQSxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUcsRUFBSTtRQUMxRSxPQUFPO0lBQ1Q7SUFFQSxvRUFBb0U7SUFDcEUsSUFBSSxPQUFPQSxZQUFZLFlBQVlJLENBQUFBLEdBQUFBLG9CQUFBQSwwQkFBQUEsRUFBMkJKLFVBQVU7UUFDdEUsT0FBTztJQUNUO0lBRUEsK0NBQStDO0lBQy9DLElBQUlDLGdCQUFnQjtRQUNsQixJQUFLLE1BQU1JLE9BQU9KLGVBQWdCO1lBQ2hDLElBQUlGLGtDQUFrQ0UsY0FBYyxDQUFDSSxJQUFJLEdBQUc7Z0JBQzFELE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvaGFzLWludGVyY2VwdGlvbi1yb3V0ZS1pbi1jdXJyZW50LXRyZWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGggfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbnRlcmNlcHRpb24tcm91dGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlKFtcbiAgc2VnbWVudCxcbiAgcGFyYWxsZWxSb3V0ZXMsXG5dOiBGbGlnaHRSb3V0ZXJTdGF0ZSk6IGJvb2xlYW4ge1xuICAvLyBJZiB3ZSBoYXZlIGEgZHluYW1pYyBzZWdtZW50LCBpdCdzIG1hcmtlZCBhcyBhbiBpbnRlcmNlcHRpb24gcm91dGUgYnkgdGhlIHByZXNlbmNlIG9mIHRoZSBgaWAgc3VmZml4LlxuICBpZiAoQXJyYXkuaXNBcnJheShzZWdtZW50KSAmJiAoc2VnbWVudFsyXSA9PT0gJ2RpJyB8fCBzZWdtZW50WzJdID09PSAnY2knKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBJZiBzZWdtZW50IGlzIG5vdCBhbiBhcnJheSwgYXBwbHkgdGhlIGV4aXN0aW5nIHN0cmluZy1iYXNlZCBjaGVja1xuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnICYmIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHNlZ21lbnQpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBwYXJhbGxlbFJvdXRlcyBpZiB0aGV5IGV4aXN0XG4gIGlmIChwYXJhbGxlbFJvdXRlcykge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKSB7XG4gICAgICBpZiAoaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlKHBhcmFsbGVsUm91dGVzW2tleV0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iXSwibmFtZXMiOlsiaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlIiwic2VnbWVudCIsInBhcmFsbGVsUm91dGVzIiwiQXJyYXkiLCJpc0FycmF5IiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJrZXkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js ***! \*****************************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_HMR_REFRESH: function() {\n return ACTION_HMR_REFRESH;\n },\n ACTION_NAVIGATE: function() {\n return ACTION_NAVIGATE;\n },\n ACTION_PREFETCH: function() {\n return ACTION_PREFETCH;\n },\n ACTION_REFRESH: function() {\n return ACTION_REFRESH;\n },\n ACTION_RESTORE: function() {\n return ACTION_RESTORE;\n },\n ACTION_SERVER_ACTION: function() {\n return ACTION_SERVER_ACTION;\n },\n ACTION_SERVER_PATCH: function() {\n return ACTION_SERVER_PATCH;\n },\n PrefetchCacheEntryStatus: function() {\n return PrefetchCacheEntryStatus;\n },\n PrefetchKind: function() {\n return PrefetchKind;\n }\n});\nconst ACTION_REFRESH = 'refresh';\nconst ACTION_NAVIGATE = 'navigate';\nconst ACTION_RESTORE = 'restore';\nconst ACTION_SERVER_PATCH = 'server-patch';\nconst ACTION_PREFETCH = 'prefetch';\nconst ACTION_HMR_REFRESH = 'hmr-refresh';\nconst ACTION_SERVER_ACTION = 'server-action';\nvar PrefetchKind = /*#__PURE__*/ function(PrefetchKind) {\n PrefetchKind[\"AUTO\"] = \"auto\";\n PrefetchKind[\"FULL\"] = \"full\";\n PrefetchKind[\"TEMPORARY\"] = \"temporary\";\n return PrefetchKind;\n}({});\nvar PrefetchCacheEntryStatus = /*#__PURE__*/ function(PrefetchCacheEntryStatus) {\n PrefetchCacheEntryStatus[\"fresh\"] = \"fresh\";\n PrefetchCacheEntryStatus[\"reusable\"] = \"reusable\";\n PrefetchCacheEntryStatus[\"expired\"] = \"expired\";\n PrefetchCacheEntryStatus[\"stale\"] = \"stale\";\n return PrefetchCacheEntryStatus;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=router-reducer-types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVlhQSxrQkFBa0I7ZUFBbEJBOztJQUpBQyxlQUFlO2VBQWZBOztJQUdBQyxlQUFlO2VBQWZBOztJQUpBQyxjQUFjO2VBQWRBOztJQUVBQyxjQUFjO2VBQWRBOztJQUlBQyxvQkFBb0I7ZUFBcEJBOztJQUhBQyxtQkFBbUI7ZUFBbkJBOztJQXlNREMsd0JBQXdCO2VBQXhCQTs7SUFoRUFDLFlBQVk7ZUFBWkE7OztBQTVJTCxNQUFNTCxpQkFBaUI7QUFDdkIsTUFBTUYsa0JBQWtCO0FBQ3hCLE1BQU1HLGlCQUFpQjtBQUN2QixNQUFNRSxzQkFBc0I7QUFDNUIsTUFBTUosa0JBQWtCO0FBQ3hCLE1BQU1GLHFCQUFxQjtBQUMzQixNQUFNSyx1QkFBdUI7QUFzSTdCLElBQUtHLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7O1dBQUFBOztBQWdFTCxJQUFLRCwyQkFBQUEsV0FBQUEsR0FBQUEsU0FBQUEsd0JBQUFBOzs7OztXQUFBQSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7XG4gIEZsaWdodFJvdXRlclN0YXRlLFxuICBGbGlnaHRTZWdtZW50UGF0aCxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcblxuZXhwb3J0IGNvbnN0IEFDVElPTl9SRUZSRVNIID0gJ3JlZnJlc2gnXG5leHBvcnQgY29uc3QgQUNUSU9OX05BVklHQVRFID0gJ25hdmlnYXRlJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9SRVNUT1JFID0gJ3Jlc3RvcmUnXG5leHBvcnQgY29uc3QgQUNUSU9OX1NFUlZFUl9QQVRDSCA9ICdzZXJ2ZXItcGF0Y2gnXG5leHBvcnQgY29uc3QgQUNUSU9OX1BSRUZFVENIID0gJ3ByZWZldGNoJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9ITVJfUkVGUkVTSCA9ICdobXItcmVmcmVzaCdcbmV4cG9ydCBjb25zdCBBQ1RJT05fU0VSVkVSX0FDVElPTiA9ICdzZXJ2ZXItYWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJDaGFuZ2VCeVNlcnZlclJlc3BvbnNlID0gKHtcbiAgbmF2aWdhdGVkQXQsXG4gIHByZXZpb3VzVHJlZSxcbiAgc2VydmVyUmVzcG9uc2UsXG59OiB7XG4gIG5hdmlnYXRlZEF0OiBudW1iZXJcbiAgcHJldmlvdXNUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBzZXJ2ZXJSZXNwb25zZTogRmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdFxufSkgPT4gdm9pZFxuXG5leHBvcnQgaW50ZXJmYWNlIE11dGFibGUge1xuICBtcGFOYXZpZ2F0aW9uPzogYm9vbGVhblxuICBwYXRjaGVkVHJlZT86IEZsaWdodFJvdXRlclN0YXRlXG4gIGNhbm9uaWNhbFVybD86IHN0cmluZ1xuICBzY3JvbGxhYmxlU2VnbWVudHM/OiBGbGlnaHRTZWdtZW50UGF0aFtdXG4gIHBlbmRpbmdQdXNoPzogYm9vbGVhblxuICBjYWNoZT86IENhY2hlTm9kZVxuICBwcmVmZXRjaENhY2hlPzogQXBwUm91dGVyU3RhdGVbJ3ByZWZldGNoQ2FjaGUnXVxuICBoYXNoRnJhZ21lbnQ/OiBzdHJpbmdcbiAgc2hvdWxkU2Nyb2xsPzogYm9vbGVhblxuICBwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZT86IGJvb2xlYW5cbiAgb25seUhhc2hDaGFuZ2U/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyQWN0aW9uTXV0YWJsZSBleHRlbmRzIE11dGFibGUge1xuICBpbkZsaWdodFNlcnZlckFjdGlvbj86IFByb21pc2U8YW55PiB8IG51bGxcbn1cblxuLyoqXG4gKiBSZWZyZXNoIHRyaWdnZXJzIGEgcmVmcmVzaCBvZiB0aGUgZnVsbCBwYWdlIGRhdGEuXG4gKiAtIGZldGNoZXMgdGhlIEZsaWdodCBkYXRhIGFuZCBmaWxscyByc2MgYXQgdGhlIHJvb3Qgb2YgdGhlIGNhY2hlLlxuICogLSBUaGUgcm91dGVyIHN0YXRlIGlzIHVwZGF0ZWQgYXQgdGhlIHJvb3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fUkVGUkVTSFxuICBvcmlnaW46IExvY2F0aW9uWydvcmlnaW4nXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhtclJlZnJlc2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX0hNUl9SRUZSRVNIXG4gIG9yaWdpbjogTG9jYXRpb25bJ29yaWdpbiddXG59XG5cbmV4cG9ydCB0eXBlIFNlcnZlckFjdGlvbkRpc3BhdGNoZXIgPSAoXG4gIGFyZ3M6IE9taXQ8XG4gICAgU2VydmVyQWN0aW9uQWN0aW9uLFxuICAgICd0eXBlJyB8ICdtdXRhYmxlJyB8ICduYXZpZ2F0ZScgfCAnY2hhbmdlQnlTZXJ2ZXJSZXNwb25zZScgfCAnY2FjaGUnXG4gID5cbikgPT4gdm9pZFxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckFjdGlvbkFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fU0VSVkVSX0FDVElPTlxuICBhY3Rpb25JZDogc3RyaW5nXG4gIGFjdGlvbkFyZ3M6IGFueVtdXG4gIHJlc29sdmU6ICh2YWx1ZTogYW55KSA9PiB2b2lkXG4gIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZFxufVxuXG4vKipcbiAqIE5hdmlnYXRlIHRyaWdnZXJzIGEgbmF2aWdhdGlvbiB0byB0aGUgcHJvdmlkZWQgdXJsLiBJdCBzdXBwb3J0cyB0d28gdHlwZXM6IGBwdXNoYCBhbmQgYHJlcGxhY2VgLlxuICpcbiAqIGBuYXZpZ2F0ZVR5cGVgOlxuICogLSBgcHVzaGAgLSBwdXNoZXMgYSBuZXcgaGlzdG9yeSBlbnRyeSBpbiB0aGUgYnJvd3NlciBoaXN0b3J5XG4gKiAtIGByZXBsYWNlYCAtIHJlcGxhY2VzIHRoZSBjdXJyZW50IGhpc3RvcnkgZW50cnkgaW4gdGhlIGJyb3dzZXIgaGlzdG9yeVxuICpcbiAqIE5hdmlnYXRlIGhhcyBtdWx0aXBsZSBjYWNoZSBoZXVyaXN0aWNzOlxuICogLSBwYWdlIHdhcyBwcmVmZXRjaGVkXG4gKiAgLSBBcHBseSByb3V0ZXIgc3RhdGUgdHJlZSBmcm9tIHByZWZldGNoXG4gKiAgLSBBcHBseSBGbGlnaHQgZGF0YSBmcm9tIHByZWZldGNoIHRvIHRoZSBjYWNoZVxuICogIC0gSWYgRmxpZ2h0IGRhdGEgaXMgYSBzdHJpbmcsIGl0J3MgYSByZWRpcmVjdCBhbmQgdGhlIHN0YXRlIGlzIHVwZGF0ZWQgdG8gdHJpZ2dlciBhIHJlZGlyZWN0XG4gKiAgLSBDaGVjayBpZiBoYXJkIG5hdmlnYXRpb24gaXMgbmVlZGVkXG4gKiAgICAtIEhhcmQgbmF2aWdhdGlvbiBoYXBwZW5zIHdoZW4gYSBkeW5hbWljIHBhcmFtZXRlciBiZWxvdyB0aGUgY29tbW9uIGxheW91dCBjaGFuZ2VkXG4gKiAgICAtIFdoZW4gaGFyZCBuYXZpZ2F0aW9uIGlzIG5lZWRlZCB0aGUgY2FjaGUgaXMgaW52YWxpZGF0ZWQgYmVsb3cgdGhlIGZsaWdodFNlZ21lbnRQYXRoXG4gKiAgICAtIFRoZSBtaXNzaW5nIGNhY2hlIG5vZGVzIG9mIHRoZSBwYWdlIHdpbGwgYmUgZmV0Y2hlZCBpbiBsYXlvdXQtcm91dGVyIGFuZCB0cmlnZ2VyIHRoZSBTRVJWRVJfUEFUQ0ggYWN0aW9uXG4gKiAgLSBJZiBoYXJkIG5hdmlnYXRpb24gaXMgbm90IG5lZWRlZFxuICogICAgLSBUaGUgY2FjaGUgaXMgcmV1c2VkXG4gKiAgICAtIElmIGFueSBjYWNoZSBub2RlcyBhcmUgbWlzc2luZyB0aGV5J2xsIGJlIGZldGNoZWQgaW4gbGF5b3V0LXJvdXRlciBhbmQgdHJpZ2dlciB0aGUgU0VSVkVSX1BBVENIIGFjdGlvblxuICogLSBwYWdlIHdhcyBub3QgcHJlZmV0Y2hlZFxuICogIC0gVGhlIG5hdmlnYXRlIHdhcyBjYWxsZWQgZnJvbSBgbmV4dC9yb3V0ZXJgIChgcm91dGVyLnB1c2goKWAgLyBgcm91dGVyLnJlcGxhY2UoKWApIC8gYG5leHQvbGlua2Agd2l0aG91dCBwcmVmZXRjaGVkIGRhdGEgYXZhaWxhYmxlIChlLmcuIHRoZSBwcmVmZXRjaCBkaWRuJ3QgY29tZSBiYWNrIGZyb20gdGhlIHNlcnZlciBiZWZvcmUgY2xpY2tpbmcgdGhlIGxpbmspXG4gKiAgICAtIEZsaWdodCBkYXRhIGlzIGZldGNoZWQgaW4gdGhlIHJlZHVjZXIgKHN1c3BlbmRzIHRoZSByZWR1Y2VyKVxuICogICAgLSBSb3V0ZXIgc3RhdGUgdHJlZSBpcyBjcmVhdGVkIGJhc2VkIG9uIEZsaWdodCBkYXRhXG4gKiAgICAtIENhY2hlIGlzIGZpbGxlZCBiYXNlZCBvbiB0aGUgRmxpZ2h0IGRhdGFcbiAqXG4gKiBBYm92ZSBzdGVwcyBleHBsYWluIDMgY2FzZXM6XG4gKiAtIGBzb2Z0YCAtIFJldXNlcyB0aGUgZXhpc3RpbmcgY2FjaGUgYW5kIGZldGNoZXMgbWlzc2luZyBub2RlcyBpbiBsYXlvdXQtcm91dGVyLlxuICogLSBgaGFyZGAgLSBDcmVhdGVzIGEgbmV3IGNhY2hlIHdoZXJlIGNhY2hlIG5vZGVzIGFyZSByZW1vdmVkIGJlbG93IHRoZSBjb21tb24gbGF5b3V0IGFuZCBmZXRjaGVzIG1pc3Npbmcgbm9kZXMgaW4gbGF5b3V0LXJvdXRlci5cbiAqIC0gYG9wdGltaXN0aWNgIChleHBsaWNpdCBubyBwcmVmZXRjaCkgLSBDcmVhdGVzIGEgbmV3IGNhY2hlIGFuZCBraWNrcyBvZmYgdGhlIGRhdGEgZmV0Y2ggaW4gdGhlIHJlZHVjZXIuIFRoZSBkYXRhIGZldGNoIGlzIGF3YWl0ZWQgaW4gdGhlIGxheW91dC1yb3V0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX05BVklHQVRFXG4gIHVybDogVVJMXG4gIGlzRXh0ZXJuYWxVcmw6IGJvb2xlYW5cbiAgbG9jYXRpb25TZWFyY2g6IExvY2F0aW9uWydzZWFyY2gnXVxuICBuYXZpZ2F0ZVR5cGU6ICdwdXNoJyB8ICdyZXBsYWNlJ1xuICBzaG91bGRTY3JvbGw6IGJvb2xlYW5cbiAgYWxsb3dBbGlhc2luZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFJlc3RvcmUgYXBwbGllcyB0aGUgcHJvdmlkZWQgcm91dGVyIHN0YXRlLlxuICogLSBVc2VkIGZvciBgcG9wc3RhdGVgIChiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbikgd2hlcmUgYSBrbm93biByb3V0ZXIgc3RhdGUgaGFzIHRvIGJlIGFwcGxpZWQuXG4gKiAtIEFsc28gdXNlZCB3aGVuIHN5bmNpbmcgdGhlIHJvdXRlciBzdGF0ZSB3aXRoIGBwdXNoU3RhdGVgL2ByZXBsYWNlU3RhdGVgIGNhbGxzLlxuICogLSBSb3V0ZXIgc3RhdGUgaXMgYXBwbGllZCBhcy1pcyBmcm9tIHRoZSBoaXN0b3J5IHN0YXRlLCBpZiBhdmFpbGFibGUuXG4gKiAtIElmIHRoZSBoaXN0b3J5IHN0YXRlIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJvdXRlciBzdGF0ZSwgdGhlIGV4aXN0aW5nIHJvdXRlciBzdGF0ZSBpcyB1c2VkLlxuICogLSBJZiBhbnkgY2FjaGUgbm9kZSBpcyBtaXNzaW5nIGl0IHdpbGwgYmUgZmV0Y2hlZCBpbiBsYXlvdXQtcm91dGVyIGR1cmluZyByZW5kZXJpbmcgYW5kIHRoZSBzZXJ2ZXItcGF0Y2ggY2FzZS5cbiAqIC0gSWYgZXhpc3RpbmcgY2FjaGUgbm9kZXMgbWF0Y2ggdGhlc2UgYXJlIHVzZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdG9yZUFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fUkVTVE9SRVxuICB1cmw6IFVSTFxuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSB8IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIFNlcnZlci1wYXRjaCBhcHBsaWVzIHRoZSBwcm92aWRlZCBGbGlnaHQgZGF0YSB0byB0aGUgY2FjaGUgYW5kIHJvdXRlciB0cmVlLlxuICogLSBPbmx5IHRyaWdnZXJlZCBpbiBsYXlvdXQtcm91dGVyLlxuICogLSBDcmVhdGVzIGEgbmV3IGNhY2hlIGFuZCByb3V0ZXIgc3RhdGUgd2l0aCB0aGUgRmxpZ2h0IGRhdGEgYXBwbGllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJQYXRjaEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fU0VSVkVSX1BBVENIXG4gIG5hdmlnYXRlZEF0OiBudW1iZXJcbiAgc2VydmVyUmVzcG9uc2U6IEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHRcbiAgcHJldmlvdXNUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxufVxuXG4vKipcbiAqIFByZWZldGNoS2luZCBkZWZpbmVzIHRoZSB0eXBlIG9mIHByZWZldGNoaW5nIHRoYXQgc2hvdWxkIGJlIGRvbmUuXG4gKiAtIGBhdXRvYCAtIGlmIHRoZSBwYWdlIGlzIGR5bmFtaWMsIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgcGFydGlhbGx5LCBpZiBzdGF0aWMgcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseS5cbiAqIC0gYGZ1bGxgIC0gcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseS5cbiAqIC0gYHRlbXBvcmFyeWAgLSBhIHRlbXBvcmFyeSBwcmVmZXRjaCBlbnRyeSBpcyBhZGRlZCB0byB0aGUgY2FjaGUsIHRoaXMgaXMgdXNlZCB3aGVuIHByZWZldGNoPXtmYWxzZX0gaXMgdXNlZCBpbiBuZXh0L2xpbmsgb3Igd2hlbiB5b3UgcHVzaCBhIHJvdXRlIHByb2dyYW1tYXRpY2FsbHkuXG4gKi9cblxuZXhwb3J0IGVudW0gUHJlZmV0Y2hLaW5kIHtcbiAgQVVUTyA9ICdhdXRvJyxcbiAgRlVMTCA9ICdmdWxsJyxcbiAgVEVNUE9SQVJZID0gJ3RlbXBvcmFyeScsXG59XG5cbi8qKlxuICogUHJlZmV0Y2ggYWRkcyB0aGUgcHJvdmlkZWQgRmxpZ2h0RGF0YSB0byB0aGUgcHJlZmV0Y2ggY2FjaGVcbiAqIC0gQ3JlYXRlcyB0aGUgcm91dGVyIHN0YXRlIHRyZWUgYmFzZWQgb24gdGhlIHBhdGNoIGluIEZsaWdodERhdGFcbiAqIC0gQWRkcyB0aGUgRmxpZ2h0RGF0YSB0byB0aGUgcHJlZmV0Y2ggY2FjaGVcbiAqIC0gSW4gQUNUSU9OX05BVklHQVRFIHRoZSBwcmVmZXRjaCBjYWNoZSBpcyBjaGVja2VkIGFuZCB0aGUgcm91dGVyIHN0YXRlIHRyZWUgYW5kIEZsaWdodERhdGEgYXJlIGFwcGxpZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZmV0Y2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1BSRUZFVENIXG4gIHVybDogVVJMXG4gIGtpbmQ6IFByZWZldGNoS2luZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1c2hSZWYge1xuICAvKipcbiAgICogSWYgdGhlIGFwcC1yb3V0ZXIgc2hvdWxkIHB1c2ggYSBuZXcgaGlzdG9yeSBlbnRyeSBpbiBhcHAtcm91dGVyJ3MgdXNlRWZmZWN0KClcbiAgICovXG4gIHBlbmRpbmdQdXNoOiBib29sZWFuXG4gIC8qKlxuICAgKiBNdWx0aS1wYWdlIG5hdmlnYXRpb24gdGhyb3VnaCBsb2NhdGlvbi5ocmVmLlxuICAgKi9cbiAgbXBhTmF2aWdhdGlvbjogYm9vbGVhblxuICAvKipcbiAgICogU2tpcCBhcHBseWluZyB0aGUgcm91dGVyIHN0YXRlIHRvIHRoZSBicm93c2VyIGhpc3Rvcnkgc3RhdGUuXG4gICAqL1xuICBwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZTogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBGb2N1c0FuZFNjcm9sbFJlZiA9IHtcbiAgLyoqXG4gICAqIElmIGZvY3VzIGFuZCBzY3JvbGwgc2hvdWxkIGJlIHNldCBpbiB0aGUgbGF5b3V0LXJvdXRlcidzIHVzZUVmZmVjdCgpXG4gICAqL1xuICBhcHBseTogYm9vbGVhblxuICAvKipcbiAgICogVGhlIGhhc2ggZnJhZ21lbnQgdGhhdCBzaG91bGQgYmUgc2Nyb2xsZWQgdG8uXG4gICAqL1xuICBoYXNoRnJhZ21lbnQ6IHN0cmluZyB8IG51bGxcbiAgLyoqXG4gICAqIFRoZSBwYXRocyBvZiB0aGUgc2VnbWVudHMgdGhhdCBzaG91bGQgYmUgZm9jdXNlZC5cbiAgICovXG4gIHNlZ21lbnRQYXRoczogRmxpZ2h0U2VnbWVudFBhdGhbXVxuICAvKipcbiAgICogSWYgb25seSB0aGUgVVJMcyBoYXNoIGZyYWdtZW50IGNoYW5nZWRcbiAgICovXG4gIG9ubHlIYXNoQ2hhbmdlOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIFByZWZldGNoQ2FjaGVFbnRyeSA9IHtcbiAgdHJlZUF0VGltZU9mUHJlZmV0Y2g6IEZsaWdodFJvdXRlclN0YXRlXG4gIGRhdGE6IFByb21pc2U8RmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdD5cbiAga2luZDogUHJlZmV0Y2hLaW5kXG4gIHByZWZldGNoVGltZTogbnVtYmVyXG4gIHN0YWxlVGltZTogbnVtYmVyXG4gIGxhc3RVc2VkVGltZTogbnVtYmVyIHwgbnVsbFxuICBrZXk6IHN0cmluZ1xuICBzdGF0dXM6IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1c1xuICB1cmw6IFVSTFxufVxuXG5leHBvcnQgZW51bSBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMge1xuICBmcmVzaCA9ICdmcmVzaCcsXG4gIHJldXNhYmxlID0gJ3JldXNhYmxlJyxcbiAgZXhwaXJlZCA9ICdleHBpcmVkJyxcbiAgc3RhbGUgPSAnc3RhbGUnLFxufVxuXG4vKipcbiAqIEhhbmRsZXMga2VlcGluZyB0aGUgc3RhdGUgb2YgYXBwLXJvdXRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQXBwUm91dGVyU3RhdGUgPSB7XG4gIC8qKlxuICAgKiBUaGUgcm91dGVyIHN0YXRlLCB0aGlzIGlzIHdyaXR0ZW4gaW50byB0aGUgaGlzdG9yeSBzdGF0ZSBpbiBhcHAtcm91dGVyIHVzaW5nIHJlcGxhY2VTdGF0ZS9wdXNoU3RhdGUuXG4gICAqIC0gSGFzIHRvIGJlIHNlcmlhbGl6YWJsZSBhcyBpdCBpcyB3cml0dGVuIGludG8gdGhlIGhpc3Rvcnkgc3RhdGUuXG4gICAqIC0gSG9sZHMgd2hpY2ggc2VnbWVudHMgYW5kIHBhcmFsbGVsIHJvdXRlcyBhcmUgc2hvd24gb24gdGhlIHNjcmVlbi5cbiAgICovXG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIC8qKlxuICAgKiBUaGUgY2FjaGUgaG9sZHMgUmVhY3Qgbm9kZXMgZm9yIGV2ZXJ5IHNlZ21lbnQgdGhhdCBpcyBzaG93biBvbiBzY3JlZW4gYXMgd2VsbCBhcyBwcmV2aW91c2x5IHNob3duIHNlZ21lbnRzLlxuICAgKiBJdCBhbHNvIGhvbGRzIGluLXByb2dyZXNzIGRhdGEgcmVxdWVzdHMuXG4gICAqIFByZWZldGNoZWQgZGF0YSBpcyBzdG9yZWQgc2VwYXJhdGVseSBpbiBgcHJlZmV0Y2hDYWNoZWAsIHRoYXQgaXMgYXBwbGllZCBkdXJpbmcgQUNUSU9OX05BVklHQVRFLlxuICAgKi9cbiAgY2FjaGU6IENhY2hlTm9kZVxuICAvKipcbiAgICogQ2FjaGUgdGhhdCBob2xkcyBwcmVmZXRjaGVkIEZsaWdodCByZXNwb25zZXMga2V5ZWQgYnkgdXJsLlxuICAgKi9cbiAgcHJlZmV0Y2hDYWNoZTogTWFwPHN0cmluZywgUHJlZmV0Y2hDYWNoZUVudHJ5PlxuICAvKipcbiAgICogRGVjaWRlcyBpZiB0aGUgdXBkYXRlIHNob3VsZCBjcmVhdGUgYSBuZXcgaGlzdG9yeSBlbnRyeSBhbmQgaWYgdGhlIG5hdmlnYXRpb24gaGFzIHRvIHRyaWdnZXIgYSBicm93c2VyIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdXNoUmVmOiBQdXNoUmVmXG4gIC8qKlxuICAgKiBEZWNpZGVzIGlmIHRoZSB1cGRhdGUgc2hvdWxkIGFwcGx5IHNjcm9sbCBhbmQgZm9jdXMgbWFuYWdlbWVudC5cbiAgICovXG4gIGZvY3VzQW5kU2Nyb2xsUmVmOiBGb2N1c0FuZFNjcm9sbFJlZlxuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCB1cmwgdGhhdCBpcyBwdXNoZWQvcmVwbGFjZWQuXG4gICAqIC0gVGhpcyBpcyB0aGUgdXJsIHlvdSBzZWUgaW4gdGhlIGJyb3dzZXIuXG4gICAqL1xuICBjYW5vbmljYWxVcmw6IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgXCJ1cmxcIiByZXByZXNlbnRpbmcgdGhlIFVJIHN0YXRlLCB3aGljaCBpcyB1c2VkIGZvciBpbnRlcmNlcHRpbmcgcm91dGVzLlxuICAgKi9cbiAgbmV4dFVybDogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBSZWFkb25seVJlZHVjZXJTdGF0ZSA9IFJlYWRvbmx5PEFwcFJvdXRlclN0YXRlPlxuZXhwb3J0IHR5cGUgUmVkdWNlclN0YXRlID0gUHJvbWlzZTxBcHBSb3V0ZXJTdGF0ZT4gfCBBcHBSb3V0ZXJTdGF0ZVxuZXhwb3J0IHR5cGUgUmVkdWNlckFjdGlvbnMgPSBSZWFkb25seTxcbiAgfCBSZWZyZXNoQWN0aW9uXG4gIHwgTmF2aWdhdGVBY3Rpb25cbiAgfCBSZXN0b3JlQWN0aW9uXG4gIHwgU2VydmVyUGF0Y2hBY3Rpb25cbiAgfCBQcmVmZXRjaEFjdGlvblxuICB8IEhtclJlZnJlc2hBY3Rpb25cbiAgfCBTZXJ2ZXJBY3Rpb25BY3Rpb25cbj5cbiJdLCJuYW1lcyI6WyJBQ1RJT05fSE1SX1JFRlJFU0giLCJBQ1RJT05fTkFWSUdBVEUiLCJBQ1RJT05fUFJFRkVUQ0giLCJBQ1RJT05fUkVGUkVTSCIsIkFDVElPTl9SRVNUT1JFIiwiQUNUSU9OX1NFUlZFUl9BQ1RJT04iLCJBQ1RJT05fU0VSVkVSX1BBVENIIiwiUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzIiwiUHJlZmV0Y2hLaW5kIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js": /*!***************************************************************************************************!*\ !*** ./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js ***! \***************************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n setCacheBustingSearchParam: function() {\n return setCacheBustingSearchParam;\n },\n setCacheBustingSearchParamWithHash: function() {\n return setCacheBustingSearchParamWithHash;\n }\n});\nconst _cachebustingsearchparam = __webpack_require__(/*! ../../../shared/lib/router/utils/cache-busting-search-param */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js\");\nconst _approuterheaders = __webpack_require__(/*! ../app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst setCacheBustingSearchParam = (url, headers)=>{\n const uniqueCacheKey = (0, _cachebustingsearchparam.computeCacheBustingSearchParam)(headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER], headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER], headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER], headers[_approuterheaders.NEXT_URL]);\n setCacheBustingSearchParamWithHash(url, uniqueCacheKey);\n};\nconst setCacheBustingSearchParamWithHash = (url, hash)=>{\n /**\n * Note that we intentionally do not use `url.searchParams.set` here:\n *\n * const url = new URL('https://example.com/search?q=custom%20spacing');\n * url.searchParams.set('_rsc', 'abc123');\n * console.log(url.toString()); // Outputs: https://example.com/search?q=custom+spacing&_rsc=abc123\n * ^ <--- this is causing confusion\n * This is in fact intended based on https://url.spec.whatwg.org/#interface-urlsearchparams, but\n * we want to preserve the %20 as %20 if that's what the user passed in, hence the custom\n * logic below.\n */ const existingSearch = url.search;\n const rawQuery = existingSearch.startsWith('?') ? existingSearch.slice(1) : existingSearch;\n // Always remove any existing cache busting param and add a fresh one to ensure\n // we have the correct value based on current request headers\n const pairs = rawQuery.split('&').filter((pair)=>pair && !pair.startsWith(\"\" + _approuterheaders.NEXT_RSC_UNION_QUERY + \"=\"));\n if (hash.length > 0) {\n pairs.push(_approuterheaders.NEXT_RSC_UNION_QUERY + \"=\" + hash);\n } else {\n pairs.push(\"\" + _approuterheaders.NEXT_RSC_UNION_QUERY);\n }\n url.search = pairs.length ? \"?\" + pairs.join('&') : '';\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=set-cache-busting-search-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3NldC1jYWNoZS1idXN0aW5nLXNlYXJjaC1wYXJhbS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLDBCQUEwQjtlQUExQkE7O0lBNkJBQyxrQ0FBa0M7ZUFBbENBOzs7cURBdkRrQzs4Q0FPeEM7QUFtQkEsTUFBTUQsNkJBQTZCLENBQ3hDRSxLQUNBQztJQUVBLE1BQU1DLGlCQUFpQkMsQ0FBQUEsR0FBQUEseUJBQUFBLDhCQUFBQSxFQUNyQkYsT0FBTyxDQUFDRyxrQkFBQUEsMkJBQTJCLENBQUMsRUFDcENILE9BQU8sQ0FBQ0ksa0JBQUFBLG1DQUFtQyxDQUFDLEVBQzVDSixPQUFPLENBQUNLLGtCQUFBQSw2QkFBNkIsQ0FBQyxFQUN0Q0wsT0FBTyxDQUFDTSxrQkFBQUEsUUFBUSxDQUFDO0lBRW5CUixtQ0FBbUNDLEtBQUtFO0FBQzFDO0FBa0JPLE1BQU1ILHFDQUFxQyxDQUNoREMsS0FDQVE7SUFFQTs7Ozs7Ozs7OztHQVVDLEdBQ0QsTUFBTUMsaUJBQWlCVCxJQUFJVSxNQUFNO0lBQ2pDLE1BQU1DLFdBQVdGLGVBQWVHLFVBQVUsQ0FBQyxPQUN2Q0gsZUFBZUksS0FBSyxDQUFDLEtBQ3JCSjtJQUVKLCtFQUErRTtJQUMvRSw2REFBNkQ7SUFDN0QsTUFBTUssUUFBUUgsU0FDWEksS0FBSyxDQUFDLEtBQ05DLE1BQU0sQ0FBQyxDQUFDQyxPQUFTQSxRQUFRLENBQUNBLEtBQUtMLFVBQVUsQ0FBRSxLQUFFTSxrQkFBQUEsb0JBQW9CLEdBQUM7SUFFckUsSUFBSVYsS0FBS1csTUFBTSxHQUFHLEdBQUc7UUFDbkJMLE1BQU1NLElBQUksQ0FBSUYsa0JBQUFBLG9CQUFvQixHQUFDLE1BQUdWO0lBQ3hDLE9BQU87UUFDTE0sTUFBTU0sSUFBSSxDQUFFLEtBQUVGLGtCQUFBQSxvQkFBb0I7SUFDcEM7SUFDQWxCLElBQUlVLE1BQU0sR0FBR0ksTUFBTUssTUFBTSxHQUFJLE1BQUdMLE1BQU1PLElBQUksQ0FBQyxPQUFTO0FBQ3REIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvc2V0LWNhY2hlLWJ1c3Rpbmctc2VhcmNoLXBhcmFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9jYWNoZS1idXN0aW5nLXNlYXJjaC1wYXJhbSdcbmltcG9ydCB7XG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSLFxuICBORVhUX1VSTCxcbiAgTkVYVF9SU0NfVU5JT05fUVVFUlksXG59IGZyb20gJy4uL2FwcC1yb3V0ZXItaGVhZGVycydcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEhlYWRlcnMgfSBmcm9tICcuL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcblxuLyoqXG4gKiBNdXRhdGVzIHRoZSBwcm92aWRlZCBVUkwgYnkgYWRkaW5nIGEgY2FjaGUtYnVzdGluZyBzZWFyY2ggcGFyYW1ldGVyIGZvciBDRE5zIHRoYXQgZG9uJ3RcbiAqIHN1cHBvcnQgY3VzdG9tIGhlYWRlcnMuIFRoaXMgaGVscHMgYXZvaWQgY2FjaGluZyBjb25mbGljdHMgYnkgbWFraW5nIGVhY2ggcmVxdWVzdCB1bmlxdWUuXG4gKlxuICogUmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgVmFyeSBoZWFkZXIgd2hpY2ggc29tZSBDRE5zIGlnbm9yZSwgd2UgYXBwZW5kIGEgc2VhcmNoIHBhcmFtXG4gKiB0byBjcmVhdGUgYSB1bmlxdWUgVVJMIHRoYXQgZm9yY2VzIGEgZnJlc2ggcmVxdWVzdC5cbiAqXG4gKiBFeGFtcGxlOlxuICogVVJMIGJlZm9yZTogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTFcbiAqIFVSTCBhZnRlcjogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTEmX3JzYz1hYmMxMjNcbiAqXG4gKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIG11dGF0ZXMgdGhlIGlucHV0IFVSTCBkaXJlY3RseSBhbmQgZG9lcyBub3QgcmV0dXJuIGFueXRoaW5nLlxuICpcbiAqIFRPRE86IFNpbmNlIHdlIG5lZWQgdG8gdXNlIGEgc2VhcmNoIHBhcmFtIGFueXdheSwgd2UgY291bGQgc2ltcGxpZnkgYnkgcmVtb3ZpbmcgdGhlIGN1c3RvbVxuICogaGVhZGVycyBhcHByb2FjaCBlbnRpcmVseSBhbmQganVzdCB1c2Ugc2VhcmNoIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtID0gKFxuICB1cmw6IFVSTCxcbiAgaGVhZGVyczogUmVxdWVzdEhlYWRlcnNcbik6IHZvaWQgPT4ge1xuICBjb25zdCB1bmlxdWVDYWNoZUtleSA9IGNvbXB1dGVDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbShcbiAgICBoZWFkZXJzW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0sXG4gICAgaGVhZGVyc1tORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUl0sXG4gICAgaGVhZGVyc1tORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl0sXG4gICAgaGVhZGVyc1tORVhUX1VSTF1cbiAgKVxuICBzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbVdpdGhIYXNoKHVybCwgdW5pcXVlQ2FjaGVLZXkpXG59XG5cbi8qKlxuICogU2V0cyBhIGNhY2hlLWJ1c3Rpbmcgc2VhcmNoIHBhcmFtZXRlciBvbiBhIFVSTCB1c2luZyBhIHByb3ZpZGVkIGhhc2ggdmFsdWUuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgc2FtZSBsb2dpYyBhcyBgc2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW1gIGJ1dCBhY2NlcHRzXG4gKiBhIHByZS1jb21wdXRlZCBoYXNoIGluc3RlYWQgb2YgY29tcHV0aW5nIGl0IGZyb20gaGVhZGVycy5cbiAqXG4gKiBFeGFtcGxlOlxuICogVVJMIGJlZm9yZTogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTFcbiAqIGhhc2g6IFwiYWJjMTIzXCJcbiAqIFVSTCBhZnRlcjogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTEmX3JzYz1hYmMxMjNcbiAqXG4gKiBJZiB0aGUgaGFzaCBpcyBudWxsLCB3ZSB3aWxsIHNldCBgX3JzY2Agc2VhcmNoIHBhcmFtIHdpdGhvdXQgYSB2YWx1ZS5cbiAqIExpa2UgdGhpczogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTEmX3JzY1xuICpcbiAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gbXV0YXRlcyB0aGUgaW5wdXQgVVJMIGRpcmVjdGx5IGFuZCBkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbVdpdGhIYXNoID0gKFxuICB1cmw6IFVSTCxcbiAgaGFzaDogc3RyaW5nXG4pOiB2b2lkID0+IHtcbiAgLyoqXG4gICAqIE5vdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGRvIG5vdCB1c2UgYHVybC5zZWFyY2hQYXJhbXMuc2V0YCBoZXJlOlxuICAgKlxuICAgKiBjb25zdCB1cmwgPSBuZXcgVVJMKCdodHRwczovL2V4YW1wbGUuY29tL3NlYXJjaD9xPWN1c3RvbSUyMHNwYWNpbmcnKTtcbiAgICogdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ19yc2MnLCAnYWJjMTIzJyk7XG4gICAqIGNvbnNvbGUubG9nKHVybC50b1N0cmluZygpKTsgLy8gT3V0cHV0czogaHR0cHM6Ly9leGFtcGxlLmNvbS9zZWFyY2g/cT1jdXN0b20rc3BhY2luZyZfcnNjPWFiYzEyM1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiA8LS0tIHRoaXMgaXMgY2F1c2luZyBjb25mdXNpb25cbiAgICogVGhpcyBpcyBpbiBmYWN0IGludGVuZGVkIGJhc2VkIG9uIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jaW50ZXJmYWNlLXVybHNlYXJjaHBhcmFtcywgYnV0XG4gICAqIHdlIHdhbnQgdG8gcHJlc2VydmUgdGhlICUyMCBhcyAlMjAgaWYgdGhhdCdzIHdoYXQgdGhlIHVzZXIgcGFzc2VkIGluLCBoZW5jZSB0aGUgY3VzdG9tXG4gICAqIGxvZ2ljIGJlbG93LlxuICAgKi9cbiAgY29uc3QgZXhpc3RpbmdTZWFyY2ggPSB1cmwuc2VhcmNoXG4gIGNvbnN0IHJhd1F1ZXJ5ID0gZXhpc3RpbmdTZWFyY2guc3RhcnRzV2l0aCgnPycpXG4gICAgPyBleGlzdGluZ1NlYXJjaC5zbGljZSgxKVxuICAgIDogZXhpc3RpbmdTZWFyY2hcblxuICAvLyBBbHdheXMgcmVtb3ZlIGFueSBleGlzdGluZyBjYWNoZSBidXN0aW5nIHBhcmFtIGFuZCBhZGQgYSBmcmVzaCBvbmUgdG8gZW5zdXJlXG4gIC8vIHdlIGhhdmUgdGhlIGNvcnJlY3QgdmFsdWUgYmFzZWQgb24gY3VycmVudCByZXF1ZXN0IGhlYWRlcnNcbiAgY29uc3QgcGFpcnMgPSByYXdRdWVyeVxuICAgIC5zcGxpdCgnJicpXG4gICAgLmZpbHRlcigocGFpcikgPT4gcGFpciAmJiAhcGFpci5zdGFydHNXaXRoKGAke05FWFRfUlNDX1VOSU9OX1FVRVJZfT1gKSlcblxuICBpZiAoaGFzaC5sZW5ndGggPiAwKSB7XG4gICAgcGFpcnMucHVzaChgJHtORVhUX1JTQ19VTklPTl9RVUVSWX09JHtoYXNofWApXG4gIH0gZWxzZSB7XG4gICAgcGFpcnMucHVzaChgJHtORVhUX1JTQ19VTklPTl9RVUVSWX1gKVxuICB9XG4gIHVybC5zZWFyY2ggPSBwYWlycy5sZW5ndGggPyBgPyR7cGFpcnMuam9pbignJicpfWAgOiAnJ1xufVxuIl0sIm5hbWVzIjpbInNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtIiwic2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW1XaXRoSGFzaCIsInVybCIsImhlYWRlcnMiLCJ1bmlxdWVDYWNoZUtleSIsImNvbXB1dGVDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIiLCJORVhUX1VSTCIsImhhc2giLCJleGlzdGluZ1NlYXJjaCIsInNlYXJjaCIsInJhd1F1ZXJ5Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwicGFpcnMiLCJzcGxpdCIsImZpbHRlciIsInBhaXIiLCJORVhUX1JTQ19VTklPTl9RVUVSWSIsImxlbmd0aCIsInB1c2giLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/client/components/static-generation-bailout.js ***! \*******************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n StaticGenBailoutError: function() {\n return StaticGenBailoutError;\n },\n isStaticGenBailoutError: function() {\n return isStaticGenBailoutError;\n }\n});\nconst NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args), this.code = NEXT_STATIC_GEN_BAILOUT;\n }\n}\nfunction isStaticGenBailoutError(error) {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false;\n }\n return error.code === NEXT_STATIC_GEN_BAILOUT;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHFCQUFxQjtlQUFyQkE7O0lBSUdDLHVCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7UUFBcEMscUJBQ1dDLElBQUFBLEdBQU9GOztBQUN6QjtBQUVPLFNBQVNELHdCQUNkSSxLQUFjO0lBRWQsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUFBLENBQUksRUFBSTtRQUNyRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxNQUFNRCxJQUFJLEtBQUtGO0FBQ3hCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCA9ICdORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCdcblxuZXhwb3J0IGNsYXNzIFN0YXRpY0dlbkJhaWxvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvZGUgPSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBTdGF0aWNHZW5CYWlsb3V0RXJyb3Ige1xuICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKCdjb2RlJyBpbiBlcnJvcikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnJvci5jb2RlID09PSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuIl0sIm5hbWVzIjpbIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQiLCJFcnJvciIsImNvZGUiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/unauthorized.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/client/components/unauthorized.js ***! \******************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unauthorized\", ({\n enumerable: true,\n get: function() {\n return unauthorized;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n// TODO: Add `unauthorized` docs\n/**\n * @experimental\n * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)\n * within a route segment as well as inject a tag.\n *\n * `unauthorized()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n *\n * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";401\";\nfunction unauthorized() {\n if (true) {\n throw Object.defineProperty(new Error(\"`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E411\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unauthorized.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQXNCZ0JBOzs7ZUFBQUE7OztnREFuQlQ7QUFFUCxnQ0FBZ0M7QUFDaEM7Ozs7Ozs7Ozs7OztDQVlDLEdBRUQsTUFBTUMsU0FBVSxLQUFFQyxvQkFBQUEsOEJBQThCLEdBQUM7QUFFMUMsU0FBU0Y7SUFDZCxJQUFJLElBQWdELEVBQUU7UUFDcEQsTUFBTSxxQkFFTCxDQUZLLElBQUlNLE1BQ1AsZ0hBREc7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUEsNENBQTRDO0lBQzVDLE1BQU1DLFFBQVEscUJBQWlCLENBQWpCLElBQUlELE1BQU1MLFNBQVY7ZUFBQTtvQkFBQTtzQkFBQTtJQUFnQjtJQUM1Qk0sTUFBa0NDLE1BQU0sR0FBR1A7SUFDN0MsTUFBTU07QUFDUiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUsXG4gIHR5cGUgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IsXG59IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2snXG5cbi8vIFRPRE86IEFkZCBgdW5hdXRob3JpemVkYCBkb2NzXG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byByZW5kZXIgdGhlIFt1bmF1dGhvcml6ZWQuanMgZmlsZV0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZmlsZS1jb252ZW50aW9ucy91bmF1dGhvcml6ZWQpXG4gKiB3aXRoaW4gYSByb3V0ZSBzZWdtZW50IGFzIHdlbGwgYXMgaW5qZWN0IGEgdGFnLlxuICpcbiAqIGB1bmF1dGhvcml6ZWQoKWAgY2FuIGJlIHVzZWQgaW5cbiAqIFtTZXJ2ZXIgQ29tcG9uZW50c10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzKSxcbiAqIFtSb3V0ZSBIYW5kbGVyc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9yb3V0ZS1oYW5kbGVycyksIGFuZFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLlxuICpcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1bmF1dGhvcml6ZWRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5hdXRob3JpemVkKVxuICovXG5cbmNvbnN0IERJR0VTVCA9IGAke0hUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07NDAxYFxuXG5leHBvcnQgZnVuY3Rpb24gdW5hdXRob3JpemVkKCk6IG5ldmVyIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX0FVVEhfSU5URVJSVVBUUykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBcXGB1bmF1dGhvcml6ZWQoKVxcYCBpcyBleHBlcmltZW50YWwgYW5kIG9ubHkgYWxsb3dlZCB0byBiZSB1c2VkIHdoZW4gXFxgZXhwZXJpbWVudGFsLmF1dGhJbnRlcnJ1cHRzXFxgIGlzIGVuYWJsZWQuYFxuICAgIClcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10aHJvdy1saXRlcmFsXG4gIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKERJR0VTVCkgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JcbiAgOyhlcnJvciBhcyBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcikuZGlnZXN0ID0gRElHRVNUXG4gIHRocm93IGVycm9yXG59XG4iXSwibmFtZXMiOlsidW5hdXRob3JpemVkIiwiRElHRVNUIiwiSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9FWFBFUklNRU5UQUxfQVVUSF9JTlRFUlJVUFRTIiwiRXJyb3IiLCJlcnJvciIsImRpZ2VzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unauthorized.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/unrecognized-action-error.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/client/components/unrecognized-action-error.js ***! \*******************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n UnrecognizedActionError: function() {\n return UnrecognizedActionError;\n },\n unstable_isUnrecognizedActionError: function() {\n return unstable_isUnrecognizedActionError;\n }\n});\nclass UnrecognizedActionError extends Error {\n constructor(...args){\n super(...args);\n this.name = 'UnrecognizedActionError';\n }\n}\nfunction unstable_isUnrecognizedActionError(error) {\n return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unrecognized-action-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VucmVjb2duaXplZC1hY3Rpb24tZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWFBLHVCQUF1QjtlQUF2QkE7O0lBeUJHQyxrQ0FBa0M7ZUFBbENBOzs7QUF6QlQsTUFBTUQsZ0NBQWdDRTtJQUMzQ0MsWUFBWSxHQUFHQyxJQUF5QyxDQUFFO1FBQ3hELEtBQUssSUFBSUE7UUFDVCxJQUFJLENBQUNDLElBQUksR0FBRztJQUNkO0FBQ0Y7QUFvQk8sU0FBU0osbUNBQ2RLLEtBQWM7SUFFZCxPQUFPLENBQUMsQ0FDTkEsQ0FBQUEsU0FDQSxPQUFPQSxVQUFVLFlBQ2pCQSxpQkFBaUJOLHVCQUFBQSxDQUFzQjtBQUUzQyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3VucmVjb2duaXplZC1hY3Rpb24tZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVucmVjb2duaXplZEFjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvciguLi5hcmdzOiBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEVycm9yPikge1xuICAgIHN1cGVyKC4uLmFyZ3MpXG4gICAgdGhpcy5uYW1lID0gJ1VucmVjb2duaXplZEFjdGlvbkVycm9yJ1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIHNlcnZlciBhY3Rpb24gY2FsbCBmYWlsZWQgYmVjYXVzZSB0aGUgc2VydmVyIGFjdGlvbiB3YXMgbm90IHJlY29nbml6ZWQgYnkgdGhlIHNlcnZlci5cbiAqIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyIGFyZSBub3QgZnJvbSB0aGUgc2FtZSBkZXBsb3ltZW50LlxuICpcbiAqIEV4YW1wbGUgdXNhZ2U6XG4gKiBgYGB0c1xuICogdHJ5IHtcbiAqICAgYXdhaXQgbXlTZXJ2ZXJBY3Rpb24oKTtcbiAqIH0gY2F0Y2ggKGVycikge1xuICogICBpZiAodW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcihlcnIpKSB7XG4gKiAgICAgLy8gVGhlIGNsaWVudCBpcyBmcm9tIGEgZGlmZmVyZW50IGRlcGxveW1lbnQgdGhhbiB0aGUgc2VydmVyLlxuICogICAgIC8vIFJlbG9hZGluZyB0aGUgcGFnZSB3aWxsIGZpeCB0aGlzIG1pc21hdGNoLlxuICogICAgIHdpbmRvdy5hbGVydChcIlBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIGFuZCB0cnkgYWdhaW5cIik7XG4gKiAgICAgcmV0dXJuO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqICovXG5leHBvcnQgZnVuY3Rpb24gdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIFVucmVjb2duaXplZEFjdGlvbkVycm9yIHtcbiAgcmV0dXJuICEhKFxuICAgIGVycm9yICYmXG4gICAgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJlxuICAgIGVycm9yIGluc3RhbmNlb2YgVW5yZWNvZ25pemVkQWN0aW9uRXJyb3JcbiAgKVxufVxuIl0sIm5hbWVzIjpbIlVucmVjb2duaXplZEFjdGlvbkVycm9yIiwidW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJhcmdzIiwibmFtZSIsImVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unrecognized-action-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/client/components/unresolved-thenable.js ***! \*************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("/**\n * Create a \"Thenable\" that does not resolve. This is used to suspend indefinitely when data is not available yet.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unresolvedThenable\", ({\n enumerable: true,\n get: function() {\n return unresolvedThenable;\n }\n}));\nconst unresolvedThenable = {\n then: ()=>{}\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unresolved-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VucmVzb2x2ZWQtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7O0NBRUM7Ozs7c0RBQ1lBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHFCQUFxQjtJQUNoQ0MsTUFBTSxLQUFPO0FBQ2YiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy91bnJlc29sdmVkLXRoZW5hYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlIGEgXCJUaGVuYWJsZVwiIHRoYXQgZG9lcyBub3QgcmVzb2x2ZS4gVGhpcyBpcyB1c2VkIHRvIHN1c3BlbmQgaW5kZWZpbml0ZWx5IHdoZW4gZGF0YSBpcyBub3QgYXZhaWxhYmxlIHlldC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVucmVzb2x2ZWRUaGVuYWJsZSA9IHtcbiAgdGhlbjogKCkgPT4ge30sXG59IGFzIFByb21pc2VMaWtlPHZvaWQ+XG4iXSwibmFtZXMiOlsidW5yZXNvbHZlZFRoZW5hYmxlIiwidGhlbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/client/components/unstable-rethrow.js ***! \**********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/**\n * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.\n * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.\n * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.\n *\n * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unstable_rethrow\", ({\n enumerable: true,\n get: function() {\n return unstable_rethrow;\n }\n}));\nconst unstable_rethrow = true ? (__webpack_require__(/*! ./unstable-rethrow.server */ \"(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js\").unstable_rethrow) : 0;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unstable-rethrow.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztDQU1DOzs7O29EQUNZQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxtQkFDWCxLQUE2QixHQUV2QkUsc0pBQ2dCLEdBRWhCQSxDQUNnQiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIHJldGhyb3cgaW50ZXJuYWwgTmV4dC5qcyBlcnJvcnMgc28gdGhhdCB0aGV5IGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBmcmFtZXdvcmsuXG4gKiBXaGVuIHdyYXBwaW5nIGFuIEFQSSB0aGF0IHVzZXMgZXJyb3JzIHRvIGludGVycnVwdCBjb250cm9sIGZsb3csIHlvdSBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gYmVmb3JlIHlvdSBkbyBhbnkgZXJyb3IgaGFuZGxpbmcuXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0aHJvdyB0aGUgZXJyb3IgaWYgaXQgaXMgYSBOZXh0LmpzIGVycm9yIHNvIGl0IGNhbiBiZSBoYW5kbGVkLCBvdGhlcndpc2UgaXQgd2lsbCBkbyBub3RoaW5nLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYHVuc3RhYmxlX3JldGhyb3dgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5zdGFibGVfcmV0aHJvdylcbiAqL1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX3JldGhyb3cgPVxuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuICAgID8gKFxuICAgICAgICByZXF1aXJlKCcuL3Vuc3RhYmxlLXJldGhyb3cuc2VydmVyJykgYXMgdHlwZW9mIGltcG9ydCgnLi91bnN0YWJsZS1yZXRocm93LnNlcnZlcicpXG4gICAgICApLnVuc3RhYmxlX3JldGhyb3dcbiAgICA6IChcbiAgICAgICAgcmVxdWlyZSgnLi91bnN0YWJsZS1yZXRocm93LmJyb3dzZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3Vuc3RhYmxlLXJldGhyb3cuYnJvd3NlcicpXG4gICAgICApLnVuc3RhYmxlX3JldGhyb3dcbiJdLCJuYW1lcyI6WyJ1bnN0YWJsZV9yZXRocm93Iiwid2luZG93IiwicmVxdWlyZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/client/components/unstable-rethrow.server.js ***! \*****************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unstable_rethrow\", ({\n enumerable: true,\n get: function() {\n return unstable_rethrow;\n }\n}));\nconst _dynamicrenderingutils = __webpack_require__(/*! ../../server/dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _ispostpone = __webpack_require__(/*! ../../server/lib/router-utils/is-postpone */ \"(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _isnextroutererror = __webpack_require__(/*! ./is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../../server/app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _hooksservercontext = __webpack_require__(/*! ./hooks-server-context */ \"(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nfunction unstable_rethrow(error) {\n if ((0, _isnextroutererror.isNextRouterError)(error) || (0, _bailouttocsr.isBailoutToCSRError)(error) || (0, _hooksservercontext.isDynamicServerError)(error) || (0, _dynamicrendering.isDynamicPostpone)(error) || (0, _ispostpone.isPostpone)(error) || (0, _dynamicrenderingutils.isHangingPromiseRejectionError)(error)) {\n throw error;\n }\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unstable-rethrow.server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cuc2VydmVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBT2dCQTs7O2VBQUFBOzs7bURBUCtCO3dDQUNwQjswQ0FDUzsrQ0FDRjs4Q0FDQTtnREFDRztBQUU5QixTQUFTQSxpQkFBaUJDLEtBQWM7SUFDN0MsSUFDRUMsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQkQsVUFDbEJFLENBQUFBLEdBQUFBLGNBQUFBLG1CQUFBQSxFQUFvQkYsVUFDcEJHLENBQUFBLEdBQUFBLG9CQUFBQSxvQkFBQUEsRUFBcUJILFVBQ3JCSSxDQUFBQSxHQUFBQSxrQkFBQUEsaUJBQUFBLEVBQWtCSixVQUNsQkssQ0FBQUEsR0FBQUEsWUFBQUEsVUFBQUEsRUFBV0wsVUFDWE0sQ0FBQUEsR0FBQUEsdUJBQUFBLDhCQUFBQSxFQUErQk4sUUFDL0I7UUFDQSxNQUFNQTtJQUNSO0lBRUEsSUFBSUEsaUJBQWlCTyxTQUFTLFdBQVdQLE9BQU87UUFDOUNELGlCQUFpQkMsTUFBTVEsS0FBSztJQUM5QjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvdW5zdGFibGUtcmV0aHJvdy5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vc2VydmVyL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHsgaXNQb3N0cG9uZSB9IGZyb20gJy4uLy4uL3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lJ1xuaW1wb3J0IHsgaXNCYWlsb3V0VG9DU1JFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyJ1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuL2lzLW5leHQtcm91dGVyLWVycm9yJ1xuaW1wb3J0IHsgaXNEeW5hbWljUG9zdHBvbmUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZydcbmltcG9ydCB7IGlzRHluYW1pY1NlcnZlckVycm9yIH0gZnJvbSAnLi9ob29rcy1zZXJ2ZXItY29udGV4dCdcblxuZXhwb3J0IGZ1bmN0aW9uIHVuc3RhYmxlX3JldGhyb3coZXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgaWYgKFxuICAgIGlzTmV4dFJvdXRlckVycm9yKGVycm9yKSB8fFxuICAgIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyb3IpIHx8XG4gICAgaXNEeW5hbWljU2VydmVyRXJyb3IoZXJyb3IpIHx8XG4gICAgaXNEeW5hbWljUG9zdHBvbmUoZXJyb3IpIHx8XG4gICAgaXNQb3N0cG9uZShlcnJvcikgfHxcbiAgICBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IoZXJyb3IpXG4gICkge1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiAnY2F1c2UnIGluIGVycm9yKSB7XG4gICAgdW5zdGFibGVfcmV0aHJvdyhlcnJvci5jYXVzZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbInVuc3RhYmxlX3JldGhyb3ciLCJlcnJvciIsImlzTmV4dFJvdXRlckVycm9yIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiaXNEeW5hbWljUG9zdHBvbmUiLCJpc1Bvc3Rwb25lIiwiaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yIiwiRXJyb3IiLCJjYXVzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/components/use-action-queue.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/client/components/use-action-queue.js ***! \**********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n dispatchAppRouterAction: function() {\n return dispatchAppRouterAction;\n },\n useActionQueue: function() {\n return useActionQueue;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _isthenable = __webpack_require__(/*! ../../shared/lib/is-thenable */ \"(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js\");\n// The app router state lives outside of React, so we can import the dispatch\n// method directly wherever we need it, rather than passing it around via props\n// or context.\nlet dispatch = null;\nfunction dispatchAppRouterAction(action) {\n if (dispatch === null) {\n throw Object.defineProperty(new Error('Internal Next.js error: Router action dispatched before initialization.'), \"__NEXT_ERROR_CODE\", {\n value: \"E668\",\n enumerable: false,\n configurable: true\n });\n }\n dispatch(action);\n}\nfunction useActionQueue(actionQueue) {\n const [state, setState] = _react.default.useState(actionQueue.state);\n // Because of a known issue that requires to decode Flight streams inside the\n // render phase, we have to be a bit clever and assign the dispatch method to\n // a module-level variable upon initialization. The useState hook in this\n // module only exists to synchronize state that lives outside of React.\n // Ideally, what we'd do instead is pass the state as a prop to root.render;\n // this is conceptually how we're modeling the app router state, despite the\n // weird implementation details.\n if (true) {\n const { useAppDevRenderingIndicator } = __webpack_require__(/*! ../../next-devtools/userspace/use-app-dev-rendering-indicator */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js\");\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const appDevRenderingIndicator = useAppDevRenderingIndicator();\n dispatch = (action)=>{\n appDevRenderingIndicator(()=>{\n actionQueue.dispatch(action, setState);\n });\n };\n } else {}\n return (0, _isthenable.isThenable)(state) ? (0, _react.use)(state) : state;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-action-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VzZS1hY3Rpb24tcXVldWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZWdCQSx1QkFBdUI7ZUFBdkJBOztJQVNBQyxjQUFjO2VBQWRBOzs7OzZFQXZCVzt3Q0FDQTtBQVEzQiw2RUFBNkU7QUFDN0UsK0VBQStFO0FBQy9FLGNBQWM7QUFDZCxJQUFJQyxXQUE0QztBQUV6QyxTQUFTRix3QkFBd0JHLE1BQXNCO0lBQzVELElBQUlELGFBQWEsTUFBTTtRQUNyQixNQUFNLHFCQUVMLENBRkssSUFBSUUsTUFDUiw0RUFESTttQkFBQTt3QkFBQTswQkFBQTtRQUVOO0lBQ0Y7SUFDQUYsU0FBU0M7QUFDWDtBQUVPLFNBQVNGLGVBQ2RJLFdBQWlDO0lBRWpDLE1BQU0sQ0FBQ0MsT0FBT0MsU0FBUyxHQUFHQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsQ0FBZUosWUFBWUMsS0FBSztJQUV4RSw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLHlFQUF5RTtJQUN6RSx1RUFBdUU7SUFDdkUsNEVBQTRFO0lBQzVFLDRFQUE0RTtJQUM1RSxnQ0FBZ0M7SUFDaEMsSUFBSUksSUFBb0IsRUFBbUI7UUFDekMsTUFBTSxFQUFFRywyQkFBMkIsRUFBRSxHQUNuQ0MsbUJBQU9BLENBQUMsZ0tBQStEO1FBQ3pFLHNEQUFzRDtRQUN0RCxNQUFNQywyQkFBMkJGO1FBRWpDWCxXQUFXLENBQUNDO1lBQ1ZZLHlCQUF5QjtnQkFDdkJWLFlBQVlILFFBQVEsQ0FBQ0MsUUFBUUk7WUFDL0I7UUFDRjtJQUNGLE9BQU8sRUFHTjtJQUVELE9BQU9TLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdWLFNBQVNXLENBQUFBLEdBQUFBLE9BQUFBLEdBQUFBLEVBQUlYLFNBQVNBO0FBQzFDIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvdXNlLWFjdGlvbi1xdWV1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc3BhdGNoIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHsgdXNlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBpc1RoZW5hYmxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pcy10aGVuYWJsZSdcbmltcG9ydCB0eXBlIHsgQXBwUm91dGVyQWN0aW9uUXVldWUgfSBmcm9tICcuL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgdHlwZSB7XG4gIEFwcFJvdXRlclN0YXRlLFxuICBSZWR1Y2VyQWN0aW9ucyxcbiAgUmVkdWNlclN0YXRlLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG4vLyBUaGUgYXBwIHJvdXRlciBzdGF0ZSBsaXZlcyBvdXRzaWRlIG9mIFJlYWN0LCBzbyB3ZSBjYW4gaW1wb3J0IHRoZSBkaXNwYXRjaFxuLy8gbWV0aG9kIGRpcmVjdGx5IHdoZXJldmVyIHdlIG5lZWQgaXQsIHJhdGhlciB0aGFuIHBhc3NpbmcgaXQgYXJvdW5kIHZpYSBwcm9wc1xuLy8gb3IgY29udGV4dC5cbmxldCBkaXNwYXRjaDogRGlzcGF0Y2g8UmVkdWNlckFjdGlvbnM+IHwgbnVsbCA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKGFjdGlvbjogUmVkdWNlckFjdGlvbnMpIHtcbiAgaWYgKGRpc3BhdGNoID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0ludGVybmFsIE5leHQuanMgZXJyb3I6IFJvdXRlciBhY3Rpb24gZGlzcGF0Y2hlZCBiZWZvcmUgaW5pdGlhbGl6YXRpb24uJ1xuICAgIClcbiAgfVxuICBkaXNwYXRjaChhY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBY3Rpb25RdWV1ZShcbiAgYWN0aW9uUXVldWU6IEFwcFJvdXRlckFjdGlvblF1ZXVlXG4pOiBBcHBSb3V0ZXJTdGF0ZSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gUmVhY3QudXNlU3RhdGU8UmVkdWNlclN0YXRlPihhY3Rpb25RdWV1ZS5zdGF0ZSlcblxuICAvLyBCZWNhdXNlIG9mIGEga25vd24gaXNzdWUgdGhhdCByZXF1aXJlcyB0byBkZWNvZGUgRmxpZ2h0IHN0cmVhbXMgaW5zaWRlIHRoZVxuICAvLyByZW5kZXIgcGhhc2UsIHdlIGhhdmUgdG8gYmUgYSBiaXQgY2xldmVyIGFuZCBhc3NpZ24gdGhlIGRpc3BhdGNoIG1ldGhvZCB0b1xuICAvLyBhIG1vZHVsZS1sZXZlbCB2YXJpYWJsZSB1cG9uIGluaXRpYWxpemF0aW9uLiBUaGUgdXNlU3RhdGUgaG9vayBpbiB0aGlzXG4gIC8vIG1vZHVsZSBvbmx5IGV4aXN0cyB0byBzeW5jaHJvbml6ZSBzdGF0ZSB0aGF0IGxpdmVzIG91dHNpZGUgb2YgUmVhY3QuXG4gIC8vIElkZWFsbHksIHdoYXQgd2UnZCBkbyBpbnN0ZWFkIGlzIHBhc3MgdGhlIHN0YXRlIGFzIGEgcHJvcCB0byByb290LnJlbmRlcjtcbiAgLy8gdGhpcyBpcyBjb25jZXB0dWFsbHkgaG93IHdlJ3JlIG1vZGVsaW5nIHRoZSBhcHAgcm91dGVyIHN0YXRlLCBkZXNwaXRlIHRoZVxuICAvLyB3ZWlyZCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLlxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbnN0IHsgdXNlQXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvdXNlLWFwcC1kZXYtcmVuZGVyaW5nLWluZGljYXRvcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL3VzZS1hcHAtZGV2LXJlbmRlcmluZy1pbmRpY2F0b3InKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIGNvbnN0IGFwcERldlJlbmRlcmluZ0luZGljYXRvciA9IHVzZUFwcERldlJlbmRlcmluZ0luZGljYXRvcigpXG5cbiAgICBkaXNwYXRjaCA9IChhY3Rpb246IFJlZHVjZXJBY3Rpb25zKSA9PiB7XG4gICAgICBhcHBEZXZSZW5kZXJpbmdJbmRpY2F0b3IoKCkgPT4ge1xuICAgICAgICBhY3Rpb25RdWV1ZS5kaXNwYXRjaChhY3Rpb24sIHNldFN0YXRlKVxuICAgICAgfSlcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGlzcGF0Y2ggPSAoYWN0aW9uOiBSZWR1Y2VyQWN0aW9ucykgPT5cbiAgICAgIGFjdGlvblF1ZXVlLmRpc3BhdGNoKGFjdGlvbiwgc2V0U3RhdGUpXG4gIH1cblxuICByZXR1cm4gaXNUaGVuYWJsZShzdGF0ZSkgPyB1c2Uoc3RhdGUpIDogc3RhdGVcbn1cbiJdLCJuYW1lcyI6WyJkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiIsInVzZUFjdGlvblF1ZXVlIiwiZGlzcGF0Y2giLCJhY3Rpb24iLCJFcnJvciIsImFjdGlvblF1ZXVlIiwic3RhdGUiLCJzZXRTdGF0ZSIsIlJlYWN0IiwidXNlU3RhdGUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1c2VBcHBEZXZSZW5kZXJpbmdJbmRpY2F0b3IiLCJyZXF1aXJlIiwiYXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yIiwiaXNUaGVuYWJsZSIsInVzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js": /*!********************************************************************************!*\ !*** ./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js ***! \********************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* module decorator */ module = __webpack_require__.nmd(module);\n/// <reference types=\"webpack/module.d.ts\" />\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return HotReload;\n },\n waitForWebpackRuntimeHotUpdate: function() {\n return waitForWebpackRuntimeHotUpdate;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _formatwebpackmessages = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../shared/lib/format-webpack-messages */ \"(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js\"));\nconst _navigation = __webpack_require__(/*! ../../../components/navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _shared = __webpack_require__(/*! ../shared */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _replayssronlyerrors = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/replay-ssr-only-errors */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js\");\nconst _appdevoverlayerrorboundary = __webpack_require__(/*! ../../../../next-devtools/userspace/app/app-dev-overlay-error-boundary */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js\");\nconst _useerrorhandler = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/use-error-handler */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../../runtime-error-handler */ \"(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\");\nconst _usewebsocket = __webpack_require__(/*! ./use-websocket */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js\");\nconst _hotreloadertypes = __webpack_require__(/*! ../../../../server/dev/hot-reloader-types */ \"(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _navigationuntracked = __webpack_require__(/*! ../../../components/navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _reporthmrlatency = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../report-hmr-latency */ \"(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js\"));\nconst _turbopackhotreloadercommon = __webpack_require__(/*! ../turbopack-hot-reloader-common */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js\");\nconst _approuterheaders = __webpack_require__(/*! ../../../components/app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _useforwardconsolelog = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/use-forward-console-log */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js\");\nlet mostRecentCompilationHash = null;\nlet __nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet reloading = false;\nlet webpackStartMsSinceEpoch = null;\nconst turbopackHmr = false ? 0 : null;\nlet pendingHotUpdateWebpack = Promise.resolve();\nlet resolvePendingHotUpdateWebpack = ()=>{};\nfunction setPendingHotUpdateWebpack() {\n pendingHotUpdateWebpack = new Promise((resolve)=>{\n resolvePendingHotUpdateWebpack = ()=>{\n resolve();\n };\n });\n}\nfunction waitForWebpackRuntimeHotUpdate() {\n return pendingHotUpdateWebpack;\n}\n// There is a newer version of the code available.\nfunction handleAvailableHash(hash) {\n // Update last known compilation hash.\n mostRecentCompilationHash = hash;\n}\n/**\n * Is there a newer version of this code available?\n * For webpack: Check if the hash changed compared to __webpack_hash__\n * For Turbopack: Always true because it doesn't have __webpack_hash__\n */ function isUpdateAvailable() {\n if (false) {}\n /* globals __webpack_hash__ */ // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n return mostRecentCompilationHash !== __webpack_require__.h();\n}\n// Webpack disallows updates in other states.\nfunction canApplyUpdates() {\n return module.hot.status() === 'idle';\n}\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n function handler(status) {\n if (status === 'idle') {\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n module.hot.addStatusHandler(handler);\n }\n}\nfunction performFullReload(err, sendMessage) {\n const stackTrace = err && (err.stack && err.stack.split('\\n').slice(0, 5).join('\\n') || err.message || err + '');\n sendMessage(JSON.stringify({\n event: 'client-full-reload',\n stackTrace,\n hadRuntimeError: !!_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError,\n dependencyChain: err ? err.dependencyChain : undefined\n }));\n if (reloading) return;\n reloading = true;\n window.location.reload();\n}\n// Attempt to update code on the fly, fall back to a hard reload.\nfunction tryApplyUpdatesWebpack(sendMessage) {\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n resolvePendingHotUpdateWebpack();\n _nextdevtools.dispatcher.onBuildOk();\n (0, _reporthmrlatency.default)(sendMessage, [], webpackStartMsSinceEpoch, Date.now());\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || updatedModules == null) {\n if (err) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD);\n } else if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n }\n performFullReload(err, sendMessage);\n return;\n }\n _nextdevtools.dispatcher.onBuildOk();\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n tryApplyUpdatesWebpack(sendMessage);\n return;\n }\n _nextdevtools.dispatcher.onRefresh();\n resolvePendingHotUpdateWebpack();\n (0, _reporthmrlatency.default)(sendMessage, updatedModules, webpackStartMsSinceEpoch, Date.now());\n if (false) {}\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (updatedModules == null) {\n return null;\n }\n // We should always handle an update, even if updatedModules is empty (but\n // non-null) for any reason. That's what webpack would normally do:\n // https://github.com/webpack/webpack/blob/3aa6b6bc3a64/lib/hmr/HotModuleReplacement.runtime.js#L296-L298\n _nextdevtools.dispatcher.onBeforeRefresh();\n // https://webpack.js.org/api/hot-module-replacement/#apply\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\n/** Handles messages from the server for the App Router. */ function processMessage(obj, sendMessage, processTurbopackMessage, router, appIsrManifestRef, pathnameRef) {\n if (!('action' in obj)) {\n return;\n }\n function handleErrors(errors) {\n // \"Massage\" webpack messages.\n const formatted = (0, _formatwebpackmessages.default)({\n errors: errors,\n warnings: []\n });\n // Only show the first error.\n _nextdevtools.dispatcher.onBuildError(formatted.errors[0]);\n // Also log them to the console.\n for(let i = 0; i < formatted.errors.length; i++){\n console.error((0, _stripansi.default)(formatted.errors[i]));\n }\n // Do not attempt to reload now.\n // We will reload on next success instead.\n if (false) {}\n }\n function handleHotUpdate() {\n if (false) {} else {\n tryApplyUpdatesWebpack(sendMessage);\n }\n }\n switch(obj.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ISR_MANIFEST:\n {\n if (true) {\n if (appIsrManifestRef) {\n appIsrManifestRef.current = obj.data;\n // handle initial status on receiving manifest\n // navigation is handled in useEffect for pathname changes\n // as we'll receive the updated manifest before usePathname\n // triggers for new value\n if (pathnameRef.current in obj.data) {\n _nextdevtools.dispatcher.onStaticIndicator(true);\n } else {\n _nextdevtools.dispatcher.onStaticIndicator(false);\n }\n }\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILDING:\n {\n _nextdevtools.dispatcher.buildingIndicatorShow();\n if (false) {} else {\n webpackStartMsSinceEpoch = Date.now();\n setPendingHotUpdateWebpack();\n console.log('[Fast Refresh] rebuilding');\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SYNC:\n {\n _nextdevtools.dispatcher.buildingIndicatorHide();\n if (obj.hash) {\n handleAvailableHash(obj.hash);\n }\n const { errors, warnings } = obj;\n // Is undefined when it's a 'built' event\n if ('versionInfo' in obj) _nextdevtools.dispatcher.onVersionInfo(obj.versionInfo);\n if ('debug' in obj && obj.debug) _nextdevtools.dispatcher.onDebugInfo(obj.debug);\n if ('devIndicator' in obj) _nextdevtools.dispatcher.onDevIndicator(obj.devIndicator);\n if ('devToolsConfig' in obj) _nextdevtools.dispatcher.onDevToolsConfig(obj.devToolsConfig);\n const hasErrors = Boolean(errors && errors.length);\n // Compilation with errors (e.g. syntax error or missing modules).\n if (hasErrors) {\n sendMessage(JSON.stringify({\n event: 'client-error',\n errorCount: errors.length,\n clientId: __nextDevClientId\n }));\n handleErrors(errors);\n return;\n }\n const hasWarnings = Boolean(warnings && warnings.length);\n if (hasWarnings) {\n sendMessage(JSON.stringify({\n event: 'client-warning',\n warningCount: warnings.length,\n clientId: __nextDevClientId\n }));\n // Print warnings to the console.\n const formattedMessages = (0, _formatwebpackmessages.default)({\n warnings: warnings,\n errors: []\n });\n for(let i = 0; i < formattedMessages.warnings.length; i++){\n if (i === 5) {\n console.warn('There were more warnings in other files.\\n' + 'You can find a complete log in the terminal.');\n break;\n }\n console.warn((0, _stripansi.default)(formattedMessages.warnings[i]));\n }\n // No early return here as we need to apply modules in the same way between warnings only and compiles without warnings\n }\n sendMessage(JSON.stringify({\n event: 'client-success',\n clientId: __nextDevClientId\n }));\n if (obj.action === _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT) {\n handleHotUpdate();\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED:\n {\n processTurbopackMessage({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED,\n data: {\n sessionId: obj.data.sessionId\n }\n });\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE:\n {\n turbopackHmr.onTurbopackMessage(obj);\n _nextdevtools.dispatcher.onBeforeRefresh();\n processTurbopackMessage({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n data: obj.data\n });\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n performFullReload(null, sendMessage);\n }\n _nextdevtools.dispatcher.onRefresh();\n break;\n }\n // TODO-APP: make server component change more granular\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onServerComponentChanges();\n sendMessage(JSON.stringify({\n event: 'server-component-reload-page',\n clientId: __nextDevClientId,\n hash: obj.hash\n }));\n // Store the latest hash in a session cookie so that it's sent back to the\n // server with any subsequent requests.\n document.cookie = _approuterheaders.NEXT_HMR_REFRESH_HASH_COOKIE + \"=\" + obj.hash + \";path=/\";\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || document.documentElement.id === '__next_error__') {\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n (0, _react.startTransition)(()=>{\n router.hmrRefresh();\n _nextdevtools.dispatcher.onRefresh();\n });\n if (false) {}\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onReloadPage();\n sendMessage(JSON.stringify({\n event: 'client-reload-page',\n clientId: __nextDevClientId\n }));\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ADDED_PAGE:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.REMOVED_PAGE:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onPageAddRemove();\n // TODO-APP: potentially only refresh if the currently viewed page was added/removed.\n return router.hmrRefresh();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR:\n {\n const { errorJSON } = obj;\n if (errorJSON) {\n const { message, stack } = JSON.parse(errorJSON);\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = stack;\n handleErrors([\n error\n ]);\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE:\n {\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.DEVTOOLS_CONFIG:\n {\n _nextdevtools.dispatcher.onDevToolsConfig(obj.data);\n return;\n }\n default:\n {\n obj;\n }\n }\n}\nfunction HotReload(param) {\n let { assetPrefix, children, globalError } = param;\n (0, _useerrorhandler.useErrorHandler)(_nextdevtools.dispatcher.onUnhandledError, _nextdevtools.dispatcher.onUnhandledRejection);\n const webSocketRef = (0, _usewebsocket.useWebsocket)(assetPrefix);\n (0, _usewebsocket.useWebsocketPing)(webSocketRef);\n const sendMessage = (0, _usewebsocket.useSendMessage)(webSocketRef);\n (0, _useforwardconsolelog.useForwardConsoleLog)(webSocketRef);\n const processTurbopackMessage = (0, _usewebsocket.useTurbopack)(sendMessage, (err)=>performFullReload(err, sendMessage));\n const router = (0, _navigation.useRouter)();\n // We don't want access of the pathname for the dev tools to trigger a dynamic\n // access (as the dev overlay will never be present in production).\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n const appIsrManifestRef = (0, _react.useRef)({});\n const pathnameRef = (0, _react.useRef)(pathname);\n if (true) {\n // this conditional is only for dead-code elimination which\n // isn't a runtime conditional only build-time so ignore hooks rule\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, _react.useEffect)(()=>{\n pathnameRef.current = pathname;\n const appIsrManifest = appIsrManifestRef.current;\n if (appIsrManifest) {\n if (pathname && pathname in appIsrManifest) {\n try {\n _nextdevtools.dispatcher.onStaticIndicator(true);\n } catch (reason) {\n let message = '';\n if (reason instanceof DOMException) {\n var _reason_stack;\n // Most likely a SecurityError, because of an unavailable localStorage\n message = (_reason_stack = reason.stack) != null ? _reason_stack : reason.message;\n } else if (reason instanceof Error) {\n var _reason_stack1;\n message = 'Error: ' + reason.message + '\\n' + ((_reason_stack1 = reason.stack) != null ? _reason_stack1 : '');\n } else {\n message = 'Unexpected Exception: ' + reason;\n }\n console.warn('[HMR] ' + message);\n }\n } else {\n _nextdevtools.dispatcher.onStaticIndicator(false);\n }\n }\n }, [\n pathname\n ]);\n }\n (0, _react.useEffect)(()=>{\n const websocket = webSocketRef.current;\n if (!websocket) return;\n const handler = (event)=>{\n try {\n const obj = JSON.parse(event.data);\n processMessage(obj, sendMessage, processTurbopackMessage, router, appIsrManifestRef, pathnameRef);\n } catch (err) {\n (0, _shared.reportInvalidHmrMessage)(event, err);\n }\n };\n websocket.addEventListener('message', handler);\n return ()=>websocket.removeEventListener('message', handler);\n }, [\n sendMessage,\n router,\n webSocketRef,\n processTurbopackMessage,\n appIsrManifestRef\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_appdevoverlayerrorboundary.AppDevOverlayErrorBoundary, {\n globalError: globalError,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_replayssronlyerrors.ReplaySsrOnlyErrors, {\n onBlockingError: _nextdevtools.dispatcher.openErrorOverlay\n }),\n children\n ]\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hot-reloader-app.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2FwcC9ob3QtcmVsb2FkZXItYXBwLmpzIiwibWFwcGluZ3MiOiI7QUFBQSw2Q0FBNkM7Ozs7Ozs7Ozs7Ozs7SUF5YzdDLE9BaUdDO2VBakd1QkE7O0lBcFpSQyw4QkFBOEI7ZUFBOUJBOzs7OzttQ0FsRG1DO2dGQUM3Qjs0RkFDWTt3Q0FDUjtvQ0FLbkI7MENBQ29CO2lEQUNTO3dEQUNPOzZDQUNYO2lEQUNJOzBDQU03Qjs4Q0FDcUM7aURBS1A7dUZBQ1I7d0RBQ0E7OENBQ2dCO2tEQUVSO0FBRXJDLElBQUlDLDRCQUFpQztBQUNyQyxJQUFJQyxvQkFBb0JDLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsTUFBTSxLQUFLLE1BQU1DLEtBQUtDLEdBQUc7QUFDakUsSUFBSUMsWUFBWTtBQUNoQixJQUFJQywyQkFBMEM7QUFDOUMsTUFBTUMsZUFBb0NDLE1BQXFCLEdBQzNELENBQWtCLEdBQ2xCO0FBRUosSUFBSUksMEJBQTBCQyxRQUFRQyxPQUFPO0FBQzdDLElBQUlDLGlDQUE2QyxLQUFPO0FBQ3hELFNBQVNDO0lBQ1BKLDBCQUEwQixJQUFJQyxRQUFRLENBQUNDO1FBQ3JDQyxpQ0FBaUM7WUFDL0JEO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU2pCO0lBQ2QsT0FBT2U7QUFDVDtBQUVBLGtEQUFrRDtBQUNsRCxTQUFTSyxvQkFBb0JDLElBQVk7SUFDdkMsc0NBQXNDO0lBQ3RDcEIsNEJBQTRCb0I7QUFDOUI7QUFFQTs7OztDQUlDLEdBQ0QsU0FBU0M7SUFDUCxJQUFJWCxLQUFxQixFQUFFLEVBRTFCO0lBRUQsNEJBQTRCLEdBQzVCLDJEQUEyRDtJQUMzRCw4Q0FBOEM7SUFDOUMsT0FBT1YsOEJBQThCc0IsdUJBQWdCQTtBQUN2RDtBQUVBLDZDQUE2QztBQUM3QyxTQUFTQztJQUNQLE9BQU9DLE9BQU9DLEdBQUcsQ0FBQ0MsTUFBTSxPQUFPO0FBQ2pDO0FBQ0EsU0FBU0Ms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dUIscUJBQUFBLG1CQUFtQjtnQkFBQ0MsaUJBQWlCdkgsY0FBQUEsVUFBVSxDQUFDd0gsZ0JBQWdCOztZQUNoRTFCOzs7QUFHUCIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9hcHAvaG90LXJlbG9hZGVyLWFwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ3ZWJwYWNrL21vZHVsZS5kLnRzXCIgLz5cblxuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUVmZmVjdCwgc3RhcnRUcmFuc2l0aW9uLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2knXG5pbXBvcnQgZm9ybWF0V2VicGFja01lc3NhZ2VzIGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMnXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL25hdmlnYXRpb24nXG5pbXBvcnQge1xuICBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FELFxuICBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IsXG4gIHJlcG9ydEludmFsaWRIbXJNZXNzYWdlLFxufSBmcm9tICcuLi9zaGFyZWQnXG5pbXBvcnQgeyBkaXNwYXRjaGVyIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMnXG5pbXBvcnQgeyBSZXBsYXlTc3JPbmx5RXJyb3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy9yZXBsYXktc3NyLW9ubHktZXJyb3JzJ1xuaW1wb3J0IHsgQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvYXBwLWRldi1vdmVybGF5LWVycm9yLWJvdW5kYXJ5J1xuaW1wb3J0IHsgdXNlRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy91c2UtZXJyb3ItaGFuZGxlcidcbmltcG9ydCB7IFJ1bnRpbWVFcnJvckhhbmRsZXIgfSBmcm9tICcuLi8uLi9ydW50aW1lLWVycm9yLWhhbmRsZXInXG5pbXBvcnQge1xuICB1c2VTZW5kTWVzc2FnZSxcbiAgdXNlVHVyYm9wYWNrLFxuICB1c2VXZWJzb2NrZXQsXG4gIHVzZVdlYnNvY2tldFBpbmcsXG59IGZyb20gJy4vdXNlLXdlYnNvY2tldCdcbmltcG9ydCB7IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBITVJfQUNUSU9OX1RZUEVTLFxuICBUdXJib3BhY2tNc2dUb0Jyb3dzZXIsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuaW1wb3J0IHsgdXNlVW50cmFja2VkUGF0aG5hbWUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL25hdmlnYXRpb24tdW50cmFja2VkJ1xuaW1wb3J0IHJlcG9ydEhtckxhdGVuY3kgZnJvbSAnLi4vLi4vcmVwb3J0LWhtci1sYXRlbmN5J1xuaW1wb3J0IHsgVHVyYm9wYWNrSG1yIH0gZnJvbSAnLi4vdHVyYm9wYWNrLWhvdC1yZWxvYWRlci1jb21tb24nXG5pbXBvcnQgeyBORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMnXG5pbXBvcnQgdHlwZSB7IEdsb2JhbEVycm9yU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgeyB1c2VGb3J3YXJkQ29uc29sZUxvZyB9IGZyb20gJy4uLy4uLy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWZvcndhcmQtY29uc29sZS1sb2cnXG5cbmxldCBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoOiBhbnkgPSBudWxsXG5sZXQgX19uZXh0RGV2Q2xpZW50SWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAgKyBEYXRlLm5vdygpKVxubGV0IHJlbG9hZGluZyA9IGZhbHNlXG5sZXQgd2VicGFja1N0YXJ0TXNTaW5jZUVwb2NoOiBudW1iZXIgfCBudWxsID0gbnVsbFxuY29uc3QgdHVyYm9wYWNrSG1yOiBUdXJib3BhY2tIbXIgfCBudWxsID0gcHJvY2Vzcy5lbnYuVFVSQk9QQUNLXG4gID8gbmV3IFR1cmJvcGFja0htcigpXG4gIDogbnVsbFxuXG5sZXQgcGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2sgPSBQcm9taXNlLnJlc29sdmUoKVxubGV0IHJlc29sdmVQZW5kaW5nSG90VXBkYXRlV2VicGFjazogKCkgPT4gdm9pZCA9ICgpID0+IHt9XG5mdW5jdGlvbiBzZXRQZW5kaW5nSG90VXBkYXRlV2VicGFjaygpIHtcbiAgcGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2sgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHJlc29sdmVQZW5kaW5nSG90VXBkYXRlV2VicGFjayA9ICgpID0+IHtcbiAgICAgIHJlc29sdmUoKVxuICAgIH1cbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JXZWJwYWNrUnVudGltZUhvdFVwZGF0ZSgpIHtcbiAgcmV0dXJuIHBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrXG59XG5cbi8vIFRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgY29kZSBhdmFpbGFibGUuXG5mdW5jdGlvbiBoYW5kbGVBdmFpbGFibGVIYXNoKGhhc2g6IHN0cmluZykge1xuICAvLyBVcGRhdGUgbGFzdCBrbm93biBjb21waWxhdGlvbiBoYXNoLlxuICBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoID0gaGFzaFxufVxuXG4vKipcbiAqIElzIHRoZXJlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgYXZhaWxhYmxlP1xuICogRm9yIHdlYnBhY2s6IENoZWNrIGlmIHRoZSBoYXNoIGNoYW5nZWQgY29tcGFyZWQgdG8gX193ZWJwYWNrX2hhc2hfX1xuICogRm9yIFR1cmJvcGFjazogQWx3YXlzIHRydWUgYmVjYXVzZSBpdCBkb2Vzbid0IGhhdmUgX193ZWJwYWNrX2hhc2hfX1xuICovXG5mdW5jdGlvbiBpc1VwZGF0ZUF2YWlsYWJsZSgpIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKiBnbG9iYWxzIF9fd2VicGFja19oYXNoX18gKi9cbiAgLy8gX193ZWJwYWNrX2hhc2hfXyBpcyB0aGUgaGFzaCBvZiB0aGUgY3VycmVudCBjb21waWxhdGlvbi5cbiAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICByZXR1cm4gbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCAhPT0gX193ZWJwYWNrX2hhc2hfX1xufVxuXG4vLyBXZWJwYWNrIGRpc2FsbG93cyB1cGRhdGVzIGluIG90aGVyIHN0YXRlcy5cbmZ1bmN0aW9uIGNhbkFwcGx5VXBkYXRlcygpIHtcbiAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJ1xufVxuZnVuY3Rpb24gYWZ0ZXJBcHBseVVwZGF0ZXMoZm46IGFueSkge1xuICBpZiAoY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICBmbigpXG4gIH0gZWxzZSB7XG4gICAgZnVuY3Rpb24gaGFuZGxlcihzdGF0dXM6IGFueSkge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gJ2lkbGUnKSB7XG4gICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihoYW5kbGVyKVxuICAgICAgICBmbigpXG4gICAgICB9XG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWRkU3RhdHVzSGFuZGxlcihoYW5kbGVyKVxuICB9XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm1GdWxsUmVsb2FkKGVycjogYW55LCBzZW5kTWVzc2FnZTogYW55KSB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPVxuICAgIGVyciAmJlxuICAgICgoZXJyLnN0YWNrICYmIGVyci5zdGFjay5zcGxpdCgnXFxuJykuc2xpY2UoMCwgNSkuam9pbignXFxuJykpIHx8XG4gICAgICBlcnIubWVzc2FnZSB8fFxuICAgICAgZXJyICsgJycpXG5cbiAgc2VuZE1lc3NhZ2UoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZXZlbnQ6ICdjbGllbnQtZnVsbC1yZWxvYWQnLFxuICAgICAgc3RhY2tUcmFjZSxcbiAgICAgIGhhZFJ1bnRpbWVFcnJvcjogISFSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcixcbiAgICAgIGRlcGVuZGVuY3lDaGFpbjogZXJyID8gZXJyLmRlcGVuZGVuY3lDaGFpbiA6IHVuZGVmaW5lZCxcbiAgICB9KVxuICApXG5cbiAgaWYgKHJlbG9hZGluZykgcmV0dXJuXG4gIHJlbG9hZGluZyA9IHRydWVcbiAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG59XG5cbi8vIEF0dGVtcHQgdG8gdXBkYXRlIGNvZGUgb24gdGhlIGZseSwgZmFsbCBiYWNrIHRvIGEgaGFyZCByZWxvYWQuXG5mdW5jdGlvbiB0cnlBcHBseVVwZGF0ZXNXZWJwYWNrKHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkKSB7XG4gIGlmICghaXNVcGRhdGVBdmFpbGFibGUoKSB8fCAhY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICByZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2soKVxuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICByZXBvcnRIbXJMYXRlbmN5KHNlbmRNZXNzYWdlLCBbXSwgd2VicGFja1N0YXJ0TXNTaW5jZUVwb2NoISwgRGF0ZS5ub3coKSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUFwcGx5VXBkYXRlcyhcbiAgICBlcnI6IGFueSxcbiAgICB1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGxcbiAgKSB7XG4gICAgaWYgKGVyciB8fCBSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvciB8fCB1cGRhdGVkTW9kdWxlcyA9PSBudWxsKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEKVxuICAgICAgfSBlbHNlIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SKVxuICAgICAgfVxuICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQoZXJyLCBzZW5kTWVzc2FnZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcblxuICAgIGlmIChpc1VwZGF0ZUF2YWlsYWJsZSgpKSB7XG4gICAgICAvLyBXaGlsZSB3ZSB3ZXJlIHVwZGF0aW5nLCB0aGVyZSB3YXMgYSBuZXcgdXBkYXRlISBEbyBpdCBhZ2Fpbi5cbiAgICAgIHRyeUFwcGx5VXBkYXRlc1dlYnBhY2soc2VuZE1lc3NhZ2UpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgcmVzb2x2ZVBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrKClcbiAgICByZXBvcnRIbXJMYXRlbmN5KFxuICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICB1cGRhdGVkTW9kdWxlcyxcbiAgICAgIHdlYnBhY2tTdGFydE1zU2luY2VFcG9jaCEsXG4gICAgICBEYXRlLm5vdygpXG4gICAgKVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgIGFmdGVyQXBwbHlVcGRhdGVzKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQigpXG4gICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2NoZWNrXG4gIG1vZHVsZS5ob3RcbiAgICAuY2hlY2soLyogYXV0b0FwcGx5ICovIGZhbHNlKVxuICAgIC50aGVuKCh1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGwpID0+IHtcbiAgICAgIGlmICh1cGRhdGVkTW9kdWxlcyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIHNob3VsZCBhbHdheXMgaGFuZGxlIGFuIHVwZGF0ZSwgZXZlbiBpZiB1cGRhdGVkTW9kdWxlcyBpcyBlbXB0eSAoYnV0XG4gICAgICAvLyBub24tbnVsbCkgZm9yIGFueSByZWFzb24uIFRoYXQncyB3aGF0IHdlYnBhY2sgd291bGQgbm9ybWFsbHkgZG86XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvM2FhNmI2YmMzYTY0L2xpYi9obXIvSG90TW9kdWxlUmVwbGFjZW1lbnQucnVudGltZS5qcyNMMjk2LUwyOThcbiAgICAgIGRpc3BhdGNoZXIub25CZWZvcmVSZWZyZXNoKClcbiAgICAgIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2FwcGx5XG4gICAgICByZXR1cm4gbW9kdWxlLmhvdC5hcHBseSgpXG4gICAgfSlcbiAgICAudGhlbihcbiAgICAgICh1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGwpID0+IHtcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKG51bGwsIHVwZGF0ZWRNb2R1bGVzKVxuICAgICAgfSxcbiAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICBoYW5kbGVBcHBseVVwZGF0ZXMoZXJyLCBudWxsKVxuICAgICAgfVxuICAgIClcbn1cblxuLyoqIEhhbmRsZXMgbWVzc2FnZXMgZnJvbSB0aGUgc2VydmVyIGZvciB0aGUgQXBwIFJvdXRlci4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NNZXNzYWdlKFxuICBvYmo6IEhNUl9BQ1RJT05fVFlQRVMsXG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZTogKG1zZzogVHVyYm9wYWNrTXNnVG9Ccm93c2VyKSA9PiB2b2lkLFxuICByb3V0ZXI6IFJldHVyblR5cGU8dHlwZW9mIHVzZVJvdXRlcj4sXG4gIGFwcElzck1hbmlmZXN0UmVmOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VSZWY+LFxuICBwYXRobmFtZVJlZjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlUmVmPlxuKSB7XG4gIGlmICghKCdhY3Rpb24nIGluIG9iaikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9ycyhlcnJvcnM6IFJlYWRvbmx5QXJyYXk8dW5rbm93bj4pIHtcbiAgICAvLyBcIk1hc3NhZ2VcIiB3ZWJwYWNrIG1lc3NhZ2VzLlxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyh7XG4gICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgIHdhcm5pbmdzOiBbXSxcbiAgICB9KVxuXG4gICAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvci5cbiAgICBkaXNwYXRjaGVyLm9uQnVpbGRFcnJvcihmb3JtYXR0ZWQuZXJyb3JzWzBdKVxuXG4gICAgLy8gQWxzbyBsb2cgdGhlbSB0byB0aGUgY29uc29sZS5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZC5lcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnNvbGUuZXJyb3Ioc3RyaXBBbnNpKGZvcm1hdHRlZC5lcnJvcnNbaV0pKVxuICAgIH1cblxuICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHJlbG9hZCBub3cuXG4gICAgLy8gV2Ugd2lsbCByZWxvYWQgb24gbmV4dCBzdWNjZXNzIGluc3RlYWQuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKGZvcm1hdHRlZC5lcnJvcnNbMF0pXG4gICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVIb3RVcGRhdGUoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgY29uc3QgaG1yVXBkYXRlID0gdHVyYm9wYWNrSG1yIS5vbkJ1aWx0KClcbiAgICAgIGlmIChobXJVcGRhdGUgIT0gbnVsbCkge1xuICAgICAgICByZXBvcnRIbXJMYXRlbmN5KFxuICAgICAgICAgIHNlbmRNZXNzYWdlLFxuICAgICAgICAgIFsuLi5obXJVcGRhdGUudXBkYXRlZE1vZHVsZXNdLFxuICAgICAgICAgIGhtclVwZGF0ZS5zdGFydE1zU2luY2VFcG9jaCxcbiAgICAgICAgICBobXJVcGRhdGUuZW5kTXNTaW5jZUVwb2NoLFxuICAgICAgICAgIC8vIHN1cHByZXNzIHRoZSBgY2xpZW50LWhtci1sYXRlbmN5YCBldmVudCBpZiB0aGUgdXBkYXRlIHdhcyBhIG5vLW9wOlxuICAgICAgICAgIGhtclVwZGF0ZS5oYXNVcGRhdGVzXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5QXBwbHlVcGRhdGVzV2VicGFjayhzZW5kTWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKG9iai5hY3Rpb24pIHtcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5JU1JfTUFOSUZFU1Q6IHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfREVWX0lORElDQVRPUikge1xuICAgICAgICBpZiAoYXBwSXNyTWFuaWZlc3RSZWYpIHtcbiAgICAgICAgICBhcHBJc3JNYW5pZmVzdFJlZi5jdXJyZW50ID0gb2JqLmRhdGFcblxuICAgICAgICAgIC8vIGhhbmRsZSBpbml0aWFsIHN0YXR1cyBvbiByZWNlaXZpbmcgbWFuaWZlc3RcbiAgICAgICAgICAvLyBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQgaW4gdXNlRWZmZWN0IGZvciBwYXRobmFtZSBjaGFuZ2VzXG4gICAgICAgICAgLy8gYXMgd2UnbGwgcmVjZWl2ZSB0aGUgdXBkYXRlZCBtYW5pZmVzdCBiZWZvcmUgdXNlUGF0aG5hbWVcbiAgICAgICAgICAvLyB0cmlnZ2VycyBmb3IgbmV3IHZhbHVlXG4gICAgICAgICAgaWYgKChwYXRobmFtZVJlZi5jdXJyZW50IGFzIHN0cmluZykgaW4gb2JqLmRhdGEpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIub25TdGF0aWNJbmRpY2F0b3IodHJ1ZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5vblN0YXRpY0luZGljYXRvcihmYWxzZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxESU5HOiB7XG4gICAgICBkaXNwYXRjaGVyLmJ1aWxkaW5nSW5kaWNhdG9yU2hvdygpXG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgdHVyYm9wYWNrSG1yIS5vbkJ1aWxkaW5nKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdlYnBhY2tTdGFydE1zU2luY2VFcG9jaCA9IERhdGUubm93KClcbiAgICAgICAgc2V0UGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2soKVxuICAgICAgICBjb25zb2xlLmxvZygnW0Zhc3QgUmVmcmVzaF0gcmVidWlsZGluZycpXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5CVUlMVDpcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TWU5DOiB7XG4gICAgICBkaXNwYXRjaGVyLmJ1aWxkaW5nSW5kaWNhdG9ySGlkZSgpXG5cbiAgICAgIGlmIChvYmouaGFzaCkge1xuICAgICAgICBoYW5kbGVBdmFpbGFibGVIYXNoKG9iai5oYXNoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGVycm9ycywgd2FybmluZ3MgfSA9IG9ialxuXG4gICAgICAvLyBJcyB1bmRlZmluZWQgd2hlbiBpdCdzIGEgJ2J1aWx0JyBldmVudFxuICAgICAgaWYgKCd2ZXJzaW9uSW5mbycgaW4gb2JqKSBkaXNwYXRjaGVyLm9uVmVyc2lvbkluZm8ob2JqLnZlcnNpb25JbmZvKVxuICAgICAgaWYgKCdkZWJ1ZycgaW4gb2JqICYmIG9iai5kZWJ1ZykgZGlzcGF0Y2hlci5vbkRlYnVnSW5mbyhvYmouZGVidWcpXG4gICAgICBpZiAoJ2RldkluZGljYXRvcicgaW4gb2JqKSBkaXNwYXRjaGVyLm9uRGV2SW5kaWNhdG9yKG9iai5kZXZJbmRpY2F0b3IpXG4gICAgICBpZiAoJ2RldlRvb2xzQ29uZmlnJyBpbiBvYmopXG4gICAgICAgIGRpc3BhdGNoZXIub25EZXZUb29sc0NvbmZpZyhvYmouZGV2VG9vbHNDb25maWcpXG5cbiAgICAgIGNvbnN0IGhhc0Vycm9ycyA9IEJvb2xlYW4oZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpXG4gICAgICAvLyBDb21waWxhdGlvbiB3aXRoIGVycm9ycyAoZS5nLiBzeW50YXggZXJyb3Igb3IgbWlzc2luZyBtb2R1bGVzKS5cbiAgICAgIGlmIChoYXNFcnJvcnMpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgZXJyb3JDb3VudDogZXJyb3JzLmxlbmd0aCxcbiAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgICAgaGFuZGxlRXJyb3JzKGVycm9ycylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhc1dhcm5pbmdzID0gQm9vbGVhbih3YXJuaW5ncyAmJiB3YXJuaW5ncy5sZW5ndGgpXG4gICAgICBpZiAoaGFzV2FybmluZ3MpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtd2FybmluZycsXG4gICAgICAgICAgICB3YXJuaW5nQ291bnQ6IHdhcm5pbmdzLmxlbmd0aCxcbiAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgICAgLy8gUHJpbnQgd2FybmluZ3MgdG8gdGhlIGNvbnNvbGUuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE1lc3NhZ2VzID0gZm9ybWF0V2VicGFja01lc3NhZ2VzKHtcbiAgICAgICAgICB3YXJuaW5nczogd2FybmluZ3MsXG4gICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgfSlcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZE1lc3NhZ2VzLndhcm5pbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGkgPT09IDUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgJ1RoZXJlIHdlcmUgbW9yZSB3YXJuaW5ncyBpbiBvdGhlciBmaWxlcy5cXG4nICtcbiAgICAgICAgICAgICAgICAnWW91IGNhbiBmaW5kIGEgY29tcGxldGUgbG9nIGluIHRoZSB0ZXJtaW5hbC4nXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLndhcm4oc3RyaXBBbnNpKGZvcm1hdHRlZE1lc3NhZ2VzLndhcm5pbmdzW2ldKSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vIGVhcmx5IHJldHVybiBoZXJlIGFzIHdlIG5lZWQgdG8gYXBwbHkgbW9kdWxlcyBpbiB0aGUgc2FtZSB3YXkgYmV0d2VlbiB3YXJuaW5ncyBvbmx5IGFuZCBjb21waWxlcyB3aXRob3V0IHdhcm5pbmdzXG4gICAgICB9XG5cbiAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgZXZlbnQ6ICdjbGllbnQtc3VjY2VzcycsXG4gICAgICAgICAgY2xpZW50SWQ6IF9fbmV4dERldkNsaWVudElkLFxuICAgICAgICB9KVxuICAgICAgKVxuXG4gICAgICBpZiAob2JqLmFjdGlvbiA9PT0gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxUKSB7XG4gICAgICAgIGhhbmRsZUhvdFVwZGF0ZSgpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRDoge1xuICAgICAgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2Uoe1xuICAgICAgICB0eXBlOiBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHNlc3Npb25JZDogb2JqLmRhdGEuc2Vzc2lvbklkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlRVUkJPUEFDS19NRVNTQUdFOiB7XG4gICAgICB0dXJib3BhY2tIbXIhLm9uVHVyYm9wYWNrTWVzc2FnZShvYmopXG4gICAgICBkaXNwYXRjaGVyLm9uQmVmb3JlUmVmcmVzaCgpXG4gICAgICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSh7XG4gICAgICAgIHR5cGU6IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5UVVJCT1BBQ0tfTUVTU0FHRSxcbiAgICAgICAgZGF0YTogb2JqLmRhdGEsXG4gICAgICB9KVxuICAgICAgaWYgKFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IpXG4gICAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKG51bGwsIHNlbmRNZXNzYWdlKVxuICAgICAgfVxuICAgICAgZGlzcGF0Y2hlci5vblJlZnJlc2goKVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgLy8gVE9ETy1BUFA6IG1ha2Ugc2VydmVyIGNvbXBvbmVudCBjaGFuZ2UgbW9yZSBncmFudWxhclxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFUzoge1xuICAgICAgdHVyYm9wYWNrSG1yPy5vblNlcnZlckNvbXBvbmVudENoYW5nZXMoKVxuICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBldmVudDogJ3NlcnZlci1jb21wb25lbnQtcmVsb2FkLXBhZ2UnLFxuICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICBoYXNoOiBvYmouaGFzaCxcbiAgICAgICAgfSlcbiAgICAgIClcblxuICAgICAgLy8gU3RvcmUgdGhlIGxhdGVzdCBoYXNoIGluIGEgc2Vzc2lvbiBjb29raWUgc28gdGhhdCBpdCdzIHNlbnQgYmFjayB0byB0aGVcbiAgICAgIC8vIHNlcnZlciB3aXRoIGFueSBzdWJzZXF1ZW50IHJlcXVlc3RzLlxuICAgICAgZG9jdW1lbnQuY29va2llID0gYCR7TkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRX09JHtvYmouaGFzaH07cGF0aD0vYFxuXG4gICAgICBpZiAoXG4gICAgICAgIFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yIHx8XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pZCA9PT0gJ19fbmV4dF9lcnJvcl9fJ1xuICAgICAgKSB7XG4gICAgICAgIGlmIChyZWxvYWRpbmcpIHJldHVyblxuICAgICAgICByZWxvYWRpbmcgPSB0cnVlXG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgIH1cblxuICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgcm91dGVyLmhtclJlZnJlc2goKVxuICAgICAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgICB9KVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICBpZiAoc2VsZi5fX05FWFRfSE1SX0NCKSB7XG4gICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKClcbiAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlJFTE9BRF9QQUdFOiB7XG4gICAgICB0dXJib3BhY2tIbXI/Lm9uUmVsb2FkUGFnZSgpXG4gICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGV2ZW50OiAnY2xpZW50LXJlbG9hZC1wYWdlJyxcbiAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBpZiAocmVsb2FkaW5nKSByZXR1cm5cbiAgICAgIHJlbG9hZGluZyA9IHRydWVcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQURERURfUEFHRTpcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5SRU1PVkVEX1BBR0U6IHtcbiAgICAgIHR1cmJvcGFja0htcj8ub25QYWdlQWRkUmVtb3ZlKClcbiAgICAgIC8vIFRPRE8tQVBQOiBwb3RlbnRpYWxseSBvbmx5IHJlZnJlc2ggaWYgdGhlIGN1cnJlbnRseSB2aWV3ZWQgcGFnZSB3YXMgYWRkZWQvcmVtb3ZlZC5cbiAgICAgIHJldHVybiByb3V0ZXIuaG1yUmVmcmVzaCgpXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9FUlJPUjoge1xuICAgICAgY29uc3QgeyBlcnJvckpTT04gfSA9IG9ialxuICAgICAgaWYgKGVycm9ySlNPTikge1xuICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIHN0YWNrIH0gPSBKU09OLnBhcnNlKGVycm9ySlNPTilcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICAgICAgZXJyb3Iuc3RhY2sgPSBzdGFja1xuICAgICAgICBoYW5kbGVFcnJvcnMoW2Vycm9yXSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5ERVZfUEFHRVNfTUFOSUZFU1RfVVBEQVRFOiB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuREVWVE9PTFNfQ09ORklHOiB7XG4gICAgICBkaXNwYXRjaGVyLm9uRGV2VG9vbHNDb25maWcob2JqLmRhdGEpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgb2JqIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb3RSZWxvYWQoe1xuICBhc3NldFByZWZpeCxcbiAgY2hpbGRyZW4sXG4gIGdsb2JhbEVycm9yLFxufToge1xuICBhc3NldFByZWZpeDogc3RyaW5nXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgZ2xvYmFsRXJyb3I6IEdsb2JhbEVycm9yU3RhdGVcbn0pIHtcbiAgdXNlRXJyb3JIYW5kbGVyKGRpc3BhdGNoZXIub25VbmhhbmRsZWRFcnJvciwgZGlzcGF0Y2hlci5vblVuaGFuZGxlZFJlamVjdGlvbilcblxuICBjb25zdCB3ZWJTb2NrZXRSZWYgPSB1c2VXZWJzb2NrZXQoYXNzZXRQcmVmaXgpXG5cbiAgdXNlV2Vic29ja2V0UGluZyh3ZWJTb2NrZXRSZWYpXG4gIGNvbnN0IHNlbmRNZXNzYWdlID0gdXNlU2VuZE1lc3NhZ2Uod2ViU29ja2V0UmVmKVxuICB1c2VGb3J3YXJkQ29uc29sZUxvZyh3ZWJTb2NrZXRSZWYpXG4gIGNvbnN0IHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlID0gdXNlVHVyYm9wYWNrKHNlbmRNZXNzYWdlLCAoZXJyKSA9PlxuICAgIHBlcmZvcm1GdWxsUmVsb2FkKGVyciwgc2VuZE1lc3NhZ2UpXG4gIClcblxuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuXG4gIC8vIFdlIGRvbid0IHdhbnQgYWNjZXNzIG9mIHRoZSBwYXRobmFtZSBmb3IgdGhlIGRldiB0b29scyB0byB0cmlnZ2VyIGEgZHluYW1pY1xuICAvLyBhY2Nlc3MgKGFzIHRoZSBkZXYgb3ZlcmxheSB3aWxsIG5ldmVyIGJlIHByZXNlbnQgaW4gcHJvZHVjdGlvbikuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlVW50cmFja2VkUGF0aG5hbWUoKVxuICBjb25zdCBhcHBJc3JNYW5pZmVzdFJlZiA9IHVzZVJlZjxSZWNvcmQ8c3RyaW5nLCBmYWxzZSB8IG51bWJlcj4+KHt9KVxuICBjb25zdCBwYXRobmFtZVJlZiA9IHVzZVJlZihwYXRobmFtZSlcblxuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0RFVl9JTkRJQ0FUT1IpIHtcbiAgICAvLyB0aGlzIGNvbmRpdGlvbmFsIGlzIG9ubHkgZm9yIGRlYWQtY29kZSBlbGltaW5hdGlvbiB3aGljaFxuICAgIC8vIGlzbid0IGEgcnVudGltZSBjb25kaXRpb25hbCBvbmx5IGJ1aWxkLXRpbWUgc28gaWdub3JlIGhvb2tzIHJ1bGVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcGF0aG5hbWVSZWYuY3VycmVudCA9IHBhdGhuYW1lXG5cbiAgICAgIGNvbnN0IGFwcElzck1hbmlmZXN0ID0gYXBwSXNyTWFuaWZlc3RSZWYuY3VycmVudFxuXG4gICAgICBpZiAoYXBwSXNyTWFuaWZlc3QpIHtcbiAgICAgICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lIGluIGFwcElzck1hbmlmZXN0KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIub25TdGF0aWNJbmRpY2F0b3IodHJ1ZSlcbiAgICAgICAgICB9IGNhdGNoIChyZWFzb24pIHtcbiAgICAgICAgICAgIGxldCBtZXNzYWdlID0gJydcblxuICAgICAgICAgICAgaWYgKHJlYXNvbiBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbikge1xuICAgICAgICAgICAgICAvLyBNb3N0IGxpa2VseSBhIFNlY3VyaXR5RXJyb3IsIGJlY2F1c2Ugb2YgYW4gdW5hdmFpbGFibGUgbG9jYWxTdG9yYWdlXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSByZWFzb24uc3RhY2sgPz8gcmVhc29uLm1lc3NhZ2VcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVhc29uIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgbWVzc2FnZSA9ICdFcnJvcjogJyArIHJlYXNvbi5tZXNzYWdlICsgJ1xcbicgKyAocmVhc29uLnN0YWNrID8/ICcnKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbWVzc2FnZSA9ICdVbmV4cGVjdGVkIEV4Y2VwdGlvbjogJyArIHJlYXNvblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tITVJdICcgKyBtZXNzYWdlKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaXNwYXRjaGVyLm9uU3RhdGljSW5kaWNhdG9yKGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW3BhdGhuYW1lXSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgd2Vic29ja2V0ID0gd2ViU29ja2V0UmVmLmN1cnJlbnRcbiAgICBpZiAoIXdlYnNvY2tldCkgcmV0dXJuXG5cbiAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQ8YW55PikgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShldmVudC5kYXRhKVxuICAgICAgICBwcm9jZXNzTWVzc2FnZShcbiAgICAgICAgICBvYmosXG4gICAgICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UsXG4gICAgICAgICAgcm91dGVyLFxuICAgICAgICAgIGFwcElzck1hbmlmZXN0UmVmLFxuICAgICAgICAgIHBhdGhuYW1lUmVmXG4gICAgICAgIClcbiAgICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICByZXBvcnRJbnZhbGlkSG1yTWVzc2FnZShldmVudCwgZXJyKVxuICAgICAgfVxuICAgIH1cblxuICAgIHdlYnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFuZGxlcilcbiAgICByZXR1cm4gKCkgPT4gd2Vic29ja2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBoYW5kbGVyKVxuICB9LCBbXG4gICAgc2VuZE1lc3NhZ2UsXG4gICAgcm91dGVyLFxuICAgIHdlYlNvY2tldFJlZixcbiAgICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSxcbiAgICBhcHBJc3JNYW5pZmVzdFJlZixcbiAgXSlcbiAgcmV0dXJuIChcbiAgICA8QXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnkgZ2xvYmFsRXJyb3I9e2dsb2JhbEVycm9yfT5cbiAgICAgIDxSZXBsYXlTc3JPbmx5RXJyb3JzIG9uQmxvY2tpbmdFcnJvcj17ZGlzcGF0Y2hlci5vcGVuRXJyb3JPdmVybGF5fSAvPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnk+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJIb3RSZWxvYWQiLCJ3YWl0Rm9yV2VicGFja1J1bnRpbWVIb3RVcGRhdGUiLCJtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoIiwiX19uZXh0RGV2Q2xpZW50SWQiLCJNYXRoIiwicm91bmQiLCJyYW5kb20iLCJEYXRlIiwibm93IiwicmVsb2FkaW5nIiwid2VicGFja1N0YXJ0TXNTaW5jZUVwb2NoIiwidHVyYm9wYWNrSG1yIiwicHJvY2VzcyIsImVudiIsIlRVUkJPUEFDSyIsIlR1cmJvcGFja0htciIsInBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2siLCJzZXRQZW5kaW5nSG90VXBkYXRlV2VicGFjayIsImhhbmRsZUF2YWlsYWJsZUhhc2giLCJoYXNoIiwiaXNVcGRhdGVBdmFpbGFibGUiLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsImhhbmRsZXIiLCJyZW1vdmVTdGF0dXNIYW5kbGVyIiwiYWRkU3RhdHVzSGFuZGxlciIsInBlcmZvcm1GdWxsUmVsb2FkIiwiZXJyIiwic2VuZE1lc3NhZ2UiLCJzdGFja1RyYWNlIiwic3RhY2siLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsIm1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJoYWRSdW50aW1lRXJyb3IiLCJSdW50aW1lRXJyb3JIYW5kbGVyIiwiZGVwZW5kZW5jeUNoYWluIiwidW5kZWZpbmVkIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiLCJ0cnlBcHBseVVwZGF0ZXNXZWJwYWNrIiwiZGlzcGF0Y2hlciIsIm9uQnVpbGRPayIsInJlcG9ydEhtckxhdGVuY3kiLCJoYW5kbGVBcHBseVVwZGF0ZXMiLCJ1cGRhdGVkTW9kdWxlcyIsImNvbnNvbGUiLCJ3YXJuIiwiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRCIsIlJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiIsIm9uUmVmcmVzaCIsIl9fTkVYVF9URVNUX01PREUiLCJzZWxmIiwiX19ORVhUX0hNUl9DQiIsImNoZWNrIiwidGhlbiIsIm9uQmVmb3JlUmVmcmVzaCIsImFwcGx5IiwicHJvY2Vzc01lc3NhZ2UiLCJvYmoiLCJwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSIsInJvdXRlciIsImFwcElzck1hbmlmZXN0UmVmIiwicGF0aG5hbWVSZWYiLCJoYW5kbGVFcnJvcnMiLCJlcnJvcnMiLCJmb3JtYXR0ZWQiLCJmb3JtYXRXZWJwYWNrTWVzc2FnZXMiLCJ3YXJuaW5ncyIsIm9uQnVpbGRFcnJvciIsImkiLCJsZW5ndGgiLCJlcnJvciIsInN0cmlwQW5zaSIsImhhbmRsZUhvdFVwZGF0ZSIsImhtclVwZGF0ZSIsIm9uQnVpbHQiLCJzdGFydE1zU2luY2VFcG9jaCIsImVuZE1zU2luY2VFcG9jaCIsImhhc1VwZGF0ZXMiLCJhY3Rpb24iLCJITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIiLCJJU1JfTUFOSUZFU1QiLCJfX05FWFRfREVWX0lORElDQVRPUiIsImN1cnJlbnQiLCJkYXRhIiwib25TdGF0aWNJbmRpY2F0b3IiLCJCVUlMRElORyIsImJ1aWxkaW5nSW5kaWNhdG9yU2hvdyIsIm9uQnVpbGRpbmciLCJsb2ciLCJCVUlMVCIsIlNZTkMiLCJidWlsZGluZ0luZGljYXRvckhpZGUiLCJvblZlcnNpb25JbmZvIiwidmVyc2lvbkluZm8iLCJkZWJ1ZyIsIm9uRGVidWdJbmZvIiwib25EZXZJbmRpY2F0b3IiLCJkZXZJbmRpY2F0b3IiLCJvbkRldlRvb2xzQ29uZmlnIiwiZGV2VG9vbHNDb25maWciLCJoYXNFcnJvcnMiLCJCb29sZWFuIiwiZXJyb3JDb3VudCIsImNsaWVudElkIiwiaGFzV2FybmluZ3MiLCJ3YXJuaW5nQ291bnQiLCJmb3JtYXR0ZWRNZXNzYWdlcyIsIlRVUkJPUEFDS19DT05ORUNURUQiLCJ0eXBlIiwic2Vzc2lvbklkIiwiVFVSQk9QQUNLX01FU1NBR0UiLCJvblR1cmJvcGFja01lc3NhZ2UiLCJTRVJWRVJfQ09NUE9ORU5UX0NIQU5HRVMiLCJvblNlcnZlckNvbXBvbmVudENoYW5nZXMiLCJkb2N1bWVudCIsImNvb2tpZSIsIk5FWFRfSE1SX1JFRlJFU0hfSEFTSF9DT09LSUUiLCJkb2N1bWVudEVsZW1lbnQiLCJpZCIsInN0YXJ0VHJhbnNpdGlvbiIsImhtclJlZnJlc2giLCJSRUxPQURfUEFHRSIsIm9uUmVsb2FkUGFnZSIsIkFEREVEX1BBR0UiLCJSRU1PVkVEX1BBR0UiLCJvblBhZ2VBZGRSZW1vdmUiLCJTRVJWRVJfRVJST1IiLCJlcnJvckpTT04iLCJwYXJzZSIsIkVycm9yIiwiREVWX1BBR0VTX01BTklGRVNUX1VQREFURSIsIkRFVlRPT0xTX0NPTkZJRyIsImFzc2V0UHJlZml4IiwiY2hpbGRyZW4iLCJnbG9iYWxFcnJvciIsInVzZUVycm9ySGFuZGxlciIsIm9uVW5oYW5kbGVkRXJyb3IiLCJvblVuaGFuZGxlZFJlamVjdGlvbiIsIndlYlNvY2tldFJlZiIsInVzZVdlYnNvY2tldCIsInVzZVdlYnNvY2tldFBpbmciLCJ1c2VTZW5kTWVzc2FnZSIsInVzZUZvcndhcmRDb25zb2xlTG9nIiwidXNlVHVyYm9wYWNrIiwidXNlUm91dGVyIiwicGF0aG5hbWUiLCJ1c2VVbnRyYWNrZWRQYXRobmFtZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsImFwcElzck1hbmlmZXN0IiwicmVhc29uIiwiRE9NRXhjZXB0aW9uIiwid2Vic29ja2V0IiwicmVwb3J0SW52YWxpZEhtck1lc3NhZ2UiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIkFwcERldk92ZXJsYXlFcnJvckJvdW5kYXJ5IiwiUmVwbGF5U3NyT25seUVycm9ycyIsIm9uQmxvY2tpbmdFcnJvciIsIm9wZW5FcnJvck92ZXJsYXkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js ***! \*****************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n useSendMessage: function() {\n return useSendMessage;\n },\n useTurbopack: function() {\n return useTurbopack;\n },\n useWebsocket: function() {\n return useWebsocket;\n },\n useWebsocketPing: function() {\n return useWebsocketPing;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _getsocketurl = __webpack_require__(/*! ../get-socket-url */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js\");\nfunction useWebsocket(assetPrefix) {\n const webSocketRef = (0, _react.useRef)(undefined);\n (0, _react.useEffect)(()=>{\n if (webSocketRef.current) {\n return;\n }\n const url = (0, _getsocketurl.getSocketUrl)(assetPrefix);\n webSocketRef.current = new window.WebSocket(\"\" + url + \"/_next/webpack-hmr\");\n }, [\n assetPrefix\n ]);\n return webSocketRef;\n}\nfunction useSendMessage(webSocketRef) {\n const sendMessage = (0, _react.useCallback)((data)=>{\n const socket = webSocketRef.current;\n if (!socket || socket.readyState !== socket.OPEN) {\n return;\n }\n return socket.send(data);\n }, [\n webSocketRef\n ]);\n return sendMessage;\n}\nfunction useTurbopack(sendMessage, onUpdateError) {\n const turbopackState = (0, _react.useRef)({\n init: false,\n // Until the dynamic import resolves, queue any turbopack messages which will be replayed.\n queue: [],\n callback: undefined\n });\n const processTurbopackMessage = (0, _react.useCallback)((msg)=>{\n const { callback, queue } = turbopackState.current;\n if (callback) {\n callback(msg);\n } else {\n queue.push(msg);\n }\n }, []);\n (0, _react.useEffect)(()=>{\n const { current: initCurrent } = turbopackState;\n // TODO(WEB-1589): only install if `process.turbopack` set.\n if (initCurrent.init) {\n return;\n }\n initCurrent.init = true;\n Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! @vercel/turbopack-ecmascript-runtime/browser/dev/hmr-client/hmr-client.ts */ \"(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js\"))).then((param)=>{\n let { connect } = param;\n const { current } = turbopackState;\n connect({\n addMessageListener (cb) {\n current.callback = cb;\n // Replay all Turbopack messages before we were able to establish the HMR client.\n for (const msg of current.queue){\n cb(msg);\n }\n current.queue = undefined;\n },\n sendMessage,\n onUpdateError\n });\n });\n }, [\n sendMessage,\n onUpdateError\n ]);\n return processTurbopackMessage;\n}\nfunction useWebsocketPing(websocketRef) {\n const sendMessage = useSendMessage(websocketRef);\n const { tree } = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n (0, _react.useEffect)(()=>{\n // Never send pings when using Turbopack as it's not used.\n // Pings were originally used to keep track of active routes in on-demand-entries with webpack.\n if (false) {}\n // Taken from on-demand-entries-client.js\n const interval = setInterval(()=>{\n sendMessage(JSON.stringify({\n event: 'ping',\n tree,\n appDirRoute: true\n }));\n }, 2500);\n return ()=>clearInterval(interval);\n }, [\n tree,\n sendMessage\n ]);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-websocket.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2FwcC91c2Utd2Vic29ja2V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7SUFxQmdCQSxjQUFjO2VBQWRBOztJQWNBQyxZQUFZO2VBQVpBOztJQTlCQUMsWUFBWTtlQUFaQTs7SUFzRkFDLGdCQUFnQjtlQUFoQkE7OzttQ0EzRjJDOzJEQUNqQjswQ0FDYjtBQUd0QixTQUFTRCxhQUFhRSxXQUFtQjtJQUM5QyxNQUFNQyxlQUFlQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFNLEVBQVlDO0lBRXZDQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsSUFBSUgsYUFBYUksT0FBTyxFQUFFO1lBQ3hCO1FBQ0Y7UUFFQSxNQUFNQyxNQUFNQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhUDtRQUV6QkMsYUFBYUksT0FBTyxHQUFHLElBQUlHLE9BQU9DLFNBQVMsQ0FBRSxLQUFFSCxNQUFJO0lBQ3JELEdBQUc7UUFBQ047S0FBWTtJQUVoQixPQUFPQztBQUNUO0FBRU8sU0FBU0wsZUFBZUssWUFBNkM7SUFDMUUsTUFBTVMsY0FBY0MsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFDbEIsQ0FBQ0M7UUFDQyxNQUFNQyxTQUFTWixhQUFhSSxPQUFPO1FBQ25DLElBQUksQ0FBQ1EsVUFBVUEsT0FBT0MsVUFBVSxLQUFLRCxPQUFPRSxJQUFJLEVBQUU7WUFDaEQ7UUFDRjtRQUNBLE9BQU9GLE9BQU9HLElBQUksQ0FBQ0o7SUFDckIsR0FDQTtRQUFDWDtLQUFhO0lBRWhCLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTYixhQUNkYSxXQUE4QyxFQUM5Q08sYUFBcUM7SUFFckMsTUFBTUMsaUJBQWlCaEIsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFJcEI7UUFDRGlCLE1BQU07UUFDTiwwRkFBMEY7UUFDMUZDLE9BQU8sRUFBRTtRQUNUQyxVQUFVbEI7SUFDWjtJQUVBLE1BQU1tQiwwQkFBMEJYLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVksQ0FBQ1k7UUFDM0MsTUFBTSxFQUFFRixRQUFRLEVBQUVELEtBQUssRUFBRSxHQUFHRixlQUFlYixPQUFPO1FBQ2xELElBQUlnQixVQUFVO1lBQ1pBLFNBQVNFO1FBQ1gsT0FBTztZQUNMSCxNQUFPSSxJQUFJLENBQUNEO1FBQ2Q7SUFDRixHQUFHLEVBQUU7SUFFTG5CLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixNQUFNLEVBQUVDLFNBQVNvQixXQUFXLEVBQUUsR0FBR1A7UUFDakMsMkRBQTJEO1FBQzNELElBQUlPLFlBQVlOLElBQUksRUFBRTtZQUNwQjtRQUNGO1FBQ0FNLFlBQVlOLElBQUksR0FBRzs2RUFFbkIsbUJBQ0UsQ0FDQSxzSkFDQU8sSUFBSSxDQUFDO2dCQUFDLEVBQUVDLE9BQU8sRUFBRTtZQUNqQixNQUFNLEVBQUV0QixPQUFPLEVBQUUsR0FBR2E7WUFDcEJTLFFBQVE7Z0JBQ05DLG9CQUFtQkMsRUFBd0M7b0JBQ3pEeEIsUUFBUWdCLFFBQVEsR0FBR1E7b0JBRW5CLGlGQUFpRjtvQkFDakYsS0FBSyxNQUFNTixPQUFPbEIsUUFBUWUsS0FBSyxDQUFHO3dCQUNoQ1MsR0FBR047b0JBQ0w7b0JBQ0FsQixRQUFRZSxLQUFLLEdBQUdqQjtnQkFDbEI7Z0JBQ0FPO2dCQUNBTztZQUNGO1FBQ0Y7SUFDRixHQUFHO1FBQUNQO1FBQWFPO0tBQWM7SUFFL0IsT0FBT0s7QUFDVDtBQUVPLFNBQVN2QixpQkFDZCtCLFlBQTZDO0lBRTdDLE1BQU1wQixjQUFjZCxlQUFla0M7SUFDbkMsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsK0JBQUFBLHlCQUF5QjtJQUVyRDdCLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUiwwREFBMEQ7UUFDMUQsK0ZBQStGO1FBQy9GLElBQUk4QixLQUFxQixFQUFFLEVBRTFCO1FBRUQseUNBQXlDO1FBQ3pDLE1BQU1HLFdBQVdDLFlBQVk7WUFDM0I1QixZQUNFNkIsS0FBS0MsU0FBUyxDQUFDO2dCQUNiQyxPQUFPO2dCQUNQVjtnQkFDQVcsYUFBYTtZQUNmO1FBRUosR0FBRztRQUNILE9BQU8sSUFBTUMsY0FBY047SUFDN0IsR0FBRztRQUFDTjtRQUFNckI7S0FBWTtBQUN4QiIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9hcHAvdXNlLXdlYnNvY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEdsb2JhbExheW91dFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGdldFNvY2tldFVybCB9IGZyb20gJy4uL2dldC1zb2NrZXQtdXJsJ1xuaW1wb3J0IHR5cGUgeyBUdXJib3BhY2tNc2dUb0Jyb3dzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVdlYnNvY2tldChhc3NldFByZWZpeDogc3RyaW5nKSB7XG4gIGNvbnN0IHdlYlNvY2tldFJlZiA9IHVzZVJlZjxXZWJTb2NrZXQ+KHVuZGVmaW5lZClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3ZWJTb2NrZXRSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gZ2V0U29ja2V0VXJsKGFzc2V0UHJlZml4KVxuXG4gICAgd2ViU29ja2V0UmVmLmN1cnJlbnQgPSBuZXcgd2luZG93LldlYlNvY2tldChgJHt1cmx9L19uZXh0L3dlYnBhY2staG1yYClcbiAgfSwgW2Fzc2V0UHJlZml4XSlcblxuICByZXR1cm4gd2ViU29ja2V0UmVmXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTZW5kTWVzc2FnZSh3ZWJTb2NrZXRSZWY6IFJldHVyblR5cGU8dHlwZW9mIHVzZVdlYnNvY2tldD4pIHtcbiAgY29uc3Qgc2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzb2NrZXQgPSB3ZWJTb2NrZXRSZWYuY3VycmVudFxuICAgICAgaWYgKCFzb2NrZXQgfHwgc29ja2V0LnJlYWR5U3RhdGUgIT09IHNvY2tldC5PUEVOKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgcmV0dXJuIHNvY2tldC5zZW5kKGRhdGEpXG4gICAgfSxcbiAgICBbd2ViU29ja2V0UmVmXVxuICApXG4gIHJldHVybiBzZW5kTWVzc2FnZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlVHVyYm9wYWNrKFxuICBzZW5kTWVzc2FnZTogUmV0dXJuVHlwZTx0eXBlb2YgdXNlU2VuZE1lc3NhZ2U+LFxuICBvblVwZGF0ZUVycm9yOiAoZXJyOiB1bmtub3duKSA9PiB2b2lkXG4pIHtcbiAgY29uc3QgdHVyYm9wYWNrU3RhdGUgPSB1c2VSZWY8e1xuICAgIGluaXQ6IGJvb2xlYW5cbiAgICBxdWV1ZTogQXJyYXk8VHVyYm9wYWNrTXNnVG9Ccm93c2VyPiB8IHVuZGVmaW5lZFxuICAgIGNhbGxiYWNrOiAoKG1zZzogVHVyYm9wYWNrTXNnVG9Ccm93c2VyKSA9PiB2b2lkKSB8IHVuZGVmaW5lZFxuICB9Pih7XG4gICAgaW5pdDogZmFsc2UsXG4gICAgLy8gVW50aWwgdGhlIGR5bmFtaWMgaW1wb3J0IHJlc29sdmVzLCBxdWV1ZSBhbnkgdHVyYm9wYWNrIG1lc3NhZ2VzIHdoaWNoIHdpbGwgYmUgcmVwbGF5ZWQuXG4gICAgcXVldWU6IFtdLFxuICAgIGNhbGxiYWNrOiB1bmRlZmluZWQsXG4gIH0pXG5cbiAgY29uc3QgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UgPSB1c2VDYWxsYmFjaygobXNnOiBUdXJib3BhY2tNc2dUb0Jyb3dzZXIpID0+IHtcbiAgICBjb25zdCB7IGNhbGxiYWNrLCBxdWV1ZSB9ID0gdHVyYm9wYWNrU3RhdGUuY3VycmVudFxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobXNnKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWV1ZSEucHVzaChtc2cpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudDogaW5pdEN1cnJlbnQgfSA9IHR1cmJvcGFja1N0YXRlXG4gICAgLy8gVE9ETyhXRUItMTU4OSk6IG9ubHkgaW5zdGFsbCBpZiBgcHJvY2Vzcy50dXJib3BhY2tgIHNldC5cbiAgICBpZiAoaW5pdEN1cnJlbnQuaW5pdCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGluaXRDdXJyZW50LmluaXQgPSB0cnVlXG5cbiAgICBpbXBvcnQoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHJlcXVpcmVzIFwibW9kdWxlUmVzb2x1dGlvblwiOiBcIm5vZGUxNlwiIGluIHRzY29uZmlnLmpzb24gYW5kIG5vdCAudHMgZXh0ZW5zaW9uXG4gICAgICAnQHZlcmNlbC90dXJib3BhY2stZWNtYXNjcmlwdC1ydW50aW1lL2Jyb3dzZXIvZGV2L2htci1jbGllbnQvaG1yLWNsaWVudC50cydcbiAgICApLnRoZW4oKHsgY29ubmVjdCB9KSA9PiB7XG4gICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IHR1cmJvcGFja1N0YXRlXG4gICAgICBjb25uZWN0KHtcbiAgICAgICAgYWRkTWVzc2FnZUxpc3RlbmVyKGNiOiAobXNnOiBUdXJib3BhY2tNc2dUb0Jyb3dzZXIpID0+IHZvaWQpIHtcbiAgICAgICAgICBjdXJyZW50LmNhbGxiYWNrID0gY2JcblxuICAgICAgICAgIC8vIFJlcGxheSBhbGwgVHVyYm9wYWNrIG1lc3NhZ2VzIGJlZm9yZSB3ZSB3ZXJlIGFibGUgdG8gZXN0YWJsaXNoIHRoZSBITVIgY2xpZW50LlxuICAgICAgICAgIGZvciAoY29uc3QgbXNnIG9mIGN1cnJlbnQucXVldWUhKSB7XG4gICAgICAgICAgICBjYihtc2cpXG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnQucXVldWUgPSB1bmRlZmluZWRcbiAgICAgICAgfSxcbiAgICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICAgIG9uVXBkYXRlRXJyb3IsXG4gICAgICB9KVxuICAgIH0pXG4gIH0sIFtzZW5kTWVzc2FnZSwgb25VcGRhdGVFcnJvcl0pXG5cbiAgcmV0dXJuIHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VXZWJzb2NrZXRQaW5nKFxuICB3ZWJzb2NrZXRSZWY6IFJldHVyblR5cGU8dHlwZW9mIHVzZVdlYnNvY2tldD5cbikge1xuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZVNlbmRNZXNzYWdlKHdlYnNvY2tldFJlZilcbiAgY29uc3QgeyB0cmVlIH0gPSB1c2VDb250ZXh0KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBOZXZlciBzZW5kIHBpbmdzIHdoZW4gdXNpbmcgVHVyYm9wYWNrIGFzIGl0J3Mgbm90IHVzZWQuXG4gICAgLy8gUGluZ3Mgd2VyZSBvcmlnaW5hbGx5IHVzZWQgdG8ga2VlcCB0cmFjayBvZiBhY3RpdmUgcm91dGVzIGluIG9uLWRlbWFuZC1lbnRyaWVzIHdpdGggd2VicGFjay5cbiAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBUYWtlbiBmcm9tIG9uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qc1xuICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBldmVudDogJ3BpbmcnLFxuICAgICAgICAgIHRyZWUsXG4gICAgICAgICAgYXBwRGlyUm91dGU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSwgMjUwMClcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbClcbiAgfSwgW3RyZWUsIHNlbmRNZXNzYWdlXSlcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTZW5kTWVzc2FnZSIsInVzZVR1cmJvcGFjayIsInVzZVdlYnNvY2tldCIsInVzZVdlYnNvY2tldFBpbmciLCJhc3NldFByZWZpeCIsIndlYlNvY2tldFJlZiIsInVzZVJlZiIsInVuZGVmaW5lZCIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJ1cmwiLCJnZXRTb2NrZXRVcmwiLCJ3aW5kb3ciLCJXZWJTb2NrZXQiLCJzZW5kTWVzc2FnZSIsInVzZUNhbGxiYWNrIiwiZGF0YSIsInNvY2tldCIsInJlYWR5U3RhdGUiLCJPUEVOIiwic2VuZCIsIm9uVXBkYXRlRXJyb3IiLCJ0dXJib3BhY2tTdGF0ZSIsImluaXQiLCJxdWV1ZSIsImNhbGxiYWNrIiwicHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UiLCJtc2ciLCJwdXNoIiwiaW5pdEN1cnJlbnQiLCJ0aGVuIiwiY29ubmVjdCIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsImNiIiwid2Vic29ja2V0UmVmIiwidHJlZSIsInVzZUNvbnRleHQiLCJHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0IiwicHJvY2VzcyIsImVudiIsIlRVUkJPUEFDSyIsImludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJhcHBEaXJSb3V0ZSIsImNsZWFySW50ZXJ2YWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js ***! \**************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSocketUrl\", ({\n enumerable: true,\n get: function() {\n return getSocketUrl;\n }\n}));\nconst _normalizedassetprefix = __webpack_require__(/*! ../../../shared/lib/normalized-asset-prefix */ \"(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\");\nfunction getSocketProtocol(assetPrefix) {\n let protocol = window.location.protocol;\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (e) {}\n return protocol === 'http:' ? 'ws:' : 'wss:';\n}\nfunction getSocketUrl(assetPrefix) {\n const prefix = (0, _normalizedassetprefix.normalizedAssetPrefix)(assetPrefix);\n const protocol = getSocketProtocol(assetPrefix || '');\n if (URL.canParse(prefix)) {\n // since normalized asset prefix is ensured to be a URL format,\n // we can safely replace the protocol\n return prefix.replace(/^http/, 'ws');\n }\n const { hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : '') + prefix;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-socket-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2dldC1zb2NrZXQtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBYWdCQTs7O2VBQUFBOzs7bURBYnNCO0FBRXRDLFNBQVNDLGtCQUFrQkMsV0FBbUI7SUFDNUMsSUFBSUMsV0FBV0MsT0FBT0MsUUFBUSxDQUFDRixRQUFRO0lBRXZDLElBQUk7UUFDRix1QkFBdUI7UUFDdkJBLFdBQVcsSUFBSUcsSUFBSUosYUFBYUMsUUFBUTtJQUMxQyxFQUFFLFVBQU0sQ0FBQztJQUVULE9BQU9BLGFBQWEsVUFBVSxRQUFRO0FBQ3hDO0FBRU8sU0FBU0gsYUFBYUUsV0FBK0I7SUFDMUQsTUFBTUssU0FBU0MsQ0FBQUEsR0FBQUEsdUJBQUFBLHFCQUFBQSxFQUFzQk47SUFDckMsTUFBTUMsV0FBV0Ysa0JBQWtCQyxlQUFlO0lBRWxELElBQUlJLElBQUlHLFFBQVEsQ0FBQ0YsU0FBUztRQUN4QiwrREFBK0Q7UUFDL0QscUNBQXFDO1FBQ3JDLE9BQU9BLE9BQU9HLE9BQU8sQ0FBQyxTQUFTO0lBQ2pDO0lBRUEsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFHUixPQUFPQyxRQUFRO0lBQzFDLE9BQVVGLFdBQVMsT0FBSVEsV0FBV0MsQ0FBQUEsT0FBUSxNQUFHQSxPQUFTLEdBQUMsR0FBSUw7QUFDN0QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9nZXQtc29ja2V0LXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVkQXNzZXRQcmVmaXggfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL25vcm1hbGl6ZWQtYXNzZXQtcHJlZml4J1xuXG5mdW5jdGlvbiBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHByb3RvY29sID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sXG5cbiAgdHJ5IHtcbiAgICAvLyBhc3NldFByZWZpeCBpcyBhIHVybFxuICAgIHByb3RvY29sID0gbmV3IFVSTChhc3NldFByZWZpeCkucHJvdG9jb2xcbiAgfSBjYXRjaCB7fVxuXG4gIHJldHVybiBwcm90b2NvbCA9PT0gJ2h0dHA6JyA/ICd3czonIDogJ3dzczonXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb2NrZXRVcmwoYXNzZXRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGNvbnN0IHByZWZpeCA9IG5vcm1hbGl6ZWRBc3NldFByZWZpeChhc3NldFByZWZpeClcbiAgY29uc3QgcHJvdG9jb2wgPSBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeCB8fCAnJylcblxuICBpZiAoVVJMLmNhblBhcnNlKHByZWZpeCkpIHtcbiAgICAvLyBzaW5jZSBub3JtYWxpemVkIGFzc2V0IHByZWZpeCBpcyBlbnN1cmVkIHRvIGJlIGEgVVJMIGZvcm1hdCxcbiAgICAvLyB3ZSBjYW4gc2FmZWx5IHJlcGxhY2UgdGhlIHByb3RvY29sXG4gICAgcmV0dXJuIHByZWZpeC5yZXBsYWNlKC9eaHR0cC8sICd3cycpXG4gIH1cblxuICBjb25zdCB7IGhvc3RuYW1lLCBwb3J0IH0gPSB3aW5kb3cubG9jYXRpb25cbiAgcmV0dXJuIGAke3Byb3RvY29sfS8vJHtob3N0bmFtZX0ke3BvcnQgPyBgOiR7cG9ydH1gIDogJyd9JHtwcmVmaXh9YFxufVxuIl0sIm5hbWVzIjpbImdldFNvY2tldFVybCIsImdldFNvY2tldFByb3RvY29sIiwiYXNzZXRQcmVmaXgiLCJwcm90b2NvbCIsIndpbmRvdyIsImxvY2F0aW9uIiwiVVJMIiwicHJlZml4Iiwibm9ybWFsaXplZEFzc2V0UHJlZml4IiwiY2FuUGFyc2UiLCJyZXBsYWNlIiwiaG9zdG5hbWUiLCJwb3J0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/client/dev/hot-reloader/shared.js ***! \******************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REACT_REFRESH_FULL_RELOAD: function() {\n return REACT_REFRESH_FULL_RELOAD;\n },\n REACT_REFRESH_FULL_RELOAD_FROM_ERROR: function() {\n return REACT_REFRESH_FULL_RELOAD_FROM_ERROR;\n },\n reportInvalidHmrMessage: function() {\n return reportInvalidHmrMessage;\n }\n});\nconst REACT_REFRESH_FULL_RELOAD = '[Fast Refresh] performing full reload\\n\\n' + \"Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\\n\" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\\n\\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\\n' + 'Fast Refresh requires at least one parent function component in your React tree.';\nconst REACT_REFRESH_FULL_RELOAD_FROM_ERROR = '[Fast Refresh] performing full reload because your application had an unrecoverable error';\nfunction reportInvalidHmrMessage(message, err) {\n console.warn('[HMR] Invalid message: ' + JSON.stringify(message) + '\\n' + (err instanceof Error && (err == null ? void 0 : err.stack) || ''));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=shared.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3NoYXJlZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFFYUEseUJBQXlCO2VBQXpCQTs7SUFRQUMsb0NBQW9DO2VBQXBDQTs7SUFHR0MsdUJBQXVCO2VBQXZCQTs7O0FBWFQsTUFBTUYsNEJBQ1gsOENBQ0EsbUlBQ0EscUlBQ0EsK0dBQ0EsOEhBQ0E7QUFFSyxNQUFNQyx1Q0FDWDtBQUVLLFNBQVNDLHdCQUNkQyxPQUFpRCxFQUNqREMsR0FBWTtJQUVaQyxRQUFRQyxJQUFJLENBQ1YsNEJBQ0VDLEtBQUtDLFNBQVMsQ0FBQ0wsV0FDZixPQUNDLENBQUNDLGVBQWVLLFVBQVNMLE9BQUFBLE9BQUFBLEtBQUFBLElBQUFBLElBQUtNLEtBQUFBLEtBQVUsR0FBQztBQUVoRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3NoYXJlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhNUl9BQ1RJT05fVFlQRVMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcblxuZXhwb3J0IGNvbnN0IFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQUQgPVxuICAnW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZFxcblxcbicgK1xuICBcIkZhc3QgUmVmcmVzaCB3aWxsIHBlcmZvcm0gYSBmdWxsIHJlbG9hZCB3aGVuIHlvdSBlZGl0IGEgZmlsZSB0aGF0J3MgaW1wb3J0ZWQgYnkgbW9kdWxlcyBvdXRzaWRlIG9mIHRoZSBSZWFjdCByZW5kZXJpbmcgdHJlZS5cXG5cIiArXG4gICdZb3UgbWlnaHQgaGF2ZSBhIGZpbGUgd2hpY2ggZXhwb3J0cyBhIFJlYWN0IGNvbXBvbmVudCBidXQgYWxzbyBleHBvcnRzIGEgdmFsdWUgdGhhdCBpcyBpbXBvcnRlZCBieSBhIG5vbi1SZWFjdCBjb21wb25lbnQgZmlsZS5cXG4nICtcbiAgJ0NvbnNpZGVyIG1pZ3JhdGluZyB0aGUgbm9uLVJlYWN0IGNvbXBvbmVudCBleHBvcnQgdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBpbXBvcnRpbmcgaXQgaW50byBib3RoIGZpbGVzLlxcblxcbicgK1xuICAnSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGUgcGFyZW50IGNvbXBvbmVudCBvZiB0aGUgY29tcG9uZW50IHlvdSBlZGl0ZWQgaXMgYSBjbGFzcyBjb21wb25lbnQsIHdoaWNoIGRpc2FibGVzIEZhc3QgUmVmcmVzaC5cXG4nICtcbiAgJ0Zhc3QgUmVmcmVzaCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgcGFyZW50IGZ1bmN0aW9uIGNvbXBvbmVudCBpbiB5b3VyIFJlYWN0IHRyZWUuJ1xuXG5leHBvcnQgY29uc3QgUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SID1cbiAgJ1tGYXN0IFJlZnJlc2hdIHBlcmZvcm1pbmcgZnVsbCByZWxvYWQgYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGhhZCBhbiB1bnJlY292ZXJhYmxlIGVycm9yJ1xuXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0SW52YWxpZEhtck1lc3NhZ2UoXG4gIG1lc3NhZ2U6IEhNUl9BQ1RJT05fVFlQRVMgfCBNZXNzYWdlRXZlbnQ8dW5rbm93bj4sXG4gIGVycjogdW5rbm93blxuKSB7XG4gIGNvbnNvbGUud2FybihcbiAgICAnW0hNUl0gSW52YWxpZCBtZXNzYWdlOiAnICtcbiAgICAgIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpICtcbiAgICAgICdcXG4nICtcbiAgICAgICgoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyPy5zdGFjaykgfHwgJycpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEIiwiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SIiwicmVwb3J0SW52YWxpZEhtck1lc3NhZ2UiLCJtZXNzYWdlIiwiZXJyIiwiY29uc29sZSIsIndhcm4iLCJKU09OIiwic3RyaW5naWZ5IiwiRXJyb3IiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js ***! \*****************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"TurbopackHmr\", ({\n enumerable: true,\n get: function() {\n return TurbopackHmr;\n }\n}));\nconst _class_private_field_loose_base = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_base */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\");\nconst _class_private_field_loose_key = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_key */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\");\n// How long to wait before reporting the HMR start, used to suppress irrelevant\n// `BUILDING` events. Does not impact reported latency.\nconst TURBOPACK_HMR_START_DELAY_MS = 100;\nvar _updatedModules = /*#__PURE__*/ _class_private_field_loose_key._(\"_updatedModules\"), _startMsSinceEpoch = /*#__PURE__*/ _class_private_field_loose_key._(\"_startMsSinceEpoch\"), _lastUpdateMsSinceEpoch = /*#__PURE__*/ _class_private_field_loose_key._(\"_lastUpdateMsSinceEpoch\"), _deferredReportHmrStartId = /*#__PURE__*/ _class_private_field_loose_key._(\"_deferredReportHmrStartId\"), _reportedHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_reportedHmrStart\"), // as it reports *any* compilation, including fully no-op/cached compilations\n// and those unrelated to HMR. Fixing this would require significant\n// architectural changes.\n//\n// Work around this by deferring any \"rebuilding\" message by 100ms. If we get\n// a BUILT event within that threshold and nothing has changed, just suppress\n// the message entirely.\n_runDeferredReportHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_runDeferredReportHmrStart\"), _cancelDeferredReportHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_cancelDeferredReportHmrStart\"), /** Helper for other `onEvent` methods. */ _onUpdate = /*#__PURE__*/ _class_private_field_loose_key._(\"_onUpdate\");\nclass TurbopackHmr {\n onBuilding() {\n _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] = undefined;\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch] = Date.now();\n // report the HMR start after a short delay\n _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] = setTimeout(()=>_class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart](), self.__NEXT_HMR_TURBOPACK_REPORT_NOISY_NOOP_EVENTS ? 0 : TURBOPACK_HMR_START_DELAY_MS);\n }\n onTurbopackMessage(msg) {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n const updatedModules = extractModulesFromTurbopackMessage(msg.data);\n for (const module1 of updatedModules){\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules].add(module1);\n }\n }\n onServerComponentChanges() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n onReloadPage() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n onPageAddRemove() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n /**\n * @returns `null` if the caller should ignore the update entirely. Returns an\n * object with `hasUpdates: false` if the caller should report the end of\n * the HMR in the browser console, but the HMR was a no-op.\n */ onBuilt() {\n // Check that we got *any* `TurbopackMessageAction`, even if\n // `updatedModules` is empty (not everything gets recorded there).\n //\n // There's also a case where `onBuilt` gets called before `onBuilding`,\n // which can happen during initial page load. Ignore that too!\n const hasUpdates = _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] != null && _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch] != null;\n if (!hasUpdates && !_class_private_field_loose_base._(this, _reportedHmrStart)[_reportedHmrStart]) {\n // suppress the update entirely\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n return null;\n }\n _class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart]();\n var _class_private_field_loose_base__lastUpdateMsSinceEpoch;\n const result = {\n hasUpdates,\n updatedModules: _class_private_field_loose_base._(this, _updatedModules)[_updatedModules],\n startMsSinceEpoch: _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch],\n endMsSinceEpoch: (_class_private_field_loose_base__lastUpdateMsSinceEpoch = _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch]) != null ? _class_private_field_loose_base__lastUpdateMsSinceEpoch : Date.now()\n };\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules] = new Set();\n _class_private_field_loose_base._(this, _reportedHmrStart)[_reportedHmrStart] = false;\n return result;\n }\n constructor(){\n Object.defineProperty(this, _runDeferredReportHmrStart, {\n value: runDeferredReportHmrStart\n });\n Object.defineProperty(this, _cancelDeferredReportHmrStart, {\n value: cancelDeferredReportHmrStart\n });\n Object.defineProperty(this, _onUpdate, {\n value: onUpdate\n });\n Object.defineProperty(this, _updatedModules, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _startMsSinceEpoch, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _lastUpdateMsSinceEpoch, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _deferredReportHmrStartId, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _reportedHmrStart, {\n writable: true,\n value: void 0\n });\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules] = new Set();\n _class_private_field_loose_base._(this, _reportedHmrStart)[_reportedHmrStart] = false;\n }\n}\nfunction runDeferredReportHmrStart() {\n if (_class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] != null) {\n console.log('[Fast Refresh] rebuilding');\n _class_private_field_loose_base._(this, _reportedHmrStart)[_reportedHmrStart] = true;\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n }\n}\nfunction cancelDeferredReportHmrStart() {\n clearTimeout(_class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId]);\n _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] = undefined;\n}\nfunction onUpdate() {\n _class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart]();\n _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] = Date.now();\n}\nfunction extractModulesFromTurbopackMessage(data) {\n const updatedModules = new Set();\n const updates = Array.isArray(data) ? data : [\n data\n ];\n for (const update of updates){\n // TODO this won't capture changes to CSS since they don't result in a \"merged\" update\n if (update.type !== 'partial' || update.instruction.type !== 'ChunkListUpdate' || update.instruction.merged === undefined) {\n continue;\n }\n for (const mergedUpdate of update.instruction.merged){\n for (const name of Object.keys(mergedUpdate.entries)){\n const res = /(.*)\\s+\\[.*/.exec(name);\n if (res === null) {\n console.error('[Turbopack HMR] Expected module to match pattern: ' + name);\n continue;\n }\n updatedModules.add(res[1]);\n }\n }\n }\n return updatedModules;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=turbopack-hot-reloader-common.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3R1cmJvcGFjay1ob3QtcmVsb2FkZXItY29tbW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBb0JhQTs7O2VBQUFBOzs7OztBQVhiLCtFQUErRTtBQUMvRSx1REFBdUQ7QUFDdkQsTUFBTUMsK0JBQStCO0lBVW5DLHFGQUNBLDJGQUNBLHFHQUNBLHlHQUNBLHlGQU9BLDRFQUE0RSxDQUNDO0FBQzdFLG9FQUFvRTtBQUNwRSx5QkFBeUI7QUFDekIsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSw2RUFBNkU7QUFDN0Usd0JBQXdCO0FBQ3hCLDJHQVFBLGlIQW9CQSx3Q0FBd0MsR0FDeEM7QUFqREssTUFBTUQ7SUFpQ1hFLGFBQWE7UUFDWCxzQ0FBSSxFQUFDLG9EQUEwQkM7UUFDL0Isc0NBQUksRUFBQztRQUNMLHNDQUFJLEVBQUMsMENBQXFCQyxLQUFLQyxHQUFHO1FBRWxDLDJDQUEyQztRQUMzQyxzQ0FBSSxFQUFDLHdEQUE0QkMsV0FDL0IsSUFBTSxzQ0FBSSxFQUFDLDJEQUVYQyxLQUFLQyw2Q0FBNkMsR0FDOUMsSUFDQVAsaUJBSHNFO0lBSzlFO0lBUUFRLG1CQUFtQkMsR0FBMkIsRUFBRTtRQUM5QyxzQ0FBSSxFQUFDO1FBQ0wsTUFBTUMsaUJBQWlCQyxtQ0FBbUNGLElBQUlHLElBQUk7UUFDbEUsS0FBSyxNQUFNQyxXQUFVSCxlQUFnQjtZQUNuQyxzQ0FBSSxFQUFDLGtDQUFnQkksR0FBRyxDQUFDRDtRQUMzQjtJQUNGO0lBRUFFLDJCQUEyQjtRQUN6QixzQ0FBSSxFQUFDO0lBQ1A7SUFFQUMsZUFBZTtRQUNiLHNDQUFJLEVBQUM7SUFDUDtJQUVBQyxrQkFBa0I7UUFDaEIsc0NBQUksRUFBQztJQUNQO0lBRUE7Ozs7R0FJQyxHQUNEQyxVQUE0QjtRQUMxQiw0REFBNEQ7UUFDNUQsa0VBQWtFO1FBQ2xFLEVBQUU7UUFDRix1RUFBdUU7UUFDdkUsOERBQThEO1FBQzlELE1BQU1DLGFBQ0osc0NBQUksRUFBQyxxREFBMkIsUUFBUSxzQ0FBSSxFQUFDLDJDQUFzQjtRQUNyRSxJQUFJLENBQUNBLGNBQWMsQ0FBQyxzQ0FBSSxFQUFDLHVDQUFtQjtZQUMxQywrQkFBK0I7WUFDL0Isc0NBQUksRUFBQztZQUNMLE9BQU87UUFDVDtRQUNBLHNDQUFJLEVBQUM7O1FBRUwsTUFBTUMsU0FBUztZQUNiRDtZQUNBVCxjQUFjLEVBQUUsc0NBQUksRUFBQztZQUNyQlcsaUJBQWlCLEVBQUUsc0NBQUksRUFBQztZQUN4QkMsaUJBQWlCLGlHQUFJLEVBQUMsdUhBQTJCbkIsS0FBS0MsR0FBRztRQUMzRDtRQUNBLHNDQUFJLEVBQUMsb0NBQWtCLElBQUltQjtRQUMzQixzQ0FBSSxFQUFDLHdDQUFvQjtRQUN6QixPQUFPSDtJQUNUO0lBaEdBSSxhQUFjO1FBYWQ7bUJBQUE7O1FBUUE7bUJBQUE7O1FBcUJBO21CQUFBOztRQWhEQTs7bUJBQUE7O1FBQ0E7O21CQUFBOztRQUNBOzttQkFBQTs7UUFDQTs7bUJBQUE7O1FBQ0E7O21CQUFBOztRQUdFLHNDQUFJLEVBQUMsb0NBQWtCLElBQUlEO1FBQzNCLHNDQUFJLEVBQUMsd0NBQW9CO0lBQzNCO0FBOEZGO0FBcEZFO0lBQ0UsSUFBSSxzQ0FBSSxFQUFDLHlEQUE2QixNQUFNO1FBQzFDRSxRQUFRQyxHQUFHLENBQUM7UUFDWixzQ0FBSSxFQUFDLHdDQUFvQjtRQUN6QixzQ0FBSSxFQUFDO0lBQ1A7QUFDRjtBQUVBO0lBQ0VDLGFBQWEsc0NBQUksRUFBQztJQUNsQixzQ0FBSSxFQUFDLHdEQUE0QnpCO0FBQ25DO0FBa0JBO0lBQ0Usc0NBQUksRUFBQztJQUNMLHNDQUFJLEVBQUMsb0RBQTBCQyxLQUFLQyxHQUFHO0FBQ3pDO0FBc0RGLFNBQVNPLG1DQUNQQyxJQUF5QztJQUV6QyxNQUFNRixpQkFBOEIsSUFBSWE7SUFFeEMsTUFBTUssVUFBVUMsTUFBTUMsT0FBTyxDQUFDbEIsUUFBUUEsT0FBTztRQUFDQTtLQUFLO0lBQ25ELEtBQUssTUFBTW1CLFVBQVVILFFBQVM7UUFDNUIsc0ZBQXNGO1FBQ3RGLElBQ0VHLE9BQU9DLElBQUksS0FBSyxhQUNoQkQsT0FBT0UsV0FBVyxDQUFDRCxJQUFJLEtBQUsscUJBQzVCRCxPQUFPRSxXQUFXLENBQUNDLE1BQU0sS0FBS2hDLFdBQzlCO1lBQ0E7UUFDRjtRQUVBLEtBQUssTUFBTWlDLGdCQUFnQkosT0FBT0UsV0FBVyxDQUFDQyxNQUFNLENBQUU7WUFDcEQsS0FBSyxNQUFNRSxRQUFRQyxPQUFPQyxJQUFJLENBQUNILGFBQWFJLE9BQU8sRUFBRztnQkFDcEQsTUFBTUMsTUFBTSxjQUFjQyxJQUFJLENBQUNMO2dCQUMvQixJQUFJSSxRQUFRLE1BQU07b0JBQ2hCZixRQUFRaUIsS0FBSyxDQUNYLHVEQUF1RE47b0JBRXpEO2dCQUNGO2dCQUVBMUIsZUFBZUksR0FBRyxDQUFDMEIsR0FBRyxDQUFDLEVBQUU7WUFDM0I7UUFDRjtJQUNGO0lBRUEsT0FBTzlCO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci90dXJib3BhY2staG90LXJlbG9hZGVyLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFR1cmJvcGFja01lc3NhZ2VBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcbmltcG9ydCB0eXBlIHsgVXBkYXRlIGFzIFR1cmJvcGFja1VwZGF0ZSB9IGZyb20gJy4uLy4uLy4uL2J1aWxkL3N3Yy90eXBlcydcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBfX05FWFRfSE1SX1RVUkJPUEFDS19SRVBPUlRfTk9JU1lfTk9PUF9FVkVOVFM6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgfVxufVxuXG4vLyBIb3cgbG9uZyB0byB3YWl0IGJlZm9yZSByZXBvcnRpbmcgdGhlIEhNUiBzdGFydCwgdXNlZCB0byBzdXBwcmVzcyBpcnJlbGV2YW50XG4vLyBgQlVJTERJTkdgIGV2ZW50cy4gRG9lcyBub3QgaW1wYWN0IHJlcG9ydGVkIGxhdGVuY3kuXG5jb25zdCBUVVJCT1BBQ0tfSE1SX1NUQVJUX0RFTEFZX01TID0gMTAwXG5cbmludGVyZmFjZSBIbXJVcGRhdGUge1xuICBoYXNVcGRhdGVzOiBib29sZWFuXG4gIHVwZGF0ZWRNb2R1bGVzOiBTZXQ8c3RyaW5nPlxuICBzdGFydE1zU2luY2VFcG9jaDogbnVtYmVyXG4gIGVuZE1zU2luY2VFcG9jaDogbnVtYmVyXG59XG5cbmV4cG9ydCBjbGFzcyBUdXJib3BhY2tIbXIge1xuICAjdXBkYXRlZE1vZHVsZXM6IFNldDxzdHJpbmc+XG4gICNzdGFydE1zU2luY2VFcG9jaDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gICNsYXN0VXBkYXRlTXNTaW5jZUVwb2NoOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgI2RlZmVycmVkUmVwb3J0SG1yU3RhcnRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWRcbiAgI3JlcG9ydGVkSG1yU3RhcnQ6IGJvb2xlYW5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiN1cGRhdGVkTW9kdWxlcyA9IG5ldyBTZXQoKVxuICAgIHRoaXMuI3JlcG9ydGVkSG1yU3RhcnQgPSBmYWxzZVxuICB9XG5cbiAgLy8gSEFDSzogVHVyYm9wYWNrIHRlbmRzIHRvIGdlbmVyYXRlIGEgbG90IG9mIGlycmVsZXZhbnQgXCJCVUlMRElOR1wiIGFjdGlvbnMsXG4gIC8vIGFzIGl0IHJlcG9ydHMgKmFueSogY29tcGlsYXRpb24sIGluY2x1ZGluZyBmdWxseSBuby1vcC9jYWNoZWQgY29tcGlsYXRpb25zXG4gIC8vIGFuZCB0aG9zZSB1bnJlbGF0ZWQgdG8gSE1SLiBGaXhpbmcgdGhpcyB3b3VsZCByZXF1aXJlIHNpZ25pZmljYW50XG4gIC8vIGFyY2hpdGVjdHVyYWwgY2hhbmdlcy5cbiAgLy9cbiAgLy8gV29yayBhcm91bmQgdGhpcyBieSBkZWZlcnJpbmcgYW55IFwicmVidWlsZGluZ1wiIG1lc3NhZ2UgYnkgMTAwbXMuIElmIHdlIGdldFxuICAvLyBhIEJVSUxUIGV2ZW50IHdpdGhpbiB0aGF0IHRocmVzaG9sZCBhbmQgbm90aGluZyBoYXMgY2hhbmdlZCwganVzdCBzdXBwcmVzc1xuICAvLyB0aGUgbWVzc2FnZSBlbnRpcmVseS5cbiAgI3J1bkRlZmVycmVkUmVwb3J0SG1yU3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuI2RlZmVycmVkUmVwb3J0SG1yU3RhcnRJZCAhPSBudWxsKSB7XG4gICAgICBjb25zb2xlLmxvZygnW0Zhc3QgUmVmcmVzaF0gcmVidWlsZGluZycpXG4gICAgICB0aGlzLiNyZXBvcnRlZEhtclN0YXJ0ID0gdHJ1ZVxuICAgICAgdGhpcy4jY2FuY2VsRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpXG4gICAgfVxuICB9XG5cbiAgI2NhbmNlbERlZmVycmVkUmVwb3J0SG1yU3RhcnQoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuI2RlZmVycmVkUmVwb3J0SG1yU3RhcnRJZClcbiAgICB0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIG9uQnVpbGRpbmcoKSB7XG4gICAgdGhpcy4jbGFzdFVwZGF0ZU1zU2luY2VFcG9jaCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuI2NhbmNlbERlZmVycmVkUmVwb3J0SG1yU3RhcnQoKVxuICAgIHRoaXMuI3N0YXJ0TXNTaW5jZUVwb2NoID0gRGF0ZS5ub3coKVxuXG4gICAgLy8gcmVwb3J0IHRoZSBITVIgc3RhcnQgYWZ0ZXIgYSBzaG9ydCBkZWxheVxuICAgIHRoaXMuI2RlZmVycmVkUmVwb3J0SG1yU3RhcnRJZCA9IHNldFRpbWVvdXQoXG4gICAgICAoKSA9PiB0aGlzLiNydW5EZWZlcnJlZFJlcG9ydEhtclN0YXJ0KCksXG4gICAgICAvLyBkZWJ1Z2dpbmcgZmVhdHVyZTogZG9uJ3QgZGVmZXIvc3VwcHJlc3Mgbm9pc3kgbm8tb3AgSE1SIHVwZGF0ZSBtZXNzYWdlc1xuICAgICAgc2VsZi5fX05FWFRfSE1SX1RVUkJPUEFDS19SRVBPUlRfTk9JU1lfTk9PUF9FVkVOVFNcbiAgICAgICAgPyAwXG4gICAgICAgIDogVFVSQk9QQUNLX0hNUl9TVEFSVF9ERUxBWV9NU1xuICAgIClcbiAgfVxuXG4gIC8qKiBIZWxwZXIgZm9yIG90aGVyIGBvbkV2ZW50YCBtZXRob2RzLiAqL1xuICAjb25VcGRhdGUoKSB7XG4gICAgdGhpcy4jcnVuRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpXG4gICAgdGhpcy4jbGFzdFVwZGF0ZU1zU2luY2VFcG9jaCA9IERhdGUubm93KClcbiAgfVxuXG4gIG9uVHVyYm9wYWNrTWVzc2FnZShtc2c6IFR1cmJvcGFja01lc3NhZ2VBY3Rpb24pIHtcbiAgICB0aGlzLiNvblVwZGF0ZSgpXG4gICAgY29uc3QgdXBkYXRlZE1vZHVsZXMgPSBleHRyYWN0TW9kdWxlc0Zyb21UdXJib3BhY2tNZXNzYWdlKG1zZy5kYXRhKVxuICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIHVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICB0aGlzLiN1cGRhdGVkTW9kdWxlcy5hZGQobW9kdWxlKVxuICAgIH1cbiAgfVxuXG4gIG9uU2VydmVyQ29tcG9uZW50Q2hhbmdlcygpIHtcbiAgICB0aGlzLiNvblVwZGF0ZSgpXG4gIH1cblxuICBvblJlbG9hZFBhZ2UoKSB7XG4gICAgdGhpcy4jb25VcGRhdGUoKVxuICB9XG5cbiAgb25QYWdlQWRkUmVtb3ZlKCkge1xuICAgIHRoaXMuI29uVXBkYXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgbnVsbGAgaWYgdGhlIGNhbGxlciBzaG91bGQgaWdub3JlIHRoZSB1cGRhdGUgZW50aXJlbHkuIFJldHVybnMgYW5cbiAgICogICBvYmplY3Qgd2l0aCBgaGFzVXBkYXRlczogZmFsc2VgIGlmIHRoZSBjYWxsZXIgc2hvdWxkIHJlcG9ydCB0aGUgZW5kIG9mXG4gICAqICAgdGhlIEhNUiBpbiB0aGUgYnJvd3NlciBjb25zb2xlLCBidXQgdGhlIEhNUiB3YXMgYSBuby1vcC5cbiAgICovXG4gIG9uQnVpbHQoKTogSG1yVXBkYXRlIHwgbnVsbCB7XG4gICAgLy8gQ2hlY2sgdGhhdCB3ZSBnb3QgKmFueSogYFR1cmJvcGFja01lc3NhZ2VBY3Rpb25gLCBldmVuIGlmXG4gICAgLy8gYHVwZGF0ZWRNb2R1bGVzYCBpcyBlbXB0eSAobm90IGV2ZXJ5dGhpbmcgZ2V0cyByZWNvcmRlZCB0aGVyZSkuXG4gICAgLy9cbiAgICAvLyBUaGVyZSdzIGFsc28gYSBjYXNlIHdoZXJlIGBvbkJ1aWx0YCBnZXRzIGNhbGxlZCBiZWZvcmUgYG9uQnVpbGRpbmdgLFxuICAgIC8vIHdoaWNoIGNhbiBoYXBwZW4gZHVyaW5nIGluaXRpYWwgcGFnZSBsb2FkLiBJZ25vcmUgdGhhdCB0b28hXG4gICAgY29uc3QgaGFzVXBkYXRlcyA9XG4gICAgICB0aGlzLiNsYXN0VXBkYXRlTXNTaW5jZUVwb2NoICE9IG51bGwgJiYgdGhpcy4jc3RhcnRNc1NpbmNlRXBvY2ggIT0gbnVsbFxuICAgIGlmICghaGFzVXBkYXRlcyAmJiAhdGhpcy4jcmVwb3J0ZWRIbXJTdGFydCkge1xuICAgICAgLy8gc3VwcHJlc3MgdGhlIHVwZGF0ZSBlbnRpcmVseVxuICAgICAgdGhpcy4jY2FuY2VsRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICB0aGlzLiNydW5EZWZlcnJlZFJlcG9ydEhtclN0YXJ0KClcblxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIGhhc1VwZGF0ZXMsXG4gICAgICB1cGRhdGVkTW9kdWxlczogdGhpcy4jdXBkYXRlZE1vZHVsZXMsXG4gICAgICBzdGFydE1zU2luY2VFcG9jaDogdGhpcy4jc3RhcnRNc1NpbmNlRXBvY2ghLFxuICAgICAgZW5kTXNTaW5jZUVwb2NoOiB0aGlzLiNsYXN0VXBkYXRlTXNTaW5jZUVwb2NoID8/IERhdGUubm93KCksXG4gICAgfVxuICAgIHRoaXMuI3VwZGF0ZWRNb2R1bGVzID0gbmV3IFNldCgpXG4gICAgdGhpcy4jcmVwb3J0ZWRIbXJTdGFydCA9IGZhbHNlXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RNb2R1bGVzRnJvbVR1cmJvcGFja01lc3NhZ2UoXG4gIGRhdGE6IFR1cmJvcGFja1VwZGF0ZSB8IFR1cmJvcGFja1VwZGF0ZVtdXG4pOiBTZXQ8c3RyaW5nPiB7XG4gIGNvbnN0IHVwZGF0ZWRNb2R1bGVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKVxuXG4gIGNvbnN0IHVwZGF0ZXMgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXVxuICBmb3IgKGNvbnN0IHVwZGF0ZSBvZiB1cGRhdGVzKSB7XG4gICAgLy8gVE9ETyB0aGlzIHdvbid0IGNhcHR1cmUgY2hhbmdlcyB0byBDU1Mgc2luY2UgdGhleSBkb24ndCByZXN1bHQgaW4gYSBcIm1lcmdlZFwiIHVwZGF0ZVxuICAgIGlmIChcbiAgICAgIHVwZGF0ZS50eXBlICE9PSAncGFydGlhbCcgfHxcbiAgICAgIHVwZGF0ZS5pbnN0cnVjdGlvbi50eXBlICE9PSAnQ2h1bmtMaXN0VXBkYXRlJyB8fFxuICAgICAgdXBkYXRlLmluc3RydWN0aW9uLm1lcmdlZCA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgbWVyZ2VkVXBkYXRlIG9mIHVwZGF0ZS5pbnN0cnVjdGlvbi5tZXJnZWQpIHtcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhtZXJnZWRVcGRhdGUuZW50cmllcykpIHtcbiAgICAgICAgY29uc3QgcmVzID0gLyguKilcXHMrXFxbLiovLmV4ZWMobmFtZSlcbiAgICAgICAgaWYgKHJlcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAnW1R1cmJvcGFjayBITVJdIEV4cGVjdGVkIG1vZHVsZSB0byBtYXRjaCBwYXR0ZXJuOiAnICsgbmFtZVxuICAgICAgICAgIClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlZE1vZHVsZXMuYWRkKHJlc1sxXSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdXBkYXRlZE1vZHVsZXNcbn1cbiJdLCJuYW1lcyI6WyJUdXJib3BhY2tIbXIiLCJUVVJCT1BBQ0tfSE1SX1NUQVJUX0RFTEFZX01TIiwib25CdWlsZGluZyIsInVuZGVmaW5lZCIsIkRhdGUiLCJub3ciLCJzZXRUaW1lb3V0Iiwic2VsZiIsIl9fTkVYVF9ITVJfVFVSQk9QQUNLX1JFUE9SVF9OT0lTWV9OT09QX0VWRU5UUyIsIm9uVHVyYm9wYWNrTWVzc2FnZSIsIm1zZyIsInVwZGF0ZWRNb2R1bGVzIiwiZXh0cmFjdE1vZHVsZXNGcm9tVHVyYm9wYWNrTWVzc2FnZSIsImRhdGEiLCJtb2R1bGUiLCJhZGQiLCJvblNlcnZlckNvbXBvbmVudENoYW5nZXMiLCJvblJlbG9hZFBhZ2UiLCJvblBhZ2VBZGRSZW1vdmUiLCJvbkJ1aWx0IiwiaGFzVXBkYXRlcyIsInJlc3VsdCIsInN0YXJ0TXNTaW5jZUVwb2NoIiwiZW5kTXNTaW5jZUVwb2NoIiwiU2V0IiwiY29uc3RydWN0b3IiLCJjb25zb2xlIiwibG9nIiwiY2xlYXJUaW1lb3V0IiwidXBkYXRlcyIsIkFycmF5IiwiaXNBcnJheSIsInVwZGF0ZSIsInR5cGUiLCJpbnN0cnVjdGlvbiIsIm1lcmdlZCIsIm1lcmdlZFVwZGF0ZSIsIm5hbWUiLCJPYmplY3QiLCJrZXlzIiwiZW50cmllcyIsInJlcyIsImV4ZWMiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/client/dev/noop-turbopack-hmr.js ***! \*****************************************************************/ /***/ ((module, exports) => { "use strict"; eval("// The Turbopack HMR client can't be properly omitted at the moment (WEB-1589),\n// so instead we remap its import to this file in webpack builds.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"connect\", ({\n enumerable: true,\n get: function() {\n return connect;\n }\n}));\nfunction connect() {}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=noop-turbopack-hmr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvbm9vcC10dXJib3BhY2staG1yLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtFQUErRTtBQUMvRSxpRUFBaUU7Ozs7OzJDQUNqREE7OztlQUFBQTs7O0FBQVQsU0FBU0EsV0FBVyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL2NsaWVudC9kZXYvbm9vcC10dXJib3BhY2staG1yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBUdXJib3BhY2sgSE1SIGNsaWVudCBjYW4ndCBiZSBwcm9wZXJseSBvbWl0dGVkIGF0IHRoZSBtb21lbnQgKFdFQi0xNTg5KSxcbi8vIHNvIGluc3RlYWQgd2UgcmVtYXAgaXRzIGltcG9ydCB0byB0aGlzIGZpbGUgaW4gd2VicGFjayBidWlsZHMuXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdCgpIHt9XG4iXSwibmFtZXMiOlsiY29ubmVjdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/client/dev/report-hmr-latency.js ***! \*****************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return reportHmrLatency;\n }\n}));\nfunction reportHmrLatency(sendMessage, updatedModules, startMsSinceEpoch, endMsSinceEpoch, hasUpdate) {\n if (hasUpdate === void 0) hasUpdate = true;\n const latencyMs = endMsSinceEpoch - startMsSinceEpoch;\n console.log(\"[Fast Refresh] done in \" + latencyMs + \"ms\");\n if (!hasUpdate) {\n return;\n }\n sendMessage(JSON.stringify({\n event: 'client-hmr-latency',\n id: window.__nextDevClientId,\n startTime: startMsSinceEpoch,\n endTime: endMsSinceEpoch,\n page: window.location.pathname,\n updatedModules,\n // Whether the page (tab) was hidden at the time the event occurred.\n // This can impact the accuracy of the event's timing.\n isPageHidden: document.visibilityState === 'hidden'\n }));\n if (self.__NEXT_HMR_LATENCY_CB) {\n self.__NEXT_HMR_LATENCY_CB(latencyMs);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=report-hmr-latency.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvcmVwb3J0LWhtci1sYXRlbmN5LmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBaUJBOzs7ZUFBd0JBOzs7QUFBVCxTQUFTQSxpQkFDdEJDLFdBQXNDLEVBQ3RDQyxjQUE4QyxFQUM5Q0MsaUJBQXlCLEVBQ3pCQyxlQUF1QixFQUN2QkMsU0FBeUI7SUFBekJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQXFCO0lBRXJCLE1BQU1DLFlBQVlGLGtCQUFrQkQ7SUFDcENJLFFBQVFDLEdBQUcsQ0FBRSw0QkFBeUJGLFlBQVU7SUFDaEQsSUFBSSxDQUFDRCxXQUFXO1FBQ2Q7SUFDRjtJQUNBSixZQUNFUSxLQUFLQyxTQUFTLENBQUM7UUFDYkMsT0FBTztRQUNQQyxJQUFJQyxPQUFPQyxpQkFBaUI7UUFDNUJDLFdBQVdaO1FBQ1hhLFNBQVNaO1FBQ1RhLE1BQU1KLE9BQU9LLFFBQVEsQ0FBQ0MsUUFBUTtRQUM5QmpCO1FBQ0Esb0VBQW9FO1FBQ3BFLHNEQUFzRDtRQUN0RGtCLGNBQWNDLFNBQVNDLGVBQWUsS0FBSztJQUM3QztJQUVGLElBQUlDLEtBQUtDLHFCQUFxQixFQUFFO1FBQzlCRCxLQUFLQyxxQkFBcUIsQ0FBQ2xCO0lBQzdCO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvZGV2L3JlcG9ydC1obXItbGF0ZW5jeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIF9fTkVYVF9ITVJfTEFURU5DWV9DQjogKChsYXRlbmN5TXM6IG51bWJlcikgPT4gdm9pZCkgfCB1bmRlZmluZWRcbiAgfVxufVxuXG4vKipcbiAqIExvZ3MgaW5mb3JtYXRpb24gYWJvdXQgYSBjb21wbGV0ZWQgSE1SIHRvIHRoZSBjb25zb2xlLCB0aGUgc2VydmVyICh2aWEgYVxuICogYGNsaWVudC1obXItbGF0ZW5jeWAgZXZlbnQpLCBhbmQgdG8gYHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCYCAoYSBkZWJ1Z2dpbmdcbiAqIGhvb2spLlxuICpcbiAqIEBwYXJhbSBoYXNVcGRhdGUgU2V0IHRoaXMgdG8gYGZhbHNlYCB0byBhdm9pZCByZXBvcnRpbmcgdGhlIEhNUiBldmVudCB2aWEgYVxuICogICBgY2xpZW50LWhtci1sYXRlbmN5YCBldmVudCBvciB0byBgc2VsZi5fX05FWFRfSE1SX0xBVEVOQ1lfQ0JgLiBVc2VkIGJ5XG4gKiAgIHR1cmJvcGFjayB3aGVuIHdlIG11c3QgcmVwb3J0IGEgbWVzc2FnZSB0byB0aGUgYnJvd3NlciBjb25zb2xlIChiZWNhdXNlIHdlXG4gKiAgIGFscmVhZHkgbG9nZ2VkIGEgXCJyZWJ1aWxkaW5nXCIgbWVzc2FnZSksIGJ1dCBpdCdzIG5vdCBhIHJlYWwgSE1SLCBzbyB3ZVxuICogICBkb24ndCB3YW50IHRvIGltcGFjdCBvdXIgdGVsZW1ldHJ5LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXBvcnRIbXJMYXRlbmN5KFxuICBzZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCxcbiAgdXBkYXRlZE1vZHVsZXM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgc3RhcnRNc1NpbmNlRXBvY2g6IG51bWJlcixcbiAgZW5kTXNTaW5jZUVwb2NoOiBudW1iZXIsXG4gIGhhc1VwZGF0ZTogYm9vbGVhbiA9IHRydWVcbikge1xuICBjb25zdCBsYXRlbmN5TXMgPSBlbmRNc1NpbmNlRXBvY2ggLSBzdGFydE1zU2luY2VFcG9jaFxuICBjb25zb2xlLmxvZyhgW0Zhc3QgUmVmcmVzaF0gZG9uZSBpbiAke2xhdGVuY3lNc31tc2ApXG4gIGlmICghaGFzVXBkYXRlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgc2VuZE1lc3NhZ2UoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZXZlbnQ6ICdjbGllbnQtaG1yLWxhdGVuY3knLFxuICAgICAgaWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgIHN0YXJ0VGltZTogc3RhcnRNc1NpbmNlRXBvY2gsXG4gICAgICBlbmRUaW1lOiBlbmRNc1NpbmNlRXBvY2gsXG4gICAgICBwYWdlOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICB1cGRhdGVkTW9kdWxlcyxcbiAgICAgIC8vIFdoZXRoZXIgdGhlIHBhZ2UgKHRhYikgd2FzIGhpZGRlbiBhdCB0aGUgdGltZSB0aGUgZXZlbnQgb2NjdXJyZWQuXG4gICAgICAvLyBUaGlzIGNhbiBpbXBhY3QgdGhlIGFjY3VyYWN5IG9mIHRoZSBldmVudCdzIHRpbWluZy5cbiAgICAgIGlzUGFnZUhpZGRlbjogZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJyxcbiAgICB9KVxuICApXG4gIGlmIChzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQikge1xuICAgIHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCKGxhdGVuY3lNcylcbiAgfVxufVxuIl0sIm5hbWVzIjpbInJlcG9ydEhtckxhdGVuY3kiLCJzZW5kTWVzc2FnZSIsInVwZGF0ZWRNb2R1bGVzIiwic3RhcnRNc1NpbmNlRXBvY2giLCJlbmRNc1NpbmNlRXBvY2giLCJoYXNVcGRhdGUiLCJsYXRlbmN5TXMiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwiaWQiLCJ3aW5kb3ciLCJfX25leHREZXZDbGllbnRJZCIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJwYWdlIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImlzUGFnZUhpZGRlbiIsImRvY3VtZW50IiwidmlzaWJpbGl0eVN0YXRlIiwic2VsZiIsIl9fTkVYVF9ITVJfTEFURU5DWV9DQiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/dev/runtime-error-handler.js ***! \********************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RuntimeErrorHandler\", ({\n enumerable: true,\n get: function() {\n return RuntimeErrorHandler;\n }\n}));\nconst RuntimeErrorHandler = {\n hadRuntimeError: false\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=runtime-error-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvcnVudGltZS1lcnJvci1oYW5kbGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHNCQUFzQjtJQUNqQ0MsaUJBQWlCO0FBQ25CIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvY2xpZW50L2Rldi9ydW50aW1lLWVycm9yLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJ1bnRpbWVFcnJvckhhbmRsZXIgPSB7XG4gIGhhZFJ1bnRpbWVFcnJvcjogZmFsc2UsXG59XG4iXSwibmFtZXMiOlsiUnVudGltZUVycm9ySGFuZGxlciIsImhhZFJ1bnRpbWVFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/flight-data-helpers.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/client/flight-data-helpers.js ***! \**************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getFlightDataPartsFromPath: function() {\n return getFlightDataPartsFromPath;\n },\n getNextFlightSegmentPath: function() {\n return getNextFlightSegmentPath;\n },\n normalizeFlightData: function() {\n return normalizeFlightData;\n },\n prepareFlightRouterStateForRequest: function() {\n return prepareFlightRouterStateForRequest;\n }\n});\nconst _segment = __webpack_require__(/*! ../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction getFlightDataPartsFromPath(flightDataPath) {\n // Pick the last 4 items from the `FlightDataPath` to get the [tree, seedData, viewport, isHeadPartial].\n const flightDataPathLength = 4;\n // tree, seedData, and head are *always* the last three items in the `FlightDataPath`.\n const [tree, seedData, head, isHeadPartial] = flightDataPath.slice(-flightDataPathLength);\n // The `FlightSegmentPath` is everything except the last three items. For a root render, it won't be present.\n const segmentPath = flightDataPath.slice(0, -flightDataPathLength);\n var _segmentPath_;\n return {\n // TODO: Unify these two segment path helpers. We are inconsistently pushing an empty segment (\"\")\n // to the start of the segment path in some places which makes it hard to use solely the segment path.\n // Look for \"// TODO-APP: remove ''\" in the codebase.\n pathToSegment: segmentPath.slice(0, -1),\n segmentPath,\n // if the `FlightDataPath` corresponds with the root, there'll be no segment path,\n // in which case we default to ''.\n segment: (_segmentPath_ = segmentPath[segmentPath.length - 1]) != null ? _segmentPath_ : '',\n tree,\n seedData,\n head,\n isHeadPartial,\n isRootRender: flightDataPath.length === flightDataPathLength\n };\n}\nfunction getNextFlightSegmentPath(flightSegmentPath) {\n // Since `FlightSegmentPath` is a repeated tuple of `Segment` and `ParallelRouteKey`, we slice off two items\n // to get the next segment path.\n return flightSegmentPath.slice(2);\n}\nfunction normalizeFlightData(flightData) {\n // FlightData can be a string when the server didn't respond with a proper flight response,\n // or when a redirect happens, to signal to the client that it needs to perform an MPA navigation.\n if (typeof flightData === 'string') {\n return flightData;\n }\n return flightData.map((flightDataPath)=>getFlightDataPartsFromPath(flightDataPath));\n}\nfunction prepareFlightRouterStateForRequest(flightRouterState, isHmrRefresh) {\n // HMR requests need the complete, unmodified state for proper functionality\n if (isHmrRefresh) {\n return encodeURIComponent(JSON.stringify(flightRouterState));\n }\n return encodeURIComponent(JSON.stringify(stripClientOnlyDataFromFlightRouterState(flightRouterState)));\n}\n/**\n * Recursively strips client-only data from FlightRouterState while preserving\n * server-needed information for proper rendering decisions.\n */ function stripClientOnlyDataFromFlightRouterState(flightRouterState) {\n const [segment, parallelRoutes, _url, refreshMarker, isRootLayout, hasLoadingBoundary] = flightRouterState;\n // __PAGE__ segments are always fetched from the server, so there's\n // no need to send them up\n const cleanedSegment = stripSearchParamsFromPageSegment(segment);\n // Recursively process parallel routes\n const cleanedParallelRoutes = {};\n for (const [key, childState] of Object.entries(parallelRoutes)){\n cleanedParallelRoutes[key] = stripClientOnlyDataFromFlightRouterState(childState);\n }\n const result = [\n cleanedSegment,\n cleanedParallelRoutes,\n null,\n shouldPreserveRefreshMarker(refreshMarker) ? refreshMarker : null\n ];\n // Append optional fields if present\n if (isRootLayout !== undefined) {\n result[4] = isRootLayout;\n }\n if (hasLoadingBoundary !== undefined) {\n result[5] = hasLoadingBoundary;\n }\n return result;\n}\n/**\n * Strips search parameters from __PAGE__ segments to prevent sensitive\n * client-side data from being sent to the server.\n */ function stripSearchParamsFromPageSegment(segment) {\n if (typeof segment === 'string' && segment.startsWith(_segment.PAGE_SEGMENT_KEY + '?')) {\n return _segment.PAGE_SEGMENT_KEY;\n }\n return segment;\n}\n/**\n * Determines whether the refresh marker should be sent to the server\n * Client-only markers like 'refresh' are stripped, while server-needed markers\n * like 'refetch' and 'inside-shared-layout' are preserved.\n */ function shouldPreserveRefreshMarker(refreshMarker) {\n return Boolean(refreshMarker && refreshMarker !== 'refresh');\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=flight-data-helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9mbGlnaHQtZGF0YS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdDZ0JBLDBCQUEwQjtlQUExQkE7O0lBNEJBQyx3QkFBd0I7ZUFBeEJBOztJQVFBQyxtQkFBbUI7ZUFBbkJBOztJQXNCQUMsa0NBQWtDO2VBQWxDQTs7O3FDQWpGaUI7QUF1QjFCLFNBQVNILDJCQUNkSSxjQUE4QjtJQUU5Qix3R0FBd0c7SUFDeEcsTUFBTUMsdUJBQXVCO0lBQzdCLHNGQUFzRjtJQUN0RixNQUFNLENBQUNDLE1BQU1DLFVBQVVDLE1BQU1DLGNBQWMsR0FDekNMLGVBQWVNLEtBQUssQ0FBQyxDQUFDTDtJQUN4Qiw2R0FBNkc7SUFDN0csTUFBTU0sY0FBY1AsZUFBZU0sS0FBSyxDQUFDLEdBQUcsQ0FBQ0w7UUFVbENNO0lBUlgsT0FBTztRQUNMLGtHQUFrRztRQUNsRyxzR0FBc0c7UUFDdEcscURBQXFEO1FBQ3JEQyxlQUFlRCxZQUFZRCxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JDQztRQUNBLGtGQUFrRjtRQUNsRixrQ0FBa0M7UUFDbENFLFNBQVNGLENBQUFBLGdCQUFBQSxXQUFXLENBQUNBLFlBQVlHLE1BQU0sR0FBRyxPQUFFLE9BQW5DSCxnQkFBdUM7UUFDaERMO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FNLGNBQWNYLGVBQWVVLE1BQU0sS0FBS1Q7SUFDMUM7QUFDRjtBQUVPLFNBQVNKLHlCQUNkZSxpQkFBb0M7SUFFcEMsNEdBQTRHO0lBQzVHLGdDQUFnQztJQUNoQyxPQUFPQSxrQkFBa0JOLEtBQUssQ0FBQztBQUNqQztBQUVPLFNBQVNSLG9CQUNkZSxVQUFzQjtJQUV0QiwyRkFBMkY7SUFDM0Ysa0dBQWtHO0lBQ2xHLElBQUksT0FBT0EsZUFBZSxVQUFVO1FBQ2xDLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPQSxXQUFXQyxHQUFHLENBQUMsQ0FBQ2QsaUJBQ3JCSiwyQkFBMkJJO0FBRS9CO0FBVU8sU0FBU0QsbUNBQ2RnQixpQkFBb0MsRUFDcENDLFlBQXNCO0lBRXRCLDRFQUE0RTtJQUM1RSxJQUFJQSxjQUFjO1FBQ2hCLE9BQU9DLG1CQUFtQkMsS0FBS0MsU0FBUyxDQUFDSjtJQUMzQztJQUVBLE9BQU9FLG1CQUNMQyxLQUFLQyxTQUFTLENBQUNDLHlDQUF5Q0w7QUFFNUQ7QUFFQTs7O0NBR0MsR0FDRCxTQUFTSyx5Q0FDUEwsaUJBQW9DO0lBRXBDLE1BQU0sQ0FDSk4sU0FDQVksZ0JBQ0FDLE1BQ0FDLGVBQ0FDLGNBQ0FDLG1CQUNELEdBQUdWO0lBRUosbUVBQW1FO0lBQ25FLDBCQUEwQjtJQUMxQixNQUFNVyxpQkFBaUJDLGlDQUFpQ2xCO0lBRXhELHNDQUFzQztJQUN0QyxNQUFNbUIsd0JBQThELENBQUM7SUFDckUsS0FBSyxNQUFNLENBQUNDLEtBQUtDLFdBQVcsSUFBSUMsT0FBT0MsT0FBTyxDQUFDWCxnQkFBaUI7UUFDOURPLHFCQUFxQixDQUFDQyxJQUFJLEdBQ3hCVCx5Q0FBeUNVO0lBQzdDO0lBRUEsTUFBTUcsU0FBNEI7UUFDaENQO1FBQ0FFO1FBQ0E7UUFDQU0sNEJBQTRCWCxpQkFBaUJBLGdCQUFnQjtLQUM5RDtJQUVELG9DQUFvQztJQUNwQyxJQUFJQyxpQkFBaUJXLFdBQVc7UUFDOUJGLE1BQU0sQ0FBQyxFQUFFLEdBQUdUO0lBQ2Q7SUFDQSxJQUFJQyx1QkFBdUJVLFdBQVc7UUFDcENGLE1BQU0sQ0FBQyxFQUFFLEdBQUdSO0lBQ2Q7SUFFQSxPQUFPUTtBQUNUO0FBRUE7OztDQUdDLEdBQ0QsU0FBU04saUNBQWlDbEIsT0FBZ0I7SUFDeEQsSUFDRSxPQUFPQSxZQUFZLFlBQ25CQSxRQUFRMkIsVUFBVSxDQUFDQyxTQUFBQSxnQkFBZ0IsR0FBRyxNQUN0QztRQUNBLE9BQU9BLFNBQUFBLGdCQUFnQjtJQUN6QjtJQUNBLE9BQU81QjtBQUNUO0FBRUE7Ozs7Q0FJQyxHQUNELFNBQVN5Qiw0QkFDUFgsYUFBbUM7SUFFbkMsT0FBT2UsUUFBUWYsaUJBQWlCQSxrQkFBa0I7QUFDcEQiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9zcmMvY2xpZW50L2ZsaWdodC1kYXRhLWhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDYWNoZU5vZGVTZWVkRGF0YSxcbiAgRmxpZ2h0RGF0YSxcbiAgRmxpZ2h0RGF0YVBhdGgsXG4gIEZsaWdodFJvdXRlclN0YXRlLFxuICBGbGlnaHRTZWdtZW50UGF0aCxcbiAgU2VnbWVudCxcbn0gZnJvbSAnLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEhlYWREYXRhIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkRmxpZ2h0RGF0YSA9IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIGBGbGlnaHRTZWdtZW50UGF0aGAgaW5jbHVzaXZlIG9mIHRoZSBmaW5hbCBgU2VnbWVudGBcbiAgICovXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxuICAvKipcbiAgICogVGhlIGBGbGlnaHRTZWdtZW50UGF0aGAgZXhjbHVzaXZlIG9mIHRoZSBmaW5hbCBgU2VnbWVudGBcbiAgICovXG4gIHBhdGhUb1NlZ21lbnQ6IEZsaWdodFNlZ21lbnRQYXRoXG4gIHNlZ21lbnQ6IFNlZ21lbnRcbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgc2VlZERhdGE6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbFxuICBoZWFkOiBIZWFkRGF0YVxuICBpc0hlYWRQYXJ0aWFsOiBib29sZWFuXG4gIGlzUm9vdFJlbmRlcjogYm9vbGVhblxufVxuXG4vLyBUT0RPOiBXZSBzaG91bGQgb25seSBoYXZlIHRvIGV4cG9ydCBgbm9ybWFsaXplRmxpZ2h0RGF0YWAsIGhvd2V2ZXIgYmVjYXVzZSB0aGUgaW5pdGlhbCBmbGlnaHQgZGF0YVxuLy8gdGhhdCBnZXRzIHBhc3NlZCB0byBgY3JlYXRlSW5pdGlhbFJvdXRlclN0YXRlYCBkb2Vzbid0IGNvbmZvcm0gdG8gdGhlIGBGbGlnaHREYXRhUGF0aGAgdHlwZSAoaXQncyBtaXNzaW5nIHRoZSByb290IHNlZ21lbnQpXG4vLyB3ZSdyZSBjdXJyZW50bHkgZXhwb3J0aW5nIGl0IHNvIHdlIGNhbiB1c2UgaXQgZGlyZWN0bHkuIFRoaXMgc2hvdWxkIGJlIGZpeGVkIGFzIHBhcnQgb2YgdGhlIHVuaWZpY2F0aW9uIG9mXG4vLyB0aGUgZGlmZmVyZW50IHdheXMgd2UgZXhwcmVzcyBgRmxpZ2h0U2VnbWVudFBhdGhgLlxuZXhwb3J0IGZ1bmN0aW9uIGdldEZsaWdodERhdGFQYXJ0c0Zyb21QYXRoKFxuICBmbGlnaHREYXRhUGF0aDogRmxpZ2h0RGF0YVBhdGhcbik6IE5vcm1hbGl6ZWRGbGlnaHREYXRhIHtcbiAgLy8gUGljayB0aGUgbGFzdCA0IGl0ZW1zIGZyb20gdGhlIGBGbGlnaHREYXRhUGF0aGAgdG8gZ2V0IHRoZSBbdHJlZSwgc2VlZERhdGEsIHZpZXdwb3J0LCBpc0hlYWRQYXJ0aWFsXS5cbiAgY29uc3QgZmxpZ2h0RGF0YVBhdGhMZW5ndGggPSA0XG4gIC8vIHRyZWUsIHNlZWREYXRhLCBhbmQgaGVhZCBhcmUgKmFsd2F5cyogdGhlIGxhc3QgdGhyZWUgaXRlbXMgaW4gdGhlIGBGbGlnaHREYXRhUGF0aGAuXG4gIGNvbnN0IFt0cmVlLCBzZWVkRGF0YSwgaGVhZCwgaXNIZWFkUGFydGlhbF0gPVxuICAgIGZsaWdodERhdGFQYXRoLnNsaWNlKC1mbGlnaHREYXRhUGF0aExlbmd0aClcbiAgLy8gVGhlIGBGbGlnaHRTZWdtZW50UGF0aGAgaXMgZXZlcnl0aGluZyBleGNlcHQgdGhlIGxhc3QgdGhyZWUgaXRlbXMuIEZvciBhIHJvb3QgcmVuZGVyLCBpdCB3b24ndCBiZSBwcmVzZW50LlxuICBjb25zdCBzZWdtZW50UGF0aCA9IGZsaWdodERhdGFQYXRoLnNsaWNlKDAsIC1mbGlnaHREYXRhUGF0aExlbmd0aClcblxuICByZXR1cm4ge1xuICAgIC8vIFRPRE86IFVuaWZ5IHRoZXNlIHR3byBzZWdtZW50IHBhdGggaGVscGVycy4gV2UgYXJlIGluY29uc2lzdGVudGx5IHB1c2hpbmcgYW4gZW1wdHkgc2VnbWVudCAoXCJcIilcbiAgICAvLyB0byB0aGUgc3RhcnQgb2YgdGhlIHNlZ21lbnQgcGF0aCBpbiBzb21lIHBsYWNlcyB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIHVzZSBzb2xlbHkgdGhlIHNlZ21lbnQgcGF0aC5cbiAgICAvLyBMb29rIGZvciBcIi8vIFRPRE8tQVBQOiByZW1vdmUgJydcIiBpbiB0aGUgY29kZWJhc2UuXG4gICAgcGF0aFRvU2VnbWVudDogc2VnbWVudFBhdGguc2xpY2UoMCwgLTEpLFxuICAgIHNlZ21lbnRQYXRoLFxuICAgIC8vIGlmIHRoZSBgRmxpZ2h0RGF0YVBhdGhgIGNvcnJlc3BvbmRzIHdpdGggdGhlIHJvb3QsIHRoZXJlJ2xsIGJlIG5vIHNlZ21lbnQgcGF0aCxcbiAgICAvLyBpbiB3aGljaCBjYXNlIHdlIGRlZmF1bHQgdG8gJycuXG4gICAgc2VnbWVudDogc2VnbWVudFBhdGhbc2VnbWVudFBhdGgubGVuZ3RoIC0gMV0gPz8gJycsXG4gICAgdHJlZSxcbiAgICBzZWVkRGF0YSxcbiAgICBoZWFkLFxuICAgIGlzSGVhZFBhcnRpYWwsXG4gICAgaXNSb290UmVuZGVyOiBmbGlnaHREYXRhUGF0aC5sZW5ndGggPT09IGZsaWdodERhdGFQYXRoTGVuZ3RoLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgoXG4gIGZsaWdodFNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxuKTogRmxpZ2h0U2VnbWVudFBhdGgge1xuICAvLyBTaW5jZSBgRmxpZ2h0U2VnbWVudFBhdGhgIGlzIGEgcmVwZWF0ZWQgdHVwbGUgb2YgYFNlZ21lbnRgIGFuZCBgUGFyYWxsZWxSb3V0ZUtleWAsIHdlIHNsaWNlIG9mZiB0d28gaXRlbXNcbiAgLy8gdG8gZ2V0IHRoZSBuZXh0IHNlZ21lbnQgcGF0aC5cbiAgcmV0dXJuIGZsaWdodFNlZ21lbnRQYXRoLnNsaWNlKDIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVGbGlnaHREYXRhKFxuICBmbGlnaHREYXRhOiBGbGlnaHREYXRhXG4pOiBOb3JtYWxpemVkRmxpZ2h0RGF0YVtdIHwgc3RyaW5nIHtcbiAgLy8gRmxpZ2h0RGF0YSBjYW4gYmUgYSBzdHJpbmcgd2hlbiB0aGUgc2VydmVyIGRpZG4ndCByZXNwb25kIHdpdGggYSBwcm9wZXIgZmxpZ2h0IHJlc3BvbnNlLFxuICAvLyBvciB3aGVuIGEgcmVkaXJlY3QgaGFwcGVucywgdG8gc2lnbmFsIHRvIHRoZSBjbGllbnQgdGhhdCBpdCBuZWVkcyB0byBwZXJmb3JtIGFuIE1QQSBuYXZpZ2F0aW9uLlxuICBpZiAodHlwZW9mIGZsaWdodERhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZsaWdodERhdGFcbiAgfVxuXG4gIHJldHVybiBmbGlnaHREYXRhLm1hcCgoZmxpZ2h0RGF0YVBhdGgpID0+XG4gICAgZ2V0RmxpZ2h0RGF0YVBhcnRzRnJvbVBhdGgoZmxpZ2h0RGF0YVBhdGgpXG4gIClcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcHJlcGFyZSB0aGUgZmxpZ2h0IHJvdXRlciBzdGF0ZSBmb3IgdGhlIHJlcXVlc3QuXG4gKiBJdCByZW1vdmVzIG1hcmtlcnMgdGhhdCBhcmUgbm90IG5lZWRlZCBieSB0aGUgc2VydmVyLCBhbmQgYXJlIHB1cmVseSB1c2VkXG4gKiBmb3Igc3Rhc2hpbmcgc3RhdGUgb24gdGhlIGNsaWVudC5cbiAqIEBwYXJhbSBmbGlnaHRSb3V0ZXJTdGF0ZSAtIFRoZSBmbGlnaHQgcm91dGVyIHN0YXRlIHRvIHByZXBhcmUuXG4gKiBAcGFyYW0gaXNIbXJSZWZyZXNoIC0gV2hldGhlciB0aGlzIGlzIGFuIEhNUiByZWZyZXNoIHJlcXVlc3QuXG4gKiBAcmV0dXJucyBUaGUgcHJlcGFyZWQgZmxpZ2h0IHJvdXRlciBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3QoXG4gIGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgaXNIbXJSZWZyZXNoPzogYm9vbGVhblxuKTogc3RyaW5nIHtcbiAgLy8gSE1SIHJlcXVlc3RzIG5lZWQgdGhlIGNvbXBsZXRlLCB1bm1vZGlmaWVkIHN0YXRlIGZvciBwcm9wZXIgZnVuY3Rpb25hbGl0eVxuICBpZiAoaXNIbXJSZWZyZXNoKSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShmbGlnaHRSb3V0ZXJTdGF0ZSkpXG4gIH1cblxuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgIEpTT04uc3RyaW5naWZ5KHN0cmlwQ2xpZW50T25seURhdGFGcm9tRmxpZ2h0Um91dGVyU3RhdGUoZmxpZ2h0Um91dGVyU3RhdGUpKVxuICApXG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgc3RyaXBzIGNsaWVudC1vbmx5IGRhdGEgZnJvbSBGbGlnaHRSb3V0ZXJTdGF0ZSB3aGlsZSBwcmVzZXJ2aW5nXG4gKiBzZXJ2ZXItbmVlZGVkIGluZm9ybWF0aW9uIGZvciBwcm9wZXIgcmVuZGVyaW5nIGRlY2lzaW9ucy5cbiAqL1xuZnVuY3Rpb24gc3RyaXBDbGllbnRPbmx5RGF0YUZyb21GbGlnaHRSb3V0ZXJTdGF0ZShcbiAgZmxpZ2h0Um91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBGbGlnaHRSb3V0ZXJTdGF0ZSB7XG4gIGNvbnN0IFtcbiAgICBzZWdtZW50LFxuICAgIHBhcmFsbGVsUm91dGVzLFxuICAgIF91cmwsIC8vIEludGVudGlvbmFsbHkgdW51c2VkIC0gVVJMcyBhcmUgY2xpZW50LW9ubHlcbiAgICByZWZyZXNoTWFya2VyLFxuICAgIGlzUm9vdExheW91dCxcbiAgICBoYXNMb2FkaW5nQm91bmRhcnksXG4gIF0gPSBmbGlnaHRSb3V0ZXJTdGF0ZVxuXG4gIC8vIF9fUEFHRV9fIHNlZ21lbnRzIGFyZSBhbHdheXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIsIHNvIHRoZXJlJ3NcbiAgLy8gbm8gbmVlZCB0byBzZW5kIHRoZW0gdXBcbiAgY29uc3QgY2xlYW5lZFNlZ21lbnQgPSBzdHJpcFNlYXJjaFBhcmFtc0Zyb21QYWdlU2VnbWVudChzZWdtZW50KVxuXG4gIC8vIFJlY3Vyc2l2ZWx5IHByb2Nlc3MgcGFyYWxsZWwgcm91dGVzXG4gIGNvbnN0IGNsZWFuZWRQYXJhbGxlbFJvdXRlczogeyBba2V5OiBzdHJpbmddOiBGbGlnaHRSb3V0ZXJTdGF0ZSB9ID0ge31cbiAgZm9yIChjb25zdCBba2V5LCBjaGlsZFN0YXRlXSBvZiBPYmplY3QuZW50cmllcyhwYXJhbGxlbFJvdXRlcykpIHtcbiAgICBjbGVhbmVkUGFyYWxsZWxSb3V0ZXNba2V5XSA9XG4gICAgICBzdHJpcENsaWVudE9ubHlEYXRhRnJvbUZsaWdodFJvdXRlclN0YXRlKGNoaWxkU3RhdGUpXG4gIH1cblxuICBjb25zdCByZXN1bHQ6IEZsaWdodFJvdXRlclN0YXRlID0gW1xuICAgIGNsZWFuZWRTZWdtZW50LFxuICAgIGNsZWFuZWRQYXJhbGxlbFJvdXRlcyxcbiAgICBudWxsLCAvLyBVUkxzIG9taXR0ZWQgLSBzZXJ2ZXIgcmVjb25zdHJ1Y3RzIHBhdGhzIGZyb20gc2VnbWVudHNcbiAgICBzaG91bGRQcmVzZXJ2ZVJlZnJlc2hNYXJrZXIocmVmcmVzaE1hcmtlcikgPyByZWZyZXNoTWFya2VyIDogbnVsbCxcbiAgXVxuXG4gIC8vIEFwcGVuZCBvcHRpb25hbCBmaWVsZHMgaWYgcHJlc2VudFxuICBpZiAoaXNSb290TGF5b3V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXN1bHRbNF0gPSBpc1Jvb3RMYXlvdXRcbiAgfVxuICBpZiAoaGFzTG9hZGluZ0JvdW5kYXJ5ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXN1bHRbNV0gPSBoYXNMb2FkaW5nQm91bmRhcnlcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBTdHJpcHMgc2VhcmNoIHBhcmFtZXRlcnMgZnJvbSBfX1BBR0VfXyBzZWdtZW50cyB0byBwcmV2ZW50IHNlbnNpdGl2ZVxuICogY2xpZW50LXNpZGUgZGF0YSBmcm9tIGJlaW5nIHNlbnQgdG8gdGhlIHNlcnZlci5cbiAqL1xuZnVuY3Rpb24gc3RyaXBTZWFyY2hQYXJhbXNGcm9tUGFnZVNlZ21lbnQoc2VnbWVudDogU2VnbWVudCk6IFNlZ21lbnQge1xuICBpZiAoXG4gICAgdHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnICYmXG4gICAgc2VnbWVudC5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkgKyAnPycpXG4gICkge1xuICAgIHJldHVybiBQQUdFX1NFR01FTlRfS0VZXG4gIH1cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHJlZnJlc2ggbWFya2VyIHNob3VsZCBiZSBzZW50IHRvIHRoZSBzZXJ2ZXJcbiAqIENsaWVudC1vbmx5IG1hcmtlcnMgbGlrZSAncmVmcmVzaCcgYXJlIHN0cmlwcGVkLCB3aGlsZSBzZXJ2ZXItbmVlZGVkIG1hcmtlcnNcbiAqIGxpa2UgJ3JlZmV0Y2gnIGFuZCAnaW5zaWRlLXNoYXJlZC1sYXlvdXQnIGFyZSBwcmVzZXJ2ZWQuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByZXNlcnZlUmVmcmVzaE1hcmtlcihcbiAgcmVmcmVzaE1hcmtlcjogRmxpZ2h0Um91dGVyU3RhdGVbM11cbik6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihyZWZyZXNoTWFya2VyICYmIHJlZnJlc2hNYXJrZXIgIT09ICdyZWZyZXNoJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRGbGlnaHREYXRhUGFydHNGcm9tUGF0aCIsImdldE5leHRGbGlnaHRTZWdtZW50UGF0aCIsIm5vcm1hbGl6ZUZsaWdodERhdGEiLCJwcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0IiwiZmxpZ2h0RGF0YVBhdGgiLCJmbGlnaHREYXRhUGF0aExlbmd0aCIsInRyZWUiLCJzZWVkRGF0YSIsImhlYWQiLCJpc0hlYWRQYXJ0aWFsIiwic2xpY2UiLCJzZWdtZW50UGF0aCIsInBhdGhUb1NlZ21lbnQiLCJzZWdtZW50IiwibGVuZ3RoIiwiaXNSb290UmVuZGVyIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJmbGlnaHREYXRhIiwibWFwIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJpc0htclJlZnJlc2giLCJlbmNvZGVVUklDb21wb25lbnQiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RyaXBDbGllbnRPbmx5RGF0YUZyb21GbGlnaHRSb3V0ZXJTdGF0ZSIsInBhcmFsbGVsUm91dGVzIiwiX3VybCIsInJlZnJlc2hNYXJrZXIiLCJpc1Jvb3RMYXlvdXQiLCJoYXNMb2FkaW5nQm91bmRhcnkiLCJjbGVhbmVkU2VnbWVudCIsInN0cmlwU2VhcmNoUGFyYW1zRnJvbVBhZ2VTZWdtZW50IiwiY2xlYW5lZFBhcmFsbGVsUm91dGVzIiwia2V5IiwiY2hpbGRTdGF0ZSIsIk9iamVjdCIsImVudHJpZXMiLCJyZXN1bHQiLCJzaG91bGRQcmVzZXJ2ZVJlZnJlc2hNYXJrZXIiLCJ1bmRlZmluZWQiLCJzdGFydHNXaXRoIiwiUEFHRV9TRUdNRU5UX0tFWSIsIkJvb2xlYW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/lib/console.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/client/lib/console.js ***! \******************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatConsoleArgs: function() {\n return formatConsoleArgs;\n },\n parseConsoleArgs: function() {\n return parseConsoleArgs;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nfunction formatObject(arg, depth) {\n switch(typeof arg){\n case 'object':\n if (arg === null) {\n return 'null';\n } else if (Array.isArray(arg)) {\n let result = '[';\n if (depth < 1) {\n for(let i = 0; i < arg.length; i++){\n if (result !== '[') {\n result += ',';\n }\n if (Object.prototype.hasOwnProperty.call(arg, i)) {\n result += formatObject(arg[i], depth + 1);\n }\n }\n } else {\n result += arg.length > 0 ? '...' : '';\n }\n result += ']';\n return result;\n } else if (arg instanceof Error) {\n return arg + '';\n } else {\n const keys = Object.keys(arg);\n let result = '{';\n if (depth < 1) {\n for(let i = 0; i < keys.length; i++){\n const key = keys[i];\n const desc = Object.getOwnPropertyDescriptor(arg, 'key');\n if (desc && !desc.get && !desc.set) {\n const jsonKey = JSON.stringify(key);\n if (jsonKey !== '\"' + key + '\"') {\n result += jsonKey + ': ';\n } else {\n result += key + ': ';\n }\n result += formatObject(desc.value, depth + 1);\n }\n }\n } else {\n result += keys.length > 0 ? '...' : '';\n }\n result += '}';\n return result;\n }\n case 'string':\n return JSON.stringify(arg);\n case 'number':\n case 'bigint':\n case 'boolean':\n case 'symbol':\n case 'undefined':\n case 'function':\n default:\n return String(arg);\n }\n}\nfunction formatConsoleArgs(args) {\n let message;\n let idx;\n if (typeof args[0] === 'string') {\n message = args[0];\n idx = 1;\n } else {\n message = '';\n idx = 0;\n }\n let result = '';\n let startQuote = false;\n for(let i = 0; i < message.length; ++i){\n const char = message[i];\n if (char !== '%' || i === message.length - 1 || idx >= args.length) {\n result += char;\n continue;\n }\n const code = message[++i];\n switch(code){\n case 'c':\n {\n // TODO: We should colorize with HTML instead of turning into a string.\n // Ignore for now.\n result = startQuote ? \"\" + result + \"]\" : \"[\" + result;\n startQuote = !startQuote;\n idx++;\n break;\n }\n case 'O':\n case 'o':\n {\n result += formatObject(args[idx++], 0);\n break;\n }\n case 'd':\n case 'i':\n {\n result += parseInt(args[idx++], 10);\n break;\n }\n case 'f':\n {\n result += parseFloat(args[idx++]);\n break;\n }\n case 's':\n {\n result += String(args[idx++]);\n break;\n }\n default:\n result += '%' + code;\n }\n }\n for(; idx < args.length; idx++){\n result += (idx > 0 ? ' ' : '') + formatObject(args[idx], 0);\n }\n return result;\n}\nfunction parseConsoleArgs(args) {\n // See\n // https://github.com/facebook/react/blob/65a56d0e99261481c721334a3ec4561d173594cd/packages/react-devtools-shared/src/backend/flight/renderer.js#L88-L93\n //\n // Logs replayed from the server look like this:\n // [\n // \"%c%s%c%o\\n\\n%s\\n\\n%s\\n\",\n // \"background: #e6e6e6; ...\",\n // \" Server \", // can also be e.g. \" Prerender \"\n // \"\",\n // Error,\n // \"The above error occurred in the <Page> component.\",\n // ...\n // ]\n if (args.length > 3 && typeof args[0] === 'string' && args[0].startsWith('%c%s%c') && typeof args[1] === 'string' && typeof args[2] === 'string' && typeof args[3] === 'string') {\n const environmentName = args[2];\n const maybeError = args[4];\n return {\n environmentName: environmentName.trim(),\n error: (0, _iserror.default)(maybeError) ? maybeError : null\n };\n }\n return {\n environmentName: null,\n error: null\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=console.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saWIvY29uc29sZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE2RGdCQSxpQkFBaUI7ZUFBakJBOztJQTJEQUMsZ0JBQWdCO2VBQWhCQTs7Ozs4RUF4SEk7QUFFcEIsU0FBU0MsYUFBYUMsR0FBWSxFQUFFQyxLQUFhO0lBQy9DLE9BQVEsT0FBT0Q7UUFDYixLQUFLO1lBQ0gsSUFBSUEsUUFBUSxNQUFNO2dCQUNoQixPQUFPO1lBQ1QsT0FBTyxJQUFJRSxNQUFNQyxPQUFPLENBQUNILE1BQU07Z0JBQzdCLElBQUlJLFNBQVM7Z0JBQ2IsSUFBSUgsUUFBUSxHQUFHO29CQUNiLElBQUssSUFBSUksSUFBSSxHQUFHQSxJQUFJTCxJQUFJTSxNQUFNLEVBQUVELElBQUs7d0JBQ25DLElBQUlELFdBQVcsS0FBSzs0QkFDbEJBLFVBQVU7d0JBQ1o7d0JBQ0EsSUFBSUcsT0FBT0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1YsS0FBS0ssSUFBSTs0QkFDaERELFVBQVVMLGFBQWFDLEdBQUcsQ0FBQ0ssRUFBRSxFQUFFSixRQUFRO3dCQUN6QztvQkFDRjtnQkFDRixPQUFPO29CQUNMRyxVQUFVSixJQUFJTSxNQUFNLEdBQUcsSUFBSSxRQUFRO2dCQUNyQztnQkFDQUYsVUFBVTtnQkFDVixPQUFPQTtZQUNULE9BQU8sSUFBSUosZUFBZVcsT0FBTztnQkFDL0IsT0FBT1gsTUFBTTtZQUNmLE9BQU87Z0JBQ0wsTUFBTVksT0FBT0wsT0FBT0ssSUFBSSxDQUFDWjtnQkFDekIsSUFBSUksU0FBUztnQkFDYixJQUFJSCxRQUFRLEdBQUc7b0JBQ2IsSUFBSyxJQUFJSSxJQUFJLEdBQUdBLElBQUlPLEtBQUtOLE1BQU0sRUFBRUQsSUFBSzt3QkFDcEMsTUFBTVEsTUFBTUQsSUFBSSxDQUFDUCxFQUFFO3dCQUNuQixNQUFNUyxPQUFPUCxPQUFPUSx3QkFBd0IsQ0FBQ2YsS0FBSzt3QkFDbEQsSUFB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QUFFLEtBQUssWUFDbkIsT0FBT0EsSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUNuQixPQUFPQSxJQUFJLENBQUMsRUFBRSxLQUFLLFVBQ25CO1FBQ0EsTUFBTVMsa0JBQWtCVCxJQUFJLENBQUMsRUFBRTtRQUMvQixNQUFNVSxhQUFhVixJQUFJLENBQUMsRUFBRTtRQUUxQixPQUFPO1lBQ0xTLGlCQUFpQkEsZ0JBQWdCRSxJQUFJO1lBQ3JDQyxPQUFPQyxDQUFBQSxHQUFBQSxTQUFBQSxPQUFBQSxFQUFRSCxjQUFjQSxhQUFhO1FBQzVDO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xELGlCQUFpQjtRQUNqQkcsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvbGliL2NvbnNvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi4vLi4vbGliL2lzLWVycm9yJ1xuXG5mdW5jdGlvbiBmb3JtYXRPYmplY3QoYXJnOiB1bmtub3duLCBkZXB0aDogbnVtYmVyKSB7XG4gIHN3aXRjaCAodHlwZW9mIGFyZykge1xuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpZiAoYXJnID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAnbnVsbCdcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSAnWydcbiAgICAgICAgaWYgKGRlcHRoIDwgMSkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSAnWycpIHtcbiAgICAgICAgICAgICAgcmVzdWx0ICs9ICcsJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmcsIGkpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdCArPSBmb3JtYXRPYmplY3QoYXJnW2ldLCBkZXB0aCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCArPSBhcmcubGVuZ3RoID4gMCA/ICcuLi4nIDogJydcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gJ10nXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0gZWxzZSBpZiAoYXJnIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGFyZyArICcnXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYXJnKVxuICAgICAgICBsZXQgcmVzdWx0ID0gJ3snXG4gICAgICAgIGlmIChkZXB0aCA8IDEpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV1cbiAgICAgICAgICAgIGNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFyZywgJ2tleScpXG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAhZGVzYy5nZXQgJiYgIWRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb25LZXkgPSBKU09OLnN0cmluZ2lmeShrZXkpXG4gICAgICAgICAgICAgIGlmIChqc29uS2V5ICE9PSAnXCInICsga2V5ICsgJ1wiJykge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBqc29uS2V5ICsgJzogJ1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBrZXkgKyAnOiAnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvcm1hdE9iamVjdChkZXNjLnZhbHVlLCBkZXB0aCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCArPSBrZXlzLmxlbmd0aCA+IDAgPyAnLi4uJyA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ICs9ICd9J1xuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmcpXG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBTdHJpbmcoYXJnKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDb25zb2xlQXJncyhhcmdzOiB1bmtub3duW10pOiBzdHJpbmcge1xuICBsZXQgbWVzc2FnZTogc3RyaW5nXG4gIGxldCBpZHg6IG51bWJlclxuICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgbWVzc2FnZSA9IGFyZ3NbMF1cbiAgICBpZHggPSAxXG4gIH0gZWxzZSB7XG4gICAgbWVzc2FnZSA9ICcnXG4gICAgaWR4ID0gMFxuICB9XG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgc3RhcnRRdW90ZSA9IGZhbHNlXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWVzc2FnZS5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IGNoYXIgPSBtZXNzYWdlW2ldXG4gICAgaWYgKGNoYXIgIT09ICclJyB8fCBpID09PSBtZXNzYWdlLmxlbmd0aCAtIDEgfHwgaWR4ID49IGFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgKz0gY2hhclxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBjb2RlID0gbWVzc2FnZVsrK2ldXG4gICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICBjYXNlICdjJzoge1xuICAgICAgICAvLyBUT0RPOiBXZSBzaG91bGQgY29sb3JpemUgd2l0aCBIVE1MIGluc3RlYWQgb2YgdHVybmluZyBpbnRvIGEgc3RyaW5nLlxuICAgICAgICAvLyBJZ25vcmUgZm9yIG5vdy5cbiAgICAgICAgcmVzdWx0ID0gc3RhcnRRdW90ZSA/IGAke3Jlc3VsdH1dYCA6IGBbJHtyZXN1bHR9YFxuICAgICAgICBzdGFydFF1b3RlID0gIXN0YXJ0UXVvdGVcbiAgICAgICAgaWR4KytcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ08nOlxuICAgICAgY2FzZSAnbyc6IHtcbiAgICAgICAgcmVzdWx0ICs9IGZvcm1hdE9iamVjdChhcmdzW2lkeCsrXSwgMClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2QnOlxuICAgICAgY2FzZSAnaSc6IHtcbiAgICAgICAgcmVzdWx0ICs9IHBhcnNlSW50KGFyZ3NbaWR4KytdIGFzIGFueSwgMTApXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdmJzoge1xuICAgICAgICByZXN1bHQgKz0gcGFyc2VGbG9hdChhcmdzW2lkeCsrXSBhcyBhbnkpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdzJzoge1xuICAgICAgICByZXN1bHQgKz0gU3RyaW5nKGFyZ3NbaWR4KytdKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmVzdWx0ICs9ICclJyArIGNvZGVcbiAgICB9XG4gIH1cblxuICBmb3IgKDsgaWR4IDwgYXJncy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgcmVzdWx0ICs9IChpZHggPiAwID8gJyAnIDogJycpICsgZm9ybWF0T2JqZWN0KGFyZ3NbaWR4XSwgMClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29uc29sZUFyZ3MoYXJnczogdW5rbm93bltdKToge1xuICBlbnZpcm9ubWVudE5hbWU6IHN0cmluZyB8IG51bGxcbiAgZXJyb3I6IEVycm9yIHwgbnVsbFxufSB7XG4gIC8vIFNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi82NWE1NmQwZTk5MjYxNDgxYzcyMTMzNGEzZWM0NTYxZDE3MzU5NGNkL3BhY2thZ2VzL3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9mbGlnaHQvcmVuZGVyZXIuanMjTDg4LUw5M1xuICAvL1xuICAvLyBMb2dzIHJlcGxheWVkIGZyb20gdGhlIHNlcnZlciBsb29rIGxpa2UgdGhpczpcbiAgLy8gW1xuICAvLyAgIFwiJWMlcyVjJW9cXG5cXG4lc1xcblxcbiVzXFxuXCIsXG4gIC8vICAgXCJiYWNrZ3JvdW5kOiAjZTZlNmU2OyAuLi5cIixcbiAgLy8gICBcIiBTZXJ2ZXIgXCIsIC8vIGNhbiBhbHNvIGJlIGUuZy4gXCIgUHJlcmVuZGVyIFwiXG4gIC8vICAgXCJcIixcbiAgLy8gICBFcnJvcixcbiAgLy8gICBcIlRoZSBhYm92ZSBlcnJvciBvY2N1cnJlZCBpbiB0aGUgPFBhZ2U+IGNvbXBvbmVudC5cIixcbiAgLy8gICAuLi5cbiAgLy8gXVxuICBpZiAoXG4gICAgYXJncy5sZW5ndGggPiAzICYmXG4gICAgdHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnICYmXG4gICAgYXJnc1swXS5zdGFydHNXaXRoKCclYyVzJWMnKSAmJlxuICAgIHR5cGVvZiBhcmdzWzFdID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBhcmdzWzJdID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBhcmdzWzNdID09PSAnc3RyaW5nJ1xuICApIHtcbiAgICBjb25zdCBlbnZpcm9ubWVudE5hbWUgPSBhcmdzWzJdXG4gICAgY29uc3QgbWF5YmVFcnJvciA9IGFyZ3NbNF1cblxuICAgIHJldHVybiB7XG4gICAgICBlbnZpcm9ubWVudE5hbWU6IGVudmlyb25tZW50TmFtZS50cmltKCksXG4gICAgICBlcnJvcjogaXNFcnJvcihtYXliZUVycm9yKSA/IG1heWJlRXJyb3IgOiBudWxsLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZW52aXJvbm1lbnROYW1lOiBudWxsLFxuICAgIGVycm9yOiBudWxsLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0Q29uc29sZUFyZ3MiLCJwYXJzZUNvbnNvbGVBcmdzIiwiZm9ybWF0T2JqZWN0IiwiYXJnIiwiZGVwdGgiLCJBcnJheSIsImlzQXJyYXkiLCJyZXN1bHQiLCJpIiwibGVuZ3RoIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiRXJyb3IiLCJrZXlzIiwia2V5IiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImpzb25LZXkiLCJKU09OIiwic3RyaW5naWZ5IiwidmFsdWUiLCJTdHJpbmciLCJhcmdzIiwibWVzc2FnZSIsImlkeCIsInN0YXJ0UXVvdGUiLCJjaGFyIiwiY29kZSIsInBhcnNlSW50IiwicGFyc2VGbG9hdCIsInN0YXJ0c1dpdGgiLCJlbnZpcm9ubWVudE5hbWUiLCJtYXliZUVycm9yIiwidHJpbSIsImVycm9yIiwiaXNFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/lib/console.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/client/route-params.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/client/route-params.js ***! \*******************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n doesStaticSegmentAppearInURL: function() {\n return doesStaticSegmentAppearInURL;\n },\n getCacheKeyForDynamicParam: function() {\n return getCacheKeyForDynamicParam;\n },\n getParamValueFromCacheKey: function() {\n return getParamValueFromCacheKey;\n },\n getRenderedPathname: function() {\n return getRenderedPathname;\n },\n getRenderedSearch: function() {\n return getRenderedSearch;\n },\n parseDynamicParamFromURLPart: function() {\n return parseDynamicParamFromURLPart;\n },\n urlToUrlWithoutFlightMarker: function() {\n return urlToUrlWithoutFlightMarker;\n }\n});\nconst _segment = __webpack_require__(/*! ../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _segmentvalueencoding = __webpack_require__(/*! ../shared/lib/segment-cache/segment-value-encoding */ \"(ssr)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\");\nconst _approuterheaders = __webpack_require__(/*! ./components/app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction getRenderedSearch(response) {\n // If the server performed a rewrite, the search params used to render the\n // page will be different from the params in the request URL. In this case,\n // the response will include a header that gives the rewritten search query.\n const rewrittenQuery = response.headers.get(_approuterheaders.NEXT_REWRITTEN_QUERY_HEADER);\n if (rewrittenQuery !== null) {\n return rewrittenQuery === '' ? '' : '?' + rewrittenQuery;\n }\n // If the header is not present, there was no rewrite, so we use the search\n // query of the response URL.\n return urlToUrlWithoutFlightMarker(new URL(response.url)).search;\n}\nfunction getRenderedPathname(response) {\n // If the server performed a rewrite, the pathname used to render the\n // page will be different from the pathname in the request URL. In this case,\n // the response will include a header that gives the rewritten pathname.\n const rewrittenPath = response.headers.get(_approuterheaders.NEXT_REWRITTEN_PATH_HEADER);\n return rewrittenPath != null ? rewrittenPath : urlToUrlWithoutFlightMarker(new URL(response.url)).pathname;\n}\nfunction parseDynamicParamFromURLPart(paramType, pathnameParts, partIndex) {\n // This needs to match the behavior in get-dynamic-param.ts.\n switch(paramType){\n // Catchalls\n case 'c':\n case 'ci':\n {\n // Catchalls receive all the remaining URL parts. If there are no\n // remaining pathname parts, return an empty array.\n return partIndex < pathnameParts.length ? pathnameParts.slice(partIndex).map((s)=>encodeURIComponent(s)) : [];\n }\n // Optional catchalls\n case 'oc':\n {\n // Optional catchalls receive all the remaining URL parts, unless this is\n // the end of the pathname, in which case they return null.\n return partIndex < pathnameParts.length ? pathnameParts.slice(partIndex).map((s)=>encodeURIComponent(s)) : null;\n }\n // Dynamic\n case 'd':\n case 'di':\n {\n if (partIndex >= pathnameParts.length) {\n // The route tree expected there to be more parts in the URL than there\n // actually are. This could happen if the x-nextjs-rewritten-path header\n // is incorrectly set, or potentially due to bug in Next.js. TODO:\n // Should this be a hard error? During a prefetch, we can just abort.\n // During a client navigation, we could trigger a hard refresh. But if\n // it happens during initial render, we don't really have any\n // recovery options.\n return '';\n }\n return encodeURIComponent(pathnameParts[partIndex]);\n }\n default:\n paramType;\n return '';\n }\n}\nfunction doesStaticSegmentAppearInURL(segment) {\n // This is not a parameterized segment; however, we need to determine\n // whether or not this segment appears in the URL. For example, this route\n // groups do not appear in the URL, so they should be skipped. Any other\n // special cases must be handled here.\n // TODO: Consider encoding this directly into the router tree instead of\n // inferring it on the client based on the segment type. Something like\n // a `doesAppearInURL` flag in FlightRouterState.\n if (segment === _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY || // For some reason, the loader tree sometimes includes extra __PAGE__\n // \"layouts\" when part of a parallel route. But it's not a leaf node.\n // Otherwise, we wouldn't need this special case because pages are\n // always leaf nodes.\n // TODO: Investigate why the loader produces these fake page segments.\n segment.startsWith(_segment.PAGE_SEGMENT_KEY) || // Route groups.\n segment[0] === '(' && segment.endsWith(')') || segment === _segment.DEFAULT_SEGMENT_KEY || segment === '/_not-found') {\n return false;\n } else {\n // All other segment types appear in the URL\n return true;\n }\n}\nfunction getCacheKeyForDynamicParam(paramValue, renderedSearch) {\n // This needs to match the logic in get-dynamic-param.ts, until we're able to\n // unify the various implementations so that these are always computed on\n // the client.\n if (typeof paramValue === 'string') {\n // TODO: Refactor or remove this helper function to accept a string rather\n // than the whole segment type. Also we can probably just append the\n // search string instead of turning it into JSON.\n const pageSegmentWithSearchParams = (0, _segment.addSearchParamsIfPageSegment)(paramValue, Object.fromEntries(new URLSearchParams(renderedSearch)));\n return pageSegmentWithSearchParams;\n } else if (paramValue === null) {\n return '';\n } else {\n return paramValue.join('/');\n }\n}\nfunction urlToUrlWithoutFlightMarker(url) {\n const urlWithoutFlightParameters = new URL(url);\n urlWithoutFlightParameters.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n if (false) {}\n return urlWithoutFlightParameters;\n}\nfunction getParamValueFromCacheKey(paramCacheKey, paramType) {\n // Turn the cache key string sent by the server (as part of FlightRouterState)\n // into a value that can be passed to `useParams` and client components.\n const isCatchAll = paramType === 'c' || paramType === 'oc';\n if (isCatchAll) {\n // Catch-all param keys are a concatenation of the path segments.\n // See equivalent logic in `getSelectedParams`.\n // TODO: We should just pass the array directly, rather than concatenate\n // it to a string and then split it back to an array. It needs to be an\n // array in some places, like when passing a key React, but we can convert\n // it at runtime in those places.\n return paramCacheKey.split('/');\n }\n return paramCacheKey;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=route-params.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1wYXJhbXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBOEZnQkEsNEJBQTRCO2VBQTVCQTs7SUE0QkFDLDBCQUEwQjtlQUExQkE7O0lBd0NBQyx5QkFBeUI7ZUFBekJBOztJQTNIQUMsbUJBQW1CO2VBQW5CQTs7SUFoQkFDLGlCQUFpQjtlQUFqQkE7O0lBMEJBQyw0QkFBNEI7ZUFBNUJBOztJQWdHQUMsMkJBQTJCO2VBQTNCQTs7O3FDQTVJVDtrREFDa0M7OENBS2xDO0FBWUEsU0FBU0Ysa0JBQWtCRyxRQUFxQjtJQUNyRCwwRUFBMEU7SUFDMUUsMkVBQTJFO0lBQzNFLDRFQUE0RTtJQUM1RSxNQUFNQyxpQkFBaUJELFNBQVNFLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxrQkFBQUEsMkJBQTJCO0lBQ3ZFLElBQUlILG1CQUFtQixNQUFNO1FBQzNCLE9BQ0VBLG1CQUFtQixLQUFLLEtBQUssTUFBTUE7SUFFdkM7SUFDQSwyRUFBMkU7SUFDM0UsNkJBQTZCO0lBQzdCLE9BQU9GLDRCQUE0QixJQUFJTSxJQUFJTCxTQUFTTSxHQUFHLEdBQ3BEQyxNQUFNO0FBQ1g7QUFFTyxTQUFTWCxvQkFBb0JJLFFBQXFCO0lBQ3ZELHFFQUFxRTtJQUNyRSw2RUFBNkU7SUFDN0Usd0VBQXdFO0lBQ3hFLE1BQU1RLGdCQUFnQlIsU0FBU0UsT0FBTyxDQUFDQyxHQUFHLENBQUNNLGtCQUFBQSwwQkFBMEI7SUFDckUsT0FDRUQsaUJBQUFBLE9BQUFBLGdCQUFpQlQsNEJBQTRCLElBQUlNLElBQUlMLFNBQVNNLEdBQUcsR0FBR0ksUUFBUTtBQUVoRjtBQUVPLFNBQVNaLDZCQUNkYSxTQUFpQyxFQUNqQ0MsYUFBNEIsRUFDNUJDLFNBQWlCO0lBRWpCLDREQUE0RDtJQUM1RCxPQUFRRjtRQUNOLFlBQVk7UUFDWixLQUFLO1FBQ0wsS0FBSztZQUFNO2dCQUNULGlFQUFpRTtnQkFDakUsbURBQW1EO2dCQUNuRCxPQUFPRSxZQUFZRCxjQUFjRSxNQUFNLEdBQ25DRixjQUFjRyxLQUFLLENBQUNGLFdBQVdHLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQyxtQkFBbUJELE1BQzdELEVBQUU7WUFDUjtRQUNBLHFCQUFxQjtRQUNyQixLQUFLO1lBQU07Z0JBQ1QseUVBQXlFO2dCQUN6RSwyREFBMkQ7Z0JBQzNELE9BQU9KLFlBQVlELGNBQWNFLE1BQU0sR0FDbkNGLGNBQWNHLEtBQUssQ0FBQ0YsV0FBV0csR0FBRyxDQUFDLENBQUNDLElBQU1DLG1CQUFtQkQsTUFDN0Q7WUFDTjtRQUNBLFVBQVU7UUFDVixLQUFLO1FBQ0wsS0FBSztZQUFNO2dCQUNULElBQUlKLGFBQWFELGNBQWNFLE1BQU0sRUFBRTtvQkFDckMsdUVBQXVFO29CQUN2RSx3RUFBd0U7b0JBQ3hFLGtFQUFrRTtvQkFDbEUscUVBQXFFO29CQUNyRSxzRUFBc0U7b0JBQ3RFLDZEQUE2RDtvQkFDN0Qsb0JBQW9CO29CQUNwQixPQUFPO2dCQUNUO2dCQUNBLE9BQU9JLG1CQUFtQk4sYUFBYSxDQUFDQyxVQUFVO1lBQ3BEO1FBQ0E7WUFDRUY7WUFDQSxPQUFPO0lBQ1g7QUFDRjtBQUVPLFNBQVNsQiw2QkFBNkIwQixPQUFlO0lBQzFELHFFQUFxRTtJQUNyRSwwRUFBMEU7SUFDMUUsd0VBQXdFO0lBQ3hFLHNDQUFzQztJQUN0Qyx3RUFBd0U7SUFDeEUsdUVBQXVFO0lBQ3ZFLGlEQUFpRDtJQUNqRCxJQUNFQSxZQUFZQyxzQkFBQUEsd0JBQXdCLElBQ3BDLHFFQUFxRTtJQUNyRSxxRUFBcUU7SUFDckUsa0VBQWtFO0lBQ2xFLHFCQUFxQjtJQUNyQixzRUFBc0U7SUFDdEVELFFBQVFFLFVBQVUsQ0FBQ0MsU0FBQUEsZ0JBQWdCLEtBQ25DLGdCQUFnQjtJQUNmSCxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFJLFFBQVEsQ0FBQyxRQUN4Q0osWUFBWUssU0FBQUEsbUJBQW1CLElBQy9CTCxZQUFZLGVBQ1o7UUFDQSxPQUFPO0lBQ1QsT0FBTztRQUNMLDRDQUE0QztRQUM1QyxPQUFPO0lBQ1Q7QUFDRjtBQUVPLFNBQVN6QiwyQkFDZCtCLFVBQTJCLEVBQzNCQyxjQUFnQztJQUVoQyw2RUFBNkU7SUFDN0UseUVBQXlFO0lBQ3pFLGNBQWM7SUFDZCxJQUFJLE9BQU9ELGVBQWUsVUFBVTtRQUNsQywwRUFBMEU7UUFDMUUsb0VBQW9FO1FBQ3BFLGlEQUFpRDtRQUNqRCxNQUFNRSw4QkFBOEJDLENBQUFBLEdBQUFBLFNBQUFBLDRCQUFBQSxFQUNsQ0gsWUFDQUksT0FBT0MsV0FBVyxDQUFDLElBQUlDLGdCQUFnQkw7UUFFekMsT0FBT0M7SUFDVCxPQUFPLElBQUlGLGVBQWUsTUFBTTtRQUM5QixPQUFPO0lBQ1QsT0FBTztRQUNMLE9BQU9BLFdBQVdPLElBQUksQ0FBQztJQUN6QjtBQUNGO0FBRU8sU0FBU2pDLDRCQUE0Qk8sR0FBUTtJQUNsRCxNQUFNMkIsNkJBQTZCLElBQUk1QixJQUFJQztJQUMzQzJCLDJCQUEyQkMsWUFBWSxDQUFDQyxNQUFNLENBQUNDLGtCQUFBQSxvQkFBb0I7SUFDbkUsSUFBSUMsS0FBb0IsRUFBbUIsRUFVMUM7SUFDRCxPQUFPSjtBQUNUO0FBRU8sU0FBU3RDLDBCQUNkOEMsYUFBcUIsRUFDckI5QixTQUFpQztJQUVqQyw4RUFBOEU7SUFDOUUsd0VBQXdFO0lBQ3hFLE1BQU0rQixhQUFhL0IsY0FBYyxPQUFPQSxjQUFjO0lBQ3RELElBQUkrQixZQUFZO1FBQ2QsaUVBQWlFO1FBQ2pFLCtDQUErQztRQUMvQyx3RUFBd0U7UUFDeEUsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSxpQ0FBaUM7UUFDakMsT0FBT0QsY0FBY0UsS0FBSyxDQUFDO0lBQzdCO0lBQ0EsT0FBT0Y7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL3NyYy9jbGllbnQvcm91dGUtcGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRHluYW1pY1BhcmFtVHlwZXNTaG9ydCB9IGZyb20gJy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHtcbiAgYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudCxcbiAgREVGQVVMVF9TRUdNRU5UX0tFWSxcbiAgUEFHRV9TRUdNRU5UX0tFWSxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuaW1wb3J0IHsgUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL3NlZ21lbnQtdmFsdWUtZW5jb2RpbmcnXG5pbXBvcnQge1xuICBORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUixcbiAgTkVYVF9SRVdSSVRURU5fUVVFUllfSEVBREVSLFxuICBORVhUX1JTQ19VTklPTl9RVUVSWSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycydcbmltcG9ydCB0eXBlIHsgTm9ybWFsaXplZFNlYXJjaCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWdtZW50LWNhY2hlJ1xuaW1wb3J0IHR5cGUgeyBSU0NSZXNwb25zZSB9IGZyb20gJy4vY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9mZXRjaC1zZXJ2ZXItcmVzcG9uc2UnXG5cbmV4cG9ydCB0eXBlIFJvdXRlUGFyYW1WYWx1ZSA9IHN0cmluZyB8IEFycmF5PHN0cmluZz4gfCBudWxsXG5cbmV4cG9ydCB0eXBlIFJvdXRlUGFyYW0gPSB7XG4gIG5hbWU6IHN0cmluZ1xuICB2YWx1ZTogUm91dGVQYXJhbVZhbHVlXG4gIHR5cGU6IER5bmFtaWNQYXJhbVR5cGVzU2hvcnRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlbmRlcmVkU2VhcmNoKHJlc3BvbnNlOiBSU0NSZXNwb25zZSk6IE5vcm1hbGl6ZWRTZWFyY2gge1xuICAvLyBJZiB0aGUgc2VydmVyIHBlcmZvcm1lZCBhIHJld3JpdGUsIHRoZSBzZWFyY2ggcGFyYW1zIHVzZWQgdG8gcmVuZGVyIHRoZVxuICAvLyBwYWdlIHdpbGwgYmUgZGlmZmVyZW50IGZyb20gdGhlIHBhcmFtcyBpbiB0aGUgcmVxdWVzdCBVUkwuIEluIHRoaXMgY2FzZSxcbiAgLy8gdGhlIHJlc3BvbnNlIHdpbGwgaW5jbHVkZSBhIGhlYWRlciB0aGF0IGdpdmVzIHRoZSByZXdyaXR0ZW4gc2VhcmNoIHF1ZXJ5LlxuICBjb25zdCByZXdyaXR0ZW5RdWVyeSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KE5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUilcbiAgaWYgKHJld3JpdHRlblF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHJld3JpdHRlblF1ZXJ5ID09PSAnJyA/ICcnIDogJz8nICsgcmV3cml0dGVuUXVlcnlcbiAgICApIGFzIE5vcm1hbGl6ZWRTZWFyY2hcbiAgfVxuICAvLyBJZiB0aGUgaGVhZGVyIGlzIG5vdCBwcmVzZW50LCB0aGVyZSB3YXMgbm8gcmV3cml0ZSwgc28gd2UgdXNlIHRoZSBzZWFyY2hcbiAgLy8gcXVlcnkgb2YgdGhlIHJlc3BvbnNlIFVSTC5cbiAgcmV0dXJuIHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcihuZXcgVVJMKHJlc3BvbnNlLnVybCkpXG4gICAgLnNlYXJjaCBhcyBOb3JtYWxpemVkU2VhcmNoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZW5kZXJlZFBhdGhuYW1lKHJlc3BvbnNlOiBSU0NSZXNwb25zZSk6IHN0cmluZyB7XG4gIC8vIElmIHRoZSBzZXJ2ZXIgcGVyZm9ybWVkIGEgcmV3cml0ZSwgdGhlIHBhdGhuYW1lIHVzZWQgdG8gcmVuZGVyIHRoZVxuICAvLyBwYWdlIHdpbGwgYmUgZGlmZmVyZW50IGZyb20gdGhlIHBhdGhuYW1lIGluIHRoZSByZXF1ZXN0IFVSTC4gSW4gdGhpcyBjYXNlLFxuICAvLyB0aGUgcmVzcG9uc2Ugd2lsbCBpbmNsdWRlIGEgaGVhZGVyIHRoYXQgZ2l2ZXMgdGhlIHJld3JpdHRlbiBwYXRobmFtZS5cbiAgY29uc3QgcmV3cml0dGVuUGF0aCA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KE5FWFRfUkVXUklUVEVOX1BBVEhfSEVBREVSKVxuICByZXR1cm4gKFxuICAgIHJld3JpdHRlblBhdGggPz8gdXJsVG9VcmxXaXRob3V0RmxpZ2h0TWFya2VyKG5ldyBVUkwocmVzcG9uc2UudXJsKSkucGF0aG5hbWVcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEeW5hbWljUGFyYW1Gcm9tVVJMUGFydChcbiAgcGFyYW1UeXBlOiBEeW5hbWljUGFyYW1UeXBlc1Nob3J0LFxuICBwYXRobmFtZVBhcnRzOiBBcnJheTxzdHJpbmc+LFxuICBwYXJ0SW5kZXg6IG51bWJlclxuKTogUm91dGVQYXJhbVZhbHVlIHtcbiAgLy8gVGhpcyBuZWVkcyB0byBtYXRjaCB0aGUgYmVoYXZpb3IgaW4gZ2V0LWR5bmFtaWMtcGFyYW0udHMuXG4gIHN3aXRjaCAocGFyYW1UeXBlKSB7XG4gICAgLy8gQ2F0Y2hhbGxzXG4gICAgY2FzZSAnYyc6XG4gICAgY2FzZSAnY2knOiB7XG4gICAgICAvLyBDYXRjaGFsbHMgcmVjZWl2ZSBhbGwgdGhlIHJlbWFpbmluZyBVUkwgcGFydHMuIElmIHRoZXJlIGFyZSBub1xuICAgICAgLy8gcmVtYWluaW5nIHBhdGhuYW1lIHBhcnRzLCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuXG4gICAgICByZXR1cm4gcGFydEluZGV4IDwgcGF0aG5hbWVQYXJ0cy5sZW5ndGhcbiAgICAgICAgPyBwYXRobmFtZVBhcnRzLnNsaWNlKHBhcnRJbmRleCkubWFwKChzKSA9PiBlbmNvZGVVUklDb21wb25lbnQocykpXG4gICAgICAgIDogW11cbiAgICB9XG4gICAgLy8gT3B0aW9uYWwgY2F0Y2hhbGxzXG4gICAgY2FzZSAnb2MnOiB7XG4gICAgICAvLyBPcHRpb25hbCBjYXRjaGFsbHMgcmVjZWl2ZSBhbGwgdGhlIHJlbWFpbmluZyBVUkwgcGFydHMsIHVubGVzcyB0aGlzIGlzXG4gICAgICAvLyB0aGUgZW5kIG9mIHRoZSBwYXRobmFtZSwgaW4gd2hpY2ggY2FzZSB0aGV5IHJldHVybiBudWxsLlxuICAgICAgcmV0dXJuIHBhcnRJbmRleCA8IHBhdGhuYW1lUGFydHMubGVuZ3RoXG4gICAgICAgID8gcGF0aG5hbWVQYXJ0cy5zbGljZShwYXJ0SW5kZXgpLm1hcCgocykgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHMpKVxuICAgICAgICA6IG51bGxcbiAgICB9XG4gICAgLy8gRHluYW1pY1xuICAgIGNhc2UgJ2QnOlxuICAgIGNhc2UgJ2RpJzoge1xuICAgICAgaWYgKHBhcnRJbmRleCA+PSBwYXRobmFtZVBhcnRzLmxlbmd0aCkge1xuICAgICAgICAvLyBUaGUgcm91dGUgdHJlZSBleHBlY3RlZCB0aGVyZSB0byBiZSBtb3JlIHBhcnRzIGluIHRoZSBVUkwgdGhhbiB0aGVyZVxuICAgICAgICAvLyBhY3R1YWxseSBhcmUuIFRoaXMgY291bGQgaGFwcGVuIGlmIHRoZSB4LW5leHRqcy1yZXdyaXR0ZW4tcGF0aCBoZWFkZXJcbiAgICAgICAgLy8gaXMgaW5jb3JyZWN0bHkgc2V0LCBvciBwb3RlbnRpYWxseSBkdWUgdG8gYnVnIGluIE5leHQuanMuIFRPRE86XG4gICAgICAgIC8vIFNob3VsZCB0aGlzIGJlIGEgaGFyZCBlcnJvcj8gRHVyaW5nIGEgcHJlZmV0Y2gsIHdlIGNhbiBqdXN0IGFib3J0LlxuICAgICAgICAvLyBEdXJpbmcgYSBjbGllbnQgbmF2aWdhdGlvbiwgd2UgY291bGQgdHJpZ2dlciBhIGhhcmQgcmVmcmVzaC4gQnV0IGlmXG4gICAgICAgIC8vIGl0IGhhcHBlbnMgZHVyaW5nIGluaXRpYWwgcmVuZGVyLCB3ZSBkb24ndCByZWFsbHkgaGF2ZSBhbnlcbiAgICAgICAgLy8gcmVjb3Zlcnkgb3B0aW9ucy5cbiAgICAgICAgcmV0dXJuICcnXG4gICAgICB9XG4gICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHBhdGhuYW1lUGFydHNbcGFydEluZGV4XSlcbiAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHBhcmFtVHlwZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICAgIHJldHVybiAnJ1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb2VzU3RhdGljU2VnbWVudEFwcGVhckluVVJMKHNlZ21lbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUaGlzIGlzIG5vdCBhIHBhcmFtZXRlcml6ZWQgc2VnbWVudDsgaG93ZXZlciwgd2UgbmVlZCB0byBkZXRlcm1pbmVcbiAgLy8gd2hldGhlciBvciBub3QgdGhpcyBzZWdtZW50IGFwcGVhcnMgaW4gdGhlIFVSTC4gRm9yIGV4YW1wbGUsIHRoaXMgcm91dGVcbiAgLy8gZ3JvdXBzIGRvIG5vdCBhcHBlYXIgaW4gdGhlIFVSTCwgc28gdGhleSBzaG91bGQgYmUgc2tpcHBlZC4gQW55IG90aGVyXG4gIC8vIHNwZWNpYWwgY2FzZXMgbXVzdCBiZSBoYW5kbGVkIGhlcmUuXG4gIC8vIFRPRE86IENvbnNpZGVyIGVuY29kaW5nIHRoaXMgZGlyZWN0bHkgaW50byB0aGUgcm91dGVyIHRyZWUgaW5zdGVhZCBvZlxuICAvLyBpbmZlcnJpbmcgaXQgb24gdGhlIGNsaWVudCBiYXNlZCBvbiB0aGUgc2VnbWVudCB0eXBlLiBTb21ldGhpbmcgbGlrZVxuICAvLyBhIGBkb2VzQXBwZWFySW5VUkxgIGZsYWcgaW4gRmxpZ2h0Um91dGVyU3RhdGUuXG4gIGlmIChcbiAgICBzZWdtZW50ID09PSBST09UX1NFR01FTlRfUkVRVUVTVF9LRVkgfHxcbiAgICAvLyBGb3Igc29tZSByZWFzb24sIHRoZSBsb2FkZXIgdHJlZSBzb21ldGltZXMgaW5jbHVkZXMgZXh0cmEgX19QQUdFX19cbiAgICAvLyBcImxheW91dHNcIiB3aGVuIHBhcnQgb2YgYSBwYXJhbGxlbCByb3V0ZS4gQnV0IGl0J3Mgbm90IGEgbGVhZiBub2RlLlxuICAgIC8vIE90aGVyd2lzZSwgd2Ugd291bGRuJ3QgbmVlZCB0aGlzIHNwZWNpYWwgY2FzZSBiZWNhdXNlIHBhZ2VzIGFyZVxuICAgIC8vIGFsd2F5cyBsZWFmIG5vZGVzLlxuICAgIC8vIFRPRE86IEludmVzdGlnYXRlIHdoeSB0aGUgbG9hZGVyIHByb2R1Y2VzIHRoZXNlIGZha2UgcGFnZSBzZWdtZW50cy5cbiAgICBzZWdtZW50LnN0YXJ0c1dpdGgoUEFHRV9TRUdNRU5UX0tFWSkgfHxcbiAgICAvLyBSb3V0ZSBncm91cHMuXG4gICAgKHNlZ21lbnRbMF0gPT09ICcoJyAmJiBzZWdtZW50LmVuZHNXaXRoKCcpJykpIHx8XG4gICAgc2VnbWVudCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWSB8fFxuICAgIHNlZ21lbnQgPT09ICcvX25vdC1mb3VuZCdcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0gZWxzZSB7XG4gICAgLy8gQWxsIG90aGVyIHNlZ21lbnQgdHlwZXMgYXBwZWFyIGluIHRoZSBVUkxcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWNoZUtleUZvckR5bmFtaWNQYXJhbShcbiAgcGFyYW1WYWx1ZTogUm91dGVQYXJhbVZhbHVlLFxuICByZW5kZXJlZFNlYXJjaDogTm9ybWFsaXplZFNlYXJjaFxuKTogc3RyaW5nIHtcbiAgLy8gVGhpcyBuZWVkcyB0byBtYXRjaCB0aGUgbG9naWMgaW4gZ2V0LWR5bmFtaWMtcGFyYW0udHMsIHVudGlsIHdlJ3JlIGFibGUgdG9cbiAgLy8gdW5pZnkgdGhlIHZhcmlvdXMgaW1wbGVtZW50YXRpb25zIHNvIHRoYXQgdGhlc2UgYXJlIGFsd2F5cyBjb21wdXRlZCBvblxuICAvLyB0aGUgY2xpZW50LlxuICBpZiAodHlwZW9mIHBhcmFtVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gVE9ETzogUmVmYWN0b3Igb3IgcmVtb3ZlIHRoaXMgaGVscGVyIGZ1bmN0aW9uIHRvIGFjY2VwdCBhIHN0cmluZyByYXRoZXJcbiAgICAvLyB0aGFuIHRoZSB3aG9sZSBzZWdtZW50IHR5cGUuIEFsc28gd2UgY2FuIHByb2JhYmx5IGp1c3QgYXBwZW5kIHRoZVxuICAgIC8vIHNlYXJjaCBzdHJpbmcgaW5zdGVhZCBvZiB0dXJuaW5nIGl0IGludG8gSlNPTi5cbiAgICBjb25zdCBwYWdlU2VnbWVudFdpdGhTZWFyY2hQYXJhbXMgPSBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50KFxuICAgICAgcGFyYW1WYWx1ZSxcbiAgICAgIE9iamVjdC5mcm9tRW50cmllcyhuZXcgVVJMU2VhcmNoUGFyYW1zKHJlbmRlcmVkU2VhcmNoKSlcbiAgICApIGFzIHN0cmluZ1xuICAgIHJldHVybiBwYWdlU2VnbWVudFdpdGhTZWFyY2hQYXJhbXNcbiAgfSBlbHNlIGlmIChwYXJhbVZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuICcnXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHBhcmFtVmFsdWUuam9pbignLycpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcih1cmw6IFVSTCk6IFVSTCB7XG4gIGNvbnN0IHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzID0gbmV3IFVSTCh1cmwpXG4gIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzLnNlYXJjaFBhcmFtcy5kZWxldGUoTkVYVF9SU0NfVU5JT05fUVVFUlkpXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX0NPTkZJR19PVVRQVVQgPT09ICdleHBvcnQnICYmXG4gICAgICB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycy5wYXRobmFtZS5lbmRzV2l0aCgnLnR4dCcpXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHBhdGhuYW1lIH0gPSB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVyc1xuICAgICAgY29uc3QgbGVuZ3RoID0gcGF0aG5hbWUuZW5kc1dpdGgoJy9pbmRleC50eHQnKSA/IDEwIDogNFxuICAgICAgLy8gU2xpY2Ugb2ZmIGAvaW5kZXgudHh0YCBvciBgLnR4dGAgZnJvbSB0aGUgZW5kIG9mIHRoZSBwYXRobmFtZVxuICAgICAgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMucGF0aG5hbWUgPSBwYXRobmFtZS5zbGljZSgwLCAtbGVuZ3RoKVxuICAgIH1cbiAgfVxuICByZXR1cm4gdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcmFtVmFsdWVGcm9tQ2FjaGVLZXkoXG4gIHBhcmFtQ2FjaGVLZXk6IHN0cmluZyxcbiAgcGFyYW1UeXBlOiBEeW5hbWljUGFyYW1UeXBlc1Nob3J0XG4pIHtcbiAgLy8gVHVybiB0aGUgY2FjaGUga2V5IHN0cmluZyBzZW50IGJ5IHRoZSBzZXJ2ZXIgKGFzIHBhcnQgb2YgRmxpZ2h0Um91dGVyU3RhdGUpXG4gIC8vIGludG8gYSB2YWx1ZSB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gYHVzZVBhcmFtc2AgYW5kIGNsaWVudCBjb21wb25lbnRzLlxuICBjb25zdCBpc0NhdGNoQWxsID0gcGFyYW1UeXBlID09PSAnYycgfHwgcGFyYW1UeXBlID09PSAnb2MnXG4gIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgLy8gQ2F0Y2gtYWxsIHBhcmFtIGtleXMgYXJlIGEgY29uY2F0ZW5hdGlvbiBvZiB0aGUgcGF0aCBzZWdtZW50cy5cbiAgICAvLyBTZWUgZXF1aXZhbGVudCBsb2dpYyBpbiBgZ2V0U2VsZWN0ZWRQYXJhbXNgLlxuICAgIC8vIFRPRE86IFdlIHNob3VsZCBqdXN0IHBhc3MgdGhlIGFycmF5IGRpcmVjdGx5LCByYXRoZXIgdGhhbiBjb25jYXRlbmF0ZVxuICAgIC8vIGl0IHRvIGEgc3RyaW5nIGFuZCB0aGVuIHNwbGl0IGl0IGJhY2sgdG8gYW4gYXJyYXkuIEl0IG5lZWRzIHRvIGJlIGFuXG4gICAgLy8gYXJyYXkgaW4gc29tZSBwbGFjZXMsIGxpa2Ugd2hlbiBwYXNzaW5nIGEga2V5IFJlYWN0LCBidXQgd2UgY2FuIGNvbnZlcnRcbiAgICAvLyBpdCBhdCBydW50aW1lIGluIHRob3NlIHBsYWNlcy5cbiAgICByZXR1cm4gcGFyYW1DYWNoZUtleS5zcGxpdCgnLycpXG4gIH1cbiAgcmV0dXJuIHBhcmFtQ2FjaGVLZXlcbn1cbiJdLCJuYW1lcyI6WyJkb2VzU3RhdGljU2VnbWVudEFwcGVhckluVVJMIiwiZ2V0Q2FjaGVLZXlGb3JEeW5hbWljUGFyYW0iLCJnZXRQYXJhbVZhbHVlRnJvbUNhY2hlS2V5IiwiZ2V0UmVuZGVyZWRQYXRobmFtZSIsImdldFJlbmRlcmVkU2VhcmNoIiwicGFyc2VEeW5hbWljUGFyYW1Gcm9tVVJMUGFydCIsInVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlciIsInJlc3BvbnNlIiwicmV3cml0dGVuUXVlcnkiLCJoZWFkZXJzIiwiZ2V0IiwiTkVYVF9SRVdSSVRURU5fUVVFUllfSEVBREVSIiwiVVJMIiwidXJsIiwic2VhcmNoIiwicmV3cml0dGVuUGF0aCIsIk5FWFRfUkVXUklUVEVOX1BBVEhfSEVBREVSIiwicGF0aG5hbWUiLCJwYXJhbVR5cGUiLCJwYXRobmFtZVBhcnRzIiwicGFydEluZGV4IiwibGVuZ3RoIiwic2xpY2UiLCJtYXAiLCJzIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic2VnbWVudCIsIlJPT1RfU0VHTUVOVF9SRVFVRVNUX0tFWSIsInN0YXJ0c1dpdGgiLCJQQUdFX1NFR01FTlRfS0VZIiwiZW5kc1dpdGgiLCJERUZBVUxUX1NFR01FTlRfS0VZIiwicGFyYW1WYWx1ZSIsInJlbmRlcmVkU2VhcmNoIiwicGFnZVNlZ21lbnRXaXRoU2VhcmNoUGFyYW1zIiwiYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudCIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiVVJMU2VhcmNoUGFyYW1zIiwiam9pbiIsInVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzIiwic2VhcmNoUGFyYW1zIiwiZGVsZXRlIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfX05FWFRfQ09ORklHX09VVFBVVCIsInBhcmFtQ2FjaGVLZXkiLCJpc0NhdGNoQWxsIiwic3BsaXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/route-params.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/compiled/next-devtools/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports) => { eval("var __webpack_modules__={\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-indicator/devtools-indicator.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`[data-nextjs-toast] {\n &[data-hidden='true'] {\n display: none;\n }\n}\n\n.dev-tools-indicator-menu {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-alpha-400);\n background-clip: padding-box;\n box-shadow: var(--shadow-menu);\n border-radius: var(--rounded-xl);\n position: absolute;\n font-family: var(--font-stack-sans);\n z-index: 3;\n overflow: hidden;\n opacity: 0;\n outline: 0;\n min-width: 248px;\n transition: opacity var(--animate-out-duration-ms)\n var(--animate-out-timing-function);\n\n &[data-rendered='true'] {\n opacity: 1;\n scale: 1;\n }\n}\n\n.dev-tools-indicator-inner {\n padding: 6px;\n width: 100%;\n}\n\n.dev-tools-indicator-item {\n display: flex;\n align-items: center;\n padding: 8px 6px;\n height: var(--size-36);\n border-radius: 6px;\n text-decoration: none !important;\n user-select: none;\n white-space: nowrap;\n\n svg {\n width: var(--size-16);\n height: var(--size-16);\n }\n\n &:focus-visible {\n outline: 0;\n }\n}\n\n.dev-tools-indicator-footer {\n background: var(--color-background-200);\n padding: 6px;\n border-top: 1px solid var(--color-gray-400);\n width: 100%;\n}\n\n.dev-tools-indicator-item[data-selected='true'] {\n cursor: pointer;\n background-color: var(--color-gray-200);\n}\n\n.dev-tools-indicator-label {\n font-size: var(--size-14);\n line-height: var(--size-20);\n color: var(--color-gray-1000);\n}\n\n.dev-tools-indicator-value {\n font-size: var(--size-14);\n line-height: var(--size-20);\n color: var(--color-gray-900);\n margin-left: auto;\n}\n\n.dev-tools-indicator-issue-count {\n --color-primary: var(--color-gray-800);\n --color-secondary: var(--color-gray-100);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 8px;\n min-width: var(--size-40);\n height: var(--size-24);\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-alpha-400);\n background-clip: padding-box;\n box-shadow: var(--shadow-small);\n padding: 2px;\n color: var(--color-gray-1000);\n border-radius: 128px;\n font-weight: 500;\n font-size: var(--size-13);\n font-variant-numeric: tabular-nums;\n\n &[data-has-issues='true'] {\n --color-primary: var(--color-red-800);\n --color-secondary: var(--color-red-100);\n }\n\n .dev-tools-indicator-issue-count-indicator {\n width: var(--size-8);\n height: var(--size-8);\n background: var(--color-primary);\n box-shadow: 0 0 0 2px var(--color-secondary);\n border-radius: 50%;\n }\n}\n\n.dev-tools-indicator-shortcut {\n display: flex;\n gap: 4px;\n\n kbd {\n width: var(--size-20);\n height: var(--size-20);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--rounded-md);\n border: 1px solid var(--color-gray-400);\n font-family: var(--font-stack-sans);\n background: var(--color-background-100);\n color: var(--color-gray-1000);\n text-align: center;\n font-size: var(--size-12);\n line-height: var(--size-16);\n }\n}\n\n.dev-tools-grabbing {\n cursor: grabbing;\n\n > * {\n pointer-events: none;\n }\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/devtools-indicator/devtools-indicator.css\"],names:[],mappings:\"AAAA;EACE;IACE,aAAa;EACf;AACF;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,uCAAuC;EACvC,6CAA6C;EAC7C,4BAA4B;EAC5B,8BAA8B;EAC9B,gCAAgC;EAChC,kBAAkB;EAClB,mCAAmC;EACnC,UAAU;EACV,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,gBAAgB;EAChB;sCACoC;;EAEpC;IACE,UAAU;IACV,QAAQ;EACV;AACF;;AAEA;EACE,YAAY;EACZ,WAAW;AACb;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,kBAAkB;EAClB,gCAAgC;EAChC,iBAAiB;EACjB,mBAAmB;;EAEnB;IACE,qBAAqB;IACrB,sBAAsB;EACxB;;EAEA;IACE,UAAU;EACZ;AACF;;AAEA;EACE,uCAAuC;EACvC,YAAY;EACZ,2CAA2C;EAC3C,WAAW;AACb;;AAEA;EACE,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,yBAAyB;EACzB,2BAA2B;EAC3B,6BAA6B;AAC/B;;AAEA;EACE,yBAAyB;EACzB,2BAA2B;EAC3B,4BAA4B;EAC5B,iBAAiB;AACnB;;AAEA;EACE,sCAAsC;EACtC,wCAAwC;EACxC,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,QAAQ;EACR,yBAAyB;EACzB,sBAAsB;EACtB,uCAAuC;EACvC,6CAA6C;EAC7C,4BAA4B;EAC5B,+BAA+B;EAC/B,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,gBAAgB;EAChB,yBAAyB;EACzB,kCAAkC;;EAElC;IACE,qCAAqC;IACrC,uCAAuC;EACzC;;EAEA;IACE,oBAAoB;IACpB,qBAAqB;IACrB,gCAAgC;IAChC,4CAA4C;IAC5C,kBAAkB;EACpB;AACF;;AAEA;EACE,aAAa;EACb,QAAQ;;EAER;IACE,qBAAqB;IACrB,sBAAsB;IACtB,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,gCAAgC;IAChC,uCAAuC;IACvC,mCAAmC;IACnC,uCAAuC;IACvC,6BAA6B;IAC7B,kBAAkB;IAClB,yBAAyB;IACzB,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;;EAEhB;IACE,oBAAoB;EACtB;AACF\",sourcesContent:[\"[data-nextjs-toast] {\\n &[data-hidden='true'] {\\n display: none;\\n }\\n}\\n\\n.dev-tools-indicator-menu {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-menu);\\n border-radius: var(--rounded-xl);\\n position: absolute;\\n font-family: var(--font-stack-sans);\\n z-index: 3;\\n overflow: hidden;\\n opacity: 0;\\n outline: 0;\\n min-width: 248px;\\n transition: opacity var(--animate-out-duration-ms)\\n var(--animate-out-timing-function);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n}\\n\\n.dev-tools-indicator-inner {\\n padding: 6px;\\n width: 100%;\\n}\\n\\n.dev-tools-indicator-item {\\n display: flex;\\n align-items: center;\\n padding: 8px 6px;\\n height: var(--size-36);\\n border-radius: 6px;\\n text-decoration: none !important;\\n user-select: none;\\n white-space: nowrap;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n}\\n\\n.dev-tools-indicator-footer {\\n background: var(--color-background-200);\\n padding: 6px;\\n border-top: 1px solid var(--color-gray-400);\\n width: 100%;\\n}\\n\\n.dev-tools-indicator-item[data-selected='true'] {\\n cursor: pointer;\\n background-color: var(--color-gray-200);\\n}\\n\\n.dev-tools-indicator-label {\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n color: var(--color-gray-1000);\\n}\\n\\n.dev-tools-indicator-value {\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n color: var(--color-gray-900);\\n margin-left: auto;\\n}\\n\\n.dev-tools-indicator-issue-count {\\n --color-primary: var(--color-gray-800);\\n --color-secondary: var(--color-gray-100);\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n min-width: var(--size-40);\\n height: var(--size-24);\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-small);\\n padding: 2px;\\n color: var(--color-gray-1000);\\n border-radius: 128px;\\n font-weight: 500;\\n font-size: var(--size-13);\\n font-variant-numeric: tabular-nums;\\n\\n &[data-has-issues='true'] {\\n --color-primary: var(--color-red-800);\\n --color-secondary: var(--color-red-100);\\n }\\n\\n .dev-tools-indicator-issue-count-indicator {\\n width: var(--size-8);\\n height: var(--size-8);\\n background: var(--color-primary);\\n box-shadow: 0 0 0 2px var(--color-secondary);\\n border-radius: 50%;\\n }\\n}\\n\\n.dev-tools-indicator-shortcut {\\n display: flex;\\n gap: 4px;\\n\\n kbd {\\n width: var(--size-20);\\n height: var(--size-20);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: var(--rounded-md);\\n border: 1px solid var(--color-gray-400);\\n font-family: var(--font-stack-sans);\\n background: var(--color-background-100);\\n color: var(--color-gray-1000);\\n text-align: center;\\n font-size: var(--size-12);\\n line-height: var(--size-16);\\n }\\n}\\n\\n.dev-tools-grabbing {\\n cursor: grabbing;\\n\\n > * {\\n pointer-events: none;\\n }\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.resize-container {\n position: absolute;\n /* todo: better z index */\n z-index: 10;\n /* todo: is this needed */\n background: transparent;\n}\n\n.resize-line {\n position: absolute;\n /* todo smarter z index */\n z-index: -1;\n pointer-events: none;\n /* a normal exit animation curve- at this point the exit animation is */\n /* immediately responsive so we don't need a bespoke curve */\n transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n /* todo: better var? */\n border: 1px solid var(--color-gray-400);\n}\n\n/* start really fast because we start super hidden initially behind the panel, otherwise feels like an unintended animation delay */\n.resize-container:hover ~ .resize-line {\n transition: transform 0.25s cubic-bezier(0.23, 1, 0.32, 0.9);\n}\n\n.resize-container.right,\n.resize-container.left {\n top: 0;\n height: 100%;\n width: 22px;\n cursor: ew-resize;\n}\n\n/* todo: don't hard code all these values/use vars */\n\n.resize-container.bottom,\n.resize-container.top {\n left: 0;\n width: 100%;\n height: 22px;\n cursor: ns-resize;\n}\n\n.resize-container.top {\n top: -7px;\n}\n.resize-container.bottom {\n bottom: -7px;\n}\n.resize-container.left {\n left: -7px;\n}\n.resize-container.right {\n right: -7px;\n}\n\n.resize-container.top-left,\n.resize-container.top-right,\n.resize-container.bottom-left,\n.resize-container.bottom-right {\n width: 26px;\n height: 26px;\n z-index: 15;\n}\n\n.resize-container.top-left {\n top: -5px;\n left: -5px;\n cursor: nwse-resize;\n}\n.resize-container.top-right {\n top: -5px;\n right: -5px;\n cursor: nesw-resize;\n}\n.resize-container.bottom-left {\n bottom: -5px;\n left: -5px;\n cursor: nesw-resize;\n}\n.resize-container.bottom-right {\n bottom: -5px;\n right: -5px;\n cursor: nwse-resize;\n}\n\n.resize-line.top,\n.resize-line.bottom {\n height: 18px;\n width: 100%;\n background-color: var(--color-background-200);\n}\n\n.resize-line.left,\n.resize-line.right {\n width: 18px;\n height: 100%;\n background-color: var(--color-background-200);\n}\n\n.resize-line.top {\n top: -7px;\n left: calc(-1 * var(--border-left, 2px));\n width: calc(100% + var(--border-horizontal, 4px));\n border-radius: var(--rounded-lg) var(--rounded-lg) 0 0;\n transform: translateY(18px);\n}\n\n.resize-line.bottom {\n bottom: -7px;\n left: calc(-1 * var(--border-left, 2px));\n width: calc(100% + var(--border-horizontal, 4px));\n border-radius: 0 0 var(--rounded-lg) var(--rounded-lg);\n transform: translateY(-18px);\n}\n\n.resize-line.left {\n top: calc(-1 * var(--border-top, 2px));\n left: -7px;\n height: calc(100% + var(--border-vertical, 4px));\n border-radius: var(--rounded-lg) 0 0 var(--rounded-lg);\n transform: translateX(18px);\n}\n\n.resize-line.right {\n top: calc(-1 * var(--border-top, 2px));\n right: -7px;\n height: calc(100% + var(--border-vertical, 4px));\n border-radius: 0 var(--rounded-lg) var(--rounded-lg) 0;\n transform: translateX(-18px);\n}\n\n.resize-container.right:hover ~ .resize-line.right,\n.resize-container.left:hover ~ .resize-line.left,\n.resize-line.right.dragging,\n.resize-line.left.dragging {\n transform: translateX(0);\n}\n\n.resize-container.bottom:hover ~ .resize-line.bottom,\n.resize-container.top:hover ~ .resize-line.top,\n.resize-line.bottom.dragging,\n.resize-line.top.dragging {\n transform: translateY(0);\n}\n\n/* make sure that we don't show multiple handles at once\n * we should only ever show the currently resizing handle\n * regardless of hover state \n */\n.resize-container.no-hover.right:hover ~ .resize-line.right {\n transform: translateX(-20px);\n}\n.resize-container.no-hover.left:hover ~ .resize-line.left {\n transform: translateX(20px);\n}\n.resize-container.no-hover.bottom:hover ~ .resize-line.bottom {\n transform: translateY(-20px);\n}\n.resize-container.no-hover.top:hover ~ .resize-line.top {\n transform: translateY(20px);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\"],names:[],mappings:\"AAAA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,yBAAyB;EACzB,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,oBAAoB;EACpB,uEAAuE;EACvE,4DAA4D;EAC5D,uDAAuD;EACvD,sBAAsB;EACtB,uCAAuC;AACzC;;AAEA,mIAAmI;AACnI;EACE,4DAA4D;AAC9D;;AAEA;;EAEE,MAAM;EACN,YAAY;EACZ,WAAW;EACX,iBAAiB;AACnB;;AAEA,oDAAoD;;AAEpD;;EAEE,OAAO;EACP,WAAW;EACX,YAAY;EACZ,iBAAiB;AACnB;;AAEA;EACE,SAAS;AACX;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,WAAW;AACb;;AAEA;;;;EAIE,WAAW;EACX,YAAY;EACZ,WAAW;AACb;;AAEA;EACE,SAAS;EACT,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,SAAS;EACT,WAAW;EACX,mBAAmB;AACrB;AACA;EACE,YAAY;EACZ,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,YAAY;EACZ,WAAW;EACX,mBAAmB;AACrB;;AAEA;;EAEE,YAAY;EACZ,WAAW;EACX,6CAA6C;AAC/C;;AAEA;;EAEE,WAAW;EACX,YAAY;EACZ,6CAA6C;AAC/C;;AAEA;EACE,SAAS;EACT,wCAAwC;EACxC,iDAAiD;EACjD,sDAAsD;EACtD,2BAA2B;AAC7B;;AAEA;EACE,YAAY;EACZ,wCAAwC;EACxC,iDAAiD;EACjD,sDAAsD;EACtD,4BAA4B;AAC9B;;AAEA;EACE,sCAAsC;EACtC,UAAU;EACV,gDAAgD;EAChD,sDAAsD;EACtD,2BAA2B;AAC7B;;AAEA;EACE,sCAAsC;EACtC,WAAW;EACX,gDAAgD;EAChD,sDAAsD;EACtD,4BAA4B;AAC9B;;AAEA;;;;EAIE,wBAAwB;AAC1B;;AAEA;;;;EAIE,wBAAwB;AAC1B;;AAEA;;;EAGE;AACF;EACE,4BAA4B;AAC9B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,2BAA2B;AAC7B\",sourcesContent:[\".resize-container {\\n position: absolute;\\n /* todo: better z index */\\n z-index: 10;\\n /* todo: is this needed */\\n background: transparent;\\n}\\n\\n.resize-line {\\n position: absolute;\\n /* todo smarter z index */\\n z-index: -1;\\n pointer-events: none;\\n /* a normal exit animation curve- at this point the exit animation is */\\n /* immediately responsive so we don't need a bespoke curve */\\n transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\\n /* todo: better var? */\\n border: 1px solid var(--color-gray-400);\\n}\\n\\n/* start really fast because we start super hidden initially behind the panel, otherwise feels like an unintended animation delay */\\n.resize-container:hover ~ .resize-line {\\n transition: transform 0.25s cubic-bezier(0.23, 1, 0.32, 0.9);\\n}\\n\\n.resize-container.right,\\n.resize-container.left {\\n top: 0;\\n height: 100%;\\n width: 22px;\\n cursor: ew-resize;\\n}\\n\\n/* todo: don't hard code all these values/use vars */\\n\\n.resize-container.bottom,\\n.resize-container.top {\\n left: 0;\\n width: 100%;\\n height: 22px;\\n cursor: ns-resize;\\n}\\n\\n.resize-container.top {\\n top: -7px;\\n}\\n.resize-container.bottom {\\n bottom: -7px;\\n}\\n.resize-container.left {\\n left: -7px;\\n}\\n.resize-container.right {\\n right: -7px;\\n}\\n\\n.resize-container.top-left,\\n.resize-container.top-right,\\n.resize-container.bottom-left,\\n.resize-container.bottom-right {\\n width: 26px;\\n height: 26px;\\n z-index: 15;\\n}\\n\\n.resize-container.top-left {\\n top: -5px;\\n left: -5px;\\n cursor: nwse-resize;\\n}\\n.resize-container.top-right {\\n top: -5px;\\n right: -5px;\\n cursor: nesw-resize;\\n}\\n.resize-container.bottom-left {\\n bottom: -5px;\\n left: -5px;\\n cursor: nesw-resize;\\n}\\n.resize-container.bottom-right {\\n bottom: -5px;\\n right: -5px;\\n cursor: nwse-resize;\\n}\\n\\n.resize-line.top,\\n.resize-line.bottom {\\n height: 18px;\\n width: 100%;\\n background-color: var(--color-background-200);\\n}\\n\\n.resize-line.left,\\n.resize-line.right {\\n width: 18px;\\n height: 100%;\\n background-color: var(--color-background-200);\\n}\\n\\n.resize-line.top {\\n top: -7px;\\n left: calc(-1 * var(--border-left, 2px));\\n width: calc(100% + var(--border-horizontal, 4px));\\n border-radius: var(--rounded-lg) var(--rounded-lg) 0 0;\\n transform: translateY(18px);\\n}\\n\\n.resize-line.bottom {\\n bottom: -7px;\\n left: calc(-1 * var(--border-left, 2px));\\n width: calc(100% + var(--border-horizontal, 4px));\\n border-radius: 0 0 var(--rounded-lg) var(--rounded-lg);\\n transform: translateY(-18px);\\n}\\n\\n.resize-line.left {\\n top: calc(-1 * var(--border-top, 2px));\\n left: -7px;\\n height: calc(100% + var(--border-vertical, 4px));\\n border-radius: var(--rounded-lg) 0 0 var(--rounded-lg);\\n transform: translateX(18px);\\n}\\n\\n.resize-line.right {\\n top: calc(-1 * var(--border-top, 2px));\\n right: -7px;\\n height: calc(100% + var(--border-vertical, 4px));\\n border-radius: 0 var(--rounded-lg) var(--rounded-lg) 0;\\n transform: translateX(-18px);\\n}\\n\\n.resize-container.right:hover ~ .resize-line.right,\\n.resize-container.left:hover ~ .resize-line.left,\\n.resize-line.right.dragging,\\n.resize-line.left.dragging {\\n transform: translateX(0);\\n}\\n\\n.resize-container.bottom:hover ~ .resize-line.bottom,\\n.resize-container.top:hover ~ .resize-line.top,\\n.resize-line.bottom.dragging,\\n.resize-line.top.dragging {\\n transform: translateY(0);\\n}\\n\\n/* make sure that we don't show multiple handles at once\\n * we should only ever show the currently resizing handle\\n * regardless of hover state \\n */\\n.resize-container.no-hover.right:hover ~ .resize-line.right {\\n transform: translateX(-20px);\\n}\\n.resize-container.no-hover.left:hover ~ .resize-line.left {\\n transform: translateX(20px);\\n}\\n.resize-container.no-hover.bottom:hover ~ .resize-line.bottom {\\n transform: translateY(-20px);\\n}\\n.resize-container.no-hover.top:hover ~ .resize-line.top {\\n transform: translateY(20px);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.segment-boundary-trigger {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 6px;\n line-height: 16px;\n font-weight: 500;\n color: var(--color-gray-1000);\n border-radius: 999px;\n border: none;\n font-size: var(--size-12);\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.segment-boundary-trigger-text {\n font-size: var(--size-12);\n font-weight: 500;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.segment-boundary-trigger-text .plus-icon {\n transition: transform 0.25s ease;\n}\n\n.segment-boundary-trigger-text:hover .plus-icon {\n color: var(--color-gray-800);\n}\n\n.segment-boundary-trigger svg {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n vertical-align: middle;\n}\n\n.segment-boundary-trigger:hover svg {\n color: var(--color-gray-700);\n}\n\n.segment-boundary-trigger[disabled] svg,\n.segment-boundary-trigger[disabled]:hover svg {\n color: var(--color-gray-400);\n cursor: not-allowed;\n}\n\n.segment-boundary-dropdown {\n padding: 8px;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-400);\n border-radius: 16px;\n min-width: 120px;\n user-select: none;\n cursor: default;\n box-shadow: 0px 4px 8px -4px color-mix(in srgb, var(--color-gray-900) 4%, transparent);\n}\n\n.segment-boundary-dropdown-positioner {\n z-index: var(--top-z-index);\n}\n\n.segment-boundary-dropdown-item {\n display: flex;\n align-items: center;\n padding: 8px;\n line-height: 20px;\n font-size: 14px;\n border-radius: 6px;\n color: var(--color-gray-1000);\n cursor: pointer;\n min-width: 220px;\n border: none;\n background: none;\n width: 100%;\n}\n\n.segment-boundary-dropdown-item[data-disabled] {\n color: var(--color-gray-400);\n cursor: not-allowed;\n}\n\n.segment-boundary-dropdown-item svg {\n margin-right: 12px;\n color: currentColor;\n}\n\n.segment-boundary-dropdown-item:hover {\n background: var(--color-gray-200);\n}\n\n.segment-boundary-dropdown-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n\n.segment-boundary-dropdown-item:last-child {\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n\n.segment-boundary-group-label {\n padding: 8px;\n font-size: 13px;\n line-height: 16px;\n font-weight: 400;\n color: var(--color-gray-900);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\"],names:[],mappings:\"AAAA;EACE,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,6BAA6B;EAC7B,oBAAoB;EACpB,YAAY;EACZ,yBAAyB;EACzB,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,sBAAsB;AACxB;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;;EAEE,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,YAAY;EACZ,uCAAuC;EACvC,uCAAuC;EACvC,mBAAmB;EACnB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,sFAAsF;AACxF;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,eAAe;EACf,kBAAkB;EAClB,6BAA6B;EAC7B,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,WAAW;AACb;;AAEA;EACE,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,8BAA8B;EAC9B,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,4BAA4B;AAC9B\",sourcesContent:[\".segment-boundary-trigger {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n padding: 4px 6px;\\n line-height: 16px;\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n border-radius: 999px;\\n border: none;\\n font-size: var(--size-12);\\n cursor: pointer;\\n transition: background-color 0.15s ease;\\n}\\n\\n.segment-boundary-trigger-text {\\n font-size: var(--size-12);\\n font-weight: 500;\\n user-select: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.segment-boundary-trigger-text .plus-icon {\\n transition: transform 0.25s ease;\\n}\\n\\n.segment-boundary-trigger-text:hover .plus-icon {\\n color: var(--color-gray-800);\\n}\\n\\n.segment-boundary-trigger svg {\\n width: 14px;\\n height: 14px;\\n flex-shrink: 0;\\n vertical-align: middle;\\n}\\n\\n.segment-boundary-trigger:hover svg {\\n color: var(--color-gray-700);\\n}\\n\\n.segment-boundary-trigger[disabled] svg,\\n.segment-boundary-trigger[disabled]:hover svg {\\n color: var(--color-gray-400);\\n cursor: not-allowed;\\n}\\n\\n.segment-boundary-dropdown {\\n padding: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: 16px;\\n min-width: 120px;\\n user-select: none;\\n cursor: default;\\n box-shadow: 0px 4px 8px -4px color-mix(in srgb, var(--color-gray-900) 4%, transparent);\\n}\\n\\n.segment-boundary-dropdown-positioner {\\n z-index: var(--top-z-index);\\n}\\n\\n.segment-boundary-dropdown-item {\\n display: flex;\\n align-items: center;\\n padding: 8px;\\n line-height: 20px;\\n font-size: 14px;\\n border-radius: 6px;\\n color: var(--color-gray-1000);\\n cursor: pointer;\\n min-width: 220px;\\n border: none;\\n background: none;\\n width: 100%;\\n}\\n\\n.segment-boundary-dropdown-item[data-disabled] {\\n color: var(--color-gray-400);\\n cursor: not-allowed;\\n}\\n\\n.segment-boundary-dropdown-item svg {\\n margin-right: 12px;\\n color: currentColor;\\n}\\n\\n.segment-boundary-dropdown-item:hover {\\n background: var(--color-gray-200);\\n}\\n\\n.segment-boundary-dropdown-item:first-child {\\n border-top-left-radius: 4px;\\n border-top-right-radius: 4px;\\n}\\n\\n.segment-boundary-dropdown-item:last-child {\\n border-bottom-left-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n\\n.segment-boundary-group-label {\\n padding: 8px;\\n font-size: 13px;\\n line-height: 16px;\\n font-weight: 400;\\n color: var(--color-gray-900);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.segment-explorer-content {\n font-size: var(--size-14);\n padding: 0 8px;\n width: 100%;\n height: 100%;\n}\n\n.segment-explorer-page-route-bar {\n display: flex;\n align-items: center;\n padding: 14px 16px;\n background-color: var(--color-background-200);\n gap: 12px;\n}\n\n.segment-explorer-page-route-bar-path {\n font-size: var(--size-14);\n font-weight: 500;\n color: var(--color-gray-1000);\n font-family: var(--font-mono);\n white-space: nowrap;\n line-height: 20px;\n}\n\n.segment-explorer-item {\n margin: 4px 0;\n border-radius: 6px;\n}\n\n.segment-explorer-item:nth-child(even) {\n background-color: var(--color-background-200);\n}\n.segment-explorer-item-row {\n display: flex;\n flex-direction: column;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-right: 4px;\n}\n.segment-explorer-item-row-main {\n display: flex;\n align-items: center;\n white-space: pre;\n cursor: default;\n color: var(--color-gray-1000);\n}\n\n.segment-explorer-children--intended {\n padding-left: 16px;\n}\n\n.segment-explorer-filename {\n display: inline-flex;\n width: 100%;\n align-items: center;\n}\n\n.segment-explorer-filename select {\n margin-left: auto;\n}\n.segment-explorer-filename--path {\n margin-right: 8px;\n}\n.segment-explorer-filename--path small {\n display: inline-block;\n width: 0;\n opacity: 0;\n}\n.segment-explorer-filename--name {\n color: var(--color-gray-800);\n}\n\n.segment-explorer-files {\n display: inline-flex;\n gap: 8px;\n margin-left: auto;\n}\n\n.segment-explorer-files + .segment-boundary-trigger {\n margin-left: 8px;\n}\n\n.segment-explorer-file-label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 6px;\n height: 20px;\n border-radius: 16px;\n line-height: 16px;\n font-size: var(--size-12);\n font-weight: 500;\n user-select: none;\n cursor: pointer;\n background-color: var(--color-gray-300);\n color: var(--color-gray-1000);\n}\n.segment-explorer-file-label-text {\n display: inline-flex;\n align-items: center;\n}\n\n.segment-explorer-file-label--overridden {\n background-color: var(--color-amber-300);\n color: var(--color-amber-900);\n}\n\n.segment-explorer-file-label .code-icon {\n opacity: 0;\n margin-left: 0;\n width: 0;\n transition: all 0.15s ease-in-out;\n}\n.segment-explorer-file-label:hover .code-icon {\n opacity: 1;\n width: 12px;\n margin-left: 4px;\n}\n\n.segment-explorer-file-label:hover {\n filter: brightness(0.95);\n}\n\n.segment-explorer-file-label--builtin {\n background-color: transparent;\n color: var(--color-gray-900);\n border: 1px dashed var(--color-gray-500);\n height: 24px;\n cursor: default;\n}\n.segment-explorer-file-label--builtin svg {\n margin-left: 4px;\n margin-right: -4px;\n}\n\n/* Footer styles */\n.segment-explorer-footer {\n padding: 8px;\n border-top: 1px solid var(--color-gray-400);\n user-select: none;\n}\n\n.segment-explorer-footer-button {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n width: 100%;\n padding: 6px;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-400);\n border-radius: 6px;\n color: var(--color-gray-1000);\n font-size: var(--size-14);\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.segment-explorer-footer-button:hover:not(:disabled) {\n background: var(--color-gray-200);\n}\n\n.segment-explorer-footer-button--disabled {\n cursor: not-allowed;\n}\n\n.segment-explorer-footer-text {\n text-align: center;\n}\n\n.segment-explorer-footer-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: var(--color-amber-300);\n color: var(--color-amber-900);\n border-radius: 10px;\n font-size: var(--size-12);\n font-weight: 600;\n line-height: 1;\n}\n\n.segment-explorer-file-label-tooltip--sm {\n white-space: nowrap;\n}\n\n.segment-explorer-file-label-tooltip--lg {\n min-width: 200px;\n}\n\n.segment-explorer-suggestions {\n display: inline-flex;\n gap: 8px;\n}\n\n.segment-explorer-suggestions-tooltip {\n width: 200px;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\"],names:[],mappings:\"AAAA;EACE,yBAAyB;EACzB,cAAc;EACd,WAAW;EACX,YAAY;AACd;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,6CAA6C;EAC7C,SAAS;AACX;;AAEA;EACE,yBAAyB;EACzB,gBAAgB;EAChB,6BAA6B;EAC7B,6BAA6B;EAC7B,mBAAmB;EACnB,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,6CAA6C;AAC/C;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,iBAAiB;EACjB,oBAAoB;EACpB,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,eAAe;EACf,6BAA6B;AAC/B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oBAAoB;EACpB,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,qBAAqB;EACrB,QAAQ;EACR,UAAU;AACZ;AACA;EACE,4BAA4B;AAC9B;;AAEA;EACE,oBAAoB;EACpB,QAAQ;EACR,iBAAiB;AACnB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,cAAc;EACd,YAAY;EACZ,mBAAmB;EACnB,iBAAiB;EACjB,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,uCAAuC;EACvC,6BAA6B;AAC/B;AACA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;EACE,wCAAwC;EACxC,6BAA6B;AAC/B;;AAEA;EACE,UAAU;EACV,cAAc;EACd,QAAQ;EACR,iCAAiC;AACnC;AACA;EACE,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,6BAA6B;EAC7B,4BAA4B;EAC5B,wCAAwC;EACxC,YAAY;EACZ,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA,kBAAkB;AAClB;EACE,YAAY;EACZ,2CAA2C;EAC3C,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,QAAQ;EACR,WAAW;EACX,YAAY;EACZ,uCAAuC;EACvC,uCAAuC;EACvC,kBAAkB;EAClB,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,YAAY;EACZ,cAAc;EACd,kCAAkC;EAClC,6BAA6B;EAC7B,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,oBAAoB;EACpB,QAAQ;AACV;;AAEA;EACE,YAAY;AACd\",sourcesContent:[\".segment-explorer-content {\\n font-size: var(--size-14);\\n padding: 0 8px;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.segment-explorer-page-route-bar {\\n display: flex;\\n align-items: center;\\n padding: 14px 16px;\\n background-color: var(--color-background-200);\\n gap: 12px;\\n}\\n\\n.segment-explorer-page-route-bar-path {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n font-family: var(--font-mono);\\n white-space: nowrap;\\n line-height: 20px;\\n}\\n\\n.segment-explorer-item {\\n margin: 4px 0;\\n border-radius: 6px;\\n}\\n\\n.segment-explorer-item:nth-child(even) {\\n background-color: var(--color-background-200);\\n}\\n.segment-explorer-item-row {\\n display: flex;\\n flex-direction: column;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n padding-right: 4px;\\n}\\n.segment-explorer-item-row-main {\\n display: flex;\\n align-items: center;\\n white-space: pre;\\n cursor: default;\\n color: var(--color-gray-1000);\\n}\\n\\n.segment-explorer-children--intended {\\n padding-left: 16px;\\n}\\n\\n.segment-explorer-filename {\\n display: inline-flex;\\n width: 100%;\\n align-items: center;\\n}\\n\\n.segment-explorer-filename select {\\n margin-left: auto;\\n}\\n.segment-explorer-filename--path {\\n margin-right: 8px;\\n}\\n.segment-explorer-filename--path small {\\n display: inline-block;\\n width: 0;\\n opacity: 0;\\n}\\n.segment-explorer-filename--name {\\n color: var(--color-gray-800);\\n}\\n\\n.segment-explorer-files {\\n display: inline-flex;\\n gap: 8px;\\n margin-left: auto;\\n}\\n\\n.segment-explorer-files + .segment-boundary-trigger {\\n margin-left: 8px;\\n}\\n\\n.segment-explorer-file-label {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n padding: 0 6px;\\n height: 20px;\\n border-radius: 16px;\\n line-height: 16px;\\n font-size: var(--size-12);\\n font-weight: 500;\\n user-select: none;\\n cursor: pointer;\\n background-color: var(--color-gray-300);\\n color: var(--color-gray-1000);\\n}\\n.segment-explorer-file-label-text {\\n display: inline-flex;\\n align-items: center;\\n}\\n\\n.segment-explorer-file-label--overridden {\\n background-color: var(--color-amber-300);\\n color: var(--color-amber-900);\\n}\\n\\n.segment-explorer-file-label .code-icon {\\n opacity: 0;\\n margin-left: 0;\\n width: 0;\\n transition: all 0.15s ease-in-out;\\n}\\n.segment-explorer-file-label:hover .code-icon {\\n opacity: 1;\\n width: 12px;\\n margin-left: 4px;\\n}\\n\\n.segment-explorer-file-label:hover {\\n filter: brightness(0.95);\\n}\\n\\n.segment-explorer-file-label--builtin {\\n background-color: transparent;\\n color: var(--color-gray-900);\\n border: 1px dashed var(--color-gray-500);\\n height: 24px;\\n cursor: default;\\n}\\n.segment-explorer-file-label--builtin svg {\\n margin-left: 4px;\\n margin-right: -4px;\\n}\\n\\n/* Footer styles */\\n.segment-explorer-footer {\\n padding: 8px;\\n border-top: 1px solid var(--color-gray-400);\\n user-select: none;\\n}\\n\\n.segment-explorer-footer-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n width: 100%;\\n padding: 6px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: 6px;\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n cursor: pointer;\\n transition: background-color 0.15s ease;\\n}\\n\\n.segment-explorer-footer-button:hover:not(:disabled) {\\n background: var(--color-gray-200);\\n}\\n\\n.segment-explorer-footer-button--disabled {\\n cursor: not-allowed;\\n}\\n\\n.segment-explorer-footer-text {\\n text-align: center;\\n}\\n\\n.segment-explorer-footer-badge {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n min-width: 20px;\\n height: 20px;\\n padding: 0 6px;\\n background: var(--color-amber-300);\\n color: var(--color-amber-900);\\n border-radius: 10px;\\n font-size: var(--size-12);\\n font-weight: 600;\\n line-height: 1;\\n}\\n\\n.segment-explorer-file-label-tooltip--sm {\\n white-space: nowrap;\\n}\\n\\n.segment-explorer-file-label-tooltip--lg {\\n min-width: 200px;\\n}\\n\\n.segment-explorer-suggestions {\\n display: inline-flex;\\n gap: 8px;\\n}\\n\\n.segment-explorer-suggestions-tooltip {\\n width: 200px;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/toast/style.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.nextjs-toast {\n position: fixed;\n z-index: var(--top-z-index);\n max-width: 420px;\n box-shadow: 0px 16px 32px rgba(0, 0, 0, 0.25);\n}\n\n.nextjs-toast-errors-parent {\n padding: 16px;\n border-radius: var(--rounded-4xl);\n font-weight: 500;\n color: var(--color-ansi-bright-white);\n background-color: var(--color-ansi-red);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/toast/style.css\"],names:[],mappings:\"AAAA;EACE,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,6CAA6C;AAC/C;;AAEA;EACE,aAAa;EACb,iCAAiC;EACjC,gBAAgB;EAChB,qCAAqC;EACrC,uCAAuC;AACzC\",sourcesContent:[\".nextjs-toast {\\n position: fixed;\\n z-index: var(--top-z-index);\\n max-width: 420px;\\n box-shadow: 0px 16px 32px rgba(0, 0, 0, 0.25);\\n}\\n\\n.nextjs-toast-errors-parent {\\n padding: 16px;\\n border-radius: var(--rounded-4xl);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/tooltip/tooltip.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.tooltip-wrapper {\n position: relative;\n display: inline-block;\n line-height: 1;\n}\n\n.tooltip {\n position: relative;\n padding: 6px 12px;\n border-radius: 8px;\n font-size: 14px;\n line-height: 1.4;\n pointer-events: none;\n color: var(--color-gray-100);\n background-color: var(--color-gray-1000);\n}\n\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: var(--arrow-size, 6px);\n border-color: transparent;\n}\n\n.tooltip-arrow--top {\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px) 0\n var(--arrow-size, 6px);\n border-top-color: var(--color-gray-1000);\n bottom: 0;\n transform: translateY(100%);\n}\n\n.tooltip-arrow--bottom {\n border-width: 0 var(--arrow-size, 6px) var(--arrow-size, 6px)\n var(--arrow-size, 6px);\n border-bottom-color: var(--color-gray-1000);\n top: 0;\n transform: translateY(-100%);\n}\n\n.tooltip-arrow--left {\n border-width: var(--arrow-size, 6px) 0 var(--arrow-size, 6px)\n var(--arrow-size, 6px);\n border-left-color: var(--color-gray-1000);\n right: 0;\n transform: translateX(100%);\n}\n\n.tooltip-arrow--right {\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px)\n var(--arrow-size, 6px) 0;\n border-right-color: var(--color-gray-1000);\n left: 0;\n transform: translateX(-100%);\n}\n\n.tooltip-positioner {\n z-index: var(--top-z-index);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/tooltip/tooltip.css\"],names:[],mappings:\"AAAA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,4BAA4B;EAC5B,wCAAwC;AAC1C;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,mBAAmB;EACnB,oCAAoC;EACpC,yBAAyB;AAC3B;;AAEA;EACE;0BACwB;EACxB,wCAAwC;EACxC,SAAS;EACT,2BAA2B;AAC7B;;AAEA;EACE;0BACwB;EACxB,2CAA2C;EAC3C,MAAM;EACN,4BAA4B;AAC9B;;AAEA;EACE;0BACwB;EACxB,yCAAyC;EACzC,QAAQ;EACR,2BAA2B;AAC7B;;AAEA;EACE;4BAC0B;EAC1B,0CAA0C;EAC1C,OAAO;EACP,4BAA4B;AAC9B;;AAEA;EACE,2BAA2B;AAC7B\",sourcesContent:[\".tooltip-wrapper {\\n position: relative;\\n display: inline-block;\\n line-height: 1;\\n}\\n\\n.tooltip {\\n position: relative;\\n padding: 6px 12px;\\n border-radius: 8px;\\n font-size: 14px;\\n line-height: 1.4;\\n pointer-events: none;\\n color: var(--color-gray-100);\\n background-color: var(--color-gray-1000);\\n}\\n\\n.tooltip-arrow {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: var(--arrow-size, 6px);\\n border-color: transparent;\\n}\\n\\n.tooltip-arrow--top {\\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px) 0\\n var(--arrow-size, 6px);\\n border-top-color: var(--color-gray-1000);\\n bottom: 0;\\n transform: translateY(100%);\\n}\\n\\n.tooltip-arrow--bottom {\\n border-width: 0 var(--arrow-size, 6px) var(--arrow-size, 6px)\\n var(--arrow-size, 6px);\\n border-bottom-color: var(--color-gray-1000);\\n top: 0;\\n transform: translateY(-100%);\\n}\\n\\n.tooltip-arrow--left {\\n border-width: var(--arrow-size, 6px) 0 var(--arrow-size, 6px)\\n var(--arrow-size, 6px);\\n border-left-color: var(--color-gray-1000);\\n right: 0;\\n transform: translateX(100%);\\n}\\n\\n.tooltip-arrow--right {\\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px)\\n var(--arrow-size, 6px) 0;\\n border-right-color: var(--color-gray-1000);\\n left: 0;\\n transform: translateX(-100%);\\n}\\n\\n.tooltip-positioner {\\n z-index: var(--top-z-index);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/global.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>f});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a),l=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/normalize.css\"),s=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/default-theme.css\"),c=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/dark-theme.css\"),u=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/colors.css\"),d=i()(o());d.i(l.Z),d.i(s.Z),d.i(c.Z),d.i(u.Z),d.push([e.id,`/* devtool global css variables */\n:host {\n /* variables */\n --top-z-index: 2147483647;\n}\n\n/* global styles */\n* {\n -webkit-font-smoothing: antialiased;\n}\n\n/* global reset for draggable content scrollbar styles */\n[data-nextjs-scrollable-content],\n[data-nextjs-scrollable-content] * {\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n border-radius: 0 0 1rem 1rem;\n margin-bottom: 1rem;\n }\n\n &::-webkit-scrollbar-button {\n display: none;\n }\n\n &::-webkit-scrollbar-track {\n border-radius: 0 0 1rem 1rem;\n background-color: var(--color-background-100);\n }\n\n &::-webkit-scrollbar-thumb {\n border-radius: 1rem;\n background-color: var(--color-gray-500);\n }\n}\n\n/* Place overflow: hidden on this so we can break out from [data-nextjs-dialog] */\n[data-nextjs-scrollable-content] {\n overflow: hidden;\n border-radius: inherit;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/global.css\"],names:[],mappings:\"AAKA,iCAAiC;AACjC;EACE,cAAc;EACd,yBAAyB;AAC3B;;AAEA,kBAAkB;AAClB;EACE,mCAAmC;AACrC;;AAEA,wDAAwD;AACxD;;EAEE;IACE,UAAU;IACV,WAAW;IACX,4BAA4B;IAC5B,mBAAmB;EACrB;;EAEA;IACE,aAAa;EACf;;EAEA;IACE,4BAA4B;IAC5B,6CAA6C;EAC/C;;EAEA;IACE,mBAAmB;IACnB,uCAAuC;EACzC;AACF;;AAEA,iFAAiF;AACjF;EACE,gBAAgB;EAChB,sBAAsB;AACxB\",sourcesContent:[\"@import './normalize.css';\\n@import './styles/default-theme.css';\\n@import './styles/dark-theme.css';\\n@import './styles/colors.css';\\n\\n/* devtool global css variables */\\n:host {\\n /* variables */\\n --top-z-index: 2147483647;\\n}\\n\\n/* global styles */\\n* {\\n -webkit-font-smoothing: antialiased;\\n}\\n\\n/* global reset for draggable content scrollbar styles */\\n[data-nextjs-scrollable-content],\\n[data-nextjs-scrollable-content] * {\\n &::-webkit-scrollbar {\\n width: 6px;\\n height: 6px;\\n border-radius: 0 0 1rem 1rem;\\n margin-bottom: 1rem;\\n }\\n\\n &::-webkit-scrollbar-button {\\n display: none;\\n }\\n\\n &::-webkit-scrollbar-track {\\n border-radius: 0 0 1rem 1rem;\\n background-color: var(--color-background-100);\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n border-radius: 1rem;\\n background-color: var(--color-gray-500);\\n }\\n}\\n\\n/* Place overflow: hidden on this so we can break out from [data-nextjs-dialog] */\\n[data-nextjs-scrollable-content] {\\n overflow: hidden;\\n border-radius: inherit;\\n}\\n\"],sourceRoot:\"\"}]);let f=d},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/menu/panel-router.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`/* Panel content padding styles */\n.panel-content {\n padding: 16px;\n padding-top: 8px;\n overflow: hidden;\n}\n\n/* User preferences wrapper styles */\n.user-preferences-wrapper {\n padding: 20px;\n padding-top: 8px;\n overflow: hidden;\n}\n\n/* Panel route base styles */\n.panel-route {\n opacity: var(--panel-opacity);\n transition: var(--panel-transition);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/menu/panel-router.css\"],names:[],mappings:\"AAAA,iCAAiC;AACjC;EACE,aAAa;EACb,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA,oCAAoC;AACpC;EACE,aAAa;EACb,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA,4BAA4B;AAC5B;EACE,6BAA6B;EAC7B,mCAAmC;AACrC\",sourcesContent:[\"/* Panel content padding styles */\\n.panel-content {\\n padding: 16px;\\n padding-top: 8px;\\n overflow: hidden;\\n}\\n\\n/* User preferences wrapper styles */\\n.user-preferences-wrapper {\\n padding: 20px;\\n padding-top: 8px;\\n overflow: hidden;\\n}\\n\\n/* Panel route base styles */\\n.panel-route {\\n opacity: var(--panel-opacity);\\n transition: var(--panel-transition);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/normalize.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`:host {\n all: initial;\n\n /* the direction property is not reset by 'all' */\n direction: ltr;\n}\n\n/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle,\naside,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection {\n display: block;\n}\n\n:host {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji',\n 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n color: var(--color-font);\n text-align: left;\n}\n\n:host:not(button) {\n background-color: #fff;\n}\n\n[tabindex='-1']:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 8px;\n}\n\np {\n margin-top: 0;\n margin-bottom: 16px;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 16px;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 16px;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 8px;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 16px;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',\n 'Courier New', monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 16px;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 16px;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 12px;\n padding-bottom: 12px;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 8px;\n}\n\nbutton {\n border-radius: 0;\n border: 0;\n padding: 0;\n margin: 0;\n background: none;\n appearance: none;\n -webkit-appearance: none;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: none;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type='button']:not(:disabled),\n[type='reset']:not(:disabled),\n[type='submit']:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: 8px;\n font-size: 24px;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type='search'] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/normalize.css\"],names:[],mappings:\"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\",sourcesContent:[\":host {\\n all: initial;\\n\\n /* the direction property is not reset by 'all' */\\n direction: ltr;\\n}\\n\\n/*!\\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\\n * Copyright 2011-2019 The Bootstrap Authors\\n * Copyright 2011-2019 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\\n */\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box;\\n}\\n\\n:host {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n\\narticle,\\naside,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nnav,\\nsection {\\n display: block;\\n}\\n\\n:host {\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji',\\n 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 1.5;\\n color: var(--color-font);\\n text-align: left;\\n}\\n\\n:host:not(button) {\\n background-color: #fff;\\n}\\n\\n[tabindex='-1']:focus:not(:focus-visible) {\\n outline: 0 !important;\\n}\\n\\nhr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n margin-top: 0;\\n margin-bottom: 8px;\\n}\\n\\np {\\n margin-top: 0;\\n margin-bottom: 16px;\\n}\\n\\nabbr[title],\\nabbr[data-original-title] {\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n cursor: help;\\n border-bottom: 0;\\n -webkit-text-decoration-skip-ink: none;\\n text-decoration-skip-ink: none;\\n}\\n\\naddress {\\n margin-bottom: 16px;\\n font-style: normal;\\n line-height: inherit;\\n}\\n\\nol,\\nul,\\ndl {\\n margin-top: 0;\\n margin-bottom: 16px;\\n}\\n\\nol ol,\\nul ul,\\nol ul,\\nul ol {\\n margin-bottom: 0;\\n}\\n\\ndt {\\n font-weight: 700;\\n}\\n\\ndd {\\n margin-bottom: 8px;\\n margin-left: 0;\\n}\\n\\nblockquote {\\n margin: 0 0 16px;\\n}\\n\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n\\nsmall {\\n font-size: 80%;\\n}\\n\\nsub,\\nsup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n}\\n\\nsub {\\n bottom: -0.25em;\\n}\\n\\nsup {\\n top: -0.5em;\\n}\\n\\na {\\n color: #007bff;\\n text-decoration: none;\\n background-color: transparent;\\n}\\n\\na:hover {\\n color: #0056b3;\\n text-decoration: underline;\\n}\\n\\na:not([href]) {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\na:not([href]):hover {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',\\n 'Courier New', monospace;\\n font-size: 1em;\\n}\\n\\npre {\\n margin-top: 0;\\n margin-bottom: 16px;\\n overflow: auto;\\n}\\n\\nfigure {\\n margin: 0 0 16px;\\n}\\n\\nimg {\\n vertical-align: middle;\\n border-style: none;\\n}\\n\\nsvg {\\n overflow: hidden;\\n vertical-align: middle;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\ncaption {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom;\\n}\\n\\nth {\\n text-align: inherit;\\n}\\n\\nlabel {\\n display: inline-block;\\n margin-bottom: 8px;\\n}\\n\\nbutton {\\n border-radius: 0;\\n border: 0;\\n padding: 0;\\n margin: 0;\\n background: none;\\n appearance: none;\\n -webkit-appearance: none;\\n}\\n\\nbutton:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n}\\n\\nbutton:focus:not(:focus-visible) {\\n outline: none;\\n}\\n\\ninput,\\nbutton,\\nselect,\\noptgroup,\\ntextarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n}\\n\\nbutton,\\ninput {\\n overflow: visible;\\n}\\n\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n\\nselect {\\n word-wrap: normal;\\n}\\n\\nbutton,\\n[type='button'],\\n[type='reset'],\\n[type='submit'] {\\n -webkit-appearance: button;\\n}\\n\\nbutton:not(:disabled),\\n[type='button']:not(:disabled),\\n[type='reset']:not(:disabled),\\n[type='submit']:not(:disabled) {\\n cursor: pointer;\\n}\\n\\nbutton::-moz-focus-inner,\\n[type='button']::-moz-focus-inner,\\n[type='reset']::-moz-focus-inner,\\n[type='submit']::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n}\\n\\ninput[type='radio'],\\ninput[type='checkbox'] {\\n box-sizing: border-box;\\n padding: 0;\\n}\\n\\ninput[type='date'],\\ninput[type='time'],\\ninput[type='datetime-local'],\\ninput[type='month'] {\\n -webkit-appearance: listbox;\\n}\\n\\ntextarea {\\n overflow: auto;\\n resize: vertical;\\n}\\n\\nfieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n}\\n\\nlegend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n padding: 0;\\n margin-bottom: 8px;\\n font-size: 24px;\\n line-height: inherit;\\n color: inherit;\\n white-space: normal;\\n}\\n\\nprogress {\\n vertical-align: baseline;\\n}\\n\\n[type='number']::-webkit-inner-spin-button,\\n[type='number']::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n[type='search'] {\\n outline-offset: -2px;\\n -webkit-appearance: none;\\n}\\n\\n[type='search']::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button;\\n}\\n\\noutput {\\n display: inline-block;\\n}\\n\\nsummary {\\n display: list-item;\\n cursor: pointer;\\n}\\n\\ntemplate {\\n display: none;\\n}\\n\\n[hidden] {\\n display: none !important;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/panel/dynamic-panel.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`/* Panel container base styles with dynamic positioning and sizing */\n.dynamic-panel-container {\n position: fixed;\n z-index: 2147483646;\n outline: none;\n top: var(--panel-top, auto);\n bottom: var(--panel-bottom, auto);\n left: var(--panel-left, auto);\n right: var(--panel-right, auto);\n width: var(--panel-width);\n height: var(--panel-height);\n min-width: var(--panel-min-width);\n min-height: var(--panel-min-height);\n max-width: var(--panel-max-width);\n max-height: var(--panel-max-height);\n}\n\n/* Panel content container styles */\n.panel-content-container {\n position: relative;\n width: 100%;\n height: 100%;\n border: 1px solid var(--color-gray-alpha-400);\n border-radius: var(--rounded-xl);\n background: var(--color-background-100);\n display: flex;\n flex-direction: column;\n}\n\n/* Draggable content area styles */\n.draggable-content {\n flex: 1;\n overflow: auto;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/panel/dynamic-panel.css\"],names:[],mappings:\"AAAA,oEAAoE;AACpE;EACE,eAAe;EACf,mBAAmB;EACnB,aAAa;EACb,2BAA2B;EAC3B,iCAAiC;EACjC,6BAA6B;EAC7B,+BAA+B;EAC/B,yBAAyB;EACzB,2BAA2B;EAC3B,iCAAiC;EACjC,mCAAmC;EACnC,iCAAiC;EACjC,mCAAmC;AACrC;;AAEA,mCAAmC;AACnC;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,6CAA6C;EAC7C,gCAAgC;EAChC,uCAAuC;EACvC,aAAa;EACb,sBAAsB;AACxB;;AAEA,kCAAkC;AAClC;EACE,OAAO;EACP,cAAc;AAChB\",sourcesContent:[\"/* Panel container base styles with dynamic positioning and sizing */\\n.dynamic-panel-container {\\n position: fixed;\\n z-index: 2147483646;\\n outline: none;\\n top: var(--panel-top, auto);\\n bottom: var(--panel-bottom, auto);\\n left: var(--panel-left, auto);\\n right: var(--panel-right, auto);\\n width: var(--panel-width);\\n height: var(--panel-height);\\n min-width: var(--panel-min-width);\\n min-height: var(--panel-min-height);\\n max-width: var(--panel-max-width);\\n max-height: var(--panel-max-height);\\n}\\n\\n/* Panel content container styles */\\n.panel-content-container {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: var(--rounded-xl);\\n background: var(--color-background-100);\\n display: flex;\\n flex-direction: column;\\n}\\n\\n/* Draggable content area styles */\\n.draggable-content {\\n flex: 1;\\n overflow: auto;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/colors.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`:host {\n /* \n * CAUTION: THIS IS A WORKAROUND!\n * For now, we use @babel/code-frame to parse the code frame which does not support option to change the color.\n * x-ref: https://github.com/babel/babel/blob/efa52324ff835b794c48080f14877b6caf32cd15/packages/babel-code-frame/src/defs.ts#L40-L54\n * So, we do a workaround mapping to change the color matching the theme.\n *\n * For example, in @babel/code-frame, the \"keyword\" is mapped to ANSI \"cyan\".\n * We want the \"keyword\" to use the \"syntax-keyword\" color in the theme.\n * So, we map the \"cyan\" to the \"syntax-keyword\" in the theme.\n */\n /* cyan: keyword */\n --color-ansi-cyan: var(--color-syntax-keyword);\n /* yellow: capitalized, jsxIdentifier, punctuation */\n --color-ansi-yellow: var(--color-syntax-function);\n /* magenta: number, regex */\n --color-ansi-magenta: var(--color-syntax-keyword);\n /* green: string */\n --color-ansi-green: var(--color-syntax-string);\n /* gray (bright black): comment, gutter */\n --color-ansi-bright-black: var(--color-syntax-comment);\n\n /* Ansi - Temporary */\n --color-ansi-selection: var(--color-gray-alpha-300);\n --color-ansi-bg: var(--color-background-200);\n --color-ansi-fg: var(--color-gray-1000);\n\n --color-ansi-white: var(--color-gray-700);\n --color-ansi-black: var(--color-gray-200);\n --color-ansi-blue: var(--color-blue-700);\n --color-ansi-red: var(--color-red-700);\n --color-ansi-bright-white: var(--color-gray-1000);\n --color-ansi-bright-blue: var(--color-blue-800);\n --color-ansi-bright-cyan: var(--color-blue-800);\n --color-ansi-bright-green: var(--color-green-800);\n --color-ansi-bright-magenta: var(--color-blue-800);\n --color-ansi-bright-red: var(--color-red-800);\n --color-ansi-bright-yellow: var(--color-amber-900);\n\n /* Background Light */\n --color-background-100: #ffffff;\n --color-background-200: #fafafa;\n\n /* Syntax Light */\n --color-syntax-comment: #545454;\n --color-syntax-constant: #171717;\n --color-syntax-function: #0054ad;\n --color-syntax-keyword: #a51850;\n --color-syntax-link: #066056;\n --color-syntax-parameter: #8f3e00;\n --color-syntax-punctuation: #171717;\n --color-syntax-string: #036157;\n --color-syntax-string-expression: #066056;\n\n /* Gray Scale Light */\n --color-gray-100: #f2f2f2;\n --color-gray-200: #ebebeb;\n --color-gray-300: #e6e6e6;\n --color-gray-400: #eaeaea;\n --color-gray-500: #c9c9c9;\n --color-gray-600: #a8a8a8;\n --color-gray-700: #8f8f8f;\n --color-gray-800: #7d7d7d;\n --color-gray-900: #666666;\n --color-gray-1000: #171717;\n\n /* Gray Alpha Scale Light */\n --color-gray-alpha-100: rgba(0, 0, 0, 0.05);\n --color-gray-alpha-200: rgba(0, 0, 0, 0.081);\n --color-gray-alpha-300: rgba(0, 0, 0, 0.1);\n --color-gray-alpha-400: rgba(0, 0, 0, 0.08);\n --color-gray-alpha-500: rgba(0, 0, 0, 0.21);\n --color-gray-alpha-600: rgba(0, 0, 0, 0.34);\n --color-gray-alpha-700: rgba(0, 0, 0, 0.44);\n --color-gray-alpha-800: rgba(0, 0, 0, 0.51);\n --color-gray-alpha-900: rgba(0, 0, 0, 0.605);\n --color-gray-alpha-1000: rgba(0, 0, 0, 0.91);\n\n /* Blue Scale Light */\n --color-blue-100: #f0f7ff;\n --color-blue-200: #edf6ff;\n --color-blue-300: #e1f0ff;\n --color-blue-400: #cde7ff;\n --color-blue-500: #99ceff;\n --color-blue-600: #52aeff;\n --color-blue-700: #0070f3;\n --color-blue-800: #0060d1;\n --color-blue-900: #0067d6;\n --color-blue-1000: #0025ad;\n\n /* Red Scale Light */\n --color-red-100: #fff0f0;\n --color-red-200: #ffebeb;\n --color-red-300: #ffe5e5;\n --color-red-400: #fdd8d8;\n --color-red-500: #f8baba;\n --color-red-600: #f87274;\n --color-red-700: #e5484d;\n --color-red-800: #da3036;\n --color-red-900: #ca2a30;\n --color-red-1000: #381316;\n\n /* Amber Scale Light */\n --color-amber-100: #fff6e5;\n --color-amber-200: #fff4d5;\n --color-amber-300: #fef0cd;\n --color-amber-400: #ffddbf;\n --color-amber-500: #ffc96b;\n --color-amber-600: #f5b047;\n --color-amber-700: #ffb224;\n --color-amber-800: #ff990a;\n --color-amber-900: #a35200;\n --color-amber-1000: #4e2009;\n\n /* Green Scale Light */\n --color-green-100: #effbef;\n --color-green-200: #eafaea;\n --color-green-300: #dcf6dc;\n --color-green-400: #c8f1c9;\n --color-green-500: #99e59f;\n --color-green-600: #6cda76;\n --color-green-700: #46a758;\n --color-green-800: #388e4a;\n --color-green-900: #297c3b;\n --color-green-1000: #18311e;\n\n /* Turbopack Light - Temporary */\n --color-turbopack-text-red: #ff1e56;\n --color-turbopack-text-blue: #0096ff;\n --color-turbopack-border-red: #f0adbe;\n --color-turbopack-border-blue: #adccea;\n --color-turbopack-background-red: #fff7f9;\n --color-turbopack-background-blue: #f6fbff;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/styles/colors.css\"],names:[],mappings:\"AAAA;EACE;;;;;;;;;IASE;EACF,kBAAkB;EAClB,8CAA8C;EAC9C,oDAAoD;EACpD,iDAAiD;EACjD,2BAA2B;EAC3B,iDAAiD;EACjD,kBAAkB;EAClB,8CAA8C;EAC9C,yCAAyC;EACzC,sDAAsD;;EAEtD,qBAAqB;EACrB,mDAAmD;EACnD,4CAA4C;EAC5C,uCAAuC;;EAEvC,yCAAyC;EACzC,yCAAyC;EACzC,wCAAwC;EACxC,sCAAsC;EACtC,iDAAiD;EACjD,+CAA+C;EAC/C,+CAA+C;EAC/C,iDAAiD;EACjD,kDAAkD;EAClD,6CAA6C;EAC7C,kDAAkD;;EAElD,qBAAqB;EACrB,+BAA+B;EAC/B,+BAA+B;;EAE/B,iBAAiB;EACjB,+BAA+B;EAC/B,gCAAgC;EAChC,gCAAgC;EAChC,+BAA+B;EAC/B,4BAA4B;EAC5B,iCAAiC;EACjC,mCAAmC;EACnC,8BAA8B;EAC9B,yCAAyC;;EAEzC,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,0BAA0B;;EAE1B,2BAA2B;EAC3B,2CAA2C;EAC3C,4CAA4C;EAC5C,0CAA0C;EAC1C,2CAA2C;EAC3C,2CAA2C;EAC3C,2CAA2C;EAC3C,2CAA2C;EAC3C,2CAA2C;EAC3C,4CAA4C;EAC5C,4CAA4C;;EAE5C,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,0BAA0B;;EAE1B,oBAAoB;EACpB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,yBAAyB;;EAEzB,sBAAsB;EACtB,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,2BAA2B;;EAE3B,sBAAsB;EACtB,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,2BAA2B;;EAE3B,gCAAgC;EAChC,mCAAmC;EACnC,oCAAoC;EACpC,qCAAqC;EACrC,sCAAsC;EACtC,yCAAyC;EACzC,0CAA0C;AAC5C\",sourcesContent:[':host {\\n /* \\n * CAUTION: THIS IS A WORKAROUND!\\n * For now, we use @babel/code-frame to parse the code frame which does not support option to change the color.\\n * x-ref: https://github.com/babel/babel/blob/efa52324ff835b794c48080f14877b6caf32cd15/packages/babel-code-frame/src/defs.ts#L40-L54\\n * So, we do a workaround mapping to change the color matching the theme.\\n *\\n * For example, in @babel/code-frame, the \"keyword\" is mapped to ANSI \"cyan\".\\n * We want the \"keyword\" to use the \"syntax-keyword\" color in the theme.\\n * So, we map the \"cyan\" to the \"syntax-keyword\" in the theme.\\n */\\n /* cyan: keyword */\\n --color-ansi-cyan: var(--color-syntax-keyword);\\n /* yellow: capitalized, jsxIdentifier, punctuation */\\n --color-ansi-yellow: var(--color-syntax-function);\\n /* magenta: number, regex */\\n --color-ansi-magenta: var(--color-syntax-keyword);\\n /* green: string */\\n --color-ansi-green: var(--color-syntax-string);\\n /* gray (bright black): comment, gutter */\\n --color-ansi-bright-black: var(--color-syntax-comment);\\n\\n /* Ansi - Temporary */\\n --color-ansi-selection: var(--color-gray-alpha-300);\\n --color-ansi-bg: var(--color-background-200);\\n --color-ansi-fg: var(--color-gray-1000);\\n\\n --color-ansi-white: var(--color-gray-700);\\n --color-ansi-black: var(--color-gray-200);\\n --color-ansi-blue: var(--color-blue-700);\\n --color-ansi-red: var(--color-red-700);\\n --color-ansi-bright-white: var(--color-gray-1000);\\n --color-ansi-bright-blue: var(--color-blue-800);\\n --color-ansi-bright-cyan: var(--color-blue-800);\\n --color-ansi-bright-green: var(--color-green-800);\\n --color-ansi-bright-magenta: var(--color-blue-800);\\n --color-ansi-bright-red: var(--color-red-800);\\n --color-ansi-bright-yellow: var(--color-amber-900);\\n\\n /* Background Light */\\n --color-background-100: #ffffff;\\n --color-background-200: #fafafa;\\n\\n /* Syntax Light */\\n --color-syntax-comment: #545454;\\n --color-syntax-constant: #171717;\\n --color-syntax-function: #0054ad;\\n --color-syntax-keyword: #a51850;\\n --color-syntax-link: #066056;\\n --color-syntax-parameter: #8f3e00;\\n --color-syntax-punctuation: #171717;\\n --color-syntax-string: #036157;\\n --color-syntax-string-expression: #066056;\\n\\n /* Gray Scale Light */\\n --color-gray-100: #f2f2f2;\\n --color-gray-200: #ebebeb;\\n --color-gray-300: #e6e6e6;\\n --color-gray-400: #eaeaea;\\n --color-gray-500: #c9c9c9;\\n --color-gray-600: #a8a8a8;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #666666;\\n --color-gray-1000: #171717;\\n\\n /* Gray Alpha Scale Light */\\n --color-gray-alpha-100: rgba(0, 0, 0, 0.05);\\n --color-gray-alpha-200: rgba(0, 0, 0, 0.081);\\n --color-gray-alpha-300: rgba(0, 0, 0, 0.1);\\n --color-gray-alpha-400: rgba(0, 0, 0, 0.08);\\n --color-gray-alpha-500: rgba(0, 0, 0, 0.21);\\n --color-gray-alpha-600: rgba(0, 0, 0, 0.34);\\n --color-gray-alpha-700: rgba(0, 0, 0, 0.44);\\n --color-gray-alpha-800: rgba(0, 0, 0, 0.51);\\n --color-gray-alpha-900: rgba(0, 0, 0, 0.605);\\n --color-gray-alpha-1000: rgba(0, 0, 0, 0.91);\\n\\n /* Blue Scale Light */\\n --color-blue-100: #f0f7ff;\\n --color-blue-200: #edf6ff;\\n --color-blue-300: #e1f0ff;\\n --color-blue-400: #cde7ff;\\n --color-blue-500: #99ceff;\\n --color-blue-600: #52aeff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #0067d6;\\n --color-blue-1000: #0025ad;\\n\\n /* Red Scale Light */\\n --color-red-100: #fff0f0;\\n --color-red-200: #ffebeb;\\n --color-red-300: #ffe5e5;\\n --color-red-400: #fdd8d8;\\n --color-red-500: #f8baba;\\n --color-red-600: #f87274;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ca2a30;\\n --color-red-1000: #381316;\\n\\n /* Amber Scale Light */\\n --color-amber-100: #fff6e5;\\n --color-amber-200: #fff4d5;\\n --color-amber-300: #fef0cd;\\n --color-amber-400: #ffddbf;\\n --color-amber-500: #ffc96b;\\n --color-amber-600: #f5b047;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #a35200;\\n --color-amber-1000: #4e2009;\\n\\n /* Green Scale Light */\\n --color-green-100: #effbef;\\n --color-green-200: #eafaea;\\n --color-green-300: #dcf6dc;\\n --color-green-400: #c8f1c9;\\n --color-green-500: #99e59f;\\n --color-green-600: #6cda76;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #297c3b;\\n --color-green-1000: #18311e;\\n\\n /* Turbopack Light - Temporary */\\n --color-turbopack-text-red: #ff1e56;\\n --color-turbopack-text-blue: #0096ff;\\n --color-turbopack-border-red: #f0adbe;\\n --color-turbopack-border-blue: #adccea;\\n --color-turbopack-background-red: #fff7f9;\\n --color-turbopack-background-blue: #f6fbff;\\n}\\n'],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/dark-theme.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`:host(.dark) {\n --color-font: white;\n --color-backdrop: rgba(0, 0, 0, 0.8);\n --color-border-shadow: rgba(255, 255, 255, 0.145);\n\n --color-title-color: #fafafa;\n --color-stack-notes: #a9a9a9;\n\n /* Background Dark */\n --color-background-100: #0a0a0a;\n --color-background-200: #000000;\n\n /* Syntax Dark */\n --color-syntax-comment: #a0a0a0;\n --color-syntax-constant: #ededed;\n --color-syntax-function: #52a9ff;\n --color-syntax-keyword: #f76e99;\n --color-syntax-link: #0ac5b2;\n --color-syntax-parameter: #f1a10d;\n --color-syntax-punctuation: #ededed;\n --color-syntax-string: #0ac5b2;\n --color-syntax-string-expression: #0ac5b2;\n\n /* Gray Scale Dark */\n --color-gray-100: #1a1a1a;\n --color-gray-200: #1f1f1f;\n --color-gray-300: #292929;\n --color-gray-400: #2e2e2e;\n --color-gray-500: #454545;\n --color-gray-600: #878787;\n --color-gray-700: #8f8f8f;\n --color-gray-800: #7d7d7d;\n --color-gray-900: #a0a0a0;\n --color-gray-1000: #ededed;\n\n /* Gray Alpha Scale Dark */\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\n\n /* Blue Scale Dark */\n --color-blue-100: #0f1b2d;\n --color-blue-200: #10243e;\n --color-blue-300: #0f3058;\n --color-blue-400: #0d3868;\n --color-blue-500: #0a4481;\n --color-blue-600: #0091ff;\n --color-blue-700: #0070f3;\n --color-blue-800: #0060d1;\n --color-blue-900: #52a9ff;\n --color-blue-1000: #eaf6ff;\n\n /* Red Scale Dark */\n --color-red-100: #2a1314;\n --color-red-200: #3d1719;\n --color-red-300: #551a1e;\n --color-red-400: #671e22;\n --color-red-500: #822025;\n --color-red-600: #e5484d;\n --color-red-700: #e5484d;\n --color-red-800: #da3036;\n --color-red-900: #ff6369;\n --color-red-1000: #ffecee;\n\n /* Amber Scale Dark */\n --color-amber-100: #271700;\n --color-amber-200: #341c00;\n --color-amber-300: #4a2900;\n --color-amber-400: #573300;\n --color-amber-500: #693f05;\n --color-amber-600: #e79c13;\n --color-amber-700: #ffb224;\n --color-amber-800: #ff990a;\n --color-amber-900: #f1a10d;\n --color-amber-1000: #fef3dd;\n\n /* Green Scale Dark */\n --color-green-100: #0b2211;\n --color-green-200: #0f2c17;\n --color-green-300: #11351b;\n --color-green-400: #0c461b;\n --color-green-500: #126427;\n --color-green-600: #1a9338;\n --color-green-700: #46a758;\n --color-green-800: #388e4a;\n --color-green-900: #63c174;\n --color-green-1000: #e5fbeb;\n\n /* Turbopack Dark - Temporary */\n --color-turbopack-text-red: #ff6d92;\n --color-turbopack-text-blue: #45b2ff;\n --color-turbopack-border-red: #6e293b;\n --color-turbopack-border-blue: #284f80;\n --color-turbopack-background-red: #250d12;\n --color-turbopack-background-blue: #0a1723;\n}\n\n@media (prefers-color-scheme: dark) {\n :host(:not(.light)) {\n --color-font: white;\n --color-backdrop: rgba(0, 0, 0, 0.8);\n --color-border-shadow: rgba(255, 255, 255, 0.145);\n\n --color-title-color: #fafafa;\n --color-stack-notes: #a9a9a9;\n\n /* Background Dark */\n --color-background-100: #0a0a0a;\n --color-background-200: #000000;\n\n /* Syntax Dark */\n --color-syntax-comment: #a0a0a0;\n --color-syntax-constant: #ededed;\n --color-syntax-function: #52a9ff;\n --color-syntax-keyword: #f76e99;\n --color-syntax-link: #0ac5b2;\n --color-syntax-parameter: #f1a10d;\n --color-syntax-punctuation: #ededed;\n --color-syntax-string: #0ac5b2;\n --color-syntax-string-expression: #0ac5b2;\n\n /* Gray Scale Dark */\n --color-gray-100: #1a1a1a;\n --color-gray-200: #1f1f1f;\n --color-gray-300: #292929;\n --color-gray-400: #2e2e2e;\n --color-gray-500: #454545;\n --color-gray-600: #878787;\n --color-gray-700: #8f8f8f;\n --color-gray-800: #7d7d7d;\n --color-gray-900: #a0a0a0;\n --color-gray-1000: #ededed;\n\n /* Gray Alpha Scale Dark */\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\n\n /* Blue Scale Dark */\n --color-blue-100: #0f1b2d;\n --color-blue-200: #10243e;\n --color-blue-300: #0f3058;\n --color-blue-400: #0d3868;\n --color-blue-500: #0a4481;\n --color-blue-600: #0091ff;\n --color-blue-700: #0070f3;\n --color-blue-800: #0060d1;\n --color-blue-900: #52a9ff;\n --color-blue-1000: #eaf6ff;\n\n /* Red Scale Dark */\n --color-red-100: #2a1314;\n --color-red-200: #3d1719;\n --color-red-300: #551a1e;\n --color-red-400: #671e22;\n --color-red-500: #822025;\n --color-red-600: #e5484d;\n --color-red-700: #e5484d;\n --color-red-800: #da3036;\n --color-red-900: #ff6369;\n --color-red-1000: #ffecee;\n\n /* Amber Scale Dark */\n --color-amber-100: #271700;\n --color-amber-200: #341c00;\n --color-amber-300: #4a2900;\n --color-amber-400: #573300;\n --color-amber-500: #693f05;\n --color-amber-600: #e79c13;\n --color-amber-700: #ffb224;\n --color-amber-800: #ff990a;\n --color-amber-900: #f1a10d;\n --color-amber-1000: #fef3dd;\n\n /* Green Scale Dark */\n --color-green-100: #0b2211;\n --color-green-200: #0f2c17;\n --color-green-300: #11351b;\n --color-green-400: #0c461b;\n --color-green-500: #126427;\n --color-green-600: #1a9338;\n --color-green-700: #46a758;\n --color-green-800: #388e4a;\n --color-green-900: #63c174;\n --color-green-1000: #e5fbeb;\n\n /* Turbopack Dark - Temporary */\n --color-turbopack-text-red: #ff6d92;\n --color-turbopack-text-blue: #45b2ff;\n --color-turbopack-border-red: #6e293b;\n --color-turbopack-border-blue: #284f80;\n --color-turbopack-background-red: #250d12;\n --color-turbopack-background-blue: #0a1723;\n }\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/styles/dark-theme.css\"],names:[],mappings:\"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\",sourcesContent:[\":host(.dark) {\\n --color-font: white;\\n --color-backdrop: rgba(0, 0, 0, 0.8);\\n --color-border-shadow: rgba(255, 255, 255, 0.145);\\n\\n --color-title-color: #fafafa;\\n --color-stack-notes: #a9a9a9;\\n\\n /* Background Dark */\\n --color-background-100: #0a0a0a;\\n --color-background-200: #000000;\\n\\n /* Syntax Dark */\\n --color-syntax-comment: #a0a0a0;\\n --color-syntax-constant: #ededed;\\n --color-syntax-function: #52a9ff;\\n --color-syntax-keyword: #f76e99;\\n --color-syntax-link: #0ac5b2;\\n --color-syntax-parameter: #f1a10d;\\n --color-syntax-punctuation: #ededed;\\n --color-syntax-string: #0ac5b2;\\n --color-syntax-string-expression: #0ac5b2;\\n\\n /* Gray Scale Dark */\\n --color-gray-100: #1a1a1a;\\n --color-gray-200: #1f1f1f;\\n --color-gray-300: #292929;\\n --color-gray-400: #2e2e2e;\\n --color-gray-500: #454545;\\n --color-gray-600: #878787;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #a0a0a0;\\n --color-gray-1000: #ededed;\\n\\n /* Gray Alpha Scale Dark */\\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\\n\\n /* Blue Scale Dark */\\n --color-blue-100: #0f1b2d;\\n --color-blue-200: #10243e;\\n --color-blue-300: #0f3058;\\n --color-blue-400: #0d3868;\\n --color-blue-500: #0a4481;\\n --color-blue-600: #0091ff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #52a9ff;\\n --color-blue-1000: #eaf6ff;\\n\\n /* Red Scale Dark */\\n --color-red-100: #2a1314;\\n --color-red-200: #3d1719;\\n --color-red-300: #551a1e;\\n --color-red-400: #671e22;\\n --color-red-500: #822025;\\n --color-red-600: #e5484d;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ff6369;\\n --color-red-1000: #ffecee;\\n\\n /* Amber Scale Dark */\\n --color-amber-100: #271700;\\n --color-amber-200: #341c00;\\n --color-amber-300: #4a2900;\\n --color-amber-400: #573300;\\n --color-amber-500: #693f05;\\n --color-amber-600: #e79c13;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #f1a10d;\\n --color-amber-1000: #fef3dd;\\n\\n /* Green Scale Dark */\\n --color-green-100: #0b2211;\\n --color-green-200: #0f2c17;\\n --color-green-300: #11351b;\\n --color-green-400: #0c461b;\\n --color-green-500: #126427;\\n --color-green-600: #1a9338;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #63c174;\\n --color-green-1000: #e5fbeb;\\n\\n /* Turbopack Dark - Temporary */\\n --color-turbopack-text-red: #ff6d92;\\n --color-turbopack-text-blue: #45b2ff;\\n --color-turbopack-border-red: #6e293b;\\n --color-turbopack-border-blue: #284f80;\\n --color-turbopack-background-red: #250d12;\\n --color-turbopack-background-blue: #0a1723;\\n}\\n\\n@media (prefers-color-scheme: dark) {\\n :host(:not(.light)) {\\n --color-font: white;\\n --color-backdrop: rgba(0, 0, 0, 0.8);\\n --color-border-shadow: rgba(255, 255, 255, 0.145);\\n\\n --color-title-color: #fafafa;\\n --color-stack-notes: #a9a9a9;\\n\\n /* Background Dark */\\n --color-background-100: #0a0a0a;\\n --color-background-200: #000000;\\n\\n /* Syntax Dark */\\n --color-syntax-comment: #a0a0a0;\\n --color-syntax-constant: #ededed;\\n --color-syntax-function: #52a9ff;\\n --color-syntax-keyword: #f76e99;\\n --color-syntax-link: #0ac5b2;\\n --color-syntax-parameter: #f1a10d;\\n --color-syntax-punctuation: #ededed;\\n --color-syntax-string: #0ac5b2;\\n --color-syntax-string-expression: #0ac5b2;\\n\\n /* Gray Scale Dark */\\n --color-gray-100: #1a1a1a;\\n --color-gray-200: #1f1f1f;\\n --color-gray-300: #292929;\\n --color-gray-400: #2e2e2e;\\n --color-gray-500: #454545;\\n --color-gray-600: #878787;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #a0a0a0;\\n --color-gray-1000: #ededed;\\n\\n /* Gray Alpha Scale Dark */\\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\\n\\n /* Blue Scale Dark */\\n --color-blue-100: #0f1b2d;\\n --color-blue-200: #10243e;\\n --color-blue-300: #0f3058;\\n --color-blue-400: #0d3868;\\n --color-blue-500: #0a4481;\\n --color-blue-600: #0091ff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #52a9ff;\\n --color-blue-1000: #eaf6ff;\\n\\n /* Red Scale Dark */\\n --color-red-100: #2a1314;\\n --color-red-200: #3d1719;\\n --color-red-300: #551a1e;\\n --color-red-400: #671e22;\\n --color-red-500: #822025;\\n --color-red-600: #e5484d;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ff6369;\\n --color-red-1000: #ffecee;\\n\\n /* Amber Scale Dark */\\n --color-amber-100: #271700;\\n --color-amber-200: #341c00;\\n --color-amber-300: #4a2900;\\n --color-amber-400: #573300;\\n --color-amber-500: #693f05;\\n --color-amber-600: #e79c13;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #f1a10d;\\n --color-amber-1000: #fef3dd;\\n\\n /* Green Scale Dark */\\n --color-green-100: #0b2211;\\n --color-green-200: #0f2c17;\\n --color-green-300: #11351b;\\n --color-green-400: #0c461b;\\n --color-green-500: #126427;\\n --color-green-600: #1a9338;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #63c174;\\n --color-green-1000: #e5fbeb;\\n\\n /* Turbopack Dark - Temporary */\\n --color-turbopack-text-red: #ff6d92;\\n --color-turbopack-text-blue: #45b2ff;\\n --color-turbopack-border-red: #6e293b;\\n --color-turbopack-border-blue: #284f80;\\n --color-turbopack-background-red: #250d12;\\n --color-turbopack-background-blue: #0a1723;\\n }\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/default-theme.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`:host {\n /* \n * Although the style applied to the shadow host is isolated,\n * the element that attached the shadow host (i.e. \"nextjs-portal\")\n * is still affected by the parent's style (e.g. \"body\"). This may\n * occur style conflicts like \"display: flex\", with other children\n * elements therefore give the shadow host an absolute position.\n */\n position: absolute;\n\n --color-font: #757575;\n --color-backdrop: rgba(250, 250, 250, 0.8);\n --color-border-shadow: rgba(0, 0, 0, 0.145);\n\n --color-title-color: #1f1f1f;\n --color-stack-notes: #777;\n\n --color-accents-1: #808080;\n --color-accents-2: #222222;\n --color-accents-3: #404040;\n\n --font-stack-monospace: '__nextjs-Geist Mono', 'Geist Mono', 'SFMono-Regular',\n Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n --font-stack-sans: '__nextjs-Geist', 'Geist', -apple-system, 'Source Sans Pro',\n sans-serif;\n\n font-family: var(--font-stack-sans);\n font-variant-ligatures: none;\n\n /* TODO: Remove replaced ones. */\n --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --shadow-none: 0 0 #0000;\n\n --shadow-small: 0px 2px 2px rgba(0, 0, 0, 0.04);\n --shadow-menu: 0px 1px 1px rgba(0, 0, 0, 0.02),\n 0px 4px 8px -4px rgba(0, 0, 0, 0.04), 0px 16px 24px -8px rgba(0, 0, 0, 0.06);\n\n --focus-color: var(--color-blue-800);\n --focus-ring: 2px solid var(--focus-color);\n\n --timing-swift: cubic-bezier(0.23, 0.88, 0.26, 0.92);\n --timing-overlay: cubic-bezier(0.175, 0.885, 0.32, 1.1);\n /* prettier-ignore */\n --timing-bounce: linear(0 0%, 0.005871 1%, 0.022058 2%, 0.046612 3%, 0.077823 4%, 0.114199 5%, 0.154441 6%, 0.197431 7.000000000000001%, 0.242208 8%, 0.287959 9%, 0.333995 10%, 0.379743 11%, 0.424732 12%, 0.46858 13%, 0.510982 14.000000000000002%, 0.551702 15%, 0.590564 16%, 0.627445 17%, 0.662261 18%, 0.694971 19%, 0.725561 20%, 0.754047 21%, 0.780462 22%, 0.804861 23%, 0.82731 24%, 0.847888 25%, 0.866679 26%, 0.883775 27%, 0.899272 28.000000000000004%, 0.913267 28.999999999999996%, 0.925856 30%, 0.937137 31%, 0.947205 32%, 0.956153 33%, 0.96407 34%, 0.971043 35%, 0.977153 36%, 0.982479 37%, 0.987094 38%, 0.991066 39%, 0.994462 40%, 0.997339 41%, 0.999755 42%, 1.001761 43%, 1.003404 44%, 1.004727 45%, 1.00577 46%, 1.006569 47%, 1.007157 48%, 1.007563 49%, 1.007813 50%, 1.007931 51%, 1.007939 52%, 1.007855 53%, 1.007697 54%, 1.007477 55.00000000000001%, 1.00721 56.00000000000001%, 1.006907 56.99999999999999%, 1.006576 57.99999999999999%, 1.006228 59%, 1.005868 60%, 1.005503 61%, 1.005137 62%, 1.004776 63%, 1.004422 64%, 1.004078 65%, 1.003746 66%, 1.003429 67%, 1.003127 68%, 1.00284 69%, 1.002571 70%, 1.002318 71%, 1.002082 72%, 1.001863 73%, 1.00166 74%, 1.001473 75%, 1.001301 76%, 1.001143 77%, 1.001 78%, 1.000869 79%, 1.000752 80%, 1.000645 81%, 1.00055 82%, 1.000464 83%, 1.000388 84%, 1.000321 85%, 1.000261 86%, 1.000209 87%, 1.000163 88%, 1.000123 89%, 1.000088 90%);\n\n --rounded-none: 0px;\n --rounded-sm: 2px;\n --rounded-md: 4px;\n --rounded-md-2: 6px;\n --rounded-lg: 8px;\n --rounded-xl: 12px;\n --rounded-2xl: 16px;\n --rounded-3xl: 24px;\n --rounded-4xl: 32px;\n --rounded-full: 9999px;\n\n /* \n This value gets set from the Dev Tools preferences,\n and we use the following --size-* variables to \n scale the relevant elements.\n\n The reason why we don't rely on rem values is because\n if an app sets their root font size to something tiny, \n it feels unexpected to have the app root size leak \n into a Next.js surface.\n\n https://github.com/vercel/next.js/discussions/76812\n */\n --nextjs-dev-tools-scale: 1;\n --size-1: calc(1px / var(--nextjs-dev-tools-scale));\n --size-2: calc(2px / var(--nextjs-dev-tools-scale));\n --size-3: calc(3px / var(--nextjs-dev-tools-scale));\n --size-4: calc(4px / var(--nextjs-dev-tools-scale));\n --size-5: calc(5px / var(--nextjs-dev-tools-scale));\n --size-6: calc(6px / var(--nextjs-dev-tools-scale));\n --size-7: calc(7px / var(--nextjs-dev-tools-scale));\n --size-8: calc(8px / var(--nextjs-dev-tools-scale));\n --size-9: calc(9px / var(--nextjs-dev-tools-scale));\n --size-10: calc(10px / var(--nextjs-dev-tools-scale));\n --size-11: calc(11px / var(--nextjs-dev-tools-scale));\n --size-12: calc(12px / var(--nextjs-dev-tools-scale));\n --size-13: calc(13px / var(--nextjs-dev-tools-scale));\n --size-14: calc(14px / var(--nextjs-dev-tools-scale));\n --size-15: calc(15px / var(--nextjs-dev-tools-scale));\n --size-16: calc(16px / var(--nextjs-dev-tools-scale));\n --size-17: calc(17px / var(--nextjs-dev-tools-scale));\n --size-18: calc(18px / var(--nextjs-dev-tools-scale));\n --size-20: calc(20px / var(--nextjs-dev-tools-scale));\n --size-22: calc(22px / var(--nextjs-dev-tools-scale));\n --size-24: calc(24px / var(--nextjs-dev-tools-scale));\n --size-26: calc(26px / var(--nextjs-dev-tools-scale));\n --size-28: calc(28px / var(--nextjs-dev-tools-scale));\n --size-30: calc(30px / var(--nextjs-dev-tools-scale));\n --size-32: calc(32px / var(--nextjs-dev-tools-scale));\n --size-34: calc(34px / var(--nextjs-dev-tools-scale));\n --size-36: calc(36px / var(--nextjs-dev-tools-scale));\n --size-38: calc(38px / var(--nextjs-dev-tools-scale));\n --size-40: calc(40px / var(--nextjs-dev-tools-scale));\n --size-42: calc(42px / var(--nextjs-dev-tools-scale));\n --size-44: calc(44px / var(--nextjs-dev-tools-scale));\n --size-46: calc(46px / var(--nextjs-dev-tools-scale));\n --size-48: calc(48px / var(--nextjs-dev-tools-scale));\n\n @media print {\n display: none;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-bottom: 8px;\n font-weight: 500;\n line-height: 1.5;\n}\n\na {\n color: var(--color-blue-900);\n &:hover {\n color: var(--color-blue-900);\n }\n &:focus-visible {\n outline: var(--focus-ring);\n }\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/styles/default-theme.css\"],names:[],mappings:\"AAAA;EACE;;;;;;IAME;EACF,kBAAkB;;EAElB,qBAAqB;EACrB,0CAA0C;EAC1C,2CAA2C;;EAE3C,4BAA4B;EAC5B,yBAAyB;;EAEzB,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;;EAE1B;0DACwD;EACxD;cACY;;EAEZ,mCAAmC;EACnC,4BAA4B;;EAE5B,gCAAgC;EAChC,0CAA0C;EAC1C,uEAAuE;EACvE,6EAA6E;EAC7E;mCACiC;EACjC;oCACkC;EAClC,iDAAiD;EACjD,mDAAmD;EACnD,wBAAwB;;EAExB,+CAA+C;EAC/C;gFAC8E;;EAE9E,oCAAoC;EACpC,0CAA0C;;EAE1C,oDAAoD;EACpD,uDAAuD;EACvD,oBAAoB;EACpB,i3CAAi3C;;EAEj3C,mBAAmB;EACnB,iBAAiB;EACjB,iBAAiB;EACjB,mBAAmB;EACnB,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,sBAAsB;;EAEtB;;;;;;;;;;;GAWC;EACD,2BAA2B;EAC3B,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;;EAErD;IACE,aAAa;EACf;AACF;;AAEA;;;;;;EAME,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,4BAA4B;EAC5B;IACE,4BAA4B;EAC9B;EACA;IACE,0BAA0B;EAC5B;AACF\",sourcesContent:[\":host {\\n /* \\n * Although the style applied to the shadow host is isolated,\\n * the element that attached the shadow host (i.e. \\\"nextjs-portal\\\")\\n * is still affected by the parent's style (e.g. \\\"body\\\"). This may\\n * occur style conflicts like \\\"display: flex\\\", with other children\\n * elements therefore give the shadow host an absolute position.\\n */\\n position: absolute;\\n\\n --color-font: #757575;\\n --color-backdrop: rgba(250, 250, 250, 0.8);\\n --color-border-shadow: rgba(0, 0, 0, 0.145);\\n\\n --color-title-color: #1f1f1f;\\n --color-stack-notes: #777;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: '__nextjs-Geist Mono', 'Geist Mono', 'SFMono-Regular',\\n Consolas, 'Liberation Mono', Menlo, Courier, monospace;\\n --font-stack-sans: '__nextjs-Geist', 'Geist', -apple-system, 'Source Sans Pro',\\n sans-serif;\\n\\n font-family: var(--font-stack-sans);\\n font-variant-ligatures: none;\\n\\n /* TODO: Remove replaced ones. */\\n --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1),\\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),\\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\\n --shadow-none: 0 0 #0000;\\n\\n --shadow-small: 0px 2px 2px rgba(0, 0, 0, 0.04);\\n --shadow-menu: 0px 1px 1px rgba(0, 0, 0, 0.02),\\n 0px 4px 8px -4px rgba(0, 0, 0, 0.04), 0px 16px 24px -8px rgba(0, 0, 0, 0.06);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n --timing-swift: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --timing-overlay: cubic-bezier(0.175, 0.885, 0.32, 1.1);\\n /* prettier-ignore */\\n --timing-bounce: linear(0 0%, 0.005871 1%, 0.022058 2%, 0.046612 3%, 0.077823 4%, 0.114199 5%, 0.154441 6%, 0.197431 7.000000000000001%, 0.242208 8%, 0.287959 9%, 0.333995 10%, 0.379743 11%, 0.424732 12%, 0.46858 13%, 0.510982 14.000000000000002%, 0.551702 15%, 0.590564 16%, 0.627445 17%, 0.662261 18%, 0.694971 19%, 0.725561 20%, 0.754047 21%, 0.780462 22%, 0.804861 23%, 0.82731 24%, 0.847888 25%, 0.866679 26%, 0.883775 27%, 0.899272 28.000000000000004%, 0.913267 28.999999999999996%, 0.925856 30%, 0.937137 31%, 0.947205 32%, 0.956153 33%, 0.96407 34%, 0.971043 35%, 0.977153 36%, 0.982479 37%, 0.987094 38%, 0.991066 39%, 0.994462 40%, 0.997339 41%, 0.999755 42%, 1.001761 43%, 1.003404 44%, 1.004727 45%, 1.00577 46%, 1.006569 47%, 1.007157 48%, 1.007563 49%, 1.007813 50%, 1.007931 51%, 1.007939 52%, 1.007855 53%, 1.007697 54%, 1.007477 55.00000000000001%, 1.00721 56.00000000000001%, 1.006907 56.99999999999999%, 1.006576 57.99999999999999%, 1.006228 59%, 1.005868 60%, 1.005503 61%, 1.005137 62%, 1.004776 63%, 1.004422 64%, 1.004078 65%, 1.003746 66%, 1.003429 67%, 1.003127 68%, 1.00284 69%, 1.002571 70%, 1.002318 71%, 1.002082 72%, 1.001863 73%, 1.00166 74%, 1.001473 75%, 1.001301 76%, 1.001143 77%, 1.001 78%, 1.000869 79%, 1.000752 80%, 1.000645 81%, 1.00055 82%, 1.000464 83%, 1.000388 84%, 1.000321 85%, 1.000261 86%, 1.000209 87%, 1.000163 88%, 1.000123 89%, 1.000088 90%);\\n\\n --rounded-none: 0px;\\n --rounded-sm: 2px;\\n --rounded-md: 4px;\\n --rounded-md-2: 6px;\\n --rounded-lg: 8px;\\n --rounded-xl: 12px;\\n --rounded-2xl: 16px;\\n --rounded-3xl: 24px;\\n --rounded-4xl: 32px;\\n --rounded-full: 9999px;\\n\\n /* \\n This value gets set from the Dev Tools preferences,\\n and we use the following --size-* variables to \\n scale the relevant elements.\\n\\n The reason why we don't rely on rem values is because\\n if an app sets their root font size to something tiny, \\n it feels unexpected to have the app root size leak \\n into a Next.js surface.\\n\\n https://github.com/vercel/next.js/discussions/76812\\n */\\n --nextjs-dev-tools-scale: 1;\\n --size-1: calc(1px / var(--nextjs-dev-tools-scale));\\n --size-2: calc(2px / var(--nextjs-dev-tools-scale));\\n --size-3: calc(3px / var(--nextjs-dev-tools-scale));\\n --size-4: calc(4px / var(--nextjs-dev-tools-scale));\\n --size-5: calc(5px / var(--nextjs-dev-tools-scale));\\n --size-6: calc(6px / var(--nextjs-dev-tools-scale));\\n --size-7: calc(7px / var(--nextjs-dev-tools-scale));\\n --size-8: calc(8px / var(--nextjs-dev-tools-scale));\\n --size-9: calc(9px / var(--nextjs-dev-tools-scale));\\n --size-10: calc(10px / var(--nextjs-dev-tools-scale));\\n --size-11: calc(11px / var(--nextjs-dev-tools-scale));\\n --size-12: calc(12px / var(--nextjs-dev-tools-scale));\\n --size-13: calc(13px / var(--nextjs-dev-tools-scale));\\n --size-14: calc(14px / var(--nextjs-dev-tools-scale));\\n --size-15: calc(15px / var(--nextjs-dev-tools-scale));\\n --size-16: calc(16px / var(--nextjs-dev-tools-scale));\\n --size-17: calc(17px / var(--nextjs-dev-tools-scale));\\n --size-18: calc(18px / var(--nextjs-dev-tools-scale));\\n --size-20: calc(20px / var(--nextjs-dev-tools-scale));\\n --size-22: calc(22px / var(--nextjs-dev-tools-scale));\\n --size-24: calc(24px / var(--nextjs-dev-tools-scale));\\n --size-26: calc(26px / var(--nextjs-dev-tools-scale));\\n --size-28: calc(28px / var(--nextjs-dev-tools-scale));\\n --size-30: calc(30px / var(--nextjs-dev-tools-scale));\\n --size-32: calc(32px / var(--nextjs-dev-tools-scale));\\n --size-34: calc(34px / var(--nextjs-dev-tools-scale));\\n --size-36: calc(36px / var(--nextjs-dev-tools-scale));\\n --size-38: calc(38px / var(--nextjs-dev-tools-scale));\\n --size-40: calc(40px / var(--nextjs-dev-tools-scale));\\n --size-42: calc(42px / var(--nextjs-dev-tools-scale));\\n --size-44: calc(44px / var(--nextjs-dev-tools-scale));\\n --size-46: calc(46px / var(--nextjs-dev-tools-scale));\\n --size-48: calc(48px / var(--nextjs-dev-tools-scale));\\n\\n @media print {\\n display: none;\\n }\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n margin-bottom: 8px;\\n font-weight: 500;\\n line-height: 1.5;\\n}\\n\\na {\\n color: var(--color-blue-900);\\n &:hover {\\n color: var(--color-blue-900);\\n }\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\":function(e){\"use strict\";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=\"\",r=void 0!==t[5];return t[4]&&(n+=\"@supports (\".concat(t[4],\") {\")),t[2]&&(n+=\"@media \".concat(t[2],\" {\")),r&&(n+=\"@layer\".concat(t[5].length>0?\" \".concat(t[5]):\"\",\" {\")),n+=e(t),r&&(n+=\"}\"),t[2]&&(n+=\"}\"),t[4]&&(n+=\"}\"),n}).join(\"\")},t.i=function(e,n,r,o,a){\"string\"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(i[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&i[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]=\"@layer\".concat(u[5].length>0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=a),n&&(u[2]&&(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\")),u[2]=n),o&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=o):u[4]=\"\".concat(o)),t.push(u))}},t}},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\":function(e){\"use strict\";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if(\"function\"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n))));return[t].concat([\"/*# \".concat(\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),\" */\")]).join(\"\\n\")}return[t].join(\"\\n\")}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\":function(e){\"use strict\";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var o={},a=[],i=0;i<e.length;i++){var l=e[i],s=r.base?l[0]+r.base:l[0],c=o[s]||0,u=\"\".concat(s,\" \").concat(c);o[s]=c+1;var d=n(u),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)t[d].references++,t[d].updater(f);else{var p=function(e,t){var n=t.domAPI(t);return n.update(e),function(t){t?(t.css!==e.css||t.media!==e.media||t.sourceMap!==e.sourceMap||t.supports!==e.supports||t.layer!==e.layer)&&n.update(e=t):n.remove()}}(f,r);r.byIndex=i,t.splice(i,0,{identifier:u,updater:p,references:1})}a.push(u)}return a}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var l=n(a[i]);t[l].references--}for(var s=r(e,o),c=0;c<a.length;c++){var u=n(a[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}a=s}}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\":function(e){\"use strict\";e.exports=function(e){var t=document.createElement(\"style\");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\":function(e,t,n){\"use strict\";e.exports=function(e){var t=n.nc;t&&e.setAttribute(\"nonce\",t)}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\":function(e){\"use strict\";e.exports=function(e){if(\"undefined\"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){var r,o,a;r=\"\",n.supports&&(r+=\"@supports (\".concat(n.supports,\") {\")),n.media&&(r+=\"@media \".concat(n.media,\" {\")),(o=void 0!==n.layer)&&(r+=\"@layer\".concat(n.layer.length>0?\" \".concat(n.layer):\"\",\" {\")),r+=n.css,o&&(r+=\"}\"),n.media&&(r+=\"}\"),n.supports&&(r+=\"}\"),(a=n.sourceMap)&&\"undefined\"!=typeof btoa&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a)))),\" */\")),e.styleTagTransform(r,t,e.options)},remove:function(){!function(e){if(null!==e.parentNode)e.parentNode.removeChild(e)}(t)}}}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\":function(e){\"use strict\";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},\"./dist/compiled/anser/index.js\":function(e){(()=>{\"use strict\";var t={211:e=>{var t=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),n=[[{color:\"0, 0, 0\",class:\"ansi-black\"},{color:\"187, 0, 0\",class:\"ansi-red\"},{color:\"0, 187, 0\",class:\"ansi-green\"},{color:\"187, 187, 0\",class:\"ansi-yellow\"},{color:\"0, 0, 187\",class:\"ansi-blue\"},{color:\"187, 0, 187\",class:\"ansi-magenta\"},{color:\"0, 187, 187\",class:\"ansi-cyan\"},{color:\"255,255,255\",class:\"ansi-white\"}],[{color:\"85, 85, 85\",class:\"ansi-bright-black\"},{color:\"255, 85, 85\",class:\"ansi-bright-red\"},{color:\"0, 255, 0\",class:\"ansi-bright-green\"},{color:\"255, 255, 85\",class:\"ansi-bright-yellow\"},{color:\"85, 85, 255\",class:\"ansi-bright-blue\"},{color:\"255, 85, 255\",class:\"ansi-bright-magenta\"},{color:\"85, 255, 255\",class:\"ansi-bright-cyan\"},{color:\"255, 255, 255\",class:\"ansi-bright-white\"}]];e.exports=function(){function e(){if(!(this instanceof e))throw TypeError(\"Cannot call a class as a function\");this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0}return t(e,null,[{key:\"escapeForHtml\",value:function(t){return(new e).escapeForHtml(t)}},{key:\"linkify\",value:function(t){return(new e).linkify(t)}},{key:\"ansiToHtml\",value:function(t,n){return(new e).ansiToHtml(t,n)}},{key:\"ansiToJson\",value:function(t,n){return(new e).ansiToJson(t,n)}},{key:\"ansiToText\",value:function(t){return(new e).ansiToText(t)}}]),t(e,[{key:\"setupPalette\",value:function(){this.PALETTE_COLORS=[];for(var e=0;e<2;++e)for(var t=0;t<8;++t)this.PALETTE_COLORS.push(n[e][t].color);for(var r=[0,95,135,175,215,255],o=function(e,t,n){return r[e]+\", \"+r[t]+\", \"+r[n]},a=0;a<6;++a)for(var i=0;i<6;++i)for(var l=0;l<6;++l)this.PALETTE_COLORS.push(o(a,i,l));for(var s=8,c=0;c<24;++c,s+=10)this.PALETTE_COLORS.push(o(s,s,s))}},{key:\"escapeForHtml\",value:function(e){return e.replace(/[&<>]/gm,function(e){return\"&\"==e?\"&\":\"<\"==e?\"<\":\">\"==e?\">\":\"\"})}},{key:\"linkify\",value:function(e){return e.replace(/(https?:\\/\\/[^\\s]+)/gm,function(e){return'<a href=\"'+e+'\">'+e+\"</a>\"})}},{key:\"ansiToHtml\",value:function(e,t){return this.process(e,t,!0)}},{key:\"ansiToJson\",value:function(e,t){return(t=t||{}).json=!0,t.clearLine=!1,this.process(e,t,!0)}},{key:\"ansiToText\",value:function(e){return this.process(e,{},!1)}},{key:\"process\",value:function(e,t,n){var r=this,o=e.split(/\\033\\[/),a=o.shift();null==t&&(t={}),t.clearLine=/\\r/.test(e);var i=o.map(function(e){return r.processChunk(e,t,n)});if(t&&t.json){var l=this.processChunkJson(\"\");return l.content=a,l.clearLine=t.clearLine,i.unshift(l),t.remove_empty&&(i=i.filter(function(e){return!e.isEmpty()})),i}return i.unshift(a),i.join(\"\")}},{key:\"processChunkJson\",value:function(e,t,r){var o=(t=void 0===t?{}:t).use_classes=void 0!==t.use_classes&&t.use_classes,a=t.key=o?\"class\":\"color\",i={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,clearLine:t.clearLine,decoration:null,was_processed:!1,isEmpty:function(){return!i.content}},l=e.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);if(!l)return i;i.content=l[4];var s=l[2].split(\";\");if(\"\"!==l[1]||\"m\"!==l[3]||!r)return i;for(this.decoration=null;s.length>0;){var c=parseInt(s.shift());if(isNaN(c)||0===c)this.fg=this.bg=this.decoration=null;else if(1===c)this.decoration=\"bold\";else if(2===c)this.decoration=\"dim\";else if(3==c)this.decoration=\"italic\";else if(4==c)this.decoration=\"underline\";else if(5==c)this.decoration=\"blink\";else if(7===c)this.decoration=\"reverse\";else if(8===c)this.decoration=\"hidden\";else if(9===c)this.decoration=\"strikethrough\";else if(39==c)this.fg=null;else if(49==c)this.bg=null;else if(c>=30&&c<38)this.fg=n[0][c%10][a];else if(c>=90&&c<98)this.fg=n[1][c%10][a];else if(c>=40&&c<48)this.bg=n[0][c%10][a];else if(c>=100&&c<108)this.bg=n[1][c%10][a];else if(38===c||48===c){var u=38===c;if(s.length>=1){var d=s.shift();if(\"5\"===d&&s.length>=1){var f=parseInt(s.shift());if(f>=0&&f<=255)if(o){var p=f>=16?\"ansi-palette-\"+f:n[+(f>7)][f%8].class;u?this.fg=p:this.bg=p}else this.PALETTE_COLORS||this.setupPalette(),u?this.fg=this.PALETTE_COLORS[f]:this.bg=this.PALETTE_COLORS[f]}else if(\"2\"===d&&s.length>=3){var h=parseInt(s.shift()),m=parseInt(s.shift()),g=parseInt(s.shift());if(h>=0&&h<=255&&m>=0&&m<=255&&g>=0&&g<=255){var y=h+\", \"+m+\", \"+g;o?u?(this.fg=\"ansi-truecolor\",this.fg_truecolor=y):(this.bg=\"ansi-truecolor\",this.bg_truecolor=y):u?this.fg=y:this.bg=y}}}}}return null===this.fg&&null===this.bg&&null===this.decoration||(i.fg=this.fg,i.bg=this.bg,i.fg_truecolor=this.fg_truecolor,i.bg_truecolor=this.bg_truecolor,i.decoration=this.decoration,i.was_processed=!0),i}},{key:\"processChunk\",value:function(e,t,n){var r=this;t=t||{};var o=this.processChunkJson(e,t,n);if(t.json)return o;if(o.isEmpty())return\"\";if(!o.was_processed)return o.content;var a=t.use_classes,i=[],l=[],s={},c=function(e){var t=[],n=void 0;for(n in e)e.hasOwnProperty(n)&&t.push(\"data-\"+n+'=\"'+r.escapeForHtml(e[n])+'\"');return t.length>0?\" \"+t.join(\" \"):\"\"};return(o.fg&&(a?(l.push(o.fg+\"-fg\"),null!==o.fg_truecolor&&(s[\"ansi-truecolor-fg\"]=o.fg_truecolor,o.fg_truecolor=null)):i.push(\"color:rgb(\"+o.fg+\")\")),o.bg&&(a?(l.push(o.bg+\"-bg\"),null!==o.bg_truecolor&&(s[\"ansi-truecolor-bg\"]=o.bg_truecolor,o.bg_truecolor=null)):i.push(\"background-color:rgb(\"+o.bg+\")\")),o.decoration&&(a?l.push(\"ansi-\"+o.decoration):\"bold\"===o.decoration?i.push(\"font-weight:bold\"):\"dim\"===o.decoration?i.push(\"opacity:0.5\"):\"italic\"===o.decoration?i.push(\"font-style:italic\"):\"reverse\"===o.decoration?i.push(\"filter:invert(100%)\"):\"hidden\"===o.decoration?i.push(\"visibility:hidden\"):\"strikethrough\"===o.decoration?i.push(\"text-decoration:line-through\"):i.push(\"text-decoration:\"+o.decoration)),a)?'<span class=\"'+l.join(\" \")+'\"'+c(s)+\">\"+o.content+\"</span>\":'<span style=\"'+i.join(\";\")+'\"'+c(s)+\">\"+o.content+\"</span>\"}}]),e}()}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}},i=!0;try{t[e](a,a.exports,r),i=!1}finally{i&&delete n[e]}return a.exports}r.ab=\"//\",e.exports=r(211)})()},\"./dist/compiled/react-dom/cjs/react-dom-client.production.js\":function(e,t,n){\"use strict\";var r,o=n(\"./dist/compiled/scheduler/index.js\"),a=n(\"./dist/compiled/react/index.js\"),i=n(\"./dist/compiled/react-dom/index.js\");function l(e){var t=\"https://react.dev/errors/\"+e;if(1<arguments.length){t+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=\"&args[]=\"+encodeURIComponent(arguments[n])}return\"Minified React error #\"+e+\"; visit \"+t+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do 0!=(4098&(t=e).flags)&&(n=t.return),e=t.return;while(e)}return 3===t.tag?n:null}function c(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function u(e){if(31===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function d(e){if(s(e)!==e)throw Error(l(188))}var f=Object.assign,p=Symbol.for(\"react.element\"),h=Symbol.for(\"react.transitional.element\"),m=Symbol.for(\"react.portal\"),g=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),v=Symbol.for(\"react.profiler\"),b=Symbol.for(\"react.consumer\"),A=Symbol.for(\"react.context\"),x=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),C=Symbol.for(\"react.suspense_list\"),_=Symbol.for(\"react.memo\"),k=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");var E=Symbol.for(\"react.activity\");Symbol.for(\"react.legacy_hidden\"),Symbol.for(\"react.tracing_marker\");var j=Symbol.for(\"react.memo_cache_sentinel\");Symbol.for(\"react.view_transition\");var S=Symbol.iterator;function O(e){return null===e||\"object\"!=typeof e?null:\"function\"==typeof(e=S&&e[S]||e[\"@@iterator\"])?e:null}var B=Symbol.for(\"react.client.reference\"),P=Array.isArray,I=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z={pending:!1,data:null,method:null,action:null},D=[],L=-1;function N(e){return{current:e}}function R(e){0>L||(e.current=D[L],D[L]=null,L--)}function M(e,t){D[++L]=e.current,e.current=t}var Z=N(null),U=N(null),F=N(null),q=N(null);function H(e,t){switch(M(F,t),M(U,e),M(Z,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?ch(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=cm(t=ch(t),e);else switch(e){case\"svg\":e=1;break;case\"math\":e=2;break;default:e=0}}R(Z),M(Z,e)}function V(){R(Z),R(U),R(F)}function $(e){null!==e.memoizedState&&M(q,e);var t=Z.current,n=cm(t,e.type);t!==n&&(M(U,e),M(Z,n))}function W(e){U.current===e&&(R(Z),R(U)),q.current===e&&(R(q),c9._currentValue=z)}function Y(e){if(void 0===tL)try{throw Error()}catch(e){var t=e.stack.trim().match(/\\n( *(at )?)/);tL=t&&t[1]||\"\",tN=-1<e.stack.indexOf(\"\\n at\")?\" (<anonymous>)\":-1<e.stack.indexOf(\"@\")?\"@unknown:0:0\":\"\"}return\"\\n\"+tL+e+tN}var K=!1;function X(e,t){if(!e||K)return\"\";K=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,\"props\",{set:function(){throw Error()}}),\"object\"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&\"function\"==typeof n.catch&&n.catch(function(){})}}catch(e){if(e&&r&&\"string\"==typeof e.stack)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=\"DetermineComponentFrameRoot\";var o=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,\"name\");o&&o.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,\"name\",{value:\"DetermineComponentFrameRoot\"});var a=r.DetermineComponentFrameRoot(),i=a[0],l=a[1];if(i&&l){var s=i.split(\"\\n\"),c=l.split(\"\\n\");for(o=r=0;r<s.length&&!s[r].includes(\"DetermineComponentFrameRoot\");)r++;for(;o<c.length&&!c[o].includes(\"DetermineComponentFrameRoot\");)o++;if(r===s.length||o===c.length)for(r=s.length-1,o=c.length-1;1<=r&&0<=o&&s[r]!==c[o];)o--;for(;1<=r&&0<=o;r--,o--)if(s[r]!==c[o]){if(1!==r||1!==o)do if(r--,o--,0>o||s[r]!==c[o]){var u=\"\\n\"+s[r].replace(\" at new \",\" at \");return e.displayName&&u.includes(\"<anonymous>\")&&(u=u.replace(\"<anonymous>\",e.displayName)),u}while(1<=r&&0<=o);break}}}finally{K=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:\"\")?Y(n):\"\"}function G(e){try{var t=\"\",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return Y(e.type);case 16:return Y(\"Lazy\");case 13:return e.child!==t&&null!==t?Y(\"Suspense Fallback\"):Y(\"Suspense\");case 19:return Y(\"SuspenseList\");case 0:case 15:return X(e.type,!1);case 11:return X(e.type.render,!1);case 1:return X(e.type,!0);case 31:return Y(\"Activity\");default:return\"\"}}(e,n),n=e,e=e.return;while(e);return t}catch(e){return\"\\nError generating stack: \"+e.message+\"\\n\"+e.stack}}var Q=Object.prototype.hasOwnProperty,J=o.unstable_scheduleCallback,ee=o.unstable_cancelCallback,et=o.unstable_shouldYield,en=o.unstable_requestPaint,er=o.unstable_now,eo=o.unstable_getCurrentPriorityLevel,ea=o.unstable_ImmediatePriority,ei=o.unstable_UserBlockingPriority,el=o.unstable_NormalPriority,es=o.unstable_LowPriority,ec=o.unstable_IdlePriority,eu=o.log,ed=o.unstable_setDisableYieldValue,ef=null,ep=null;function eh(e){if(\"function\"==typeof eu&&ed(e),ep&&\"function\"==typeof ep.setStrictMode)try{ep.setStrictMode(ef,e)}catch(e){}}var em=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(eg(e)/ey|0)|0},eg=Math.log,ey=Math.LN2,ev=256,eb=4194304;function eA(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function ex(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var o=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~a)?o=eA(r):0!=(i&=l)?o=eA(i):n||0!=(n=l&~e)&&(o=eA(n)):0!=(l=r&~a)?o=eA(l):0!==i?o=eA(i):n||0!=(n=r&~e)&&(o=eA(n)),0===o?0:0!==t&&t!==o&&0==(t&a)&&((a=o&-o)>=(n=t&-t)||32===a&&0!=(4194048&n))?t:o}function ew(e,t){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function eC(){var e=ev;return 0==(4194048&(ev<<=1))&&(ev=256),e}function e_(){var e=eb;return 0==(0x3c00000&(eb<<=1))&&(eb=4194304),e}function ek(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function eE(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ej(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-em(t);e.entangledLanes|=t,e.entanglements[r]=0x40000000|e.entanglements[r]|4194090&n}function eS(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-em(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}function eO(e,t){var n=t&-t;return 0!=((n=0!=(42&n)?1:eB(n))&(e.suspendedLanes|t))?0:n}function eB(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:e=128;break;case 0x10000000:e=0x8000000;break;default:e=0}return e}function eP(e){return 2<(e&=-e)?8<e?0!=(0x7ffffff&e)?32:0x10000000:8:2}function eI(){var e=T.p;return 0!==e?e:void 0===(e=window.event)?32:ud(e.type)}function eT(e,t){var n=T.p;try{return T.p=e,t()}finally{T.p=n}}var ez=Math.random().toString(36).slice(2),eD=\"__reactFiber$\"+ez,eL=\"__reactProps$\"+ez,eN=\"__reactContainer$\"+ez,eR=\"__reactEvents$\"+ez,eM=\"__reactListeners$\"+ez,eZ=\"__reactHandles$\"+ez,eU=\"__reactResources$\"+ez,eF=\"__reactMarker$\"+ez;function eq(e){delete e[eD],delete e[eL],delete e[eR],delete e[eM],delete e[eZ]}function eH(e){var t=e[eD];if(t)return t;for(var n=e.parentNode;n;){if(t=n[eN]||n[eD]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=cT(e);null!==e;){if(n=e[eD])return n;e=cT(e)}return t}n=(e=n).parentNode}return null}function eV(e){if(e=e[eD]||e[eN]){var t=e.tag;if(5===t||6===t||13===t||31===t||26===t||27===t||3===t)return e}return null}function e$(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(l(33))}function eW(e){var t=e[eU];return t||(t=e[eU]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function eY(e){e[eF]=!0}var eK=new Set,eX={};function eG(e,t){eQ(e,t),eQ(e+\"Capture\",t)}function eQ(e,t){for(eX[e]=t,e=0;e<t.length;e++)eK.add(t[e])}var eJ=RegExp(\"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"),e0={},e1={};function e2(e,t,n){if(Q.call(e1,t)||!Q.call(e0,t)&&(eJ.test(t)?e1[t]=!0:(e0[t]=!0,!1)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case\"undefined\":case\"function\":case\"symbol\":e.removeAttribute(t);return;case\"boolean\":var r=t.toLowerCase().slice(0,5);if(\"data-\"!==r&&\"aria-\"!==r)return void e.removeAttribute(t)}e.setAttribute(t,\"\"+n)}}function e4(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":e.removeAttribute(t);return}e.setAttribute(t,\"\"+n)}}function e5(e,t,n,r){if(null===r)e.removeAttribute(n);else{switch(typeof r){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":e.removeAttribute(n);return}e.setAttributeNS(t,n,\"\"+r)}}function e3(e){switch(typeof e){case\"bigint\":case\"boolean\":case\"number\":case\"string\":case\"undefined\":case\"object\":return e;default:return\"\"}}function e6(e){var t=e.type;return(e=e.nodeName)&&\"input\"===e.toLowerCase()&&(\"checkbox\"===t||\"radio\"===t)}function e9(e){if(!e._valueTracker){var t=e6(e)?\"checked\":\"value\";e._valueTracker=function(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&void 0!==r&&\"function\"==typeof r.get&&\"function\"==typeof r.set){var o=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){n=\"\"+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=\"\"+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e,t,\"\"+e[t])}}function e8(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=\"\";return e&&(r=e6(e)?e.checked?\"true\":\"false\":e.value),(e=r)!==n&&(t.setValue(e),!0)}function e7(e){if(void 0===(e=e||(\"undefined\"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var te=/[\\n\"\\\\]/g;function tt(e){return e.replace(te,function(e){return\"\\\\\"+e.charCodeAt(0).toString(16)+\" \"})}function tn(e,t,n,r,o,a,i,l){e.name=\"\",null!=i&&\"function\"!=typeof i&&\"symbol\"!=typeof i&&\"boolean\"!=typeof i?e.type=i:e.removeAttribute(\"type\"),null!=t?\"number\"===i?(0===t&&\"\"===e.value||e.value!=t)&&(e.value=\"\"+e3(t)):e.value!==\"\"+e3(t)&&(e.value=\"\"+e3(t)):\"submit\"!==i&&\"reset\"!==i||e.removeAttribute(\"value\"),null!=t?to(e,i,e3(t)):null!=n?to(e,i,e3(n)):null!=r&&e.removeAttribute(\"value\"),null==o&&null!=a&&(e.defaultChecked=!!a),null!=o&&(e.checked=o&&\"function\"!=typeof o&&\"symbol\"!=typeof o),null!=l&&\"function\"!=typeof l&&\"symbol\"!=typeof l&&\"boolean\"!=typeof l?e.name=\"\"+e3(l):e.removeAttribute(\"name\")}function tr(e,t,n,r,o,a,i,l){if(null!=a&&\"function\"!=typeof a&&\"symbol\"!=typeof a&&\"boolean\"!=typeof a&&(e.type=a),null!=t||null!=n){if((\"submit\"===a||\"reset\"===a)&&null==t)return void e9(e);n=null!=n?\"\"+e3(n):\"\",t=null!=t?\"\"+e3(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r=\"function\"!=typeof(r=null!=r?r:o)&&\"symbol\"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&\"function\"!=typeof i&&\"symbol\"!=typeof i&&\"boolean\"!=typeof i&&(e.name=i),e9(e)}function to(e,t,n){\"number\"===t&&e7(e.ownerDocument)===e||e.defaultValue===\"\"+n||(e.defaultValue=\"\"+n)}function ta(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t[\"$\"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty(\"$\"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(o=0,n=\"\"+e3(n),t=null;o<e.length;o++){if(e[o].value===n){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function ti(e,t,n){if(null!=t&&((t=\"\"+e3(t))!==e.value&&(e.value=t),null==n)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=null!=n?\"\"+e3(n):\"\"}function tl(e,t,n,r){if(null==t){if(null!=r){if(null!=n)throw Error(l(92));if(P(r)){if(1<r.length)throw Error(l(93));r=r[0]}n=r}null==n&&(n=\"\"),t=n}e.defaultValue=n=e3(t),(r=e.textContent)===n&&\"\"!==r&&null!==r&&(e.value=r),e9(e)}function ts(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType){n.nodeValue=t;return}}e.textContent=t}var tc=new Set(\"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\" \"));function tu(e,t,n){var r=0===t.indexOf(\"--\");null==n||\"boolean\"==typeof n||\"\"===n?r?e.setProperty(t,\"\"):\"float\"===t?e.cssFloat=\"\":e[t]=\"\":r?e.setProperty(t,n):\"number\"!=typeof n||0===n||tc.has(t)?\"float\"===t?e.cssFloat=n:e[t]=(\"\"+n).trim():e[t]=n+\"px\"}function td(e,t,n){if(null!=t&&\"object\"!=typeof t)throw Error(l(62));if(e=e.style,null!=n){for(var r in n)!n.hasOwnProperty(r)||null!=t&&t.hasOwnProperty(r)||(0===r.indexOf(\"--\")?e.setProperty(r,\"\"):\"float\"===r?e.cssFloat=\"\":e[r]=\"\");for(var o in t)r=t[o],t.hasOwnProperty(o)&&n[o]!==r&&tu(e,o,r)}else for(var a in t)t.hasOwnProperty(a)&&tu(e,a,t[a])}function tf(e){if(-1===e.indexOf(\"-\"))return!1;switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var tp=new Map([[\"acceptCharset\",\"accept-charset\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"],[\"crossOrigin\",\"crossorigin\"],[\"accentHeight\",\"accent-height\"],[\"alignmentBaseline\",\"alignment-baseline\"],[\"arabicForm\",\"arabic-form\"],[\"baselineShift\",\"baseline-shift\"],[\"capHeight\",\"cap-height\"],[\"clipPath\",\"clip-path\"],[\"clipRule\",\"clip-rule\"],[\"colorInterpolation\",\"color-interpolation\"],[\"colorInterpolationFilters\",\"color-interpolation-filters\"],[\"colorProfile\",\"color-profile\"],[\"colorRendering\",\"color-rendering\"],[\"dominantBaseline\",\"dominant-baseline\"],[\"enableBackground\",\"enable-background\"],[\"fillOpacity\",\"fill-opacity\"],[\"fillRule\",\"fill-rule\"],[\"floodColor\",\"flood-color\"],[\"floodOpacity\",\"flood-opacity\"],[\"fontFamily\",\"font-family\"],[\"fontSize\",\"font-size\"],[\"fontSizeAdjust\",\"font-size-adjust\"],[\"fontStretch\",\"font-stretch\"],[\"fontStyle\",\"font-style\"],[\"fontVariant\",\"font-variant\"],[\"fontWeight\",\"font-weight\"],[\"glyphName\",\"glyph-name\"],[\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\"],[\"glyphOrientationVertical\",\"glyph-orientation-vertical\"],[\"horizAdvX\",\"horiz-adv-x\"],[\"horizOriginX\",\"horiz-origin-x\"],[\"imageRendering\",\"image-rendering\"],[\"letterSpacing\",\"letter-spacing\"],[\"lightingColor\",\"lighting-color\"],[\"markerEnd\",\"marker-end\"],[\"markerMid\",\"marker-mid\"],[\"markerStart\",\"marker-start\"],[\"overlinePosition\",\"overline-position\"],[\"overlineThickness\",\"overline-thickness\"],[\"paintOrder\",\"paint-order\"],[\"panose-1\",\"panose-1\"],[\"pointerEvents\",\"pointer-events\"],[\"renderingIntent\",\"rendering-intent\"],[\"shapeRendering\",\"shape-rendering\"],[\"stopColor\",\"stop-color\"],[\"stopOpacity\",\"stop-opacity\"],[\"strikethroughPosition\",\"strikethrough-position\"],[\"strikethroughThickness\",\"strikethrough-thickness\"],[\"strokeDasharray\",\"stroke-dasharray\"],[\"strokeDashoffset\",\"stroke-dashoffset\"],[\"strokeLinecap\",\"stroke-linecap\"],[\"strokeLinejoin\",\"stroke-linejoin\"],[\"strokeMiterlimit\",\"stroke-miterlimit\"],[\"strokeOpacity\",\"stroke-opacity\"],[\"strokeWidth\",\"stroke-width\"],[\"textAnchor\",\"text-anchor\"],[\"textDecoration\",\"text-decoration\"],[\"textRendering\",\"text-rendering\"],[\"transformOrigin\",\"transform-origin\"],[\"underlinePosition\",\"underline-position\"],[\"underlineThickness\",\"underline-thickness\"],[\"unicodeBidi\",\"unicode-bidi\"],[\"unicodeRange\",\"unicode-range\"],[\"unitsPerEm\",\"units-per-em\"],[\"vAlphabetic\",\"v-alphabetic\"],[\"vHanging\",\"v-hanging\"],[\"vIdeographic\",\"v-ideographic\"],[\"vMathematical\",\"v-mathematical\"],[\"vectorEffect\",\"vector-effect\"],[\"vertAdvY\",\"vert-adv-y\"],[\"vertOriginX\",\"vert-origin-x\"],[\"vertOriginY\",\"vert-origin-y\"],[\"wordSpacing\",\"word-spacing\"],[\"writingMode\",\"writing-mode\"],[\"xmlnsXlink\",\"xmlns:xlink\"],[\"xHeight\",\"x-height\"]]),th=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;function tm(e){return th.test(\"\"+e)?\"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\":e}function tg(){}var ty=null;function tv(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var tb=null,tA=null;function tx(e){var t=eV(e);if(t&&(e=t.stateNode)){var n=e[eL]||null;switch(e=t.stateNode,t.type){case\"input\":if(tn(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,\"radio\"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name=\"'+tt(\"\"+t)+'\"][type=\"radio\"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=r[eL]||null;if(!o)throw Error(l(90));tn(r,o.value,o.defaultValue,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name)}}for(t=0;t<n.length;t++)(r=n[t]).form===e.form&&e8(r)}break;case\"textarea\":ti(e,n.value,n.defaultValue);break;case\"select\":null!=(t=n.value)&&ta(e,!!n.multiple,t,!1)}}}var tw=!1;function tC(e,t,n){if(tw)return e(t,n);tw=!0;try{return e(t)}finally{if(tw=!1,(null!==tb||null!==tA)&&(sc(),tb&&(t=tb,e=tA,tA=tb=null,tx(t),e)))for(t=0;t<e.length;t++)tx(e[t])}}function t_(e,t){var n=e.stateNode;if(null===n)return null;var r=n[eL]||null;if(null===r)return null;switch(n=r[t],t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(r=!r.disabled)||(r=\"button\"!==(e=e.type)&&\"input\"!==e&&\"select\"!==e&&\"textarea\"!==e),e=!r;break;default:e=!1}if(e)return null;if(n&&\"function\"!=typeof n)throw Error(l(231,t,typeof n));return n}var tk=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,tE=!1;if(tk)try{var tj={};Object.defineProperty(tj,\"passive\",{get:function(){tE=!0}}),window.addEventListener(\"test\",tj,tj),window.removeEventListener(\"test\",tj,tj)}catch(e){tE=!1}var tS=null,tO=null,tB=null;function tP(){if(tB)return tB;var e,t,n=tO,r=n.length,o=\"value\"in tS?tS.value:tS.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tB=o.slice(e,1<t?1-t:void 0)}function tI(e){var t=e.keyCode;return\"charCode\"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function tT(){return!0}function tz(){return!1}function tD(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?tT:tz,this.isPropagationStopped=tz,this}return f(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():\"unknown\"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=tT)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():\"unknown\"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=tT)},persist:function(){},isPersistent:tT}),t}var tL,tN,tR,tM,tZ,tU={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},tF=tD(tU),tq=f({},tU,{view:0,detail:0}),tH=tD(tq),tV=f({},tq,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:t2,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return\"movementX\"in e?e.movementX:(e!==tZ&&(tZ&&\"mousemove\"===e.type?(tR=e.screenX-tZ.screenX,tM=e.screenY-tZ.screenY):tM=tR=0,tZ=e),tR)},movementY:function(e){return\"movementY\"in e?e.movementY:tM}}),t$=tD(tV),tW=tD(f({},tV,{dataTransfer:0})),tY=tD(f({},tq,{relatedTarget:0})),tK=tD(f({},tU,{animationName:0,elapsedTime:0,pseudoElement:0})),tX=tD(f({},tU,{clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}})),tG=tD(f({},tU,{data:0})),tQ={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},tJ={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},t0={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function t1(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=t0[e])&&!!t[e]}function t2(){return t1}var t4=tD(f({},tq,{key:function(e){if(e.key){var t=tQ[e.key]||e.key;if(\"Unidentified\"!==t)return t}return\"keypress\"===e.type?13===(e=tI(e))?\"Enter\":String.fromCharCode(e):\"keydown\"===e.type||\"keyup\"===e.type?tJ[e.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:t2,charCode:function(e){return\"keypress\"===e.type?tI(e):0},keyCode:function(e){return\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0},which:function(e){return\"keypress\"===e.type?tI(e):\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0}})),t5=tD(f({},tV,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),t3=tD(f({},tq,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:t2})),t6=tD(f({},tU,{propertyName:0,elapsedTime:0,pseudoElement:0})),t9=tD(f({},tV,{deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),t8=tD(f({},tU,{newState:0,oldState:0})),t7=[9,13,27,32],ne=tk&&\"CompositionEvent\"in window,nt=null;tk&&\"documentMode\"in document&&(nt=document.documentMode);var nn=tk&&\"TextEvent\"in window&&!nt,nr=tk&&(!ne||nt&&8<nt&&11>=nt),no=!1;function na(e,t){switch(e){case\"keyup\":return -1!==t7.indexOf(t.keyCode);case\"keydown\":return 229!==t.keyCode;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function ni(e){return\"object\"==typeof(e=e.detail)&&\"data\"in e?e.data:null}var nl=!1,ns={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function nc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return\"input\"===t?!!ns[e.type]:\"textarea\"===t}function nu(e,t,n,r){tb?tA?tA.push(r):tA=[r]:tb=r,0<(t=ct(t,\"onChange\")).length&&(n=new tF(\"onChange\",\"change\",null,n,r),e.push({event:n,listeners:t}))}var nd=null,nf=null;function np(e){s4(e,0)}function nh(e){if(e8(e$(e)))return e}function nm(e,t){if(\"change\"===e)return t}var ng=!1;if(tk){if(tk){var ny=\"oninput\"in document;if(!ny){var nv=document.createElement(\"div\");nv.setAttribute(\"oninput\",\"return;\"),ny=\"function\"==typeof nv.oninput}r=ny}else r=!1;ng=r&&(!document.documentMode||9<document.documentMode)}function nb(){nd&&(nd.detachEvent(\"onpropertychange\",nA),nf=nd=null)}function nA(e){if(\"value\"===e.propertyName&&nh(nf)){var t=[];nu(t,nf,e,tv(e)),tC(np,t)}}function nx(e,t,n){\"focusin\"===e?(nb(),nd=t,nf=n,nd.attachEvent(\"onpropertychange\",nA)):\"focusout\"===e&&nb()}function nw(e){if(\"selectionchange\"===e||\"keyup\"===e||\"keydown\"===e)return nh(nf)}function nC(e,t){if(\"click\"===e)return nh(t)}function n_(e,t){if(\"input\"===e||\"change\"===e)return nh(t)}var nk=\"function\"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function nE(e,t){if(nk(e,t))return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!Q.call(t,o)||!nk(e[o],t[o]))return!1}return!0}function nj(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function nS(e,t){var n,r=nj(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=nj(r)}}function nO(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var t=e7(e.document);t instanceof e.HTMLIFrameElement;){try{var n=\"string\"==typeof t.contentWindow.location.href}catch(e){n=!1}if(n)e=t.contentWindow;else break;t=e7(e.document)}return t}function nB(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(\"input\"===t&&(\"text\"===e.type||\"search\"===e.type||\"tel\"===e.type||\"url\"===e.type||\"password\"===e.type)||\"textarea\"===t||\"true\"===e.contentEditable)}var nP=tk&&\"documentMode\"in document&&11>=document.documentMode,nI=null,nT=null,nz=null,nD=!1;function nL(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;nD||null==nI||nI!==e7(r)||(r=\"selectionStart\"in(r=nI)&&nB(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},nz&&nE(nz,r)||(nz=r,0<(r=ct(nT,\"onSelect\")).length&&(t=new tF(\"onSelect\",\"select\",null,t,n),e.push({event:t,listeners:r}),t.target=nI)))}function nN(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[\"Webkit\"+e]=\"webkit\"+t,n[\"Moz\"+e]=\"moz\"+t,n}var nR={animationend:nN(\"Animation\",\"AnimationEnd\"),animationiteration:nN(\"Animation\",\"AnimationIteration\"),animationstart:nN(\"Animation\",\"AnimationStart\"),transitionrun:nN(\"Transition\",\"TransitionRun\"),transitionstart:nN(\"Transition\",\"TransitionStart\"),transitioncancel:nN(\"Transition\",\"TransitionCancel\"),transitionend:nN(\"Transition\",\"TransitionEnd\")},nM={},nZ={};function nU(e){if(nM[e])return nM[e];if(!nR[e])return e;var t,n=nR[e];for(t in n)if(n.hasOwnProperty(t)&&t in nZ)return nM[e]=n[t];return e}tk&&(nZ=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete nR.animationend.animation,delete nR.animationiteration.animation,delete nR.animationstart.animation),\"TransitionEvent\"in window||delete nR.transitionend.transition);var nF=nU(\"animationend\"),nq=nU(\"animationiteration\"),nH=nU(\"animationstart\"),nV=nU(\"transitionrun\"),n$=nU(\"transitionstart\"),nW=nU(\"transitioncancel\"),nY=nU(\"transitionend\"),nK=new Map,nX=\"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");function nG(e,t){nK.set(e,t),eG(t,[e])}nX.push(\"scrollEnd\");var nQ=\"function\"==typeof reportError?reportError:function(e){if(\"object\"==typeof window&&\"function\"==typeof window.ErrorEvent){var t=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(\"object\"==typeof process&&\"function\"==typeof process.emit)return void process.emit(\"uncaughtException\",e);console.error(e)},nJ=[],n0=0,n1=0;function n2(){for(var e=n0,t=n1=n0=0;t<e;){var n=nJ[t];nJ[t++]=null;var r=nJ[t];nJ[t++]=null;var o=nJ[t];nJ[t++]=null;var a=nJ[t];if(nJ[t++]=null,null!==r&&null!==o){var i=r.pending;null===i?o.next=o:(o.next=i.next,i.next=o),r.pending=o}0!==a&&n6(n,o,a)}}function n4(e,t,n,r){nJ[n0++]=e,nJ[n0++]=t,nJ[n0++]=n,nJ[n0++]=r,n1|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function n5(e,t,n,r){return n4(e,t,n,r),n9(e)}function n3(e,t){return n4(e,null,null,t),n9(e)}function n6(e,t,n){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n);for(var o=!1,a=e.return;null!==a;)a.childLanes|=n,null!==(r=a.alternate)&&(r.childLanes|=n),22===a.tag&&(null===(e=a.stateNode)||1&e._visibility||(o=!0)),e=a,a=a.return;return 3===e.tag?(a=e.stateNode,o&&null!==t&&(o=31-em(n),null===(r=(e=a.hiddenUpdates)[o])?e[o]=[t]:r.push(t),t.lane=0x20000000|n),a):null}function n9(e){if(50<st)throw st=0,sn=null,Error(l(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var n8={};function n7(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function re(e,t,n,r){return new n7(e,t,n,r)}function rt(e){return!(!(e=e.prototype)||!e.isReactComponent)}function rn(e,t){var n=e.alternate;return null===n?((n=re(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=0x3e00000&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function rr(e,t){e.flags&=0x3e00002;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,e.dependencies=null===(t=n.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ro(e,t,n,r,o,a){var i=0;if(r=e,\"function\"==typeof e)rt(e)&&(i=1);else if(\"string\"==typeof e)i=!function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case\"meta\":case\"title\":return!0;case\"style\":if(\"string\"!=typeof t.precedence||\"string\"!=typeof t.href||\"\"===t.href)break;return!0;case\"link\":if(\"string\"!=typeof t.rel||\"string\"!=typeof t.href||\"\"===t.href||t.onLoad||t.onError)break;if(\"stylesheet\"===t.rel)return e=t.disabled,\"string\"==typeof t.precedence&&null==e;return!0;case\"script\":if(t.async&&\"function\"!=typeof t.async&&\"symbol\"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&\"string\"==typeof t.src)return!0}return!1}(e,n,Z.current)?\"html\"===e||\"head\"===e||\"body\"===e?27:5:26;else e:switch(e){case E:return(e=re(31,n,t,o)).elementType=E,e.lanes=a,e;case g:return ra(n.children,o,a,t);case y:i=8,o|=24;break;case v:return(e=re(12,n,t,2|o)).elementType=v,e.lanes=a,e;case w:return(e=re(13,n,t,o)).elementType=w,e.lanes=a,e;case C:return(e=re(19,n,t,o)).elementType=C,e.lanes=a,e;default:if(\"object\"==typeof e&&null!==e)switch(e.$$typeof){case A:i=10;break e;case b:i=9;break e;case x:i=11;break e;case _:i=14;break e;case k:i=16,r=null;break e}i=29,n=Error(l(130,null===e?\"null\":typeof e,\"\")),r=null}return(t=re(i,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function ra(e,t,n,r){return(e=re(7,e,r,t)).lanes=n,e}function ri(e,t,n){return(e=re(6,e,null,t)).lanes=n,e}function rl(e){var t=re(18,null,null,0);return t.stateNode=e,t}function rs(e,t,n){return(t=re(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var rc=new WeakMap;function ru(e,t){if(\"object\"==typeof e&&null!==e){var n=rc.get(e);return void 0!==n?n:(t={value:e,source:t,stack:G(t)},rc.set(e,t),t)}return{value:e,source:t,stack:G(t)}}var rd=[],rf=0,rp=null,rh=0,rm=[],rg=0,ry=null,rv=1,rb=\"\";function rA(e,t){rd[rf++]=rh,rd[rf++]=rp,rp=e,rh=t}function rx(e,t,n){rm[rg++]=rv,rm[rg++]=rb,rm[rg++]=ry,ry=e;var r=rv;e=rb;var o=32-em(r)-1;r&=~(1<<o),n+=1;var a=32-em(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,rv=1<<32-em(t)+o|n<<o|r,rb=a+e}else rv=1<<a|n<<o|r,rb=e}function rw(e){null!==e.return&&(rA(e,1),rx(e,1,0))}function rC(e){for(;e===rp;)rp=rd[--rf],rd[rf]=null,rh=rd[--rf],rd[rf]=null;for(;e===ry;)ry=rm[--rg],rm[rg]=null,rb=rm[--rg],rm[rg]=null,rv=rm[--rg],rm[rg]=null}function r_(e,t){rm[rg++]=rv,rm[rg++]=rb,rm[rg++]=ry,rv=t.id,rb=t.overflow,ry=e}var rk=null,rE=null,rj=!1,rS=null,rO=!1,rB=Error(l(519));function rP(e){var t=Error(l(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?\"text\":\"HTML\",\"\"));throw rN(ru(t,e)),rB}function rI(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[eD]=e,t[eL]=r,n){case\"dialog\":s5(\"cancel\",t),s5(\"close\",t);break;case\"iframe\":case\"object\":case\"embed\":s5(\"load\",t);break;case\"video\":case\"audio\":for(n=0;n<s1.length;n++)s5(s1[n],t);break;case\"source\":s5(\"error\",t);break;case\"img\":case\"image\":case\"link\":s5(\"error\",t),s5(\"load\",t);break;case\"details\":s5(\"toggle\",t);break;case\"input\":s5(\"invalid\",t),tr(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case\"select\":s5(\"invalid\",t);break;case\"textarea\":s5(\"invalid\",t),tl(t,r.value,r.defaultValue,r.children)}\"string\"!=typeof(n=r.children)&&\"number\"!=typeof n&&\"bigint\"!=typeof n||t.textContent===\"\"+n||!0===r.suppressHydrationWarning||cl(t.textContent,n)?(null!=r.popover&&(s5(\"beforetoggle\",t),s5(\"toggle\",t)),null!=r.onScroll&&s5(\"scroll\",t),null!=r.onScrollEnd&&s5(\"scrollend\",t),null!=r.onClick&&(t.onclick=tg),t=!0):t=!1,t||rP(e,!0)}function rT(e){for(rk=e.return;rk;)switch(rk.tag){case 5:case 31:case 13:rO=!1;return;case 27:case 3:rO=!0;return;default:rk=rk.return}}function rz(e){if(e!==rk)return!1;if(!rj)return rT(e),rj=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t=\"form\"===(t=e.type)||\"button\"===t||cg(e.type,e.memoizedProps)),t=!t),t&&rE&&rP(e),rT(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rE=cI(e)}else if(31===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rE=cI(e)}else 27===n?(n=rE,cC(e.type)?(e=cP,cP=null,rE=e):rE=n):rE=rk?cB(e.stateNode.nextSibling):null;return!0}function rD(){rE=rk=null,rj=!1}function rL(){var e=rS;return null!==e&&(null===lQ?lQ=e:lQ.push.apply(lQ,e),rS=null),e}function rN(e){null===rS?rS=[e]:rS.push(e)}var rR=N(null),rM=null,rZ=null;function rU(e,t,n){M(rR,t._currentValue),t._currentValue=n}function rF(e){e._currentValue=rR.current,R(rR)}function rq(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function rH(e,t,n,r){var o=e.child;for(null!==o&&(o.return=e);null!==o;){var a=o.dependencies;if(null!==a){var i=o.child;a=a.firstContext;e:for(;null!==a;){var s=a;a=o;for(var c=0;c<t.length;c++)if(s.context===t[c]){a.lanes|=n,null!==(s=a.alternate)&&(s.lanes|=n),rq(a.return,n,e),r||(i=null);break e}a=s.next}}else if(18===o.tag){if(null===(i=o.return))throw Error(l(341));i.lanes|=n,null!==(a=i.alternate)&&(a.lanes|=n),rq(i,n,e),i=null}else i=o.child;if(null!==i)i.return=o;else for(i=o;null!==i;){if(i===e){i=null;break}if(null!==(o=i.sibling)){o.return=i.return,i=o;break}i=i.return}o=i}}function rV(e,t,n,r){e=null;for(var o=t,a=!1;null!==o;){if(!a){if(0!=(524288&o.flags))a=!0;else if(0!=(262144&o.flags))break}if(10===o.tag){var i=o.alternate;if(null===i)throw Error(l(387));if(null!==(i=i.memoizedProps)){var s=o.type;nk(o.pendingProps.value,i.value)||(null!==e?e.push(s):e=[s])}}else if(o===q.current){if(null===(i=o.alternate))throw Error(l(387));i.memoizedState.memoizedState!==o.memoizedState.memoizedState&&(null!==e?e.push(c9):e=[c9])}o=o.return}null!==e&&rH(t,e,n,r),t.flags|=262144}function r$(e){for(e=e.firstContext;null!==e;){if(!nk(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function rW(e){rM=e,rZ=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function rY(e){return rX(rM,e)}function rK(e,t){return null===rM&&rW(e),rX(e,t)}function rX(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===rZ){if(null===e)throw Error(l(308));rZ=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else rZ=rZ.next=t;return n}var rG=\"undefined\"!=typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},rQ=o.unstable_scheduleCallback,rJ=o.unstable_NormalPriority,r0={$$typeof:A,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function r1(){return{controller:new rG,data:new Map,refCount:0}}function r2(e){e.refCount--,0===e.refCount&&rQ(rJ,function(){e.controller.abort()})}var r4=null,r5=0,r3=0,r6=null;function r9(){if(0==--r5&&null!==r4){null!==r6&&(r6.status=\"fulfilled\");var e=r4;r4=null,r3=0,r6=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var r8=I.S;I.S=function(e,t){\"object\"==typeof t&&null!==t&&\"function\"==typeof t.then&&function(e,t){if(null===r4){var n=r4=[];r5=0,r3=sX(),r6={status:\"pending\",value:void 0,then:function(e){n.push(e)}}}r5++,t.then(r9,r9)}(0,t),null!==r8&&r8(e,t)};var r7=N(null);function oe(){var e=r7.current;return null!==e?e:lL.pooledCache}function ot(e,t){null===t?M(r7,r7.current):M(r7,t.pool)}function on(){var e=oe();return null===e?null:{parent:r0._currentValue,pool:e}}var or=Error(l(460)),oo=Error(l(474)),oa=Error(l(542)),oi={then:function(){}};function ol(e){return\"fulfilled\"===(e=e.status)||\"rejected\"===e}function os(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(tg,tg),t=n),t.status){case\"fulfilled\":return t.value;case\"rejected\":throw of(e=t.reason),e;default:if(\"string\"==typeof t.status)t.then(tg,tg);else{if(null!==(e=lL)&&100<e.shellSuspendCounter)throw Error(l(482));(e=t).status=\"pending\",e.then(function(e){if(\"pending\"===t.status){var n=t;n.status=\"fulfilled\",n.value=e}},function(e){if(\"pending\"===t.status){var n=t;n.status=\"rejected\",n.reason=e}})}switch(t.status){case\"fulfilled\":return t.value;case\"rejected\":throw of(e=t.reason),e}throw ou=t,or}}function oc(e){try{return(0,e._init)(e._payload)}catch(e){if(null!==e&&\"object\"==typeof e&&\"function\"==typeof e.then)throw ou=e,or;throw e}}var ou=null;function od(){if(null===ou)throw Error(l(459));var e=ou;return ou=null,e}function of(e){if(e===or||e===oa)throw Error(l(483))}var op=null,oh=0;function om(e){var t=oh;return oh+=1,null===op&&(op=[]),os(op,e,t)}function og(e,t){e.ref=void 0!==(t=t.props.ref)?t:null}function oy(e,t){if(t.$$typeof===p)throw Error(l(525));throw Error(l(31,\"[object Object]\"===(e=Object.prototype.toString.call(t))?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":e))}function ov(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;null!==e;)null!==e.key?t.set(e.key,e):t.set(e.index,e),e=e.sibling;return t}function o(e,t){return(e=rn(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return(t.index=r,e)?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=0x4000002,n):r:(t.flags|=0x4000002,n):(t.flags|=1048576,n)}function i(t){return e&&null===t.alternate&&(t.flags|=0x4000002),t}function s(e,t,n,r){return null===t||6!==t.tag?(t=ri(n,e.mode,r)).return=e:(t=o(t,n)).return=e,t}function c(e,t,n,r){var a=n.type;return a===g?d(e,t,n.props.children,r,n.key):(null!==t&&(t.elementType===a||\"object\"==typeof a&&null!==a&&a.$$typeof===k&&oc(a)===t.type)?og(t=o(t,n.props),n):og(t=ro(n.type,n.key,n.props,null,e.mode,r),n),t.return=e,t)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=rs(n,e.mode,r)).return=e:(t=o(t,n.children||[])).return=e,t}function d(e,t,n,r,a){return null===t||7!==t.tag?(t=ra(n,e.mode,r,a)).return=e:(t=o(t,n)).return=e,t}function f(e,t,n){if(\"string\"==typeof t&&\"\"!==t||\"number\"==typeof t||\"bigint\"==typeof t)return(t=ri(\"\"+t,e.mode,n)).return=e,t;if(\"object\"==typeof t&&null!==t){switch(t.$$typeof){case h:return og(n=ro(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case m:return(t=rs(t,e.mode,n)).return=e,t;case k:return f(e,t=oc(t),n)}if(P(t)||O(t))return(t=ra(t,e.mode,n,null)).return=e,t;if(\"function\"==typeof t.then)return f(e,om(t),n);if(t.$$typeof===A)return f(e,rK(e,t),n);oy(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if(\"string\"==typeof n&&\"\"!==n||\"number\"==typeof n||\"bigint\"==typeof n)return null!==o?null:s(e,t,\"\"+n,r);if(\"object\"==typeof n&&null!==n){switch(n.$$typeof){case h:return n.key===o?c(e,t,n,r):null;case m:return n.key===o?u(e,t,n,r):null;case k:return p(e,t,n=oc(n),r)}if(P(n)||O(n))return null!==o?null:d(e,t,n,r,null);if(\"function\"==typeof n.then)return p(e,t,om(n),r);if(n.$$typeof===A)return p(e,t,rK(e,n),r);oy(e,n)}return null}function y(e,t,n,r,o){if(\"string\"==typeof r&&\"\"!==r||\"number\"==typeof r||\"bigint\"==typeof r)return s(t,e=e.get(n)||null,\"\"+r,o);if(\"object\"==typeof r&&null!==r){switch(r.$$typeof){case h:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case m:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case k:return y(e,t,n,r=oc(r),o)}if(P(r)||O(r))return d(t,e=e.get(n)||null,r,o,null);if(\"function\"==typeof r.then)return y(e,t,n,om(r),o);if(r.$$typeof===A)return y(e,t,n,rK(t,r),o);oy(t,r)}return null}return function(s,c,u,d){try{oh=0;var v=function s(c,u,d,v){if(\"object\"==typeof d&&null!==d&&d.type===g&&null===d.key&&(d=d.props.children),\"object\"==typeof d&&null!==d){switch(d.$$typeof){case h:e:{for(var b=d.key;null!==u;){if(u.key===b){if((b=d.type)===g){if(7===u.tag){n(c,u.sibling),(v=o(u,d.props.children)).return=c,c=v;break e}}else if(u.elementType===b||\"object\"==typeof b&&null!==b&&b.$$typeof===k&&oc(b)===u.type){n(c,u.sibling),og(v=o(u,d.props),d),v.return=c,c=v;break e}n(c,u);break}t(c,u),u=u.sibling}d.type===g?(v=ra(d.props.children,c.mode,v,d.key)).return=c:(og(v=ro(d.type,d.key,d.props,null,c.mode,v),d),v.return=c),c=v}return i(c);case m:e:{for(b=d.key;null!==u;){if(u.key===b)if(4===u.tag&&u.stateNode.containerInfo===d.containerInfo&&u.stateNode.implementation===d.implementation){n(c,u.sibling),(v=o(u,d.children||[])).return=c,c=v;break e}else{n(c,u);break}t(c,u),u=u.sibling}(v=rs(d,c.mode,v)).return=c,c=v}return i(c);case k:return s(c,u,d=oc(d),v)}if(P(d))return function(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,m=null;null!==d&&h<l.length;h++){d.index>h?(m=d,d=null):m=d.sibling;var g=p(o,d,l[h],s);if(null===g){null===d&&(d=m);break}e&&d&&null===g.alternate&&t(o,d),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g,d=m}if(h===l.length)return n(o,d),rj&&rA(o,h),c;if(null===d){for(;h<l.length;h++)null!==(d=f(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return rj&&rA(o,h),c}for(d=r(d);h<l.length;h++)null!==(m=y(d,o,h,l[h],s))&&(e&&null!==m.alternate&&d.delete(null===m.key?h:m.key),i=a(m,i,h),null===u?c=m:u.sibling=m,u=m);return e&&d.forEach(function(e){return t(o,e)}),rj&&rA(o,h),c}(c,u,d,v);if(O(d)){if(\"function\"!=typeof(b=O(d)))throw Error(l(150));return function(o,i,s,c){if(null==s)throw Error(l(151));for(var u=null,d=null,h=i,m=i=0,g=null,v=s.next();null!==h&&!v.done;m++,v=s.next()){h.index>m?(g=h,h=null):g=h.sibling;var b=p(o,h,v.value,c);if(null===b){null===h&&(h=g);break}e&&h&&null===b.alternate&&t(o,h),i=a(b,i,m),null===d?u=b:d.sibling=b,d=b,h=g}if(v.done)return n(o,h),rj&&rA(o,m),u;if(null===h){for(;!v.done;m++,v=s.next())null!==(v=f(o,v.value,c))&&(i=a(v,i,m),null===d?u=v:d.sibling=v,d=v);return rj&&rA(o,m),u}for(h=r(h);!v.done;m++,v=s.next())null!==(v=y(h,o,m,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?m:v.key),i=a(v,i,m),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(o,e)}),rj&&rA(o,m),u}(c,u,d=b.call(d),v)}if(\"function\"==typeof d.then)return s(c,u,om(d),v);if(d.$$typeof===A)return s(c,u,rK(c,d),v);oy(c,d)}return\"string\"==typeof d&&\"\"!==d||\"number\"==typeof d||\"bigint\"==typeof d?(d=\"\"+d,null!==u&&6===u.tag?(n(c,u.sibling),(v=o(u,d)).return=c):(n(c,u),(v=ri(d,c.mode,v)).return=c),i(c=v)):n(c,u)}(s,c,u,d);return op=null,v}catch(e){if(e===or||e===oa)throw e;var b=re(29,e,null,s.mode);return b.lanes=d,b.return=s,b}finally{}}}var ob=ov(!0),oA=ov(!1),ox=!1;function ow(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function oC(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function o_(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ok(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&lD)){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,t=n9(e),n6(e,null,n),t}return n4(e,r,t,n),n9(e)}function oE(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194048&n))){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eS(e,n)}}function oj(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var oS=!1;function oO(){if(oS){var e=r6;if(null!==e)throw e}}function oB(e,t,n,r){oS=!1;var o=e.updateQueue;ox=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var s=l,c=s.next;s.next=null,null===i?a=c:i.next=c,i=s;var u=e.alternate;null!==u&&(l=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===l?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=s)}if(null!==a){var d=o.baseState;for(i=0,u=c=s=null,l=a;;){var p=-0x20000001&l.lane,h=p!==l.lane;if(h?(lR&p)===p:(r&p)===p){0!==p&&p===r3&&(oS=!0),null!==u&&(u=u.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var m=e,g=l;switch(p=t,g.tag){case 1:if(\"function\"==typeof(m=g.payload)){d=m.call(n,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p=\"function\"==typeof(m=g.payload)?m.call(n,d,p):m))break e;d=f({},d,p);break e;case 2:ox=!0}}null!==(p=l.callback)&&(e.flags|=64,h&&(e.flags|=8192),null===(h=o.callbacks)?o.callbacks=[p]:h.push(p))}else h={lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===u?(c=u=h,s=d):u=u.next=h,i|=p;if(null===(l=l.next))if(null===(l=o.shared.pending))break;else l=(h=l).next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}null===u&&(s=d),o.baseState=s,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null===a&&(o.shared.lanes=0),l$|=i,e.lanes=i,e.memoizedState=d}}function oP(e,t){if(\"function\"!=typeof e)throw Error(l(191,e));e.call(t)}function oI(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)oP(n[e],t)}var oT=N(null),oz=N(0);function oD(e,t){M(oz,e=lH),M(oT,t),lH=e|t.baseLanes}function oL(){M(oz,lH),M(oT,oT.current)}function oN(){lH=oz.current,R(oT),R(oz)}var oR=N(null),oM=null;function oZ(e){var t=e.alternate;M(oV,1&oV.current),M(oR,e),null===oM&&(null===t||null!==oT.current?oM=e:null!==t.memoizedState&&(oM=e))}function oU(e){M(oV,oV.current),M(oR,e),null===oM&&(oM=e)}function oF(e){22===e.tag?(M(oV,oV.current),M(oR,e),null===oM&&(oM=e)):oq(e)}function oq(){M(oV,oV.current),M(oR,oR.current)}function oH(e){R(oR),oM===e&&(oM=null),R(oV)}var oV=N(0);function o$(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||cS(n)||cO(n)))return t}else if(19===t.tag&&(\"forwards\"===t.memoizedProps.revealOrder||\"backwards\"===t.memoizedProps.revealOrder||\"unstable_legacy-backwards\"===t.memoizedProps.revealOrder||\"together\"===t.memoizedProps.revealOrder)){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var oW=0,oY=null,oK=null,oX=null,oG=!1,oQ=!1,oJ=!1,o0=0,o1=0,o2=null,o4=0;function o5(){throw Error(l(321))}function o3(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!nk(e[n],t[n]))return!1;return!0}function o6(e,t,n,r,o,a){return oW=a,oY=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,I.H=null===e||null===e.memoizedState?it:ir,oJ=!1,a=n(r,o),oJ=!1,oQ&&(a=o8(t,n,r,o)),o9(e),a}function o9(e){I.H=ie;var t=null!==oK&&null!==oK.next;if(oW=0,oX=oK=oY=null,oG=!1,o1=0,o2=null,t)throw Error(l(300));null===e||iA||null!==(e=e.dependencies)&&r$(e)&&(iA=!0)}function o8(e,t,n,r){oY=e;var o=0;do{if(oQ&&(o2=null),o1=0,oQ=!1,25<=o)throw Error(l(301));if(o+=1,oX=oK=null,null!=e.updateQueue){var a=e.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,null!=a.memoCache&&(a.memoCache.index=0)}I.H=io,a=t(n,r)}while(oQ);return a}function o7(){var e=I.H,t=e.useState()[0];return t=\"function\"==typeof t.then?ai(t):t,e=e.useState()[0],(null!==oK?oK.memoizedState:null)!==e&&(oY.flags|=1024),t}function ae(){var e=0!==o0;return o0=0,e}function at(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function an(e){if(oG){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}oG=!1}oW=0,oX=oK=oY=null,oQ=!1,o1=o0=0,o2=null}function ar(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===oX?oY.memoizedState=oX=e:oX=oX.next=e,oX}function ao(){if(null===oK){var e=oY.alternate;e=null!==e?e.memoizedState:null}else e=oK.next;var t=null===oX?oY.memoizedState:oX.next;if(null!==t)oX=t,oK=e;else{if(null===e){if(null===oY.alternate)throw Error(l(467));throw Error(l(310))}e={memoizedState:(oK=e).memoizedState,baseState:oK.baseState,baseQueue:oK.baseQueue,queue:oK.queue,next:null},null===oX?oY.memoizedState=oX=e:oX=oX.next=e}return oX}function aa(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ai(e){var t=o1;return o1+=1,null===o2&&(o2=[]),e=os(o2,e,t),t=oY,null===(null===oX?t.memoizedState:oX.next)&&(I.H=null===(t=t.alternate)||null===t.memoizedState?it:ir),e}function al(e){if(null!==e&&\"object\"==typeof e){if(\"function\"==typeof e.then)return ai(e);if(e.$$typeof===A)return rY(e)}throw Error(l(438,String(e)))}function as(e){var t=null,n=oY.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var r=oY.alternate;null!==r&&null!==(r=r.updateQueue)&&null!=(r=r.memoCache)&&(t={data:r.data.map(function(e){return e.slice()}),index:0})}if(null==t&&(t={data:[],index:0}),null===n&&(n=aa(),oY.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=j;return t.index++,n}function ac(e,t){return\"function\"==typeof t?t(e):t}function au(e){return ad(ao(),oK,e)}function ad(e,t,n){var r=e.queue;if(null===r)throw Error(l(311));r.lastRenderedReducer=n;var o=e.baseQueue,a=r.pending;if(null!==a){if(null!==o){var i=o.next;o.next=a.next,a.next=i}t.baseQueue=o=a,r.pending=null}if(a=e.baseState,null===o)e.memoizedState=a;else{t=o.next;var s=i=null,c=null,u=t,d=!1;do{var f=-0x20000001&u.lane;if(f!==u.lane?(lR&f)===f:(oW&f)===f){var p=u.revertLane;if(0===p)null!==c&&(c=c.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===r3&&(d=!0);else if((oW&p)===p){u=u.next,p===r3&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=f,i=a):c=c.next=f,oY.lanes|=p,l$|=p;f=u.action,oJ&&n(a,f),a=u.hasEagerState?u.eagerState:n(a,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=p,i=a):c=c.next=p,oY.lanes|=f,l$|=f;u=u.next}while(null!==u&&u!==t);if(null===c?i=a:c.next=s,!nk(a,e.memoizedState)&&(iA=!0,d&&null!==(n=r6)))throw n;e.memoizedState=a,e.baseState=i,e.baseQueue=c,r.lastRenderedState=a}return null===o&&(r.lanes=0),[e.memoizedState,r.dispatch]}function af(e){var t=ao(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var i=o=o.next;do a=e(a,i.action),i=i.next;while(i!==o);nk(a,t.memoizedState)||(iA=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function ap(e,t,n){var r=oY,o=ao(),a=rj;if(a){if(void 0===n)throw Error(l(407));n=n()}else n=t();var i=!nk((oK||o).memoizedState,n);if(i&&(o.memoizedState=n,iA=!0),o=o.queue,aR(ag.bind(null,r,o,e),[e]),o.getSnapshot!==t||i||null!==oX&&1&oX.memoizedState.tag){if(r.flags|=2048,aT(9,{destroy:void 0},am.bind(null,r,o,n,t),null),null===lL)throw Error(l(349));a||0!=(124&oW)||ah(r,t,n)}return n}function ah(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=oY.updateQueue)?(t=aa(),oY.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function am(e,t,n,r){t.value=n,t.getSnapshot=r,ay(t)&&av(e)}function ag(e,t,n){return n(function(){ay(t)&&av(e)})}function ay(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!nk(e,n)}catch(e){return!0}}function av(e){var t=n3(e,2);null!==t&&sa(t,e,2)}function ab(e){var t=ar();if(\"function\"==typeof e){var n=e;if(e=n(),oJ){eh(!0);try{n()}finally{eh(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:e},t}function aA(e,t,n,r){return e.baseState=n,ad(e,oK,\"function\"==typeof r?r:ac)}function ax(e,t,n,r,o){if(a9(e))throw Error(l(485));if(null!==(e=t.action)){var a={payload:o,action:e,next:null,isTransition:!0,status:\"pending\",value:null,reason:null,listeners:[],then:function(e){a.listeners.push(e)}};null!==I.T?n(!0):a.isTransition=!1,r(a),null===(n=t.pending)?(a.next=t.pending=a,aw(t,a)):(a.next=n.next,t.pending=n.next=a)}}function aw(e,t){var n=t.action,r=t.payload,o=e.state;if(t.isTransition){var a=I.T,i={};I.T=i;try{var l=n(o,r),s=I.S;null!==s&&s(i,l),aC(e,t,l)}catch(n){ak(e,t,n)}finally{null!==a&&null!==i.types&&(a.types=i.types),I.T=a}}else try{a=n(o,r),aC(e,t,a)}catch(n){ak(e,t,n)}}function aC(e,t,n){null!==n&&\"object\"==typeof n&&\"function\"==typeof n.then?n.then(function(n){a_(e,t,n)},function(n){return ak(e,t,n)}):a_(e,t,n)}function a_(e,t,n){t.status=\"fulfilled\",t.value=n,aE(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,aw(e,n)))}function ak(e,t,n){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do t.status=\"rejected\",t.reason=n,aE(t),t=t.next;while(t!==r)}e.action=null}function aE(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function aj(e,t){return t}function aS(e,t){if(rj){var n=lL.formState;if(null!==n){e:{var r=oY;if(rj){if(rE){t:{for(var o=rE,a=rO;8!==o.nodeType;)if(!a||null===(o=cB(o.nextSibling))){o=null;break t}o=\"F!\"===(a=o.data)||\"F\"===a?o:null}if(o){rE=cB(o.nextSibling),r=\"F!\"===o.data;break e}}rP(r)}r=!1}r&&(t=n[0])}}return(n=ar()).memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:aj,lastRenderedState:t},n.queue=r,n=a5.bind(null,oY,r),r.dispatch=n,r=ab(!1),a=a6.bind(null,oY,!1,r.queue),r=ar(),o={state:t,dispatch:null,action:e,pending:null},r.queue=o,n=ax.bind(null,oY,o,a,n),o.dispatch=n,r.memoizedState=e,[t,n,!1]}function aO(e){return aB(ao(),oK,e)}function aB(e,t,n){if(t=ad(e,t,aj)[0],e=au(ac)[0],\"object\"==typeof t&&null!==t&&\"function\"==typeof t.then)try{var r=ai(t)}catch(e){if(e===or)throw oa;throw e}else r=t;var o=(t=ao()).queue,a=o.dispatch;return n!==t.memoizedState&&(oY.flags|=2048,aT(9,{destroy:void 0},aP.bind(null,o,n),null)),[r,a,e]}function aP(e,t){e.action=t}function aI(e){var t=ao(),n=oK;if(null!==n)return aB(t,n,e);ao(),t=t.memoizedState;var r=(n=ao()).queue.dispatch;return n.memoizedState=e,[t,r,!1]}function aT(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},null===(t=oY.updateQueue)&&(t=aa(),oY.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function az(){return ao().memoizedState}function aD(e,t,n,r){var o=ar();oY.flags|=e,o.memoizedState=aT(1|t,{destroy:void 0},n,void 0===r?null:r)}function aL(e,t,n,r){var o=ao();r=void 0===r?null:r;var a=o.memoizedState.inst;null!==oK&&null!==r&&o3(r,oK.memoizedState.deps)?o.memoizedState=aT(t,a,n,r):(oY.flags|=e,o.memoizedState=aT(1|t,a,n,r))}function aN(e,t){aD(8390656,8,e,t)}function aR(e,t){aL(2048,8,e,t)}function aM(e,t){return aL(4,2,e,t)}function aZ(e,t){return aL(4,4,e,t)}function aU(e,t){if(\"function\"==typeof t){var n=t(e=e());return function(){\"function\"==typeof n?n():t(null)}}if(null!=t)return t.current=e=e(),function(){t.current=null}}function aF(e,t,n){n=null!=n?n.concat([e]):null,aL(4,4,aU.bind(null,t,e),n)}function aq(){}function aH(e,t){var n=ao();t=void 0===t?null:t;var r=n.memoizedState;return null!==t&&o3(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function aV(e,t){var n=ao();t=void 0===t?null:t;var r=n.memoizedState;if(null!==t&&o3(t,r[1]))return r[0];if(r=e(),oJ){eh(!0);try{e()}finally{eh(!1)}}return n.memoizedState=[r,t],r}function a$(e,t,n){return void 0===n||0!=(0x40000000&oW)?e.memoizedState=t:(e.memoizedState=n,e=so(),oY.lanes|=e,l$|=e,n)}function aW(e,t,n,r){return nk(n,t)?n:null!==oT.current?(nk(e=a$(e,n,r),t)||(iA=!0),e):0==(42&oW)||0!=(0x40000000&oW)?(iA=!0,e.memoizedState=n):(e=so(),oY.lanes|=e,l$|=e,t)}function aY(e,t,n,r,o){var a=T.p;T.p=0!==a&&8>a?a:8;var i=I.T,l={};I.T=l,a6(e,!1,t,n);try{var s=o(),c=I.S;if(null!==c&&c(l,s),null!==s&&\"object\"==typeof s&&\"function\"==typeof s.then){var u,d,f=(u=[],d={status:\"pending\",value:null,reason:null,then:function(e){u.push(e)}},s.then(function(){d.status=\"fulfilled\",d.value=r;for(var e=0;e<u.length;e++)(0,u[e])(r)},function(e){for(d.status=\"rejected\",d.reason=e,e=0;e<u.length;e++)(0,u[e])(void 0)}),d);a3(e,t,f,sr(e))}else a3(e,t,r,sr(e))}catch(n){a3(e,t,{then:function(){},status:\"rejected\",reason:n},sr())}finally{T.p=a,null!==i&&null!==l.types&&(i.types=l.types),I.T=i}}function aK(){}function aX(e,t,n,r){if(5!==e.tag)throw Error(l(476));var o=aG(e).queue;aY(e,o,t,z,null===n?aK:function(){return aQ(e),n(r)})}function aG(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:z,baseState:z,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:z},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function aQ(e){var t=aG(e);null===t.next&&(t=e.alternate.memoizedState),a3(e,t.next.queue,{},sr())}function aJ(){return rY(c9)}function a0(){return ao().memoizedState}function a1(){return ao().memoizedState}function a2(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=sr(),r=ok(t,e=o_(n),n);null!==r&&(sa(r,t,n),oE(r,t,n)),t={cache:r1()},e.payload=t;return}t=t.return}}function a4(e,t,n){var r=sr();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},a9(e)?a8(t,n):null!==(n=n5(e,t,n,r))&&(sa(n,e,r),a7(n,t,r))}function a5(e,t,n){a3(e,t,n,sr())}function a3(e,t,n,r){var o={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(a9(e))a8(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=a(i,n);if(o.hasEagerState=!0,o.eagerState=l,nk(l,i))return n4(e,t,o,0),null===lL&&n2(),!1}catch(e){}finally{}if(null!==(n=n5(e,t,o,r)))return sa(n,e,r),a7(n,t,r),!0}return!1}function a6(e,t,n,r){if(r={lane:2,revertLane:sX(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},a9(e)){if(t)throw Error(l(479))}else null!==(t=n5(e,n,r,2))&&sa(t,e,2)}function a9(e){var t=e.alternate;return e===oY||null!==t&&t===oY}function a8(e,t){oQ=oG=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function a7(e,t,n){if(0!=(4194048&n)){var r=t.lanes;r&=e.pendingLanes,t.lanes=n|=r,eS(e,n)}}var ie={readContext:rY,use:al,useCallback:o5,useContext:o5,useEffect:o5,useImperativeHandle:o5,useLayoutEffect:o5,useInsertionEffect:o5,useMemo:o5,useReducer:o5,useRef:o5,useState:o5,useDebugValue:o5,useDeferredValue:o5,useTransition:o5,useSyncExternalStore:o5,useId:o5,useHostTransitionStatus:o5,useFormState:o5,useActionState:o5,useOptimistic:o5,useMemoCache:o5,useCacheRefresh:o5},it={readContext:rY,use:al,useCallback:function(e,t){return ar().memoizedState=[e,void 0===t?null:t],e},useContext:rY,useEffect:aN,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,aD(4194308,4,aU.bind(null,t,e),n)},useLayoutEffect:function(e,t){return aD(4194308,4,e,t)},useInsertionEffect:function(e,t){aD(4,2,e,t)},useMemo:function(e,t){var n=ar();t=void 0===t?null:t;var r=e();if(oJ){eh(!0);try{e()}finally{eh(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ar();if(void 0!==n){var o=n(t);if(oJ){eh(!0);try{n(t)}finally{eh(!1)}}}else o=t;return r.memoizedState=r.baseState=o,r.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},e=e.dispatch=a4.bind(null,oY,e),[r.memoizedState,e]},useRef:function(e){return ar().memoizedState=e={current:e}},useState:function(e){var t=(e=ab(e)).queue,n=a5.bind(null,oY,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:aq,useDeferredValue:function(e,t){return a$(ar(),e,t)},useTransition:function(){var e=ab(!1);return e=aY.bind(null,oY,e.queue,!0,!1),ar().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=oY,o=ar();if(rj){if(void 0===n)throw Error(l(407));n=n()}else{if(n=t(),null===lL)throw Error(l(349));0!=(124&lR)||ah(r,t,n)}o.memoizedState=n;var a={value:n,getSnapshot:t};return o.queue=a,aN(ag.bind(null,r,a,e),[e]),r.flags|=2048,aT(9,{destroy:void 0},am.bind(null,r,a,n,t),null),n},useId:function(){var e=ar(),t=lL.identifierPrefix;if(rj){var n=rb,r=rv;t=\"_\"+t+\"R_\"+(n=(r&~(1<<32-em(r)-1)).toString(32)+n),0<(n=o0++)&&(t+=\"H\"+n.toString(32)),t+=\"_\"}else t=\"_\"+t+\"r_\"+(n=o4++).toString(32)+\"_\";return e.memoizedState=t},useHostTransitionStatus:aJ,useFormState:aS,useActionState:aS,useOptimistic:function(e){var t=ar();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=a6.bind(null,oY,!0,n),n.dispatch=t,[e,t]},useMemoCache:as,useCacheRefresh:function(){return ar().memoizedState=a2.bind(null,oY)}},ir={readContext:rY,use:al,useCallback:aH,useContext:rY,useEffect:aR,useImperativeHandle:aF,useInsertionEffect:aM,useLayoutEffect:aZ,useMemo:aV,useReducer:au,useRef:az,useState:function(){return au(ac)},useDebugValue:aq,useDeferredValue:function(e,t){return aW(ao(),oK.memoizedState,e,t)},useTransition:function(){var e=au(ac)[0],t=ao().memoizedState;return[\"boolean\"==typeof e?e:ai(e),t]},useSyncExternalStore:ap,useId:a0,useHostTransitionStatus:aJ,useFormState:aO,useActionState:aO,useOptimistic:function(e,t){return aA(ao(),oK,e,t)},useMemoCache:as,useCacheRefresh:a1},io={readContext:rY,use:al,useCallback:aH,useContext:rY,useEffect:aR,useImperativeHandle:aF,useInsertionEffect:aM,useLayoutEffect:aZ,useMemo:aV,useReducer:af,useRef:az,useState:function(){return af(ac)},useDebugValue:aq,useDeferredValue:function(e,t){var n=ao();return null===oK?a$(n,e,t):aW(n,oK.memoizedState,e,t)},useTransition:function(){var e=af(ac)[0],t=ao().memoizedState;return[\"boolean\"==typeof e?e:ai(e),t]},useSyncExternalStore:ap,useId:a0,useHostTransitionStatus:aJ,useFormState:aI,useActionState:aI,useOptimistic:function(e,t){var n=ao();return null!==oK?aA(n,oK,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:as,useCacheRefresh:a1};function ia(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:f({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ii={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=sr(),o=o_(r);o.payload=t,null!=n&&(o.callback=n),null!==(t=ok(e,o,r))&&(sa(t,e,r),oE(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=sr(),o=o_(r);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=ok(e,o,r))&&(sa(t,e,r),oE(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=sr(),r=o_(n);r.tag=2,null!=t&&(r.callback=t),null!==(t=ok(e,r,n))&&(sa(t,e,n),oE(t,e,n))}};function il(e,t,n,r,o,a,i){return\"function\"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||!nE(n,r)||!nE(o,a)}function is(e,t,n,r){e=t.state,\"function\"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),\"function\"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ii.enqueueReplaceState(t,t.state,null)}function ic(e,t){var n=t;if(\"ref\"in t)for(var r in n={},t)\"ref\"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var o in n===t&&(n=f({},n)),e)void 0===n[o]&&(n[o]=e[o]);return n}function iu(e){nQ(e)}function id(e){console.error(e)}function ip(e){nQ(e)}function ih(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function im(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function ig(e,t,n){return(n=o_(n)).tag=3,n.payload={element:null},n.callback=function(){ih(e,t)},n}function iy(e){return(e=o_(e)).tag=3,e}function iv(e,t,n,r){var o=n.type.getDerivedStateFromError;if(\"function\"==typeof o){var a=r.value;e.payload=function(){return o(a)},e.callback=function(){im(t,n,r)}}var i=n.stateNode;null!==i&&\"function\"==typeof i.componentDidCatch&&(e.callback=function(){im(t,n,r),\"function\"!=typeof o&&(null===l4?l4=new Set([this]):l4.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:\"\"})})}var ib=Error(l(461)),iA=!1;function ix(e,t,n,r){t.child=null===e?oA(t,null,n,r):ob(t,e.child,n,r)}function iw(e,t,n,r,o){n=n.render;var a=t.ref;if(\"ref\"in r){var i={};for(var l in r)\"ref\"!==l&&(i[l]=r[l])}else i=r;return(rW(t),r=o6(e,t,n,i,a,o),l=ae(),null===e||iA)?(rj&&l&&rw(t),t.flags|=1,ix(e,t,r,o),t.child):(at(e,t,o),iV(e,t,o))}function iC(e,t,n,r,o){if(null===e){var a=n.type;return\"function\"!=typeof a||rt(a)||void 0!==a.defaultProps||null!==n.compare?((e=ro(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,i_(e,t,a,r,o))}if(a=e.child,!i$(e,o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:nE)(i,r)&&e.ref===t.ref)return iV(e,t,o)}return t.flags|=1,(e=rn(a,r)).ref=t.ref,e.return=t,t.child=e}function i_(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(nE(a,r)&&e.ref===t.ref)if(iA=!1,t.pendingProps=r=a,!i$(e,o))return t.lanes=e.lanes,iV(e,t,o);else 0!=(131072&e.flags)&&(iA=!0)}return iP(e,t,n,r,o)}function ik(e,t,n,r){var o=r.children,a=null!==e?e.memoizedState:null;if(null===e&&null===t.stateNode&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),\"hidden\"===r.mode){if(0!=(128&t.flags)){if(r=null!==a?a.baseLanes|n:n,null!==e){for(a=0,o=t.child=e.child;null!==o;)a=a|o.lanes|o.childLanes,o=o.sibling;t.childLanes=a&~r}else t.childLanes=0,t.child=null;return ij(e,t,r,n)}if(0==(0x20000000&n))return t.lanes=t.childLanes=0x20000000,ij(e,t,null!==a?a.baseLanes|n:n,n);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&ot(t,null!==a?a.cachePool:null),null!==a?oD(t,a):oL(),oF(t)}else null!==a?(ot(t,a.cachePool),oD(t,a),oq(t),t.memoizedState=null):(null!==e&&ot(t,null),oL(),oq(t));return ix(e,t,o,n),t.child}function iE(e,t){return null!==e&&22===e.tag||null!==t.stateNode||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function ij(e,t,n,r){var o=oe();return t.memoizedState={baseLanes:n,cachePool:o=null===o?null:{parent:r0._currentValue,pool:o}},null!==e&&ot(t,null),oL(),oF(t),null!==e&&rV(e,t,r,!0),null}function iS(e,t){return(t=iZ({mode:t.mode,children:t.children},e.mode)).ref=e.ref,e.child=t,t.return=e,t}function iO(e,t,n){return ob(t,e.child,null,n),e=iS(t,t.pendingProps),e.flags|=2,oH(t),t.memoizedState=null,e}function iB(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if(\"function\"!=typeof n&&\"object\"!=typeof n)throw Error(l(284));(null===e||e.ref!==n)&&(t.flags|=4194816)}}function iP(e,t,n,r,o){return(rW(t),n=o6(e,t,n,r,void 0,o),r=ae(),null===e||iA)?(rj&&r&&rw(t),t.flags|=1,ix(e,t,n,o),t.child):(at(e,t,o),iV(e,t,o))}function iI(e,t,n,r,o,a){return(rW(t),t.updateQueue=null,n=o8(t,r,n,o),o9(e),r=ae(),null===e||iA)?(rj&&r&&rw(t),t.flags|=1,ix(e,t,n,a),t.child):(at(e,t,a),iV(e,t,a))}function iT(e,t,n,r,o){if(rW(t),null===t.stateNode){var a=n8,i=n.contextType;\"object\"==typeof i&&null!==i&&(a=rY(i)),t.memoizedState=null!==(a=new n(r,a)).state&&void 0!==a.state?a.state:null,a.updater=ii,t.stateNode=a,a._reactInternals=t,(a=t.stateNode).props=r,a.state=t.memoizedState,a.refs={},ow(t),i=n.contextType,a.context=\"object\"==typeof i&&null!==i?rY(i):n8,a.state=t.memoizedState,\"function\"==typeof(i=n.getDerivedStateFromProps)&&(ia(t,n,i,r),a.state=t.memoizedState),\"function\"==typeof n.getDerivedStateFromProps||\"function\"==typeof a.getSnapshotBeforeUpdate||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(i=a.state,\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),i!==a.state&&ii.enqueueReplaceState(a,a.state,null),oB(t,r,a,o),oO(),a.state=t.memoizedState),\"function\"==typeof a.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){a=t.stateNode;var l=t.memoizedProps,s=ic(n,l);a.props=s;var c=a.context,u=n.contextType;i=n8,\"object\"==typeof u&&null!==u&&(i=rY(u));var d=n.getDerivedStateFromProps;u=\"function\"==typeof d||\"function\"==typeof a.getSnapshotBeforeUpdate,l=t.pendingProps!==l,u||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||(l||c!==i)&&is(t,a,r,i),ox=!1;var f=t.memoizedState;a.state=f,oB(t,r,a,o),oO(),c=t.memoizedState,l||f!==c||ox?(\"function\"==typeof d&&(ia(t,n,d,r),c=t.memoizedState),(s=ox||il(t,n,s,r,f,c,i))?(u||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),\"function\"==typeof a.componentDidMount&&(t.flags|=4194308)):(\"function\"==typeof a.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),a.props=r,a.state=c,a.context=i,r=s):(\"function\"==typeof a.componentDidMount&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,oC(e,t),u=ic(n,i=t.memoizedProps),a.props=u,d=t.pendingProps,f=a.context,c=n.contextType,s=n8,\"object\"==typeof c&&null!==c&&(s=rY(c)),(c=\"function\"==typeof(l=n.getDerivedStateFromProps)||\"function\"==typeof a.getSnapshotBeforeUpdate)||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||(i!==d||f!==s)&&is(t,a,r,s),ox=!1,f=t.memoizedState,a.state=f,oB(t,r,a,o),oO();var p=t.memoizedState;i!==d||f!==p||ox||null!==e&&null!==e.dependencies&&r$(e.dependencies)?(\"function\"==typeof l&&(ia(t,n,l,r),p=t.memoizedState),(u=ox||il(t,n,u,r,f,p,s)||null!==e&&null!==e.dependencies&&r$(e.dependencies))?(c||\"function\"!=typeof a.UNSAFE_componentWillUpdate&&\"function\"!=typeof a.componentWillUpdate||(\"function\"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,s),\"function\"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,s)),\"function\"==typeof a.componentDidUpdate&&(t.flags|=4),\"function\"==typeof a.getSnapshotBeforeUpdate&&(t.flags|=1024)):(\"function\"!=typeof a.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),\"function\"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=s,r=u):(\"function\"!=typeof a.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),\"function\"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,iB(e,t),r=0!=(128&t.flags),a||r?(a=t.stateNode,n=r&&\"function\"!=typeof n.getDerivedStateFromError?null:a.render(),t.flags|=1,null!==e&&r?(t.child=ob(t,e.child,null,o),t.child=ob(t,null,n,o)):ix(e,t,n,o),t.memoizedState=a.state,e=t.child):e=iV(e,t,o),e}function iz(e,t,n,r){return rD(),t.flags|=256,ix(e,t,n,r),t.child}var iD={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function iL(e){return{baseLanes:e,cachePool:on()}}function iN(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=lK),e}function iR(e,t,n){var r,o=t.pendingProps,a=!1,i=0!=(128&t.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!=(2&oV.current)),r&&(a=!0,t.flags&=-129),r=0!=(32&t.flags),t.flags&=-33,null===e){if(rj){if(a?oZ(t):oq(t),(e=rE)?null!==(e=null!==(e=cj(e,rO))&&\"&\"!==e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==ry?{id:rv,overflow:rb}:null,retryLane:0x20000000,hydrationErrors:null},(n=rl(e)).return=t,t.child=n,rk=t,rE=null):e=null,null===e)throw rP(t);return cO(e)?t.lanes=32:t.lanes=0x20000000,null}var s=o.children;return(o=o.fallback,a)?(oq(t),s=iZ({mode:\"hidden\",children:s},a=t.mode),o=ra(o,a,n,null),s.return=t,o.return=t,s.sibling=o,t.child=s,(o=t.child).memoizedState=iL(n),o.childLanes=iN(e,r,n),t.memoizedState=iD,iE(null,o)):(oZ(t),iM(t,s))}var c=e.memoizedState;if(null!==c&&null!==(s=c.dehydrated)){if(i)256&t.flags?(oZ(t),t.flags&=-257,t=iU(e,t,n)):null!==t.memoizedState?(oq(t),t.child=e.child,t.flags|=128,t=null):(oq(t),s=o.fallback,a=t.mode,o=iZ({mode:\"visible\",children:o.children},a),s=ra(s,a,n,null),s.flags|=2,o.return=t,s.return=t,o.sibling=s,t.child=o,ob(t,e.child,null,n),(o=t.child).memoizedState=iL(n),o.childLanes=iN(e,r,n),t.memoizedState=iD,t=iE(null,o));else if(oZ(t),cO(s)){if(r=s.nextSibling&&s.nextSibling.dataset)var u=r.dgst;r=u,(o=Error(l(419))).stack=\"\",o.digest=r,rN({value:o,source:null,stack:null}),t=iU(e,t,n)}else if(iA||rV(e,t,n,!1),r=0!=(n&e.childLanes),iA||r){if(null!==(r=lL)&&0!==(o=eO(r,n))&&o!==c.retryLane)throw c.retryLane=o,n3(e,o),sa(r,e,o),ib;cS(s)||sg(),t=iU(e,t,n)}else cS(s)?(t.flags|=192,t.child=e.child,t=null):(e=c.treeContext,rE=cB(s.nextSibling),rk=t,rj=!0,rS=null,rO=!1,null!==e&&r_(t,e),t=iM(t,o.children),t.flags|=4096);return t}return a?(oq(t),s=o.fallback,a=t.mode,u=(c=e.child).sibling,(o=rn(c,{mode:\"hidden\",children:o.children})).subtreeFlags=0x3e00000&c.subtreeFlags,null!==u?s=rn(u,s):(s=ra(s,a,n,null),s.flags|=2),s.return=t,o.return=t,o.sibling=s,t.child=o,iE(null,o),o=t.child,null===(s=e.child.memoizedState)?s=iL(n):(null!==(a=s.cachePool)?(c=r0._currentValue,a=a.parent!==c?{parent:c,pool:c}:a):a=on(),s={baseLanes:s.baseLanes|n,cachePool:a}),o.memoizedState=s,o.childLanes=iN(e,r,n),t.memoizedState=iD,iE(e.child,o)):(oZ(t),e=(n=e.child).sibling,(n=rn(n,{mode:\"visible\",children:o.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function iM(e,t){return(t=iZ({mode:\"visible\",children:t},e.mode)).return=e,e.child=t}function iZ(e,t){return(e=re(22,e,null,t)).lanes=0,e}function iU(e,t,n){return ob(t,e.child,null,n),e=iM(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function iF(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),rq(e.return,t,n)}function iq(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,treeForkCount:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.treeForkCount=a)}function iH(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;r=r.children;var i=oV.current,l=0!=(2&i);if(l?(i=1&i|2,t.flags|=128):i&=1,M(oV,i),ix(e,t,r,n),r=rj?rh:0,!l&&null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&iF(e,n,t);else if(19===e.tag)iF(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(o){case\"forwards\":for(o=null,n=t.child;null!==n;)null!==(e=n.alternate)&&null===o$(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),iq(t,!1,o,n,a,r);break;case\"backwards\":case\"unstable_legacy-backwards\":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===o$(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}iq(t,!0,n,null,a,r);break;case\"together\":iq(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function iV(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),l$|=t.lanes,0==(n&t.childLanes)){if(null===e)return null;else if(rV(e,t,n,!1),0==(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(l(153));if(null!==t.child){for(n=rn(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=rn(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function i$(e,t){return 0!=(e.lanes&t)||!!(null!==(e=e.dependencies)&&r$(e))}function iW(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)iA=!0;else{if(!i$(e,n)&&0==(128&t.flags))return iA=!1,function(e,t,n){switch(t.tag){case 3:H(t,t.stateNode.containerInfo),rU(t,r0,e.memoizedState.cache),rD();break;case 27:case 5:$(t);break;case 4:H(t,t.stateNode.containerInfo);break;case 10:rU(t,t.type,t.memoizedProps.value);break;case 31:if(null!==t.memoizedState)return t.flags|=128,oU(t),null;break;case 13:var r=t.memoizedState;if(null!==r){if(null!==r.dehydrated)return oZ(t),t.flags|=128,null;if(0!=(n&t.child.childLanes))return iR(e,t,n);return oZ(t),null!==(e=iV(e,t,n))?e.sibling:null}oZ(t);break;case 19:var o=0!=(128&e.flags);if((r=0!=(n&t.childLanes))||(rV(e,t,n,!1),r=0!=(n&t.childLanes)),o){if(r)return iH(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),M(oV,oV.current),!r)return null;break;case 22:return t.lanes=0,ik(e,t,n,t.pendingProps);case 24:rU(t,r0,e.memoizedState.cache)}return iV(e,t,n)}(e,t,n);iA=0!=(131072&e.flags)}else iA=!1,rj&&0!=(1048576&t.flags)&&rx(t,rh,t.index);switch(t.lanes=0,t.tag){case 16:e:{var r=t.pendingProps;if(e=oc(t.elementType),t.type=e,\"function\"==typeof e)rt(e)?(r=ic(e,r),t.tag=1,t=iT(null,t,e,r,n)):(t.tag=0,t=iP(null,t,e,r,n));else{if(null!=e){var o=e.$$typeof;if(o===x){t.tag=11,t=iw(null,t,e,r,n);break e}if(o===_){t.tag=14,t=iC(null,t,e,r,n);break e}}throw Error(l(306,t=function e(t){if(null==t)return null;if(\"function\"==typeof t)return t.$$typeof===B?null:t.displayName||t.name||null;if(\"string\"==typeof t)return t;switch(t){case g:return\"Fragment\";case v:return\"Profiler\";case y:return\"StrictMode\";case w:return\"Suspense\";case C:return\"SuspenseList\";case E:return\"Activity\"}if(\"object\"==typeof t)switch(t.$$typeof){case m:return\"Portal\";case A:return t.displayName||\"Context\";case b:return(t._context.displayName||\"Context\")+\".Consumer\";case x:var n=t.render;return(t=t.displayName)||(t=\"\"!==(t=n.displayName||n.name||\"\")?\"ForwardRef(\"+t+\")\":\"ForwardRef\"),t;case _:return null!==(n=t.displayName||null)?n:e(t.type)||\"Memo\";case k:n=t._payload,t=t._init;try{return e(t(n))}catch(e){}}return null}(e)||e,\"\"))}}return t;case 0:return iP(e,t,t.type,t.pendingProps,n);case 1:return o=ic(r=t.type,t.pendingProps),iT(e,t,r,o,n);case 3:e:{if(H(t,t.stateNode.containerInfo),null===e)throw Error(l(387));r=t.pendingProps;var a=t.memoizedState;o=a.element,oC(e,t),oB(t,r,null,n);var i=t.memoizedState;if(rU(t,r0,r=i.cache),r!==a.cache&&rH(t,[r0],n,!0),oO(),r=i.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=a,t.memoizedState=a,256&t.flags){t=iz(e,t,r,n);break e}else if(r!==o){rN(o=ru(Error(l(424)),t)),t=iz(e,t,r,n);break e}else for(rE=cB((e=9===(e=t.stateNode.containerInfo).nodeType?e.body:\"HTML\"===e.nodeName?e.ownerDocument.body:e).firstChild),rk=t,rj=!0,rS=null,rO=!0,n=oA(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling;else{if(rD(),r===o){t=iV(e,t,n);break e}ix(e,t,r,n)}t=t.child}return t;case 26:return iB(e,t),null===e?(n=cF(t.type,null,t.pendingProps,null))?t.memoizedState=n:rj||(n=t.type,e=t.pendingProps,(r=cp(F.current).createElement(n))[eD]=t,r[eL]=e,cu(r,n,e),eY(r),t.stateNode=r):t.memoizedState=cF(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return $(t),null===e&&rj&&(r=t.stateNode=cz(t.type,t.pendingProps,F.current),rk=t,rO=!0,o=rE,cC(t.type)?(cP=o,rE=cB(r.firstChild)):rE=o),ix(e,t,t.pendingProps.children,n),iB(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&rj&&((o=r=rE)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(\"INPUT\"!==e.nodeName||\"hidden\"!==e.type))break}else if(r){if(!e[eF])switch(t){case\"meta\":if(!e.hasAttribute(\"itemprop\"))break;return e;case\"link\":if(\"stylesheet\"===(o=e.getAttribute(\"rel\"))&&e.hasAttribute(\"data-precedence\")||o!==n.rel||e.getAttribute(\"href\")!==(null==n.href||\"\"===n.href?null:n.href)||e.getAttribute(\"crossorigin\")!==(null==n.crossOrigin?null:n.crossOrigin)||e.getAttribute(\"title\")!==(null==n.title?null:n.title))break;return e;case\"style\":if(e.hasAttribute(\"data-precedence\"))break;return e;case\"script\":if(((o=e.getAttribute(\"src\"))!==(null==n.src?null:n.src)||e.getAttribute(\"type\")!==(null==n.type?null:n.type)||e.getAttribute(\"crossorigin\")!==(null==n.crossOrigin?null:n.crossOrigin))&&o&&e.hasAttribute(\"async\")&&!e.hasAttribute(\"itemprop\"))break;return e;default:return e}}else{if(\"input\"!==t||\"hidden\"!==e.type)return e;var o=null==n.name?null:\"\"+n.name;if(\"hidden\"===n.type&&e.getAttribute(\"name\")===o)return e}if(null===(e=cB(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,rO))?(t.stateNode=r,rk=t,rE=cB(r.firstChild),rO=!1,o=!0):o=!1),o||rP(t)),$(t),o=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,r=a.children,cg(o,a)?r=null:null!==i&&cg(o,i)&&(t.flags|=32),null!==t.memoizedState&&(c9._currentValue=o=o6(e,t,o7,null,null,n)),iB(e,t),ix(e,t,r,n),t.child;case 6:return null===e&&rj&&((e=n=rE)&&(null!==(n=function(e,t,n){if(\"\"===t)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||\"INPUT\"!==e.nodeName||\"hidden\"!==e.type)&&!n||null===(e=cB(e.nextSibling)))return null;return e}(n,t.pendingProps,rO))?(t.stateNode=n,rk=t,rE=null,e=!0):e=!1),e||rP(t)),null;case 13:return iR(e,t,n);case 4:return H(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ob(t,null,r,n):ix(e,t,r,n),t.child;case 11:return iw(e,t,t.type,t.pendingProps,n);case 7:return ix(e,t,t.pendingProps,n),t.child;case 8:case 12:return ix(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,rU(t,t.type,r.value),ix(e,t,r.children,n),t.child;case 9:return o=t.type._context,r=t.pendingProps.children,rW(t),r=r(o=rY(o)),t.flags|=1,ix(e,t,r,n),t.child;case 14:return iC(e,t,t.type,t.pendingProps,n);case 15:return i_(e,t,t.type,t.pendingProps,n);case 19:return iH(e,t,n);case 31:var s=e,c=t,u=n,d=c.pendingProps,f=0!=(128&c.flags);if(c.flags&=-129,null===s){if(rj){if(\"hidden\"===d.mode)return s=iS(c,d),c.lanes=0x20000000,iE(null,s);if(oU(c),(s=rE)?null!==(s=null!==(s=cj(s,rO))&&\"&\"===s.data?s:null)&&(c.memoizedState={dehydrated:s,treeContext:null!==ry?{id:rv,overflow:rb}:null,retryLane:0x20000000,hydrationErrors:null},(u=rl(s)).return=c,c.child=u,rk=c,rE=null):s=null,null===s)throw rP(c);return c.lanes=0x20000000,null}return iS(c,d)}var p=s.memoizedState;if(null!==p){var h=p.dehydrated;if(oU(c),f)if(256&c.flags)c.flags&=-257,c=iO(s,c,u);else if(null!==c.memoizedState)c.child=s.child,c.flags|=128,c=null;else throw Error(l(558));else if(iA||rV(s,c,u,!1),f=0!=(u&s.childLanes),iA||f){if(null!==(d=lL)&&0!==(h=eO(d,u))&&h!==p.retryLane)throw p.retryLane=h,n3(s,h),sa(d,s,h),ib;sg(),c=iO(s,c,u)}else s=p.treeContext,rE=cB(h.nextSibling),rk=c,rj=!0,rS=null,rO=!1,null!==s&&r_(c,s),c=iS(c,d),c.flags|=4096;return c}return(s=rn(s.child,{mode:d.mode,children:d.children})).ref=c.ref,c.child=s,s.return=c,s;case 22:return ik(e,t,n,t.pendingProps);case 24:return rW(t),r=rY(r0),null===e?(null===(o=oe())&&(o=lL,a=r1(),o.pooledCache=a,a.refCount++,null!==a&&(o.pooledCacheLanes|=n),o=a),t.memoizedState={parent:r,cache:o},ow(t),rU(t,r0,o)):(0!=(e.lanes&n)&&(oC(e,t),oB(t,null,null,n),oO()),o=e.memoizedState,a=t.memoizedState,o.parent!==r?(o={parent:r,cache:r},t.memoizedState=o,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=o),rU(t,r0,r)):(rU(t,r0,r=a.cache),r!==o.cache&&rH(t,[r0],n,!0))),ix(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(l(156,t.tag))}function iY(e){e.flags|=4}function iK(e,t,n,r,o){if((t=0!=(32&e.mode))&&(t=!1),t){if(e.flags|=0x1000000,(0x13ffff40&o)===o)if(e.stateNode.complete)e.flags|=8192;else if(sp())e.flags|=8192;else throw ou=oi,oo}else e.flags&=-0x1000001}function iX(e,t){if(\"stylesheet\"!==t.type||0!=(4&t.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!c1(t))if(sp())e.flags|=8192;else throw ou=oi,oo}function iG(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?e_():0x20000000,e.lanes|=t,lX|=t)}function iQ(e,t){if(!rj)switch(e.tailMode){case\"hidden\":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case\"collapsed\":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function iJ(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=0x3e00000&o.subtreeFlags,r|=0x3e00000&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function i0(e,t){switch(rC(t),t.tag){case 3:rF(r0),V();break;case 26:case 27:case 5:W(t);break;case 4:V();break;case 31:null!==t.memoizedState&&oH(t);break;case 13:oH(t);break;case 19:R(oV);break;case 10:rF(t.type);break;case 22:case 23:oH(t),oN(),null!==e&&R(r7);break;case 24:rF(r0)}}function i1(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var o=r.next;n=o;do{if((n.tag&e)===e){r=void 0;var a=n.create;n.inst.destroy=r=a()}n=n.next}while(n!==o)}}catch(e){sP(t,t.return,e)}}function i2(e,t,n){try{var r=t.updateQueue,o=null!==r?r.lastEffect:null;if(null!==o){var a=o.next;r=a;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,o=t;try{l()}catch(e){sP(o,n,e)}}}r=r.next}while(r!==a)}}catch(e){sP(t,t.return,e)}}function i4(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{oI(t,n)}catch(t){sP(e,e.return,t)}}}function i5(e,t,n){n.props=ic(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){sP(e,t,n)}}function i3(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}\"function\"==typeof n?e.refCleanup=n(r):n.current=r}}catch(n){sP(e,t,n)}}function i6(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if(\"function\"==typeof r)try{r()}catch(n){sP(e,t,n)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if(\"function\"==typeof n)try{n(null)}catch(n){sP(e,t,n)}else n.current=null}function i9(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{switch(t){case\"button\":case\"input\":case\"select\":case\"textarea\":n.autoFocus&&r.focus();break;case\"img\":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){sP(e,e.return,t)}}function i8(e,t,n){try{var r=e.stateNode;(function(e,t,n,r){switch(t){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"input\":var o=null,a=null,i=null,s=null,c=null,u=null,d=null;for(h in n){var f=n[h];if(n.hasOwnProperty(h)&&null!=f)switch(h){case\"checked\":case\"value\":break;case\"defaultValue\":c=f;default:r.hasOwnProperty(h)||cs(e,t,h,null,r,f)}}for(var p in r){var h=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=h||null!=f))switch(p){case\"type\":a=h;break;case\"name\":o=h;break;case\"checked\":u=h;break;case\"defaultChecked\":d=h;break;case\"value\":i=h;break;case\"defaultValue\":s=h;break;case\"children\":case\"dangerouslySetInnerHTML\":if(null!=h)throw Error(l(137,t));break;default:h!==f&&cs(e,t,p,h,r,f)}}tn(e,i,s,c,u,d,a,o);return;case\"select\":for(a in h=i=s=p=null,n)if(c=n[a],n.hasOwnProperty(a)&&null!=c)switch(a){case\"value\":break;case\"multiple\":h=c;default:r.hasOwnProperty(a)||cs(e,t,a,null,r,c)}for(o in r)if(a=r[o],c=n[o],r.hasOwnProperty(o)&&(null!=a||null!=c))switch(o){case\"value\":p=a;break;case\"defaultValue\":s=a;break;case\"multiple\":i=a;default:a!==c&&cs(e,t,o,a,r,c)}t=s,n=i,r=h,null!=p?ta(e,!!n,p,!1):!!r!=!!n&&(null!=t?ta(e,!!n,t,!0):ta(e,!!n,n?[]:\"\",!1));return;case\"textarea\":for(s in h=p=null,n)if(o=n[s],n.hasOwnProperty(s)&&null!=o&&!r.hasOwnProperty(s))switch(s){case\"value\":case\"children\":break;default:cs(e,t,s,null,r,o)}for(i in r)if(o=r[i],a=n[i],r.hasOwnProperty(i)&&(null!=o||null!=a))switch(i){case\"value\":p=o;break;case\"defaultValue\":h=o;break;case\"children\":break;case\"dangerouslySetInnerHTML\":if(null!=o)throw Error(l(91));break;default:o!==a&&cs(e,t,i,o,r,a)}ti(e,p,h);return;case\"option\":for(var m in n)p=n[m],n.hasOwnProperty(m)&&null!=p&&!r.hasOwnProperty(m)&&(\"selected\"===m?e.selected=!1:cs(e,t,m,null,r,p));for(c in r)p=r[c],h=n[c],r.hasOwnProperty(c)&&p!==h&&(null!=p||null!=h)&&(\"selected\"===c?e.selected=p&&\"function\"!=typeof p&&\"symbol\"!=typeof p:cs(e,t,c,p,r,h));return;case\"img\":case\"link\":case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":case\"menuitem\":for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&cs(e,t,g,null,r,p);for(u in r)if(p=r[u],h=n[u],r.hasOwnProperty(u)&&p!==h&&(null!=p||null!=h))switch(u){case\"children\":case\"dangerouslySetInnerHTML\":if(null!=p)throw Error(l(137,t));break;default:cs(e,t,u,p,r,h)}return;default:if(tf(t)){for(var y in n)p=n[y],n.hasOwnProperty(y)&&void 0!==p&&!r.hasOwnProperty(y)&&cc(e,t,y,void 0,r,p);for(d in r)p=r[d],h=n[d],r.hasOwnProperty(d)&&p!==h&&(void 0!==p||void 0!==h)&&cc(e,t,d,p,r,h);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&null!=p&&!r.hasOwnProperty(v)&&cs(e,t,v,null,r,p);for(f in r)p=r[f],h=n[f],r.hasOwnProperty(f)&&p!==h&&(null!=p||null!=h)&&cs(e,t,f,p,r,h)})(r,e.type,n,t),r[eL]=t}catch(t){sP(e,e.return,t)}}function i7(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&cC(e.type)||4===e.tag}function le(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||i7(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&cC(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function lt(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&cC(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(lt(e,t,n),e=e.sibling;null!==e;)lt(e,t,n),e=e.sibling}function ln(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,o=t.attributes;o.length;)t.removeAttributeNode(o[0]);cu(t,r,n),t[eD]=e,t[eL]=n}catch(t){sP(e,e.return,t)}}var lr=!1,lo=!1,la=!1,li=\"function\"==typeof WeakSet?WeakSet:Set,ll=null;function ls(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:lA(e,n),4&r&&i1(5,n);break;case 1:if(lA(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(e){sP(n,n.return,e)}else{var o=ic(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(o,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){sP(n,n.return,e)}}64&r&&i4(n),512&r&&i3(n,n.return);break;case 3:if(lA(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{oI(e,t)}catch(e){sP(n,n.return,e)}}break;case 27:null===t&&4&r&&ln(n);case 26:case 5:lA(e,n),null===t&&4&r&&i9(n),512&r&&i3(n,n.return);break;case 12:default:lA(e,n);break;case 31:lA(e,n),4&r&&lp(e,n);break;case 13:lA(e,n),4&r&&lh(e,n),64&r&&null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if(\"$~\"===e.data)e._reactRetry=t;else if(\"$?\"!==e.data||\"loading\"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener(\"DOMContentLoaded\",r)};n.addEventListener(\"DOMContentLoaded\",r),e._reactRetry=r}}(e,n=sD.bind(null,n));break;case 22:if(!(r=null!==n.memoizedState||lr)){t=null!==t&&null!==t.memoizedState||lo,o=lr;var a=lo;lr=r,(lo=t)&&!a?function e(t,n,r){for(r=r&&0!=(8772&n.subtreeFlags),n=n.child;null!==n;){var o=n.alternate,a=t,i=n,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(a,i,r),i1(4,i);break;case 1:if(e(a,i,r),\"function\"==typeof(a=(o=i).stateNode).componentDidMount)try{a.componentDidMount()}catch(e){sP(o,o.return,e)}if(null!==(a=(o=i).updateQueue)){var s=o.stateNode;try{var c=a.shared.hiddenCallbacks;if(null!==c)for(a.shared.hiddenCallbacks=null,a=0;a<c.length;a++)oP(c[a],s)}catch(e){sP(o,o.return,e)}}r&&64&l&&i4(i),i3(i,i.return);break;case 27:ln(i);case 26:case 5:e(a,i,r),r&&null===o&&4&l&&i9(i),i3(i,i.return);break;case 12:default:e(a,i,r);break;case 31:e(a,i,r),r&&4&l&&lp(a,i);break;case 13:e(a,i,r),r&&4&l&&lh(a,i);break;case 22:null===i.memoizedState&&e(a,i,r),i3(i,i.return);case 30:}n=n.sibling}}(e,n,0!=(8772&n.subtreeFlags)):lA(e,n),lr=o,lo=a}case 30:}}var lc=null,lu=!1;function ld(e,t,n){for(n=n.child;null!==n;)lf(e,t,n),n=n.sibling}function lf(e,t,n){if(ep&&\"function\"==typeof ep.onCommitFiberUnmount)try{ep.onCommitFiberUnmount(ef,n)}catch(e){}switch(n.tag){case 26:lo||i6(n,t),ld(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:lo||i6(n,t);var r=lc,o=lu;cC(n.type)&&(lc=n.stateNode,lu=!1),ld(e,t,n),cD(n.stateNode),lc=r,lu=o;break;case 5:lo||i6(n,t);case 6:if(r=lc,o=lu,lc=null,ld(e,t,n),lc=r,lu=o,null!==lc)if(lu)try{(9===lc.nodeType?lc.body:\"HTML\"===lc.nodeName?lc.ownerDocument.body:lc).removeChild(n.stateNode)}catch(e){sP(n,t,e)}else try{lc.removeChild(n.stateNode)}catch(e){sP(n,t,e)}break;case 18:null!==lc&&(lu?(c_(9===(e=lc).nodeType?e.body:\"HTML\"===e.nodeName?e.ownerDocument.body:e,n.stateNode),uO(e)):c_(lc,n.stateNode));break;case 4:r=lc,o=lu,lc=n.stateNode.containerInfo,lu=!0,ld(e,t,n),lc=r,lu=o;break;case 0:case 11:case 14:case 15:lo||i2(2,n,t),lo||i2(4,n,t),ld(e,t,n);break;case 1:lo||(i6(n,t),\"function\"==typeof(r=n.stateNode).componentWillUnmount&&i5(n,t,r)),ld(e,t,n);break;case 21:default:ld(e,t,n);break;case 22:lo=(r=lo)||null!==n.memoizedState,ld(e,t,n),lo=r}}function lp(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{uO(e)}catch(e){sP(t,t.return,e)}}}function lh(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{uO(e)}catch(e){sP(t,t.return,e)}}function lm(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new li),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new li),t;default:throw Error(l(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=sL.bind(null,e,t);t.then(r,r)}})}function lg(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r],a=e,i=t,s=i;e:for(;null!==s;){switch(s.tag){case 27:if(cC(s.type)){lc=s.stateNode,lu=!1;break e}break;case 5:lc=s.stateNode,lu=!1;break e;case 3:case 4:lc=s.stateNode.containerInfo,lu=!0;break e}s=s.return}if(null===lc)throw Error(l(160));lf(a,i,o),lc=null,lu=!1,null!==(a=o.alternate)&&(a.return=null),o.return=null}if(13878&t.subtreeFlags)for(t=t.child;null!==t;)lv(t,e),t=t.sibling}var ly=null;function lv(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:lg(t,e),lb(e),4&r&&(i2(3,e,e.return),i1(3,e),i2(5,e,e.return));break;case 1:lg(t,e),lb(e),512&r&&(lo||null===n||i6(n,n.return)),64&r&&lr&&null!==(e=e.updateQueue)&&null!==(r=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?r:n.concat(r));break;case 26:var o=ly;if(lg(t,e),lb(e),512&r&&(lo||null===n||i6(n,n.return)),4&r){var a=null!==n?n.memoizedState:null;if(r=e.memoizedState,null===n)if(null===r)if(null===e.stateNode){e:{r=e.type,n=e.memoizedProps,o=o.ownerDocument||o;t:switch(r){case\"title\":(!(a=o.getElementsByTagName(\"title\")[0])||a[eF]||a[eD]||\"http://www.w3.org/2000/svg\"===a.namespaceURI||a.hasAttribute(\"itemprop\"))&&(a=o.createElement(r),o.head.insertBefore(a,o.querySelector(\"head > title\"))),cu(a,r,n),a[eD]=e,eY(a),r=a;break e;case\"link\":var i=cJ(\"link\",\"href\",o).get(r+(n.href||\"\"));if(i){for(var s=0;s<i.length;s++)if((a=i[s]).getAttribute(\"href\")===(null==n.href||\"\"===n.href?null:n.href)&&a.getAttribute(\"rel\")===(null==n.rel?null:n.rel)&&a.getAttribute(\"title\")===(null==n.title?null:n.title)&&a.getAttribute(\"crossorigin\")===(null==n.crossOrigin?null:n.crossOrigin)){i.splice(s,1);break t}}cu(a=o.createElement(r),r,n),o.head.appendChild(a);break;case\"meta\":if(i=cJ(\"meta\",\"content\",o).get(r+(n.content||\"\"))){for(s=0;s<i.length;s++)if((a=i[s]).getAttribute(\"content\")===(null==n.content?null:\"\"+n.content)&&a.getAttribute(\"name\")===(null==n.name?null:n.name)&&a.getAttribute(\"property\")===(null==n.property?null:n.property)&&a.getAttribute(\"http-equiv\")===(null==n.httpEquiv?null:n.httpEquiv)&&a.getAttribute(\"charset\")===(null==n.charSet?null:n.charSet)){i.splice(s,1);break t}}cu(a=o.createElement(r),r,n),o.head.appendChild(a);break;default:throw Error(l(468,r))}a[eD]=e,eY(a),r=a}e.stateNode=r}else c0(o,e.type,e.stateNode);else e.stateNode=cY(o,r,e.memoizedProps);else a!==r?(null===a?null!==n.stateNode&&(n=n.stateNode).parentNode.removeChild(n):a.count--,null===r?c0(o,e.type,e.stateNode):cY(o,r,e.memoizedProps)):null===r&&null!==e.stateNode&&i8(e,e.memoizedProps,n.memoizedProps)}break;case 27:lg(t,e),lb(e),512&r&&(lo||null===n||i6(n,n.return)),null!==n&&4&r&&i8(e,e.memoizedProps,n.memoizedProps);break;case 5:if(lg(t,e),lb(e),512&r&&(lo||null===n||i6(n,n.return)),32&e.flags){o=e.stateNode;try{ts(o,\"\")}catch(t){sP(e,e.return,t)}}4&r&&null!=e.stateNode&&(o=e.memoizedProps,i8(e,o,null!==n?n.memoizedProps:o)),1024&r&&(la=!0);break;case 6:if(lg(t,e),lb(e),4&r){if(null===e.stateNode)throw Error(l(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){sP(e,e.return,t)}}break;case 3:if(cQ=null,o=ly,ly=cR(t.containerInfo),lg(t,e),ly=o,lb(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{uO(t.containerInfo)}catch(t){sP(e,e.return,t)}la&&(la=!1,function e(t){if(1024&t.subtreeFlags)for(t=t.child;null!==t;){var n=t;e(n),5===n.tag&&1024&n.flags&&n.stateNode.reset(),t=t.sibling}}(e));break;case 4:r=ly,ly=cR(e.stateNode.containerInfo),lg(t,e),lb(e),ly=r;break;case 12:default:lg(t,e),lb(e);break;case 31:case 19:lg(t,e),lb(e),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lm(e,r));break;case 13:lg(t,e),lb(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==n&&null!==n.memoizedState)&&(l0=er()),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lm(e,r));break;case 22:o=null!==e.memoizedState;var c=null!==n&&null!==n.memoizedState,u=lr,d=lo;if(lr=u||o,lo=d||c,lg(t,e),lo=d,lr=u,lb(e),8192&r)e:for((t=e.stateNode)._visibility=o?-2&t._visibility:1|t._visibility,o&&(null===n||c||lr||lo||function e(t){for(t=t.child;null!==t;){var n=t;switch(n.tag){case 0:case 11:case 14:case 15:i2(4,n,n.return),e(n);break;case 1:i6(n,n.return);var r=n.stateNode;\"function\"==typeof r.componentWillUnmount&&i5(n,n.return,r),e(n);break;case 27:cD(n.stateNode);case 26:case 5:i6(n,n.return),e(n);break;case 22:null===n.memoizedState&&e(n);break;default:e(n)}t=t.sibling}}(e)),n=null,t=e;;){if(5===t.tag||26===t.tag){if(null===n){c=n=t;try{if(a=c.stateNode,o)i=a.style,\"function\"==typeof i.setProperty?i.setProperty(\"display\",\"none\",\"important\"):i.display=\"none\";else{s=c.stateNode;var f=c.memoizedProps.style,p=null!=f&&f.hasOwnProperty(\"display\")?f.display:null;s.style.display=null==p||\"boolean\"==typeof p?\"\":(\"\"+p).trim()}}catch(e){sP(c,c.return,e)}}}else if(6===t.tag){if(null===n){c=t;try{c.stateNode.nodeValue=o?\"\":c.memoizedProps}catch(e){sP(c,c.return,e)}}}else if(18===t.tag){if(null===n){c=t;try{var h=c.stateNode;o?ck(h,!0):ck(c.stateNode,!1)}catch(e){sP(c,c.return,e)}}}else if((22!==t.tag&&23!==t.tag||null===t.memoizedState||t===e)&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}4&r&&null!==(r=e.updateQueue)&&null!==(n=r.retryQueue)&&(r.retryQueue=null,lm(e,n));case 30:case 21:}}function lb(e){var t=e.flags;if(2&t){try{for(var n,r=e.return;null!==r;){if(i7(r)){n=r;break}r=r.return}if(null==n)throw Error(l(160));switch(n.tag){case 27:var o=n.stateNode,a=le(e);lt(e,a,o);break;case 5:var i=n.stateNode;32&n.flags&&(ts(i,\"\"),n.flags&=-33);var s=le(e);lt(e,s,i);break;case 3:case 4:var c=n.stateNode.containerInfo,u=le(e);!function e(t,n,r){var o=t.tag;if(5===o||6===o)t=t.stateNode,n?(9===r.nodeType?r.body:\"HTML\"===r.nodeName?r.ownerDocument.body:r).insertBefore(t,n):((n=9===r.nodeType?r.body:\"HTML\"===r.nodeName?r.ownerDocument.body:r).appendChild(t),null!=(r=r._reactRootContainer)||null!==n.onclick||(n.onclick=tg));else if(4!==o&&(27===o&&cC(t.type)&&(r=t.stateNode,n=null),null!==(t=t.child)))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,u,c);break;default:throw Error(l(161))}}catch(t){sP(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function lA(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)ls(e,t.alternate,t),t=t.sibling}function lx(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&r2(n))}function lw(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&r2(e))}function lC(e,t,n,r){if(10256&t.subtreeFlags)for(t=t.child;null!==t;)l_(e,t,n,r),t=t.sibling}function l_(e,t,n,r){var o=t.flags;switch(t.tag){case 0:case 11:case 15:lC(e,t,n,r),2048&o&&i1(9,t);break;case 1:case 31:case 13:default:lC(e,t,n,r);break;case 3:lC(e,t,n,r),2048&o&&(e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&r2(e)));break;case 12:if(2048&o){lC(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,i=a.id,l=a.onPostCommit;\"function\"==typeof l&&l(i,null===t.alternate?\"mount\":\"update\",e.passiveEffectDuration,-0)}catch(e){sP(t,t.return,e)}}else lC(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,i=t.alternate,null!==t.memoizedState?2&a._visibility?lC(e,t,n,r):lk(e,t):2&a._visibility?lC(e,t,n,r):(a._visibility|=2,function e(t,n,r,o,a){for(a=a&&0!=(10256&n.subtreeFlags),n=n.child;null!==n;){var i=n,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(t,i,r,o,a),i1(8,i);break;case 23:break;case 22:var s=i.stateNode;null!==i.memoizedState?2&s._visibility?e(t,i,r,o,a):lk(t,i):(s._visibility|=2,e(t,i,r,o,a)),a&&2048&l&&lx(i.alternate,i);break;case 24:e(t,i,r,o,a),a&&2048&l&&lw(i.alternate,i);break;default:e(t,i,r,o,a)}n=n.sibling}}(e,t,n,r,0!=(10256&t.subtreeFlags))),2048&o&&lx(i,t);break;case 24:lC(e,t,n,r),2048&o&&lw(t.alternate,t)}}function lk(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=t,r=n.flags;switch(n.tag){case 22:lk(e,n),2048&r&&lx(n.alternate,n);break;case 24:lk(e,n),2048&r&&lw(n.alternate,n);break;default:lk(e,n)}t=t.sibling}}var lE=8192;function lj(e){if(e.subtreeFlags&lE)for(e=e.child;null!==e;)lS(e),e=e.sibling}function lS(e){switch(e.tag){case 26:lj(e),e.flags&lE&&null!==e.memoizedState&&function(e,t,n){if(null===c2)throw Error(l(475));var r=c2;if(\"stylesheet\"===t.type&&(\"string\"!=typeof n.media||!1!==matchMedia(n.media).matches)&&0==(4&t.state.loading)){if(null===t.instance){var o=cq(n.href),a=e.querySelector(cH(o));if(a){null!==(e=a._p)&&\"object\"==typeof e&&\"function\"==typeof e.then&&(r.count++,r=c4.bind(r),e.then(r,r)),t.state.loading|=4,t.instance=a,eY(a);return}a=e.ownerDocument||e,n=cV(n),(o=cL.get(o))&&cX(n,o),eY(a=a.createElement(\"link\"));var i=a;i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),cu(a,\"link\",n),t.instance=a}null===r.stylesheets&&(r.stylesheets=new Map),r.stylesheets.set(t,e),(e=t.state.preload)&&0==(3&t.state.loading)&&(r.count++,t=c4.bind(r),e.addEventListener(\"load\",t),e.addEventListener(\"error\",t))}}(ly,e.memoizedState,e.memoizedProps);break;case 5:default:lj(e);break;case 3:case 4:var t=ly;ly=cR(e.stateNode.containerInfo),lj(e),ly=t;break;case 22:null===e.memoizedState&&(null!==(t=e.alternate)&&null!==t.memoizedState?(t=lE,lE=0x1000000,lj(e),lE=t):lj(e))}}function lO(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(null!==e)}}function lB(e){var t=e.deletions;if(0!=(16&e.flags)){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];ll=r,lI(r,e)}lO(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)lP(e),e=e.sibling}function lP(e){switch(e.tag){case 0:case 11:case 15:lB(e),2048&e.flags&&i2(9,e,e.return);break;case 3:case 12:default:lB(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,function e(t){var n=t.deletions;if(0!=(16&t.flags)){if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];ll=o,lI(o,t)}lO(t)}for(t=t.child;null!==t;){switch((n=t).tag){case 0:case 11:case 15:i2(8,n,n.return),e(n);break;case 22:2&(r=n.stateNode)._visibility&&(r._visibility&=-3,e(n));break;default:e(n)}t=t.sibling}}(e)):lB(e)}}function lI(e,t){for(;null!==ll;){var n=ll;switch(n.tag){case 0:case 11:case 15:i2(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var r=n.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:r2(n.memoizedState.cache)}if(null!==(r=n.child))r.return=n,ll=r;else for(n=e;null!==ll;){var o=(r=ll).sibling,a=r.return;if(!function e(t){var n=t.alternate;null!==n&&(t.alternate=null,e(n)),t.child=null,t.deletions=null,t.sibling=null,5===t.tag&&null!==(n=t.stateNode)&&eq(n),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}(r),r===n){ll=null;break}if(null!==o){o.return=a,ll=o;break}ll=a}}}var lT={getCacheForType:function(e){var t=rY(r0),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return rY(r0).controller.signal}},lz=\"function\"==typeof WeakMap?WeakMap:Map,lD=0,lL=null,lN=null,lR=0,lM=0,lZ=null,lU=!1,lF=!1,lq=!1,lH=0,lV=0,l$=0,lW=0,lY=0,lK=0,lX=0,lG=null,lQ=null,lJ=!1,l0=0,l1=1/0,l2=null,l4=null,l5=0,l3=null,l6=null,l9=0,l8=0,l7=null,se=null,st=0,sn=null;function sr(){return 0!=(2&lD)&&0!==lR?lR&-lR:null!==I.T?sX():eI()}function so(){0===lK&&(lK=0==(0x20000000&lR)||rj?eC():0x20000000);var e=oR.current;return null!==e&&(e.flags|=32),lK}function sa(e,t,n){(e===lL&&(2===lM||9===lM)||null!==e.cancelPendingCommit)&&(sd(e,0),ss(e,lR,lK,!1)),eE(e,n),(0==(2&lD)||e!==lL)&&(e===lL&&(0==(2&lD)&&(lW|=n),4===lV&&ss(e,lR,lK,!1)),sq(e))}function si(e,t,n){if(0!=(6&lD))throw Error(l(327));for(var r=!n&&0==(124&t)&&0==(t&e.expiredLanes)||ew(e,t),o=r?function(e,t){var n=lD;lD|=2;var r=sh(),o=sm();lL!==e||lR!==t?(l2=null,l1=er()+500,sd(e,t)):lF=ew(e,t);e:for(;;)try{if(0!==lM&&null!==lN){t=lN;var a=lZ;t:switch(lM){case 1:lM=0,lZ=null,sA(e,t,a,1);break;case 2:case 9:if(ol(a)){lM=0,lZ=null,sb(t);break}t=function(){2!==lM&&9!==lM||lL!==e||(lM=7),sq(e)},a.then(t,t);break e;case 3:lM=7;break e;case 4:lM=5;break e;case 7:ol(a)?(lM=0,lZ=null,sb(t)):(lM=0,lZ=null,sA(e,t,a,7));break;case 5:var i=null;switch(lN.tag){case 26:i=lN.memoizedState;case 5:case 27:var s=lN;if(i?c1(i):s.stateNode.complete){lM=0,lZ=null;var c=s.sibling;if(null!==c)lN=c;else{var u=s.return;null!==u?(lN=u,sx(u)):lN=null}break t}}lM=0,lZ=null,sA(e,t,a,5);break;case 6:lM=0,lZ=null,sA(e,t,a,6);break;case 8:su(),lV=6;break e;default:throw Error(l(462))}}for(;null!==lN&&!et();)sv(lN);break}catch(t){sf(e,t)}return(rZ=rM=null,I.H=r,I.A=o,lD=n,null!==lN)?0:(lL=null,lR=0,n2(),lV)}(e,t):sy(e,t,!0),a=r;;){if(0===o)lF&&!r&&ss(e,t,0,!1);else{if(n=e.current.alternate,a&&!function(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&null!==(n=t.updateQueue)&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!nk(a(),o))return!1}catch(e){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(n)){o=sy(e,t,!1),a=!1;continue}if(2===o){if(a=t,e.errorRecoveryDisabledLanes&a)var i=0;else i=0!=(i=-0x20000001&e.pendingLanes)?i:0x20000000&i?0x20000000:0;if(0!==i){t=i;e:{o=lG;var s=e.current.memoizedState.isDehydrated;if(s&&(sd(e,i).flags|=256),2!==(i=sy(e,i,!1))){if(lq&&!s){e.errorRecoveryDisabledLanes|=a,lW|=a,o=4;break e}a=lQ,lQ=o,null!==a&&(null===lQ?lQ=a:lQ.push.apply(lQ,a))}o=i}if(a=!1,2!==o)continue}}if(1===o){sd(e,0),ss(e,t,0,!0);break}e:{switch(r=e,a=o){case 0:case 1:throw Error(l(345));case 4:if((4194048&t)!==t)break;case 6:ss(r,t,lK,!lU);break e;case 2:lQ=null;break;case 3:case 5:break;default:throw Error(l(329))}if((0x3c00000&t)===t&&10<(o=l0+300-er())){if(ss(r,t,lK,!lU),0!==ex(r,0,!0))break e;r.timeoutHandle=cv(sl.bind(null,r,n,lQ,l2,lJ,t,lK,lW,lX,lU,a,2,-0,0),o);break e}sl(r,n,lQ,l2,lJ,t,lK,lW,lX,lU,a,0,-0,0)}}break}sq(e)}function sl(e,t,n,r,o,a,i,s,c,u,d,f,p,h){if(e.timeoutHandle=-1,(8192&(f=t.subtreeFlags)||0x1002000==(0x1002000&f))&&(c2={stylesheets:null,count:0,unsuspend:tg},lS(t),null!==(f=function(){if(null===c2)throw Error(l(475));var e=c2;return e.stylesheets&&0===e.count&&c3(e,e.stylesheets),0<e.count?function(t){var n=setTimeout(function(){if(e.stylesheets&&c3(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4);return e.unsuspend=t,function(){e.unsuspend=null,clearTimeout(n)}}:null}()))){e.cancelPendingCommit=f(sC.bind(null,e,t,a,n,r,o,i,s,c,d,1,p,h)),ss(e,a,i,!u);return}sC(e,t,a,n,r,o,i,s,c)}function ss(e,t,n,r){t&=~lY,t&=~lW,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var o=t;0<o;){var a=31-em(o),i=1<<a;r[a]=-1,o&=~i}0!==n&&ej(e,n,t)}function sc(){return 0!=(6&lD)||(sH(0,!1),!1)}function su(){if(null!==lN){if(0===lM)var e=lN.return;else e=lN,rZ=rM=null,an(e),op=null,oh=0,e=lN;for(;null!==e;)i0(e.alternate,e),e=e.return;lN=null}}function sd(e,t){var n=e.timeoutHandle;-1!==n&&(e.timeoutHandle=-1,cb(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),su(),lL=e,lN=n=rn(e.current,null),lR=t,lM=0,lZ=null,lU=!1,lF=ew(e,t),lq=!1,lX=lK=lY=lW=l$=lV=0,lQ=lG=null,lJ=!1,0!=(8&t)&&(t|=32&t);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=t;0<r;){var o=31-em(r),a=1<<o;t|=e[o],r&=~a}return lH=t,n2(),n}function sf(e,t){oY=null,I.H=ie,t===or||t===oa?(t=od(),lM=3):t===oo?(t=od(),lM=4):lM=t===ib?8:null!==t&&\"object\"==typeof t&&\"function\"==typeof t.then?6:1,lZ=t,null===lN&&(lV=1,ih(e,ru(t,e.current)))}function sp(){var e=oR.current;return null===e||((4194048&lR)===lR?null===oM:((0x3c00000&lR)===lR||0!=(0x20000000&lR))&&e===oM)}function sh(){var e=I.H;return I.H=ie,null===e?ie:e}function sm(){var e=I.A;return I.A=lT,e}function sg(){lV=4,lU||(4194048&lR)!==lR&&null!==oR.current||(lF=!0),0==(0x7ffffff&l$)&&0==(0x7ffffff&lW)||null===lL||ss(lL,lR,lK,!1)}function sy(e,t,n){var r=lD;lD|=2;var o=sh(),a=sm();(lL!==e||lR!==t)&&(l2=null,sd(e,t)),t=!1;var i=lV;e:for(;;)try{if(0!==lM&&null!==lN){var l=lN,s=lZ;switch(lM){case 8:su(),i=6;break e;case 3:case 2:case 9:case 6:null===oR.current&&(t=!0);var c=lM;if(lM=0,lZ=null,sA(e,l,s,c),n&&lF){i=0;break e}break;default:c=lM,lM=0,lZ=null,sA(e,l,s,c)}}(function(){for(;null!==lN;)sv(lN)})(),i=lV;break}catch(t){sf(e,t)}return t&&e.shellSuspendCounter++,rZ=rM=null,lD=r,I.H=o,I.A=a,null===lN&&(lL=null,lR=0,n2()),i}function sv(e){var t=iW(e.alternate,e,lH);e.memoizedProps=e.pendingProps,null===t?sx(e):lN=t}function sb(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=iI(n,t,t.pendingProps,t.type,void 0,lR);break;case 11:t=iI(n,t,t.pendingProps,t.type.render,t.ref,lR);break;case 5:an(t);default:i0(n,t),t=iW(n,t=lN=rr(t,lH),lH)}e.memoizedProps=e.pendingProps,null===t?sx(e):lN=t}function sA(e,t,n,r){rZ=rM=null,an(t),op=null,oh=0;var o=t.return;try{if(function(e,t,n,r,o){if(n.flags|=32768,null!==r&&\"object\"==typeof r&&\"function\"==typeof r.then){if(null!==(t=n.alternate)&&rV(t,n,o,!0),null!==(n=oR.current)){switch(n.tag){case 31:case 13:return null===oM?sg():null===n.alternate&&0===lV&&(lV=3),n.flags&=-257,n.flags|=65536,n.lanes=o,r===oi?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=new Set([r]):t.add(r),sI(e,r,o)),!1;case 22:return n.flags|=65536,r===oi?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=new Set([r]):n.add(r),sI(e,r,o)),!1}throw Error(l(435,n.tag))}return sI(e,r,o),sg(),!1}if(rj)return null!==(t=oR.current)?(0==(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=o,r!==rB&&rN(ru(e=Error(l(422),{cause:r}),n))):(r!==rB&&rN(ru(t=Error(l(423),{cause:r}),n)),e=e.current.alternate,e.flags|=65536,o&=-o,e.lanes|=o,r=ru(r,n),o=ig(e.stateNode,r,o),oj(e,o),4!==lV&&(lV=2)),!1;var a=Error(l(520),{cause:r});if(a=ru(a,n),null===lG?lG=[a]:lG.push(a),4!==lV&&(lV=2),null===t)return!0;r=ru(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=o&-o,n.lanes|=e,e=ig(n.stateNode,r,e),oj(n,e),!1;case 1:if(t=n.type,a=n.stateNode,0==(128&n.flags)&&(\"function\"==typeof t.getDerivedStateFromError||null!==a&&\"function\"==typeof a.componentDidCatch&&(null===l4||!l4.has(a))))return n.flags|=65536,o&=-o,n.lanes|=o,iv(o=iy(o),e,n,r),oj(n,o),!1}n=n.return}while(null!==n);return!1}(e,o,t,n,lR)){lV=1,ih(e,ru(n,e.current)),lN=null;return}}catch(t){if(null!==o)throw lN=o,t;lV=1,ih(e,ru(n,e.current)),lN=null;return}32768&t.flags?(rj||1===r?e=!0:lF||0!=(0x20000000&lR)?e=!1:(lU=e=!0,(2===r||9===r||3===r||6===r)&&null!==(r=oR.current)&&13===r.tag&&(r.flags|=16384)),sw(t,e)):sx(t)}function sx(e){var t=e;do{if(0!=(32768&t.flags))return void sw(t,lU);e=t.return;var n=function(e,t,n){var r=t.pendingProps;switch(rC(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return iJ(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),rF(r0),V(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(null===e||null===e.child)&&(rz(t)?iY(t):null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,rL())),iJ(t),null;case 26:var o=t.type,a=t.memoizedState;return null===e?(iY(t),null!==a?(iJ(t),iX(t,a)):(iJ(t),iK(t,o,null,r,n))):a?a!==e.memoizedState?(iY(t),iJ(t),iX(t,a)):(iJ(t),t.flags&=-0x1000001):((e=e.memoizedProps)!==r&&iY(t),iJ(t),iK(t,o,e,r,n)),null;case 27:if(W(t),n=F.current,o=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&iY(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return iJ(t),null}e=Z.current,rz(t)?rI(t,e):(t.stateNode=e=cz(o,r,n),iY(t))}return iJ(t),null;case 5:if(W(t),o=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&iY(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return iJ(t),null}if(a=Z.current,rz(t))rI(t,a);else{var i=cp(F.current);switch(a){case 1:a=i.createElementNS(\"http://www.w3.org/2000/svg\",o);break;case 2:a=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",o);break;default:switch(o){case\"svg\":a=i.createElementNS(\"http://www.w3.org/2000/svg\",o);break;case\"math\":a=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",o);break;case\"script\":(a=i.createElement(\"div\")).innerHTML=\"<script><\\/script>\",a=a.removeChild(a.firstChild);break;case\"select\":a=\"string\"==typeof r.is?i.createElement(\"select\",{is:r.is}):i.createElement(\"select\"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=\"string\"==typeof r.is?i.createElement(o,{is:r.is}):i.createElement(o)}}a[eD]=t,a[eL]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)a.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(t.stateNode=a,cu(a,o,r),o){case\"button\":case\"input\":case\"select\":case\"textarea\":r=!!r.autoFocus;break;case\"img\":r=!0;break;default:r=!1}r&&iY(t)}}return iJ(t),iK(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&iY(t);else{if(\"string\"!=typeof r&&null===t.stateNode)throw Error(l(166));if(e=F.current,rz(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(o=rk))switch(o.tag){case 27:case 5:r=o.memoizedProps}e[eD]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cl(e.nodeValue,n)))||rP(t,!0)}else(e=cp(e).createTextNode(r))[eD]=t,t.stateNode=e}return iJ(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rz(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;iJ(t),e=!1}else n=rL(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return oH(t),t;return oH(t),null}if(0!=(128&t.flags))throw Error(l(558))}return iJ(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(o=rz(t),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(l(318));if(!(o=null!==(o=t.memoizedState)?o.dehydrated:null))throw Error(l(317));o[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;iJ(t),o=!1}else o=rL(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o){if(256&t.flags)return oH(t),t;return oH(t),null}}if(oH(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,o=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(o=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==o&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),iG(t,t.updateQueue),iJ(t),null;case 4:return V(),null===e&&s9(t.stateNode.containerInfo),iJ(t),null;case 10:return rF(t.type),iJ(t),null;case 19:if(R(oV),null===(r=t.memoizedState))return iJ(t),null;if(o=0!=(128&t.flags),null===(a=r.rendering))if(o)iQ(r,!1);else{if(0!==lV||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=o$(e))){for(t.flags|=128,iQ(r,!1),t.updateQueue=e=a.updateQueue,iG(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rr(n,e),n=n.sibling;return M(oV,1&oV.current|2),rj&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&er()>l1&&(t.flags|=128,o=!0,iQ(r,!1),t.lanes=4194304)}else{if(!o)if(null!==(e=o$(a))){if(t.flags|=128,o=!0,t.updateQueue=e=e.updateQueue,iG(t,e),iQ(r,!0),null===r.tail&&\"hidden\"===r.tailMode&&!a.alternate&&!rj)return iJ(t),null}else 2*er()-r.renderingStartTime>l1&&0x20000000!==n&&(t.flags|=128,o=!0,iQ(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=er(),e.sibling=null,n=oV.current,M(oV,o?1&n|2:1&n),rj&&rA(t,r.treeForkCount),e;return iJ(t),null;case 22:case 23:return oH(t),oN(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(iJ(t),6&t.subtreeFlags&&(t.flags|=8192)):iJ(t),null!==(n=t.updateQueue)&&iG(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&R(r7),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),rF(r0),iJ(t),null;case 25:case 30:return null}throw Error(l(156,t.tag))}(t.alternate,t,lH);if(null!==n){lN=n;return}if(null!==(t=t.sibling)){lN=t;return}lN=t=e}while(null!==t);0===lV&&(lV=5)}function sw(e,t){do{var n=function(e,t){switch(rC(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return rF(r0),V(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return W(t),null;case 31:if(null!==t.memoizedState){if(oH(t),null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(oH(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return R(oV),null;case 4:return V(),null;case 10:return rF(t.type),null;case 22:case 23:return oH(t),oN(),null!==e&&R(r7),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return rF(r0),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lN=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lN=e;return}lN=e=n}while(null!==e);lV=6,lN=null}function sC(e,t,n,r,o,a,i,s,c){e.cancelPendingCommit=null;do sS();while(0!==l5);if(0!=(6&lD))throw Error(l(327));if(null!==t){if(t===e.current)throw Error(l(177));if(!function(e,t,n,r,o,a){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,c=e.hiddenUpdates;for(n=i&~n;0<n;){var u=31-em(n),d=1<<u;l[u]=0,s[u]=-1;var f=c[u];if(null!==f)for(c[u]=null,u=0;u<f.length;u++){var p=f[u];null!==p&&(p.lane&=-0x20000001)}n&=~d}0!==r&&ej(e,r,0),0!==a&&0===o&&0!==e.tag&&(e.suspendedLanes|=a&~(i&~t))}(e,n,a=t.lanes|t.childLanes|n1,i,s,c),e===lL&&(lN=lL=null,lR=0),l6=t,l3=e,l9=n,l8=a,l7=o,se=r,0!=(10256&t.subtreeFlags)||0!=(10256&t.flags)?(e.callbackNode=null,e.callbackPriority=0,J(el,function(){return sO(!0),null})):(e.callbackNode=null,e.callbackPriority=0),r=0!=(13878&t.flags),0!=(13878&t.subtreeFlags)||r){r=I.T,I.T=null,o=T.p,T.p=2,i=lD,lD|=4;try{!function(e,t){if(e=e.containerInfo,cd=uo,nB(e=nO(e))){if(\"selectionStart\"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o,a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(e){n=null;break e}var s=0,c=-1,u=-1,d=0,f=0,p=e,h=null;t:for(;;){for(;p!==n||0!==a&&3!==p.nodeType||(c=s+a),p!==i||0!==r&&3!==p.nodeType||(u=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(o=p.firstChild);)h=p,p=o;for(;;){if(p===e)break t;if(h===n&&++d===a&&(c=s),h===i&&++f===r&&(u=s),null!==(o=p.nextSibling))break;h=(p=h).parentNode}p=o}n=-1===c||-1===u?null:{start:c,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(cf={focusedElem:e,selectionRange:n},uo=!1,ll=t;null!==ll;)if(e=(t=ll).child,0!=(1024&t.subtreeFlags)&&null!==e)e.return=t,ll=e;else for(;null!==ll;){switch(i=(t=ll).alternate,e=t.flags,t.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(0!=(1024&e)&&null!==i){e=void 0,n=t,a=i.memoizedProps,i=i.memoizedState,r=n.stateNode;try{var m=ic(n.type,a);e=r.getSnapshotBeforeUpdate(m,i),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){sP(n,n.return,e)}}break;case 3:if(0!=(1024&e)){if(9===(n=(e=t.stateNode.containerInfo).nodeType))cE(e);else if(1===n)switch(e.nodeName){case\"HEAD\":case\"HTML\":case\"BODY\":cE(e);break;default:e.textContent=\"\"}}break;default:if(0!=(1024&e))throw Error(l(163))}if(null!==(e=t.sibling)){e.return=t.return,ll=e;break}ll=t.return}}(e,t,n)}finally{lD=i,T.p=o,I.T=r}}l5=1,s_(),sk(),sE()}}function s_(){if(1===l5){l5=0;var e=l3,t=l6,n=0!=(13878&t.flags);if(0!=(13878&t.subtreeFlags)||n){n=I.T,I.T=null;var r=T.p;T.p=2;var o=lD;lD|=4;try{lv(t,e);var a=cf,i=nO(e.containerInfo),l=a.focusedElem,s=a.selectionRange;if(i!==l&&l&&l.ownerDocument&&function e(t,n){return!!t&&!!n&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):\"contains\"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(l.ownerDocument.documentElement,l)){if(null!==s&&nB(l)){var c=s.start,u=s.end;if(void 0===u&&(u=c),\"selectionStart\"in l)l.selectionStart=c,l.selectionEnd=Math.min(u,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),h=l.textContent.length,m=Math.min(s.start,h),g=void 0===s.end?m:Math.min(s.end,h);!p.extend&&m>g&&(i=g,g=m,m=i);var y=nS(l,m),v=nS(l,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=d.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),m>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(\"function\"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var A=d[l];A.element.scrollLeft=A.left,A.element.scrollTop=A.top}}uo=!!cd,cf=cd=null}finally{lD=o,T.p=r,I.T=n}}e.current=t,l5=2}}function sk(){if(2===l5){l5=0;var e=l3,t=l6,n=0!=(8772&t.flags);if(0!=(8772&t.subtreeFlags)||n){n=I.T,I.T=null;var r=T.p;T.p=2;var o=lD;lD|=4;try{ls(e,t.alternate,t)}finally{lD=o,T.p=r,I.T=n}}l5=3}}function sE(){if(4===l5||3===l5){l5=0,en();var e=l3,t=l6,n=l9,r=se;0!=(10256&t.subtreeFlags)||0!=(10256&t.flags)?l5=5:(l5=0,l6=l3=null,sj(e,e.pendingLanes));var o=e.pendingLanes;if(0===o&&(l4=null),eP(n),t=t.stateNode,ep&&\"function\"==typeof ep.onCommitFiberRoot)try{ep.onCommitFiberRoot(ef,t,void 0,128==(128&t.current.flags))}catch(e){}if(null!==r){t=I.T,o=T.p,T.p=2,I.T=null;try{for(var a=e.onRecoverableError,i=0;i<r.length;i++){var l=r[i];a(l.value,{componentStack:l.stack})}}finally{I.T=t,T.p=o}}0!=(3&l9)&&sS(),sq(e),o=e.pendingLanes,0!=(4194090&n)&&0!=(42&o)?e===sn?st++:(st=0,sn=e):st=0,sH(0,!1)}}function sj(e,t){0==(e.pooledCacheLanes&=t)&&null!=(t=e.pooledCache)&&(e.pooledCache=null,r2(t))}function sS(e){return s_(),sk(),sE(),sO(e)}function sO(){if(5!==l5)return!1;var e=l3,t=l8;l8=0;var n=eP(l9),r=I.T,o=T.p;try{T.p=32>n?32:n,I.T=null,n=l7,l7=null;var a=l3,i=l9;if(l5=0,l6=l3=null,l9=0,0!=(6&lD))throw Error(l(331));var s=lD;if(lD|=4,lP(a.current),l_(a,a.current,i,n),lD=s,sH(0,!1),ep&&\"function\"==typeof ep.onPostCommitFiberRoot)try{ep.onPostCommitFiberRoot(ef,a)}catch(e){}return!0}finally{T.p=o,I.T=r,sj(e,t)}}function sB(e,t,n){t=ru(n,t),t=ig(e.stateNode,t,2),null!==(e=ok(e,t,2))&&(eE(e,2),sq(e))}function sP(e,t,n){if(3===e.tag)sB(e,e,n);else for(;null!==t;){if(3===t.tag){sB(t,e,n);break}if(1===t.tag){var r=t.stateNode;if(\"function\"==typeof t.type.getDerivedStateFromError||\"function\"==typeof r.componentDidCatch&&(null===l4||!l4.has(r))){e=ru(n,e),null!==(r=ok(t,n=iy(2),2))&&(iv(n,r,t,e),eE(r,2),sq(r));break}}t=t.return}}function sI(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new lz;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(lq=!0,o.add(n),e=sT.bind(null,e,t,n),t.then(e,e))}function sT(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lL===e&&(lR&n)===n&&(4===lV||3===lV&&(0x3c00000&lR)===lR&&300>er()-l0?0==(2&lD)&&sd(e,0):lY|=n,lX===lR&&(lX=0)),sq(e)}function sz(e,t){0===t&&(t=e_()),null!==(e=n3(e,t))&&(eE(e,t),sq(e))}function sD(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sz(e,n)}function sL(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),sz(e,n)}var sN=null,sR=null,sM=!1,sZ=!1,sU=!1,sF=0;function sq(e){e!==sR&&null===e.next&&(null===sR?sN=sR=e:sR=sR.next=e),sZ=!0,sM||(sM=!0,cx(function(){0!=(6&lD)?J(ea,sV):s$()}))}function sH(e,t){if(!sU&&sZ){sU=!0;do for(var n=!1,r=sN;null!==r;){if(!t)if(0!==e){var o=r.pendingLanes;if(0===o)var a=0;else{var i=r.suspendedLanes,l=r.pingedLanes;a=0xc000095&(a=(1<<31-em(42|e)+1)-1&(o&~(i&~l)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sK(r,a))}else a=lR,0==(3&(a=ex(r,r===lL?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ew(r,a)||(n=!0,sK(r,a));r=r.next}while(n);sU=!1}}function sV(){s$()}function s$(){sZ=sM=!1;var e,t=0;0===sF||((e=window.event)&&\"popstate\"===e.type?e===cy||(cy=e,0):(cy=null,1))||(t=sF);for(var n=er(),r=null,o=sN;null!==o;){var a=o.next,i=sW(o,n);0===i?(o.next=null,null===r?sN=a:r.next=a,null===a&&(sR=r)):(r=o,(0!==t||0!=(3&i))&&(sZ=!0)),o=a}0!==l5&&5!==l5||sH(t,!1),0!==sF&&(sF=0)}function sW(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0<a;){var i=31-em(a),l=1<<i,s=o[i];-1===s?(0==(l&n)||0!=(l&r))&&(o[i]=function(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return -1}}(l,t)):s<=t&&(e.expiredLanes|=l),a&=~l}if(t=lL,n=lR,n=ex(e,e===t?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===n||e===t&&(2===lM||9===lM)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&ee(r),e.callbackNode=null,e.callbackPriority=0;if(0==(3&n)||ew(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==r&&ee(r),eP(n)){case 2:case 8:n=ei;break;case 32:default:n=el;break;case 0x10000000:n=ec}return n=J(n,r=sY.bind(null,e)),e.callbackPriority=t,e.callbackNode=n,t}return null!==r&&null!==r&&ee(r),e.callbackPriority=2,e.callbackNode=null,2}function sY(e,t){if(0!==l5&&5!==l5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(sS(!0)&&e.callbackNode!==n)return null;var r=lR;return 0===(r=ex(e,e===lL?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(si(e,r,t),sW(e,er()),null!=e.callbackNode&&e.callbackNode===n?sY.bind(null,e):null)}function sK(e,t){if(sS())return null;si(e,t,!0)}function sX(){if(0===sF){var e=r3;sF=0!==e?e:eC()}return sF}function sG(e){return null==e||\"symbol\"==typeof e||\"boolean\"==typeof e?null:\"function\"==typeof e?e:tm(\"\"+e)}function sQ(e,t){var n=t.ownerDocument.createElement(\"input\");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(\"form\",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}for(var sJ=0;sJ<nX.length;sJ++){var s0=nX[sJ];nG(s0.toLowerCase(),\"on\"+(s0[0].toUpperCase()+s0.slice(1)))}nG(nF,\"onAnimationEnd\"),nG(nq,\"onAnimationIteration\"),nG(nH,\"onAnimationStart\"),nG(\"dblclick\",\"onDoubleClick\"),nG(\"focusin\",\"onFocus\"),nG(\"focusout\",\"onBlur\"),nG(nV,\"onTransitionRun\"),nG(n$,\"onTransitionStart\"),nG(nW,\"onTransitionCancel\"),nG(nY,\"onTransitionEnd\"),eQ(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),eQ(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),eQ(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),eQ(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),eG(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),eG(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),eG(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),eG(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),eG(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),eG(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var s1=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),s2=new Set(\"beforetoggle cancel close invalid load scroll scrollend toggle\".split(\" \").concat(s1));function s4(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;a=l,o.currentTarget=c;try{a(o)}catch(e){nQ(e)}o.currentTarget=null,a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;a=l,o.currentTarget=c;try{a(o)}catch(e){nQ(e)}o.currentTarget=null,a=s}}}}function s5(e,t){var n=t[eR];void 0===n&&(n=t[eR]=new Set);var r=e+\"__bubble\";n.has(r)||(s8(t,e,2,!1),n.add(r))}function s3(e,t,n){var r=0;t&&(r|=4),s8(n,e,r,t)}var s6=\"_reactListening\"+Math.random().toString(36).slice(2);function s9(e){if(!e[s6]){e[s6]=!0,eK.forEach(function(t){\"selectionchange\"!==t&&(s2.has(t)||s3(t,!1,e),s3(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[s6]||(t[s6]=!0,s3(\"selectionchange\",!1,t))}}function s8(e,t,n,r){switch(ud(t)){case 2:var o=ua;break;case 8:o=ui;break;default:o=ul}n=o.bind(null,t,n,e),o=void 0,tE&&(\"touchstart\"===t||\"touchmove\"===t||\"wheel\"===t)&&(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function s7(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&i.stateNode.containerInfo===o)return;i=i.return}for(;null!==l;){if(null===(i=eH(l)))return;if(5===(c=i.tag)||6===c||26===c||27===c){r=a=i;continue e}l=l.parentNode}}r=r.return}tC(function(){var r=a,o=tv(n),i=[];e:{var l=nK.get(e);if(void 0!==l){var c=tF,u=e;switch(e){case\"keypress\":if(0===tI(n))break e;case\"keydown\":case\"keyup\":c=t4;break;case\"focusin\":u=\"focus\",c=tY;break;case\"focusout\":u=\"blur\",c=tY;break;case\"beforeblur\":case\"afterblur\":c=tY;break;case\"click\":if(2===n.button)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":c=t$;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":c=tW;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":c=t3;break;case nF:case nq:case nH:c=tK;break;case nY:c=t6;break;case\"scroll\":case\"scrollend\":c=tH;break;case\"wheel\":c=t9;break;case\"copy\":case\"cut\":case\"paste\":c=tX;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":c=t5;break;case\"toggle\":case\"beforetoggle\":c=t8}var d=0!=(4&t),f=!d&&(\"scroll\"===e||\"scrollend\"===e),p=d?null!==l?l+\"Capture\":null:l;d=[];for(var h,m=r;null!==m;){var g=m;if(h=g.stateNode,5!==(g=g.tag)&&26!==g&&27!==g||null===h||null===p||null!=(g=t_(m,p))&&d.push(ce(m,g,h)),f)break;m=m.return}0<d.length&&(l=new c(l,u,null,n,o),i.push({event:l,listeners:d}))}}if(0==(7&t)){if((l=\"mouseover\"===e||\"pointerover\"===e,c=\"mouseout\"===e||\"pointerout\"===e,!(l&&n!==ty&&(u=n.relatedTarget||n.fromElement)&&(eH(u)||u[eN])))&&(c||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,c?(u=n.relatedTarget||n.toElement,c=r,null!==(u=u?eH(u):null)&&(f=s(u),d=u.tag,u!==f||5!==d&&27!==d&&6!==d)&&(u=null)):(c=null,u=r),c!==u)){if(d=t$,g=\"onMouseLeave\",p=\"onMouseEnter\",m=\"mouse\",(\"pointerout\"===e||\"pointerover\"===e)&&(d=t5,g=\"onPointerLeave\",p=\"onPointerEnter\",m=\"pointer\"),f=null==c?l:e$(c),h=null==u?l:e$(u),(l=new d(g,m+\"leave\",c,n,o)).target=f,l.relatedTarget=h,g=null,eH(o)===r&&((d=new d(p,m+\"enter\",u,n,o)).target=h,d.relatedTarget=f,g=d),f=g,c&&u)t:{for(d=cn,p=c,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var y,v=m;v;v=d(v))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||null!==m&&p===m.alternate){d=p;break t}p=d(p),m=d(m)}d=null}else d=null;null!==c&&cr(i,l,c,d,!1),null!==u&&null!==f&&cr(i,f,u,d,!0)}e:{if(\"select\"===(c=(l=r?e$(r):window).nodeName&&l.nodeName.toLowerCase())||\"input\"===c&&\"file\"===l.type)var b=nm;else if(nc(l))if(ng)b=n_;else{b=nw;var A=nx}else(c=l.nodeName)&&\"input\"===c.toLowerCase()&&(\"checkbox\"===l.type||\"radio\"===l.type)?b=nC:r&&tf(r.elementType)&&(b=nm);if(b&&(b=b(e,r))){nu(i,b,n,o);break e}A&&A(e,l,r),\"focusout\"===e&&r&&\"number\"===l.type&&null!=r.memoizedProps.value&&to(l,\"number\",l.value)}switch(A=r?e$(r):window,e){case\"focusin\":(nc(A)||\"true\"===A.contentEditable)&&(nI=A,nT=r,nz=null);break;case\"focusout\":nz=nT=nI=null;break;case\"mousedown\":nD=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":nD=!1,nL(i,n,o);break;case\"selectionchange\":if(nP)break;case\"keydown\":case\"keyup\":nL(i,n,o)}if(ne)t:{switch(e){case\"compositionstart\":var x=\"onCompositionStart\";break t;case\"compositionend\":x=\"onCompositionEnd\";break t;case\"compositionupdate\":x=\"onCompositionUpdate\";break t}x=void 0}else nl?na(e,n)&&(x=\"onCompositionEnd\"):\"keydown\"===e&&229===n.keyCode&&(x=\"onCompositionStart\");x&&(nr&&\"ko\"!==n.locale&&(nl||\"onCompositionStart\"!==x?\"onCompositionEnd\"===x&&nl&&(y=tP()):(tO=\"value\"in(tS=o)?tS.value:tS.textContent,nl=!0)),0<(A=ct(r,x)).length&&(x=new tG(x,e,null,n,o),i.push({event:x,listeners:A}),y?x.data=y:null!==(y=ni(n))&&(x.data=y))),(y=nn?function(e,t){switch(e){case\"compositionend\":return ni(t);case\"keypress\":if(32!==t.which)return null;return no=!0,\" \";case\"textInput\":return\" \"===(e=t.data)&&no?null:e;default:return null}}(e,n):function(e,t){if(nl)return\"compositionend\"===e||!ne&&na(e,t)?(e=tP(),tB=tO=tS=null,nl=!1,e):null;switch(e){case\"paste\":default:return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case\"compositionend\":return nr&&\"ko\"!==t.locale?null:t.data}}(e,n))&&0<(x=ct(r,\"onBeforeInput\")).length&&(A=new tG(\"onBeforeInput\",\"beforeinput\",null,n,o),i.push({event:A,listeners:x}),A.data=y);var w=e;if(\"submit\"===w&&r&&r.stateNode===o){var C=sG((o[eL]||null).action),_=n.submitter;_&&null!==(w=(w=_[eL]||null)?sG(w.formAction):_.getAttribute(\"formAction\"))&&(C=w,_=null);var k=new tF(\"action\",\"action\",null,n,o);i.push({event:k,listeners:[{instance:null,listener:function(){if(n.defaultPrevented){if(0!==sF){var e=_?sQ(o,_):new FormData(o);aX(r,{pending:!0,data:e,method:o.method,action:C},null,e)}}else\"function\"==typeof C&&(k.preventDefault(),aX(r,{pending:!0,data:e=_?sQ(o,_):new FormData(o),method:o.method,action:C},C,e))},currentTarget:o}]})}}s4(i,t)})}function ce(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ct(e,t){for(var n=t+\"Capture\",r=[];null!==e;){var o=e,a=o.stateNode;if(5!==(o=o.tag)&&26!==o&&27!==o||null===a||(null!=(o=t_(e,n))&&r.unshift(ce(e,o,a)),null!=(o=t_(e,t))&&r.push(ce(e,o,a))),3===e.tag)return r;e=e.return}return[]}function cn(e){if(null===e)return null;do e=e.return;while(e&&5!==e.tag&&27!==e.tag);return e||null}function cr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===c||(s=c,o?null!=(c=t_(n,a))&&i.unshift(ce(n,c,s)):o||null!=(c=t_(n,a))&&i.push(ce(n,c,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var co=/\\r\\n?/g,ca=/\\u0000|\\uFFFD/g;function ci(e){return(\"string\"==typeof e?e:\"\"+e).replace(co,\"\\n\").replace(ca,\"\")}function cl(e,t){return t=ci(t),ci(e)===t}function cs(e,t,n,r,o,a){switch(n){case\"children\":\"string\"==typeof r?\"body\"===t||\"textarea\"===t&&\"\"===r||ts(e,r):(\"number\"==typeof r||\"bigint\"==typeof r)&&\"body\"!==t&&ts(e,\"\"+r);break;case\"className\":e4(e,\"class\",r);break;case\"tabIndex\":e4(e,\"tabindex\",r);break;case\"dir\":case\"role\":case\"viewBox\":case\"width\":case\"height\":e4(e,n,r);break;case\"style\":td(e,r,a);break;case\"data\":if(\"object\"!==t){e4(e,\"data\",r);break}case\"src\":case\"href\":if(\"\"===r&&(\"a\"!==t||\"href\"!==n)||null==r||\"function\"==typeof r||\"symbol\"==typeof r||\"boolean\"==typeof r){e.removeAttribute(n);break}r=tm(\"\"+r),e.setAttribute(n,r);break;case\"action\":case\"formAction\":if(\"function\"==typeof r){e.setAttribute(n,\"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\");break}if(\"function\"==typeof a&&(\"formAction\"===n?(\"input\"!==t&&cs(e,t,\"name\",o.name,o,null),cs(e,t,\"formEncType\",o.formEncType,o,null),cs(e,t,\"formMethod\",o.formMethod,o,null),cs(e,t,\"formTarget\",o.formTarget,o,null)):(cs(e,t,\"encType\",o.encType,o,null),cs(e,t,\"method\",o.method,o,null),cs(e,t,\"target\",o.target,o,null))),null==r||\"symbol\"==typeof r||\"boolean\"==typeof r){e.removeAttribute(n);break}r=tm(\"\"+r),e.setAttribute(n,r);break;case\"onClick\":null!=r&&(e.onclick=tg);break;case\"onScroll\":null!=r&&s5(\"scroll\",e);break;case\"onScrollEnd\":null!=r&&s5(\"scrollend\",e);break;case\"dangerouslySetInnerHTML\":if(null!=r){if(\"object\"!=typeof r||!(\"__html\"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=o.children)throw Error(l(60));e.innerHTML=n}}break;case\"multiple\":e.multiple=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r;break;case\"muted\":e.muted=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r;break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":case\"autoFocus\":case\"innerText\":case\"textContent\":break;case\"xlinkHref\":if(null==r||\"function\"==typeof r||\"boolean\"==typeof r||\"symbol\"==typeof r){e.removeAttribute(\"xlink:href\");break}n=tm(\"\"+r),e.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",n);break;case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(n,\"\"+r):e.removeAttribute(n);break;case\"inert\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(n,\"\"):e.removeAttribute(n);break;case\"capture\":case\"download\":!0===r?e.setAttribute(n,\"\"):!1!==r&&null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case\"cols\":case\"rows\":case\"size\":case\"span\":null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case\"rowSpan\":case\"start\":null==r||\"function\"==typeof r||\"symbol\"==typeof r||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case\"popover\":s5(\"beforetoggle\",e),s5(\"toggle\",e),e2(e,\"popover\",r);break;case\"xlinkActuate\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:actuate\",r);break;case\"xlinkArcrole\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:arcrole\",r);break;case\"xlinkRole\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:role\",r);break;case\"xlinkShow\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:show\",r);break;case\"xlinkTitle\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:title\",r);break;case\"xlinkType\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:type\",r);break;case\"xmlBase\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:base\",r);break;case\"xmlLang\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:lang\",r);break;case\"xmlSpace\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",r);break;case\"is\":e2(e,\"is\",r);break;default:2<n.length&&(\"o\"===n[0]||\"O\"===n[0])&&(\"n\"===n[1]||\"N\"===n[1])||e2(e,n=tp.get(n)||n,r)}}function cc(e,t,n,r,o,a){switch(n){case\"style\":td(e,r,a);break;case\"dangerouslySetInnerHTML\":if(null!=r){if(\"object\"!=typeof r||!(\"__html\"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=o.children)throw Error(l(60));e.innerHTML=n}}break;case\"children\":\"string\"==typeof r?ts(e,r):(\"number\"==typeof r||\"bigint\"==typeof r)&&ts(e,\"\"+r);break;case\"onScroll\":null!=r&&s5(\"scroll\",e);break;case\"onScrollEnd\":null!=r&&s5(\"scrollend\",e);break;case\"onClick\":null!=r&&(e.onclick=tg);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"innerHTML\":case\"ref\":case\"innerText\":case\"textContent\":break;default:if(!eX.hasOwnProperty(n))e:{if(\"o\"===n[0]&&\"n\"===n[1]&&(o=n.endsWith(\"Capture\"),t=n.slice(2,o?n.length-7:void 0),\"function\"==typeof(a=null!=(a=e[eL]||null)?a[n]:null)&&e.removeEventListener(t,a,o),\"function\"==typeof r)){\"function\"!=typeof a&&null!==a&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,o);break e}n in e?e[n]=r:!0===r?e.setAttribute(n,\"\"):e2(e,n,r)}}}function cu(e,t,n){switch(t){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"img\":s5(\"error\",e),s5(\"load\",e);var r,o=!1,a=!1;for(r in n)if(n.hasOwnProperty(r)){var i=n[r];if(null!=i)switch(r){case\"src\":o=!0;break;case\"srcSet\":a=!0;break;case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l(137,t));default:cs(e,t,r,i,n,null)}}a&&cs(e,t,\"srcSet\",n.srcSet,n,null),o&&cs(e,t,\"src\",n.src,n,null);return;case\"input\":s5(\"invalid\",e);var s=r=i=a=null,c=null,u=null;for(o in n)if(n.hasOwnProperty(o)){var d=n[o];if(null!=d)switch(o){case\"name\":a=d;break;case\"type\":i=d;break;case\"checked\":c=d;break;case\"defaultChecked\":u=d;break;case\"value\":r=d;break;case\"defaultValue\":s=d;break;case\"children\":case\"dangerouslySetInnerHTML\":if(null!=d)throw Error(l(137,t));break;default:cs(e,t,o,d,n,null)}}tr(e,r,s,c,u,i,a,!1);return;case\"select\":for(a in s5(\"invalid\",e),o=i=r=null,n)if(n.hasOwnProperty(a)&&null!=(s=n[a]))switch(a){case\"value\":r=s;break;case\"defaultValue\":i=s;break;case\"multiple\":o=s;default:cs(e,t,a,s,n,null)}t=r,n=i,e.multiple=!!o,null!=t?ta(e,!!o,t,!1):null!=n&&ta(e,!!o,n,!0);return;case\"textarea\":for(i in s5(\"invalid\",e),r=a=o=null,n)if(n.hasOwnProperty(i)&&null!=(s=n[i]))switch(i){case\"value\":o=s;break;case\"defaultValue\":a=s;break;case\"children\":r=s;break;case\"dangerouslySetInnerHTML\":if(null!=s)throw Error(l(91));break;default:cs(e,t,i,s,n,null)}tl(e,o,a,r);return;case\"option\":for(c in n)n.hasOwnProperty(c)&&null!=(o=n[c])&&(\"selected\"===c?e.selected=o&&\"function\"!=typeof o&&\"symbol\"!=typeof o:cs(e,t,c,o,n,null));return;case\"dialog\":s5(\"beforetoggle\",e),s5(\"toggle\",e),s5(\"cancel\",e),s5(\"close\",e);break;case\"iframe\":case\"object\":s5(\"load\",e);break;case\"video\":case\"audio\":for(o=0;o<s1.length;o++)s5(s1[o],e);break;case\"image\":s5(\"error\",e),s5(\"load\",e);break;case\"details\":s5(\"toggle\",e);break;case\"embed\":case\"source\":case\"link\":s5(\"error\",e),s5(\"load\",e);case\"area\":case\"base\":case\"br\":case\"col\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"track\":case\"wbr\":case\"menuitem\":for(u in n)if(n.hasOwnProperty(u)&&null!=(o=n[u]))switch(u){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l(137,t));default:cs(e,t,u,o,n,null)}return;default:if(tf(t)){for(d in n)n.hasOwnProperty(d)&&void 0!==(o=n[d])&&cc(e,t,d,o,n,void 0);return}}for(s in n)n.hasOwnProperty(s)&&null!=(o=n[s])&&cs(e,t,s,o,n,null)}var cd=null,cf=null;function cp(e){return 9===e.nodeType?e:e.ownerDocument}function ch(e){switch(e){case\"http://www.w3.org/2000/svg\":return 1;case\"http://www.w3.org/1998/Math/MathML\":return 2;default:return 0}}function cm(e,t){if(0===e)switch(t){case\"svg\":return 1;case\"math\":return 2;default:return 0}return 1===e&&\"foreignObject\"===t?0:e}function cg(e,t){return\"textarea\"===e||\"noscript\"===e||\"string\"==typeof t.children||\"number\"==typeof t.children||\"bigint\"==typeof t.children||\"object\"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var cy=null,cv=\"function\"==typeof setTimeout?setTimeout:void 0,cb=\"function\"==typeof clearTimeout?clearTimeout:void 0,cA=\"function\"==typeof Promise?Promise:void 0,cx=\"function\"==typeof queueMicrotask?queueMicrotask:void 0!==cA?function(e){return cA.resolve(null).then(e).catch(cw)}:cv;function cw(e){setTimeout(function(){throw e})}function cC(e){return\"head\"===e}function c_(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if(\"/$\"===(n=o.data)||\"/&\"===n){if(0===r){e.removeChild(o),uO(t);return}r--}else if(\"$\"===n||\"$?\"===n||\"$~\"===n||\"$!\"===n||\"&\"===n)r++;else if(\"html\"===n)cD(e.ownerDocument.documentElement);else if(\"head\"===n){cD(n=e.ownerDocument.head);for(var a=n.firstChild;a;){var i=a.nextSibling,l=a.nodeName;a[eF]||\"SCRIPT\"===l||\"STYLE\"===l||\"LINK\"===l&&\"stylesheet\"===a.rel.toLowerCase()||n.removeChild(a),a=i}}else\"body\"===n&&cD(e.ownerDocument.body);n=o}while(n);uO(t)}function ck(e,t){var n=e;e=0;do{var r=n.nextSibling;if(1===n.nodeType?t?(n._stashedDisplay=n.style.display,n.style.display=\"none\"):(n.style.display=n._stashedDisplay||\"\",\"\"===n.getAttribute(\"style\")&&n.removeAttribute(\"style\")):3===n.nodeType&&(t?(n._stashedText=n.nodeValue,n.nodeValue=\"\"):n.nodeValue=n._stashedText||\"\"),r&&8===r.nodeType)if(\"/$\"===(n=r.data))if(0===e)break;else e--;else\"$\"!==n&&\"$?\"!==n&&\"$~\"!==n&&\"$!\"!==n||e++;n=r}while(n)}function cE(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case\"HTML\":case\"HEAD\":case\"BODY\":cE(n),eq(n);continue;case\"SCRIPT\":case\"STYLE\":continue;case\"LINK\":if(\"stylesheet\"===n.rel.toLowerCase())continue}e.removeChild(n)}}function cj(e,t){for(;8!==e.nodeType;)if(!t||null===(e=cB(e.nextSibling)))return null;return e}function cS(e){return\"$?\"===e.data||\"$~\"===e.data}function cO(e){return\"$!\"===e.data||\"$?\"===e.data&&\"loading\"!==e.ownerDocument.readyState}function cB(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if(\"$\"===(t=e.data)||\"$!\"===t||\"$?\"===t||\"$~\"===t||\"&\"===t||\"F!\"===t||\"F\"===t)break;if(\"/$\"===t||\"/&\"===t)return null}}return e}var cP=null;function cI(e){e=e.nextSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(\"/$\"===n||\"/&\"===n){if(0===t)return cB(e.nextSibling);t--}else\"$\"!==n&&\"$!\"!==n&&\"$?\"!==n&&\"$~\"!==n&&\"&\"!==n||t++}e=e.nextSibling}return null}function cT(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(\"$\"===n||\"$!\"===n||\"$?\"===n||\"$~\"===n||\"&\"===n){if(0===t)return e;t--}else\"/$\"!==n&&\"/&\"!==n||t++}e=e.previousSibling}return null}function cz(e,t,n){switch(t=cp(n),e){case\"html\":if(!(e=t.documentElement))throw Error(l(452));return e;case\"head\":if(!(e=t.head))throw Error(l(453));return e;case\"body\":if(!(e=t.body))throw Error(l(454));return e;default:throw Error(l(451))}}function cD(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);eq(e)}var cL=new Map,cN=new Set;function cR(e){return\"function\"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var cM=T.d;T.d={f:function(){var e=cM.f(),t=sc();return e||t},r:function(e){var t=eV(e);null!==t&&5===t.tag&&\"form\"===t.type?aQ(t):cM.r(e)},D:function(e){cM.D(e),cU(\"dns-prefetch\",e,null)},C:function(e,t){cM.C(e,t),cU(\"preconnect\",e,t)},L:function(e,t,n){if(cM.L(e,t,n),cZ&&e&&t){var r='link[rel=\"preload\"][as=\"'+tt(t)+'\"]';\"image\"===t&&n&&n.imageSrcSet?(r+='[imagesrcset=\"'+tt(n.imageSrcSet)+'\"]',\"string\"==typeof n.imageSizes&&(r+='[imagesizes=\"'+tt(n.imageSizes)+'\"]')):r+='[href=\"'+tt(e)+'\"]';var o=r;switch(t){case\"style\":o=cq(e);break;case\"script\":o=c$(e)}cL.has(o)||(e=f({rel:\"preload\",href:\"image\"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),cL.set(o,e),null!==cZ.querySelector(r)||\"style\"===t&&cZ.querySelector(cH(o))||\"script\"===t&&cZ.querySelector(cW(o))||(cu(t=cZ.createElement(\"link\"),\"link\",e),eY(t),cZ.head.appendChild(t)))}},m:function(e,t){if(cM.m(e,t),cZ&&e){var n=t&&\"string\"==typeof t.as?t.as:\"script\",r='link[rel=\"modulepreload\"][as=\"'+tt(n)+'\"][href=\"'+tt(e)+'\"]',o=r;switch(n){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":o=c$(e)}if(!cL.has(o)&&(e=f({rel:\"modulepreload\",href:e},t),cL.set(o,e),null===cZ.querySelector(r))){switch(n){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":if(cZ.querySelector(cW(o)))return}cu(n=cZ.createElement(\"link\"),\"link\",e),eY(n),cZ.head.appendChild(n)}}},X:function(e,t){if(cM.X(e,t),cZ&&e){var n=eW(cZ).hoistableScripts,r=c$(e),o=n.get(r);o||((o=cZ.querySelector(cW(r)))||(e=f({src:e,async:!0},t),(t=cL.get(r))&&cG(e,t),eY(o=cZ.createElement(\"script\")),cu(o,\"link\",e),cZ.head.appendChild(o)),o={type:\"script\",instance:o,count:1,state:null},n.set(r,o))}},S:function(e,t,n){if(cM.S(e,t,n),cZ&&e){var r=eW(cZ).hoistableStyles,o=cq(e);t=t||\"default\";var a=r.get(o);if(!a){var i={loading:0,preload:null};if(a=cZ.querySelector(cH(o)))i.loading=5;else{e=f({rel:\"stylesheet\",href:e,\"data-precedence\":t},n),(n=cL.get(o))&&cX(e,n);var l=a=cZ.createElement(\"link\");eY(l),cu(l,\"link\",e),l._p=new Promise(function(e,t){l.onload=e,l.onerror=t}),l.addEventListener(\"load\",function(){i.loading|=1}),l.addEventListener(\"error\",function(){i.loading|=2}),i.loading|=4,cK(a,t,cZ)}a={type:\"stylesheet\",instance:a,count:1,state:i},r.set(o,a)}}},M:function(e,t){if(cM.M(e,t),cZ&&e){var n=eW(cZ).hoistableScripts,r=c$(e),o=n.get(r);o||((o=cZ.querySelector(cW(r)))||(e=f({src:e,async:!0,type:\"module\"},t),(t=cL.get(r))&&cG(e,t),eY(o=cZ.createElement(\"script\")),cu(o,\"link\",e),cZ.head.appendChild(o)),o={type:\"script\",instance:o,count:1,state:null},n.set(r,o))}}};var cZ=\"undefined\"==typeof document?null:document;function cU(e,t,n){if(cZ&&\"string\"==typeof t&&t){var r=tt(t);r='link[rel=\"'+e+'\"][href=\"'+r+'\"]',\"string\"==typeof n&&(r+='[crossorigin=\"'+n+'\"]'),cN.has(r)||(cN.add(r),e={rel:e,crossOrigin:n,href:t},null===cZ.querySelector(r)&&(cu(t=cZ.createElement(\"link\"),\"link\",e),eY(t),cZ.head.appendChild(t)))}}function cF(e,t,n,r){var o=(o=F.current)?cR(o):null;if(!o)throw Error(l(446));switch(e){case\"meta\":case\"title\":return null;case\"style\":return\"string\"==typeof n.precedence&&\"string\"==typeof n.href?(t=cq(n.href),(r=(n=eW(o).hoistableStyles).get(t))||(r={type:\"style\",instance:null,count:0,state:null},n.set(t,r)),r):{type:\"void\",instance:null,count:0,state:null};case\"link\":if(\"stylesheet\"===n.rel&&\"string\"==typeof n.href&&\"string\"==typeof n.precedence){e=cq(n.href);var a,i,s,c,u=eW(o).hoistableStyles,d=u.get(e);if(d||(o=o.ownerDocument||o,d={type:\"stylesheet\",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,d),(u=o.querySelector(cH(e)))&&!u._p&&(d.instance=u,d.state.loading=5),cL.has(e)||(n={rel:\"preload\",as:\"style\",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},cL.set(e,n),u||(a=o,i=e,s=n,c=d.state,a.querySelector('link[rel=\"preload\"][as=\"style\"]['+i+\"]\")?c.loading=1:(c.preload=i=a.createElement(\"link\"),i.addEventListener(\"load\",function(){return c.loading|=1}),i.addEventListener(\"error\",function(){return c.loading|=2}),cu(i,\"link\",s),eY(i),a.head.appendChild(i))))),t&&null===r)throw Error(l(528,\"\"));return d}if(t&&null!==r)throw Error(l(529,\"\"));return null;case\"script\":return t=n.async,\"string\"==typeof(n=n.src)&&t&&\"function\"!=typeof t&&\"symbol\"!=typeof t?(t=c$(n),(r=(n=eW(o).hoistableScripts).get(t))||(r={type:\"script\",instance:null,count:0,state:null},n.set(t,r)),r):{type:\"void\",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function cq(e){return'href=\"'+tt(e)+'\"'}function cH(e){return'link[rel=\"stylesheet\"]['+e+\"]\"}function cV(e){return f({},e,{\"data-precedence\":e.precedence,precedence:null})}function c$(e){return'[src=\"'+tt(e)+'\"]'}function cW(e){return\"script[async]\"+e}function cY(e,t,n){if(t.count++,null===t.instance)switch(t.type){case\"style\":var r=e.querySelector('style[data-href~=\"'+tt(n.href)+'\"]');if(r)return t.instance=r,eY(r),r;var o=f({},n,{\"data-href\":n.href,\"data-precedence\":n.precedence,href:null,precedence:null});return eY(r=(e.ownerDocument||e).createElement(\"style\")),cu(r,\"style\",o),cK(r,n.precedence,e),t.instance=r;case\"stylesheet\":o=cq(n.href);var a=e.querySelector(cH(o));if(a)return t.state.loading|=4,t.instance=a,eY(a),a;r=cV(n),(o=cL.get(o))&&cX(r,o),eY(a=(e.ownerDocument||e).createElement(\"link\"));var i=a;return i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),cu(a,\"link\",r),t.state.loading|=4,cK(a,n.precedence,e),t.instance=a;case\"script\":if(a=c$(n.src),o=e.querySelector(cW(a)))return t.instance=o,eY(o),o;return r=n,(o=cL.get(a))&&cG(r=f({},n),o),eY(o=(e=e.ownerDocument||e).createElement(\"script\")),cu(o,\"link\",r),e.head.appendChild(o),t.instance=o;case\"void\":return null;default:throw Error(l(443,t.type))}return\"stylesheet\"===t.type&&0==(4&t.state.loading)&&(r=t.instance,t.state.loading|=4,cK(r,n.precedence,e)),t.instance}function cK(e,t,n){for(var r=n.querySelectorAll('link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'),o=r.length?r[r.length-1]:null,a=o,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===t)a=l;else if(a!==o)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function cX(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function cG(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var cQ=null;function cJ(e,t,n){if(null===cQ){var r=new Map,o=cQ=new Map;o.set(n,r)}else(r=(o=cQ).get(n))||(r=new Map,o.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),o=0;o<n.length;o++){var a=n[o];if(!(a[eF]||a[eD]||\"link\"===e&&\"stylesheet\"===a.getAttribute(\"rel\"))&&\"http://www.w3.org/2000/svg\"!==a.namespaceURI){var i=a.getAttribute(t)||\"\";i=e+i;var l=r.get(i);l?l.push(a):r.set(i,[a])}}return r}function c0(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,\"title\"===t?e.querySelector(\"head > title\"):null)}function c1(e){return\"stylesheet\"!==e.type||0!=(3&e.state.loading)}var c2=null;function c4(){if(this.count--,0===this.count){if(this.stylesheets)c3(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var c5=null;function c3(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,c5=new Map,t.forEach(c6,e),c5=null,c4.call(e))}function c6(e,t){if(!(4&t.state.loading)){var n=c5.get(e);if(n)var r=n.get(null);else{n=new Map,c5.set(e,n);for(var o=e.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),a=0;a<o.length;a++){var i=o[a];(\"LINK\"===i.nodeName||\"not all\"!==i.getAttribute(\"media\"))&&(n.set(i.dataset.precedence,i),r=i)}r&&n.set(null,r)}i=(o=t.instance).getAttribute(\"data-precedence\"),(a=n.get(i)||r)===r&&n.set(null,o),n.set(i,o),this.count++,r=c4.bind(this),o.addEventListener(\"load\",r),o.addEventListener(\"error\",r),a?a.parentNode.insertBefore(o,a.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(o,e.firstChild),t.state.loading|=4}}var c9={$$typeof:A,Provider:null,Consumer:null,_currentValue:z,_currentValue2:z,_threadCount:0};function c8(e,t,n,r,o,a,i,l,s){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=ek(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ek(0),this.hiddenUpdates=ek(null),this.identifierPrefix=r,this.onUncaughtError=o,this.onCaughtError=a,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=s,this.incompleteTransitions=new Map}function c7(e,t,n,r,o,a){o=o?n8:n8,null===r.context?r.context=o:r.pendingContext=o,(r=o_(t)).payload={element:n},null!==(a=void 0===a?null:a)&&(r.callback=a),null!==(n=ok(e,r,t))&&(sa(n,e,t),oE(n,e,t))}function ue(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ut(e,t){ue(e,t),(e=e.alternate)&&ue(e,t)}function un(e){if(13===e.tag||31===e.tag){var t=n3(e,0x4000000);null!==t&&sa(t,e,0x4000000),ut(e,0x4000000)}}function ur(e){if(13===e.tag||31===e.tag){var t=sr(),n=n3(e,t=eB(t));null!==n&&sa(n,e,t),ut(e,t)}}var uo=!0;function ua(e,t,n,r){var o=I.T;I.T=null;var a=T.p;try{T.p=2,ul(e,t,n,r)}finally{T.p=a,I.T=o}}function ui(e,t,n,r){var o=I.T;I.T=null;var a=T.p;try{T.p=8,ul(e,t,n,r)}finally{T.p=a,I.T=o}}function ul(e,t,n,r){if(uo){var o=us(r);if(null===o)s7(e,t,r,uc,n),uA(e,r);else if(function(e,t,n,r,o){switch(t){case\"focusin\":return up=ux(up,e,t,n,r,o),!0;case\"dragenter\":return uh=ux(uh,e,t,n,r,o),!0;case\"mouseover\":return um=ux(um,e,t,n,r,o),!0;case\"pointerover\":var a=o.pointerId;return ug.set(a,ux(ug.get(a)||null,e,t,n,r,o)),!0;case\"gotpointercapture\":return a=o.pointerId,uy.set(a,ux(uy.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(uA(e,r),4&t&&-1<ub.indexOf(e)){for(;null!==o;){var a=eV(o);if(null!==a)switch(a.tag){case 3:if((a=a.stateNode).current.memoizedState.isDehydrated){var i=eA(a.pendingLanes);if(0!==i){var l=a;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-em(i);l.entanglements[1]|=s,i&=~s}sq(a),0==(6&lD)&&(l1=er()+500,sH(0,!1))}}break;case 31:case 13:null!==(l=n3(a,2))&&sa(l,a,2),sc(),ut(a,2)}if(null===(a=us(r))&&s7(e,t,r,uc,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else s7(e,t,r,null,n)}}function us(e){return uu(e=tv(e))}var uc=null;function uu(e){if(uc=null,null!==(e=eH(e))){var t=s(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=c(t)))return e;e=null}else if(31===n){if(null!==(e=u(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return uc=e,null}function ud(e){switch(e){case\"beforetoggle\":case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"toggle\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 2;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 8;case\"message\":switch(eo()){case ea:return 2;case ei:return 8;case el:case es:return 32;case ec:return 0x10000000;default:return 32}default:return 32}}var uf=!1,up=null,uh=null,um=null,ug=new Map,uy=new Map,uv=[],ub=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\" \");function uA(e,t){switch(e){case\"focusin\":case\"focusout\":up=null;break;case\"dragenter\":case\"dragleave\":uh=null;break;case\"mouseover\":case\"mouseout\":um=null;break;case\"pointerover\":case\"pointerout\":ug.delete(t.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":uy.delete(t.pointerId)}}function ux(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&null!==(t=eV(t))&&un(t)):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o)),e}function uw(e){var t=eH(e.target);if(null!==t){var n=s(t);if(null!==n){if(13===(t=n.tag)){if(null!==(t=c(n))){e.blockedOn=t,eT(e.priority,function(){ur(n)});return}}else if(31===t){if(null!==(t=u(n))){e.blockedOn=t,eT(e.priority,function(){ur(n)});return}}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=3===n.tag?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function uC(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=us(e.nativeEvent);if(null!==n)return null!==(t=eV(n))&&un(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);ty=r,n.target.dispatchEvent(r),ty=null,t.shift()}return!0}function u_(e,t,n){uC(e)&&n.delete(t)}function uk(){uf=!1,null!==up&&uC(up)&&(up=null),null!==uh&&uC(uh)&&(uh=null),null!==um&&uC(um)&&(um=null),ug.forEach(u_),uy.forEach(u_)}function uE(e,t){e.blockedOn===t&&(e.blockedOn=null,uf||(uf=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,uk)))}var uj=null;function uS(e){uj!==e&&(uj=e,o.unstable_scheduleCallback(o.unstable_NormalPriority,function(){uj===e&&(uj=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],o=e[t+2];if(\"function\"!=typeof r)if(null===uu(r||n))continue;else break;var a=eV(n);null!==a&&(e.splice(t,3),t-=3,aX(a,{pending:!0,data:o,method:n.method,action:r},r,o))}}))}function uO(e){function t(t){return uE(t,e)}null!==up&&uE(up,e),null!==uh&&uE(uh,e),null!==um&&uE(um,e),ug.forEach(t),uy.forEach(t);for(var n=0;n<uv.length;n++){var r=uv[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<uv.length&&null===(n=uv[0]).blockedOn;)uw(n),null===n.blockedOn&&uv.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<n.length;r+=3){var o=n[r],a=n[r+1],i=o[eL]||null;if(\"function\"==typeof a)i||uS(n);else if(i){var l=null;if(a&&a.hasAttribute(\"formAction\")){if(o=a,i=a[eL]||null)l=i.formAction;else if(null!==uu(o))continue}else l=i.action;\"function\"==typeof l?n[r+1]=l:(n.splice(r,3),r-=3),uS(n)}}}function uB(){function e(e){e.canIntercept&&\"react-transition\"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return o=e})},focusReset:\"manual\",scroll:\"manual\"})}function t(){null!==o&&(o(),o=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:\"react-transition\",history:\"replace\"})}}if(\"object\"==typeof navigation){var r=!1,o=null;return navigation.addEventListener(\"navigate\",e),navigation.addEventListener(\"navigatesuccess\",t),navigation.addEventListener(\"navigateerror\",t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(\"navigate\",e),navigation.removeEventListener(\"navigatesuccess\",t),navigation.removeEventListener(\"navigateerror\",t),null!==o&&(o(),o=null)}}}function uP(e){this._internalRoot=e}function uI(e){this._internalRoot=e}uI.prototype.render=uP.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(l(409));c7(t.current,sr(),e,t,null,null)},uI.prototype.unmount=uP.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;c7(e.current,2,null,e,null,null),sc(),t[eN]=null}},uI.prototype.unstable_scheduleHydration=function(e){if(e){var t=eI();e={blockedOn:null,target:e,priority:t};for(var n=0;n<uv.length&&0!==t&&t<uv[n].priority;n++);uv.splice(n,0,e),0===n&&uw(e)}};var uT=a.version;if(\"19.2.0-canary-0bdb9206-20250818\"!==uT)throw Error(l(527,uT,\"19.2.0-canary-0bdb9206-20250818\"));if(T.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if(\"function\"==typeof e.render)throw Error(l(188));throw Error(l(268,e=Object.keys(e).join(\",\")))}return e=null===(e=null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=s(e)))throw Error(l(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return d(o),e;if(a===r)return d(o),t;a=a.sibling}throw Error(l(188))}if(n.return!==r.return)n=o,r=a;else{for(var i=!1,c=o.child;c;){if(c===n){i=!0,n=o,r=a;break}if(c===r){i=!0,r=o,n=a;break}c=c.sibling}if(!i){for(c=a.child;c;){if(c===n){i=!0,n=a,r=o;break}if(c===r){i=!0,r=a,n=o;break}c=c.sibling}if(!i)throw Error(l(189))}}if(n.alternate!==r)throw Error(l(190))}if(3!==n.tag)throw Error(l(188));return n.stateNode.current===n?e:t}(t))?function e(t){var n=t.tag;if(5===n||26===n||27===n||6===n)return t;for(t=t.child;null!==t;){if(null!==(n=e(t)))return n;t=t.sibling}return null}(e):null)?null:e.stateNode},\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var uz=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!uz.isDisabled&&uz.supportsFiber)try{ef=uz.inject({bundleType:0,version:\"19.2.0-canary-0bdb9206-20250818\",rendererPackageName:\"react-dom\",currentDispatcherRef:I,reconcilerVersion:\"19.2.0-canary-0bdb9206-20250818\"}),ep=uz}catch(e){}}t.createRoot=function(e,t){if(!(n=e)||1!==n.nodeType&&9!==n.nodeType&&11!==n.nodeType)throw Error(l(299));var n,r,o,a,i,s,c,u,d=!1,f=\"\",p=iu,h=id,m=ip;return null!=t&&(!0===t.unstable_strictMode&&(d=!0),void 0!==t.identifierPrefix&&(f=t.identifierPrefix),void 0!==t.onUncaughtError&&(p=t.onUncaughtError),void 0!==t.onCaughtError&&(h=t.onCaughtError),void 0!==t.onRecoverableError&&(m=t.onRecoverableError)),r=e,o=1,a=!1,i=null,s=0,c=d,u=null,r=new c8(r,o,a,f,p,h,m,uB,null),o=1,!0===c&&(o|=24),c=re(3,null,null,o),r.current=c,c.stateNode=r,o=r1(),o.refCount++,r.pooledCache=o,o.refCount++,c.memoizedState={element:null,isDehydrated:a,cache:o},ow(c),t=r,e[eN]=t.current,s9(e),new uP(t)}},\"./dist/compiled/react-dom/cjs/react-dom.production.js\":function(e,t,n){\"use strict\";var r=n(\"./dist/compiled/react/index.js\");function o(e){var t=\"https://react.dev/errors/\"+e;if(1<arguments.length){t+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=\"&args[]=\"+encodeURIComponent(arguments[n])}return\"Minified React error #\"+e+\"; visit \"+t+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function a(){}var i={d:{f:a,r:function(){throw Error(o(522))},D:a,C:a,L:a,m:a,X:a,S:a,M:a},p:0,findDOMNode:null},l=Symbol.for(\"react.portal\"),s=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){return\"font\"===e?\"\":\"string\"==typeof t?\"use-credentials\"===t?t:\"\":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(o(299));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:\"\"+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},t.preconnect=function(e,t){\"string\"==typeof e&&(t=t?\"string\"==typeof(t=t.crossOrigin)?\"use-credentials\"===t?t:\"\":void 0:null,i.d.C(e,t))},t.prefetchDNS=function(e){\"string\"==typeof e&&i.d.D(e)},t.preinit=function(e,t){if(\"string\"==typeof e&&t&&\"string\"==typeof t.as){var n=t.as,r=c(n,t.crossOrigin),o=\"string\"==typeof t.integrity?t.integrity:void 0,a=\"string\"==typeof t.fetchPriority?t.fetchPriority:void 0;\"style\"===n?i.d.S(e,\"string\"==typeof t.precedence?t.precedence:void 0,{crossOrigin:r,integrity:o,fetchPriority:a}):\"script\"===n&&i.d.X(e,{crossOrigin:r,integrity:o,fetchPriority:a,nonce:\"string\"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if(\"string\"==typeof e)if(\"object\"==typeof t&&null!==t){if(null==t.as||\"script\"===t.as){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:\"string\"==typeof t.integrity?t.integrity:void 0,nonce:\"string\"==typeof t.nonce?t.nonce:void 0})}}else null==t&&i.d.M(e)},t.preload=function(e,t){if(\"string\"==typeof e&&\"object\"==typeof t&&null!==t&&\"string\"==typeof t.as){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:\"string\"==typeof t.integrity?t.integrity:void 0,nonce:\"string\"==typeof t.nonce?t.nonce:void 0,type:\"string\"==typeof t.type?t.type:void 0,fetchPriority:\"string\"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:\"string\"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:\"string\"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:\"string\"==typeof t.imageSizes?t.imageSizes:void 0,media:\"string\"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if(\"string\"==typeof e)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:\"string\"==typeof t.as&&\"script\"!==t.as?t.as:void 0,crossOrigin:n,integrity:\"string\"==typeof t.integrity?t.integrity:void 0})}else i.d.m(e)},t.requestFormReset=function(e){i.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},t.useFormStatus=function(){return s.H.useHostTransitionStatus()},t.version=\"19.2.0-canary-0bdb9206-20250818\"},\"./dist/compiled/react-dom/client.js\":function(e,t,n){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(\"./dist/compiled/react-dom/cjs/react-dom-client.production.js\")},\"./dist/compiled/react-dom/index.js\":function(e,t,n){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(\"./dist/compiled/react-dom/cjs/react-dom.production.js\")},\"./dist/compiled/react/cjs/react-compiler-runtime.production.js\":function(e,t,n){\"use strict\";var r=n(\"./dist/compiled/react/index.js\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;t.c=function(e){return r.H.useMemoCache(e)}},\"./dist/compiled/react/cjs/react-jsx-runtime.production.js\":function(e,t){\"use strict\";var n=Symbol.for(\"react.transitional.element\");function r(e,t,r){var o=null;if(void 0!==r&&(o=\"\"+r),void 0!==t.key&&(o=\"\"+t.key),\"key\"in t)for(var a in r={},t)\"key\"!==a&&(r[a]=t[a]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}t.Fragment=Symbol.for(\"react.fragment\"),t.jsx=r,t.jsxs=r},\"./dist/compiled/react/cjs/react.production.js\":function(e,t){\"use strict\";var n=Symbol.for(\"react.transitional.element\"),r=Symbol.for(\"react.portal\"),o=Symbol.for(\"react.fragment\"),a=Symbol.for(\"react.strict_mode\"),i=Symbol.for(\"react.profiler\"),l=Symbol.for(\"react.consumer\"),s=Symbol.for(\"react.context\"),c=Symbol.for(\"react.forward_ref\"),u=Symbol.for(\"react.suspense\"),d=Symbol.for(\"react.memo\"),f=Symbol.for(\"react.lazy\"),p=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(\"object\"!=typeof e&&\"function\"!=typeof e&&null!=e)throw Error(\"takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")},v.prototype=y.prototype;var A=b.prototype=new v;A.constructor=b,m(A,y.prototype),A.isPureReactComponent=!0;var x=Array.isArray;function w(){}var C={H:null,A:null,T:null,S:null},_=Object.prototype.hasOwnProperty;function k(e,t,r){var o=r.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==o?o:null,props:r}}function E(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===n}var j=/\\/+/g;function S(e,t){var n,r;return\"object\"==typeof e&&null!==e&&null!=e.key?(n=\"\"+e.key,r={\"=\":\"=0\",\":\":\"=2\"},\"$\"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36)}function O(e,t,o){if(null==e)return e;var a=[],i=0;return!function e(t,o,a,i,l){var s,c,u,d=typeof t;(\"undefined\"===d||\"boolean\"===d)&&(t=null);var h=!1;if(null===t)h=!0;else switch(d){case\"bigint\":case\"string\":case\"number\":h=!0;break;case\"object\":switch(t.$$typeof){case n:case r:h=!0;break;case f:return e((h=t._init)(t._payload),o,a,i,l)}}if(h)return l=l(t),h=\"\"===i?\".\"+S(t,0):i,x(l)?(a=\"\",null!=h&&(a=h.replace(j,\"$&/\")+\"/\"),e(l,o,a,\"\",function(e){return e})):null!=l&&(E(l)&&(s=l,c=a+(null==l.key||t&&t.key===l.key?\"\":(\"\"+l.key).replace(j,\"$&/\")+\"/\")+h,l=k(s.type,c,s.props)),o.push(l)),1;h=0;var m=\"\"===i?\".\":i+\":\";if(x(t))for(var g=0;g<t.length;g++)d=m+S(i=t[g],g),h+=e(i,o,a,d,l);else if(\"function\"==typeof(g=null===(u=t)||\"object\"!=typeof u?null:\"function\"==typeof(u=p&&u[p]||u[\"@@iterator\"])?u:null))for(t=g.call(t),g=0;!(i=t.next()).done;)d=m+S(i=i.value,g++),h+=e(i,o,a,d,l);else if(\"object\"===d){if(\"function\"==typeof t.then)return e(function(e){switch(e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason;default:switch(\"string\"==typeof e.status?e.then(w,w):(e.status=\"pending\",e.then(function(t){\"pending\"===e.status&&(e.status=\"fulfilled\",e.value=t)},function(t){\"pending\"===e.status&&(e.status=\"rejected\",e.reason=t)})),e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason}}throw e}(t),o,a,i,l);throw Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===(o=String(t))?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":o)+\"). If you meant to render a collection of children, use an array instead.\")}return h}(e,a,\"\",\"\",function(e){return t.call(o,e,i++)}),a}function B(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){(0===e._status||-1===e._status)&&(e._status=1,e._result=t)},function(t){(0===e._status||-1===e._status)&&(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P=\"function\"==typeof reportError?reportError:function(e){if(\"object\"==typeof window&&\"function\"==typeof window.ErrorEvent){var t=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(\"object\"==typeof process&&\"function\"==typeof process.emit)return void process.emit(\"uncaughtException\",e);console.error(e)};t.Children={map:O,forEach:function(e,t,n){O(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return O(e,function(){t++}),t},toArray:function(e){return O(e,function(e){return e})||[]},only:function(e){if(!E(e))throw Error(\"React.Children.only expected to receive a single React element child.\");return e}},t.Component=y,t.Fragment=o,t.Profiler=i,t.PureComponent=b,t.StrictMode=a,t.Suspense=u,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=C,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return C.H.useMemoCache(e)}},t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cacheSignal=function(){return null},t.cloneElement=function(e,t,n){if(null==e)throw Error(\"The argument must be a React element, but you passed \"+e+\".\");var r=m({},e.props),o=e.key;if(null!=t)for(a in void 0!==t.key&&(o=\"\"+t.key),t)_.call(t,a)&&\"key\"!==a&&\"__self\"!==a&&\"__source\"!==a&&(\"ref\"!==a||void 0!==t.ref)&&(r[a]=t[a]);var a=arguments.length-2;if(1===a)r.children=n;else if(1<a){for(var i=Array(a),l=0;l<a;l++)i[l]=arguments[l+2];r.children=i}return k(e.type,o,r)},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},t.createElement=function(e,t,n){var r,o={},a=null;if(null!=t)for(r in void 0!==t.key&&(a=\"\"+t.key),t)_.call(t,r)&&\"key\"!==r&&\"__self\"!==r&&\"__source\"!==r&&(o[r]=t[r]);var i=arguments.length-2;if(1===i)o.children=n;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];o.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===o[r]&&(o[r]=i[r]);return k(e,a,o)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:B}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=C.T,n={};C.T=n;try{var r=e(),o=C.S;null!==o&&o(n,r),\"object\"==typeof r&&null!==r&&\"function\"==typeof r.then&&r.then(w,P)}catch(e){P(e)}finally{null!==t&&null!==n.types&&(t.types=n.types),C.T=t}},t.unstable_useCacheRefresh=function(){return C.H.useCacheRefresh()},t.use=function(e){return C.H.use(e)},t.useActionState=function(e,t,n){return C.H.useActionState(e,t,n)},t.useCallback=function(e,t){return C.H.useCallback(e,t)},t.useContext=function(e){return C.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return C.H.useDeferredValue(e,t)},t.useEffect=function(e,t){return C.H.useEffect(e,t)},t.useId=function(){return C.H.useId()},t.useImperativeHandle=function(e,t,n){return C.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return C.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return C.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return C.H.useMemo(e,t)},t.useOptimistic=function(e,t){return C.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return C.H.useReducer(e,t,n)},t.useRef=function(e){return C.H.useRef(e)},t.useState=function(e){return C.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return C.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return C.H.useTransition()},t.version=\"19.2.0-canary-0bdb9206-20250818\"},\"./dist/compiled/react/compiler-runtime.js\":function(e,t,n){\"use strict\";e.exports=n(\"./dist/compiled/react/cjs/react-compiler-runtime.production.js\")},\"./dist/compiled/react/index.js\":function(e,t,n){\"use strict\";e.exports=n(\"./dist/compiled/react/cjs/react.production.js\")},\"./dist/compiled/react/jsx-runtime.js\":function(e,t,n){\"use strict\";e.exports=n(\"./dist/compiled/react/cjs/react-jsx-runtime.production.js\")},\"./dist/compiled/scheduler/cjs/scheduler.production.js\":function(e,t){\"use strict\";function n(e,t){var n=e.length;for(e.push(t);0<n;){var r=n-1>>>1,o=e[r];if(0<a(o,t))e[r]=t,e[n]=o,n=r;else break}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;for(var r=0,o=e.length,i=o>>>1;r<i;){var l=2*(r+1)-1,s=e[l],c=l+1,u=e[c];if(0>a(s,n))c<o&&0>a(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[l]=n,r=l);else if(c<o&&0>a(u,n))e[r]=u,e[c]=n,r=c;else break}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,\"object\"==typeof performance&&\"function\"==typeof performance.now){var i,l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}var u=[],d=[],f=1,p=null,h=3,m=!1,g=!1,y=!1,v=!1,b=\"function\"==typeof setTimeout?setTimeout:null,A=\"function\"==typeof clearTimeout?clearTimeout:null,x=\"undefined\"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(d);null!==t;){if(null===t.callback)o(d);else if(t.startTime<=e)o(d),t.sortIndex=t.expirationTime,n(u,t);else break;t=r(d)}}function C(e){if(y=!1,w(e),!g)if(null!==r(u))g=!0,_||(_=!0,i());else{var t=r(d);null!==t&&I(C,t.startTime-e)}}var _=!1,k=-1,E=5,j=-1;function S(){return!!v||!(t.unstable_now()-j<E)}function O(){if(v=!1,_){var e=t.unstable_now();j=e;var n=!0;try{e:{g=!1,y&&(y=!1,A(k),k=-1),m=!0;var a=h;try{t:{for(w(e),p=r(u);null!==p&&!(p.expirationTime>e&&S());){var l=p.callback;if(\"function\"==typeof l){p.callback=null,h=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=t.unstable_now(),\"function\"==typeof s){p.callback=s,w(e),n=!0;break t}p===r(u)&&o(u),w(e)}else o(u);p=r(u)}if(null!==p)n=!0;else{var c=r(d);null!==c&&I(C,c.startTime-e),n=!1}}break e}finally{p=null,h=a,m=!1}}}finally{n?i():_=!1}}}if(\"function\"==typeof x)i=function(){x(O)};else if(\"undefined\"!=typeof MessageChannel){var B=new MessageChannel,P=B.port2;B.port1.onmessage=O,i=function(){P.postMessage(null)}}else i=function(){b(O,0)};function I(e,n){k=b(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):E=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var n=h;h=t;try{return e()}finally{h=n}},t.unstable_requestPaint=function(){v=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=h;h=e;try{return t()}finally{h=n}},t.unstable_scheduleCallback=function(e,o,a){var l=t.unstable_now();switch(a=\"object\"==typeof a&&null!==a&&\"number\"==typeof(a=a.delay)&&0<a?l+a:l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,e={id:f++,callback:o,priorityLevel:e,startTime:a,expirationTime:s,sortIndex:-1},a>l?(e.sortIndex=a,n(d,e),null===r(u)&&e===r(d)&&(y?(A(k),k=-1):y=!0,I(C,a-l))):(e.sortIndex=s,n(u,e),g||m||(g=!0,_||(_=!0,i()))),e},t.unstable_shouldYield=S,t.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}},\"./dist/compiled/scheduler/index.js\":function(e,t,n){\"use strict\";e.exports=n(\"./dist/compiled/scheduler/cjs/scheduler.production.js\")},\"./dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\":function(e){(()=>{\"use strict\";\"undefined\"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=\"//\");var t,n,r,o,a,i,l,s,c={};Object.defineProperty(c,\"__esModule\",{value:!0}),t=\"<unknown>\",n=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|webpack-internal|rsc|about|turbopack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,r=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,o=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|webpack-internal|rsc|about|turbopack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,a=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|webpack-internal|rsc|about|turbopack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,i=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,l=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i,s=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,c.parse=function(e){return e.split(\"\\n\").reduce(function(e,c){var u,d,f,p,h,m,g=function(e){var o=n.exec(e);if(!o)return null;var a=o[2]&&0===o[2].indexOf(\"native\"),i=o[2]&&0===o[2].indexOf(\"eval\"),l=r.exec(o[2]);return i&&null!=l&&(o[2]=l[1],o[3]=l[2],o[4]=l[3]),{file:a?null:o[2],methodName:o[1]||t,arguments:a?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}(c)||(u=c,(d=o.exec(u))?{file:d[2],methodName:d[1]||t,arguments:[],lineNumber:+d[3],column:d[4]?+d[4]:null}:null)||function(e){var n=a.exec(e);if(!n)return null;var r=n[3]&&n[3].indexOf(\" > eval\")>-1,o=i.exec(n[3]);return r&&null!=o&&(n[3]=o[1],n[4]=o[2],n[5]=null),{file:n[3],methodName:n[1]||t,arguments:n[2]?n[2].split(\",\"):[],lineNumber:n[4]?+n[4]:null,column:n[5]?+n[5]:null}}(c)||(f=c,(p=s.exec(f))?{file:p[2],methodName:p[1]||t,arguments:[],lineNumber:+p[3],column:p[4]?+p[4]:null}:null)||(h=c,(m=l.exec(h))?{file:m[3],methodName:m[1]||t,arguments:[],lineNumber:+m[4],column:m[5]?+m[5]:null}:null);return g&&e.push(g),e},[])},e.exports=c})()},\"./dist/compiled/strip-ansi/index.js\":function(e){(()=>{\"use strict\";var t={511:e=>{e.exports=({onlyFirst:e=!1}={})=>RegExp(\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)|(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\",e?void 0:\"g\")},532:(e,t,n)=>{let r=n(511);e.exports=e=>\"string\"==typeof e?e.replace(r(),\"\"):e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}},i=!0;try{t[e](a,a.exports,r),i=!1}finally{i&&delete n[e]}return a.exports}r.ab=\"//\",e.exports=r(532)})()},\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\":function(e){function t(){let e=window._nextjsDevtoolsStyleCache;if(e.cachedShadowRoot)return e.cachedShadowRoot;let t=document.querySelector(\"nextjs-portal\"),n=t?.shadowRoot||null;return n&&(e.cachedShadowRoot=n),n}function n(e,t){let n=window._nextjsDevtoolsStyleCache;n.lastInsertedElement?n.lastInsertedElement.nextSibling?t.insertBefore(e,n.lastInsertedElement.nextSibling):t.appendChild(e):t.insertBefore(e,t.firstChild),n.lastInsertedElement=e}function r(){let e=window._nextjsDevtoolsStyleCache,r=t();r&&(e.pendingElements.forEach(e=>{n(e,r)}),e.pendingElements=[])}\"undefined\"!=typeof window&&(window._nextjsDevtoolsStyleCache=window._nextjsDevtoolsStyleCache||{pendingElements:[],isObserving:!1,lastInsertedElement:null,cachedShadowRoot:null}),e.exports=function(e){e.setAttribute(\"data-nextjs-dev-tool-style\",\"true\");let o=t();o?n(e,o):(window._nextjsDevtoolsStyleCache.pendingElements.push(e),function(){let e=window._nextjsDevtoolsStyleCache;if(e.isObserving)return;if(e.isObserving=!0,t())return r();let n=new MutationObserver(o=>{if(0!==o.length){for(let a of o)if(0!==a.addedNodes.length)for(let o of a.addedNodes){if(o.nodeType!==Node.ELEMENT_NODE)continue;let a=null;if(\"SCRIPT\"===o.tagName&&o.getAttribute(\"data-nextjs-dev-overlay\")?a=o.firstChild:\"NEXTJS-PORTAL\"===o.tagName&&(a=o),a){let o=()=>{t()?(r(),n.disconnect(),e.isObserving=!1):setTimeout(o,20)};o();return}}}});n.observe(document.body,{childList:!0,subtree:!0})}())}},\"./dist/compiled/zod/index.cjs\":function(e){(()=>{\"use strict\";var t={629:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||(\"get\"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)\"default\"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t},i=this&&this.__exportStar||function(e,t){for(var n in e)\"default\"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,\"__esModule\",{value:!0}),t.z=void 0;let l=a(n(923));t.z=l,i(n(923),t),t.default=l},348:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ZodError=t.quotelessJson=t.ZodIssueCode=void 0;let r=n(709);t.ZodIssueCode=r.util.arrayToEnum([\"invalid_type\",\"invalid_literal\",\"custom\",\"invalid_union\",\"invalid_union_discriminator\",\"invalid_enum_value\",\"unrecognized_keys\",\"invalid_arguments\",\"invalid_return_type\",\"invalid_date\",\"invalid_string\",\"too_small\",\"too_big\",\"invalid_intersection_types\",\"not_multiple_of\",\"not_finite\"]),t.quotelessJson=e=>JSON.stringify(e,null,2).replace(/\"([^\"]+)\":/g,\"$1:\");class o extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=\"ZodError\",this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let o of e.issues)if(\"invalid_union\"===o.code)o.unionErrors.map(r);else if(\"invalid_return_type\"===o.code)r(o.returnTypeError);else if(\"invalid_arguments\"===o.code)r(o.argumentsError);else if(0===o.path.length)n._errors.push(t(o));else{let e=n,r=0;for(;r<o.path.length;){let n=o.path[r];r===o.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(o))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(e){if(!(e instanceof o))throw Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,r.util.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}t.ZodError=o,o.create=e=>new o(e)},61:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.defaultErrorMap=void 0,t.setErrorMap=function(e){a=e},t.getErrorMap=function(){return a};let o=r(n(871));t.defaultErrorMap=o.default;let a=o.default},923:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||(\"get\"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)\"default\"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,\"__esModule\",{value:!0}),o(n(61),t),o(n(818),t),o(n(515),t),o(n(709),t),o(n(155),t),o(n(348),t)},538:(e,t)=>{var n,r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.errorUtil=void 0,(r=n||(t.errorUtil=n={})).errToObj=e=>\"string\"==typeof e?{message:e}:e||{},r.toString=e=>\"string\"==typeof e?e:e?.message},818:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.isAsync=t.isValid=t.isDirty=t.isAborted=t.OK=t.DIRTY=t.INVALID=t.ParseStatus=t.EMPTY_PATH=t.makeIssue=void 0,t.addIssueToContext=function(e,n){let r=(0,o.getErrorMap)(),i=(0,t.makeIssue)({issueData:n,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===a.default?void 0:a.default].filter(e=>!!e)});e.common.issues.push(i)};let o=n(61),a=r(n(871));t.makeIssue=e=>{let{data:t,path:n,errorMaps:r,issueData:o}=e,a=[...n,...o.path||[]],i={...o,path:a};if(void 0!==o.message)return{...o,path:a,message:o.message};let l=\"\";for(let e of r.filter(e=>!!e).slice().reverse())l=e(i,{data:t,defaultError:l}).message;return{...o,path:a,message:l}},t.EMPTY_PATH=[];class i{constructor(){this.value=\"valid\"}dirty(){\"valid\"===this.value&&(this.value=\"dirty\")}abort(){\"aborted\"!==this.value&&(this.value=\"aborted\")}static mergeArray(e,n){let r=[];for(let o of n){if(\"aborted\"===o.status)return t.INVALID;\"dirty\"===o.status&&e.dirty(),r.push(o.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,t){let n=[];for(let e of t){let t=await e.key,r=await e.value;n.push({key:t,value:r})}return i.mergeObjectSync(e,n)}static mergeObjectSync(e,n){let r={};for(let o of n){let{key:n,value:a}=o;if(\"aborted\"===n.status||\"aborted\"===a.status)return t.INVALID;\"dirty\"===n.status&&e.dirty(),\"dirty\"===a.status&&e.dirty(),\"__proto__\"!==n.value&&(void 0!==a.value||o.alwaysSet)&&(r[n.value]=a.value)}return{status:e.value,value:r}}}t.ParseStatus=i,t.INVALID=Object.freeze({status:\"aborted\"}),t.DIRTY=e=>({status:\"dirty\",value:e}),t.OK=e=>({status:\"valid\",value:e}),t.isAborted=e=>\"aborted\"===e.status,t.isDirty=e=>\"dirty\"===e.status,t.isValid=e=>\"valid\"===e.status,t.isAsync=e=>\"undefined\"!=typeof Promise&&e instanceof Promise},515:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0})},709:(e,t)=>{var n,r,o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.getParsedType=t.ZodParsedType=t.objectUtil=t.util=void 0,(o=n||(t.util=n={})).assertEqual=e=>{},o.assertIs=function(e){},o.assertNever=function(e){throw Error()},o.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},o.getValidEnumValues=e=>{let t=o.objectKeys(e).filter(t=>\"number\"!=typeof e[e[t]]),n={};for(let r of t)n[r]=e[r];return o.objectValues(n)},o.objectValues=e=>o.objectKeys(e).map(function(t){return e[t]}),o.objectKeys=\"function\"==typeof Object.keys?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},o.find=(e,t)=>{for(let n of e)if(t(n))return n},o.isInteger=\"function\"==typeof Number.isInteger?e=>Number.isInteger(e):e=>\"number\"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,o.joinValues=function(e,t=\" | \"){return e.map(e=>\"string\"==typeof e?`'${e}'`:e).join(t)},o.jsonStringifyReplacer=(e,t)=>\"bigint\"==typeof t?t.toString():t,(r||(t.objectUtil=r={})).mergeShapes=(e,t)=>({...e,...t}),t.ZodParsedType=n.arrayToEnum([\"string\",\"nan\",\"number\",\"integer\",\"float\",\"boolean\",\"date\",\"bigint\",\"symbol\",\"function\",\"undefined\",\"null\",\"array\",\"object\",\"unknown\",\"promise\",\"void\",\"never\",\"map\",\"set\"]),t.getParsedType=e=>{switch(typeof e){case\"undefined\":return t.ZodParsedType.undefined;case\"string\":return t.ZodParsedType.string;case\"number\":return Number.isNaN(e)?t.ZodParsedType.nan:t.ZodParsedType.number;case\"boolean\":return t.ZodParsedType.boolean;case\"function\":return t.ZodParsedType.function;case\"bigint\":return t.ZodParsedType.bigint;case\"symbol\":return t.ZodParsedType.symbol;case\"object\":if(Array.isArray(e))return t.ZodParsedType.array;if(null===e)return t.ZodParsedType.null;if(e.then&&\"function\"==typeof e.then&&e.catch&&\"function\"==typeof e.catch)return t.ZodParsedType.promise;if(\"undefined\"!=typeof Map&&e instanceof Map)return t.ZodParsedType.map;if(\"undefined\"!=typeof Set&&e instanceof Set)return t.ZodParsedType.set;if(\"undefined\"!=typeof Date&&e instanceof Date)return t.ZodParsedType.date;return t.ZodParsedType.object;default:return t.ZodParsedType.unknown}}},871:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0});let r=n(348),o=n(709);t.default=(e,t)=>{let n;switch(e.code){case r.ZodIssueCode.invalid_type:n=e.received===o.ZodParsedType.undefined?\"Required\":`Expected ${e.expected}, received ${e.received}`;break;case r.ZodIssueCode.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,o.util.jsonStringifyReplacer)}`;break;case r.ZodIssueCode.unrecognized_keys:n=`Unrecognized key(s) in object: ${o.util.joinValues(e.keys,\", \")}`;break;case r.ZodIssueCode.invalid_union:n=\"Invalid input\";break;case r.ZodIssueCode.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${o.util.joinValues(e.options)}`;break;case r.ZodIssueCode.invalid_enum_value:n=`Invalid enum value. Expected ${o.util.joinValues(e.options)}, received '${e.received}'`;break;case r.ZodIssueCode.invalid_arguments:n=\"Invalid function arguments\";break;case r.ZodIssueCode.invalid_return_type:n=\"Invalid function return type\";break;case r.ZodIssueCode.invalid_date:n=\"Invalid date\";break;case r.ZodIssueCode.invalid_string:\"object\"==typeof e.validation?\"includes\"in e.validation?(n=`Invalid input: must include \"${e.validation.includes}\"`,\"number\"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):\"startsWith\"in e.validation?n=`Invalid input: must start with \"${e.validation.startsWith}\"`:\"endsWith\"in e.validation?n=`Invalid input: must end with \"${e.validation.endsWith}\"`:o.util.assertNever(e.validation):n=\"regex\"!==e.validation?`Invalid ${e.validation}`:\"Invalid\";break;case r.ZodIssueCode.too_small:n=\"array\"===e.type?`Array must contain ${e.exact?\"exactly\":e.inclusive?\"at least\":\"more than\"} ${e.minimum} element(s)`:\"string\"===e.type?`String must contain ${e.exact?\"exactly\":e.inclusive?\"at least\":\"over\"} ${e.minimum} character(s)`:\"number\"===e.type||\"bigint\"===e.type?`Number must be ${e.exact?\"exactly equal to \":e.inclusive?\"greater than or equal to \":\"greater than \"}${e.minimum}`:\"date\"===e.type?`Date must be ${e.exact?\"exactly equal to \":e.inclusive?\"greater than or equal to \":\"greater than \"}${new Date(Number(e.minimum))}`:\"Invalid input\";break;case r.ZodIssueCode.too_big:n=\"array\"===e.type?`Array must contain ${e.exact?\"exactly\":e.inclusive?\"at most\":\"less than\"} ${e.maximum} element(s)`:\"string\"===e.type?`String must contain ${e.exact?\"exactly\":e.inclusive?\"at most\":\"under\"} ${e.maximum} character(s)`:\"number\"===e.type?`Number must be ${e.exact?\"exactly\":e.inclusive?\"less than or equal to\":\"less than\"} ${e.maximum}`:\"bigint\"===e.type?`BigInt must be ${e.exact?\"exactly\":e.inclusive?\"less than or equal to\":\"less than\"} ${e.maximum}`:\"date\"===e.type?`Date must be ${e.exact?\"exactly\":e.inclusive?\"smaller than or equal to\":\"smaller than\"} ${new Date(Number(e.maximum))}`:\"Invalid input\";break;case r.ZodIssueCode.custom:n=\"Invalid input\";break;case r.ZodIssueCode.invalid_intersection_types:n=\"Intersection results could not be merged\";break;case r.ZodIssueCode.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case r.ZodIssueCode.not_finite:n=\"Number must be finite\";break;default:n=t.defaultError,o.util.assertNever(e)}return{message:n}}},155:(e,t,n)=>{var r,o;let a;Object.defineProperty(t,\"__esModule\",{value:!0}),t.discriminatedUnion=t.date=t.boolean=t.bigint=t.array=t.any=t.coerce=t.ZodFirstPartyTypeKind=t.late=t.ZodSchema=t.Schema=t.ZodReadonly=t.ZodPipeline=t.ZodBranded=t.BRAND=t.ZodNaN=t.ZodCatch=t.ZodDefault=t.ZodNullable=t.ZodOptional=t.ZodTransformer=t.ZodEffects=t.ZodPromise=t.ZodNativeEnum=t.ZodEnum=t.ZodLiteral=t.ZodLazy=t.ZodFunction=t.ZodSet=t.ZodMap=t.ZodRecord=t.ZodTuple=t.ZodIntersection=t.ZodDiscriminatedUnion=t.ZodUnion=t.ZodObject=t.ZodArray=t.ZodVoid=t.ZodNever=t.ZodUnknown=t.ZodAny=t.ZodNull=t.ZodUndefined=t.ZodSymbol=t.ZodDate=t.ZodBoolean=t.ZodBigInt=t.ZodNumber=t.ZodString=t.ZodType=void 0,t.NEVER=t.void=t.unknown=t.union=t.undefined=t.tuple=t.transformer=t.symbol=t.string=t.strictObject=t.set=t.record=t.promise=t.preprocess=t.pipeline=t.ostring=t.optional=t.onumber=t.oboolean=t.object=t.number=t.nullable=t.null=t.never=t.nativeEnum=t.nan=t.map=t.literal=t.lazy=t.intersection=t.instanceof=t.function=t.enum=t.effect=void 0,t.datetimeRegex=I,t.custom=ev;let i=n(348),l=n(61),s=n(538),c=n(818),u=n(709);class d{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}let f=(e,t)=>{if((0,c.isValid)(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(\"Validation failed but no issues detected.\");return{success:!1,get error(){if(this._error)return this._error;let t=new i.ZodError(e.common.issues);return this._error=t,this._error}}};function p(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:o}=e;if(t&&(n||r))throw Error('Can\\'t use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.');return t?{errorMap:t,description:o}:{errorMap:(t,o)=>{let{message:a}=e;return\"invalid_enum_value\"===t.code?{message:a??o.defaultError}:void 0===o.data?{message:a??r??o.defaultError}:\"invalid_type\"!==t.code?{message:o.defaultError}:{message:a??n??o.defaultError}},description:o}}class h{get description(){return this._def.description}_getType(e){return(0,u.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,u.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new c.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,u.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if((0,c.isAsync)(t))throw Error(\"Synchronous parse encountered promise.\");return t}_parseAsync(e){return Promise.resolve(this._parse(e))}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,u.getParsedType)(e)},r=this._parseSync({data:e,path:n.path,parent:n});return f(n,r)}\"~validate\"(e){let t={common:{issues:[],async:!!this[\"~standard\"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,u.getParsedType)(e)};if(!this[\"~standard\"].async)try{let n=this._parseSync({data:e,path:[],parent:t});return(0,c.isValid)(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(\"encountered\")&&(this[\"~standard\"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>(0,c.isValid)(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,u.getParsedType)(e)},r=this._parse({data:e,path:n.path,parent:n});return f(n,await ((0,c.isAsync)(r)?r:Promise.resolve(r)))}refine(e,t){return this._refinement((n,r)=>{let o=e(n),a=()=>r.addIssue({code:i.ZodIssueCode.custom,...\"string\"==typeof t||void 0===t?{message:t}:\"function\"==typeof t?t(n):t});return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then(e=>!!e||(a(),!1)):!!o||(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>!!e(n)||(r.addIssue(\"function\"==typeof t?t(n,r):t),!1))}_refinement(e){return new es({schema:this,typeName:r.ZodEffects,effect:{type:\"refinement\",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[\"~standard\"]={version:1,vendor:\"zod\",validate:e=>this[\"~validate\"](e)}}optional(){return ec.create(this,this._def)}nullable(){return eu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return V.create(this)}promise(){return el.create(this,this._def)}or(e){return W.create([this,e],this._def)}and(e){return X.create(this,e,this._def)}transform(e){return new es({...p(this._def),schema:this,typeName:r.ZodEffects,effect:{type:\"transform\",transform:e}})}default(e){return new ed({...p(this._def),innerType:this,defaultValue:\"function\"==typeof e?e:()=>e,typeName:r.ZodDefault})}brand(){return new eh({typeName:r.ZodBranded,type:this,...p(this._def)})}catch(e){return new ef({...p(this._def),innerType:this,catchValue:\"function\"==typeof e?e:()=>e,typeName:r.ZodCatch})}describe(e){return new this.constructor({...this._def,description:e})}pipe(e){return em.create(this,e)}readonly(){return eg.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}t.ZodType=h,t.Schema=h,t.ZodSchema=h;let m=/^c[^\\s-]{8,}$/i,g=/^[0-9a-z]+$/,y=/^[0-9A-HJKMNP-TV-Z]{26}$/i,v=/^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i,b=/^[a-z0-9_-]{21}$/i,A=/^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,x=/^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/,w=/^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i,C=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,k=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,E=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,j=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,S=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,O=\"((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))\",B=RegExp(`^${O}$`);function P(e){let t=\"[0-5]\\\\d\";e.precision?t=`${t}\\\\.\\\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\\\.\\\\d+)?`);let n=e.precision?\"+\":\"?\";return`([01]\\\\d|2[0-3]):[0-5]\\\\d(:${t})${n}`}function I(e){let t=`${O}T${P(e)}`,n=[];return n.push(e.local?\"Z?\":\"Z\"),e.offset&&n.push(\"([+-]\\\\d{2}:?\\\\d{2})\"),t=`${t}(${n.join(\"|\")})`,RegExp(`^${t}$`)}class T extends h{_parse(e){var t,n,r,o;let l;if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==u.ZodParsedType.string){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.string,received:t.parsedType}),c.INVALID}let s=new c.ParseStatus;for(let d of this._def.checks)if(\"min\"===d.kind)e.data.length<d.value&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.too_small,minimum:d.value,type:\"string\",inclusive:!0,exact:!1,message:d.message}),s.dirty());else if(\"max\"===d.kind)e.data.length>d.value&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.too_big,maximum:d.value,type:\"string\",inclusive:!0,exact:!1,message:d.message}),s.dirty());else if(\"length\"===d.kind){let t=e.data.length>d.value,n=e.data.length<d.value;(t||n)&&(l=this._getOrReturnCtx(e,l),t?(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.too_big,maximum:d.value,type:\"string\",inclusive:!0,exact:!0,message:d.message}):n&&(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.too_small,minimum:d.value,type:\"string\",inclusive:!0,exact:!0,message:d.message}),s.dirty())}else if(\"email\"===d.kind)w.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"email\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"emoji\"===d.kind)a||(a=RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\",\"u\")),a.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"emoji\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"uuid\"===d.kind)v.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"uuid\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"nanoid\"===d.kind)b.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"nanoid\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"cuid\"===d.kind)m.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"cuid\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"cuid2\"===d.kind)g.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"cuid2\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"ulid\"===d.kind)y.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"ulid\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"url\"===d.kind)try{new URL(e.data)}catch{l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"url\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()}else\"regex\"===d.kind?(d.regex.lastIndex=0,d.regex.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"regex\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty())):\"trim\"===d.kind?e.data=e.data.trim():\"includes\"===d.kind?e.data.includes(d.value,d.position)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:{includes:d.value,position:d.position},message:d.message}),s.dirty()):\"toLowerCase\"===d.kind?e.data=e.data.toLowerCase():\"toUpperCase\"===d.kind?e.data=e.data.toUpperCase():\"startsWith\"===d.kind?e.data.startsWith(d.value)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:{startsWith:d.value},message:d.message}),s.dirty()):\"endsWith\"===d.kind?e.data.endsWith(d.value)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:{endsWith:d.value},message:d.message}),s.dirty()):\"datetime\"===d.kind?I(d).test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:\"datetime\",message:d.message}),s.dirty()):\"date\"===d.kind?B.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:\"date\",message:d.message}),s.dirty()):\"time\"===d.kind?RegExp(`^${P(d)}$`).test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:\"time\",message:d.message}),s.dirty()):\"duration\"===d.kind?x.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"duration\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()):\"ip\"===d.kind?(t=e.data,!((\"v4\"===(n=d.version)||!n)&&C.test(t)||(\"v6\"===n||!n)&&k.test(t))&&1&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"ip\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty())):\"jwt\"===d.kind?!function(e,t){if(!A.test(e))return!1;try{let[n]=e.split(\".\");if(!n)return!1;let r=n.replace(/-/g,\"+\").replace(/_/g,\"/\").padEnd(n.length+(4-n.length%4)%4,\"=\"),o=JSON.parse(atob(r));if(\"object\"!=typeof o||null===o||\"typ\"in o&&o?.typ!==\"JWT\"||!o.alg||t&&o.alg!==t)return!1;return!0}catch{return!1}}(e.data,d.alg)&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"jwt\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()):\"cidr\"===d.kind?(r=e.data,!((\"v4\"===(o=d.version)||!o)&&_.test(r)||(\"v6\"===o||!o)&&E.test(r))&&1&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"cidr\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty())):\"base64\"===d.kind?j.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"base64\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()):\"base64url\"===d.kind?S.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"base64url\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()):u.util.assertNever(d);return{status:s.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:i.ZodIssueCode.invalid_string,...s.errorUtil.errToObj(n)})}_addCheck(e){return new T({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:\"email\",...s.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:\"url\",...s.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:\"emoji\",...s.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:\"uuid\",...s.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:\"nanoid\",...s.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:\"cuid\",...s.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:\"cuid2\",...s.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:\"ulid\",...s.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:\"base64\",...s.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:\"base64url\",...s.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:\"jwt\",...s.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:\"ip\",...s.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:\"cidr\",...s.errorUtil.errToObj(e)})}datetime(e){return\"string\"==typeof e?this._addCheck({kind:\"datetime\",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:\"datetime\",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...s.errorUtil.errToObj(e?.message)})}date(e){return this._addCheck({kind:\"date\",message:e})}time(e){return\"string\"==typeof e?this._addCheck({kind:\"time\",precision:null,message:e}):this._addCheck({kind:\"time\",precision:void 0===e?.precision?null:e?.precision,...s.errorUtil.errToObj(e?.message)})}duration(e){return this._addCheck({kind:\"duration\",...s.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:\"regex\",regex:e,...s.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:\"includes\",value:e,position:t?.position,...s.errorUtil.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:\"startsWith\",value:e,...s.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:\"endsWith\",value:e,...s.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:\"min\",value:e,...s.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:\"max\",value:e,...s.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:\"length\",value:e,...s.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,s.errorUtil.errToObj(e))}trim(){return new T({...this._def,checks:[...this._def.checks,{kind:\"trim\"}]})}toLowerCase(){return new T({...this._def,checks:[...this._def.checks,{kind:\"toLowerCase\"}]})}toUpperCase(){return new T({...this._def,checks:[...this._def.checks,{kind:\"toUpperCase\"}]})}get isDatetime(){return!!this._def.checks.find(e=>\"datetime\"===e.kind)}get isDate(){return!!this._def.checks.find(e=>\"date\"===e.kind)}get isTime(){return!!this._def.checks.find(e=>\"time\"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>\"duration\"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>\"email\"===e.kind)}get isURL(){return!!this._def.checks.find(e=>\"url\"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>\"emoji\"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>\"uuid\"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>\"nanoid\"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>\"cuid\"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>\"cuid2\"===e.kind)}get isULID(){return!!this._def.checks.find(e=>\"ulid\"===e.kind)}get isIP(){return!!this._def.checks.find(e=>\"ip\"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>\"cidr\"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>\"base64\"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>\"base64url\"===e.kind)}get minLength(){let e=null;for(let t of this._def.checks)\"min\"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)\"max\"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}t.ZodString=T,T.create=e=>new T({checks:[],typeName:r.ZodString,coerce:e?.coerce??!1,...p(e)});class z extends h{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){let t;if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==u.ZodParsedType.number){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.number,received:t.parsedType}),c.INVALID}let n=new c.ParseStatus;for(let r of this._def.checks)\"int\"===r.kind?u.util.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:\"integer\",received:\"float\",message:r.message}),n.dirty()):\"min\"===r.kind?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_small,minimum:r.value,type:\"number\",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):\"max\"===r.kind?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_big,maximum:r.value,type:\"number\",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):\"multipleOf\"===r.kind?0!==function(e,t){let n=(e.toString().split(\".\")[1]||\"\").length,r=(t.toString().split(\".\")[1]||\"\").length,o=n>r?n:r;return Number.parseInt(e.toFixed(o).replace(\".\",\"\"))%Number.parseInt(t.toFixed(o).replace(\".\",\"\"))/10**o}(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):\"finite\"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.not_finite,message:r.message}),n.dirty()):u.util.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(\"min\",e,!0,s.errorUtil.toString(t))}gt(e,t){return this.setLimit(\"min\",e,!1,s.errorUtil.toString(t))}lte(e,t){return this.setLimit(\"max\",e,!0,s.errorUtil.toString(t))}lt(e,t){return this.setLimit(\"max\",e,!1,s.errorUtil.toString(t))}setLimit(e,t,n,r){return new z({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:s.errorUtil.toString(r)}]})}_addCheck(e){return new z({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:\"int\",message:s.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:\"min\",value:0,inclusive:!1,message:s.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:\"max\",value:0,inclusive:!1,message:s.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:\"max\",value:0,inclusive:!0,message:s.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:\"min\",value:0,inclusive:!0,message:s.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:\"multipleOf\",value:e,message:s.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:\"finite\",message:s.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:\"min\",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:s.errorUtil.toString(e)})._addCheck({kind:\"max\",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:s.errorUtil.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)\"min\"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)\"max\"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>\"int\"===e.kind||\"multipleOf\"===e.kind&&u.util.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(\"finite\"===n.kind||\"int\"===n.kind||\"multipleOf\"===n.kind)return!0;else\"min\"===n.kind?(null===t||n.value>t)&&(t=n.value):\"max\"===n.kind&&(null===e||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}}t.ZodNumber=z,z.create=e=>new z({checks:[],typeName:r.ZodNumber,coerce:e?.coerce||!1,...p(e)});class D extends h{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){let t;if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==u.ZodParsedType.bigint)return this._getInvalidInput(e);let n=new c.ParseStatus;for(let r of this._def.checks)\"min\"===r.kind?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_small,type:\"bigint\",minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):\"max\"===r.kind?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_big,type:\"bigint\",maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):\"multipleOf\"===r.kind?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):u.util.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.bigint,received:t.parsedType}),c.INVALID}gte(e,t){return this.setLimit(\"min\",e,!0,s.errorUtil.toString(t))}gt(e,t){return this.setLimit(\"min\",e,!1,s.errorUtil.toString(t))}lte(e,t){return this.setLimit(\"max\",e,!0,s.errorUtil.toString(t))}lt(e,t){return this.setLimit(\"max\",e,!1,s.errorUtil.toString(t))}setLimit(e,t,n,r){return new D({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:s.errorUtil.toString(r)}]})}_addCheck(e){return new D({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:\"min\",value:BigInt(0),inclusive:!1,message:s.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:\"max\",value:BigInt(0),inclusive:!1,message:s.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:\"max\",value:BigInt(0),inclusive:!0,message:s.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:\"min\",value:BigInt(0),inclusive:!0,message:s.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:\"multipleOf\",value:e,message:s.errorUtil.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)\"min\"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)\"max\"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}t.ZodBigInt=D,D.create=e=>new D({checks:[],typeName:r.ZodBigInt,coerce:e?.coerce??!1,...p(e)});class L extends h{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==u.ZodParsedType.boolean){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.boolean,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodBoolean=L,L.create=e=>new L({typeName:r.ZodBoolean,coerce:e?.coerce||!1,...p(e)});class N extends h{_parse(e){let t;if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==u.ZodParsedType.date){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.date,received:t.parsedType}),c.INVALID}if(Number.isNaN(e.data.getTime())){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_date}),c.INVALID}let n=new c.ParseStatus;for(let r of this._def.checks)\"min\"===r.kind?e.data.getTime()<r.value&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:\"date\"}),n.dirty()):\"max\"===r.kind?e.data.getTime()>r.value&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:\"date\"}),n.dirty()):u.util.assertNever(r);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new N({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:\"min\",value:e.getTime(),message:s.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:\"max\",value:e.getTime(),message:s.errorUtil.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)\"min\"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)\"max\"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}t.ZodDate=N,N.create=e=>new N({checks:[],coerce:e?.coerce||!1,typeName:r.ZodDate,...p(e)});class R extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.symbol){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.symbol,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodSymbol=R,R.create=e=>new R({typeName:r.ZodSymbol,...p(e)});class M extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.undefined){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.undefined,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodUndefined=M,M.create=e=>new M({typeName:r.ZodUndefined,...p(e)});class Z extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.null){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.null,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodNull=Z,Z.create=e=>new Z({typeName:r.ZodNull,...p(e)});class U extends h{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,c.OK)(e.data)}}t.ZodAny=U,U.create=e=>new U({typeName:r.ZodAny,...p(e)});class F extends h{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,c.OK)(e.data)}}t.ZodUnknown=F,F.create=e=>new F({typeName:r.ZodUnknown,...p(e)});class q extends h{_parse(e){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.never,received:t.parsedType}),c.INVALID}}t.ZodNever=q,q.create=e=>new q({typeName:r.ZodNever,...p(e)});class H extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.undefined){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.void,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodVoid=H,H.create=e=>new H({typeName:r.ZodVoid,...p(e)});class V extends h{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==u.ZodParsedType.array)return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.array,received:t.parsedType}),c.INVALID;if(null!==r.exactLength){let e=t.data.length>r.exactLength.value,o=t.data.length<r.exactLength.value;(e||o)&&((0,c.addIssueToContext)(t,{code:e?i.ZodIssueCode.too_big:i.ZodIssueCode.too_small,minimum:o?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:\"array\",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(null!==r.minLength&&t.data.length<r.minLength.value&&((0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_small,minimum:r.minLength.value,type:\"array\",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),null!==r.maxLength&&t.data.length>r.maxLength.value&&((0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_big,maximum:r.maxLength.value,type:\"array\",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new d(t,e,t.path,n)))).then(e=>c.ParseStatus.mergeArray(n,e));let o=[...t.data].map((e,n)=>r.type._parseSync(new d(t,e,t.path,n)));return c.ParseStatus.mergeArray(n,o)}get element(){return this._def.type}min(e,t){return new V({...this._def,minLength:{value:e,message:s.errorUtil.toString(t)}})}max(e,t){return new V({...this._def,maxLength:{value:e,message:s.errorUtil.toString(t)}})}length(e,t){return new V({...this._def,exactLength:{value:e,message:s.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}t.ZodArray=V,V.create=(e,t)=>new V({type:e,minLength:null,maxLength:null,exactLength:null,typeName:r.ZodArray,...p(t)});class $ extends h{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;let e=this._def.shape(),t=u.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==u.ZodParsedType.object){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.object,received:t.parsedType}),c.INVALID}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof q&&\"strip\"===this._def.unknownKeys))for(let e in n.data)o.includes(e)||a.push(e);let l=[];for(let e of o){let t=r[e],o=n.data[e];l.push({key:{status:\"valid\",value:e},value:t._parse(new d(n,o,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof q){let e=this._def.unknownKeys;if(\"passthrough\"===e)for(let e of a)l.push({key:{status:\"valid\",value:e},value:{status:\"valid\",value:n.data[e]}});else if(\"strict\"===e)a.length>0&&((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.unrecognized_keys,keys:a}),t.dirty());else if(\"strip\"===e);else throw Error(\"Internal ZodObject error: invalid unknownKeys value.\")}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];l.push({key:{status:\"valid\",value:t},value:e._parse(new d(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of l){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>c.ParseStatus.mergeObjectSync(t,e)):c.ParseStatus.mergeObjectSync(t,l)}get shape(){return this._def.shape()}strict(e){return s.errorUtil.errToObj,new $({...this._def,unknownKeys:\"strict\",...void 0!==e?{errorMap:(t,n)=>{let r=this._def.errorMap?.(t,n).message??n.defaultError;return\"unrecognized_keys\"===t.code?{message:s.errorUtil.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new $({...this._def,unknownKeys:\"strip\"})}passthrough(){return new $({...this._def,unknownKeys:\"passthrough\"})}extend(e){return new $({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new $({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:r.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new $({...this._def,catchall:e})}pick(e){let t={};for(let n of u.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new $({...this._def,shape:()=>t})}omit(e){let t={};for(let n of u.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new $({...this._def,shape:()=>t})}deepPartial(){return function e(t){if(t instanceof $){let n={};for(let r in t.shape){let o=t.shape[r];n[r]=ec.create(e(o))}return new $({...t._def,shape:()=>n})}if(t instanceof V)return new V({...t._def,type:e(t.element)});if(t instanceof ec)return ec.create(e(t.unwrap()));if(t instanceof eu)return eu.create(e(t.unwrap()));if(t instanceof G)return G.create(t.items.map(t=>e(t)));else return t}(this)}partial(e){let t={};for(let n of u.util.objectKeys(this.shape)){let r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new $({...this._def,shape:()=>t})}required(e){let t={};for(let n of u.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof ec;)e=e._def.innerType;t[n]=e}return new $({...this._def,shape:()=>t})}keyof(){return eo(u.util.objectKeys(this.shape))}}t.ZodObject=$,$.create=(e,t)=>new $({shape:()=>e,unknownKeys:\"strip\",catchall:q.create(),typeName:r.ZodObject,...p(t)}),$.strictCreate=(e,t)=>new $({shape:()=>e,unknownKeys:\"strict\",catchall:q.create(),typeName:r.ZodObject,...p(t)}),$.lazycreate=(e,t)=>new $({shape:e,unknownKeys:\"strip\",catchall:q.create(),typeName:r.ZodObject,...p(t)});class W extends h{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(function(e){for(let t of e)if(\"valid\"===t.result.status)return t.result;for(let n of e)if(\"dirty\"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new i.ZodError(e.ctx.common.issues));return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_union,unionErrors:n}),c.INVALID});{let e,r=[];for(let o of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=o._parseSync({data:t.data,path:t.path,parent:n});if(\"valid\"===a.status)return a;\"dirty\"!==a.status||e||(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let o=r.map(e=>new i.ZodError(e));return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_union,unionErrors:o}),c.INVALID}}get options(){return this._def.options}}t.ZodUnion=W,W.create=(e,t)=>new W({options:e,typeName:r.ZodUnion,...p(t)});let Y=e=>{if(e instanceof en)return Y(e.schema);if(e instanceof es)return Y(e.innerType());if(e instanceof er)return[e.value];if(e instanceof ea)return e.options;if(e instanceof ei)return u.util.objectValues(e.enum);else if(e instanceof ed)return Y(e._def.innerType);else if(e instanceof M)return[void 0];else if(e instanceof Z)return[null];else if(e instanceof ec)return[void 0,...Y(e.unwrap())];else if(e instanceof eu)return[null,...Y(e.unwrap())];else if(e instanceof eh)return Y(e.unwrap());else if(e instanceof eg)return Y(e.unwrap());else if(e instanceof ef)return Y(e._def.innerType);else return[]};class K extends h{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==u.ZodParsedType.object)return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.object,received:t.parsedType}),c.INVALID;let n=this.discriminator,r=t.data[n],o=this.optionsMap.get(r);return o?t.common.async?o._parseAsync({data:t.data,path:t.path,parent:t}):o._parseSync({data:t.data,path:t.path,parent:t}):((0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),c.INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){let o=new Map;for(let n of t){let t=Y(n.shape[e]);if(!t.length)throw Error(`A discriminator value for key \\`${e}\\` could not be extracted from all schema options`);for(let r of t){if(o.has(r))throw Error(`Discriminator property ${String(e)} has duplicate value ${String(r)}`);o.set(r,n)}}return new K({typeName:r.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:o,...p(n)})}}t.ZodDiscriminatedUnion=K;class X extends h{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if((0,c.isAborted)(e)||(0,c.isAborted)(r))return c.INVALID;let o=function e(t,n){let r=(0,u.getParsedType)(t),o=(0,u.getParsedType)(n);if(t===n)return{valid:!0,data:t};if(r===u.ZodParsedType.object&&o===u.ZodParsedType.object){let r=u.util.objectKeys(n),o=u.util.objectKeys(t).filter(e=>-1!==r.indexOf(e)),a={...t,...n};for(let r of o){let o=e(t[r],n[r]);if(!o.valid)return{valid:!1};a[r]=o.data}return{valid:!0,data:a}}if(r===u.ZodParsedType.array&&o===u.ZodParsedType.array){if(t.length!==n.length)return{valid:!1};let r=[];for(let o=0;o<t.length;o++){let a=e(t[o],n[o]);if(!a.valid)return{valid:!1};r.push(a.data)}return{valid:!0,data:r}}if(r===u.ZodParsedType.date&&o===u.ZodParsedType.date&&+t==+n)return{valid:!0,data:t};return{valid:!1}}(e.value,r.value);return o.valid?(((0,c.isDirty)(e)||(0,c.isDirty)(r))&&t.dirty(),{status:t.value,value:o.data}):((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_intersection_types}),c.INVALID)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}t.ZodIntersection=X,X.create=(e,t,n)=>new X({left:e,right:t,typeName:r.ZodIntersection,...p(n)});class G extends h{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==u.ZodParsedType.array)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.array,received:n.parsedType}),c.INVALID;if(n.data.length<this._def.items.length)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:\"array\"}),c.INVALID;!this._def.rest&&n.data.length>this._def.items.length&&((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:\"array\"}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new d(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>c.ParseStatus.mergeArray(t,e)):c.ParseStatus.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new G({...this._def,rest:e})}}t.ZodTuple=G,G.create=(e,t)=>{if(!Array.isArray(e))throw Error(\"You must pass an array of schemas to z.tuple([ ... ])\");return new G({items:e,typeName:r.ZodTuple,rest:null,...p(t)})};class Q extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==u.ZodParsedType.object)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.object,received:n.parsedType}),c.INVALID;let r=[],o=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:o._parse(new d(n,e,n.path,e)),value:a._parse(new d(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?c.ParseStatus.mergeObjectAsync(t,r):c.ParseStatus.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new Q(t instanceof h?{keyType:e,valueType:t,typeName:r.ZodRecord,...p(n)}:{keyType:T.create(),valueType:e,typeName:r.ZodRecord,...p(t)})}}t.ZodRecord=Q;class J extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==u.ZodParsedType.map)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.map,received:n.parsedType}),c.INVALID;let r=this._def.keyType,o=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new d(n,e,n.path,[a,\"key\"])),value:o._parse(new d(n,t,n.path,[a,\"value\"]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,o=await n.value;if(\"aborted\"===r.status||\"aborted\"===o.status)return c.INVALID;(\"dirty\"===r.status||\"dirty\"===o.status)&&t.dirty(),e.set(r.value,o.value)}return{status:t.value,value:e}})}{let e=new Map;for(let n of a){let r=n.key,o=n.value;if(\"aborted\"===r.status||\"aborted\"===o.status)return c.INVALID;(\"dirty\"===r.status||\"dirty\"===o.status)&&t.dirty(),e.set(r.value,o.value)}return{status:t.value,value:e}}}}t.ZodMap=J,J.create=(e,t,n)=>new J({valueType:t,keyType:e,typeName:r.ZodMap,...p(n)});class ee extends h{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==u.ZodParsedType.set)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.set,received:n.parsedType}),c.INVALID;let r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.too_small,minimum:r.minSize.value,type:\"set\",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),null!==r.maxSize&&n.data.size>r.maxSize.value&&((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.too_big,maximum:r.maxSize.value,type:\"set\",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let o=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(\"aborted\"===r.status)return c.INVALID;\"dirty\"===r.status&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let l=[...n.data.values()].map((e,t)=>o._parse(new d(n,e,n.path,t)));return n.common.async?Promise.all(l).then(e=>a(e)):a(l)}min(e,t){return new ee({...this._def,minSize:{value:e,message:s.errorUtil.toString(t)}})}max(e,t){return new ee({...this._def,maxSize:{value:e,message:s.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}t.ZodSet=ee,ee.create=(e,t)=>new ee({valueType:e,minSize:null,maxSize:null,typeName:r.ZodSet,...p(t)});class et extends h{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==u.ZodParsedType.function)return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.function,received:t.parsedType}),c.INVALID;function n(e,n){return(0,c.makeIssue)({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,l.getErrorMap)(),l.defaultErrorMap].filter(e=>!!e),issueData:{code:i.ZodIssueCode.invalid_arguments,argumentsError:n}})}function r(e,n){return(0,c.makeIssue)({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,l.getErrorMap)(),l.defaultErrorMap].filter(e=>!!e),issueData:{code:i.ZodIssueCode.invalid_return_type,returnTypeError:n}})}let o={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof el){let e=this;return(0,c.OK)(async function(...t){let l=new i.ZodError([]),s=await e._def.args.parseAsync(t,o).catch(e=>{throw l.addIssue(n(t,e)),l}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,o).catch(e=>{throw l.addIssue(r(c,e)),l})})}{let e=this;return(0,c.OK)(function(...t){let l=e._def.args.safeParse(t,o);if(!l.success)throw new i.ZodError([n(t,l.error)]);let s=Reflect.apply(a,this,l.data),c=e._def.returns.safeParse(s,o);if(!c.success)throw new i.ZodError([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new et({...this._def,args:G.create(e).rest(F.create())})}returns(e){return new et({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new et({args:e||G.create([]).rest(F.create()),returns:t||F.create(),typeName:r.ZodFunction,...p(n)})}}t.ZodFunction=et;class en extends h{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}t.ZodLazy=en,en.create=(e,t)=>new en({getter:e,typeName:r.ZodLazy,...p(t)});class er extends h{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{received:t.data,code:i.ZodIssueCode.invalid_literal,expected:this._def.value}),c.INVALID}return{status:\"valid\",value:e.data}}get value(){return this._def.value}}function eo(e,t){return new ea({values:e,typeName:r.ZodEnum,...p(t)})}t.ZodLiteral=er,er.create=(e,t)=>new er({value:e,typeName:r.ZodLiteral,...p(t)});class ea extends h{_parse(e){if(\"string\"!=typeof e.data){let t=this._getOrReturnCtx(e),n=this._def.values;return(0,c.addIssueToContext)(t,{expected:u.util.joinValues(n),received:t.parsedType,code:i.ZodIssueCode.invalid_type}),c.INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return(0,c.addIssueToContext)(t,{received:t.data,code:i.ZodIssueCode.invalid_enum_value,options:n}),c.INVALID}return(0,c.OK)(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return ea.create(e,{...this._def,...t})}exclude(e,t=this._def){return ea.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}t.ZodEnum=ea,ea.create=eo;class ei extends h{_parse(e){let t=u.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==u.ZodParsedType.string&&n.parsedType!==u.ZodParsedType.number){let e=u.util.objectValues(t);return(0,c.addIssueToContext)(n,{expected:u.util.joinValues(e),received:n.parsedType,code:i.ZodIssueCode.invalid_type}),c.INVALID}if(this._cache||(this._cache=new Set(u.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let e=u.util.objectValues(t);return(0,c.addIssueToContext)(n,{received:n.data,code:i.ZodIssueCode.invalid_enum_value,options:e}),c.INVALID}return(0,c.OK)(e.data)}get enum(){return this._def.values}}t.ZodNativeEnum=ei,ei.create=(e,t)=>new ei({values:e,typeName:r.ZodNativeEnum,...p(t)});class el extends h{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==u.ZodParsedType.promise&&!1===t.common.async)return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.promise,received:t.parsedType}),c.INVALID;let n=t.parsedType===u.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,c.OK)(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}t.ZodPromise=el,el.create=(e,t)=>new el({type:e,typeName:r.ZodPromise,...p(t)});class es extends h{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===r.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,o={addIssue:e=>{(0,c.addIssueToContext)(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),\"preprocess\"===r.type){let e=r.transform(n.data,o);if(n.common.async)return Promise.resolve(e).then(async e=>{if(\"aborted\"===t.value)return c.INVALID;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return\"aborted\"===r.status?c.INVALID:\"dirty\"===r.status||\"dirty\"===t.value?(0,c.DIRTY)(r.value):r});{if(\"aborted\"===t.value)return c.INVALID;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return\"aborted\"===r.status?c.INVALID:\"dirty\"===r.status||\"dirty\"===t.value?(0,c.DIRTY)(r.value):r}}if(\"refinement\"===r.type){let e=e=>{let t=r.refinement(e,o);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");return e};if(!1!==n.common.async)return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>\"aborted\"===n.status?c.INVALID:(\"dirty\"===n.status&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))));{let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return\"aborted\"===r.status?c.INVALID:(\"dirty\"===r.status&&t.dirty(),e(r.value),{status:t.value,value:r.value})}}if(\"transform\"===r.type)if(!1!==n.common.async)return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>(0,c.isValid)(e)?Promise.resolve(r.transform(e.value,o)).then(e=>({status:t.value,value:e})):c.INVALID);else{let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!(0,c.isValid)(e))return c.INVALID;let a=r.transform(e.value,o);if(a instanceof Promise)throw Error(\"Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.\");return{status:t.value,value:a}}u.util.assertNever(r)}}t.ZodEffects=es,t.ZodTransformer=es,es.create=(e,t,n)=>new es({schema:e,typeName:r.ZodEffects,effect:t,...p(n)}),es.createWithPreprocess=(e,t,n)=>new es({schema:t,effect:{type:\"preprocess\",transform:e},typeName:r.ZodEffects,...p(n)});class ec extends h{_parse(e){return this._getType(e)===u.ZodParsedType.undefined?(0,c.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}t.ZodOptional=ec,ec.create=(e,t)=>new ec({innerType:e,typeName:r.ZodOptional,...p(t)});class eu extends h{_parse(e){return this._getType(e)===u.ZodParsedType.null?(0,c.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}t.ZodNullable=eu,eu.create=(e,t)=>new eu({innerType:e,typeName:r.ZodNullable,...p(t)});class ed extends h{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===u.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}t.ZodDefault=ed,ed.create=(e,t)=>new ed({innerType:e,typeName:r.ZodDefault,defaultValue:\"function\"==typeof t.default?t.default:()=>t.default,...p(t)});class ef extends h{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return(0,c.isAsync)(r)?r.then(e=>({status:\"valid\",value:\"valid\"===e.status?e.value:this._def.catchValue({get error(){return new i.ZodError(n.common.issues)},input:n.data})})):{status:\"valid\",value:\"valid\"===r.status?r.value:this._def.catchValue({get error(){return new i.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}t.ZodCatch=ef,ef.create=(e,t)=>new ef({innerType:e,typeName:r.ZodCatch,catchValue:\"function\"==typeof t.catch?t.catch:()=>t.catch,...p(t)});class ep extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.nan){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.nan,received:t.parsedType}),c.INVALID}return{status:\"valid\",value:e.data}}}t.ZodNaN=ep,ep.create=e=>new ep({typeName:r.ZodNaN,...p(e)}),t.BRAND=Symbol(\"zod_brand\");class eh extends h{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}t.ZodBranded=eh;class em extends h{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return\"aborted\"===e.status?c.INVALID:\"dirty\"===e.status?(t.dirty(),(0,c.DIRTY)(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return\"aborted\"===e.status?c.INVALID:\"dirty\"===e.status?(t.dirty(),{status:\"dirty\",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new em({in:e,out:t,typeName:r.ZodPipeline})}}t.ZodPipeline=em;class eg extends h{_parse(e){let t=this._def.innerType._parse(e),n=e=>((0,c.isValid)(e)&&(e.value=Object.freeze(e.value)),e);return(0,c.isAsync)(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}function ey(e,t){let n=\"function\"==typeof e?e(t):\"string\"==typeof e?{message:e}:e;return\"string\"==typeof n?{message:n}:n}function ev(e,t={},n){return e?U.create().superRefine((r,o)=>{let a=e(r);if(a instanceof Promise)return a.then(e=>{if(!e){let e=ey(t,r),a=e.fatal??n??!0;o.addIssue({code:\"custom\",...e,fatal:a})}});if(!a){let e=ey(t,r),a=e.fatal??n??!0;o.addIssue({code:\"custom\",...e,fatal:a})}}):U.create()}t.ZodReadonly=eg,eg.create=(e,t)=>new eg({innerType:e,typeName:r.ZodReadonly,...p(t)}),t.late={object:$.lazycreate},(o=r||(t.ZodFirstPartyTypeKind=r={})).ZodString=\"ZodString\",o.ZodNumber=\"ZodNumber\",o.ZodNaN=\"ZodNaN\",o.ZodBigInt=\"ZodBigInt\",o.ZodBoolean=\"ZodBoolean\",o.ZodDate=\"ZodDate\",o.ZodSymbol=\"ZodSymbol\",o.ZodUndefined=\"ZodUndefined\",o.ZodNull=\"ZodNull\",o.ZodAny=\"ZodAny\",o.ZodUnknown=\"ZodUnknown\",o.ZodNever=\"ZodNever\",o.ZodVoid=\"ZodVoid\",o.ZodArray=\"ZodArray\",o.ZodObject=\"ZodObject\",o.ZodUnion=\"ZodUnion\",o.ZodDiscriminatedUnion=\"ZodDiscriminatedUnion\",o.ZodIntersection=\"ZodIntersection\",o.ZodTuple=\"ZodTuple\",o.ZodRecord=\"ZodRecord\",o.ZodMap=\"ZodMap\",o.ZodSet=\"ZodSet\",o.ZodFunction=\"ZodFunction\",o.ZodLazy=\"ZodLazy\",o.ZodLiteral=\"ZodLiteral\",o.ZodEnum=\"ZodEnum\",o.ZodEffects=\"ZodEffects\",o.ZodNativeEnum=\"ZodNativeEnum\",o.ZodOptional=\"ZodOptional\",o.ZodNullable=\"ZodNullable\",o.ZodDefault=\"ZodDefault\",o.ZodCatch=\"ZodCatch\",o.ZodPromise=\"ZodPromise\",o.ZodBranded=\"ZodBranded\",o.ZodPipeline=\"ZodPipeline\",o.ZodReadonly=\"ZodReadonly\",t.instanceof=(e,t={message:`Input not instance of ${e.name}`})=>ev(t=>t instanceof e,t);let eb=T.create;t.string=eb;let eA=z.create;t.number=eA,t.nan=ep.create,t.bigint=D.create;let ex=L.create;t.boolean=ex,t.date=N.create,t.symbol=R.create,t.undefined=M.create,t.null=Z.create,t.any=U.create,t.unknown=F.create,t.never=q.create,t.void=H.create,t.array=V.create,t.object=$.create,t.strictObject=$.strictCreate,t.union=W.create,t.discriminatedUnion=K.create,t.intersection=X.create,t.tuple=G.create,t.record=Q.create,t.map=J.create,t.set=ee.create,t.function=et.create,t.lazy=en.create,t.literal=er.create,t.enum=ea.create,t.nativeEnum=ei.create,t.promise=el.create;let ew=es.create;t.effect=ew,t.transformer=ew,t.optional=ec.create,t.nullable=eu.create,t.preprocess=es.createWithPreprocess,t.pipeline=em.create,t.ostring=()=>eb().optional(),t.onumber=()=>eA().optional(),t.oboolean=()=>ex().optional(),t.coerce={string:e=>T.create({...e,coerce:!0}),number:e=>z.create({...e,coerce:!0}),boolean:e=>L.create({...e,coerce:!0}),bigint:e=>D.create({...e,coerce:!0}),date:e=>N.create({...e,coerce:!0})},t.NEVER=c.INVALID}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}},i=!0;try{t[e].call(a.exports,a,a.exports,r),i=!1}finally{i&&delete n[e]}return a.exports}r.ab=\"//\",e.exports=r(629)})()}},__webpack_module_cache__={};function __nested_webpack_require_378273__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](n,n.exports,__nested_webpack_require_378273__),n.exports}__nested_webpack_require_378273__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __nested_webpack_require_378273__.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__nested_webpack_require_378273__.t=function(n,r){if(1&r&&(n=this(n)),8&r||\"object\"==typeof n&&n&&(4&r&&n.__esModule||16&r&&\"function\"==typeof n.then))return n;var o=Object.create(null);__nested_webpack_require_378273__.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&n;\"object\"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(e=>{a[e]=()=>n[e]});return a.default=()=>n,__nested_webpack_require_378273__.d(o,a),o}})(),__nested_webpack_require_378273__.d=(e,t)=>{for(var n in t)__nested_webpack_require_378273__.o(t,n)&&!__nested_webpack_require_378273__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__nested_webpack_require_378273__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__nested_webpack_require_378273__.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},__nested_webpack_require_378273__.nc=void 0;var __nested_webpack_exports__={};for(var __webpack_i__ in(()=>{\"use strict\";__nested_webpack_require_378273__.r(__nested_webpack_exports__),__nested_webpack_require_378273__.d(__nested_webpack_exports__,{dispatcher:()=>dr,renderAppDevOverlay:()=>dd,DevOverlayContext:()=>di,renderPagesDevOverlay:()=>df,useDevOverlayContext:()=>dl});var e,t,n,r,o=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\"),a=__nested_webpack_require_378273__.n(o),i=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\"),l=__nested_webpack_require_378273__.n(i),s=__nested_webpack_require_378273__(\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\"),c=__nested_webpack_require_378273__.n(s),u=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\"),d=__nested_webpack_require_378273__.n(u),f=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\"),p=__nested_webpack_require_378273__.n(f),h=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\"),m=__nested_webpack_require_378273__.n(h),g=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/global.css\"),y={};y.styleTagTransform=m(),y.setAttributes=d(),y.insert=c(),y.domAPI=l(),y.insertStyleElement=p(),a()(g.Z,y),g.Z&&g.Z.locals&&g.Z.locals;var v=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/toast/style.css\"),b={};b.styleTagTransform=m(),b.setAttributes=d(),b.insert=c(),b.domAPI=l(),b.insertStyleElement=p(),a()(v.Z,b),v.Z&&v.Z.locals&&v.Z.locals;var A=__nested_webpack_require_378273__(\"./dist/compiled/react/jsx-runtime.js\"),x=__nested_webpack_require_378273__(\"./dist/compiled/react/compiler-runtime.js\"),w=__nested_webpack_require_378273__(\"./dist/compiled/react/index.js\"),C=__nested_webpack_require_378273__.t(w,2),_=__nested_webpack_require_378273__(\"./dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\"),k=/\\/_next(\\/static\\/.+)/,E=Symbol.for(\"next.console.error.digest\");function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){j(e,t,n[t])})}return e}function O(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var B={Small:16/14,Medium:1,Large:16/18},P=\"static-indicator\",I=\"build-ok\",T=\"build-error\",z=\"before-fast-refresh\",D=\"fast-refresh\",L=\"version-info\",N=\"unhandled-error\",R=\"unhandled-rejection\",M=\"debug-info\",Z=\"dev-indicator\",U=\"dev-indicator-disable\",F=\"error-overlay-open\",q=\"error-overlay-close\",H=\"error-overlay-toggle\",V=\"building-indicator-show\",$=\"building-indicator-hide\",W=\"rendering-indicator-show\",Y=\"rendering-indicator-hide\",K=\"devtools-position\",X=\"devtools-panel-position\",G=\"devtools-scale\",Q=\"devtools-config\",J=\"__nextjs-dev-tools-panel-position\",ee=\"__nextjs-dev-tools-panel-size\",et=\"__nextjs-dev-tools-shared-panel-size\",en=\"__nextjs-dev-tools-shared-panel-location\",er=\"segment-explorer-update-route-state\",eo=/\\s+(at Object\\.react_stack_bottom_frame.*)|(react_stack_bottom_frame@.*)|(at react-stack-bottom-frame.*)|(react-stack-bottom-frame@.*)/;function ea(e){return null==e?void 0:e.split(eo)[0]}var ei=(null==(e=true)?void 0:e.toString())===\"false\",el=null!=(t=\"bottom-left\")?t:\"bottom-left\",es={nextId:1,buildError:null,errors:[],notFound:!1,renderingIndicator:!1,staticIndicator:!1,showIndicator:!1,disableDevIndicator:!1,buildingIndicator:!1,refreshState:{type:\"idle\"},versionInfo:{installed:\"0.0.0\",staleness:\"unknown\"},debugInfo:{devtoolsFrontendUrl:void 0},devToolsPosition:el,devToolsPanelPosition:j({},en,el),devToolsPanelSize:{},scale:B.Medium,page:\"\",theme:\"system\",hideShortcut:null},ec=__nested_webpack_require_378273__(\"./dist/compiled/react-dom/client.js\");function eu(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=e.length-1;return(e.slice(0,o).reduce(function(e,t,r){return e+t+n[r]},\"\")+e[o]).replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\").replace(/\\s+/g,\" \").replace(/\\s*([:;,{}])\\s*/g,\"$1\").replace(/;+}/g,\"}\").trim()}function ed(){var e,t,n=(e=[\"\\n /* latin-ext */\\n @font-face {\\n font-family: '__nextjs-Geist';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-latin-ext.woff2) format('woff2');\\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,\\n U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,\\n U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,\\n U+A720-A7FF;\\n }\\n /* latin-ext */\\n @font-face {\\n font-family: '__nextjs-Geist Mono';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-mono-latin-ext.woff2) format('woff2');\\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,\\n U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,\\n U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,\\n U+A720-A7FF;\\n }\\n /* latin */\\n @font-face {\\n font-family: '__nextjs-Geist';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-latin.woff2) format('woff2');\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\\n U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,\\n U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n }\\n /* latin */\\n @font-face {\\n font-family: '__nextjs-Geist Mono';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-mono-latin.woff2) format('woff2');\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\\n U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,\\n U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n }\\n \"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return ed=function(){return n},n}var ef=function(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=[],t[0]=e):e=t[0],(0,w.useInsertionEffect)(ep,e),null};function ep(){var e=document.createElement(\"style\");return e.textContent=eu(ed()),document.head.appendChild(e),function(){document.head.removeChild(e)}}var eh=__nested_webpack_require_378273__(\"./dist/compiled/react-dom/index.js\");function em(e){var t,n=(0,x.c)(3),r=e.children,o=dl().shadowRoot;return n[0]!==r||n[1]!==o?(t=(0,eh.createPortal)(r,o),n[0]=r,n[1]=o,n[2]=t):t=n[2],t}function eg(e){if(\"\"===e.trim())throw Error(\"can't decode empty hex\");var t=parseInt(e,16);if(isNaN(t))throw Error(\"invalid hex: `\".concat(e,\"`\"));return String.fromCodePoint(t)}var ey=/^__TURBOPACK__([a-zA-Z0-9_$]+)__$/,ev=/https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/i,eb=new RegExp(\"(\".concat(/__TURBOPACK__[a-zA-Z0-9_$]+__/g.source,\"|\\\\s+)\")),eA=function(e){var t,n=(0,x.c)(7),r=e.text,o=e.matcher;if(n[0]!==o||n[1]!==r){var a,i,l=r.split(eb);n[3]!==o?(i=function(e,t){if(ev.test(e)){var n=ev.exec(e)[0];return\"function\"!=typeof o||o(n)?(0,A.jsx)(w.Fragment,{children:(0,A.jsx)(\"a\",{href:n,target:\"_blank\",rel:\"noreferrer noopener\",children:e})},\"link-\".concat(t)):e}try{var r=function(e){var t=e.match(ey);if(!t)return e;for(var n=t[1],r=\"\",o=0,a=\"\",i=0;i<n.length;i++){var l=n[i];if(0===o)\"_\"===l?o=1:\"$\"===l?o=2:r+=l;else if(1===o)\"_\"===l?(r+=\" \",o=0):\"$\"===l?(r+=\"_\",o=2):(r+=l,o=0);else if(2===o)if(2===a.length&&(r+=eg(a),a=\"\"),\"_\"===l){if(\"\"!==a)throw Error(\"invalid hex: `\".concat(a,\"`\"));o=3}else if(\"$\"===l){if(\"\"!==a)throw Error(\"invalid hex: `\".concat(a,\"`\"));o=0}else a+=l;else if(3===o)if(\"_\"===l)throw Error(\"invalid hex: `\".concat(a+l,\"`\"));else\"$\"===l?(r+=eg(a),a=\"\",o=0):a+=l}return r}(e);if(r!==e)return(0,A.jsxs)(\"i\",{children:[\"{\",r,\"}\"]},\"ident-\".concat(t))}catch(n){return(0,A.jsxs)(\"i\",{children:[\"{\",e,\" (decoding failed: \",\"\"+n,\")\",\"}\"]},\"ident-\".concat(t))}return(0,A.jsx)(w.Fragment,{children:e},\"text-\".concat(t))},n[3]=o,n[4]=i):i=n[4],a=l.map(i),n[0]=o,n[1]=r,n[2]=a}else a=n[2];return n[5]!==a?(t=(0,A.jsx)(A.Fragment,{children:a}),n[5]=a,n[6]=t):t=n[6],t},ex=[/^webpack-internal:\\/\\/\\/(\\([\\w-]+\\)\\/)?/,/^(webpack:\\/\\/\\/|webpack:\\/\\/(_N_E\\/)?)(\\([\\w-]+\\)\\/)?/];function ew(e){var t=!0,n=!1,r=void 0;try{for(var o,a=ex[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;if(i.test(e))return!0;e=e.replace(i,\"\")}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return!1}function eC(e){var t=!0,n=!1,r=void 0;try{for(var o,a=ex[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;e=e.replace(i,\"\")}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return e}function e_(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function ek(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){e_(a,r,o,i,l,\"next\",e)}function l(e){e_(a,r,o,i,l,\"throw\",e)}i(void 0)})}}function eE(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(n)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function ej(e,t){var n;return\"file://\"===e.file||(null==(n=e.file)?void 0:n.match(/https?:\\/\\//))?Promise.resolve({error:!1,reason:null,external:!0,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null,ignored:!0}):ek(function(){var n,r;return eE(this,function(o){if(\"rejected\"===t.status)throw Error(t.reason);return[2,{error:!1,reason:null,external:!1,sourceStackFrame:e,originalStackFrame:(r=t.value).originalStackFrame,originalCodeFrame:r.originalCodeFrame||null,ignored:(null==(n=r.originalStackFrame)?void 0:n.ignored)||!1}]})})().catch(function(t){var n,r;return{error:!0,reason:null!=(r=null!=(n=null==t?void 0:t.message)?n:null==t?void 0:t.toString())?r:\"Unknown Error\",external:!1,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null,ignored:!1}})}function eS(e,t,n){return ek(function(){var r,o,a,i;return eE(this,function(l){switch(l.label){case 0:r={frames:e,isServer:\"server\"===t,isEdgeServer:\"edge-server\"===t,isAppDirectory:n},o=void 0,a=void 0,l.label=1;case 1:return l.trys.push([1,3,,4]),[4,fetch(\"/__nextjs_original-stack-frames\",{method:\"POST\",body:JSON.stringify(r)})];case 2:return o=l.sent(),[3,4];case 3:return a=l.sent()+\"\",[3,4];case 4:if(!(o&&o.ok&&204!==o.status))return[3,6];return[4,o.json()];case 5:return i=l.sent(),[2,Promise.all(e.map(function(e,t){return ej(e,i[t])}))];case 6:if(!o)return[3,8];return[4,o.text()];case 7:a=l.sent(),l.label=8;case 8:return[2,Promise.all(e.map(function(e){return ej(e,{status:\"rejected\",reason:\"Failed to fetch the original stack frames \".concat(a?\": \".concat(a):\"\")})}))]}})})()}function eO(e){if(!e.file)return\"\";var t=ew(e.file),n=\"\";if(t)n=eC(e.file);else try{var r,o=new URL(e.file),a=\"\";(null==(r=globalThis.location)?void 0:r.origin)!==o.origin&&(\"null\"===o.origin?a+=o.protocol:a+=o.origin),a+=o.pathname,n=eC(a)}catch(t){n=eC(e.file)}return!ew(e.file)&&null!=e.line1&&n&&\"<anonymous>\"!==e.file&&(null!=e.column1?n+=\" (\".concat(e.line1,\":\").concat(e.column1,\")\"):n+=\" (\".concat(e.line1,\")\")),n}function eB(e){var t,n,r=(0,x.c)(6);r[0]!==e?(t=void 0===e?{}:e,r[0]=e,r[1]=t):t=r[1];var o=t.file,a=t.line1,i=t.column1;return r[2]!==i||r[3]!==o||r[4]!==a?(n=function(){if(null!=o&&null!=a&&null!=i){var e=new URLSearchParams;e.append(\"file\",o),e.append(\"line1\",String(a)),e.append(\"column1\",String(i)),self.fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(e.toString())).then(eP,function(e){console.error('Failed to open file \"'.concat(o,\" (\").concat(a,\":\").concat(i,')\" in your editor. Cause:'),e)})}},r[2]=i,r[3]=o,r[4]=a,r[5]=n):n=r[5],n}function eP(){}function eI(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function eT(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function ez(e){var t,n,r=(0,x.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",fill:\"currentColor\",d:\"M11.5 9.75V11.25C11.5 11.3881 11.3881 11.5 11.25 11.5H4.75C4.61193 11.5 4.5 11.3881 4.5 11.25L4.5 4.75C4.5 4.61193 4.61193 4.5 4.75 4.5H6.25H7V3H6.25H4.75C3.7835 3 3 3.7835 3 4.75V11.25C3 12.2165 3.7835 13 4.75 13H11.25C12.2165 13 13 12.2165 13 11.25V9.75V9H11.5V9.75ZM8.5 3H9.25H12.2495C12.6637 3 12.9995 3.33579 12.9995 3.75V6.75V7.5H11.4995V6.75V5.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L10.4388 4.5H9.25H8.5V3Z\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,A.jsx)(\"svg\",eT(eI({xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function eD(e){var t,n,r=(0,x.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.55846 2H7.44148L1.88975 13.5H14.1102L8.55846 2ZM9.90929 1.34788C9.65902 0.829456 9.13413 0.5 8.55846 0.5H7.44148C6.86581 0.5 6.34092 0.829454 6.09065 1.34787L0.192608 13.5653C-0.127943 14.2293 0.355835 15 1.09316 15H14.9068C15.6441 15 16.1279 14.2293 15.8073 13.5653L9.90929 1.34788ZM8.74997 4.75V5.5V8V8.75H7.24997V8V5.5V4.75H8.74997ZM7.99997 12C8.55226 12 8.99997 11.5523 8.99997 11C8.99997 10.4477 8.55226 10 7.99997 10C7.44769 10 6.99997 10.4477 6.99997 11C6.99997 11.5523 7.44769 12 7.99997 12Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,A.jsx)(\"svg\",eT(eI({xmlns:\"http://www.w3.org/2000/svg\",height:\"16\",strokeLinejoin:\"round\",viewBox:\"-4 -4 24 24\",width:\"16\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function eL(e){var t,n,r,o,a,i,l=(0,x.c)(6),s=e.lang;if(!s)return l[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(eZ,{}),l[0]=t):t=l[0],t;switch(s.toLowerCase()){case\"jsx\":case\"tsx\":return l[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,A.jsx)(eU,{}),l[1]=n):n=l[1],n;case\"ts\":case\"typescript\":return l[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(eM,{}),l[2]=r):r=l[2],r;case\"javascript\":case\"js\":case\"mjs\":return l[3]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,A.jsx)(eR,{}),l[3]=o):o=l[3],o;case\"json\":return l[4]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,A.jsx)(eN,{}),l[4]=a):a=l[4],a;default:return l[5]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,A.jsx)(eZ,{}),l[5]=i):i=l[5],i}}function eN(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{clipRule:\"evenodd\",fillRule:\"evenodd\",height:\"16\",viewBox:\"0 0 1321.45 1333.33\",width:\"16\",children:(0,A.jsx)(\"path\",{d:\"M221.37 618.44h757.94V405.15H755.14c-23.5 0-56.32-12.74-71.82-28.24-15.5-15.5-25-43.47-25-66.97V82.89H88.39c-1.99 0-3.49 1-4.49 2-1.5 1-2 2.5-2 4.5v1155.04c0 1.5 1 3.5 2 4.5 1 1.49 3 1.99 4.49 1.99H972.8c2 0 1.89-.99 2.89-1.99 1.5-1 3.61-3 3.61-4.5v-121.09H221.36c-44.96 0-82-36.9-82-81.99V700.44c0-45.1 36.9-82 82-82zm126.51 117.47h75.24v146.61c0 30.79-2.44 54.23-7.33 70.31-4.92 16.03-14.8 29.67-29.65 40.85-14.86 11.12-33.91 16.72-57.05 16.72-24.53 0-43.51-3.71-56.94-11.06-13.5-7.36-23.89-18.1-31.23-32.3-7.35-14.14-11.69-31.67-12.99-52.53l71.5-10.81c.11 11.81 1.07 20.61 2.81 26.33 1.76 5.78 4.75 10.37 9 13.95 2.87 2.33 6.94 3.46 12.25 3.46 8.4 0 14.58-3.46 18.53-10.37 3.9-6.92 5.87-18.6 5.87-35V735.92zm112.77 180.67l71.17-4.97c1.54 12.81 4.69 22.62 9.44 29.28 7.74 10.88 18.74 16.34 33.09 16.34 10.68 0 18.93-2.76 24.68-8.36 5.81-5.58 8.7-12.07 8.7-19.41 0-6.97-2.71-13.26-8.2-18.79-5.47-5.53-18.23-10.68-38.28-15.65-32.89-8.17-56.27-19.1-70.26-32.74-14.12-13.57-21.18-30.92-21.18-52.03 0-13.83 3.61-26.89 10.85-39.21 7.22-12.38 18.07-22.06 32.59-29.09 14.52-7.04 34.4-10.56 59.65-10.56 31 0 54.62 6.41 70.88 19.29 16.28 12.81 25.92 33.24 29.04 61.27l-70.5 4.65c-1.87-12.25-5.81-21.17-11.81-26.7-6.05-5.6-14.35-8.36-24.9-8.36-8.71 0-15.31 2.07-19.73 6.16-4.4 4.09-6.59 9.12-6.59 15.02 0 4.27 1.81 8.11 5.37 11.57 3.45 3.59 11.8 6.85 25.02 9.93 32.75 7.86 56.2 15.84 70.31 23.87 14.18 8.05 24.52 17.98 30.96 29.92 6.44 11.88 9.66 25.2 9.66 39.96 0 17.29-4.3 33.24-12.88 47.89-8.63 14.58-20.61 25.7-36.08 33.24-15.41 7.54-34.85 11.31-58.33 11.31-41.24 0-69.81-8.86-85.68-26.52-15.88-17.65-24.85-40.09-26.96-67.3zm248.74-45.5c0-44.05 11.02-78.36 33.09-102.87 22.09-24.57 52.82-36.82 92.24-36.82 40.38 0 71.5 12.07 93.34 36.13 21.86 24.13 32.77 57.94 32.77 101.37 0 31.54-4.75 57.36-14.3 77.54-9.54 20.18-23.37 35.89-41.4 47.13-18.07 11.24-40.55 16.84-67.48 16.84-27.33 0-49.99-4.83-67.94-14.52-17.92-9.74-32.49-25.07-43.62-46.06-11.13-20.92-16.72-47.19-16.72-78.74zm74.89.19c0 27.21 4.57 46.81 13.68 58.68 9.13 11.88 21.57 17.85 37.26 17.85 16.1 0 28.65-5.84 37.45-17.47 8.87-11.68 13.28-32.54 13.28-62.77 0-25.39-4.63-43.92-13.84-55.61-9.26-11.76-21.75-17.6-37.56-17.6-15.13 0-27.34 5.97-36.49 17.85-9.21 11.88-13.78 31.61-13.78 59.07zm209.08-135.36h69.99l90.98 149.05V735.91h70.83v269.96h-70.83l-90.48-148.24v148.24h-70.49V735.91zm67.71-117.47h178.37c45.1 0 82 37.04 82 82v340.91c0 44.96-37.03 81.99-82 81.99h-178.37v147c0 17.5-6.99 32.99-18.5 44.5-11.5 11.49-27 18.5-44.5 18.5H62.97c-17.5 0-32.99-7-44.5-18.5-11.49-11.5-18.5-27-18.5-44.5V63.49c0-17.5 7-33 18.5-44.5S45.97.49 62.97.49H700.1c1.5-.5 3-.5 4.5-.5 7 0 14 3 19 7.49h1c1 .5 1.5 1 2.5 2l325.46 329.47c5.5 5.5 9.5 13 9.5 21.5 0 2.5-.5 4.5-1 7v250.98zM732.61 303.47V96.99l232.48 235.47H761.6c-7.99 0-14.99-3.5-20.5-8.49-4.99-5-8.49-12.5-8.49-20.5z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function eR(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{height:\"16\",viewBox:\"0 0 50 50\",width:\"16\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,A.jsx)(\"path\",{d:\"M 43.335938 4 L 6.667969 4 C 5.195313 4 4 5.195313 4 6.667969 L 4 43.332031 C 4 44.804688 5.195313 46 6.667969 46 L 43.332031 46 C 44.804688 46 46 44.804688 46 43.335938 L 46 6.667969 C 46 5.195313 44.804688 4 43.335938 4 Z M 27 36.183594 C 27 40.179688 24.65625 42 21.234375 42 C 18.140625 42 15.910156 39.925781 15 38 L 18.144531 36.097656 C 18.75 37.171875 19.671875 38 21 38 C 22.269531 38 23 37.503906 23 35.574219 L 23 23 L 27 23 Z M 35.675781 42 C 32.132813 42 30.121094 40.214844 29 38 L 32 36 C 32.816406 37.335938 33.707031 38.613281 35.589844 38.613281 C 37.171875 38.613281 38 37.824219 38 36.730469 C 38 35.425781 37.140625 34.960938 35.402344 34.199219 L 34.449219 33.789063 C 31.695313 32.617188 29.863281 31.148438 29.863281 28.039063 C 29.863281 25.179688 32.046875 23 35.453125 23 C 37.878906 23 39.621094 23.84375 40.878906 26.054688 L 37.910156 27.964844 C 37.253906 26.789063 36.550781 26.328125 35.453125 26.328125 C 34.335938 26.328125 33.628906 27.039063 33.628906 27.964844 C 33.628906 29.109375 34.335938 29.570313 35.972656 30.28125 L 36.925781 30.691406 C 40.171875 32.078125 42 33.496094 42 36.683594 C 42 40.117188 39.300781 42 35.675781 42 Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function eM(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsxs)(\"svg\",{fill:\"none\",height:\"14\",viewBox:\"0 0 512 512\",width:\"14\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,A.jsx)(\"rect\",{fill:\"currentColor\",height:\"512\",rx:\"50\",width:\"512\"}),(0,A.jsx)(\"rect\",{fill:\"currentColor\",height:\"512\",rx:\"50\",width:\"512\"}),(0,A.jsx)(\"path\",{clipRule:\"evenodd\",d:\"m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z\",fill:\"var(--color-background-100)\",fillRule:\"evenodd\"})]}),t[0]=e):e=t[0],e}function eZ(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{width:\"16\",height:\"17\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.5 7v7a2.5 2.5 0 0 1-2.5 2.5H4A2.5 2.5 0 0 1 1.5 14V.5h7.586a1 1 0 0 1 .707.293l4.414 4.414a1 1 0 0 1 .293.707V7zM13 7v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2h5v5h5zM9.5 2.621V5.5h2.879L9.5 2.621z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function eU(){var e,t,n=(0,x.c)(2);return n[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"g\",{clipPath:\"url(#file_react_clip0_872_3183)\",children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M4.5 1.93782C4.70129 1.82161 4.99472 1.7858 5.41315 1.91053C5.83298 2.03567 6.33139 2.31073 6.87627 2.73948C7.01136 2.84578 7.14803 2.96052 7.28573 3.08331C6.86217 3.53446 6.44239 4.04358 6.03752 4.60092C5.35243 4.67288 4.70164 4.78186 4.09916 4.92309C4.06167 4.74244 4.03064 4.56671 4.00612 4.39656C3.90725 3.71031 3.91825 3.14114 4.01979 2.71499C4.12099 2.29025 4.29871 2.05404 4.5 1.93782ZM7.49466 1.95361C7.66225 2.08548 7.83092 2.22804 7.99999 2.38067C8.16906 2.22804 8.33773 2.08548 8.50532 1.95361C9.10921 1.47842 9.71982 1.12549 10.3012 0.952202C10.8839 0.778496 11.4838 0.7738 12 1.0718C12.5161 1.3698 12.812 1.89169 12.953 2.48322C13.0936 3.07333 13.0932 3.77858 12.9836 4.53917C12.9532 4.75024 12.9141 4.9676 12.8665 5.19034C13.0832 5.26044 13.291 5.33524 13.489 5.41444C14.2025 5.69983 14.8134 6.05217 15.2542 6.46899C15.696 6.8868 16 7.404 16 8C16 8.596 15.696 9.11319 15.2542 9.53101C14.8134 9.94783 14.2025 10.3002 13.489 10.5856C13.291 10.6648 13.0832 10.7396 12.8665 10.8097C12.9141 11.0324 12.9532 11.2498 12.9837 11.4608C13.0932 12.2214 13.0936 12.9267 12.953 13.5168C12.812 14.1083 12.5161 14.6302 12 14.9282C11.4839 15.2262 10.8839 15.2215 10.3012 15.0478C9.71984 14.8745 9.10923 14.5216 8.50534 14.0464C8.33775 13.9145 8.16906 13.7719 7.99999 13.6193C7.83091 13.7719 7.66223 13.9145 7.49464 14.0464C6.89075 14.5216 6.28014 14.8745 5.69879 15.0478C5.11605 15.2215 4.51613 15.2262 3.99998 14.9282C3.48383 14.6302 3.18794 14.1083 3.047 13.5168C2.9064 12.9267 2.90674 12.2214 3.01632 11.4608C3.04673 11.2498 3.08586 11.0324 3.13351 10.8097C2.91679 10.7395 2.709 10.6648 2.511 10.5856C1.79752 10.3002 1.18658 9.94783 0.745833 9.53101C0.304028 9.11319 0 8.596 0 8C0 7.404 0.304028 6.8868 0.745833 6.46899C1.18658 6.05217 1.79752 5.69983 2.511 5.41444C2.709 5.33524 2.9168 5.26044 3.13352 5.19034C3.08587 4.9676 3.04675 4.75024 3.01634 4.53917C2.90676 3.77858 2.90642 3.07332 3.04702 2.48321C3.18796 1.89169 3.48385 1.3698 4 1.0718C4.51615 0.773798 5.11607 0.778495 5.69881 0.952201C6.28016 1.12549 6.89077 1.47841 7.49466 1.95361ZM7.36747 4.51025C7.57735 4.25194 7.78881 4.00927 7.99999 3.78356C8.21117 4.00927 8.42263 4.25194 8.63251 4.51025C8.42369 4.50346 8.21274 4.5 8 4.5C7.78725 4.5 7.5763 4.50345 7.36747 4.51025ZM8.71425 3.08331C9.13781 3.53447 9.55759 4.04358 9.96246 4.60092C10.6475 4.67288 11.2983 4.78186 11.9008 4.92309C11.9383 4.74244 11.9693 4.56671 11.9939 4.39657C12.0927 3.71031 12.0817 3.14114 11.9802 2.71499C11.879 2.29025 11.7013 2.05404 11.5 1.93782C11.2987 1.82161 11.0053 1.7858 10.5868 1.91053C10.167 2.03568 9.66859 2.31073 9.12371 2.73948C8.98862 2.84578 8.85196 2.96052 8.71425 3.08331ZM8 5.5C8.48433 5.5 8.95638 5.51885 9.41188 5.55456C9.67056 5.93118 9.9229 6.33056 10.1651 6.75C10.4072 7.16944 10.6269 7.58766 10.8237 7.99998C10.6269 8.41232 10.4072 8.83055 10.165 9.25C9.92288 9.66944 9.67053 10.0688 9.41185 10.4454C8.95636 10.4812 8.48432 10.5 8 10.5C7.51567 10.5 7.04363 10.4812 6.58813 10.4454C6.32945 10.0688 6.0771 9.66944 5.83494 9.25C5.59277 8.83055 5.37306 8.41232 5.17624 7.99998C5.37306 7.58765 5.59275 7.16944 5.83492 6.75C6.07708 6.33056 6.32942 5.93118 6.5881 5.55456C7.04361 5.51884 7.51566 5.5 8 5.5ZM11.0311 6.25C11.1375 6.43423 11.2399 6.61864 11.3385 6.80287C11.4572 6.49197 11.5616 6.18752 11.6515 5.89178C11.3505 5.82175 11.0346 5.75996 10.706 5.70736C10.8163 5.8848 10.9247 6.06576 11.0311 6.25ZM11.0311 9.75C11.1374 9.56576 11.2399 9.38133 11.3385 9.19709C11.4572 9.50801 11.5617 9.81246 11.6515 10.1082C11.3505 10.1782 11.0346 10.24 10.7059 10.2926C10.8162 10.1152 10.9247 9.93424 11.0311 9.75ZM11.9249 7.99998C12.2051 8.62927 12.4362 9.24738 12.6151 9.83977C12.7903 9.78191 12.958 9.72092 13.1176 9.65708C13.7614 9.39958 14.2488 9.10547 14.5671 8.80446C14.8843 8.50445 15 8.23243 15 8C15 7.76757 14.8843 7.49555 14.5671 7.19554C14.2488 6.89453 13.7614 6.60042 13.1176 6.34292C12.958 6.27907 12.7903 6.21808 12.6151 6.16022C12.4362 6.7526 12.2051 7.37069 11.9249 7.99998ZM9.96244 11.3991C10.6475 11.3271 11.2983 11.2181 11.9008 11.0769C11.9383 11.2576 11.9694 11.4333 11.9939 11.6034C12.0928 12.2897 12.0817 12.8589 11.9802 13.285C11.879 13.7098 11.7013 13.946 11.5 14.0622C11.2987 14.1784 11.0053 14.2142 10.5868 14.0895C10.167 13.9643 9.66861 13.6893 9.12373 13.2605C8.98863 13.1542 8.85196 13.0395 8.71424 12.9167C9.1378 12.4655 9.55758 11.9564 9.96244 11.3991ZM8.63249 11.4898C8.42262 11.7481 8.21116 11.9907 7.99999 12.2164C7.78881 11.9907 7.57737 11.7481 7.36749 11.4897C7.57631 11.4965 7.78726 11.5 8 11.5C8.21273 11.5 8.42367 11.4965 8.63249 11.4898ZM4.96891 9.75C5.07528 9.93424 5.18375 10.1152 5.29404 10.2926C4.9654 10.24 4.64951 10.1782 4.34844 10.1082C4.43833 9.81246 4.54276 9.508 4.66152 9.19708C4.76005 9.38133 4.86254 9.56575 4.96891 9.75ZM6.03754 11.3991C5.35244 11.3271 4.70163 11.2181 4.09914 11.0769C4.06165 11.2576 4.03062 11.4333 4.0061 11.6034C3.90723 12.2897 3.91823 12.8589 4.01977 13.285C4.12097 13.7098 4.29869 13.946 4.49998 14.0622C4.70127 14.1784 4.9947 14.2142 5.41313 14.0895C5.83296 13.9643 6.33137 13.6893 6.87625 13.2605C7.01135 13.1542 7.14802 13.0395 7.28573 12.9167C6.86217 12.4655 6.4424 11.9564 6.03754 11.3991ZM4.07507 7.99998C3.79484 8.62927 3.56381 9.24737 3.38489 9.83977C3.20969 9.78191 3.042 9.72092 2.88239 9.65708C2.23864 9.39958 1.75123 9.10547 1.43294 8.80446C1.11571 8.50445 1 8.23243 1 8C1 7.76757 1.11571 7.49555 1.43294 7.19554C1.75123 6.89453 2.23864 6.60042 2.88239 6.34292C3.042 6.27907 3.2097 6.21808 3.3849 6.16022C3.56383 6.75261 3.79484 7.37069 4.07507 7.99998ZM4.66152 6.80287C4.54277 6.49197 4.43835 6.18752 4.34846 5.89178C4.64952 5.82175 4.96539 5.75996 5.29402 5.70736C5.18373 5.8848 5.07526 6.06576 4.96889 6.25C4.86253 6.43423 4.76005 6.61864 4.66152 6.80287ZM9.25 8C9.25 8.69036 8.69036 9.25 8 9.25C7.30964 9.25 6.75 8.69036 6.75 8C6.75 7.30965 7.30964 6.75 8 6.75C8.69036 6.75 9.25 7.30965 9.25 8Z\",fill:\"currentColor\"})}),n[0]=e):e=n[0],n[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsxs)(\"svg\",{height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:[e,(0,A.jsx)(\"defs\",{children:(0,A.jsx)(\"clipPath\",{id:\"file_react_clip0_872_3183\",children:(0,A.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\"})})})]}),n[1]=t):t=n[1],t}var eF=__nested_webpack_require_378273__(\"./dist/compiled/anser/index.js\"),eq=__nested_webpack_require_378273__.n(eF),eH=__nested_webpack_require_378273__(\"./dist/compiled/strip-ansi/index.js\"),eV=__nested_webpack_require_378273__.n(eH);function e$(e){var t=e.split(/\\r?\\n/g),n=t.map(function(e){return null===/^>? +\\d+ +\\| [ ]+/.exec(eV()(e))?null:/^>? +\\d+ +\\| ( *)/.exec(eV()(e))}).filter(Boolean).map(function(e){return e.pop()}).reduce(function(e,t){return isNaN(e)?t.length:Math.min(e,t.length)},NaN);return n>1?t.map(function(e,t){return~(t=e.indexOf(\"|\"))?e.substring(0,t)+e.substring(t).replace(\"^\\\\ {\".concat(n,\"}\"),\"\"):e}).join(\"\\n\"):t.join(\"\\n\")}function eW(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function eY(e){var t,n,r,o=e.stackFrame,a=e.codeFrame,i=(0,w.useMemo)(function(){return(function(e){var t=eq().ansiToJson(e,{json:!0,use_classes:!0,remove_empty:!0}),n=[],r=[],o=!0,a=!1,i=void 0;try{for(var l,s=t[Symbol.iterator]();!(o=(l=s.next()).done);o=!0){var c=l.value;if(\"string\"==typeof c.content&&c.content.includes(\"\\n\"))for(var u=c.content.split(\"\\n\"),d=0;d<u.length;d++){var f=u[d];f&&r.push(function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},c),{content:f})),d<u.length-1&&(n.push(r),r=[])}else r.push(c)}}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}return r.length>0&&n.push(r),n})(e$(a)).map(function(e){var t,n,r,a,i,l,s,c,u;return{line:e,parsedLine:(t=e,n=o,((null==(r=t[0])?void 0:r.content)===\">\"||(null==(a=t[0])?void 0:a.content)===\" \")&&(s=null==(l=t[1])||null==(u=l.content)||null==(c=u.replace(\"|\",\"\"))?void 0:c.trim()),{lineNumber:s,isErroredLine:s===(null==(i=n.line1)?void 0:i.toString())})}})},[a,o]),l=eB({file:o.file,line1:null!=(n=o.line1)?n:1,column1:null!=(r=o.column1)?r:1}),s=null==o||null==(t=o.file)?void 0:t.split(\".\").pop();return(0,A.jsxs)(\"div\",{\"data-nextjs-codeframe\":!0,children:[(0,A.jsx)(\"div\",{className:\"code-frame-header\",children:(0,A.jsxs)(\"p\",{className:\"code-frame-link\",children:[(0,A.jsx)(\"span\",{className:\"code-frame-icon\",children:(0,A.jsx)(eL,{lang:s})}),(0,A.jsxs)(\"span\",{\"data-text\":!0,children:[eO(o),\" @\",\" \",(0,A.jsx)(eA,{text:o.methodName})]}),(0,A.jsx)(\"button\",{\"aria-label\":\"Open in editor\",\"data-with-open-in-editor-link-source-file\":!0,onClick:l,children:(0,A.jsx)(\"span\",{className:\"code-frame-icon\",\"data-icon\":\"right\",children:(0,A.jsx)(ez,{width:16,height:16})})})]})}),(0,A.jsx)(\"pre\",{className:\"code-frame-pre\",children:(0,A.jsx)(\"div\",{className:\"code-frame-lines\",children:i.map(function(e,t){var n,r,o=e.line,a=e.parsedLine,i=a.lineNumber,l=a.isErroredLine,s={};return i&&(s[\"data-nextjs-codeframe-line\"]=i),l&&(s[\"data-nextjs-codeframe-line--errored\"]=!0),(0,A.jsx)(\"div\",(n=eW({},s),r=r={children:o.map(function(e,t){return(0,A.jsx)(\"span\",{style:eW({color:e.fg?\"var(--color-\".concat(e.fg,\")\"):void 0},\"bold\"===e.decoration?{fontWeight:500}:\"italic\"===e.decoration?{fontStyle:\"italic\"}:void 0),children:e.content},\"frame-\".concat(t))})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n),\"line-\".concat(t))})})})]})}var eK=function(e){var t,n,r,o,a,i,l=(0,x.c)(8);return(l[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"className\"]),r=e.children,o=e.className,l[0]=e,l[1]=r,l[2]=o,l[3]=a):(r=l[1],o=l[2],a=l[3]),l[4]!==r||l[5]!==o||l[6]!==a)?(i=(0,A.jsx)(\"div\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-body\":!0,className:o},a),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),l[4]=r,l[5]=o,l[6]=a,l[7]=i):i=l[7],i},eX=function(e){var t,n,r,o,a,i,l=(0,x.c)(8);return(l[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"className\"]),r=e.children,o=e.className,l[0]=e,l[1]=r,l[2]=o,l[3]=a):(r=l[1],o=l[2],a=l[3]),l[4]!==r||l[5]!==o||l[6]!==a)?(i=(0,A.jsx)(\"div\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-content\":!0,className:o},a),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),l[4]=r,l[5]=o,l[6]=a,l[7]=i):i=l[7],i};function eG(){var e,t,n=(e=[\"\\n [data-nextjs-dialog-root] {\\n --next-dialog-radius: var(--rounded-xl);\\n --next-dialog-max-width: 960px;\\n --next-dialog-row-padding: 16px;\\n --next-dialog-padding: 12px;\\n --next-dialog-notch-height: 42px;\\n --next-dialog-border-width: 1px;\\n\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n max-height: calc(100% - 56px);\\n max-width: var(--next-dialog-max-width);\\n margin-right: auto;\\n margin-left: auto;\\n scale: 0.97;\\n opacity: 0;\\n transition-property: scale, opacity;\\n transition-duration: var(--transition-duration);\\n transition-timing-function: var(--timing-overlay);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n [data-nextjs-scroll-fader][data-side='top'] {\\n left: 1px;\\n top: calc(\\n var(--next-dialog-notch-height) + var(--next-dialog-border-width)\\n );\\n width: calc(100% - var(--next-dialog-padding));\\n opacity: 0;\\n }\\n }\\n\\n [data-nextjs-dialog] {\\n outline: 0;\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n opacity: 0;\\n transition: opacity var(--transition-duration) var(--timing-overlay);\\n }\\n\\n [data-nextjs-dialog-overlay] {\\n margin: 8px;\\n }\\n\\n [data-nextjs-dialog-overlay][data-rendered='true']\\n [data-nextjs-dialog-backdrop] {\\n opacity: 1;\\n }\\n\\n [data-nextjs-dialog-content] {\\n border: none;\\n margin: 0;\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n padding: var(--next-dialog-padding);\\n }\\n\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: 8px;\\n }\\n\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n max-height: calc(100% - 15px);\\n }\\n }\\n\\n @media (min-width: 576px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 540px;\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 960px;\\n }\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return eG=function(){return n},n}var eQ=eu(eG());function eJ(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(Boolean).join(\" \")}function e0(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function e1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function e2(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function e4(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return e0(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e0(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function e5(e,t){return\"reset\"===t.type?{state:\"initial\"}:\"copied\"===t.type?{state:\"success\"}:\"copying\"===t.type?{state:\"pending\"}:\"error\"===t.type?{state:\"error\",error:t.error}:e}function e3(e){return{state:\"error\",error:e}}function e6(){return{state:\"success\"}}var e9=\"function\"==typeof w.useActionState?function(e){var t,n,r,o,a,i=(0,x.c)(8);i[0]!==e?(t=function(t,n){return\"reset\"===n?{state:\"initial\"}:\"copy\"===n?navigator.clipboard?navigator.clipboard.writeText(e).then(e6,e3):{state:\"error\",error:\"Copy to clipboard is not supported in this browser\"}:t},i[0]=e,i[1]=t):t=i[1],i[2]===Symbol.for(\"react.memo_cache_sentinel\")?(n={state:\"initial\"},i[2]=n):n=i[2];var l=e4(w.useActionState(t,n),3),s=l[0],c=l[1],u=l[2];i[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r=function(){w.startTransition(function(){c(\"copy\")})},i[3]=r):r=i[3];var d=r;i[4]===Symbol.for(\"react.memo_cache_sentinel\")?(o=function(){c(\"reset\")},i[4]=o):o=i[4];var f=o;return i[5]!==s||i[6]!==u?(a=[s,d,f,u],i[5]=s,i[6]=u,i[7]=a):a=i[7],a}:function(e){var t,n,r,o,a,i,l=(0,x.c)(12);l[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={state:\"initial\"},l[0]=t):t=l[0];var s=e4(w.useReducer(e5,t),2),c=s[0],u=s[1];return l[1]!==e||l[2]!==c.state?(n=function(){r||(navigator.clipboard?(u({type:\"copying\"}),navigator.clipboard.writeText(e).then(function(){u({type:\"copied\"})},function(e){u({type:\"error\",error:e})})):u({type:\"error\",error:\"Copy to clipboard is not supported in this browser\"}))},l[6]===Symbol.for(\"react.memo_cache_sentinel\")?(a=function(){u({type:\"reset\"})},l[6]=a):a=l[6],o=a,r=\"pending\"===c.state,l[1]=e,l[2]=c.state,l[3]=n,l[4]=r,l[5]=o):(n=l[3],r=l[4],o=l[5]),l[7]!==n||l[8]!==c||l[9]!==r||l[10]!==o?(i=[c,n,o,r],l[7]=n,l[8]=c,l[9]=r,l[10]=o,l[11]=i):i=l[11],i};function e8(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v=(0,x.c)(40);v[0]!==e?(i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"content\",\"getContent\",\"actionLabel\",\"successLabel\",\"icon\",\"disabled\"]),n=e.content,o=e.getContent,t=e.actionLabel,l=e.successLabel,a=e.icon,r=e.disabled,v[0]=e,v[1]=t,v[2]=n,v[3]=r,v[4]=o,v[5]=a,v[6]=i,v[7]=l):(t=v[1],n=v[2],r=v[3],o=v[4],a=v[5],i=v[6],l=v[7]),v[8]!==n||v[9]!==o?(s=function(){return n||(o?o():\"\")},v[8]=n,v[9]=o,v[10]=s):s=v[10];var b=s;v[11]!==b?(c=b(),v[11]=b,v[12]=c):c=v[12];var C=e4(e9(c),4),_=C[0],k=C[1],E=C[2],j=C[3],S=\"error\"===_.state?_.error:null;v[13]!==S?(u=function(){null!==S&&console.warn(S)},d=[S],v[13]=S,v[14]=u,v[15]=d):(u=v[14],d=v[15]),w.useEffect(u,d),v[16]!==_.state||v[17]!==E?(f=function(){if(\"success\"===_.state){var e=setTimeout(function(){E()},2e3);return function(){clearTimeout(e)}}},v[16]=_.state,v[17]=E,v[18]=f):f=v[18],v[19]!==_.state||v[20]!==j||v[21]!==E?(p=[j,_.state,E],v[19]=_.state,v[20]=j,v[21]=E,v[22]=p):p=v[22],w.useEffect(f,p);var O=!navigator.clipboard||j||r||!!S,B=\"success\"===_.state?l:t;v[23]!==_.state||v[24]!==a?(h=\"success\"===_.state?(0,A.jsx)(te,{}):a||(0,A.jsx)(e7,{width:14,height:14,className:\"error-overlay-toolbar-button-icon\"}),v[23]=_.state,v[24]=a,v[25]=h):h=v[25];var P=h,I=\"nextjs-data-copy-button--\".concat(_.state);v[26]!==e.className||v[27]!==I?(m=eJ(e.className,\"nextjs-data-copy-button\",I),v[26]=e.className,v[27]=I,v[28]=m):m=v[28],v[29]!==k||v[30]!==O?(g=function(){O||k()},v[29]=k,v[30]=O,v[31]=g):g=v[31];var T=\"error\"===_.state?\" \".concat(_.error):null;return v[32]!==O||v[33]!==B||v[34]!==P||v[35]!==i||v[36]!==T||v[37]!==m||v[38]!==g?(y=(0,A.jsxs)(\"button\",e2(e1({},i),{type:\"button\",title:B,\"aria-label\":B,\"aria-disabled\":O,disabled:O,\"data-nextjs-copy-button\":!0,className:m,onClick:g,children:[P,T]})),v[32]=O,v[33]=B,v[34]=P,v[35]=i,v[36]=T,v[37]=m,v[38]=g,v[39]=y):y=v[39],y}function e7(e){var t,n,r=(0,x.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M2.406.438c-.845 0-1.531.685-1.531 1.53v6.563c0 .846.686 1.531 1.531 1.531H3.937V8.75H2.406a.219.219 0 0 1-.219-.219V1.97c0-.121.098-.219.22-.219h4.812c.12 0 .218.098.218.219v.656H8.75v-.656c0-.846-.686-1.532-1.531-1.532H2.406zm4.375 3.5c-.845 0-1.531.685-1.531 1.53v6.563c0 .846.686 1.531 1.531 1.531h4.813c.845 0 1.531-.685 1.531-1.53V5.468c0-.846-.686-1.532-1.531-1.532H6.78zm-.218 1.53c0-.12.097-.218.218-.218h4.813c.12 0 .219.098.219.219v6.562c0 .121-.098.219-.22.219H6.782a.219.219 0 0 1-.218-.219V5.47z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,A.jsx)(\"svg\",e2(e1({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function te(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{height:\"16\",xlinkTitle:\"copied\",viewBox:\"0 0 16 16\",width:\"16\",stroke:\"currentColor\",fill:\"currentColor\",children:(0,A.jsx)(\"path\",{d:\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"})}),t[0]=e):e=t[0],e}function tt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function tn(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var tr=function(){if(\"undefined\"==typeof window)return!1;var e=\"chrome\"in window&&window.chrome,t=window.navigator.vendor;return null!=e&&\"Google Inc.\"===t}();function to(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h=(0,x.c)(14);return h[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={maskType:\"luminance\"},h[0]=t):t=h[0],h[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,A.jsx)(\"mask\",{id:\"nodejs_icon_mask_a\",style:t,maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"14\",height:\"14\",children:(0,A.jsx)(\"path\",{d:\"M6.67.089 1.205 3.256a.663.663 0 0 0-.33.573v6.339c0 .237.126.455.33.574l5.466 3.17a.66.66 0 0 0 .66 0l5.465-3.17a.664.664 0 0 0 .329-.574V3.829a.663.663 0 0 0-.33-.573L7.33.089a.663.663 0 0 0-.661 0\",fill:\"#fff\"})}),h[1]=n):n=h[1],h[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_a)\",children:(0,A.jsx)(\"path\",{d:\"M18.648 2.717 3.248-4.86-4.648 11.31l15.4 7.58 7.896-16.174z\",fill:\"url(#nodejs_icon_linear_gradient_b)\"})}),h[2]=r):r=h[2],h[3]===Symbol.for(\"react.memo_cache_sentinel\")?(o={maskType:\"luminance\"},h[3]=o):o=h[3],h[4]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,A.jsx)(\"mask\",{id:\"nodejs_icon_mask_c\",style:o,maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"12\",height:\"14\",children:(0,A.jsx)(\"path\",{d:\"M1.01 10.57a.663.663 0 0 0 .195.17l4.688 2.72.781.45a.66.66 0 0 0 .51.063l5.764-10.597a.653.653 0 0 0-.153-.122L9.216 1.18 7.325.087a.688.688 0 0 0-.171-.07L1.01 10.57z\",fill:\"#fff\"})}),h[4]=a):a=h[4],h[5]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,A.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_c)\",children:(0,A.jsx)(\"path\",{d:\"M-5.647 4.958 5.226 19.734l14.38-10.667L8.734-5.71-5.647 4.958z\",fill:\"url(#nodejs_icon_linear_gradient_d)\"})}),h[5]=i):i=h[5],h[6]===Symbol.for(\"react.memo_cache_sentinel\")?(l={maskType:\"luminance\"},h[6]=l):l=h[6],h[7]===Symbol.for(\"react.memo_cache_sentinel\")?(s=(0,A.jsx)(\"mask\",{id:\"nodejs_icon_mask_e\",style:l,maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"13\",height:\"14\",children:(0,A.jsx)(\"path\",{d:\"M6.934.004A.665.665 0 0 0 6.67.09L1.22 3.247l5.877 10.746a.655.655 0 0 0 .235-.08l5.465-3.17a.665.665 0 0 0 .319-.453L7.126.015a.684.684 0 0 0-.189-.01\",fill:\"#fff\"})}),h[7]=s):s=h[7],h[8]===Symbol.for(\"react.memo_cache_sentinel\")?(c=(0,A.jsxs)(\"g\",{children:[s,(0,A.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_e)\",children:(0,A.jsx)(\"path\",{d:\"M1.22.002v13.992h11.894V.002H1.22z\",fill:\"url(#nodejs_icon_linear_gradient_f)\"})})]}),h[8]=c):c=h[8],h[9]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,A.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_b\",x1:\"10.943\",y1:\"-1.084\",x2:\"2.997\",y2:\"15.062\",gradientUnits:\"userSpaceOnUse\",children:[(0,A.jsx)(\"stop\",{offset:\".3\",stopColor:\"#3E863D\"}),(0,A.jsx)(\"stop\",{offset:\".5\",stopColor:\"#55934F\"}),(0,A.jsx)(\"stop\",{offset:\".8\",stopColor:\"#5AAD45\"})]}),h[9]=u):u=h[9],h[10]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,A.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_d\",x1:\"-.145\",y1:\"12.431\",x2:\"14.277\",y2:\"1.818\",gradientUnits:\"userSpaceOnUse\",children:[(0,A.jsx)(\"stop\",{offset:\".57\",stopColor:\"#3E863D\"}),(0,A.jsx)(\"stop\",{offset:\".72\",stopColor:\"#619857\"}),(0,A.jsx)(\"stop\",{offset:\"1\",stopColor:\"#76AC64\"})]}),h[10]=d):d=h[10],h[11]===Symbol.for(\"react.memo_cache_sentinel\")?(f=(0,A.jsxs)(\"defs\",{children:[u,d,(0,A.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_f\",x1:\"1.225\",y1:\"6.998\",x2:\"13.116\",y2:\"6.998\",gradientUnits:\"userSpaceOnUse\",children:[(0,A.jsx)(\"stop\",{offset:\".16\",stopColor:\"#6BBF47\"}),(0,A.jsx)(\"stop\",{offset:\".38\",stopColor:\"#79B461\"}),(0,A.jsx)(\"stop\",{offset:\".47\",stopColor:\"#75AC64\"}),(0,A.jsx)(\"stop\",{offset:\".7\",stopColor:\"#659E5A\"}),(0,A.jsx)(\"stop\",{offset:\".9\",stopColor:\"#3E863D\"})]})]}),h[11]=f):f=h[11],h[12]!==e?(p=(0,A.jsxs)(\"svg\",tn(tt({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[n,r,a,i,c,f]})),h[12]=e,h[13]=p):p=h[13],p}function ta(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h=(0,x.c)(14);return h[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={maskType:\"luminance\"},h[0]=t):t=h[0],h[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,A.jsx)(\"mask\",{id:\"nodejs_icon_mask_a\",style:t,maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"14\",height:\"14\",children:(0,A.jsx)(\"path\",{d:\"M6.67.089 1.205 3.256a.663.663 0 0 0-.33.573v6.339c0 .237.126.455.33.574l5.466 3.17a.66.66 0 0 0 .66 0l5.465-3.17a.664.664 0 0 0 .329-.574V3.829a.663.663 0 0 0-.33-.573L7.33.089a.663.663 0 0 0-.661 0\",fill:\"#fff\"})}),h[1]=n):n=h[1],h[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_a)\",children:(0,A.jsx)(\"path\",{d:\"M18.648 2.717 3.248-4.86-4.646 11.31l15.399 7.58 7.896-16.174z\",fill:\"url(#nodejs_icon_linear_gradient_b)\"})}),h[2]=r):r=h[2],h[3]===Symbol.for(\"react.memo_cache_sentinel\")?(o={maskType:\"luminance\"},h[3]=o):o=h[3],h[4]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,A.jsx)(\"mask\",{id:\"nodejs_icon_mask_c\",style:o,maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"12\",height:\"15\",children:(0,A.jsx)(\"path\",{d:\"M1.01 10.571a.66.66 0 0 0 .195.172l4.688 2.718.781.451a.66.66 0 0 0 .51.063l5.764-10.597a.653.653 0 0 0-.153-.122L9.216 1.181 7.325.09a.688.688 0 0 0-.171-.07L1.01 10.572z\",fill:\"#fff\"})}),h[4]=a):a=h[4],h[5]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,A.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_c)\",children:(0,A.jsx)(\"path\",{d:\"M-5.647 4.96 5.226 19.736 19.606 9.07 8.734-5.707-5.647 4.96z\",fill:\"url(#nodejs_icon_linear_gradient_d)\"})}),h[5]=i):i=h[5],h[6]===Symbol.for(\"react.memo_cache_sentinel\")?(l={maskType:\"luminance\"},h[6]=l):l=h[6],h[7]===Symbol.for(\"react.memo_cache_sentinel\")?(s=(0,A.jsx)(\"mask\",{id:\"nodejs_icon_mask_e\",style:l,maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"13\",height:\"14\",children:(0,A.jsx)(\"path\",{d:\"M6.935.003a.665.665 0 0 0-.264.085l-5.45 3.158 5.877 10.747a.653.653 0 0 0 .235-.082l5.465-3.17a.665.665 0 0 0 .319-.452L7.127.014a.684.684 0 0 0-.189-.01\",fill:\"#fff\"})}),h[7]=s):s=h[7],h[8]===Symbol.for(\"react.memo_cache_sentinel\")?(c=(0,A.jsxs)(\"g\",{children:[s,(0,A.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_e)\",children:(0,A.jsx)(\"path\",{d:\"M1.222.001v13.992h11.893V0H1.222z\",fill:\"url(#nodejs_icon_linear_gradient_f)\"})})]}),h[8]=c):c=h[8],h[9]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,A.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_b\",x1:\"10.944\",y1:\"-1.084\",x2:\"2.997\",y2:\"15.062\",gradientUnits:\"userSpaceOnUse\",children:[(0,A.jsx)(\"stop\",{offset:\".3\",stopColor:\"#676767\"}),(0,A.jsx)(\"stop\",{offset:\".5\",stopColor:\"#858585\"}),(0,A.jsx)(\"stop\",{offset:\".8\",stopColor:\"#989A98\"})]}),h[9]=u):u=h[9],h[10]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,A.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_d\",x1:\"-.145\",y1:\"12.433\",x2:\"14.277\",y2:\"1.819\",gradientUnits:\"userSpaceOnUse\",children:[(0,A.jsx)(\"stop\",{offset:\".57\",stopColor:\"#747474\"}),(0,A.jsx)(\"stop\",{offset:\".72\",stopColor:\"#707070\"}),(0,A.jsx)(\"stop\",{offset:\"1\",stopColor:\"#929292\"})]}),h[10]=d):d=h[10],h[11]===Symbol.for(\"react.memo_cache_sentinel\")?(f=(0,A.jsxs)(\"defs\",{children:[u,d,(0,A.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_f\",x1:\"1.226\",y1:\"6.997\",x2:\"13.117\",y2:\"6.997\",gradientUnits:\"userSpaceOnUse\",children:[(0,A.jsx)(\"stop\",{offset:\".16\",stopColor:\"#878787\"}),(0,A.jsx)(\"stop\",{offset:\".38\",stopColor:\"#A9A9A9\"}),(0,A.jsx)(\"stop\",{offset:\".47\",stopColor:\"#A5A5A5\"}),(0,A.jsx)(\"stop\",{offset:\".7\",stopColor:\"#8F8F8F\"}),(0,A.jsx)(\"stop\",{offset:\".9\",stopColor:\"#626262\"})]})]}),h[11]=f):f=h[11],h[12]!==e?(p=(0,A.jsxs)(\"svg\",tn(tt({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[n,r,a,i,c,f]})),h[12]=e,h[13]=p):p=h[13],p}var ti=\"Learn more about enabling Node.js inspector for server code with Chrome DevTools\";function tl(e){var t,n,r,o=(0,x.c)(4),a=e.devtoolsFrontendUrl||\"\";return a&&tr?(o[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,A.jsx)(to,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14}),o[1]=n):n=o[1],o[2]!==a?(r=(0,A.jsx)(e8,{\"data-nextjs-data-runtime-error-copy-devtools-url\":!0,className:\"nodejs-inspector-button\",actionLabel:\"Copy Chrome DevTools URL\",successLabel:\"Copied\",content:a,icon:n}),o[2]=a,o[3]=r):r=o[3],r):(o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"a\",{title:ti,\"aria-label\":ti,className:\"nodejs-inspector-button\",href:\"https://nextjs.org/docs/app/building-your-application/configuring/debugging#server-side-code\",target:\"_blank\",rel:\"noopener noreferrer\",children:(0,A.jsx)(ta,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})}),o[0]=t):t=o[0],t)}function ts(e){var t,n=(0,x.c)(3),r=e.error,o=e.generateErrorInfo,a=!r;return n[0]!==o||n[1]!==a?(t=(0,A.jsx)(e8,{\"data-nextjs-data-runtime-error-copy-stack\":!0,className:\"copy-error-button\",actionLabel:\"Copy Error Info\",successLabel:\"Error Info Copied\",getContent:o,disabled:a}),n[0]=o,n[1]=a,n[2]=t):t=n[2],t}function tc(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tu(e){if(Array.isArray(e))return e}function td(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function tf(e,t){return tu(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||th(e,t)||td()}function tp(e){return tu(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||th(e)||td()}function th(e,t){if(e){if(\"string\"==typeof e)return tc(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tc(e,t)}}var tm=\"https://react.dev/link/hydration-mismatch\",tg=\"https://nextjs.org/docs/messages/react-hydration-error\",ty=[/^In HTML, (.+?) cannot be a child of <(.+?)>\\.(.*)\\nThis will cause a hydration error\\.(.*)/,/^In HTML, (.+?) cannot be a descendant of <(.+?)>\\.\\nThis will cause a hydration error\\.(.*)/,/^In HTML, text nodes cannot be a child of <(.+?)>\\.\\nThis will cause a hydration error\\./,/^In HTML, whitespace text nodes cannot be a child of <(.+?)>\\. Make sure you don't have any extra whitespace between tags on each line of your source code\\.\\nThis will cause a hydration error\\./];function tv(e){return ty.some(function(t){return t.test(e)})}var tb=[\"https://nextjs.org\",\"https://react.dev\"];function tA(e){return tb.some(function(t){return e.startsWith(t)})}function tx(e){var t,n,r,o,a=(0,x.c)(6),i=e.errorMessage;a[0]!==i?(t=function(e){var t,n,r,o=(t=e,n=tA,r=Array.from(t.matchAll(/https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/gi),function(e){return e[0]}),n?r.filter(function(e){return n(e)}):r);if(0===o.length)return null;var a=o[0];return a===tm?tg:a}(i),a[0]=i,a[1]=t):t=a[1];var l=t;return l?(a[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(tw,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14}),a[3]=r):r=a[3],a[4]!==l?(o=(0,A.jsx)(\"a\",{title:\"Go to related documentation\",\"aria-label\":\"Go to related documentation\",className:\"docs-link-button\",href:l,target:\"_blank\",rel:\"noopener noreferrer\",children:r}),a[4]=l,a[5]=o):o=a[5],o):(a[2]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,A.jsx)(\"button\",{title:\"No related documentation found\",\"aria-label\":\"No related documentation found\",className:\"docs-link-button\",disabled:!0,children:(0,A.jsx)(tw,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})}),a[2]=n):n=a[2],n)}function tw(e){var t,n,r,o,a=(0,x.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M0 .875h4.375C5.448.875 6.401 1.39 7 2.187A3.276 3.276 0 0 1 9.625.875H14v11.156H9.4c-.522 0-1.023.208-1.392.577l-.544.543h-.928l-.544-.543c-.369-.37-.87-.577-1.392-.577H0V.875zm6.344 3.281a1.969 1.969 0 0 0-1.969-1.968H1.312v8.53H4.6c.622 0 1.225.177 1.744.502V4.156zm1.312 7.064V4.156c0-1.087.882-1.968 1.969-1.968h3.063v8.53H9.4c-.622 0-1.225.177-1.744.502z\",fill:\"currentColor\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,A.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function tC(e){var t,n,r,o,a=(0,x.c)(12),i=e.error,l=e.debugInfo,s=e.feedbackButton,c=e.generateErrorInfo;a[0]!==i||a[1]!==c?(t=(0,A.jsx)(ts,{error:i,generateErrorInfo:c}),a[0]=i,a[1]=c,a[2]=t):t=a[2],a[3]!==i.message?(n=(0,A.jsx)(tx,{errorMessage:i.message}),a[3]=i.message,a[4]=n):n=a[4];var u=null==l?void 0:l.devtoolsFrontendUrl;return a[5]!==u?(r=(0,A.jsx)(tl,{devtoolsFrontendUrl:u}),a[5]=u,a[6]=r):r=a[6],a[7]!==s||a[8]!==t||a[9]!==n||a[10]!==r?(o=(0,A.jsxs)(\"span\",{className:\"error-overlay-toolbar\",children:[s,t,n,r]}),a[7]=s,a[8]=t,a[9]=n,a[10]=r,a[11]=o):o=a[11],o}function t_(e){var t,n,r,o,a=(0,x.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"g\",{id:\"thumb-up-16\",children:(0,A.jsx)(\"path\",{id:\"Union\",fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.89531 2.23959C6.72984 2.1214 6.5 2.23968 6.5 2.44303V5.24989C6.5 6.21639 5.7165 6.99989 4.75 6.99989H2.5V13.4999H12.1884C12.762 13.4999 13.262 13.1095 13.4011 12.5531L14.4011 8.55306C14.5984 7.76412 14.0017 6.99989 13.1884 6.99989H9.25H8.5V6.24989V3.51446C8.5 3.43372 8.46101 3.35795 8.39531 3.31102L6.89531 2.23959ZM5 2.44303C5 1.01963 6.6089 0.191656 7.76717 1.01899L9.26717 2.09042C9.72706 2.41892 10 2.94929 10 3.51446V5.49989H13.1884C14.9775 5.49989 16.2903 7.18121 15.8563 8.91686L14.8563 12.9169C14.5503 14.1411 13.4503 14.9999 12.1884 14.9999H1.75H1V14.2499V6.24989V5.49989H1.75H4.75C4.88807 5.49989 5 5.38796 5 5.24989V2.44303Z\",fill:\"currentColor\"})}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,A.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"thumbs-up-icon\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function tk(e){var t,n,r,o,a=(0,x.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M5.89531 12.7603C5.72984 12.8785 5.5 12.7602 5.5 12.5569V9.75C5.5 8.7835 4.7165 8 3.75 8H1.5V1.5H11.1884C11.762 1.5 12.262 1.89037 12.4011 2.44683L13.4011 6.44683C13.5984 7.23576 13.0017 8 12.1884 8H8.25H7.5V8.75V11.4854C7.5 11.5662 7.46101 11.6419 7.39531 11.6889L5.89531 12.7603ZM4 12.5569C4 13.9803 5.6089 14.8082 6.76717 13.9809L8.26717 12.9095C8.72706 12.581 9 12.0506 9 11.4854V9.5H12.1884C13.9775 9.5 15.2903 7.81868 14.8563 6.08303L13.8563 2.08303C13.5503 0.858816 12.4503 0 11.1884 0H0.75H0V0.75V8.75V9.5H0.75H3.75C3.88807 9.5 4 9.61193 4 9.75V12.5569Z\",fill:\"currentColor\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,A.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"thumbs-down-icon\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function tE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tj(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function tS(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tO(e){var t,n,r=e.errorCode,o=e.className,a=(t=(0,w.useState)({}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return tE(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tE(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),i=a[0],l=a[1],s=i[r],c=false,u=(0,w.useCallback)(function(e){var t;return(t=function(){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(n)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:l(function(t){var n,o;return n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){tS(e,t,n[t])})}return e}({},t),o=null!=(o=tS({},r,e))?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n}),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,fetch(\"\".concat( false||\"\",\"/__nextjs_error_feedback?\").concat(new URLSearchParams({errorCode:r,wasHelpful:e.toString()})))];case 2:return t.sent().ok||console.error(\"Failed to record feedback on the server.\"),[3,4];case 3:return console.error(\"Failed to record feedback:\",t.sent()),[3,4];case 4:return[2]}})},function(){var e=this,n=arguments;return new Promise(function(r,o){var a=t.apply(e,n);function i(e){tj(a,r,o,i,l,\"next\",e)}function l(e){tj(a,r,o,i,l,\"throw\",e)}i(void 0)})})()},[r]);return(0,A.jsx)(\"div\",{className:eJ(\"error-feedback\",o),role:\"region\",\"aria-label\":\"Error feedback\",children:void 0!==s?(0,A.jsx)(\"p\",{className:\"error-feedback-thanks\",role:\"status\",\"aria-live\":\"polite\",children:\"Thanks for your feedback!\"}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(\"p\",{children:(0,A.jsx)(\"a\",{href:\"https://nextjs.org/telemetry#error-feedback\",rel:\"noopener noreferrer\",target:\"_blank\",children:\"Was this helpful?\"})}),(0,A.jsx)(\"button\",{\"aria-disabled\":c?\"true\":void 0,\"aria-label\":\"Mark as helpful\",onClick:c?void 0:function(){return u(!0)},className:eJ(\"feedback-button\",!0===s&&\"voted\"),title:c?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,A.jsx)(t_,{\"aria-hidden\":\"true\"})}),(0,A.jsx)(\"button\",{\"aria-disabled\":c?\"true\":void 0,\"aria-label\":\"Mark as not helpful\",onClick:c?void 0:function(){return u(!1)},className:eJ(\"feedback-button\",!1===s&&\"voted\"),title:c?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,A.jsx)(tk,{\"aria-hidden\":\"true\",style:{translate:\"1px 1px\"}})})]})})}function tB(e){var t,n,r=(0,x.c)(4),o=e.errorCode;return r[0]!==o?(t=o?(0,A.jsx)(tO,{className:\"error-feedback\",errorCode:o}):null,r[0]=o,r[1]=t):t=r[1],r[2]!==t?(n=(0,A.jsx)(\"footer\",{\"data-nextjs-error-overlay-footer\":!0,className:\"error-overlay-footer\",children:t}),r[2]=t,r[3]=n):n=r[3],n}var tP=\"\\n .error-overlay-footer {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n\\n gap: 8px;\\n padding: 12px;\\n background: var(--color-background-200);\\n border-top: 1px solid var(--color-gray-400);\\n }\\n\\n .error-feedback {\\n margin-left: auto;\\n\\n p {\\n font-size: var(--size-14);\\n font-weight: 500;\\n margin: 0;\\n }\\n }\\n\\n \".concat(\"\\n .error-feedback {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n white-space: nowrap;\\n color: var(--color-gray-900);\\n }\\n\\n .error-feedback-thanks {\\n height: var(--size-24);\\n display: flex;\\n align-items: center;\\n padding-right: 4px; /* To match the 4px inner padding of the thumbs up and down icons */\\n }\\n\\n .feedback-button {\\n background: none;\\n border: none;\\n border-radius: var(--rounded-md);\\n width: var(--size-24);\\n height: var(--size-24);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n &:hover {\\n background: var(--color-gray-alpha-100);\\n }\\n\\n &:active {\\n background: var(--color-gray-alpha-200);\\n }\\n }\\n\\n .feedback-button[aria-disabled='true'] {\\n opacity: 0.7;\\n cursor: not-allowed;\\n }\\n\\n .feedback-button.voted {\\n background: var(--color-gray-alpha-200);\\n }\\n\\n .thumbs-up-icon,\\n .thumbs-down-icon {\\n color: var(--color-gray-900);\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\",\"\\n\");function tI(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tT(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return tI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tI(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function tz(e){var t,n,r,o,a,i=(0,x.c)(12),l=e.errorMessage,s=tT((0,w.useState)(!1),2),c=s[0],u=s[1],d=tT((0,w.useState)(!1),2),f=d[0],p=d[1],h=(0,w.useRef)(null);i[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=function(){h.current&&p(h.current.scrollHeight>200)},i[0]=t):t=i[0],i[1]!==l?(n=[l],i[1]=l,i[2]=n):n=i[2],(0,w.useLayoutEffect)(t,n);var m=\"nextjs__container_errors_desc \".concat(f&&!c?\"truncated\":\"\");return i[3]!==l||i[4]!==m?(r=(0,A.jsx)(\"p\",{ref:h,id:\"nextjs__container_errors_desc\",className:m,children:l}),i[3]=l,i[4]=m,i[5]=r):r=i[5],i[6]!==c||i[7]!==f?(o=f&&!c&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(\"div\",{className:\"nextjs__container_errors_gradient_overlay\"}),(0,A.jsx)(\"button\",{onClick:function(){return u(!0)},className:\"nextjs__container_errors_expand_button\",\"aria-expanded\":c,\"aria-controls\":\"nextjs__container_errors_desc\",children:\"Show More\"})]}),i[6]=c,i[7]=f,i[8]=o):o=i[8],i[9]!==r||i[10]!==o?(a=(0,A.jsxs)(\"div\",{className:\"nextjs__container_errors_wrapper\",children:[r,o]}),i[9]=r,i[10]=o,i[11]=a):a=i[11],a}function tD(e){var t,n=(0,x.c)(2),r=e.errorType;return n[0]!==r?(t=(0,A.jsx)(\"span\",{id:\"nextjs__container_errors_label\",className:\"nextjs__container_errors_label\",children:r}),n[0]=r,n[1]=t):t=n[1],t}function tL(e){var t,n,r=(0,x.c)(4),o=e.title,a=e.className;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M9.24996 12.0608L8.71963 11.5304L5.89641 8.70722C5.50588 8.3167 5.50588 7.68353 5.89641 7.29301L8.71963 4.46978L9.24996 3.93945L10.3106 5.00011L9.78029 5.53044L7.31062 8.00011L9.78029 10.4698L10.3106 11.0001L9.24996 12.0608Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==a||r[2]!==o?(n=(0,A.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"aria-label\":o,className:a,children:t}),r[1]=a,r[2]=o,r[3]=n):n=r[3],n}function tN(e){var t,n,r=(0,x.c)(4),o=e.title,a=e.className;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.75011 3.93945L7.28044 4.46978L10.1037 7.29301C10.4942 7.68353 10.4942 8.3167 10.1037 8.70722L7.28044 11.5304L6.75011 12.0608L5.68945 11.0001L6.21978 10.4698L8.68945 8.00011L6.21978 5.53044L5.68945 5.00011L6.75011 3.93945Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==a||r[2]!==o?(n=(0,A.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:a,\"aria-label\":o,children:t}),r[1]=a,r[2]=o,r[3]=n):n=r[3],n}function tR(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tM(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v=(0,x.c)(40),b=e.runtimeErrors,C=e.activeIdx,_=e.onActiveIndexChange;v[0]!==C||v[1]!==_?(r=function(){return(0,w.startTransition)(function(){C>0&&_(Math.max(0,C-1))})},v[0]=C,v[1]=_,v[2]=r):r=v[2];var k=r;v[3]!==C||v[4]!==_||v[5]!==b.length?(o=function(){return(0,w.startTransition)(function(){C<b.length-1&&_(Math.max(0,Math.min(b.length-1,C+1)))})},v[3]=C,v[4]=_,v[5]=b.length,v[6]=o):o=v[6];var E=o,j=(0,w.useRef)(null),S=(0,w.useRef)(null),O=(t=(0,w.useState)(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return tR(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tR(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),B=O[0],P=O[1];v[7]===Symbol.for(\"react.memo_cache_sentinel\")?(a=function(e){P(e)},v[7]=a):a=v[7];var I=a;v[8]!==E||v[9]!==k||v[10]!==B?(i=function(){if(null!=B){var e=B.getRootNode(),t=self.document,n=function(e){\"ArrowLeft\"===e.key?(e.preventDefault(),e.stopPropagation(),k&&k()):\"ArrowRight\"===e.key&&(e.preventDefault(),e.stopPropagation(),E&&E())};return e.addEventListener(\"keydown\",n),e!==t&&t.addEventListener(\"keydown\",n),function(){e.removeEventListener(\"keydown\",n),e!==t&&t.removeEventListener(\"keydown\",n)}}},l=[B,E,k],v[8]=E,v[9]=k,v[10]=B,v[11]=i,v[12]=l):(i=v[11],l=v[12]),(0,w.useEffect)(i,l),v[13]!==C||v[14]!==B||v[15]!==b.length?(s=function(){if(null!=B){var e,t,n=B.getRootNode();if(e=n,null!=(t=ShadowRoot)&&\"undefined\"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t){var r=n.activeElement;0===C?j.current&&r===j.current&&j.current.blur():C===b.length-1&&S.current&&r===S.current&&S.current.blur()}}},c=[B,C,b.length],v[13]=C,v[14]=B,v[15]=b.length,v[16]=s,v[17]=c):(s=v[16],c=v[17]),(0,w.useEffect)(s,c);var T=0===C,z=0===C;v[18]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,A.jsx)(tL,{title:\"previous\",className:\"error-overlay-pagination-button-icon\"}),v[18]=u):u=v[18],v[19]!==k||v[20]!==T||v[21]!==z?(d=(0,A.jsx)(\"button\",{ref:j,type:\"button\",disabled:T,\"aria-disabled\":z,onClick:k,\"data-nextjs-dialog-error-previous\":!0,className:\"error-overlay-pagination-button\",children:u}),v[19]=k,v[20]=T,v[21]=z,v[22]=d):d=v[22];var D=C+1;v[23]!==C||v[24]!==D?(f=(0,A.jsxs)(\"span\",{\"data-nextjs-dialog-error-index\":C,children:[D,\"/\"]}),v[23]=C,v[24]=D,v[25]=f):f=v[25];var L=b.length||1;v[26]!==L?(p=(0,A.jsx)(\"span\",{\"data-nextjs-dialog-header-total-count\":!0,children:L}),v[26]=L,v[27]=p):p=v[27],v[28]!==f||v[29]!==p?(h=(0,A.jsxs)(\"div\",{className:\"error-overlay-pagination-count\",children:[f,p]}),v[28]=f,v[29]=p,v[30]=h):h=v[30];var N=C>=b.length-1,R=C>=b.length-1;return v[31]===Symbol.for(\"react.memo_cache_sentinel\")?(m=(0,A.jsx)(tN,{title:\"next\",className:\"error-overlay-pagination-button-icon\"}),v[31]=m):m=v[31],v[32]!==E||v[33]!==N||v[34]!==R?(g=(0,A.jsx)(\"button\",{ref:S,type:\"button\",disabled:N,\"aria-disabled\":R,onClick:E,\"data-nextjs-dialog-error-next\":!0,className:\"error-overlay-pagination-button\",children:m}),v[32]=E,v[33]=N,v[34]=R,v[35]=g):g=v[35],v[36]!==d||v[37]!==h||v[38]!==g?(y=(0,A.jsxs)(\"nav\",{className:\"error-overlay-pagination dialog-exclude-closing-from-outside-click\",ref:I,children:[d,h,g]}),v[36]=d,v[37]=h,v[38]=g,v[39]=y):y=v[39],y}function tZ(e){var t,n,r,o,a=(0,x.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"circle\",{cx:\"7\",cy:\"7\",r:\"5.5\",strokeWidth:\"3\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,A.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function tU(e){var t,n,r,o,a,i=(0,x.c)(31),l=e.versionInfo,s=e.bundlerName,c=l.staleness;if(i[0]!==s||i[1]!==c||i[2]!==l){v=Symbol.for(\"react.early_return_sentinel\");n:{var u=function(e){var t=e.installed,n=e.staleness,r=e.expected,o=\"\",a=\"\",i=\"\",l=\"Next.js \".concat(t);switch(n){case\"newer-than-npm\":case\"fresh\":o=l,a=\"Latest available version is detected (\".concat(t,\").\"),i=\"fresh\";break;case\"stale-patch\":case\"stale-minor\":o=\"\".concat(l,\" (stale)\"),a=\"There is a newer version (\".concat(r,\") available, upgrade recommended! \"),i=\"stale\";break;case\"stale-major\":o=\"\".concat(l,\" (outdated)\"),a=\"An outdated version detected (latest is \".concat(r,\"), upgrade is highly recommended!\"),i=\"outdated\";break;case\"stale-prerelease\":o=\"\".concat(l,\" (stale)\"),a=\"There is a newer canary version (\".concat(r,\") available, please upgrade! \"),i=\"stale\";break;case\"unknown\":o=\"\".concat(l,\" (unknown)\"),a=\"No Next.js version data was found.\",i=\"unknown\"}return{text:o,indicatorClass:i,title:a}}(l),d=u.text,f=u.indicatorClass,p=u.title;if(b=d,w=p,m=\"Turbopack\"===s,c.startsWith(\"stale\")){var h,m,g,y,v,b,w,C,_,k=m&&\"turbopack-text\";i[10]!==k?(C=eJ(k),i[10]=k,i[11]=C):C=i[11],i[12]!==s||i[13]!==C?(_=(0,A.jsx)(\"span\",{className:C,children:s}),i[12]=s,i[13]=C,i[14]=_):_=i[14],v=(0,A.jsxs)(\"a\",{className:\"nextjs-container-build-error-version-status dialog-exclude-closing-from-outside-click\",target:\"_blank\",rel:\"noopener noreferrer\",href:\"https://nextjs.org/docs/messages/version-staleness\",children:[(0,A.jsx)(tZ,{className:eJ(\"version-staleness-indicator\",f)}),(0,A.jsx)(\"span\",{\"data-nextjs-version-checker\":!0,title:w,children:b}),_]});break n}y=\"nextjs-container-build-error-version-status dialog-exclude-closing-from-outside-click\",h=tZ,g=eJ(\"version-staleness-indicator\",f)}i[0]=s,i[1]=c,i[2]=l,i[3]=h,i[4]=m,i[5]=g,i[6]=y,i[7]=v,i[8]=b,i[9]=w}else h=i[3],m=i[4],g=i[5],y=i[6],v=i[7],b=i[8],w=i[9];if(v!==Symbol.for(\"react.early_return_sentinel\"))return v;i[15]!==h||i[16]!==g?(t=(0,A.jsx)(h,{className:g}),i[15]=h,i[16]=g,i[17]=t):t=i[17],i[18]!==b||i[19]!==w?(n=(0,A.jsx)(\"span\",{\"data-nextjs-version-checker\":!0,title:w,children:b}),i[18]=b,i[19]=w,i[20]=n):n=i[20];var E=m&&\"turbopack-text\";return i[21]!==E?(r=eJ(E),i[21]=E,i[22]=r):r=i[22],i[23]!==s||i[24]!==r?(o=(0,A.jsx)(\"span\",{className:r,children:s}),i[23]=s,i[24]=r,i[25]=o):o=i[25],i[26]!==y||i[27]!==t||i[28]!==n||i[29]!==o?(a=(0,A.jsxs)(\"span\",{className:y,children:[t,n,o]}),i[26]=y,i[27]=t,i[28]=n,i[29]=o,i[30]=a):a=i[30],a}function tF(e){var t,n,r,o,a=(0,x.c)(11),i=e.runtimeErrors,l=e.activeIdx,s=e.setActiveIndex,c=e.versionInfo,u=\"Webpack\"||0;a[0]!==i?(t=null!=i?i:[],a[0]=i,a[1]=t):t=a[1];var d=null!=l?l:0,f=null!=s?s:tq;return a[2]!==t||a[3]!==d||a[4]!==f?(n=(0,A.jsx)(tH,{side:\"left\",children:(0,A.jsx)(tM,{runtimeErrors:t,activeIdx:d,onActiveIndexChange:f})}),a[2]=t,a[3]=d,a[4]=f,a[5]=n):n=a[5],a[6]!==c?(r=c&&(0,A.jsx)(tH,{side:\"right\",children:(0,A.jsx)(tU,{versionInfo:c,bundlerName:u})}),a[6]=c,a[7]=r):r=a[7],a[8]!==n||a[9]!==r?(o=(0,A.jsxs)(\"div\",{\"data-nextjs-error-overlay-nav\":!0,children:[n,r]}),a[8]=n,a[9]=r,a[10]=o):o=a[10],o}function tq(){}function tH(e){var t,n,r=(0,x.c)(4),o=e.children,a=e.side,i=void 0===a?\"left\":a;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(tV,{}),r[0]=t):t=r[0],r[1]!==o||r[2]!==i?(n=(0,A.jsxs)(\"div\",{className:\"error-overlay-notch\",\"data-side\":i,children:[o,t]}),r[1]=o,r[2]=i,r[3]=n):n=r[3],n}function tV(){var e,t,n,r=(0,x.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e={maskType:\"alpha\"},r[0]=e):e=r[0],r[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsxs)(\"mask\",{id:\"error_overlay_nav_mask0_2667_14687\",style:e,maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"-1\",width:\"60\",height:\"43\",children:[(0,A.jsxs)(\"mask\",{id:\"error_overlay_nav_path_1_outside_1_2667_14687\",maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"-1\",width:\"60\",height:\"43\",fill:\"black\",children:[(0,A.jsx)(\"rect\",{fill:\"white\",y:\"-1\",width:\"60\",height:\"43\"}),(0,A.jsx)(\"path\",{d:\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\"})]}),(0,A.jsx)(\"path\",{d:\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\",fill:\"white\"}),(0,A.jsx)(\"path\",{d:\"M1 0V-1H0V0L1 0ZM1 41H0V42H1V41ZM34.8889 29.6498L33.9873 30.0823L34.8889 29.6498ZM26.111 11.3501L27.0127 10.9177L26.111 11.3501ZM1 1H8.0783V-1H1V1ZM60 40H1V42H60V40ZM2 41V0L0 0L0 41H2ZM25.2094 11.7826L33.9873 30.0823L35.7906 29.2174L27.0127 10.9177L25.2094 11.7826ZM52.9217 42H60V40H52.9217V42ZM33.9873 30.0823C37.4811 37.3661 44.8433 42 52.9217 42V40C45.6127 40 38.9517 35.8074 35.7906 29.2174L33.9873 30.0823ZM8.0783 1C15.3873 1 22.0483 5.19257 25.2094 11.7826L27.0127 10.9177C23.5188 3.6339 16.1567 -1 8.0783 -1V1Z\",fill:\"black\",mask:\"url(#error_overlay_nav_path_1_outside_1_2667_14687)\"})]}),r[1]=t):t=r[1],r[2]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,A.jsxs)(\"svg\",{width:\"60\",height:\"42\",viewBox:\"0 0 60 42\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"error-overlay-notch-tail\",preserveAspectRatio:\"none\",children:[t,(0,A.jsxs)(\"g\",{mask:\"url(#error_overlay_nav_mask0_2667_14687)\",children:[(0,A.jsxs)(\"mask\",{id:\"error_overlay_nav_path_3_outside_2_2667_14687\",maskUnits:\"userSpaceOnUse\",x:\"-1\",y:\"0.0244141\",width:\"60\",height:\"43\",fill:\"black\",children:[(0,A.jsx)(\"rect\",{fill:\"white\",x:\"-1\",y:\"0.0244141\",width:\"60\",height:\"43\"}),(0,A.jsx)(\"path\",{d:\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\"})]}),(0,A.jsx)(\"path\",{d:\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\",fill:\"var(--background-color)\"}),(0,A.jsx)(\"path\",{d:\"M0 1.02441L0 0.0244141H-1V1.02441H0ZM0 42.0244H-1V43.0244H0L0 42.0244ZM33.8889 30.6743L32.9873 31.1068L33.8889 30.6743ZM25.111 12.3746L26.0127 11.9421L25.111 12.3746ZM0 2.02441H7.0783V0.0244141H0L0 2.02441ZM59 41.0244H0L0 43.0244H59V41.0244ZM1 42.0244L1 1.02441H-1L-1 42.0244H1ZM24.2094 12.8071L32.9873 31.1068L34.7906 30.2418L26.0127 11.9421L24.2094 12.8071ZM51.9217 43.0244H59V41.0244H51.9217V43.0244ZM32.9873 31.1068C36.4811 38.3905 43.8433 43.0244 51.9217 43.0244V41.0244C44.6127 41.0244 37.9517 36.8318 34.7906 30.2418L32.9873 31.1068ZM7.0783 2.02441C14.3873 2.02441 21.0483 6.21699 24.2094 12.8071L26.0127 11.9421C22.5188 4.65831 15.1567 0.0244141 7.0783 0.0244141V2.02441Z\",fill:\"var(--stroke-color)\",mask:\"url(#error_overlay_nav_path_3_outside_2_2667_14687)\"})]})]}),r[2]=n):n=r[2],n}function t$(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var tW=[\"[data-next-mark]\",\"[data-issues-open]\",\"#nextjs-dev-tools-menu\",\"[data-nextjs-error-overlay-nav]\",\"[data-info-popover]\",\"[data-nextjs-devtools-panel-overlay]\",\"[data-nextjs-devtools-panel-footer]\",\"[data-nextjs-error-overlay-footer]\"],tY=function(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,b,C,_,k,E,j=(0,x.c)(23);j[0]!==e?(g=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"className\",\"onClose\",\"aria-labelledby\",\"aria-describedby\"]),p=e.children,h=e.className,m=e.onClose,f=e[\"aria-labelledby\"],d=e[\"aria-describedby\"],j[0]=e,j[1]=d,j[2]=f,j[3]=p,j[4]=h,j[5]=m,j[6]=g):(d=j[1],f=j[2],p=j[3],h=j[4],m=j[5],g=j[6]);var S=w.useRef(null),O=(t=w.useState(\"undefined\"!=typeof document&&document.hasFocus()?\"dialog\":void 0),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return t$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t$(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),B=O[0],P=O[1];return(j[7]!==m?(y=function(e){return e.preventDefault(),null==m?void 0:m()},j[7]=m,j[8]=y):y=j[8],r=S,o=tW,a=y,(s=(0,x.c)(5))[0]!==o||s[1]!==r||s[2]!==a?(i=function(){var e=r&&\"current\"in r?r.current:r;if(null!=e&&null!=a){var t=function(t){!(!e||e.contains(t.target))&&(o.some(function(e){return t.target.closest(e)})||a(t))},n=e.getRootNode();return n.addEventListener(\"mouseup\",t),n.addEventListener(\"touchend\",t,{passive:!1}),function(){n.removeEventListener(\"mouseup\",t),n.removeEventListener(\"touchend\",t)}}},l=[a,r,o],s[0]=o,s[1]=r,s[2]=a,s[3]=i,s[4]=l):(i=s[3],l=s[4]),w.useEffect(i,l),j[9]===Symbol.for(\"react.memo_cache_sentinel\")?(v=function(){if(null!=S.current){var e=function(){P(document.hasFocus()?\"dialog\":void 0)};return window.addEventListener(\"focus\",e),window.addEventListener(\"blur\",e),function(){window.removeEventListener(\"focus\",e),window.removeEventListener(\"blur\",e)}}},b=[],j[9]=v,j[10]=b):(v=j[9],b=j[10]),w.useEffect(v,b),j[11]===Symbol.for(\"react.memo_cache_sentinel\")?(C=function(){var e,t,n=S.current,r=null==n?void 0:n.getRootNode(),o=(e=r,null!=(t=ShadowRoot)&&\"undefined\"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t)?null==r?void 0:r.activeElement:null;return null==n||n.focus(),function(){null==n||n.blur(),null==o||o.focus()}},_=[],j[11]=C,j[12]=_):(C=j[11],_=j[12]),w.useEffect(C,_),j[13]!==m?(k=function(e){\"Escape\"===e.key&&(null==m||m())},j[13]=m,j[14]=k):k=j[14],j[15]!==d||j[16]!==f||j[17]!==p||j[18]!==h||j[19]!==g||j[20]!==B||j[21]!==k)?(E=(0,A.jsx)(\"div\",(c=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({ref:S,tabIndex:-1,\"data-nextjs-dialog\":!0,\"data-nextjs-scrollable-content\":!0,role:B,\"aria-labelledby\":f,\"aria-describedby\":d,\"aria-modal\":\"true\",className:h,onKeyDown:k},g),u=u={children:p},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c)),j[15]=d,j[16]=f,j[17]=p,j[18]=h,j[19]=g,j[20]=B,j[21]=k,j[22]=E):E=j[22],E};function tK(e){var t,n,r,o,a,i,l,s,c=(0,x.c)(12);return(c[0]!==e?(i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"onClose\",\"footer\"]),r=e.children,a=e.onClose,o=e.footer,c[0]=e,c[1]=r,c[2]=o,c[3]=a,c[4]=i):(r=c[1],o=c[2],a=c[3],i=c[4]),c[5]!==r||c[6]!==a||c[7]!==i)?(l=(0,A.jsx)(tY,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"aria-labelledby\":\"nextjs__container_errors_label\",\"aria-describedby\":\"nextjs__container_errors_desc\",className:\"error-overlay-dialog-scroll\",onClose:a},i),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),c[5]=r,c[6]=a,c[7]=i,c[8]=l):l=c[8],c[9]!==o||c[10]!==l?(s=(0,A.jsxs)(\"div\",{className:\"error-overlay-dialog-container\",children:[l,o]}),c[9]=o,c[10]=l,c[11]=s):s=c[11],s}function tX(e){var t,n,r,o=(0,x.c)(2);return o[0]!==e?(r=(0,A.jsx)(\"div\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-header\":!0},e),n=n={children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),o[0]=e,o[1]=r):r=o[1],r}function tG(e){var t,n=(0,x.c)(2),r=e.children;return n[0]!==r?(t=(0,A.jsx)(tX,{className:\"nextjs-container-errors-header\",children:r}),n[0]=r,n[1]=t):t=n[1],t}function tQ(e){var t,n=(0,x.c)(2),r=e.children;return n[0]!==r?(t=(0,A.jsx)(eK,{className:\"nextjs-container-errors-body\",children:r}),n[0]=r,n[1]=t):t=n[1],t}var tJ=0,t0=function(e){var t,n,r,o,a,i,l,s=(0,x.c)(9);return(s[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"className\",\"children\"]),o=e.className,r=e.children,s[0]=e,s[1]=r,s[2]=o,s[3]=a):(r=s[1],o=s[2],a=s[3]),s[4]===Symbol.for(\"react.memo_cache_sentinel\")?(i=[],s[4]=i):i=s[4],w.useEffect(t2,i),s[5]!==r||s[6]!==o||s[7]!==a)?(l=(0,A.jsx)(\"div\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-overlay\":!0,className:o},a),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),s[5]=r,s[6]=o,s[7]=a,s[8]=l):l=s[8],l};function t1(){setTimeout(function(){0!==tJ&&0==--tJ&&(void 0!==n&&(document.body.style.paddingRight=n,n=void 0),void 0!==r&&(document.body.style.overflow=r,r=void 0))})}function t2(){return setTimeout(function(){if(!(tJ++>0)){var e=window.innerWidth-document.documentElement.clientWidth;e>0&&(n=document.body.style.paddingRight,document.body.style.paddingRight=\"\".concat(e,\"px\")),r=document.body.style.overflow,document.body.style.overflow=\"hidden\"}}),t1}function t4(){var e,t,n=(e=[\"\\n [data-nextjs-dialog-overlay] {\\n padding: initial;\\n top: 10vh;\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return t4=function(){return n},n}function t5(e){var t,n,r,o,a,i=(0,x.c)(6);return(i[0]!==e?(o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\"]),r=e.children,i[0]=e,i[1]=r,i[2]=o):(r=i[1],o=i[2]),i[3]!==r||i[4]!==o)?(a=(0,A.jsx)(t0,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},o),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),i[3]=r,i[4]=o,i[5]=a):a=i[5],a}var t3=eu(t4());function t6(e){var t,n,r,o=(0,x.c)(4),a=Math.min(e.errorCount-e.activeIdx-1,2);return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"div\",{className:\"error-overlay-bottom-stack-layer error-overlay-bottom-stack-layer-1\",children:\"1\"}),n=(0,A.jsx)(\"div\",{className:\"error-overlay-bottom-stack-layer error-overlay-bottom-stack-layer-2\",children:\"2\"}),o[0]=t,o[1]=n):(t=o[0],n=o[1]),o[2]!==a?(r=(0,A.jsx)(\"div\",{\"aria-hidden\":!0,className:\"error-overlay-bottom-stack\",children:(0,A.jsxs)(\"div\",{className:\"error-overlay-bottom-stack-stack\",\"data-stack-count\":a,children:[t,n]})}),o[2]=a,o[3]=r):r=o[3],r}function t9(e){var t,n=(0,x.c)(2),r=e.environmentName;return n[0]!==r?(t=(0,A.jsx)(\"span\",{\"data-nextjs-environment-name-label\":!0,children:r}),n[0]=r,n[1]=t):t=n[1],t}function t8(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function t7(e){var t,n,r=null==e?void 0:e.getRootNode();return(t=r,null!=(n=ShadowRoot)&&\"undefined\"!=typeof Symbol&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](t):t instanceof n)?null==r?void 0:r.activeElement:null}function ne(e,t,n,r,o){var a,i,l=(0,x.c)(7);l[0]!==n||l[1]!==r||l[2]!==o||l[3]!==e||l[4]!==t?(a=function(){if(n){var a,i=o||(null==(a=e.current)?void 0:a.ownerDocument),l=function(n){var o,a,i=n.target;!(e.current&&e.current.contains(i))&&(null!=(o=e.current)&&o.getBoundingClientRect()&&n.clientX>=e.current.getBoundingClientRect().left-10&&n.clientX<=e.current.getBoundingClientRect().right+10&&n.clientY>=e.current.getBoundingClientRect().top-10&&n.clientY<=e.current.getBoundingClientRect().bottom+10||null!=(a=t.current)&&a.getBoundingClientRect()&&n.clientX>=t.current.getBoundingClientRect().left-10&&n.clientX<=t.current.getBoundingClientRect().right+10&&n.clientY>=t.current.getBoundingClientRect().top-10&&n.clientY<=t.current.getBoundingClientRect().bottom+10||r(\"outside\"))},s=function(e){\"Escape\"===e.key&&r(\"escape\")};return null==i||i.addEventListener(\"mousedown\",l),null==i||i.addEventListener(\"keydown\",s),function(){null==i||i.removeEventListener(\"mousedown\",l),null==i||i.removeEventListener(\"keydown\",s)}}},i=[n,r,o,e,t],l[0]=n,l[1]=r,l[2]=o,l[3]=e,l[4]=t,l[5]=a,l[6]=i):(a=l[5],i=l[6]),(0,w.useEffect)(a,i)}var nt=\"cubic-bezier(0.175, 0.885, 0.32, 1.1)\",nn=(0,w.forwardRef)(function(e,t){var n,r,o=(0,x.c)(9),a=e.stop,i=e.blur,l=e.side,s=e.style,c=e.height,u=\"\".concat(c,\"px\");o[0]!==i||o[1]!==a||o[2]!==s||o[3]!==u?(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"--stop\":a,\"--blur\":i,\"--height\":u},s),o[0]=i,o[1]=a,o[2]=s,o[3]=u,o[4]=n):n=o[4];var d=n;return o[5]!==t||o[6]!==l||o[7]!==d?(r=(0,A.jsx)(\"div\",{ref:t,\"aria-hidden\":!0,\"data-nextjs-scroll-fader\":!0,className:\"nextjs-scroll-fader\",\"data-side\":l,style:d}),o[5]=t,o[6]=l,o[7]=d,o[8]=r):r=o[8],r});function nr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function no(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return nr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nr(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var na=(0,w.forwardRef)(function(e,t){var n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,b,C,_,k=(0,x.c)(13);k[0]!==e?(v=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"measure\"]),g=e.children,y=e.measure,k[0]=e,k[1]=g,k[2]=y,k[3]=v):(g=k[1],y=k[2],v=k[3]);var E=no((0,w.useState)(null),2),j=E[0],S=E[1],O=no((n=j,r=y,l=(0,x.c)(7),c=(s=no((0,w.useState)(0),2))[0],u=s[1],f=(d=no((0,w.useState)(!0),2))[0],p=d[1],l[0]!==n||l[1]!==r?(o=function(){if(r&&n){var e,t=new ResizeObserver(function(t){var n=no(t,1)[0].contentRect;clearTimeout(e),e=window.setTimeout(function(){p(!1)},100),u(n.height)});return t.observe(n),function(){return t.disconnect()}}},a=[r,n],l[0]=n,l[1]=r,l[2]=o,l[3]=a):(o=l[2],a=l[3]),(0,w.useEffect)(o,a),l[4]!==c||l[5]!==f?(i=[c,f],l[4]=c,l[5]=f,l[6]=i):i=l[6],i),2),B=O[0],P=O[1]?\"auto\":B;return(k[4]!==P?(b={height:P,transition:\"height 250ms var(--timing-swift)\"},k[4]=P,k[5]=b):b=k[5],k[6]!==g?(C=(0,A.jsx)(\"div\",{ref:S,children:g}),k[6]=g,k[7]=C):C=k[7],k[8]!==v||k[9]!==t||k[10]!==b||k[11]!==C)?(_=(0,A.jsx)(\"div\",(h=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},v),m=m={ref:t,style:b,children:C},Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(m)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(m)).forEach(function(e){Object.defineProperty(h,e,Object.getOwnPropertyDescriptor(m,e))}),h)),k[8]=v,k[9]=t,k[10]=b,k[11]=C,k[12]=_):_=k[12],_});function ni(e){var t,n,r,o=(0,x.c)(6);o[0]!==e?(n=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"fixed\"]),t=e.fixed,o[0]=e,o[1]=t,o[2]=n):(t=o[1],n=o[2]);var a=!!t||void 0;return o[3]!==n||o[4]!==a?(r=(0,A.jsx)(\"div\",function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-backdrop\":!0,\"data-nextjs-dialog-backdrop-fixed\":a},n)),o[3]=n,o[4]=a,o[5]=r):r=o[5],r}function nl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ns(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function nc(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function nu(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return nl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nl(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function nd(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,b,C,_,k,E,j,S=(0,x.c)(65),O=e.errorMessage,B=e.errorType,P=e.children,I=e.errorCode,T=e.errorCount,z=e.error,D=e.debugInfo,L=e.isBuildError,N=e.onClose,R=e.versionInfo,M=e.runtimeErrors,Z=e.activeIdx,U=e.setActiveIndex,F=e.isTurbopack,q=e.dialogResizerRef,H=e.generateErrorInfo,V=e.rendered,$=e.transitionDurationMs,W=void 0===V||V,Y=\"\".concat($,\"ms\");S[0]!==Y?(r={\"--transition-duration\":Y},S[0]=Y,S[1]=r):r=S[1];var K=r;S[2]!==W||S[3]!==K?(o={\"data-rendered\":W,style:K},S[2]=W,S[3]=K,S[4]=o):o=S[4];var X=o,G=nu(w.useState(!!$),2),Q=G[0],J=G[1],ee=w.useRef(null),et=!!I,en=w.useRef(null);t=en,n=W,(0,w.useEffect)(function(){var e=function(e){if(\"Tab\"===e.key&&null!==r){var t,n,o,a=(n=(t=r.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'))?[t[0],t[t.length-1]]:[],o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,t){if(e){if(\"string\"==typeof e)return t8(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t8(e,t)}}(n,o)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),i=a[0],l=a[1],s=t7(r);e.shiftKey?s===i&&(null==l||l.focus(),e.preventDefault()):s===l&&(null==i||i.focus(),e.preventDefault())}},r=null,o=setTimeout(function(){if(r=t.current,n)null==r||r.focus(),null==r||r.addEventListener(\"keydown\",e);else t7(r)});return function(){clearTimeout(o),null==r||r.removeEventListener(\"keydown\",e)}},[n]),S[5]===Symbol.for(\"react.memo_cache_sentinel\")?(a=function(e){if(ee.current){var t,n,r=(t=e.currentTarget.scrollTop/17,Math.min(Math.max(t,(n=nu([0,1],2))[0]),n[1]));ee.current.style.opacity=String(r)}},S[5]=a):a=S[5];var er=a;S[6]===Symbol.for(\"react.memo_cache_sentinel\")?(i=function(e){var t=e.propertyName,n=e.target;\"scale\"===t&&n===en.current&&J(!1)},S[6]=i):i=S[6];var eo=i;S[7]!==L?(l=(0,A.jsx)(ni,{fixed:L}),S[7]=L,S[8]=l):l=S[8],S[9]!==Z||S[10]!==F||S[11]!==M||S[12]!==U||S[13]!==R?(s=(0,A.jsx)(tF,{runtimeErrors:M,activeIdx:Z,setActiveIndex:U,versionInfo:R,isTurbopack:F}),S[9]=Z,S[10]=F,S[11]=M,S[12]=U,S[13]=R,S[14]=s):s=S[14],S[15]!==I||S[16]!==et?(c=et&&(0,A.jsx)(tB,{errorCode:I}),S[15]=I,S[16]=et,S[17]=c):c=S[17];var ea=!Q;S[18]!==B?(u=(0,A.jsx)(tD,{errorType:B}),S[18]=B,S[19]=u):u=S[19],S[20]!==z.environmentName?(d=z.environmentName&&(0,A.jsx)(t9,{environmentName:z.environmentName}),S[20]=z.environmentName,S[21]=d):d=S[21],S[22]!==u||S[23]!==d?(f=(0,A.jsxs)(\"span\",{\"data-nextjs-error-label-group\":!0,children:[u,d]}),S[22]=u,S[23]=d,S[24]=f):f=S[24],S[25]!==D||S[26]!==z||S[27]!==H?(p=(0,A.jsx)(tC,{error:z,debugInfo:D,generateErrorInfo:H}),S[25]=D,S[26]=z,S[27]=H,S[28]=p):p=S[28],S[29]!==I||S[30]!==f||S[31]!==p?(h=(0,A.jsxs)(\"div\",{className:\"nextjs__container_errors__error_title\",\"data-nextjs-error-code\":I,children:[f,p]}),S[29]=I,S[30]=f,S[31]=p,S[32]=h):h=S[32],S[33]!==O?(m=(0,A.jsx)(tz,{errorMessage:O}),S[33]=O,S[34]=m):m=S[34],S[35]!==h||S[36]!==m?(g=(0,A.jsxs)(tG,{children:[h,m]}),S[35]=h,S[36]=m,S[37]=g):g=S[37],S[38]!==P?(y=(0,A.jsx)(tQ,{children:P}),S[38]=P,S[39]=y):y=S[39],S[40]!==g||S[41]!==y?(v=(0,A.jsxs)(eX,{children:[g,y]}),S[40]=g,S[41]=y,S[42]=v):v=S[42],S[43]!==q||S[44]!==ea||S[45]!==v?(b=(0,A.jsx)(na,{ref:q,measure:ea,\"data-nextjs-dialog-sizer\":!0,children:v}),S[43]=q,S[44]=ea,S[45]=v,S[46]=b):b=S[46];var ei=null!=Z?Z:0;return S[47]!==T||S[48]!==ei?(C=(0,A.jsx)(t6,{errorCount:T,activeIdx:ei}),S[47]=T,S[48]=ei,S[49]=C):C=S[49],S[50]!==et||S[51]!==N||S[52]!==c||S[53]!==b||S[54]!==C?(_=(0,A.jsxs)(tK,{onClose:N,\"data-has-footer\":et,onScroll:er,footer:c,children:[b,C]}),S[50]=et,S[51]=N,S[52]=c,S[53]=b,S[54]=C,S[55]=_):_=S[55],S[56]===Symbol.for(\"react.memo_cache_sentinel\")?(k=(0,A.jsx)(nn,{ref:ee,side:\"top\",stop:\"50%\",blur:\"4px\",height:48}),S[56]=k):k=S[56],S[57]!==X||S[58]!==_||S[59]!==s?(E=(0,A.jsxs)(\"div\",nc(ns({\"data-nextjs-dialog-root\":!0,onTransitionEnd:eo,ref:en},X),{children:[s,_,k]})),S[57]=X,S[58]=_,S[59]=s,S[60]=E):E=S[60],S[61]!==X||S[62]!==E||S[63]!==l?(j=(0,A.jsxs)(t5,nc(ns({},X),{children:[l,E]})),S[61]=X,S[62]=E,S[63]=l,S[64]=j):j=S[64],j}var nf=\"\\n \".concat(t3,\"\\n \").concat(\"\\n .error-overlay-dialog-container {\\n display: flex;\\n flex-direction: column;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: var(--next-dialog-border-width) solid var(--color-gray-400);\\n border-radius: 0 0 var(--next-dialog-radius) var(--next-dialog-radius);\\n box-shadow: var(--shadow-menu);\\n position: relative;\\n overflow: hidden;\\n }\\n\\n .error-overlay-dialog-scroll {\\n overflow-y: auto;\\n height: 100%;\\n }\\n\",\"\\n \").concat(\"\\n .nextjs-container-errors-header {\\n position: relative;\\n }\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-20);\\n line-height: var(--size-24);\\n font-weight: bold;\\n margin: calc(16px * 1.5) 0;\\n color: var(--color-title-h1);\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-14);\\n color: var(--color-accents-1);\\n margin-left: 16px;\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: 4px;\\n }\\n .nextjs-container-errors-header > p > a {\\n color: inherit;\\n font-weight: bold;\\n }\\n .nextjs-container-errors-header\\n > .nextjs-container-build-error-version-status {\\n position: absolute;\\n top: 16px;\\n right: 16px;\\n }\\n\",\"\\n \").concat(\"\",\"\\n\\n \").concat(\"\\n [data-nextjs-error-overlay-nav] {\\n --stroke-color: var(--color-gray-400);\\n --background-color: var(--color-background-100);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n\\n width: 100%;\\n\\n position: relative;\\n z-index: 2;\\n outline: none;\\n translate: var(--next-dialog-border-width) var(--next-dialog-border-width);\\n max-width: var(--next-dialog-max-width);\\n\\n .error-overlay-notch {\\n translate: calc(var(--next-dialog-border-width) * -1);\\n width: auto;\\n height: var(--next-dialog-notch-height);\\n padding: 12px;\\n background: var(--background-color);\\n border: var(--next-dialog-border-width) solid var(--stroke-color);\\n border-bottom: none;\\n position: relative;\\n\\n &[data-side='left'] {\\n padding-right: 0;\\n border-radius: var(--next-dialog-radius) 0 0 0;\\n\\n .error-overlay-notch-tail {\\n right: -54px;\\n }\\n\\n > *:not(.error-overlay-notch-tail) {\\n margin-right: -10px;\\n }\\n }\\n\\n &[data-side='right'] {\\n padding-left: 0;\\n border-radius: 0 var(--next-dialog-radius) 0 0;\\n\\n .error-overlay-notch-tail {\\n left: -54px;\\n transform: rotateY(180deg);\\n }\\n\\n > *:not(.error-overlay-notch-tail) {\\n margin-left: -12px;\\n }\\n }\\n\\n .error-overlay-notch-tail {\\n position: absolute;\\n top: calc(var(--next-dialog-border-width) * -1);\\n pointer-events: none;\\n z-index: -1;\\n height: calc(100% + var(--next-dialog-border-width));\\n }\\n }\\n }\\n\\n @media (max-width: 600px) {\\n [data-nextjs-error-overlay-nav] {\\n background: var(--background-color);\\n border-radius: var(--next-dialog-radius) var(--next-dialog-radius) 0 0;\\n border: var(--next-dialog-border-width) solid var(--stroke-color);\\n border-bottom: none;\\n overflow: hidden;\\n translate: 0 var(--next-dialog-border-width);\\n \\n .error-overlay-notch {\\n border-radius: 0;\\n border: 0;\\n\\n &[data-side=\\\"left\\\"], &[data-side=\\\"right\\\"] {\\n border-radius: 0;\\n }\\n\\n .error-overlay-notch-tail {\\n display: none;\\n }\\n }\\n }\\n }\\n\",\"\\n \").concat(\"\\n .nextjs__container_errors_label {\\n padding: 2px 6px;\\n margin: 0;\\n border-radius: var(--rounded-md-2);\\n background: var(--color-red-100);\\n font-weight: 600;\\n font-size: var(--size-12);\\n color: var(--color-red-900);\\n font-family: var(--font-stack-monospace);\\n line-height: var(--size-20);\\n }\\n\",\"\\n \").concat(\"\\n .nextjs__container_errors_wrapper {\\n position: relative;\\n }\\n\\n .nextjs__container_errors_desc {\\n margin: 0;\\n margin-left: 4px;\\n color: var(--color-red-900);\\n font-weight: 500;\\n font-size: var(--size-16);\\n letter-spacing: -0.32px;\\n line-height: var(--size-24);\\n overflow-wrap: break-word;\\n white-space: pre-wrap;\\n }\\n\\n .nextjs__container_errors_desc.truncated {\\n max-height: 200px;\\n overflow: hidden;\\n }\\n\\n .nextjs__container_errors_gradient_overlay {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 85px;\\n background: linear-gradient(\\n 180deg,\\n rgba(250, 250, 250, 0) 0%,\\n var(--color-background-100) 100%\\n );\\n }\\n\\n .nextjs__container_errors_expand_button {\\n position: absolute;\\n bottom: 10px;\\n left: 50%;\\n transform: translateX(-50%);\\n display: flex;\\n align-items: center;\\n padding: 6px 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: 999px;\\n box-shadow:\\n 0px 2px 2px var(--color-gray-alpha-100),\\n 0px 8px 8px -8px var(--color-gray-alpha-100);\\n font-size: var(--size-13);\\n cursor: pointer;\\n color: var(--color-gray-900);\\n font-weight: 500;\\n transition: background-color 0.2s ease;\\n }\\n\\n .nextjs__container_errors_expand_button:hover {\\n background: var(--color-gray-100);\\n }\\n\",\"\\n \").concat(\"\\n .error-overlay-toolbar {\\n display: flex;\\n gap: 6px;\\n }\\n\\n .nodejs-inspector-button,\\n .copy-error-button,\\n .docs-link-button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-28);\\n height: var(--size-28);\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n svg {\\n width: var(--size-14);\\n height: var(--size-14);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n &:not(:disabled):hover {\\n background: var(--color-gray-alpha-100);\\n }\\n\\n &:not(:disabled):active {\\n background: var(--color-gray-alpha-200);\\n }\\n\\n &:disabled {\\n background-color: var(--color-gray-100);\\n cursor: not-allowed;\\n }\\n }\\n\\n .error-overlay-toolbar-button-icon {\\n color: var(--color-gray-900);\\n }\\n\",\"\\n\\n [data-nextjs-error-label-group] {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n }\\n\");function np(){var e,t,n=(e=[\"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n /* secondary z-index, -1 than toast z-index */\\n z-index: 2147483646;\\n\\n display: flex;\\n align-content: center;\\n align-items: center;\\n flex-direction: column;\\n padding: 10vh 15px 0;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n padding: 15px 15px 0;\\n }\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: var(--color-backdrop);\\n backdrop-filter: blur(10px);\\n pointer-events: all;\\n z-index: -1;\\n }\\n\\n [data-nextjs-dialog-backdrop-fixed] {\\n cursor: not-allowed;\\n -webkit-backdrop-filter: blur(8px);\\n backdrop-filter: blur(8px);\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return np=function(){return n},n}var nh=eu(np());function nm(e){var t,n,r,o,a,i=(0,x.c)(9),l=e.file,s=e.location,c=null!=(t=null==s?void 0:s.line)?t:1,u=null!=(n=null==s?void 0:s.column)?n:1;i[0]!==l||i[1]!==c||i[2]!==u?(r={file:l,line1:c,column1:u},i[0]=l,i[1]=c,i[2]=u,i[3]=r):r=i[3];var d=eB(r),f=s?\":\".concat(s.line,\":\").concat(s.column):null;return i[4]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,A.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[(0,A.jsx)(\"path\",{d:\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}),(0,A.jsx)(\"polyline\",{points:\"15 3 21 3 21 9\"}),(0,A.jsx)(\"line\",{x1:\"10\",y1:\"14\",x2:\"21\",y2:\"3\"})]}),i[4]=o):o=i[4],i[5]!==l||i[6]!==d||i[7]!==f?(a=(0,A.jsxs)(\"div\",{\"data-with-open-in-editor-link\":!0,\"data-with-open-in-editor-link-import-trace\":!0,role:\"link\",onClick:d,title:\"Click to open in your editor\",children:[l,f,o]}),i[5]=l,i[6]=d,i[7]=f,i[8]=a):a=i[8],a}function ng(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var ny=function(e){var t,n,r,o,a,i,l,s,c,u,d=e.content,f=w.useMemo(function(){var e,t,n;return t=function(e){var t,n,r=e.shift();if(!r)return null;var o=(t=r.split(\":\",3),n=3,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,3)||function(e,t){if(e){if(\"string\"==typeof e)return ng(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ng(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=o[2],s=Number(i),c=Number(l),u=!Number.isNaN(s)&&!Number.isNaN(c);return{fileName:u?a:r,location:u?{line1:s,column1:c}:void 0}}(e=d.split(\"\\n\")),n=function(e){if(e.some(function(e){return/ReactServerComponentsError:/.test(e)})||e.some(function(e){return/Import trace for requested module:/.test(e)})){for(var t=[];/.+\\..+/.test(e[e.length-1])&&!e[e.length-1].includes(\":\");){var n=e.pop().trim();t.unshift(n)}return t}return[]}(e),{file:t,source:e.join(\"\\n\"),importTraceFiles:n}},[d]),p=f.file,h=f.source,m=f.importTraceFiles,g=w.useMemo(function(){return eq().ansiToJson(h,{json:!0,use_classes:!0,remove_empty:!0})},[h]);console.log({file:p});var y=eB({file:null==p?void 0:p.fileName,line1:null!=(i=null==p||null==(t=p.location)?void 0:t.line1)?i:1,column1:null!=(l=null==p||null==(n=p.location)?void 0:n.column1)?l:1}),v={file:null!=(s=null==p?void 0:p.fileName)?s:null,methodName:\"\",arguments:[],line1:null!=(c=null==p||null==(r=p.location)?void 0:r.line1)?c:null,column1:null!=(u=null==p||null==(o=p.location)?void 0:o.column1)?u:null},b=null==v||null==(a=v.file)?void 0:a.split(\".\").pop();return(0,A.jsxs)(\"div\",{\"data-nextjs-codeframe\":!0,children:[(0,A.jsx)(\"div\",{className:\"code-frame-header\",children:(0,A.jsxs)(\"div\",{className:\"code-frame-link\",children:[(0,A.jsx)(\"span\",{className:\"code-frame-icon\",children:(0,A.jsx)(eL,{lang:b})}),(0,A.jsx)(\"span\",{\"data-text\":!0,children:eO(v)}),(0,A.jsx)(\"button\",{\"aria-label\":\"Open in editor\",\"data-with-open-in-editor-link-source-file\":!0,onClick:y,children:(0,A.jsx)(\"span\",{className:\"code-frame-icon\",\"data-icon\":\"right\",children:(0,A.jsx)(ez,{width:16,height:16})})})]})}),(0,A.jsx)(\"pre\",{className:\"code-frame-pre\",children:(0,A.jsxs)(\"div\",{className:\"code-frame-lines\",children:[g.map(function(e,t){return(0,A.jsx)(\"span\",{style:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({color:e.fg?\"var(--color-\".concat(e.fg,\")\"):void 0},\"bold\"===e.decoration?{fontWeight:500}:\"italic\"===e.decoration?{fontStyle:\"italic\"}:void 0),children:(0,A.jsx)(eA,{text:e.content})},\"terminal-entry-\".concat(t))}),m.map(function(e){return(0,A.jsx)(nm,{isSourceFile:!1,file:e},e)})]})})]})},nv=function(e){var t=e.split(\"\\n\");return eV()(t[1]||\"\").replace(/^Error: /,\"\")},nb=function(e){var t,n,r,o,a,i,l,s,c,u,d=(0,x.c)(19);d[0]!==e?(o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"message\"]),r=e.message,d[0]=e,d[1]=r,d[2]=o):(r=d[1],o=d[2]),d[3]!==r?(a=Error(r),d[3]=r,d[4]=a):a=d[4];var f=a;d[5]!==r?(l=nv(r)||\"Failed to compile\",d[5]=r,d[6]=l):l=d[6],i=l,d[7]!==i||d[8]!==r||d[9]!==o.versionInfo.installed?(s=function(){var e=[];if(e.push(\"## Error Type\\nBuild Error\"),i&&e.push(\"## Error Message\\n\".concat(i)),r){var t=eV()(r);e.push(\"## Build Output\\n\".concat(t))}return\"\".concat(e.join(\"\\n\\n\"),\"\\n\\nNext.js version: \").concat(o.versionInfo.installed,\" (\").concat(\"Webpack\",\")\\n\")},d[7]=i,d[8]=r,d[9]=o.versionInfo.installed,d[10]=s):s=d[10];var p=s;return(d[11]!==r?(c=(0,A.jsx)(ny,{content:r}),d[11]=r,d[12]=c):c=d[12],d[13]!==f||d[14]!==i||d[15]!==p||d[16]!==o||d[17]!==c)?(u=(0,A.jsx)(nd,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({errorType:\"Build Error\",errorMessage:i,onClose:nA,error:f,generateErrorInfo:p},o),n=n={children:c},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),d[13]=f,d[14]=i,d[15]=p,d[16]=o,d[17]=c,d[18]=u):u=d[18],u};function nA(){}var nx=function(e){var t,n,r,o,a,i,l,s,c,u,d,f=(0,x.c)(26),p=e.frame,h=null!=(t=p.originalStackFrame)?t:p.sourceStackFrame,m=!!p.originalCodeFrame;f[0]!==h||f[1]!==m?(n=m?{file:h.file,line1:null!=(r=h.line1)?r:1,column1:null!=(o=h.column1)?o:1}:void 0,f[0]=h,f[1]=m,f[2]=n):n=f[2];var g=eB(n);f[3]!==h?(a=eO(h),f[3]=h,f[4]=a):a=f[4];var y=a;if(!y)return null;var v=!m;return f[5]!==h.methodName?(i=(0,A.jsx)(eA,{text:h.methodName}),f[5]=h.methodName,f[6]=i):i=f[6],f[7]!==h.methodName||f[8]!==m||f[9]!==g?(l=m&&(0,A.jsx)(\"button\",{onClick:g,className:\"open-in-editor-button\",\"aria-label\":\"Open \".concat(h.methodName,\" in editor\"),children:(0,A.jsx)(ez,{width:16,height:16})}),f[7]=h.methodName,f[8]=m,f[9]=g,f[10]=l):l=f[10],f[11]!==p.error||f[12]!==p.reason?(s=p.error?(0,A.jsx)(\"button\",{className:\"source-mapping-error-button\",onClick:function(){return console.error(p.reason)},title:\"Sourcemapping failed. Click to log cause of error.\",children:(0,A.jsx)(eD,{width:16,height:16})}):null,f[11]=p.error,f[12]=p.reason,f[13]=s):s=f[13],f[14]!==i||f[15]!==l||f[16]!==s?(c=(0,A.jsxs)(\"div\",{className:\"call-stack-frame-method-name\",children:[i,l,s]}),f[14]=i,f[15]=l,f[16]=s,f[17]=c):c=f[17],f[18]!==y||f[19]!==m?(u=(0,A.jsx)(\"span\",{className:\"call-stack-frame-file-source\",\"data-has-source\":m,children:y}),f[18]=y,f[19]=m,f[20]=u):u=f[20],f[21]!==p.ignored||f[22]!==v||f[23]!==c||f[24]!==u?(d=(0,A.jsxs)(\"div\",{\"data-nextjs-call-stack-frame\":!0,\"data-nextjs-call-stack-frame-no-source\":v,\"data-nextjs-call-stack-frame-ignored\":p.ignored,children:[c,u]}),f[21]=p.ignored,f[22]=v,f[23]=c,f[24]=u,f[25]=d):d=f[25],d};function nw(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.70722 2.39641C8.3167 2.00588 7.68353 2.00588 7.29301 2.39641L4.46978 5.21963L3.93945 5.74996L5.00011 6.81062L5.53044 6.28029L8.00011 3.81062L10.4698 6.28029L11.0001 6.81062L12.0608 5.74996L11.5304 5.21963L8.70722 2.39641ZM5.53044 9.71963L5.00011 9.1893L3.93945 10.25L4.46978 10.7803L7.29301 13.6035C7.68353 13.994 8.3167 13.994 8.70722 13.6035L11.5304 10.7803L12.0608 10.25L11.0001 9.1893L10.4698 9.71963L8.00011 12.1893L5.53044 9.71963Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function nC(){var e,t,n=(e=[\"\\n [data-nextjs-call-stack-container] {\\n position: relative;\\n margin-top: 8px;\\n }\\n\\n [data-nextjs-call-stack-header] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n min-height: var(--size-28);\\n padding: 8px 8px 12px 4px;\\n width: 100%;\\n }\\n\\n [data-nextjs-call-stack-title] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 8px;\\n\\n margin: 0;\\n\\n color: var(--color-gray-1000);\\n font-size: var(--size-16);\\n font-weight: 500;\\n }\\n\\n [data-nextjs-call-stack-count] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-20);\\n height: var(--size-20);\\n gap: 4px;\\n\\n color: var(--color-gray-1000);\\n text-align: center;\\n font-size: var(--size-11);\\n font-weight: 500;\\n line-height: var(--size-16);\\n\\n border-radius: var(--rounded-full);\\n background: var(--color-gray-300);\\n }\\n\\n [data-nextjs-call-stack-ignored-list-toggle-button] {\\n all: unset;\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n border-radius: 6px;\\n padding: 4px 6px;\\n margin-right: -6px;\\n transition: background 150ms ease;\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return nC=function(){return n},n}function n_(e){var t,n,r,o,a,i,l=(0,x.c)(17),s=e.frames,c=e.isIgnoreListOpen,u=e.ignoredFramesTally,d=e.onToggleIgnoreList;return l[0]!==s.length?(t=(0,A.jsxs)(\"p\",{\"data-nextjs-call-stack-title\":!0,children:[\"Call Stack \",(0,A.jsx)(\"span\",{\"data-nextjs-call-stack-count\":!0,children:s.length})]}),l[0]=s.length,l[1]=t):t=l[1],l[2]!==u||l[3]!==c||l[4]!==d?(n=u>0&&(0,A.jsxs)(\"button\",{\"data-nextjs-call-stack-ignored-list-toggle-button\":c,onClick:d,children:[\"\".concat(c?\"Hide\":\"Show\",\" \").concat(u,\" ignore-listed frame(s)\"),(0,A.jsx)(nw,{})]}),l[2]=u,l[3]=c,l[4]=d,l[5]=n):n=l[5],l[6]!==t||l[7]!==n?(r=(0,A.jsxs)(\"div\",{\"data-nextjs-call-stack-header\":!0,children:[t,n]}),l[6]=t,l[7]=n,l[8]=r):r=l[8],l[9]!==s||l[10]!==c?(l[12]!==c?(a=function(e,t){return!e.ignored||c?(0,A.jsx)(nx,{frame:e},t):null},l[12]=c,l[13]=a):a=l[13],o=s.map(a),l[9]=s,l[10]=c,l[11]=o):o=l[11],l[14]!==r||l[15]!==o?(i=(0,A.jsxs)(\"div\",{\"data-nextjs-call-stack-container\":!0,children:[r,o]}),l[14]=r,l[15]=o,l[16]=i):i=l[16],i}var nk=eu(nC());function nE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nj(e){var t,n,r=e.frames,o=e.dialogResizerRef,a=(0,w.useRef)(NaN),i=(t=(0,w.useState)(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return nE(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nE(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),l=i[0],s=i[1],c=(0,w.useMemo)(function(){return r.reduce(function(e,t){return e+ +!!t.ignored},0)},[r]);return(0,A.jsx)(n_,{frames:r,isIgnoreListOpen:l,onToggleIgnoreList:function(){var e=null==o?void 0:o.current;if(e){var t=(null==e?void 0:e.getBoundingClientRect()).height;a.current||(a.current=t),l?(e.style.height=\"\".concat(a.current,\"px\"),e.addEventListener(\"transitionend\",function t(){e.removeEventListener(\"transitionend\",t),s(!1)})):s(!0)}},ignoredFramesTally:c})}function nS(e){var t,n,r,o,a,i,l=(0,x.c)(8);l[0]!==e?(r=void 0===e?{}:e,l[0]=e,l[1]=r):r=l[1];var s=r.collapsed;return(l[2]!==s?(o=\"boolean\"==typeof s?{style:{transform:s?void 0:\"rotate(90deg)\"}}:{},l[2]=s,l[3]=o):o=l[3],l[4]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,A.jsx)(\"path\",{style:{fill:\"var(--color-font)\"},fillRule:\"evenodd\",d:\"m6.75 3.94.53.53 2.824 2.823a1 1 0 0 1 0 1.414L7.28 11.53l-.53.53L5.69 11l.53-.53L8.69 8 6.22 5.53 5.69 5l1.06-1.06Z\",clipRule:\"evenodd\"}),l[4]=a):a=l[4],l[5]!==s||l[6]!==o)?(i=(0,A.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-call-stack-chevron-icon\":!0,\"data-collapsed\":s,width:\"16\",height:\"16\",fill:\"none\"},o),n=n={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),l[5]=s,l[6]=o,l[7]=i):i=l[7],i}function nO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nB(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return nO(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nO(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function nP(e){var t,n,r,o,a,i,l,s=(0,x.c)(15),c=e.reactOutputComponentDiff,u=nB((0,w.useState)(!0),2),d=u[0],f=u[1];s[0]!==c?(n=[],c.split(\"\\n\").forEach(function(e,t){var r,o,a=\"+\"===e[0]||\"-\"===e[0],i=\">\"===e[0],l=a||i,s=l?e[0]:\"\",c=l?e.indexOf(s):-1,u=nB(l?[e.slice(0,c),e.slice(c+1)]:[e,\"\"],2),d=u[0],f=u[1];a?n.push((0,A.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line\":!0,\"data-nextjs-container-errors-pseudo-html--diff\":\"+\"===s?\"add\":\"remove\",children:(0,A.jsxs)(\"span\",{children:[d,(0,A.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line-sign\":!0,children:s}),f,\"\\n\"]})},\"comp-diff\"+t)):n.push((0,A.jsxs)(\"span\",(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-container-errors-pseudo-html-line\":!0},i?{\"data-nextjs-container-errors-pseudo-html--diff\":\"error\"}:void 0),o=o={children:[d,(0,A.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line-sign\":!0,children:s}),f,\"\\n\"]},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r),\"comp-diff\"+t))}),s[0]=c,s[1]=n):n=s[1],t=n;var p=!d;return s[2]!==d?(r=function(){return f(!d)},o=(0,A.jsx)(nS,{collapsed:d}),s[2]=d,s[3]=r,s[4]=o):(r=s[3],o=s[4]),s[5]!==p||s[6]!==r||s[7]!==o?(a=(0,A.jsx)(\"button\",{\"aria-expanded\":p,\"aria-label\":\"complete Component Stack\",\"data-nextjs-container-errors-pseudo-html-collapse-button\":!0,onClick:r,children:o}),s[5]=p,s[6]=r,s[7]=o,s[8]=a):a=s[8],s[9]!==t?(i=(0,A.jsx)(\"pre\",{className:\"nextjs__container_errors__component-stack\",children:(0,A.jsx)(\"code\",{children:t})}),s[9]=t,s[10]=i):i=s[10],s[11]!==d||s[12]!==a||s[13]!==i?(l=(0,A.jsxs)(\"div\",{\"data-nextjs-container-errors-pseudo-html\":!0,\"data-nextjs-container-errors-pseudo-html-collapse\":d,children:[a,i]}),s[11]=d,s[12]=a,s[13]=i,s[14]=l):l=s[14],l}var nI=Symbol.for(\"NextjsError\");function nT(e){return e[nI]||null}function nz(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function nD(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){nz(a,r,o,i,l,\"next\",e)}function l(e){nz(a,r,o,i,l,\"throw\",e)}i(void 0)})}}function nL(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function nN(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function nR(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(n)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var nM=function(e){if(!e)return[];if(\"use\"in w){var t=e.frames;if(\"function\"!=typeof t)throw Error(\"Invariant: frames must be a function when the React version has React.use. This is a bug in Next.js.\");return w.use(t())}if(!Array.isArray(e.frames))throw Error(\"Invariant: frames must be an array when the React version does not have React.use. This is a bug in Next.js.\");return e.frames};function nZ(e){var t,n,r,o,a,i=(0,x.c)(8),l=e.error,s=e.dialogResizerRef,c=nM(l),u=c.findIndex(nU);return t=null!=(n=c[u])?n:null,i[0]!==t?(r=t&&(0,A.jsx)(eY,{stackFrame:t.originalStackFrame,codeFrame:t.originalCodeFrame}),i[0]=t,i[1]=r):r=i[1],i[2]!==s||i[3]!==c?(o=c.length>0&&(0,A.jsx)(nj,{dialogResizerRef:s,frames:c}),i[2]=s,i[3]=c,i[4]=o):o=i[4],i[5]!==r||i[6]!==o?(a=(0,A.jsxs)(A.Fragment,{children:[r,o]}),i[5]=r,i[6]=o,i[7]=a):a=i[7],a}function nU(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame}var nF=\"\\n \".concat(\"\\n [data-nextjs-container-errors-pseudo-html] {\\n padding: 8px 0;\\n margin: 8px 0;\\n border: 1px solid var(--color-gray-400);\\n background: var(--color-background-200);\\n color: var(--color-syntax-constant);\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n line-height: 1.33em; /* 16px in 12px font size */\\n border-radius: var(--rounded-md-2);\\n }\\n [data-nextjs-container-errors-pseudo-html-line] {\\n display: inline-block;\\n width: 100%;\\n padding-left: 40px;\\n line-height: calc(5 / 3);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='error'] {\\n background: var(--color-amber-100);\\n box-shadow: 2px 0 0 0 var(--color-amber-900) inset;\\n font-weight: bold;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse-button] {\\n all: unset;\\n margin-left: 12px;\\n &:focus {\\n outline: none;\\n }\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\\n background: var(--color-green-300);\\n }\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n margin-left: calc(24px * -1);\\n margin-right: 24px;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-green-900);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\\n background: var(--color-red-300);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-red-900);\\n margin-left: calc(24px * -1);\\n margin-right: 24px;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='error']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-amber-900);\\n }\\n \\n [data-nextjs-container-errors-pseudo-html--hint] {\\n display: inline-block;\\n font-size: 0;\\n height: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\\n color: var(--color-accents-1);\\n }\\n .nextjs__container_errors__component-stack {\\n margin: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse='true']\\n .nextjs__container_errors__component-stack\\n code {\\n max-height: 120px;\\n mask-image: linear-gradient(to bottom,rgba(0,0,0,0) 0%,black 10%);\\n padding-bottom: 40px;\\n }\\n .nextjs__container_errors__component-stack code {\\n display: block;\\n width: 100%;\\n white-space: pre-wrap;\\n scroll-snap-type: y mandatory;\\n overflow-y: hidden;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff] {\\n scroll-snap-align: center;\\n }\\n .error-overlay-hydration-error-diff-plus-icon {\\n color: var(--color-green-900);\\n }\\n .error-overlay-hydration-error-diff-minus-icon {\\n color: var(--color-red-900);\\n }\\n\",\"\\n\");function nq(e){return e&&\"undefined\"!=typeof Symbol&&e.constructor===Symbol?\"symbol\":typeof e}function nH(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nV(e){return e.startsWith(\"https://nextjs.org\")}function n$(e){var t,n=(0,x.c)(2),r=e.message;return n[0]!==r?(t=(0,A.jsx)(eA,{text:r,matcher:nV}),n[0]=r,n[1]=t):t=n[1],t}function nW(e){var t,n,r=(0,x.c)(5),o=e.error,a=\"environmentName\"in o?o.environmentName:\"\",i=a?\"[ \".concat(a,\" ] \"):\"\",l=o.message;return l.startsWith(i)&&(r[0]!==i.length||r[1]!==l?(t=l.slice(i.length),r[0]=i.length,r[1]=l,r[2]=t):t=r[2],l=t),r[3]!==l?(n=(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(eA,{text:l,matcher:nV})}),r[3]=l,r[4]=n):n=r[4],n}var nY={hydrationWarning:null,notes:null,reactOutputComponentDiff:null};function nK(e){var t,n,r=e.getSquashedHydrationErrorDetails,o=e.runtimeErrors,a=e.debugInfo,i=e.onClose,l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"getSquashedHydrationErrorDetails\",\"runtimeErrors\",\"debugInfo\",\"onClose\"]),s=(0,w.useRef)(null),c=function(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m=(0,x.c)(17),g=e.runtimeErrors,y=e.getSquashedHydrationErrorDetails,v=(a=(0,w.useState)(0),i=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(a,2)||function(e,t){if(e){if(\"string\"==typeof e)return nH(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nH(e,t)}}(a,i)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),b=v[0],A=v[1];s=0===g.length;var C=(t=null==(c=null!=(u=g[b])?u:null)?void 0:c.error,n=y,(0,w.useMemo)(function(){if(void 0===t)return nY;var e,r,o,a=n(t);if(null!==a)return{hydrationWarning:null!=(r=a.warning)?r:null,notes:null,reactOutputComponentDiff:null!=(o=a.reactOutputComponentDiff)?o:null};if(!(tv((e=t).message)||/Hydration failed because the server rendered (text|HTML) didn't match the client\\./.test(e.message)||/A tree hydrated but some attributes of the server rendered HTML didn't match the client properties./.test(e.message)))return nY;var i=function(e){var t=e.message;if(tv(t)){var n=tf(t.split(\"\\n\\n\"),2),r=n[0],o=n[1],a=(void 0===o?\"\":o).trim();return{message:\"\"===a?t.trim():r.trim(),diff:a,notes:null}}var i=tf(t.split(\"\".concat(tm)),2),l=i[0],s=i[1],c=l.trim();if(void 0!==s&&s.length>1){var u=[];s.split(\"\\n\").forEach(function(e){\"\"!==e.trim()&&(e.trim().startsWith(\"at \")||u.push(e))});var d=tp(c.split(\"\\n\\n\")),f=d[0],p=d.slice(1);return{message:f,diff:u.join(\"\\n\"),notes:p.join(\"\\n\\n\")||null}}var h=tp(c.split(\"\\n\\n\"));return{message:h[0],diff:null,notes:h.slice(1).join(\"\\n\\n\")}}(t),l=i.message,s=i.notes,c=i.diff;return null===l?nY:{hydrationWarning:l,notes:s,reactOutputComponentDiff:c}},[t,n]));if(s||!c)return m[0]!==b||m[1]!==s?(d={isLoading:s,activeIdx:b,setActiveIndex:A,activeError:null,errorDetails:null,errorCode:null,errorType:null,notes:null,hydrationWarning:null},m[0]=b,m[1]=s,m[2]=d):d=m[2],d;var _=c.error;m[3]!==_?(f=(void 0===(l=_)?\"undefined\":nq(l))===\"object\"&&null!==l&&\"__NEXT_ERROR_CODE\"in l&&\"string\"==typeof l.__NEXT_ERROR_CODE?l.__NEXT_ERROR_CODE:(void 0===l?\"undefined\":nq(l))===\"object\"&&null!==l&&\"digest\"in l&&\"string\"==typeof l.digest?l.digest.split(\"@\").find(function(e){return e.startsWith(\"E\")}):void 0,m[3]=_,m[4]=f):f=m[4];var k=f;m[5]!==c.type||m[6]!==_?(r=_,p=\"recoverable\"===(o=c.type)?\"Recoverable \".concat(r.name):\"console\"===o?\"Console \".concat(r.name):\"Runtime \".concat(r.name),m[5]=c.type,m[6]=_,m[7]=p):p=m[7];var E=p,j=C.notes,S=C.hydrationWarning;return m[8]!==c||m[9]!==b||m[10]!==k||m[11]!==C||m[12]!==E||m[13]!==S||m[14]!==s||m[15]!==j?(h={isLoading:s,activeIdx:b,setActiveIndex:A,activeError:c,errorDetails:C,errorCode:k,errorType:E,notes:j,hydrationWarning:S},m[8]=c,m[9]=b,m[10]=k,m[11]=C,m[12]=E,m[13]=S,m[14]=s,m[15]=j,m[16]=h):h=m[16],h}({runtimeErrors:o,getSquashedHydrationErrorDetails:r}),u=c.isLoading,d=c.errorCode,f=c.errorType,p=c.notes,h=c.hydrationWarning,m=c.activeIdx,g=c.errorDetails,y=c.activeError,v=c.setActiveIndex,b=nM(y),C=(0,w.useMemo)(function(){var e,t=b.findIndex(function(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame});return null!=(e=b[t])?e:null},[b]),_=(0,w.useCallback)(function(){if(!y)return\"\";var e=[];f&&e.push(\"## Error Type\\n\".concat(f));var t=y.error,n=t.message;if(\"environmentName\"in t&&t.environmentName){var r=\"[ \".concat(t.environmentName,\" ] \");n.startsWith(r)&&(n=n.slice(r.length))}if(n&&e.push(\"## Error Message\\n\".concat(n)),b.length>0){var o=b.filter(function(e){return!e.ignored});if(o.length>0){var a=o.map(function(e){if(e.originalStackFrame){var t=e.originalStackFrame,n=t.methodName,r=t.file,o=t.line1,a=t.column1;return\" at \".concat(n,\" (\").concat(r,\":\").concat(o,\":\").concat(a,\")\")}if(e.sourceStackFrame){var i=e.sourceStackFrame,l=i.methodName,s=i.file,c=i.line1,u=i.column1;return\" at \".concat(l,\" (\").concat(s,\":\").concat(c,\":\").concat(u,\")\")}return\"\"}).filter(Boolean);a.length>0&&e.push(\"\\n\".concat(a.join(\"\\n\")))}}if(null==C?void 0:C.originalCodeFrame){var i=eV()(e$(C.originalCodeFrame));e.push(\"## Code Frame\\n\".concat(i))}return\"\".concat(e.join(\"\\n\\n\"),\"\\n\\nNext.js version: \").concat(l.versionInfo.installed,\" (\").concat(\"Webpack\",\")\\n\")},[y,f,C,b,l.versionInfo]);if(u)return(0,A.jsx)(t0,{children:(0,A.jsx)(ni,{})});if(!y)return null;var k=y.error,E=[\"server\",\"edge-server\"].includes(nT(k)||\"\");return(0,A.jsxs)(nd,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({errorCode:d,errorType:f,errorMessage:h?(0,A.jsx)(n$,{message:h}):(0,A.jsx)(nW,{error:k}),onClose:E?void 0:i,debugInfo:a,error:k,runtimeErrors:o,activeIdx:m,setActiveIndex:v,dialogResizerRef:s,generateErrorInfo:_},l),n=n={children:[(0,A.jsxs)(\"div\",{className:\"error-overlay-notes-container\",children:[p?(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(\"p\",{id:\"nextjs__container_errors__notes\",className:\"nextjs__container_errors__notes\",children:p})}):null,h?(0,A.jsx)(\"p\",{id:\"nextjs__container_errors__link\",className:\"nextjs__container_errors__link\",children:(0,A.jsx)(eA,{text:\"See more info here: \".concat(tg)})}):null]}),g.reactOutputComponentDiff?(0,A.jsx)(nP,{reactOutputComponentDiff:g.reactOutputComponentDiff||\"\"}):null,(0,A.jsx)(w.Suspense,{fallback:(0,A.jsx)(\"div\",{\"data-nextjs-error-suspended\":!0}),children:(0,A.jsx)(nZ,{error:y,dialogResizerRef:s},y.id.toString())})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function nX(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,b,w=(0,x.c)(19);return(w[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"pages\"}),w[0]=r):r=w[0],w[1]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,A.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js. Turbopack can be used in Next.js in both the\",\" \",r,\" and\",\" \",(0,A.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"app\"}),\" directories for faster local development.\"]}),w[1]=o):o=w[1],w[2]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,A.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"To enable Turbopack, use the\",\" \",(0,A.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"--turbopack\"}),\" flag when running the Next.js development server.\"]}),w[2]=a):a=w[2],w[3]!==e)?(i=(0,A.jsxs)(\"article\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({className:\"dev-tools-info-article\"},e),n=n={children:[o,a]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),w[3]=e,w[4]=i):i=w[4],w[5]===Symbol.for(\"react.memo_cache_sentinel\")?(l=(0,A.jsx)(e8,{actionLabel:\"Copy Next.js Turbopack Command\",successLabel:\"Next.js Turbopack Command Copied\",content:\"--turbopack\",className:\"dev-tools-info-copy-button\"}),w[5]=l):l=w[5],w[6]===Symbol.for(\"react.memo_cache_sentinel\")?(s=(0,A.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" \"}),c=(0,A.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\"{\"}),w[6]=s,w[7]=c):(s=w[6],c=w[7]),w[8]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,A.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"scripts\"'}),\": \",\"{\"]}),w[8]=u):u=w[8],w[9]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"dev\"'}),w[9]=d):d=w[9],w[10]===Symbol.for(\"react.memo_cache_sentinel\")?(f=(0,A.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line dev-tools-info-highlight\",children:[\" \",d,\":\",\" \",(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next dev --turbopack\"'}),\",\"]}),w[10]=f):f=w[10],w[11]===Symbol.for(\"react.memo_cache_sentinel\")?(p=(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"build\"'}),w[11]=p):p=w[11],w[12]===Symbol.for(\"react.memo_cache_sentinel\")?(h=(0,A.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",p,\":\",\" \",(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next build\"'}),\",\"]}),w[12]=h):h=w[12],w[13]===Symbol.for(\"react.memo_cache_sentinel\")?(m=(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"start\"'}),w[13]=m):m=w[13],w[14]===Symbol.for(\"react.memo_cache_sentinel\")?(g=(0,A.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",m,\":\",\" \",(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next start\"'}),\",\"]}),w[14]=g):g=w[14],w[15]===Symbol.for(\"react.memo_cache_sentinel\")?(y=(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"lint\"'}),w[15]=y):y=w[15],w[16]===Symbol.for(\"react.memo_cache_sentinel\")?(v=(0,A.jsx)(\"div\",{className:\"dev-tools-info-code-block-container\",children:(0,A.jsxs)(\"div\",{className:\"dev-tools-info-code-block\",children:[l,(0,A.jsx)(\"pre\",{className:\"dev-tools-info-code-block-pre\",children:(0,A.jsxs)(\"code\",{children:[s,c,u,f,h,g,(0,A.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",y,\":\",\" \",(0,A.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next lint\"'})]}),(0,A.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" }\"}),(0,A.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\"}\"}),(0,A.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" \"})]})})]})}),w[16]=v):v=w[16],w[17]!==i?(b=(0,A.jsxs)(A.Fragment,{children:[i,v]}),w[17]=i,w[18]=b):b=w[18],b}function nG(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function nQ(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function nJ(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function n0(e){var t,n,r,o,a,i,l=(0,x.c)(10);l[0]!==e?(t=nJ(e,[\"routerType\"]),n=e.routerType,l[0]=e,l[1]=t,l[2]=n):(t=l[1],n=l[2]),l[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"The path\",\" \",(0,A.jsx)(\"code\",{className:\"dev-tools-info-code\",children:window.location.pathname}),\" \",'is marked as \"static\" since it will be prerendered during the build time.']}),l[3]=r):r=l[3];var s=\"pages\"===n?\"https://nextjs.org/docs/pages/building-your-application/data-fetching/incremental-static-regeneration\":\"https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration\";return l[4]!==s?(o=(0,A.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"With Static Rendering, routes are rendered at build time, or in the background after\",\" \",(0,A.jsx)(\"a\",{className:\"dev-tools-info-link\",href:s,target:\"_blank\",rel:\"noopener noreferrer\",children:\"data revalidation\"}),\".\"]}),l[4]=s,l[5]=o):o=l[5],l[6]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,A.jsx)(\"p\",{className:\"dev-tools-info-paragraph\",children:\"Static rendering is useful when a route has data that is not personalized to the user and can be known at build time, such as a static blog post or a product page.\"}),l[6]=a):a=l[6],l[7]!==t||l[8]!==o?(i=(0,A.jsxs)(\"article\",nQ(nG({className:\"dev-tools-info-article\"},t),{children:[r,o,a]})),l[7]=t,l[8]=o,l[9]=i):i=l[9],i}function n1(e){var t,n,r,o,a,i,l,s=(0,x.c)(11);return s[0]!==e?(t=nJ(e,[\"routerType\"]),n=e.routerType,s[0]=e,s[1]=t,s[2]=n):(t=s[1],n=s[2]),s[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"code\",{className:\"dev-tools-info-code\",children:window.location.pathname}),s[3]=r):r=s[3],s[4]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,A.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"The path\",\" \",r,\" \",'is marked as \"dynamic\" since it will be rendered for each user at',\" \",(0,A.jsx)(\"strong\",{children:\"request time\"}),\".\"]}),a=(0,A.jsx)(\"p\",{className:\"dev-tools-info-paragraph\",children:\"Dynamic rendering is useful when a route has data that is personalized to the user or has information that can only be known at request time, such as cookies or the URL's search params.\"}),s[4]=o,s[5]=a):(o=s[4],a=s[5]),s[6]!==n?(i=\"pages\"===n?(0,A.jsxs)(\"p\",{className:\"dev-tools-info-pagraph\",children:[\"Exporting the\",\" \",(0,A.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/pages/building-your-application/data-fetching/get-server-side-props\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"getServerSideProps\"}),\" \",\"function will opt the route into dynamic rendering. This function will be called by the server on every request.\"]}):(0,A.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"During rendering, if a\",\" \",(0,A.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#dynamic-apis\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"Dynamic API\"}),\" \",\"or a\",\" \",(0,A.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/app/api-reference/functions/fetch\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"fetch\"}),\" \",\"option of\",\" \",(0,A.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"{ cache: 'no-store' }\"}),\" \",\"is discovered, Next.js will switch to dynamically rendering the whole route.\"]}),s[6]=n,s[7]=i):i=s[7],s[8]!==t||s[9]!==i?(l=(0,A.jsxs)(\"article\",nQ(nG({className:\"dev-tools-info-article\"},t),{children:[o,a,i]})),s[8]=t,s[9]=i,s[10]=l):l=s[10],l}var n2={pages:{static:\"https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation\",dynamic:\"https://nextjs.org/docs/pages/building-your-application/rendering/server-side-rendering\"},app:{static:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#static-rendering-default\",dynamic:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#dynamic-rendering\"}};function n4(e){var t,n,r,o,a=(0,x.c)(8);return a[0]!==e?(n=nJ(e,[\"routerType\",\"isStaticRoute\"]),r=e.routerType,t=e.isStaticRoute,a[0]=e,a[1]=t,a[2]=n,a[3]=r):(t=a[1],n=a[2],r=a[3]),a[4]!==t||a[5]!==n||a[6]!==r?(o=t?(0,A.jsx)(n0,nG({routerType:r},n)):(0,A.jsx)(n1,nG({routerType:r},n)),a[4]=t,a[5]=n,a[6]=r,a[7]=o):o=a[7],o}function n5(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",fill:\"none\",children:(0,A.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"m.191 2.063.56.498 13.5 12 .561.498.997-1.121-.56-.498-1.81-1.608 2.88-3.342v-.98l-3.204-3.72C10.645.923 6.365.686 3.594 3.08L1.748 1.44 1.188.94.19 2.063ZM14.761 8l-2.442 2.836-1.65-1.466a3.001 3.001 0 0 0-4.342-3.86l-1.6-1.422a5.253 5.253 0 0 1 7.251.682L14.76 8ZM7.526 6.576l1.942 1.727a1.499 1.499 0 0 0-1.942-1.727Zm-7.845.935 1.722-2 1.137.979L1.24 8l2.782 3.23A5.25 5.25 0 0 0 9.9 12.703l.54 1.4a6.751 6.751 0 0 1-7.555-1.892L-.318 8.49v-.98Z\",clipRule:\"evenodd\"})}),t[0]=e):e=t[0],e}function n3(){var e,t,n=(0,x.c)(2);return n[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"g\",{clipPath:\"url(#light_icon_clip_path)\",children:(0,A.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"M8.75.75V0h-1.5v2h1.5V.75ZM3.26 4.32l-.53-.53-.354-.353-.53-.53 1.06-1.061.53.53.354.354.53.53-1.06 1.06Zm8.42-1.06.53-.53.353-.354.53-.53 1.061 1.06-.53.53-.354.354-.53.53-1.06-1.06ZM8 11.25a3.25 3.25 0 1 0 0-6.5 3.25 3.25 0 0 0 0 6.5Zm0 1.5a4.75 4.75 0 1 0 0-9.5 4.75 4.75 0 0 0 0 9.5Zm6-5.5h2v1.5h-2v-1.5Zm-13.25 0H0v1.5h2v-1.5H.75Zm1.62 5.32-.53.53 1.06 1.06.53-.53.354-.353.53-.53-1.06-1.061-.53.53-.354.354Zm10.2 1.06.53.53 1.06-1.06-.53-.53-.354-.354-.53-.53-1.06 1.06.53.53.353.354ZM8.75 14v2h-1.5v-2h1.5Z\",clipRule:\"evenodd\"})}),n[0]=e):e=n[0],n[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"20\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:[e,(0,A.jsx)(\"defs\",{children:(0,A.jsx)(\"clipPath\",{id:\"light_icon_clip_path\",children:(0,A.jsx)(\"path\",{fill:\"currentColor\",d:\"M0 0h16v16H0z\"})})})]}),n[1]=t):t=n[1],t}function n6(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{\"data-testid\":\"geist-icon\",height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M1.5 8.00005C1.5 5.53089 2.99198 3.40932 5.12349 2.48889C4.88136 3.19858 4.75 3.95936 4.75 4.7501C4.75 8.61609 7.88401 11.7501 11.75 11.7501C11.8995 11.7501 12.048 11.7454 12.1953 11.7361C11.0955 13.1164 9.40047 14.0001 7.5 14.0001C4.18629 14.0001 1.5 11.3138 1.5 8.00005ZM6.41706 0.577759C2.78784 1.1031 0 4.22536 0 8.00005C0 12.1422 3.35786 15.5001 7.5 15.5001C10.5798 15.5001 13.2244 13.6438 14.3792 10.9921L13.4588 9.9797C12.9218 10.155 12.3478 10.2501 11.75 10.2501C8.71243 10.2501 6.25 7.78767 6.25 4.7501C6.25 3.63431 6.58146 2.59823 7.15111 1.73217L6.41706 0.577759ZM13.25 1V1.75V2.75L14.25 2.75H15V4.25H14.25H13.25V5.25V6H11.75V5.25V4.25H10.75L10 4.25V2.75H10.75L11.75 2.75V1.75V1H13.25Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function n9(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{width:\"16\",height:\"16\",strokeLinejoin:\"round\",children:(0,A.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v8.5a1 1 0 0 1-1 1H8.75v3h1.75V16h-5v-1.5h1.75v-3H1a1 1 0 0 1-1-1V2Zm1.5.5V10h13V2.5h-13Z\",clipRule:\"evenodd\"})}),t[0]=e):e=t[0],e}function n8(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function n7(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||rt(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function re(e){return function(e){if(Array.isArray(e))return n8(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||rt(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rt(e,t){if(e){if(\"string\"==typeof e)return n8(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return n8(e,t)}}function rn(){var e,t,n=(e=[\"\\n .shortcut-recorder {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n position: relative;\\n font-family: var(--font-stack-sans);\\n\\n .shortcut-recorder-button {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n background: transparent;\\n border: 1px dashed var(--color-gray-500);\\n border-radius: var(--rounded-lg);\\n padding: 6px 8px;\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n transition: border-color 150ms var(--timing-swift);\\n\\n &[data-has-shortcut='true'] {\\n border: 1px solid var(--color-gray-alpha-400);\\n\\n &:hover {\\n border-color: var(--color-gray-500);\\n }\\n }\\n\\n &:hover {\\n border-color: var(--color-gray-600);\\n }\\n\\n &::placeholder {\\n color: var(--color-gray-900);\\n }\\n\\n &[data-pristine='false']::placeholder {\\n color: transparent;\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n }\\n\\n kbd {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-family: var(--font-stack-sans);\\n background: var(--color-gray-200);\\n min-width: 20px;\\n height: 20px;\\n font-size: 14px;\\n border-radius: 4px;\\n color: var(--color-gray-1000);\\n\\n &[data-symbol='false'] {\\n padding: 0 4px;\\n }\\n }\\n\\n .shortcut-recorder-clear-button {\\n cursor: pointer;\\n color: var(--color-gray-1000);\\n width: 20px;\\n height: 20px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 4px;\\n transition: background 150ms var(--timing-swift);\\n\\n &:hover {\\n background: var(--color-gray-300);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n svg {\\n width: 14px;\\n height: 14px;\\n }\\n }\\n }\\n\\n .shortcut-recorder-keys {\\n pointer-events: none;\\n user-select: none;\\n display: flex;\\n align-items: center;\\n gap: 2px;\\n }\\n\\n .shortcut-recorder-tooltip {\\n --gap: 8px;\\n --background: var(--color-gray-1000);\\n background: var(--background);\\n color: var(--color-background-100);\\n font-size: var(--size-14);\\n padding: 4px 8px;\\n border-radius: 8px;\\n position: absolute;\\n bottom: calc(100% + var(--gap));\\n text-align: center;\\n opacity: 0;\\n scale: 0.96;\\n white-space: nowrap;\\n user-select: none;\\n transition:\\n opacity 150ms var(--timing-swift),\\n scale 150ms var(--timing-swift);\\n\\n &[data-show='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n svg {\\n position: absolute;\\n transform: translateX(-50%);\\n bottom: -6px;\\n left: 50%;\\n }\\n\\n .shortcut-recorder-status {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n }\\n\\n .shortcut-recorder-status-icon {\\n width: 7px;\\n height: 7px;\\n border-radius: 50%;\\n flex-shrink: 0;\\n background: var(--color-red-700);\\n\\n &[data-success='true'] {\\n background: var(--color-green-700);\\n }\\n }\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return rn=function(){return n},n}var rr=[\"Meta\",\"Control\",\"Ctrl\",\"Alt\",\"Option\",\"Shift\"];function ro(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h=(0,x.c)(33),m=e.value,g=e.onChange,y=n7((0,w.useState)(!0),2),v=y[0],b=y[1],C=n7((0,w.useState)(!1),2),_=C[0],k=C[1];h[0]!==m?(t=null!=m?m:[],h[0]=m,h[1]=t):t=h[1];var E=n7((0,w.useState)(t),2),j=E[0],S=E[1],O=n7((0,w.useState)(!1),2),B=O[0],P=O[1],I=(0,w.useRef)(null),T=(0,w.useRef)(null),z=!!m||j.length>0;h[2]!==g||h[3]!==v||h[4]!==_?(n=function(e){if(e.target===T.current&&\"Tab\"!==e.key){I.current&&clearTimeout(I.current),_||k(!0),v&&(S([]),b(!1));var t=function(e){I.current=window.setTimeout(function(){P(!0),g(e.join(\"+\")),I.current=window.setTimeout(function(){k(!1)},1e3)},180)};e.preventDefault(),e.stopPropagation(),S(function(n){if(n.includes(e.code)||n.includes(e.key))return n;if(!rr.includes(e.key)){var r=n.findIndex(rl);if(-1!==r){var o=re(n);return o[r]=e.code,t(o),o}var a=re(n).concat([e.code]);return t(a),a}for(var i=re(n),l=rr.indexOf(e.key),s=0,c=0;c<i.length;c++)if(rr.includes(i[c])){if(l<rr.indexOf(i[c])){s=c;break}s=c+1}else break;return i.splice(s,0,e.key),t(i),i})}},h[2]=g,h[3]=v,h[4]=_,h[5]=n):n=h[5];var D=n;h[6]!==g?(r=function(){var e;null==(e=T.current)||e.focus(),S([]),P(!1),setTimeout(function(){k(!0)}),g(null)},h[6]=g,h[7]=r):r=h[7];var L=r;h[8]===Symbol.for(\"react.memo_cache_sentinel\")?(o=function(){P(!1),k(!1),b(!0)},h[8]=o):o=h[8];var N=o;h[9]===Symbol.for(\"react.memo_cache_sentinel\")?(a=function(){var e;I.current&&clearTimeout(I.current),k(!0),null==(e=T.current)||e.focus()},h[9]=a):a=h[9];var R=a;h[10]!==z||h[11]!==j?(i=z?(0,A.jsx)(\"div\",{className:\"shortcut-recorder-keys\",children:j.map(ri)}):\"Record Shortcut\",h[10]=z,h[11]=j,h[12]=i):i=h[12],h[13]!==L||h[14]!==z?(l=z&&(0,A.jsx)(\"div\",{className:\"shortcut-recorder-clear-button\",role:\"button\",onClick:L,onFocus:ra,onKeyDown:function(e){(\"Enter\"===e.key||\" \"===e.key)&&(L(),e.stopPropagation())},\"aria-label\":\"Clear shortcut\",tabIndex:0,children:(0,A.jsx)(rd,{})}),h[13]=L,h[14]=z,h[15]=l):l=h[15],h[16]!==D||h[17]!==z||h[18]!==i||h[19]!==l?(s=(0,A.jsxs)(\"button\",{className:\"shortcut-recorder-button\",ref:T,onClick:R,onFocus:R,onBlur:N,onKeyDown:D,\"data-has-shortcut\":z,\"data-shortcut-recorder\":\"true\",children:[i,l]}),h[16]=D,h[17]=z,h[18]=i,h[19]=l,h[20]=s):s=h[20],h[21]!==B?(c=(0,A.jsx)(\"div\",{className:\"shortcut-recorder-status-icon\",\"data-success\":B}),h[21]=B,h[22]=c):c=h[22];var M=B?\"Shortcut set\":\"Recording\";return h[23]!==M||h[24]!==c?(u=(0,A.jsxs)(\"div\",{className:\"shortcut-recorder-status\",children:[c,M]}),h[23]=M,h[24]=c,h[25]=u):u=h[25],h[26]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,A.jsx)(rs,{}),h[26]=d):d=h[26],h[27]!==_||h[28]!==u?(f=(0,A.jsxs)(\"div\",{className:\"shortcut-recorder-tooltip\",\"data-show\":_,children:[u,d]}),h[27]=_,h[28]=u,h[29]=f):f=h[29],h[30]!==f||h[31]!==s?(p=(0,A.jsxs)(\"div\",{className:\"shortcut-recorder\",children:[s,f]}),h[30]=f,h[31]=s,h[32]=p):p=h[32],p}function ra(e){return e.stopPropagation()}function ri(e){return(0,A.jsx)(rc,{children:e},e)}function rl(e){return!rr.includes(e)}function rs(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{fill:\"none\",height:\"6\",viewBox:\"0 0 14 6\",width:\"14\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,A.jsx)(\"path\",{d:\"M13.8284 0H0.17157C0.702003 0 1.21071 0.210714 1.58578 0.585787L5.58578 4.58579C6.36683 5.36684 7.63316 5.36683 8.41421 4.58579L12.4142 0.585786C12.7893 0.210714 13.298 0 13.8284 0Z\",fill:\"var(--background)\"})}),t[0]=e):e=t[0],e}function rc(e){var t,n,r,o,a=(0,x.c)(9),i=e.children;a[0]!==i?(t=function(e){switch(e){case\"Meta\":return(0,A.jsx)(ru,{});case\"Alt\":case\"Option\":return\"⌥\";case\"Control\":case\"Ctrl\":return\"Ctrl\";case\"Shift\":return\"⇧\";case\"Enter\":return\"⏎\";case\"Escape\":case\"Esc\":return\"Esc\";case\" \":case\"Space\":case\"Spacebar\":return\"Space\";case\"ArrowUp\":return\"↑\";case\"ArrowDown\":return\"↓\";case\"ArrowLeft\":return\"←\";case\"ArrowRight\":return\"→\";case\"Tab\":return\"Tab\";case\"Backspace\":return\"⌫\";case\"Delete\":return\"⌦\";default:if(1===i.length)return i.toUpperCase();return i}},a[0]=i,a[1]=t):t=a[1];var l=t;if(a[2]!==i||a[3]!==l){var s=l(i);n=\"string\"==typeof s&&1===s.length,r=function(e){if(\"string\"!=typeof e)return e;var t={Minus:\"-\",Equal:\"=\",BracketLeft:\"[\",BracketRight:\"]\",Backslash:\"\\\\\",Semicolon:\";\",Quote:\"'\",Comma:\",\",Period:\".\",Backquote:\"`\",Space:\" \",Slash:\"/\",IntlBackslash:\"\\\\\"};return t[e]?t[e]:/^Key([A-Z])$/.test(e)?e.replace(/^Key/,\"\"):/^Digit([0-9])$/.test(e)?e.replace(/^Digit/,\"\"):/^Numpad([0-9])$/.test(e)?e.replace(/^Numpad/,\"\"):\"NumpadAdd\"===e?\"+\":\"NumpadSubtract\"===e?\"-\":\"NumpadMultiply\"===e?\"*\":\"NumpadDivide\"===e?\"/\":\"NumpadDecimal\"===e?\".\":\"NumpadEnter\"===e?\"Enter\":e}(s),a[2]=i,a[3]=l,a[4]=n,a[5]=r}else n=a[4],r=a[5];return a[6]!==n||a[7]!==r?(o=(0,A.jsx)(\"kbd\",{\"data-symbol\":n,children:r}),a[6]=n,a[7]=r,a[8]=o):o=a[8],o}function ru(){var e,t,n,r,o,a=(0,x.c)(6),i=n7((0,w.useState)(\"\\xa0\"),2),l=i[0],s=i[1];a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=rp(/^Mac/)||rp(/^iPhone/)||rp(/^iPad/)||rp(/^Mac/)&&navigator.maxTouchPoints>1,a[0]=e):e=a[0];var c=e;return a[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=function(){!0===c&&s(\"⌘\"),!1===c&&s(\"Ctrl\")},n=[c],a[1]=t,a[2]=n):(t=a[1],n=a[2]),(0,w.useEffect)(t,n),a[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r={minWidth:\"1em\",display:\"inline-block\"},a[3]=r):r=a[3],a[4]!==l?(o=(0,A.jsx)(\"span\",{style:r,children:l}),a[4]=l,a[5]=o):o=a[5],o}function rd(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}var rf=eu(rn());function rp(e){return\"undefined\"!=typeof window&&null!=window.navigator?e.test(window.navigator.platform):void 0}function rh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rm(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}var rg=__nested_webpack_require_378273__(\"./dist/compiled/zod/index.cjs\"),ry=rg.z.object({theme:rg.z.enum([\"light\",\"dark\",\"system\"]).optional(),disableDevIndicator:rg.z.boolean().optional(),devToolsPosition:rg.z.enum([\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"]).optional(),devToolsPanelPosition:rg.z.record(rg.z.string(),rg.z.enum([\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"])).optional(),devToolsPanelSize:rg.z.record(rg.z.string(),rg.z.object({width:rg.z.number(),height:rg.z.number()})).optional(),scale:rg.z.number().optional(),hideShortcut:rg.z.string().nullable().optional()});function rv(e){return e&&\"undefined\"!=typeof Symbol&&e.constructor===Symbol?\"symbol\":typeof e}var rb={},rA=null;function rx(){if(0!==Object.keys(rb).length){var e=JSON.stringify(rb);rb={},fetch(\"/__nextjs_devtools_config\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:e,keepalive:!0}).catch(function(t){console.warn(\"[Next.js DevTools] Failed to save config:\",{data:e,error:t})})}}function rw(e){var t=ry.safeParse(e);if(!t.success)return void console.warn(\"[Next.js DevTools] Invalid config patch:\",t.error.message);rb=function e(t,n){if(!n||(void 0===n?\"undefined\":rv(n))!==\"object\"||Array.isArray(n)||!t||(void 0===t?\"undefined\":rv(t))!==\"object\"||Array.isArray(t))return n;var r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},t);for(var o in n){var a=n[o],i=t[o];void 0!==a&&(a&&(void 0===a?\"undefined\":rv(a))===\"object\"&&!Array.isArray(a)&&i&&(void 0===i?\"undefined\":rv(i))===\"object\"&&!Array.isArray(i)?r[o]=e(i,a):r[o]=a)}return r}(rb,e),rA&&clearTimeout(rA),rA=setTimeout(rx,120)}function rC(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r_(){var e,t,n=(e=[\"\\n .preferences-container {\\n width: 100%;\\n }\\n\\n @media (min-width: 576px) {\\n .preferences-container {\\n width: 480px;\\n }\\n }\\n\\n .preference-section:first-child {\\n padding-top: 0;\\n }\\n\\n .preference-section {\\n padding: 12px 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 24px;\\n }\\n\\n .preference-section:last-child {\\n border-bottom: none;\\n }\\n\\n .preference-header {\\n margin-bottom: 0;\\n flex: 1;\\n }\\n\\n .preference-header label {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n margin: 0;\\n }\\n\\n .preference-description {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n margin: 0;\\n }\\n\\n .select-button,\\n .action-button {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-lg);\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n padding: 6px 8px;\\n transition: border-color 150ms var(--timing-swift);\\n\\n &:hover {\\n border-color: var(--color-gray-500);\\n }\\n\\n svg {\\n width: 14px;\\n height: 14px;\\n overflow: visible;\\n }\\n }\\n\\n .select-button {\\n &:focus-within {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n select {\\n all: unset;\\n }\\n\\n option {\\n color: var(--color-gray-1000);\\n background: var(--color-background-100);\\n }\\n }\\n\\n .preference-section button:disabled {\\n opacity: 0.6;\\n cursor: not-allowed;\\n }\\n\\n :global(.icon) {\\n width: 18px;\\n height: 18px;\\n color: #666;\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return r_=function(){return n},n}function rk(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,b,C,_,k,E,j,S,O,P,I,T,z,D,L,N,R,M,Z,U,F,q,H,V,$,W,Y=(0,x.c)(65),K=e.theme,X=e.hide,G=e.hideShortcut,Q=e.setHideShortcut,J=e.scale,ee=e.setPosition,et=e.setScale,en=e.position,er=(o=(t=(0,w.useState)(!1),n=2,r=function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return rh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rh(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[0],a=r[1],{restartServer:function(e){var t,n=e.invalidatePersistentCache;return(t=function(){var e,t,r,o,i,l;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(n)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:a(!0),e=n?\"/__nextjs_restart_dev?invalidatePersistentCache=1\":\"/__nextjs_restart_dev\",t=!1,s.label=1;case 1:return s.trys.push([1,11,12,13]),[4,fetch(\"/__nextjs_server_status\").then(function(e){return e.json()}).then(function(e){return e.executionId}).catch(function(e){return console.log(\"[Next.js DevTools] Failed to fetch server status while restarting dev server.\",e),null})];case 2:if(!(r=s.sent()))return console.log(\"[Next.js DevTools] Failed to get the current server execution ID while restarting dev server.\"),[2];return[4,fetch(e,{method:\"POST\"})];case 3:if(!(o=s.sent()).ok)return console.log(\"[Next.js DevTools] Failed to fetch restart server endpoint. Status:\",o.status),[2];i=0,s.label=4;case 4:if(!(i<10))return[3,10];return[4,new Promise(function(e){return setTimeout(e,1e3)})];case 5:s.sent(),s.label=6;case 6:return s.trys.push([6,8,,9]),[4,fetch(\"/__nextjs_server_status\").then(function(e){return e.json()}).then(function(e){return e.executionId})];case 7:if(l=s.sent(),r!==l)return t=!0,window.location.reload(),[2];return[3,9];case 8:return s.sent(),[3,9];case 9:return i++,[3,4];case 10:return console.log(\"[Next.js DevTools] Failed to restart server. Exhausted all polling attempts.\"),[2];case 11:return console.log(\"[Next.js DevTools] Failed to restart server.\",s.sent()),[2];case 12:return t||a(!1),[7];case 13:return[2]}})},function(){var e=this,n=arguments;return new Promise(function(r,o){var a=t.apply(e,n);function i(e){rm(a,r,o,i,l,\"next\",e)}function l(e){rm(a,r,o,i,l,\"throw\",e)}i(void 0)})})()},isPending:o}),eo=er.restartServer,ea=er.isPending,ei=dl().shadowRoot;Y[0]!==ei.host?(i=function(e){var t=ei.host;if(\"system\"===e.target.value){t.classList.remove(\"dark\"),t.classList.remove(\"light\"),rw({theme:\"system\"});return}\"dark\"===e.target.value?(t.classList.add(\"dark\"),t.classList.remove(\"light\"),rw({theme:\"dark\"})):(t.classList.remove(\"dark\"),t.classList.add(\"light\"),rw({theme:\"light\"}))},Y[0]=ei.host,Y[1]=i):i=Y[1];var el=i;Y[2]!==ee?(l=function(e){ee(e.target.value),rw({devToolsPosition:e.target.value})},Y[2]=ee,Y[3]=l):l=Y[3];var es=l;Y[4]!==et?(s=function(e){var t=Number(e.target.value);et(t),rw({scale:t})},Y[4]=et,Y[5]=s):s=Y[5];var ec=s;return Y[6]===Symbol.for(\"react.memo_cache_sentinel\")?(c=(0,A.jsx)(\"h2\",{className:\"dev-tools-info-section-title\",children:\"General\"}),Y[6]=c):c=Y[6],Y[7]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,A.jsxs)(\"div\",{className:\"preference-header\",children:[(0,A.jsx)(\"label\",{htmlFor:\"theme\",children:\"Theme\"}),(0,A.jsx)(\"p\",{className:\"preference-description\",children:\"Select your theme preference.\"})]}),Y[7]=u):u=Y[7],Y[8]!==K?(d=(0,A.jsx)(rS,{theme:K}),Y[8]=K,Y[9]=d):d=Y[9],Y[10]===Symbol.for(\"react.memo_cache_sentinel\")?(p=(0,A.jsx)(\"option\",{value:\"system\",children:\"System\"}),h=(0,A.jsx)(\"option\",{value:\"light\",children:\"Light\"}),f=(0,A.jsx)(\"option\",{value:\"dark\",children:\"Dark\"}),Y[10]=f,Y[11]=p,Y[12]=h):(f=Y[10],p=Y[11],h=Y[12]),Y[13]!==el||Y[14]!==d||Y[15]!==K?(m=(0,A.jsxs)(\"div\",{className:\"preference-section\",children:[u,(0,A.jsxs)(rj,{id:\"theme\",name:\"theme\",prefix:d,value:K,onChange:el,children:[p,h,f]})]}),Y[13]=el,Y[14]=d,Y[15]=K,Y[16]=m):m=Y[16],Y[17]===Symbol.for(\"react.memo_cache_sentinel\")?(g=(0,A.jsxs)(\"div\",{className:\"preference-header\",children:[(0,A.jsx)(\"label\",{htmlFor:\"position\",children:\"Position\"}),(0,A.jsx)(\"p\",{className:\"preference-description\",children:\"Adjust the placement of your dev tools.\"})]}),Y[17]=g):g=Y[17],Y[18]===Symbol.for(\"react.memo_cache_sentinel\")?(y=(0,A.jsx)(\"option\",{value:\"bottom-left\",children:\"Bottom Left\"}),v=(0,A.jsx)(\"option\",{value:\"bottom-right\",children:\"Bottom Right\"}),b=(0,A.jsx)(\"option\",{value:\"top-left\",children:\"Top Left\"}),C=(0,A.jsx)(\"option\",{value:\"top-right\",children:\"Top Right\"}),Y[18]=y,Y[19]=v,Y[20]=b,Y[21]=C):(y=Y[18],v=Y[19],b=Y[20],C=Y[21]),Y[22]!==es||Y[23]!==en?(_=(0,A.jsxs)(\"div\",{className:\"preference-section\",children:[g,(0,A.jsxs)(rj,{id:\"position\",name:\"position\",value:en,onChange:es,children:[y,v,b,C]})]}),Y[22]=es,Y[23]=en,Y[24]=_):_=Y[24],Y[25]===Symbol.for(\"react.memo_cache_sentinel\")?(k=(0,A.jsxs)(\"div\",{className:\"preference-header\",children:[(0,A.jsx)(\"label\",{htmlFor:\"size\",children:\"Size\"}),(0,A.jsx)(\"p\",{className:\"preference-description\",children:\"Adjust the size of your dev tools.\"})]}),Y[25]=k):k=Y[25],Y[26]===Symbol.for(\"react.memo_cache_sentinel\")?(E=Object.entries(B).map(rE),Y[26]=E):E=Y[26],Y[27]!==ec||Y[28]!==J?(j=(0,A.jsxs)(\"div\",{className:\"preference-section\",children:[k,(0,A.jsx)(rj,{id:\"size\",name:\"size\",value:J,onChange:ec,children:E})]}),Y[27]=ec,Y[28]=J,Y[29]=j):j=Y[29],Y[30]===Symbol.for(\"react.memo_cache_sentinel\")?(S=(0,A.jsxs)(\"div\",{className:\"preference-header\",children:[(0,A.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools for this session\"}),(0,A.jsx)(\"p\",{className:\"preference-description\",children:\"Hide Dev Tools until you restart your dev server, or 1 day.\"})]}),Y[30]=S):S=Y[30],Y[31]===Symbol.for(\"react.memo_cache_sentinel\")?(O=(0,A.jsx)(n5,{}),P=(0,A.jsx)(\"span\",{children:\"Hide\"}),Y[31]=O,Y[32]=P):(O=Y[31],P=Y[32]),Y[33]!==X?(I=(0,A.jsxs)(\"div\",{className:\"preference-section\",children:[S,(0,A.jsx)(\"div\",{className:\"preference-control\",children:(0,A.jsxs)(\"button\",{\"aria-describedby\":\"hide-dev-tools\",name:\"hide-dev-tools\",\"data-hide-dev-tools\":!0,className:\"action-button\",onClick:X,children:[O,P]})})]}),Y[33]=X,Y[34]=I):I=Y[34],Y[35]===Symbol.for(\"react.memo_cache_sentinel\")?(T=(0,A.jsxs)(\"div\",{className:\"preference-header\",children:[(0,A.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools shortcut\"}),(0,A.jsx)(\"p\",{className:\"preference-description\",children:\"Set a custom keyboard shortcut to toggle visibility.\"})]}),Y[35]=T):T=Y[35],Y[36]!==G?(z=null!=(D=null==G?void 0:G.split(\"+\"))?D:null,Y[36]=G,Y[37]=z):z=Y[37],Y[38]!==Q||Y[39]!==z?(L=(0,A.jsxs)(\"div\",{className:\"preference-section\",children:[T,(0,A.jsx)(\"div\",{className:\"preference-control\",children:(0,A.jsx)(ro,{value:z,onChange:Q})})]}),Y[38]=Q,Y[39]=z,Y[40]=L):L=Y[40],Y[41]===Symbol.for(\"react.memo_cache_sentinel\")?(N=(0,A.jsx)(\"label\",{children:\"Disable Dev Tools for this project\"}),Y[41]=N):N=Y[41],Y[42]===Symbol.for(\"react.memo_cache_sentinel\")?(R=(0,A.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"devIndicators: false\"}),Y[42]=R):R=Y[42],Y[43]===Symbol.for(\"react.memo_cache_sentinel\")?(M=(0,A.jsx)(\"div\",{className:\"preference-section\",children:(0,A.jsxs)(\"div\",{className:\"preference-header\",children:[N,(0,A.jsxs)(\"p\",{className:\"preference-description\",children:[\"To disable this UI completely, set\",\" \",R,\" \",\"in your \",(0,A.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"next.config\"}),\" \",\"file.\"]})]})}),Y[43]=M):M=Y[43],Y[44]!==m||Y[45]!==_||Y[46]!==j||Y[47]!==I||Y[48]!==L?(Z=(0,A.jsxs)(\"div\",{className:\"preferences-container\",children:[m,_,j,I,L,M]}),Y[44]=m,Y[45]=_,Y[46]=j,Y[47]=I,Y[48]=L,Y[49]=Z):Z=Y[49],Y[50]===Symbol.for(\"react.memo_cache_sentinel\")?(U=(0,A.jsx)(\"h2\",{className:\"dev-tools-info-section-title\",children:\"Development Server\"}),Y[50]=U):U=Y[50],Y[51]===Symbol.for(\"react.memo_cache_sentinel\")?(F=(0,A.jsxs)(\"div\",{className:\"preference-header\",children:[(0,A.jsx)(\"label\",{id:\"restart-dev-server\",children:\"Restart Dev Server\"}),(0,A.jsx)(\"p\",{className:\"preference-description\",children:\"Restarts the development server without needing to leave the browser.\"})]}),Y[51]=F):F=Y[51],Y[52]!==eo?(q=function(){return eo({invalidatePersistentCache:!1})},Y[52]=eo,Y[53]=q):q=Y[53],Y[54]===Symbol.for(\"react.memo_cache_sentinel\")?(H=(0,A.jsx)(\"span\",{children:\"Restart\"}),Y[54]=H):H=Y[54],Y[55]!==ea||Y[56]!==q?(V=(0,A.jsx)(\"div\",{className:\"preferences-container\",children:(0,A.jsxs)(\"div\",{className:\"preference-section\",children:[F,(0,A.jsx)(\"div\",{className:\"preference-control\",children:(0,A.jsx)(\"button\",{\"aria-describedby\":\"restart-dev-server\",title:\"Restarts the development server without needing to leave the browser.\",name:\"restart-dev-server\",\"data-restart-dev-server\":!0,className:\"action-button\",onClick:q,disabled:ea,children:H})})]})}),Y[55]=ea,Y[56]=q,Y[57]=V):V=Y[57],Y[58]!==ea||Y[59]!==eo?($= true?(0,A.jsx)(\"div\",{className:\"preferences-container\",children:(0,A.jsxs)(\"div\",{className:\"preference-section\",children:[(0,A.jsxs)(\"div\",{className:\"preference-header\",children:[(0,A.jsx)(\"label\",{id:\"reset-bundler-cache\",children:\"Reset Bundler Cache\"}),(0,A.jsx)(\"p\",{className:\"preference-description\",children:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\"})]}),(0,A.jsx)(\"div\",{className:\"preference-control\",children:(0,A.jsx)(\"button\",{\"aria-describedby\":\"reset-bundler-cache\",title:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\",name:\"reset-bundler-cache\",\"data-reset-bundler-cache\":!0,className:\"action-button\",onClick:function(){return eo({invalidatePersistentCache:!0})},disabled:ea,children:(0,A.jsx)(\"span\",{children:\"Reset Cache\"})})})]})}):0,Y[58]=ea,Y[59]=eo,Y[60]=$):$=Y[60],Y[61]!==Z||Y[62]!==V||Y[63]!==$?(W=(0,A.jsxs)(A.Fragment,{children:[c,Z,U,V,$]}),Y[61]=Z,Y[62]=V,Y[63]=$,Y[64]=W):W=Y[64],W}function rE(e){var t,n,r=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return rC(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rC(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),o=r[0],a=r[1];return(0,A.jsx)(\"option\",{value:a,children:o},o)}function rj(e){var t,n,r,o,a,i,l,s,c=(0,x.c)(11);return(c[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"prefix\"]),r=e.children,o=e.prefix,c[0]=e,c[1]=r,c[2]=o,c[3]=a):(r=c[1],o=c[2],a=c[3]),c[4]!==r||c[5]!==a)?(i=(0,A.jsx)(\"select\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},a),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),c[4]=r,c[5]=a,c[6]=i):i=c[6],c[7]===Symbol.for(\"react.memo_cache_sentinel\")?(l=(0,A.jsx)(rB,{}),c[7]=l):l=c[7],c[8]!==o||c[9]!==i?(s=(0,A.jsxs)(\"div\",{className:\"select-button\",children:[o,i,l]}),c[8]=o,c[9]=i,c[10]=s):s=c[10],s}function rS(e){var t,n,r,o=(0,x.c)(3);switch(e.theme){case\"system\":return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(n9,{}),o[0]=t):t=o[0],t;case\"dark\":return o[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,A.jsx)(n6,{}),o[1]=n):n=o[1],n;case\"light\":return o[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(n3,{}),o[2]=r):r=o[2],r;default:return null}}var rO=eu(r_());function rB(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",\"aria-hidden\":!0,children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function rP(){var e,t,n=(e=[\"\\n [data-nextjs-issue-feedback-button-group] {\\n display: flex;\\n align-items: center;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-full);\\n background: var(--color-background-100);\\n box-shadow: var(--shadow-small);\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button {\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button:first-child {\\n padding: 4px 3px 4px 5px;\\n border-radius: var(--rounded-full) 0 0 var(--rounded-full);\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button:last-child {\\n padding: 4px 5px 4px 3px;\\n border-radius: 0 var(--rounded-full) var(--rounded-full) 0;\\n }\\n\\n [data-nextjs-issue-feedback-separator] {\\n width: 1px;\\n height: 100%;\\n background: var(--color-gray-400);\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return rP=function(){return n},n}var rI=eu(rP());function rT(){var e,t,n=(e=[\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return rT=function(){return n},n}function rz(){return(0,A.jsx)(\"style\",{children:eu(rT(),\"\\n .nextjs-data-copy-button {\\n color: inherit;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n .nextjs-data-copy-button:disabled {\\n background-color: var(--color-gray-100);\\n cursor: not-allowed;\\n }\\n .nextjs-data-copy-button--initial:hover:not(:disabled) {\\n cursor: pointer;\\n }\\n .nextjs-data-copy-button--error:not(:disabled),\\n .nextjs-data-copy-button--error:hover:not(:disabled) {\\n color: var(--color-ansi-red);\\n }\\n .nextjs-data-copy-button--success:not(:disabled) {\\n color: var(--color-ansi-green);\\n }\\n\",'\\n [data-nextjs-call-stack-frame-no-source] {\\n padding: 6px 8px;\\n margin-bottom: 4px;\\n\\n border-radius: var(--rounded-lg);\\n }\\n\\n [data-nextjs-call-stack-frame-no-source]:last-child {\\n margin-bottom: 0;\\n }\\n\\n [data-nextjs-call-stack-frame-ignored=\"true\"] {\\n opacity: 0.6;\\n }\\n\\n [data-nextjs-call-stack-frame] {\\n user-select: text;\\n display: block;\\n box-sizing: border-box;\\n\\n user-select: text;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n\\n padding: 6px 8px;\\n\\n border-radius: var(--rounded-lg);\\n }\\n\\n .call-stack-frame-method-name {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n\\n margin-bottom: 4px;\\n font-family: var(--font-stack-monospace);\\n\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n\\n svg {\\n width: var(--size-16px);\\n height: var(--size-16px);\\n }\\n }\\n\\n .open-in-editor-button, .source-mapping-error-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: var(--rounded-full);\\n padding: 4px;\\n color: var(--color-font);\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -2px;\\n }\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n .call-stack-frame-file-source {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n }\\n',nk,\"\\n [data-nextjs-environment-name-label] {\\n padding: 2px 6px;\\n margin: 0;\\n border-radius: var(--rounded-md-2);\\n background: var(--color-gray-100);\\n font-weight: 600;\\n font-size: var(--size-12);\\n color: var(--color-gray-900);\\n font-family: var(--font-stack-monospace);\\n line-height: var(--size-20);\\n }\\n\",nh,eQ,nf,tP,\"\\n .error-overlay-bottom-stack-layer {\\n width: 100%;\\n height: var(--stack-layer-height);\\n position: relative;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-xl);\\n background: var(--color-background-200);\\n transition:\\n translate 350ms var(--timing-swift),\\n box-shadow 350ms var(--timing-swift);\\n }\\n\\n .error-overlay-bottom-stack-layer-1 {\\n width: calc(100% - var(--size-24));\\n }\\n\\n .error-overlay-bottom-stack-layer-2 {\\n width: calc(100% - var(--size-48));\\n z-index: -1;\\n }\\n\\n .error-overlay-bottom-stack {\\n width: 100%;\\n position: absolute;\\n bottom: -1px;\\n height: 0;\\n overflow: visible;\\n }\\n\\n .error-overlay-bottom-stack-stack {\\n --stack-layer-height: 44px;\\n --stack-layer-height-half: calc(var(--stack-layer-height) / 2);\\n --stack-layer-trim: 13px;\\n --shadow: 0px 0.925px 0.925px 0px rgba(0, 0, 0, 0.02),\\n 0px 3.7px 7.4px -3.7px rgba(0, 0, 0, 0.04),\\n 0px 14.8px 22.2px -7.4px rgba(0, 0, 0, 0.06);\\n\\n display: grid;\\n place-items: center center;\\n width: 100%;\\n position: fixed;\\n overflow: hidden;\\n z-index: -1;\\n max-width: var(--next-dialog-max-width);\\n\\n .error-overlay-bottom-stack-layer {\\n grid-area: 1 / 1;\\n /* Hide */\\n translate: 0 calc(var(--stack-layer-height) * -1);\\n }\\n\\n &[data-stack-count='1'],\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-1 {\\n translate: 0\\n calc(var(--stack-layer-height-half) * -1 - var(--stack-layer-trim));\\n }\\n }\\n\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-2 {\\n translate: 0 calc(var(--stack-layer-trim) * -1 * 2);\\n }\\n }\\n\\n /* Only the bottom stack should have the shadow */\\n &[data-stack-count='1'] .error-overlay-bottom-stack-layer-1 {\\n box-shadow: var(--shadow);\\n }\\n\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-2 {\\n box-shadow: var(--shadow);\\n }\\n }\\n }\\n\",\"\\n .error-overlay-pagination {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 8px;\\n width: fit-content;\\n }\\n\\n .error-overlay-pagination-count {\\n color: var(--color-gray-900);\\n text-align: center;\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-16);\\n font-variant-numeric: tabular-nums;\\n }\\n\\n .error-overlay-pagination-button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-24);\\n height: var(--size-24);\\n background: var(--color-gray-300);\\n flex-shrink: 0;\\n\\n border: none;\\n border-radius: var(--rounded-full);\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n &:not(:disabled):active {\\n background: var(--color-gray-500);\\n }\\n\\n &:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n }\\n }\\n\\n .error-overlay-pagination-button-icon {\\n color: var(--color-gray-1000);\\n }\\n\",'\\n [data-nextjs-codeframe] {\\n --code-frame-padding: 12px;\\n --code-frame-line-height: var(--size-16);\\n background-color: var(--color-background-200);\\n color: var(--color-gray-1000);\\n text-overflow: ellipsis;\\n border: 1px solid var(--color-gray-400);\\n border-radius: 8px;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n line-height: var(--code-frame-line-height);\\n margin: 8px 0;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n\\n .code-frame-link,\\n .code-frame-pre {\\n padding: var(--code-frame-padding);\\n }\\n\\n .code-frame-link svg {\\n flex-shrink: 0;\\n }\\n\\n .code-frame-lines {\\n min-width: max-content;\\n }\\n\\n .code-frame-link [data-text] {\\n text-align: left;\\n margin: auto 6px;\\n }\\n\\n .code-frame-header {\\n width: 100%;\\n transition: background 100ms ease-out;\\n border-radius: 8px 8px 0 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n }\\n\\n [data-with-open-in-editor-link-source-file] {\\n padding: 4px;\\n margin: -4px 0 -4px auto;\\n border-radius: var(--rounded-full);\\n margin-left: auto;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -2px;\\n }\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n\\n [data-nextjs-codeframe] *:not(a) {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe-line][data-nextjs-codeframe-line--errored=\"true\"] {\\n position: relative;\\n isolation: isolate;\\n\\n > span { \\n position: relative;\\n z-index: 1;\\n }\\n\\n &::after {\\n content: \"\";\\n width: calc(100% + var(--code-frame-padding) * 2);\\n height: var(--code-frame-line-height);\\n left: calc(-1 * var(--code-frame-padding));\\n background: var(--color-red-200);\\n box-shadow: 2px 0 0 0 var(--color-red-900) inset;\\n position: absolute;\\n }\\n }\\n\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n }\\n\\n .code-frame-link {\\n display: flex;\\n margin: 0;\\n outline: 0;\\n }\\n .code-frame-link [data-icon=\\'right\\'] {\\n margin-left: auto;\\n }\\n\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\\n [data-nextjs-codeframe] svg {\\n color: var(--color-gray-900);\\n }\\n',\"\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-terminal] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-terminal] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-terminal] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\",\"\\n [data-with-open-in-editor-link] svg {\\n width: auto;\\n height: var(--size-14);\\n margin-left: 8px;\\n }\\n [data-with-open-in-editor-link] {\\n cursor: pointer;\\n }\\n [data-with-open-in-editor-link]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-with-open-in-editor-link-import-trace] {\\n margin-left: 16px;\\n }\\n\",\"\",\"\\n .nextjs-error-with-static {\\n bottom: calc(16px * 4.5);\\n }\\n p.nextjs__container_errors__link {\\n font-size: var(--size-14);\\n }\\n p.nextjs__container_errors__notes {\\n color: var(--color-stack-notes);\\n font-size: var(--size-14);\\n line-height: 1.5;\\n }\\n .nextjs-container-errors-body > h2:not(:first-child) {\\n margin-top: calc(16px + 8px);\\n }\\n .nextjs-container-errors-body > h2 {\\n color: var(--color-title-color);\\n margin-bottom: 8px;\\n font-size: var(--size-20);\\n }\\n .nextjs-toast-errors-parent {\\n cursor: pointer;\\n transition: transform 0.2s ease;\\n }\\n .nextjs-toast-errors-parent:hover {\\n transform: scale(1.1);\\n }\\n .nextjs-toast-errors {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n }\\n .nextjs-toast-errors > svg {\\n margin-right: 8px;\\n }\\n .nextjs-toast-hide-button {\\n margin-left: 24px;\\n border: none;\\n background: none;\\n color: var(--color-ansi-bright-white);\\n padding: 0;\\n transition: opacity 0.25s ease;\\n opacity: 0.7;\\n }\\n .nextjs-toast-hide-button:hover {\\n opacity: 1;\\n }\\n .nextjs__container_errors__error_title {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin-bottom: 14px;\\n }\\n .error-overlay-notes-container {\\n margin: 8px 2px;\\n }\\n .error-overlay-notes-container p {\\n white-space: pre-wrap;\\n }\\n\",nF,\"\\n .nextjs-container-build-error-version-status {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 4px;\\n\\n height: var(--size-26);\\n padding: 6px 8px 6px 6px;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n color: var(--color-gray-900);\\n font-size: var(--size-12);\\n font-weight: 500;\\n line-height: var(--size-16);\\n }\\n\\n a.nextjs-container-build-error-version-status {\\n text-decoration: none;\\n color: var(--color-gray-900);\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n }\\n\\n .version-staleness-indicator.fresh {\\n fill: var(--color-green-800);\\n stroke: var(--color-green-300);\\n }\\n .version-staleness-indicator.stale {\\n fill: var(--color-amber-800);\\n stroke: var(--color-amber-300);\\n }\\n .version-staleness-indicator.outdated {\\n fill: var(--color-red-800);\\n stroke: var(--color-red-300);\\n }\\n .version-staleness-indicator.unknown {\\n fill: var(--color-gray-800);\\n stroke: var(--color-gray-300);\\n }\\n\\n .nextjs-container-build-error-version-status > .turbopack-text {\\n background: linear-gradient(\\n to right,\\n var(--color-turbopack-text-red) 0%,\\n var(--color-turbopack-text-blue) 100%\\n );\\n background-clip: text;\\n -webkit-background-clip: text;\\n -webkit-text-fill-color: transparent;\\n }\\n\",\"\\n .dev-tools-info-code {\\n background: var(--color-gray-400);\\n color: var(--color-gray-1000);\\n font-family: var(--font-stack-monospace);\\n padding: 2px 4px;\\n margin: 0;\\n font-size: var(--size-13);\\n white-space: break-spaces;\\n border-radius: var(--rounded-md-2);\\n }\\n\\n .dev-tools-info-code-block-container {\\n padding: 6px;\\n }\\n\\n .dev-tools-info-code-block {\\n position: relative;\\n background: var(--color-background-200);\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: var(--rounded-md-2);\\n min-width: 326px;\\n }\\n\\n .dev-tools-info-code-block-pre {\\n margin: 0;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n }\\n\\n .dev-tools-info-copy-button {\\n position: absolute;\\n\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n right: 8px;\\n top: 8px;\\n padding: 4px;\\n height: var(--size-24);\\n width: var(--size-24);\\n border-radius: var(--rounded-md-2);\\n border: 1px solid var(--color-gray-alpha-400);\\n background: var(--color-background-100);\\n }\\n\\n .dev-tools-info-code-block-line {\\n display: block;\\n line-height: 1.5;\\n padding: 0 16px;\\n }\\n\\n .dev-tools-info-code-block-line.dev-tools-info-highlight {\\n border-left: 2px solid var(--color-blue-900);\\n background: var(--color-blue-400);\\n }\\n\\n .dev-tools-info-code-block-json-key {\\n color: var(--color-syntax-keyword);\\n }\\n\\n .dev-tools-info-code-block-json-value {\\n color: var(--color-syntax-link);\\n }\\n\",\"\",rO,'\\n .nextjs-scroll-fader {\\n --blur: 1px;\\n --stop: 25%;\\n --height: 150px;\\n --color-bg: var(--color-background-100);\\n position: absolute;\\n pointer-events: none;\\n user-select: none;\\n width: 100%;\\n height: var(--height);\\n left: 0;\\n backdrop-filter: blur(var(--blur));\\n\\n &[data-side=\"top\"] {\\n top: 0;\\n background: linear-gradient(to top, transparent, var(--color-bg));\\n mask-image: linear-gradient(to bottom, var(--color-bg) var(--stop), transparent);\\n }\\n }\\n',rI,rf)})}function rD(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rL(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return rD(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rD(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rN(e,t){var n,r,o,a,i=(0,x.c)(10),l=void 0!==e&&e;i[0]!==t?(n=void 0===t?{}:t,i[0]=t,i[1]=n):n=i[1];var s=n,c=rL((0,w.useState)(l),2),u=c[0],d=c[1],f=rL((0,w.useState)(!1),2),p=f[0],h=f[1],m=s.enterDelay,g=s.exitDelay,y=void 0===m?1:m,v=void 0===g?0:g;return i[2]!==l||i[3]!==y||i[4]!==v?(r=function(){var e,t;return l?(d(!0),y<=0?h(!0):e=setTimeout(function(){h(!0)},y)):(h(!1),v<=0?d(!1):t=setTimeout(function(){d(!1)},v)),function(){clearTimeout(e),clearTimeout(t)}},o=[l,y,v],i[2]=l,i[3]=y,i[4]=v,i[5]=r,i[6]=o):(r=i[5],o=i[6]),(0,w.useEffect)(r,o),i[7]!==u||i[8]!==p?(a={mounted:u,rendered:p},i[7]=u,i[8]=p,i[9]=a):a=i[9],a}function rR(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function rM(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function rZ(e){var t,n,r,o,a,i,l,s=(0,x.c)(18),c=e.state,u=e.dispatch,d=e.getSquashedHydrationErrorDetails,f=e.runtimeErrors,p=e.errorCount,h=!!false;s[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={exitDelay:200},s[0]=t):t=s[0];var m=rN(c.isErrorOverlayOpen,t),g=m.mounted,y=m.rendered;s[1]!==p||s[2]!==y||s[3]!==c.versionInfo?(n={rendered:y,transitionDurationMs:200,isTurbopack:h,versionInfo:c.versionInfo,errorCount:p},s[1]=p,s[2]=y,s[3]=c.versionInfo,s[4]=n):n=s[4];var v=n;return null!==c.buildError?(s[5]!==v||s[6]!==c.buildError?(r=(0,A.jsx)(nb,rM(rR({},v),{message:c.buildError,rendered:!0})),s[5]=v,s[6]=c.buildError,s[7]=r):r=s[7],r):f.length?g?(s[10]!==u?(i=function(){u({type:q})},s[10]=u,s[11]=i):i=s[11],s[12]!==v||s[13]!==d||s[14]!==f||s[15]!==c.debugInfo||s[16]!==i?(l=(0,A.jsx)(nK,rM(rR({},v),{debugInfo:c.debugInfo,getSquashedHydrationErrorDetails:d,runtimeErrors:f,onClose:i})),s[12]=v,s[13]=d,s[14]=f,s[15]=c.debugInfo,s[16]=i,s[17]=l):l=s[17],l):(s[9]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,A.jsx)(w.Suspense,{}),s[9]=a):a=s[9],a):(s[8]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,A.jsx)(w.Suspense,{}),s[8]=o):o=s[8],o)}function rU(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rF(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rq(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){rF(e,t,n[t])})}return e}function rH(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return rU(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rU(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var rV=function(e){var t,n,r=(0,x.c)(4);return e.state.buildError?(r[0]!==e?(t=(0,A.jsx)(rW,rq({},e)),r[0]=e,r[1]=t):t=r[1],t):(r[2]!==e?(n=(0,A.jsx)(r$,rq({},e)),r[2]=e,r[3]=n):n=r[3],n)},r$=function(e){var t,n,r,o,a,i=(0,x.c)(12),l=e.children,s=e.state,c=e.isAppDir,u=s.errors;i[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={},i[0]=t):t=i[0];var d=rH((0,w.useState)(t),2),f=d[0],p=d[1];if(i[1]!==u||i[2]!==f){for(var h=[],m=null,g=0;g<u.length;++g){var y=u[g],v=y.id;if(v in f){h.push(f[v]);continue}m=y;break}n=[h,m],i[1]=u,i[2]=f,i[3]=n}else n=i[3];var b=rH(n,2),A=b[0],C=b[1];i[4]!==c||i[5]!==C?(r=function(){if(null!=C){var e,t,n=!0;return(e=C,t=c,nD(function(){var n,r,o;return nR(this,function(a){switch(a.label){case 0:var i,l;if(n={id:e.id,runtime:!0,error:e.error,type:e.type},!(\"use\"in w))return[3,1];return[2,nN(nL({},n),{frames:(l=(i=function(){return nD(function(){return nR(this,function(n){switch(n.label){case 0:return[4,eS(e.frames,nT(e.error),t)];case 1:return[2,n.sent()]}})})()})(),function(){return l})})];case 1:return r=[nL({},n)],o={},[4,eS(e.frames,nT(e.error),t)];case 2:return[2,nN.apply(void 0,r.concat([(o.frames=a.sent(),o)]))];case 3:return[2]}})})()).then(function(e){n&&p(function(t){var n,r;return n=rq({},t),r=null!=(r=rF({},e.id,e))?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n})}),function(){n=!1}}},o=[C,c],i[4]=c,i[5]=C,i[6]=r,i[7]=o):(r=i[6],o=i[7]),(0,w.useEffect)(r,o);var _=u.length;return i[8]!==l||i[9]!==A||i[10]!==_?(a=l({runtimeErrors:A,totalErrorCount:_}),i[8]=l,i[9]=A,i[10]=_,i[11]=a):a=i[11],a},rW=function(e){return(0,e.children)({runtimeErrors:[],totalErrorCount:1})};function rY(){var e,t,n=(0,x.c)(4),r=dl(),o=r.shadowRoot,a=r.state;return n[0]!==o||n[1]!==a.scale?(e=function(){(null==o?void 0:o.host)&&o.host.style.setProperty(\"--nextjs-dev-tools-scale\",String(a.scale||1))},t=[o,a.scale],n[0]=o,n[1]=a.scale,n[2]=e,n[3]=t):(e=n[2],t=n[3]),(0,w.useLayoutEffect)(e,t),null}var rK=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-indicator/devtools-indicator.css\"),rX={};function rG(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rQ(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rJ(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return rQ(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rQ(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function r0(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r1(e){var t,n,r,o,a=(0,x.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.08889 11.8384L2.62486 12.3024L1.69678 11.3744L2.16082 10.9103L6.07178 6.99937L2.16082 3.08841L1.69678 2.62437L2.62486 1.69629L3.08889 2.16033L6.99986 6.07129L10.9108 2.16033L11.3749 1.69629L12.3029 2.62437L11.8389 3.08841L7.92793 6.99937L11.8389 10.9103L12.3029 11.3744L11.3749 12.3024L10.9108 11.8384L6.99986 7.92744L3.08889 11.8384Z\",fill:\"currentColor\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,A.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"12\",height:\"12\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function r2(e){var t,n,r,o,a=(0,x.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.98071 1.125L1.125 3.98071L1.125 8.01929L3.98071 10.875H8.01929L10.875 8.01929V3.98071L8.01929 1.125H3.98071ZM3.82538 0C3.62647 0 3.4357 0.0790176 3.29505 0.21967L0.21967 3.29505C0.0790176 3.4357 0 3.62647 0 3.82538V8.17462C0 8.37353 0.0790178 8.5643 0.21967 8.70495L3.29505 11.7803C3.4357 11.921 3.62647 12 3.82538 12H8.17462C8.37353 12 8.5643 11.921 8.70495 11.7803L11.7803 8.70495C11.921 8.5643 12 8.37353 12 8.17462V3.82538C12 3.62647 11.921 3.4357 11.7803 3.29505L8.70495 0.21967C8.5643 0.0790177 8.37353 0 8.17462 0H3.82538ZM6.5625 2.8125V3.375V6V6.5625H5.4375V6V3.375V2.8125H6.5625ZM6 9C6.41421 9 6.75 8.66421 6.75 8.25C6.75 7.83579 6.41421 7.5 6 7.5C5.58579 7.5 5.25 7.83579 5.25 8.25C5.25 8.66421 5.58579 9 6 9Z\",fill:\"currentColor\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,A.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}rX.styleTagTransform=m(),rX.setAttributes=d(),rX.insert=c(),rX.domAPI=l(),rX.insertStyleElement=p(),a()(rK.Z,rX),rK.Z&&rK.Z.locals&&rK.Z.locals;var r4=(0,w.createContext)(null),r5=function(){return(0,w.useContext)(r4)};function r3(e){return ow+36/e.scale+9}function r6(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r9(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function r8(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function r7(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function oe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return r6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r6(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function ot(){var e,t,n=(e=[\"\\n [data-next-badge-root] {\\n --timing: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --duration-long: 250ms;\\n --color-outer-border: #171717;\\n --color-inner-border: hsla(0, 0%, 100%, 0.14);\\n --color-hover-alpha-subtle: hsla(0, 0%, 100%, 0.13);\\n --color-hover-alpha-error: hsla(0, 0%, 100%, 0.2);\\n --color-hover-alpha-error-2: hsla(0, 0%, 100%, 0.25);\\n --mark-size: calc(var(--size) - var(--size-2) * 2);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n &:has([data-next-badge][data-error='true']) {\\n --focus-color: #fff;\\n }\\n }\\n\\n [data-disabled-icon] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding-right: 4px;\\n }\\n\\n [data-next-badge] {\\n width: var(--size);\\n height: var(--size);\\n display: flex;\\n align-items: center;\\n position: relative;\\n background: rgba(0, 0, 0, 0.8);\\n box-shadow:\\n 0 0 0 1px var(--color-outer-border),\\n inset 0 0 0 1px var(--color-inner-border),\\n 0px 16px 32px -8px rgba(0, 0, 0, 0.24);\\n backdrop-filter: blur(48px);\\n border-radius: var(--rounded-full);\\n user-select: none;\\n cursor: pointer;\\n scale: 1;\\n overflow: hidden;\\n will-change: scale, box-shadow, width, background;\\n transition:\\n scale var(--duration-short) var(--timing),\\n width var(--duration-long) var(--timing),\\n box-shadow var(--duration-long) var(--timing),\\n background var(--duration-short) ease;\\n\\n &:active[data-error='false'] {\\n scale: 0.95;\\n }\\n\\n &[data-animate='true']:not(:hover) {\\n scale: 1.02;\\n }\\n\\n &[data-error='false']:has([data-next-mark]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: 3px;\\n }\\n\\n &[data-error='true'] {\\n background: #ca2a30;\\n --color-inner-border: #e5484d;\\n\\n [data-next-mark] {\\n background: var(--color-hover-alpha-error);\\n outline-offset: 0px;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-error-2);\\n }\\n }\\n }\\n\\n &[data-error-expanded='false'][data-error='true'] ~ [data-dot] {\\n scale: 1;\\n }\\n\\n > div {\\n display: flex;\\n }\\n }\\n\\n [data-issues-collapse]:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n [data-issues]:has([data-issues-open]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n [data-dot] {\\n content: '';\\n width: var(--size-8);\\n height: var(--size-8);\\n background: #fff;\\n box-shadow: 0 0 0 1px var(--color-outer-border);\\n border-radius: 50%;\\n position: absolute;\\n top: 2px;\\n right: 0px;\\n scale: 0;\\n pointer-events: none;\\n transition: scale 200ms var(--timing);\\n transition-delay: var(--duration-short);\\n }\\n\\n [data-issues] {\\n --padding-left: 8px;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n padding-left: 8px;\\n padding-right: 8px;\\n height: var(--size-32);\\n margin-right: 2px;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:has([data-issues-open]:hover) {\\n background: var(--color-hover-alpha-error);\\n }\\n\\n &:has([data-issues-collapse]) {\\n padding-right: calc(var(--padding-left) / 2);\\n }\\n\\n [data-cross] {\\n translate: 0px -1px;\\n }\\n }\\n\\n [data-issues-open] {\\n font-size: var(--size-13);\\n color: white;\\n width: fit-content;\\n height: 100%;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n margin: 0;\\n line-height: var(--size-36);\\n font-weight: 500;\\n z-index: 2;\\n white-space: nowrap;\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n }\\n\\n [data-issues-collapse] {\\n width: var(--size-24);\\n height: var(--size-24);\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:hover {\\n background: var(--color-hover-alpha-error);\\n }\\n }\\n\\n [data-cross] {\\n color: #fff;\\n width: var(--size-12);\\n height: var(--size-12);\\n }\\n\\n [data-next-mark] {\\n width: var(--mark-size);\\n height: var(--mark-size);\\n margin: 0 2px;\\n display: flex;\\n align-items: center;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-long) var(--timing);\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-subtle);\\n }\\n\\n svg {\\n flex-shrink: 0;\\n width: var(--size-40);\\n height: var(--size-40);\\n }\\n }\\n\\n [data-issues-count-animation] {\\n display: grid;\\n place-items: center center;\\n font-variant-numeric: tabular-nums;\\n\\n &[data-animate='false'] {\\n [data-issues-count-exit],\\n [data-issues-count-enter] {\\n animation-duration: 0ms;\\n }\\n }\\n\\n > * {\\n grid-area: 1 / 1;\\n }\\n\\n [data-issues-count-exit] {\\n animation: fadeOut 300ms var(--timing) forwards;\\n }\\n\\n [data-issues-count-enter] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n [data-issues-count-plural] {\\n display: inline-block;\\n &[data-animate='true'] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n .path0 {\\n animation: draw0 1.5s ease-in-out infinite;\\n }\\n\\n .path1 {\\n animation: draw1 1.5s ease-out infinite;\\n animation-delay: 0.3s;\\n }\\n\\n .paused {\\n stroke-dashoffset: 0;\\n }\\n\\n @keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n filter: blur(2px);\\n transform: translateY(8px);\\n }\\n 100% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n }\\n\\n @keyframes fadeOut {\\n 0% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n 100% {\\n opacity: 0;\\n transform: translateY(-12px);\\n filter: blur(2px);\\n }\\n }\\n\\n @keyframes draw0 {\\n 0%,\\n 25% {\\n stroke-dashoffset: -29.6;\\n }\\n 25%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 29.6;\\n }\\n }\\n\\n @keyframes draw1 {\\n 0%,\\n 20% {\\n stroke-dashoffset: -11.6;\\n }\\n 20%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 11.6;\\n }\\n }\\n\\n @media (prefers-reduced-motion) {\\n [data-issues-count-exit],\\n [data-issues-count-enter],\\n [data-issues-count-plural] {\\n animation-duration: 0ms !important;\\n }\\n }\\n \"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return ot=function(){return n},n}function on(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,b,C,_,k,E,j,S,O,B,P,I,T,z,D,L,N,R,M,Z,U,H,V,$,W,Y=(0,x.c)(40);Y[0]!==e?(D=r7(e,[\"onTriggerClick\"]),L=e.onTriggerClick,Y[0]=e,Y[1]=D,Y[2]=L):(D=Y[1],L=Y[2]);var K=dl(),X=K.state,G=K.dispatch,Q=u3().totalErrorCount,J=36/X.scale,ee=r5(),et=ee.panel,en=ee.triggerRef,er=ee.setPanel,eo=\"panel-selector\"===et,ea=Q>0,ei=oe((0,w.useState)(ea),2),el=ei[0],es=ei[1],ec=oe((0,w.useState)(ea),2),ed=ec[0],ef=ec[1];ed!==ea&&(ef(ea),es(ea));var ep=oe((0,w.useState)(!1),2),eh=ep[0],em=ep[1],eg=(t=Q,n=150,a=(0,x.c)(4),i=n,l=(0,w.useRef)(null),d=(s=(0,w.useState)(!1),c=2,u=function(e){if(Array.isArray(e))return e}(s)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(s,2)||function(e,t){if(e){if(\"string\"==typeof e)return rG(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rG(e,t)}}(s,c)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[0],f=u[1],a[0]!==i||a[1]!==t?(r=function(){if(t>0){var e=l.current?Date.now()-l.current:-1;if(l.current=Date.now(),!(e<=i)){f(!0);var n=window.setTimeout(function(){f(!1)},i);return function(){clearTimeout(n)}}}},o=[t,i],a[0]=i,a[1]=t,a[2]=r,a[3]=o):(r=a[2],o=a[3]),(0,w.useEffect)(r,o),d),ey=(0,w.useRef)(null),ev=(p=ey,g=(0,x.c)(4),v=(y=rJ((0,w.useState)(0),2))[0],b=y[1],g[0]!==p.current?(h=function(){var e=p.current;if(e){var t=new ResizeObserver(function(e){b(rJ(e,1)[0].contentRect.width)});return t.observe(e),function(){return t.disconnect()}}},g[0]=p.current,g[1]=h):h=g[1],g[2]!==p?(m=[p],g[2]=p,g[3]=m):m=g[3],(0,w.useEffect)(h,m),v),eb=(C=X.buildingIndicator||X.renderingIndicator,E=(0,x.c)(4),j=750,P=(S=(0,w.useState)(!1),O=2,B=function(e){if(Array.isArray(e))return e}(S)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(S,2)||function(e,t){if(e){if(\"string\"==typeof e)return r0(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r0(e,t)}}(S,O)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[0],I=B[1],T=(0,w.useRef)(null),z=(0,w.useRef)(null),E[0]!==j||E[1]!==C?(_=function(){if(z.current&&(clearTimeout(z.current),z.current=null),C)null===T.current&&(T.current=Date.now()),I(!0);else if(null===T.current)I(!1);else{var e=Date.now()-T.current,t=j*Math.ceil(e/j)-e;t>0?z.current=setTimeout(function(){I(!1),T.current=null},t):(I(!1),T.current=null)}return function(){z.current&&clearTimeout(z.current)}},k=[C,j],E[0]=j,E[1]=C,E[2]=_,E[3]=k):(_=E[2],k=E[3]),(0,w.useEffect)(_,k),P),eA=el||X.disableDevIndicator,ex=0===ev?\"auto\":ev,ew=\"\".concat(J,\"px\"),eC=X.disableDevIndicator&&(!ea||eh)?\"none\":\"block\";Y[3]!==ew||Y[4]!==eC?(N={\"--size\":ew,\"--duration-short\":\"\".concat(150,\"ms\"),display:eC},Y[3]=ew,Y[4]=eC,Y[5]=N):N=Y[5];var e_=N;return Y[6]===Symbol.for(\"react.memo_cache_sentinel\")?(R=(0,A.jsx)(\"style\",{children:eu(ot())}),Y[6]=R):R=Y[6],Y[7]!==ex?(M={width:ex},Y[7]=ex,Y[8]=M):M=Y[8],Y[9]!==D||Y[10]!==eb||Y[11]!==eo||Y[12]!==L||Y[13]!==X.buildingIndicator||Y[14]!==X.disableDevIndicator||Y[15]!==en?(Z=!X.disableDevIndicator&&(0,A.jsx)(\"button\",r8(r9({id:\"next-logo\",ref:en,\"data-next-mark\":!0,\"data-next-mark-loading\":eb,onClick:L,disabled:X.disableDevIndicator,\"aria-haspopup\":\"menu\",\"aria-expanded\":eo,\"aria-controls\":\"nextjs-dev-tools-menu\",\"aria-label\":\"\".concat(eo?\"Close\":\"Open\",\" Next.js Dev Tools\"),\"data-nextjs-dev-tools-button\":!0},D),{children:(0,A.jsx)(oo,{isLoading:eb,isDevBuilding:X.buildingIndicator})})),Y[9]=D,Y[10]=eb,Y[11]=eo,Y[12]=L,Y[13]=X.buildingIndicator,Y[14]=X.disableDevIndicator,Y[15]=en,Y[16]=Z):Z=Y[16],Y[17]!==G||Y[18]!==eA||Y[19]!==eg||Y[20]!==er||Y[21]!==X.buildError||Y[22]!==X.disableDevIndicator||Y[23]!==X.isErrorOverlayOpen||Y[24]!==Q||Y[25]!==en?(U=eA&&(0,A.jsxs)(\"div\",{\"data-issues\":!0,children:[(0,A.jsxs)(\"button\",{\"data-issues-open\":!0,\"aria-label\":\"Open issues overlay\",onClick:function(){if(X.isErrorOverlayOpen)return void G({type:q});G({type:F}),er(null)},children:[X.disableDevIndicator&&(0,A.jsx)(\"div\",{\"data-disabled-icon\":!0,children:(0,A.jsx)(r2,{})}),(0,A.jsx)(or,{animate:eg,\"data-issues-count-animation\":!0,children:Q},Q),\" \",(0,A.jsxs)(\"div\",{children:[\"Issue\",Q>1&&(0,A.jsx)(\"span\",{\"aria-hidden\":!0,\"data-issues-count-plural\":!0,\"data-animate\":eg&&2===Q,children:\"s\"})]})]}),!X.buildError&&(0,A.jsx)(\"button\",{\"data-issues-collapse\":!0,\"aria-label\":\"Collapse issues badge\",onClick:function(){var e;X.disableDevIndicator?em(!0):es(!1),null==(e=en.current)||e.focus()},children:(0,A.jsx)(r1,{\"data-cross\":!0})})]}),Y[17]=G,Y[18]=eA,Y[19]=eg,Y[20]=er,Y[21]=X.buildError,Y[22]=X.disableDevIndicator,Y[23]=X.isErrorOverlayOpen,Y[24]=Q,Y[25]=en,Y[26]=U):U=Y[26],Y[27]!==Z||Y[28]!==U?(H=(0,A.jsxs)(\"div\",{ref:ey,children:[Z,U]}),Y[27]=Z,Y[28]=U,Y[29]=H):H=Y[29],Y[30]!==ea||Y[31]!==eA||Y[32]!==eg||Y[33]!==M||Y[34]!==H?(V=(0,A.jsx)(\"div\",{\"data-next-badge\":!0,\"data-error\":ea,\"data-error-expanded\":eA,\"data-animate\":eg,style:M,children:H}),Y[30]=ea,Y[31]=eA,Y[32]=eg,Y[33]=M,Y[34]=H,Y[35]=V):V=Y[35],Y[36]===Symbol.for(\"react.memo_cache_sentinel\")?($=(0,A.jsx)(\"div\",{\"aria-hidden\":!0,\"data-dot\":!0}),Y[36]=$):$=Y[36],Y[37]!==V||Y[38]!==e_?(W=(0,A.jsxs)(\"div\",{\"data-next-badge-root\":!0,style:e_,children:[R,V,$]}),Y[37]=V,Y[38]=e_,Y[39]=W):W=Y[39],W}function or(e){var t,n,r,o,a,i,l=(0,x.c)(13);l[0]!==e?(n=r7(e,[\"children\",\"animate\"]),t=e.children,r=e.animate,l[0]=e,l[1]=t,l[2]=n,l[3]=r):(t=l[1],n=l[2],r=l[3]);var s=void 0===r||r,c=t-1;return l[4]!==c?(o=(0,A.jsx)(\"div\",{\"aria-hidden\":!0,\"data-issues-count-exit\":!0,children:c}),l[4]=c,l[5]=o):o=l[5],l[6]!==t?(a=(0,A.jsx)(\"div\",{\"data-issues-count\":!0,\"data-issues-count-enter\":!0,children:t}),l[6]=t,l[7]=a):a=l[7],l[8]!==s||l[9]!==n||l[10]!==o||l[11]!==a?(i=(0,A.jsxs)(\"div\",r8(r9({},n),{\"data-animate\":s,children:[o,a]})),l[8]=s,l[9]=n,l[10]=o,l[11]=a,l[12]=i):i=l[12],i}function oo(e){var t,n,r,o,a,i,l,s,c=(0,x.c)(19),u=e.isLoading,d=e.isDevBuilding?\"rgba(255,255,255,0.7)\":\"white\",f=u?\"path0\":\"paused\";c[0]!==f?(t=(0,A.jsx)(\"path\",{className:f,d:\"M13.3 15.2 L2.34 1 V12.6\",fill:\"none\",stroke:\"url(#next_logo_paint0_linear_1357_10853)\",strokeWidth:\"1.86\",mask:\"url(#next_logo_mask0)\",strokeDasharray:\"29.6\",strokeDashoffset:\"29.6\"}),c[0]=f,c[1]=t):t=c[1];var p=u?\"path1\":\"paused\";return c[2]!==p?(n=(0,A.jsx)(\"path\",{className:p,d:\"M11.825 1.5 V13.1\",strokeWidth:\"1.86\",stroke:\"url(#next_logo_paint1_linear_1357_10853)\",strokeDasharray:\"11.6\",strokeDashoffset:\"11.6\"}),c[2]=p,c[3]=n):n=c[3],c[4]!==t||c[5]!==n?(r=(0,A.jsxs)(\"g\",{transform:\"translate(8.5, 13)\",children:[t,n]}),c[4]=t,c[5]=n,c[6]=r):r=c[6],c[7]!==d?(o=(0,A.jsxs)(\"linearGradient\",{id:\"next_logo_paint0_linear_1357_10853\",x1:\"9.95555\",y1:\"11.1226\",x2:\"15.4778\",y2:\"17.9671\",gradientUnits:\"userSpaceOnUse\",children:[(0,A.jsx)(\"stop\",{stopColor:d}),(0,A.jsx)(\"stop\",{offset:\"0.604072\",stopColor:d,stopOpacity:\"0\"}),(0,A.jsx)(\"stop\",{offset:\"1\",stopColor:d,stopOpacity:\"0\"})]}),c[7]=d,c[8]=o):o=c[8],c[9]!==d?(a=(0,A.jsxs)(\"linearGradient\",{id:\"next_logo_paint1_linear_1357_10853\",x1:\"11.8222\",y1:\"1.40039\",x2:\"11.791\",y2:\"9.62542\",gradientUnits:\"userSpaceOnUse\",children:[(0,A.jsx)(\"stop\",{stopColor:d}),(0,A.jsx)(\"stop\",{offset:\"1\",stopColor:d,stopOpacity:\"0\"})]}),c[9]=d,c[10]=a):a=c[10],c[11]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,A.jsxs)(\"mask\",{id:\"next_logo_mask0\",children:[(0,A.jsx)(\"rect\",{width:\"100%\",height:\"100%\",fill:\"white\"}),(0,A.jsx)(\"rect\",{width:\"5\",height:\"1.5\",fill:\"black\"})]}),c[11]=i):i=c[11],c[12]!==o||c[13]!==a?(l=(0,A.jsxs)(\"defs\",{children:[o,a,i]}),c[12]=o,c[13]=a,c[14]=l):l=c[14],c[15]!==u||c[16]!==r||c[17]!==l?(s=(0,A.jsxs)(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 40 40\",fill:\"none\",\"data-next-mark-loading\":u,children:[r,l]}),c[15]=u,c[16]=r,c[17]=l,c[18]=s):s=c[18],s}var oa=w.forwardRef(function(e,t){var n,r,o,a,i,l,s,c,u,d=(0,x.c)(15);return(d[0]!==e?(l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"onClick\",\"children\",\"className\"]),i=e.onClick,o=e.children,a=e.className,d[0]=e,d[1]=o,d[2]=a,d[3]=i,d[4]=l):(o=d[1],a=d[2],i=d[3],l=d[4]),d[5]!==i?(s=function(e){return e.target.closest(\"a\")||e.preventDefault(),null==i?void 0:i()},d[5]=i,d[6]=s):s=d[6],d[7]!==a?(c=eJ(\"nextjs-toast\",a),d[7]=a,d[8]=c):c=d[8],d[9]!==o||d[10]!==l||d[11]!==t||d[12]!==s||d[13]!==c)?(u=(0,A.jsx)(\"div\",(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},l),r=r={ref:t,onClick:s,className:c,children:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n)),d[9]=o,d[10]=l,d[11]=t,d[12]=s,d[13]=c,d[14]=u):u=d[14],u});function oi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}var ol=(0,w.createContext)(null);function os(e){var t=e.children,n=e.disabled,r=void 0!==n&&n,o=(0,w.useRef)(new Set),a=(0,w.useCallback)(function(e){o.current.add(e)},[]),i=(0,w.useCallback)(function(e){o.current.delete(e)},[]),l=(0,w.useMemo)(function(){return{register:a,unregister:i,handles:o.current,disabled:r}},[a,i,r]);return(0,A.jsx)(ol.Provider,{value:l,children:t})}function oc(){return(0,w.useContext)(ol)}function ou(e){var t,n,r,o,a,i,l,s,c,u,d,f=(0,x.c)(19);f[0]!==e?(o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"ref\"]),r=e.children,a=e.ref,f[0]=e,f[1]=r,f[2]=o,f[3]=a):(r=f[1],o=f[2],a=f[3]);var p=(0,w.useRef)(null),h=oc();f[4]!==a?(i=function(e){if(p.current=null!=e?e:null,\"function\"==typeof a)a(e);else{var t;a&&(void 0===a?\"undefined\":(t=a)&&\"undefined\"!=typeof Symbol&&t.constructor===Symbol?\"symbol\":typeof t)==\"object\"&&(a.current=e)}},f[4]=a,f[5]=i):i=f[5];var m=i;f[6]!==h?(l=function(){if(h&&p.current&&!h.disabled){var e=p.current;return h.register(e),function(){return h.unregister(e)}}},s=[h],f[6]=h,f[7]=l,f[8]=s):(l=f[7],s=f[8]),(0,w.useEffect)(l,s);var g=(null==h?void 0:h.disabled)?\"default\":\"grab\";return(f[9]!==o.style?(c=o.style||{},f[9]=o.style,f[10]=c):c=f[10],f[11]!==g||f[12]!==c?(u=oi({cursor:g},c),f[11]=g,f[12]=c,f[13]=u):u=f[13],f[14]!==r||f[15]!==o||f[16]!==m||f[17]!==u)?(d=(0,A.jsx)(\"div\",(t=oi({ref:m},o),n=n={style:u,children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),f[14]=r,f[15]=o,f[16]=m,f[17]=u,f[18]=d):d=f[18],d}function od(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function of(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function op(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function oh(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function om(e){return function(e){if(Array.isArray(e))return od(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||og(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function og(e,t){if(e){if(\"string\"==typeof e)return od(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return od(e,t)}}function oy(e){var t,n,r,o,a,i,l,s,c,u,d,f,p=(0,x.c)(18);p[0]!==e?(s=oh(e,[\"children\",\"padding\",\"position\",\"setPosition\",\"onDragStart\",\"dragHandleSelector\",\"disableDrag\",\"avoidZone\"]),r=e.children,l=e.padding,o=e.position,c=e.setPosition,i=e.onDragStart,a=e.dragHandleSelector,u=e.disableDrag,n=e.avoidZone,p[0]=e,p[1]=n,p[2]=r,p[3]=o,p[4]=a,p[5]=i,p[6]=l,p[7]=s,p[8]=c,p[9]=u):(n=p[1],r=p[2],o=p[3],a=p[4],i=p[5],l=p[6],s=p[7],c=p[8],u=p[9]);var h=function(e){var t=(0,w.useRef)(null),n=(0,w.useRef)({state:\"idle\"}),r=(0,w.useRef)(null),o=(0,w.useRef)({x:0,y:0}),a=(0,w.useRef)({x:0,y:0}),i=(0,w.useRef)(0),l=(0,w.useRef)([]),s=(0,w.useCallback)(function(){var e,o;\"drag\"===n.current.state&&(null==(o=t.current)||o.releasePointerCapture(n.current.pointerId)),n.current=\"drag\"===n.current.state?{state:\"drag-end\"}:{state:\"idle\"},null!==r.current&&(r.current(),r.current=null),l.current=[],null==(e=t.current)||e.classList.remove(\"dev-tools-grabbing\"),document.body.style.removeProperty(\"user-select\"),document.body.style.removeProperty(\"-webkit-user-select\")},[]);function c(e){t.current&&(a.current=e,t.current.style.translate=\"\".concat(e.x,\"px \").concat(e.y,\"px\"))}function u(n){var r=t.current;null!==r&&(r.style.transition=\"translate 491.22ms var(--timing-bounce)\",r.addEventListener(\"transitionend\",function t(o){if(\"translate\"===o.propertyName){var i;null==(i=e.onAnimationEnd)||i.call(e,n),a.current={x:0,y:0},r.style.transition=\"\",r.removeEventListener(\"transitionend\",t)}}),c(n.translation))}function d(e){if(\"drag-end\"===n.current.state){var r;e.preventDefault(),e.stopPropagation(),n.current={state:\"idle\"},null==(r=t.current)||r.removeEventListener(\"click\",d)}}function f(r){if(\"press\"===n.current.state){var s,u,d,f,p=r.clientX-o.current.x,h=r.clientY-o.current.y;Math.sqrt(p*p+h*h)>=e.threshold&&(n.current={state:\"drag\",pointerId:r.pointerId},null==(u=t.current)||u.setPointerCapture(r.pointerId),null==(d=t.current)||d.classList.add(\"dev-tools-grabbing\"),document.body.style.userSelect=\"none\",document.body.style.webkitUserSelect=\"none\",null==(f=e.onDragStart)||f.call(e))}if(\"drag\"===n.current.state){var m={x:r.clientX,y:r.clientY},g=m.x-o.current.x,y=m.y-o.current.y;o.current=m,c({x:a.current.x+g,y:a.current.y+y});var v=Date.now();v-i.current>=10&&(l.current=om(l.current.slice(-5)).concat([{position:m,timestamp:v}])),i.current=v,null==(s=e.onDrag)||s.call(e,a.current)}}function p(){var t,n=function(e){if(e.length<2)return{x:0,y:0};var t=e[0],n=e[e.length-1],r=n.timestamp-t.timestamp;return 0===r?{x:0,y:0}:{x:1e3*((n.position.x-t.position.x)/r),y:1e3*((n.position.y-t.position.y)/r)}}(l.current);s(),null==(t=e.onDragEnd)||t.call(e,a.current,n)}return(0,w.useLayoutEffect)(function(){e.disabled&&s()},[s,e.disabled]),e.disabled?{ref:t,animate:u}:{ref:t,onPointerDown:function(a){var i;0===a.button&&function(n){if(!n||!t.current)return!0;if(e.handles&&e.handles.size>0){for(var r=n;r&&r!==t.current;){if(e.handles.has(r))return!0;r=r.parentElement}return!1}return!e.dragHandleSelector||null!==n.closest(e.dragHandleSelector)}(a.target)&&(o.current={x:a.clientX,y:a.clientY},n.current={state:\"press\"},window.addEventListener(\"pointermove\",f),window.addEventListener(\"pointerup\",p),null!==r.current&&(r.current(),r.current=null),r.current=function(){window.removeEventListener(\"pointermove\",f),window.removeEventListener(\"pointerup\",p)},null==(i=t.current)||i.addEventListener(\"click\",d))},animate:u}}({disabled:void 0!==u&&u,handles:null==(t=oc())?void 0:t.handles,threshold:5,onDragStart:i,onDragEnd:function(e,t){var r,a,i,s,c,u,d,f,p,h,y,v,b,A,x,w,C,_;if(0===Math.sqrt(e.x*e.x+e.y*e.y)){null==(r=m.current)||r.style.removeProperty(\"translate\");return}g((b=(a={x:e.x+ob(t.x),y:e.y+ob(t.y)}).x,A=a.y,w=Object.entries(x=(c=2*l,u=(null==(i=m.current)?void 0:i.offsetWidth)||0,d=(null==(s=m.current)?void 0:s.offsetHeight)||0,f=window.innerWidth-document.documentElement.clientWidth,h=(p=function(e){var t=e.includes(\"right\"),r=e.includes(\"bottom\"),o=t?window.innerWidth-f-c-u:0,a=r?window.innerHeight-c-d:0;if(n&&n.corner===e){var i=n.square+n.padding;r?a-=i:a+=i}return{x:o,y:a}})(o),{\"top-left\":(y=function(e){return{x:e.x-h.x,y:e.y-h.y}})(p(\"top-left\")),\"top-right\":y(p(\"top-right\")),\"bottom-left\":y(p(\"bottom-left\")),\"bottom-right\":y(p(\"bottom-right\"))})).map(function(e){var t,n,r=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||og(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),o=r[0],a=r[1];return{key:o,distance:Math.sqrt(Math.pow(b-a.x,2)+Math.pow(A-a.y,2))}}),C=(v=Math).min.apply(v,om(w.map(ov))),(_=w.find(function(e){return e.distance===C}))?{translation:x[_.key],corner:_.key}:{corner:o,translation:x[o]}))},onAnimationEnd:function(e){var t=e.corner;setTimeout(function(){var e;null==(e=m.current)||e.style.removeProperty(\"translate\"),c(t)})},dragHandleSelector:a}),m=h.ref,g=h.animate,y=oh(h,[\"ref\",\"animate\"]);return p[10]!==s.style?(d=of({touchAction:\"none\",userSelect:\"none\",WebkitUserSelect:\"none\"},s.style),p[10]=s.style,p[11]=d):d=p[11],p[12]!==r||p[13]!==y||p[14]!==s||p[15]!==m||p[16]!==d?(f=(0,A.jsx)(\"div\",op(of(op(of({},s),{ref:m}),y),{style:d,children:r})),p[12]=r,p[13]=y,p[14]=s,p[15]=m,p[16]=d,p[17]=f):f=p[17],f}function ov(e){return e.distance}function ob(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.999;return e/1e3*t/(1-t)}function oA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ox(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ow=20;function oC(){var e,t,n,r,o,a,i,l,s,c=(0,x.c)(20),u=dl(),d=u.state,f=u.dispatch,p=r5(),h=p.panel,m=p.setPanel,g=p.setSelectedIndex,y=o_();c[0]!==d.devToolsPosition?(n=d.devToolsPosition.split(\"-\",2),c[0]=d.devToolsPosition,c[1]=n):n=c[1];var v=(t=2,function(e){if(Array.isArray(e))return e}(e=n)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,2)||function(e,t){if(e){if(\"string\"==typeof e)return oA(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oA(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),b=v[0],w=v[1];c[2]!==w||c[3]!==b?(ox(o={\"--animate-out-duration-ms\":\"\".concat(200,\"ms\"),\"--animate-out-timing-function\":nt,boxShadow:\"none\"},b,\"\".concat(ow,\"px\")),ox(o,w,\"\".concat(ow,\"px\")),r=o,c[2]=w,c[3]=b,c[4]=r):r=c[4];var C=r,_=null!==h;return c[5]!==f||c[6]!==y?(a=function(e){f({type:K,devToolsPosition:e}),rw({devToolsPosition:e}),y(e)},c[5]=f,c[6]=y,c[7]=a):a=c[7],c[8]!==h||c[9]!==m||c[10]!==g?(i=(0,A.jsx)(on,{onTriggerClick:function(){var e=\"panel-selector\"===h?null:\"panel-selector\";if(m(e),!e)return void g(-1)}}),c[8]=h,c[9]=m,c[10]=g,c[11]=i):i=c[11],c[12]!==d.devToolsPosition||c[13]!==_||c[14]!==a||c[15]!==i?(l=(0,A.jsx)(oy,{disableDrag:_,padding:ow,position:d.devToolsPosition,setPosition:a,children:i}),c[12]=d.devToolsPosition,c[13]=_,c[14]=a,c[15]=i,c[16]=l):l=c[16],c[17]!==C||c[18]!==l?(s=(0,A.jsx)(oa,{id:\"devtools-indicator\",\"data-nextjs-toast\":!0,style:C,children:l}),c[17]=C,c[18]=l,c[19]=s):s=c[19],s}var o_=function(){var e,t=(0,x.c)(3),n=dl(),r=n.state,o=n.dispatch;return t[0]!==o||t[1]!==r.devToolsPanelPosition?(e=function(e){o({type:X,devToolsPanelPosition:e,key:en});var t=Object.keys(r.devToolsPanelPosition).filter(ok),n=ox({},en,e);t.forEach(function(t){o({type:X,devToolsPanelPosition:e,key:t}),n[t]=e}),rw({devToolsPanelPosition:n})},t[0]=o,t[1]=r.devToolsPanelPosition,t[2]=e):e=t[2],e};function ok(e){return e.startsWith(J)}function oE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function oj(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oS(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){oj(e,t,n[t])})}return e}function oO(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function oB(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return oE(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oE(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var oP=(0,w.createContext)({});function oI(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h=(0,x.c)(37);h[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"index\",\"label\",\"value\",\"onClick\",\"href\"]),n=e.index,r=e.label,i=e.value,o=e.onClick,t=e.href,h[0]=e,h[1]=t,h[2]=n,h[3]=r,h[4]=o,h[5]=a,h[6]=i):(t=h[1],n=h[2],r=h[3],o=h[4],a=h[5],i=h[6]);var m=\"function\"==typeof o||\"string\"==typeof t,g=(0,w.useContext)(oP),y=g.closeMenu,v=g.selectedIndex,b=g.setSelectedIndex,C=v===n;h[7]!==y||h[8]!==t||h[9]!==m||h[10]!==o?(l=function(){m&&(null==o||o(),null==y||y(),t&&window.open(t,\"_blank\",\"noopener, noreferrer\"))},h[7]=y,h[8]=t,h[9]=m,h[10]=o,h[11]=l):l=h[11];var _=l;h[12]!==n||h[13]!==m||h[14]!==v||h[15]!==b?(s=function(){m&&void 0!==n&&v!==n&&b(n)},h[12]=n,h[13]=m,h[14]=v,h[15]=b,h[16]=s):s=h[16],h[17]!==b?(c=function(){return b(-1)},h[17]=b,h[18]=c):c=h[18],h[19]!==_?(u=function(e){(\"Enter\"===e.key||\" \"===e.key)&&_()},h[19]=_,h[20]=u):u=h[20];var k=m?\"menuitem\":void 0,E=C?0:-1;return h[21]!==r?(d=(0,A.jsx)(\"span\",{className:\"dev-tools-indicator-label\",children:r}),h[21]=r,h[22]=d):d=h[22],h[23]!==i?(f=(0,A.jsx)(\"span\",{className:\"dev-tools-indicator-value\",children:i}),h[23]=i,h[24]=f):f=h[24],h[25]!==_||h[26]!==n||h[27]!==a||h[28]!==C||h[29]!==s||h[30]!==c||h[31]!==u||h[32]!==k||h[33]!==E||h[34]!==d||h[35]!==f?(p=(0,A.jsxs)(\"div\",oO(oS({className:\"dev-tools-indicator-item\",\"data-index\":n,\"data-selected\":C,onClick:_,onMouseMove:s,onMouseLeave:c,onKeyDown:u,role:k,tabIndex:E},a),{children:[d,f]})),h[25]=_,h[26]=n,h[27]=a,h[28]=C,h[29]=s,h[30]=c,h[31]=u,h[32]=k,h[33]=E,h[34]=d,h[35]=f,h[36]=p):p=h[36],p}var oT=function(e){var t,n=e.closeOnClickOutside,r=void 0===n||n,o=e.items,a=dl().state,i=r5(),l=i.setPanel,s=i.triggerRef,c=i.setSelectedIndex,u=i.selectedIndex,d=uQ().mounted,f=oB(a.devToolsPosition.split(\"-\",2),2),p=f[0],h=f[1],m=(0,w.useRef)(null);ne(m,s,r&&d,function(e){switch(e){case\"escape\":l(null),c(-1);return;case\"outside\":if(!r)return;l(null),c(-1);return;default:return null}}),(0,w.useLayoutEffect)(function(){var e;null==(e=m.current)||e.focus(),oN({index:-1===u?\"first\":u,menuRef:m,setSelectedIndex:c})},[]);var g=r3(a),y=oB(a.devToolsPosition.split(\"-\",2),2),v=y[0],b=y[1],x=p===v&&h===b?g:ow,C=(oj(t={},p,\"\".concat(x,\"px\")),oj(t,h,\"\".concat(ow,\"px\")),oj(t,\"top\"===p?\"bottom\":\"top\",\"auto\"),oj(t,\"left\"===h?\"right\":\"left\",\"auto\"),t),_=o.filter(function(e){return!!e}),k=_.filter(function(e){return!e.footer}),E=_.filter(function(e){return e.footer});return(0,A.jsx)(\"div\",{ref:m,onKeyDown:function(e){e.preventDefault();var t=_.filter(function(e){return e.onClick}).length;switch(e.key){case\"ArrowDown\":oN({index:u>=t-1?0:u+1,menuRef:m,setSelectedIndex:c});break;case\"ArrowUp\":oN({index:u<=0?t-1:u-1,menuRef:m,setSelectedIndex:c});break;case\"Home\":oN({index:\"first\",menuRef:m,setSelectedIndex:c});break;case\"End\":oN({index:\"last\",menuRef:m,setSelectedIndex:c});break;case\"n\":e.ctrlKey&&oN({index:u>=t-1?0:u+1,menuRef:m,setSelectedIndex:c});break;case\"p\":e.ctrlKey&&oN({index:u<=0?t-1:u-1,menuRef:m,setSelectedIndex:c})}},id:\"nextjs-dev-tools-menu\",role:\"menu\",dir:\"ltr\",\"aria-orientation\":\"vertical\",\"aria-label\":\"Next.js Dev Tools Items\",tabIndex:-1,style:oS({outline:0,WebkitFontSmoothing:\"antialiased\",display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",background:\"var(--color-background-100)\",backgroundClip:\"padding-box\",boxShadow:\"var(--shadow-menu)\",borderRadius:\"var(--rounded-xl)\",position:\"fixed\",fontFamily:\"var(--font-stack-sans)\",zIndex:\"var(--top-z-index)\",overflow:\"hidden\",opacity:1,minWidth:\"248px\",transition:\"opacity var(--animate-out-duration-ms) var(--animate-out-timing-function)\",border:\"1px solid var(--color-gray-alpha-400)\"},C),children:(0,A.jsxs)(oP,{value:{selectedIndex:u,setSelectedIndex:c},children:[(0,A.jsx)(\"div\",{style:{padding:\"6px\",width:\"100%\"},children:k.map(function(e,t){return(0,A.jsx)(oI,oS({title:e.title,label:e.label,value:e.value,onClick:e.onClick,index:e.onClick?oz(k,t):void 0},e.attributes),e.label)})}),(0,A.jsx)(\"div\",{className:\"dev-tools-indicator-footer\",children:E.map(function(e,t){var n;return(0,A.jsx)(oI,oO(oS({title:e.title,label:e.label,value:e.value,onClick:e.onClick},e.attributes),{index:e.onClick?oz(E,t)+(n=k).filter(function(e){return e.onClick}).length:void 0}),e.label)})})]})})};function oz(e,t){for(var n=0,r=0;r<=t&&r<e.length;r++)if(e[r].onClick){if(r===t)return n;n++}return n}function oD(e){var t,n,r=(0,x.c)(4),o=e.children,a=o>0;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"span\",{className:\"dev-tools-indicator-issue-count-indicator\"}),r[0]=t):t=r[0],r[1]!==o||r[2]!==a?(n=(0,A.jsxs)(\"span\",{className:\"dev-tools-indicator-issue-count\",\"data-has-issues\":a,children:[t,o]}),r[1]=o,r[2]=a,r[3]=n):n=r[3],n}function oL(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:(0,A.jsx)(\"path\",{fill:\"#666\",fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M5.50011 1.93945L6.03044 2.46978L10.8537 7.293C11.2442 7.68353 11.2442 8.31669 10.8537 8.70722L6.03044 13.5304L5.50011 14.0608L4.43945 13.0001L4.96978 12.4698L9.43945 8.00011L4.96978 3.53044L4.43945 3.00011L5.50011 1.93945Z\"})}),t[0]=e):e=t[0],e}function oN(e){var t,n=e.index,r=e.menuRef,o=e.setSelectedIndex;if(\"first\"===n)return void setTimeout(function(){var e,t=null==(e=r.current)?void 0:e.querySelectorAll('[role=\"menuitem\"]');t&&oN({index:Number(t[0].getAttribute(\"data-index\")),menuRef:r,setSelectedIndex:o})});if(\"last\"===n)return void setTimeout(function(){var e,t=null==(e=r.current)?void 0:e.querySelectorAll('[role=\"menuitem\"]');t&&oN({index:t.length-1,menuRef:r,setSelectedIndex:o})});var a=null==(t=r.current)?void 0:t.querySelector('[data-index=\"'.concat(n,'\"]'));a&&(o(n),null==a||a.focus())}function oR(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var oM=(0,w.createContext)(null),oZ=function(e){var t=.95*window.innerWidth,n=.95*window.innerHeight;return{width:Math.min(t,Math.max(e.minWidth,e.width)),height:Math.min(n,Math.max(e.minHeight,e.height))}},oU=function(e){var t,n,r,o,a,i,l,s=e.value,c=e.children,u=null!=(a=s.minWidth)?a:100,d=null!=(i=s.minHeight)?i:80,f=s.maxWidth,p=s.maxHeight,h=(t=(0,w.useState)(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return oR(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oR(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),m=h[0],g=h[1],y=null!=(l=s.storageKey)?l:et,v=(0,w.useCallback)(function(){if(s.resizeRef.current&&null===m){var e=s.devToolsPanelSize[y];if(e){var t,n,r=oZ((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},e),n=n={minWidth:null!=u?u:100,minHeight:null!=d?d:80},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),o=r.height,a=r.width;return s.resizeRef.current.style.width=\"\".concat(a,\"px\"),s.resizeRef.current.style.height=\"\".concat(o,\"px\"),!0}}},[s.resizeRef,m,y,u,d,s.devToolsPanelSize]);return(0,w.useLayoutEffect)(function(){var e;if(!v()&&s.resizeRef.current&&(null==(e=s.initialSize)?void 0:e.height)&&s.initialSize.width){var t=oZ({height:s.initialSize.height,width:s.initialSize.width,minWidth:null!=u?u:100,minHeight:null!=d?d:80}),n=t.height,r=t.width;s.resizeRef.current.style.width=\"\".concat(r,\"px\"),s.resizeRef.current.style.height=\"\".concat(n,\"px\")}},[]),(0,w.useLayoutEffect)(function(){return window.addEventListener(\"resize\",v),function(){return window.removeEventListener(\"resize\",v)}},[v,null==(r=s.initialSize)?void 0:r.height,null==(o=s.initialSize)?void 0:o.width,s.resizeRef]),(0,A.jsx)(oM.Provider,{value:{resizeRef:s.resizeRef,minWidth:u,minHeight:d,maxWidth:f,maxHeight:p,draggingDirection:m,setDraggingDirection:g,storageKey:y},children:c})},oF=function(){var e=(0,w.useContext)(oM);if(!e)throw Error(\"useResize must be used within a Resize provider\");return e},oq=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\"),oH={};function oV(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}oH.styleTagTransform=m(),oH.setAttributes=d(),oH.insert=c(),oH.domAPI=l(),oH.insertStyleElement=p(),a()(oq.Z,oH),oq.Z&&oq.Z.locals&&oq.Z.locals;var o$=function(e){var t,n,r,o,a,i,l,s,c,u,d=(0,x.c)(32),f=e.direction,p=e.position,h=oF(),m=h.resizeRef,g=h.minWidth,y=h.minHeight,v=h.maxWidth,b=h.maxHeight,C=h.storageKey,_=h.draggingDirection,k=h.setDraggingDirection;d[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r={top:0,right:0,bottom:0,left:0},d[0]=r):r=d[0];var E=(t=(0,w.useState)(r),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return oV(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oV(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),j=E[0],S=E[1];d[1]!==m.current?(o=function(){if(m.current){var e=m.current,t=window.getComputedStyle(e);S({top:parseFloat(t.borderTopWidth)||0,right:parseFloat(t.borderRightWidth)||0,bottom:parseFloat(t.borderBottomWidth)||0,left:parseFloat(t.borderLeftWidth)||0})}},d[1]=m.current,d[2]=o):o=d[2],d[3]!==m?(a=[m],d[3]=m,d[4]=a):a=d[4],(0,w.useLayoutEffect)(o,a),d[5]!==f||d[6]!==b||d[7]!==v||d[8]!==y||d[9]!==g||d[10]!==m.current||d[11]!==k||d[12]!==C?(i=function(e){if(e.preventDefault(),m.current){k(f);var t=m.current,n=t.getBoundingClientRect(),r=e.clientX,o=e.clientY,a=function(e){var a=oW(f,e.clientX-r,e.clientY-o,n,g,y,v,b),i=a.newWidth,l=a.newHeight;void 0!==i&&(t.style.width=\"\".concat(i,\"px\")),void 0!==l&&(t.style.height=\"\".concat(l,\"px\"))},i=function(){if(k(null),document.removeEventListener(\"mousemove\",a),document.removeEventListener(\"mouseup\",i),m.current){var e,t,n,r=m.current.getBoundingClientRect(),o=r.width,l=r.height;rw({devToolsPanelSize:(e={},t=C,n={width:o,height:l},t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e)})}};document.addEventListener(\"mousemove\",a),document.addEventListener(\"mouseup\",i)}},d[5]=f,d[6]=b,d[7]=v,d[8]=y,d[9]=g,d[10]=m.current,d[11]=k,d[12]=C,d[13]=i):i=d[13];var O=i;if(!(!p.split(\"-\").includes(f)&&(!f.includes(\"-\")||f===oY(p))))return null;var B=j.left+j.right,P=j.top+j.bottom;d[14]!==f?(l=f.includes(\"-\"),d[14]=f,d[15]=l):l=d[15];var I=l,T=\"resize-container \".concat(f,\" \").concat(_&&_!==f?\"no-hover\":\"\");return d[16]!==O||d[17]!==T?(s=(0,A.jsx)(\"div\",{className:T,onMouseDown:O}),d[16]=O,d[17]=T,d[18]=s):s=d[18],d[19]!==j.bottom||d[20]!==j.left||d[21]!==j.right||d[22]!==j.top||d[23]!==f||d[24]!==_||d[25]!==I||d[26]!==B||d[27]!==P?(c=!I&&(0,A.jsx)(\"div\",{className:\"resize-line \".concat(f,\" \").concat(_===f?\"dragging\":\"\"),style:{\"--border-horizontal\":\"\".concat(B,\"px\"),\"--border-vertical\":\"\".concat(P,\"px\"),\"--border-top\":\"\".concat(j.top,\"px\"),\"--border-right\":\"\".concat(j.right,\"px\"),\"--border-bottom\":\"\".concat(j.bottom,\"px\"),\"--border-left\":\"\".concat(j.left,\"px\")}}),d[19]=j.bottom,d[20]=j.left,d[21]=j.right,d[22]=j.top,d[23]=f,d[24]=_,d[25]=I,d[26]=B,d[27]=P,d[28]=c):c=d[28],d[29]!==s||d[30]!==c?(u=(0,A.jsxs)(A.Fragment,{children:[s,c]}),d[29]=s,d[30]=c,d[31]=u):u=d[31],u},oW=function(e,t,n,r,o,a,i,l){var s=null!=i?i:.95*window.innerWidth,c=null!=l?l:.95*window.innerHeight;switch(e){case\"right\":return{newWidth:Math.min(s,Math.max(o,r.width+t)),newHeight:r.height};case\"left\":return{newWidth:Math.min(s,Math.max(o,r.width-t)),newHeight:r.height};case\"bottom\":return{newWidth:r.width,newHeight:Math.min(c,Math.max(a,r.height+n))};case\"top\":return{newWidth:r.width,newHeight:Math.min(c,Math.max(a,r.height-n))};case\"top-left\":return{newWidth:Math.min(s,Math.max(o,r.width-t)),newHeight:Math.min(c,Math.max(a,r.height-n))};case\"top-right\":return{newWidth:Math.min(s,Math.max(o,r.width+t)),newHeight:Math.min(c,Math.max(a,r.height-n))};case\"bottom-left\":return{newWidth:Math.min(s,Math.max(o,r.width-t)),newHeight:Math.min(c,Math.max(a,r.height+n))};case\"bottom-right\":return{newWidth:Math.min(s,Math.max(o,r.width+t)),newHeight:Math.min(c,Math.max(a,r.height+n))};default:return null}};function oY(e){switch(e){case\"top-left\":return\"bottom-right\";case\"top-right\":return\"bottom-left\";case\"bottom-left\":return\"top-right\";case\"bottom-right\":return\"top-left\";default:return null}}var oK=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/panel/dynamic-panel.css\"),oX={};function oG(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function oQ(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oJ(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){oQ(e,t,n[t])})}return e}function o0(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return oG(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oG(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function o1(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"width\";if(\"number\"==typeof e)return e;var n=document.createElement(\"div\");n.style.position=\"absolute\",n.style.visibility=\"hidden\",\"width\"===t?n.style.width=e:n.style.height=e,document.body.appendChild(n);var r=\"width\"===t?n.offsetWidth:n.offsetHeight;return document.body.removeChild(n),r}function o2(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g=e.header,y=e.children,v=e.draggable,b=void 0!==v&&v,C=e.sizeConfig,_=void 0===C?{kind:\"resizable\",minWidth:400,minHeight:350,maxWidth:1e3,maxHeight:1e3,initialSize:{height:400,width:500}}:C,k=e.closeOnClickOutside,E=void 0!==k&&k,j=e.sharePanelSizeGlobally,S=e.sharePanelPositionGlobally,O=e.containerProps,B=r5().setPanel,P=uQ(),I=P.name,T=P.mounted,z=void 0===j||j?et:\"\".concat(ee,\"_\").concat(I),D=void 0===S||S?en:\"\".concat(J,\"_\").concat(I),L=dl(),N=L.dispatch,R=L.state,M=null!=(h=R.devToolsPanelPosition[D])?h:R.devToolsPosition,Z=o0(M.split(\"-\",2),2),U=Z[0],F=Z[1],q=(0,w.useRef)(null);ne(q,r5().triggerRef,T,function(e){switch(e){case\"escape\":return void B(\"panel-selector\");case\"outside\":E&&B(\"panel-selector\");return;default:return null}});var H=r3(R),V=o0(R.devToolsPosition.split(\"-\",2),2),$=V[0],W=V[1],Y=U===$&&F===W?H:ow,K=(oQ(m={},U,\"\".concat(Y,\"px\")),oQ(m,F,\"\".concat(ow,\"px\")),oQ(m,\"top\"===U?\"bottom\":\"top\",\"auto\"),oQ(m,\"left\"===F?\"right\":\"left\",\"auto\"),m),G=\"resizable\"===_.kind,Q=(t=G?_.minWidth:void 0,n=G?_.minHeight:void 0,r=G?_.maxWidth:void 0,o=G?_.maxHeight:void 0,(s=(0,x.c)(11))[0]!==o||s[1]!==r||s[2]!==n||s[3]!==t?(a=function(){return{minWidth:t?o1(t,\"width\"):void 0,minHeight:n?o1(n,\"height\"):void 0,maxWidth:r?o1(r,\"width\"):void 0,maxHeight:o?o1(o,\"height\"):void 0}},s[0]=o,s[1]=r,s[2]=n,s[3]=t,s[4]=a):a=s[4],u=(c=o0((0,w.useState)(a),2))[0],d=c[1],s[5]!==o||s[6]!==r||s[7]!==n||s[8]!==t?(i=function(){var e=function(){d({minWidth:t?o1(t,\"width\"):void 0,minHeight:n?o1(n,\"height\"):void 0,maxWidth:r?o1(r,\"width\"):void 0,maxHeight:o?o1(o,\"height\"):void 0})};return window.addEventListener(\"resize\",e),function(){return window.removeEventListener(\"resize\",e)}},l=[t,n,r,o],s[5]=o,s[6]=r,s[7]=n,s[8]=t,s[9]=i,s[10]=l):(i=s[9],l=s[10]),(0,w.useEffect)(i,l),u),er=Q.minWidth,eo=Q.minHeight,ea=Q.maxWidth,ei=Q.maxHeight,el=I?\"\".concat(ee,\"_\").concat(I):et,es=R.devToolsPanelSize[el];return(0,A.jsx)(oU,{value:{resizeRef:q,initialSize:\"resizable\"===_.kind?_.initialSize:_,minWidth:er,minHeight:eo,maxWidth:ea,maxHeight:ei,devToolsPosition:R.devToolsPosition,devToolsPanelSize:R.devToolsPanelSize,storageKey:z},children:(0,A.jsx)(\"div\",{tabIndex:-1,ref:q,className:\"dynamic-panel-container\",style:oJ({\"--panel-top\":K.top,\"--panel-bottom\":K.bottom,\"--panel-left\":K.left,\"--panel-right\":K.right},G?{\"--panel-min-width\":er?\"\".concat(er,\"px\"):void 0,\"--panel-min-height\":eo?\"\".concat(eo,\"px\"):void 0,\"--panel-max-width\":ea?\"\".concat(ea,\"px\"):void 0,\"--panel-max-height\":ei?\"\".concat(ei,\"px\"):void 0}:{\"--panel-height\":\"\".concat(es?es.height:_.height,\"px\"),\"--panel-width\":\"\".concat(es?es.width:_.width,\"px\")}),children:(0,A.jsx)(os,{disabled:!b,children:(0,A.jsx)(oy,{dragHandleSelector:\".resize-container\",avoidZone:{corner:R.devToolsPosition,square:25/R.scale,padding:ow},padding:ow,position:M,setPosition:function(e){N({type:X,devToolsPanelPosition:e,key:D}),\"resizable\"===_.kind&&rw({devToolsPanelPosition:oQ({},D,e)})},style:{overflow:\"auto\",width:\"100%\",height:\"100%\"},disableDrag:!b,children:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(\"div\",(f=oJ({},O),p=p={className:\"panel-content-container \".concat((null==O?void 0:O.className)||\"\"),style:oJ({},null==O?void 0:O.style),children:[(0,A.jsx)(ou,{children:g}),(0,A.jsx)(\"div\",{\"data-nextjs-scrollable-content\":!0,className:\"draggable-content\",children:y})]},Object.getOwnPropertyDescriptors?Object.defineProperties(f,Object.getOwnPropertyDescriptors(p)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(p)).forEach(function(e){Object.defineProperty(f,e,Object.getOwnPropertyDescriptor(p,e))}),f)),G&&(0,A.jsxs)(A.Fragment,{children:[(!_.sides||_.sides.includes(\"vertical\"))&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(o$,{position:M,direction:\"top\"}),(0,A.jsx)(o$,{position:M,direction:\"bottom\"})]}),(!_.sides||_.sides.includes(\"horizontal\"))&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(o$,{position:M,direction:\"right\"}),(0,A.jsx)(o$,{position:M,direction:\"left\"})]}),(!_.sides||_.sides.includes(\"diagonal\"))&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(o$,{position:M,direction:\"top-left\"}),(0,A.jsx)(o$,{position:M,direction:\"top-right\"}),(0,A.jsx)(o$,{position:M,direction:\"bottom-left\"}),(0,A.jsx)(o$,{position:M,direction:\"bottom-right\"})]})]})]})})})})})}oX.styleTagTransform=m(),oX.setAttributes=d(),oX.insert=c(),oX.domAPI=l(),oX.insertStyleElement=p(),a()(oK.Z,oX),oK.Z&&oK.Z.locals&&oK.Z.locals;var o4=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\"),o5={};function o3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}o5.styleTagTransform=m(),o5.setAttributes=d(),o5.insert=c(),o5.domAPI=l(),o5.insertStyleElement=p(),a()(o4.Z,o5),o4.Z&&o4.Z.locals&&o4.Z.locals;var o6=new Set,o9={subscribe:function(e){return o6.add(e),function(){return o6.delete(e)}},getSnapshot:function(){return at.getRoot()},getServerSnapshot:function(){return at.getRoot()}},o8=o9.subscribe,o7=o9.getSnapshot,ae=o9.getServerSnapshot,at=function(e){var t=e.getCharacters,n=void 0===t?function(e){return[e]}:t,r=e.compare,o=void 0===r?function(e,t){return e===t}:r,a={value:void 0,children:{}};function i(){var e=!0,t=!1,n=void 0;try{for(var r,o=o6[Symbol.iterator]();!(e=(r=o.next()).done);e=!0)(0,r.value)()}catch(e){t=!0,n=e}finally{try{e||null==o.return||o.return()}finally{if(t)throw n}}}return{insert:function(e){var t=a,r=n(e),o=!0,l=!1,s=void 0;try{for(var c,u=r[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var d=c.value;t.children[d]||(t.children[d]={value:void 0,children:{}}),t=t.children[d]}}catch(e){l=!0,s=e}finally{try{o||null==u.return||u.return()}finally{if(l)throw s}}t.value=e,a=o3({},a),i()},remove:function(e){var t=a,r=n(e),l=[],s=!0,c=!0,u=!1,d=void 0;try{for(var f,p=r[Symbol.iterator]();!(c=(f=p.next()).done);c=!0){var h=f.value;if(!t.children[h]){s=!1;break}l.push(t),t=t.children[h]}}catch(e){u=!0,d=e}finally{try{c||null==p.return||p.return()}finally{if(u)throw d}}if(s&&o(t.value,e)){t.value=void 0;for(var m=l.length-1;m>=0;m--){var g=l[m],y=r[m];0===Object.keys(g.children[y].children).length&&delete g.children[y]}a=o3({},a),i()}},getRoot:function(){return a}}}({compare:function(e,t){return!!e&&!!t&&e.pagePath===t.pagePath&&e.type===t.type&&e.boundaryType===t.boundaryType},getCharacters:function(e){return e.pagePath.split(\"/\")}}),an=at.insert,ar=at.remove,ao=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\"),aa={};aa.styleTagTransform=m(),aa.setAttributes=d(),aa.insert=c(),aa.domAPI=l(),aa.insertStyleElement=p(),a()(ao.Z,aa),ao.Z&&ao.Z.locals&&ao.Z.locals;let ai={};function al(e,t){let n=w.useRef(ai);return n.current===ai&&(n.current=e(t)),n}let as=[];function ac(e){w.useEffect(e,as)}class au{static create(){return new au}currentId=0;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=0,t()},e)}isStarted(){return 0!==this.currentId}clear=()=>{0!==this.currentId&&(clearTimeout(this.currentId),this.currentId=0)};disposeEffect=()=>this.clear}function ad(){let e=al(au.create).current;return ac(e.disposeEffect),e}let af=C[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],ap=af&&af!==w.useLayoutEffect?af:e=>e();function ah(e){let t=al(am).current;return t.next=e,ap(t.effect),t.trampoline}function am(){let e={next:void 0,callback:ag,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function ag(){}function ay({controlled:e,default:t,name:n,state:r=\"value\"}){let{current:o}=w.useRef(void 0!==e),[a,i]=w.useState(t),l=w.useCallback(e=>{o||i(e)},[]);return[o?e:a,l]}let av={...C},ab=0,aA=av.useId;function ax(e,t){if(void 0!==aA){let n=aA();return e??(t?`${t}-${n}`:n)}return function(e,t=\"mui\"){let[n,r]=w.useState(e),o=e||n;return w.useEffect(()=>{null==n&&(ab+=1,r(`${t}-${ab}`))},[n,t]),o}(e,t)}function aw(){let e=new Map;return{emit(t,n){e.get(t)?.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}let aC=\"undefined\"!=typeof document?w.useLayoutEffect:()=>{},a_=w.createContext(null),ak=w.createContext(null),aE=()=>w.useContext(a_)?.id||null,aj=()=>w.useContext(ak);function aS(e){let{children:t,id:n}=e,r=aE();return(0,A.jsx)(a_.Provider,{value:w.useMemo(()=>({id:n,parentId:r}),[n,r]),children:t})}function aO(e){let{children:t}=e,n=w.useRef([]),r=w.useCallback(e=>{n.current=[...n.current,e]},[]),o=w.useCallback(e=>{n.current=n.current.filter(t=>t!==e)},[]),[a]=w.useState(()=>aw());return(0,A.jsx)(ak.Provider,{value:w.useMemo(()=>({nodesRef:n,addNode:r,removeNode:o,events:a}),[r,o,a]),children:t})}function aB(e){let{open:t=!1,onOpenChange:n,elements:r}=e,o=ax(),a=w.useRef({}),[i]=w.useState(()=>aw()),l=null!=aE(),[s,c]=w.useState(r.reference),u=ah((e,t,r)=>{a.current.openEvent=e?t:void 0,i.emit(\"openchange\",{open:e,event:t,reason:r,nested:l}),n?.(e,t,r)}),d=w.useMemo(()=>({setPositionReference:c}),[]),f=w.useMemo(()=>({reference:s||r.reference||null,floating:r.floating||null,domReference:r.reference}),[s,r.reference,r.floating]);return w.useMemo(()=>({dataRef:a,open:t,onOpenChange:u,elements:f,events:i,floatingId:o,refs:d}),[t,u,f,i,o,d])}function aP(){return\"undefined\"!=typeof window}function aI(e){return aD(e)?(e.nodeName||\"\").toLowerCase():\"#document\"}function aT(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function az(e){var t;return null==(t=(aD(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function aD(e){return!!aP()&&(e instanceof Node||e instanceof aT(e).Node)}function aL(e){return!!aP()&&(e instanceof Element||e instanceof aT(e).Element)}function aN(e){return!!aP()&&(e instanceof HTMLElement||e instanceof aT(e).HTMLElement)}function aR(e){return!!aP()&&\"undefined\"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof aT(e).ShadowRoot)}let aM=new Set([\"inline\",\"contents\"]);function aZ(e){let{overflow:t,overflowX:n,overflowY:r,display:o}=aG(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!aM.has(o)}let aU=new Set([\"table\",\"td\",\"th\"]),aF=[\":popover-open\",\":modal\"];function aq(e){return aF.some(t=>{try{return e.matches(t)}catch(e){return!1}})}let aH=[\"transform\",\"translate\",\"scale\",\"rotate\",\"perspective\"],aV=[\"transform\",\"translate\",\"scale\",\"rotate\",\"perspective\",\"filter\"],a$=[\"paint\",\"layout\",\"strict\",\"content\"];function aW(e){let t=aY(),n=aL(e)?aG(e):e;return aH.some(e=>!!n[e]&&\"none\"!==n[e])||!!n.containerType&&\"normal\"!==n.containerType||!t&&!!n.backdropFilter&&\"none\"!==n.backdropFilter||!t&&!!n.filter&&\"none\"!==n.filter||aV.some(e=>(n.willChange||\"\").includes(e))||a$.some(e=>(n.contain||\"\").includes(e))}function aY(){return\"undefined\"!=typeof CSS&&!!CSS.supports&&CSS.supports(\"-webkit-backdrop-filter\",\"none\")}let aK=new Set([\"html\",\"body\",\"#document\"]);function aX(e){return aK.has(aI(e))}function aG(e){return aT(e).getComputedStyle(e)}function aQ(e){return aL(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function aJ(e){if(\"html\"===aI(e))return e;let t=e.assignedSlot||e.parentNode||aR(e)&&e.host||az(e);return aR(t)?t.host:t}function a0(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);let o=function e(t){let n=aJ(t);return aX(n)?t.ownerDocument?t.ownerDocument.body:t.body:aN(n)&&aZ(n)?n:e(n)}(e),a=o===(null==(r=e.ownerDocument)?void 0:r.body),i=aT(o);if(a){let e=a1(i);return t.concat(i,i.visualViewport||[],aZ(o)?o:[],e&&n?a0(e):[])}return t.concat(o,a0(o,[],n))}function a1(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function a2(e){let t=al(a4,e).current;return t.next=e,aC(t.effect),t}function a4(e){let t={current:e,next:e,effect:()=>{t.current=t.next}};return t}let a5=\"undefined\"!=typeof navigator,a3=function(){if(!a5)return{platform:\"\",maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??\"\",maxTouchPoints:navigator.maxTouchPoints??-1}}(),a6=function(){if(!a5)return\"\";let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??\"\"}(),a9=function(){if(!a5)return\"\";let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:t})=>`${e}/${t}`).join(\" \"):navigator.userAgent}(),a8=\"undefined\"!=typeof CSS&&!!CSS.supports&&CSS.supports(\"-webkit-backdrop-filter:none\"),a7=\"MacIntel\"===a3.platform&&a3.maxTouchPoints>1||/iP(hone|ad|od)|iOS/.test(a3.platform);a5&&/firefox/i.test(a9);let ie=a5&&/apple/i.test(navigator.vendor),it=a5&&/android/i.test(a6)||/android/i.test(a9),ir=a5&&a6.toLowerCase().startsWith(\"mac\")&&!navigator.maxTouchPoints,io=a9.includes(\"jsdom/\");function ia(e){e.preventDefault(),e.stopPropagation()}function ii(e){return 0===e.mozInputSource&&!!e.isTrusted||(it&&e.pointerType?\"click\"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function il(e){return!io&&(!it&&0===e.width&&0===e.height||it&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&\"mouse\"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&\"touch\"===e.pointerType)}function is(e,t){let n=[\"mouse\",\"pen\"];return t||n.push(\"\",void 0),n.includes(e)}let ic=\"data-base-ui-focusable\",iu=\"active\",id=\"selected\",ip=\"ArrowLeft\",ih=\"ArrowRight\",im=\"ArrowUp\",ig=\"ArrowDown\";function iy(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function iv(e,t){if(!e||!t)return!1;let n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&aR(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function ib(e){return\"composedPath\"in e?e.composedPath()[0]:e.target}function iA(e,t){return null!=t&&(\"composedPath\"in e?e.composedPath().includes(t):null!=e.target&&t.contains(e.target))}function ix(e){return e?.ownerDocument||document}function iw(e){return aN(e)&&e.matches(\"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\")}function iC(e){return!!e&&\"combobox\"===e.getAttribute(\"role\")&&iw(e)}function i_(e){return e?e.hasAttribute(ic)?e:e.querySelector(`[${ic}]`)||e:null}function ik(e){return`data-base-ui-${e}`}let iE=ik(\"safe-polygon\");function ij(e,t,n){if(n&&!is(n))return 0;if(\"number\"==typeof e)return e;if(\"function\"==typeof e){let n=e();return\"number\"==typeof n?n:n?.[t]}return e?.[t]}function iS(e){return\"function\"==typeof e?e():e}function iO(e,t={}){let{open:n,onOpenChange:r,dataRef:o,events:a,elements:i}=e,{enabled:l=!0,delay:s=0,handleClose:c=null,mouseOnly:u=!1,restMs:d=0,move:f=!0}=t,p=aj(),h=aE(),m=a2(c),g=a2(s),y=a2(n),v=a2(d),b=w.useRef(void 0),A=ad(),x=w.useRef(void 0),C=ad(),_=w.useRef(!0),k=w.useRef(!1),E=w.useRef(()=>{}),j=w.useRef(!1),S=ah(()=>{let e=o.current.openEvent?.type;return e?.includes(\"mouse\")&&\"mousedown\"!==e});w.useEffect(()=>{if(l)return a.on(\"openchange\",e),()=>{a.off(\"openchange\",e)};function e({open:e}){e||(A.clear(),C.clear(),_.current=!0,j.current=!1)}},[l,a,A,C]),w.useEffect(()=>{if(!l||!m.current||!n)return;function e(e){S()&&r(!1,e,\"hover\")}let t=ix(i.floating).documentElement;return t.addEventListener(\"mouseleave\",e),()=>{t.removeEventListener(\"mouseleave\",e)}},[i.floating,n,r,l,m,S]);let O=w.useCallback((e,t=!0,n=\"hover\")=>{let o=ij(g.current,\"close\",b.current);o&&!x.current?A.start(o,()=>r(!1,e,n)):t&&(A.clear(),r(!1,e,n))},[g,r,A]),B=ah(()=>{E.current(),x.current=void 0}),P=ah(()=>{if(k.current){let e=ix(i.floating).body;e.style.pointerEvents=\"\",e.removeAttribute(iE),k.current=!1}}),I=ah(()=>!!o.current.openEvent&&[\"click\",\"mousedown\"].includes(o.current.openEvent.type));w.useEffect(()=>{if(l&&aL(i.domReference)){let r=i.domReference,o=i.floating;return n&&r.addEventListener(\"mouseleave\",a),f&&r.addEventListener(\"mousemove\",e,{once:!0}),r.addEventListener(\"mouseenter\",e),r.addEventListener(\"mouseleave\",t),o&&(o.addEventListener(\"mouseleave\",a),o.addEventListener(\"mouseenter\",s),o.addEventListener(\"mouseleave\",c)),()=>{n&&r.removeEventListener(\"mouseleave\",a),f&&r.removeEventListener(\"mousemove\",e),r.removeEventListener(\"mouseenter\",e),r.removeEventListener(\"mouseleave\",t),o&&(o.removeEventListener(\"mouseleave\",a),o.removeEventListener(\"mouseenter\",s),o.removeEventListener(\"mouseleave\",c))}}function e(e){if(A.clear(),_.current=!1,u&&!is(b.current)||iS(v.current)>0&&!ij(g.current,\"open\"))return;let t=ij(g.current,\"open\",b.current);t?A.start(t,()=>{y.current||r(!0,e,\"hover\")}):n||r(!0,e,\"hover\")}function t(e){if(I())return void P();E.current();let t=ix(i.floating);if(C.clear(),j.current=!1,m.current&&o.current.floatingContext){n||A.clear(),x.current=m.current({...o.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){P(),B(),I()||O(e,!0,\"safe-polygon\")}});let r=x.current;t.addEventListener(\"mousemove\",r),E.current=()=>{t.removeEventListener(\"mousemove\",r)};return}\"touch\"===b.current&&iv(i.floating,e.relatedTarget)||O(e)}function a(e){!I()&&o.current.floatingContext&&m.current?.({...o.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){P(),B(),I()||O(e)}})(e)}function s(){A.clear()}function c(e){I()||O(e,!1)}},[i,l,e,u,f,O,B,P,r,n,y,p,g,m,o,I,v,A,C]),aC(()=>{if(l&&n&&m.current?.__options?.blockPointerEvents&&S()){k.current=!0;let e=i.floating;if(aL(i.domReference)&&e){let t=ix(i.floating).body;t.setAttribute(iE,\"\");let n=i.domReference,r=p?.nodesRef.current.find(e=>e.id===h)?.context?.elements.floating;return r&&(r.style.pointerEvents=\"\"),t.style.pointerEvents=\"none\",n.style.pointerEvents=\"auto\",e.style.pointerEvents=\"auto\",()=>{t.style.pointerEvents=\"\",n.style.pointerEvents=\"\",e.style.pointerEvents=\"\"}}}},[l,n,h,i,p,m,S]),aC(()=>{n||(b.current=void 0,j.current=!1,B(),P())},[n,B,P]),w.useEffect(()=>()=>{B(),A.clear(),C.clear(),P()},[l,i.domReference,B,P,A,C]);let T=w.useMemo(()=>{function e(e){b.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e;function o(){_.current||y.current||r(!0,t,\"hover\")}(!u||is(b.current))&&!n&&0!==iS(v.current)&&(j.current&&e.movementX**2+e.movementY**2<2||(C.clear(),\"touch\"===b.current?o():(j.current=!0,C.start(iS(v.current),o))))}}},[u,r,n,y,v,C]);return w.useMemo(()=>l?{reference:T}:{},[l,T])}function iB(e,t,n=!0){return e.filter(e=>e.parentId===t&&(!n||e.context?.open)).flatMap(t=>[t,...iB(e,t.id,n)])}function iP(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function iI(e,t){let[n,r]=e,o=!1,a=t.length;for(let e=0,i=a-1;e<a;i=e++){let[a,l]=t[e]||[0,0],[s,c]=t[i]||[0,0];l>=r!=c>=r&&n<=(s-a)*(r-l)/(c-l)+a&&(o=!o)}return o}function iT(e={}){let{buffer:t=.5,blockPointerEvents:n=!1,requireIntent:r=!0}=e,o=new au,a=!1,i=null,l=null,s=\"undefined\"!=typeof performance?performance.now():0,c=({x:e,y:n,placement:c,elements:u,onClose:d,nodeId:f,tree:p})=>function(h){var m,g;function y(){o.clear(),d()}if(o.clear(),!u.domReference||!u.floating||null==c||null==e||null==n)return;let{clientX:v,clientY:b}=h,A=[v,b],x=ib(h),w=\"mouseleave\"===h.type,C=iv(u.floating,x),_=iv(u.domReference,x),k=u.domReference.getBoundingClientRect(),E=u.floating.getBoundingClientRect(),j=c.split(\"-\")[0],S=e>E.right-E.width/2,O=n>E.bottom-E.height/2,B=(m=A,g=k,m[0]>=g.x&&m[0]<=g.x+g.width&&m[1]>=g.y&&m[1]<=g.y+g.height),P=E.width>k.width,I=E.height>k.height,T=(P?k:E).left,z=(P?k:E).right,D=(I?k:E).top,L=(I?k:E).bottom;if(C&&(a=!0,!w))return;if(_&&(a=!1),_&&!w){a=!0;return}if(w&&aL(h.relatedTarget)&&iv(u.floating,h.relatedTarget)||p&&iB(p.nodesRef.current,f).some(({context:e})=>e?.open))return;if(\"top\"===j&&n>=k.bottom-1||\"bottom\"===j&&n<=k.top+1||\"left\"===j&&e>=k.right-1||\"right\"===j&&e<=k.left+1)return y();let N=[];switch(j){case\"top\":N=[[T,k.top+1],[T,E.bottom-1],[z,E.bottom-1],[z,k.top+1]];break;case\"bottom\":N=[[T,E.top+1],[T,k.bottom-1],[z,k.bottom-1],[z,E.top+1]];break;case\"left\":N=[[E.right-1,L],[E.right-1,D],[k.left+1,D],[k.left+1,L]];break;case\"right\":N=[[k.right-1,L],[k.right-1,D],[E.left+1,D],[E.left+1,L]]}if(!iI([v,b],N)){if(a&&!B)return y();if(!w&&r){let e=function(e,t){let n=performance.now(),r=n-s;if(null===i||null===l||0===r)return i=e,l=t,s=n,null;let o=e-i,a=t-l,c=Math.sqrt(o*o+a*a);return i=e,l=t,s=n,c/r}(h.clientX,h.clientY);if(null!==e&&e<.1)return y()}iI([v,b],function([e,n]){switch(j){case\"top\":{let r=[[E.left,S||P?E.bottom-t:E.top],[E.right,S?P?E.bottom-t:E.top:E.bottom-t]];return[[P?e+t/2:S?e+4*t:e-4*t,n+t+1],[P?e-t/2:S?e+4*t:e-4*t,n+t+1],...r]}case\"bottom\":{let r=[[E.left,S||P?E.top+t:E.bottom],[E.right,S?P?E.top+t:E.bottom:E.top+t]];return[[P?e+t/2:S?e+4*t:e-4*t,n-t],[P?e-t/2:S?e+4*t:e-4*t,n-t],...r]}case\"left\":return[[O||I?E.right-t:E.left,E.top],[O?I?E.right-t:E.left:E.right-t,E.bottom],[e+t+1,I?n+t/2:O?n+4*t:n-4*t],[e+t+1,I?n-t/2:O?n+4*t:n-4*t]];case\"right\":{let r=[[O||I?E.left+t:E.right,E.top],[O?I?E.left+t:E.right:E.left+t,E.bottom]];return[[e-t,I?n+t/2:O?n+4*t:n-4*t],[e-t,I?n-t/2:O?n+4*t:n-4*t],...r]}default:return[]}}([e,n]))?!a&&r&&o.start(40,y):y()}};return c.__options={blockPointerEvents:n},c}let iz=ir&&ie;function iD(e,t={}){let{open:n,onOpenChange:r,events:o,dataRef:a,elements:i}=e,{enabled:l=!0,visibleOnly:s=!0}=t,c=w.useRef(!1),u=ad(),d=w.useRef(!0);w.useEffect(()=>{if(!l)return;let e=aT(i.domReference);function t(){!n&&aN(i.domReference)&&i.domReference===iy(ix(i.domReference))&&(c.current=!0)}function r(){d.current=!0}function o(){d.current=!1}return e.addEventListener(\"blur\",t),iz&&(e.addEventListener(\"keydown\",r,!0),e.addEventListener(\"pointerdown\",o,!0)),()=>{e.removeEventListener(\"blur\",t),iz&&(e.removeEventListener(\"keydown\",r,!0),e.removeEventListener(\"pointerdown\",o,!0))}},[i.domReference,n,l]),w.useEffect(()=>{if(l)return o.on(\"openchange\",e),()=>{o.off(\"openchange\",e)};function e({reason:e}){(\"reference-press\"===e||\"escape-key\"===e)&&(c.current=!0)}},[o,l]);let f=w.useMemo(()=>({onMouseLeave(){c.current=!1},onFocus(e){if(c.current)return;let t=ib(e.nativeEvent);if(s&&aL(t)){if(iz&&!e.relatedTarget){if(!d.current&&!iw(t))return}else if(!function(e){if(!e||io)return!0;try{return e.matches(\":focus-visible\")}catch(e){return!0}}(t))return}r(!0,e.nativeEvent,\"focus\")},onBlur(e){c.current=!1;let t=e.relatedTarget,n=e.nativeEvent,o=aL(t)&&t.hasAttribute(ik(\"focus-guard\"))&&\"outside\"===t.getAttribute(\"data-type\");u.start(0,()=>{let e=iy(i.domReference?i.domReference.ownerDocument:document);(t||e!==i.domReference)&&(iv(a.current.floatingContext?.refs.floating.current,e)||iv(i.domReference,e)||o||r(!1,n,\"focus\"))})}}),[a,i.domReference,r,s,u]);return w.useMemo(()=>l?{reference:f}:{},[l,f])}globalThis.requestAnimationFrame;let iL=new class{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=e=>{this.isScheduled=!1;let t=this.callbacks,n=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,n>0)for(let n=0;n<t.length;n+=1)t[n]?.(e)};request(e){let t=this.nextId;return this.nextId+=1,this.callbacks.push(e),this.callbacksCount+=1,this.isScheduled||(requestAnimationFrame(this.tick),this.isScheduled=!0),t}cancel(e){let t=e-this.startId;t<0||t>=this.callbacks.length||(this.callbacks[t]=null,this.callbacksCount-=1)}};class iN{static create(){return new iN}static request(e){return iL.request(e)}static cancel(e){return iL.cancel(e)}currentId=null;request(e){this.cancel(),this.currentId=iL.request(()=>{this.currentId=null,e()})}cancel=()=>{null!==this.currentId&&(iL.cancel(this.currentId),this.currentId=null)};disposeEffect=()=>this.cancel}function iR(){let e=al(iN.create).current;return ac(e.disposeEffect),e}let iM={style:{transition:\"none\"}},iZ={},iU=[],iF={fallbackAxisSide:\"none\"},iq={fallbackAxisSide:\"end\"},iH={intentional:\"onClick\",sloppy:\"onPointerDown\"};function iV(e){return{escapeKey:\"boolean\"==typeof e?e:e?.escapeKey??!1,outsidePress:\"boolean\"==typeof e?e:e?.outsidePress??!0}}function i$(e,t={}){let{open:n,onOpenChange:r,elements:o,dataRef:a}=e,{enabled:i=!0,escapeKey:l=!0,outsidePress:s=!0,outsidePressEvent:c=\"sloppy\",referencePress:u=!1,referencePressEvent:d=\"sloppy\",ancestorScroll:f=!1,bubbles:p,capture:h}=t,m=aj(),g=ah(\"function\"==typeof s?s:()=>!1),y=\"function\"==typeof s?g:s,v=w.useRef(!1),{escapeKey:b,outsidePress:A}=iV(p),{escapeKey:x,outsidePress:C}=iV(h),_=w.useRef(null),k=ad(),E=ad(),j=w.useRef(!1),S=w.useRef(\"\"),O=ah(e=>{S.current=e.pointerType}),B=ah(()=>{let e=S.current;return\"string\"==typeof c?c:c[\"pen\"!==e&&e?e:\"mouse\"]}),P=ah(e=>{if(!n||!i||!l||\"Escape\"!==e.key||j.current)return;let t=a.current.floatingContext?.nodeId,o=m?iB(m.nodesRef.current,t):[];if(!b&&(e.stopPropagation(),o.length>0)){let e=!0;if(o.forEach(t=>{t.context?.open&&!t.context.dataRef.current.__escapeKeyBubbles&&(e=!1)}),!e)return}r(!1,\"nativeEvent\"in e?e.nativeEvent:e,\"escape-key\")}),I=ah(e=>{let t=B();return\"intentional\"===t&&\"click\"!==e.type||\"sloppy\"===t&&\"click\"===e.type}),T=ah(e=>{let t=()=>{P(e),ib(e)?.removeEventListener(\"keydown\",t)};ib(e)?.addEventListener(\"keydown\",t)}),z=ah(e=>{if(I(e))return;let t=a.current.insideReactTree;a.current.insideReactTree=!1;let n=v.current;if(v.current=!1,\"intentional\"===B()&&n||t||\"function\"==typeof y&&!y(e))return;let i=ib(e),l=`[${ik(\"inert\")}]`,s=ix(o.floating).querySelectorAll(l),c=aL(i)?i:null;for(;c&&!aX(c);){let e=aJ(c);if(aX(e)||!aL(e))break;c=e}if(s.length&&aL(i)&&!i.matches(\"html,body\")&&!iv(i,o.floating)&&Array.from(s).every(e=>!iv(c,e)))return;if(aN(i)){let t=aX(i),n=aG(i),r=/auto|scroll/,o=t||r.test(n.overflowX),a=t||r.test(n.overflowY),l=o&&i.clientWidth>0&&i.scrollWidth>i.clientWidth,s=a&&i.clientHeight>0&&i.scrollHeight>i.clientHeight,c=\"rtl\"===n.direction,u=s&&(c?e.offsetX<=i.offsetWidth-i.clientWidth:e.offsetX>i.clientWidth),d=l&&e.offsetY>i.clientHeight;if(u||d)return}let u=a.current.floatingContext?.nodeId,d=m&&iB(m.nodesRef.current,u).some(t=>iA(e,t.context?.elements.floating));if(iA(e,o.floating)||iA(e,o.domReference)||d)return;let f=m?iB(m.nodesRef.current,u):[];if(f.length>0){let e=!0;if(f.forEach(t=>{t.context?.open&&!t.context.dataRef.current.__outsidePressBubbles&&(e=!1)}),!e)return}r(!1,e,\"outside-press\")}),D=ah(e=>{if(!(\"sloppy\"!==B()||!n||!i||iA(e,o.floating)||iA(e,o.domReference))){if(\"touch\"===e.pointerType){_.current={startTime:Date.now(),startX:e.clientX,startY:e.clientY,dismissOnPointerUp:!1,dismissOnMouseDown:!0},k.start(1e3,()=>{_.current&&(_.current.dismissOnPointerUp=!1,_.current.dismissOnMouseDown=!1)});return}z(e)}}),L=ah(e=>{if(I(e)||(k.clear(),\"mousedown\"===e.type&&_.current&&!_.current.dismissOnMouseDown))return;let t=()=>{\"pointerdown\"===e.type?D(e):z(e),ib(e)?.removeEventListener(e.type,t)};ib(e)?.addEventListener(e.type,t)}),N=ah(e=>{if(\"sloppy\"!==B()||\"touch\"!==e.pointerType||!_.current||iA(e,o.floating)||iA(e,o.domReference))return;let t=Math.abs(e.clientX-_.current.startX),n=Math.abs(e.clientY-_.current.startY),r=Math.sqrt(t*t+n*n);r>5&&(_.current.dismissOnPointerUp=!0),r>10&&(z(e),k.clear(),_.current=null)}),R=ah(e=>{\"sloppy\"!==B()||\"touch\"!==e.pointerType||!_.current||iA(e,o.floating)||iA(e,o.domReference)||(_.current.dismissOnPointerUp&&z(e),k.clear(),_.current=null)});w.useEffect(()=>{if(!n||!i)return;a.current.__escapeKeyBubbles=b,a.current.__outsidePressBubbles=A;let e=new au;function t(e){r(!1,e,\"ancestor-scroll\")}function s(){e.clear(),j.current=!0}function c(){e.start(5*!!aY(),()=>{j.current=!1})}let u=ix(o.floating);u.addEventListener(\"pointerdown\",O,!0),l&&(u.addEventListener(\"keydown\",x?T:P,x),u.addEventListener(\"compositionstart\",s),u.addEventListener(\"compositionend\",c)),y&&(u.addEventListener(\"click\",C?L:z,C),u.addEventListener(\"pointerdown\",C?L:z,C),u.addEventListener(\"pointermove\",N,C),u.addEventListener(\"pointerup\",R,C),u.addEventListener(\"mousedown\",L,C));let d=[];return f&&(aL(o.domReference)&&(d=a0(o.domReference)),aL(o.floating)&&(d=d.concat(a0(o.floating))),!aL(o.reference)&&o.reference&&o.reference.contextElement&&(d=d.concat(a0(o.reference.contextElement)))),(d=d.filter(e=>e!==u.defaultView?.visualViewport)).forEach(e=>{e.addEventListener(\"scroll\",t,{passive:!0})}),()=>{u.removeEventListener(\"pointerdown\",O,!0),l&&(u.removeEventListener(\"keydown\",x?T:P,x),u.removeEventListener(\"compositionstart\",s),u.removeEventListener(\"compositionend\",c)),y&&(u.removeEventListener(\"click\",C?L:z,C),u.removeEventListener(\"pointerdown\",C?L:z,C),u.removeEventListener(\"pointermove\",N,C),u.removeEventListener(\"pointerup\",R,C),u.removeEventListener(\"mousedown\",L,C)),d.forEach(e=>{e.removeEventListener(\"scroll\",t)}),e.clear()}},[a,o,l,y,c,n,r,f,i,b,A,P,x,T,z,C,L,D,N,R,O]),w.useEffect(()=>{a.current.insideReactTree=!1},[a,y]);let M=w.useMemo(()=>({onKeyDown:P,...u&&{[iH[d]]:e=>{r(!1,e.nativeEvent,\"reference-press\")},...\"intentional\"!==d&&{onClick(e){r(!1,e.nativeEvent,\"reference-press\")}}}}),[P,r,u,d]),Z=ah(e=>{let t=ib(e.nativeEvent);iv(o.floating,t)&&(v.current=!0)}),U=ah(()=>{a.current.insideReactTree=!0,E.start(0,()=>{a.current.insideReactTree=!1})}),F=w.useMemo(()=>({onKeyDown:P,onMouseDown:Z,onMouseUp:Z,onPointerDownCapture:U,onMouseDownCapture:U,onClickCapture:U}),[P,Z,U]);return w.useMemo(()=>i?{reference:M,floating:F}:{},[i,M,F])}let iW=new Map([[\"select\",\"listbox\"],[\"combobox\",\"listbox\"],[\"label\",!1]]),iY=[\"top\",\"right\",\"bottom\",\"left\"],iK=Math.min,iX=Math.max,iG=Math.round,iQ=Math.floor,iJ=e=>({x:e,y:e}),i0={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"},i1={start:\"end\",end:\"start\"};function i2(e,t){return\"function\"==typeof e?e(t):e}function i4(e){return e.split(\"-\")[0]}function i5(e){return e.split(\"-\")[1]}function i3(e){return\"x\"===e?\"y\":\"x\"}function i6(e){return\"y\"===e?\"height\":\"width\"}let i9=new Set([\"top\",\"bottom\"]);function i8(e){return i9.has(i4(e))?\"y\":\"x\"}function i7(e){return e.replace(/start|end/g,e=>i1[e])}let le=[\"left\",\"right\"],lt=[\"right\",\"left\"],ln=[\"top\",\"bottom\"],lr=[\"bottom\",\"top\"];function lo(e){return e.replace(/left|right|bottom|top/g,e=>i0[e])}function la(e){return\"number\"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function li(e){let{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function ll(e,t,n){return Math.floor(e/t)!==n}function ls(e,t){return t<0||t>=e.current.length}function lc(e,t){return ld(e,{disabledIndices:t})}function lu(e,t){return ld(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function ld(e,{startingIndex:t=-1,decrement:n=!1,disabledIndices:r,amount:o=1}={}){let a=t;do a+=n?-o:o;while(a>=0&&a<=e.current.length-1&&lf(e,a,r));return a}function lf(e,t,n){if(\"function\"==typeof n)return n(t);if(n)return n.includes(t);let r=e.current[t];return null==r||r.hasAttribute(\"disabled\")||\"true\"===r.getAttribute(\"aria-disabled\")}let lp=0;function lh(e,t={}){let{preventScroll:n=!1,cancelPrevious:r=!0,sync:o=!1}=t;r&&cancelAnimationFrame(lp);let a=()=>e?.focus({preventScroll:n});o?a():lp=requestAnimationFrame(a)}function lm(e,t,n){switch(e){case\"vertical\":return t;case\"horizontal\":return n;default:return t||n}}function lg(e,t){return lm(t,e===im||e===ig,e===ip||e===ih)}function ly(e,t,n){return lm(t,e===ig,n?e===ip:e===ih)||\"Enter\"===e||\" \"===e||\"\"===e}function lv(e=[]){let t=e.map(e=>e?.reference),n=e.map(e=>e?.floating),r=e.map(e=>e?.item),o=w.useCallback(t=>lb(t,e,\"reference\"),t),a=w.useCallback(t=>lb(t,e,\"floating\"),n),i=w.useCallback(t=>lb(t,e,\"item\"),r);return w.useMemo(()=>({getReferenceProps:o,getFloatingProps:a,getItemProps:i}),[o,a,i])}function lb(e,t,n){let r=new Map,o=\"item\"===n,a={};for(let t in\"floating\"===n&&(a.tabIndex=-1,a[ic]=\"\"),e)o&&e&&(t===iu||t===id)||(a[t]=e[t]);for(let i=0;i<t.length;i+=1){let l,s=t[i]?.[n];(l=\"function\"==typeof s?e?s(e):null:s)&&lA(a,l,o,r)}return lA(a,e,o,r),a}function lA(e,t,n,r){for(let o in t){let a=t[o];n&&(o===iu||o===id)||(o.startsWith(\"on\")?(r.has(o)||r.set(o,[]),\"function\"==typeof a&&(r.get(o)?.push(a),e[o]=(...e)=>r.get(o)?.map(t=>t(...e)).find(e=>void 0!==e))):e[o]=a)}}let lx=w.createContext(void 0);function lw(e){let t=w.useContext(lx);if(void 0===t&&!e)throw Error(\"Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.\");return t}let lC=w.createContext(null);function l_(e,t=!1,n=!1){let[r,o]=w.useState(e&&t?\"idle\":void 0),[a,i]=w.useState(e);return e&&!a&&(i(!0),o(\"starting\")),e||!a||\"ending\"===r||n||o(\"ending\"),e||a||\"ending\"!==r||o(void 0),aC(()=>{if(!e&&a&&\"ending\"!==r&&n){let e=iN.request(()=>{o(\"ending\")});return()=>{iN.cancel(e)}}},[e,a,r,n]),aC(()=>{if(!e||t)return;let n=iN.request(()=>{eh.flushSync(()=>{o(void 0)})});return()=>{iN.cancel(n)}},[t,e]),aC(()=>{if(!e||!t)return;e&&a&&\"idle\"!==r&&o(\"starting\");let n=iN.request(()=>{o(\"idle\")});return()=>{iN.cancel(n)}},[t,e,a,o,r]),w.useMemo(()=>({mounted:a,setMounted:i,transitionStatus:r}),[a,r])}function lk(e){let{enabled:t=!0,open:n,ref:r,onComplete:o}=e,a=a2(n),i=ah(o),l=function(e,t=!1){let n=iR();return ah((r,o=null)=>{let a;if(n.cancel(),null!=e){if(\"current\"in e){if(null==e.current)return;a=e.current}else a=e;\"function\"!=typeof a.getAnimations||globalThis.BASE_UI_ANIMATIONS_DISABLED?r():n.request(()=>{function e(){a&&Promise.allSettled(a.getAnimations().map(e=>e.finished)).then(()=>{null!=o&&o.aborted||eh.flushSync(r)})}t?n.request(e):e()})}})}(r,n);w.useEffect(()=>{t&&l(()=>{n===a.current&&i()})},[t,n,i,l,a])}let lE=w.createContext(void 0);function lj(e=!0){let t=w.useContext(lE);if(void 0===t&&!e)throw Error(\"Base UI: DirectionContext is missing.\");return t?.direction??\"ltr\"}function lS(e){return e?.ownerDocument||document}let lO=()=>{},lB={},lP={},lI=\"\";class lT{lockCount=0;restore=null;timeoutLock=au.create();timeoutUnlock=au.create();acquire(e){return this.lockCount+=1,1===this.lockCount&&null===this.restore&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{this.lockCount-=1,0===this.lockCount&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{0===this.lockCount&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(0===this.lockCount||null!==this.restore)return;let t=lS(e).documentElement,n=aT(t).getComputedStyle(t).overflowY;if(\"hidden\"===n||\"clip\"===n){this.restore=lO;return}let r=a7||!function(e){if(\"undefined\"==typeof document)return!1;let t=lS(e);return aT(t).innerWidth-t.documentElement.clientWidth>0}(e);this.restore=r?function(e){let t=lS(e).documentElement,n=t.style.overflow;return t.style.overflow=\"hidden\",()=>{t.style.overflow=n}}(e):function(e){let t=lS(e),n=t.documentElement,r=t.body,o=aT(n),a=0,i=0,l=iN.create();if(a8&&(o.visualViewport?.scale??1)!==1)return()=>{};function s(){let e=o.getComputedStyle(n),t=o.getComputedStyle(r);a=n.scrollTop,i=n.scrollLeft,lB={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},lI=n.style.scrollBehavior,lP={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let l=\"undefined\"!=typeof CSS&&CSS.supports?.(\"scrollbar-gutter\",\"stable\"),s=n.scrollHeight>n.clientHeight,c=n.scrollWidth>n.clientWidth,u=\"scroll\"===e.overflowY||\"scroll\"===t.overflowY,d=\"scroll\"===e.overflowX||\"scroll\"===t.overflowX,f=Math.max(0,o.innerWidth-n.clientWidth),p=Math.max(0,o.innerHeight-n.clientHeight),h=parseFloat(t.marginTop)+parseFloat(t.marginBottom),m=parseFloat(t.marginLeft)+parseFloat(t.marginRight);Object.assign(n.style,{scrollbarGutter:\"stable\",overflowY:!l&&(s||u)?\"scroll\":\"hidden\",overflowX:!l&&(c||d)?\"scroll\":\"hidden\"}),Object.assign(r.style,{position:\"relative\",height:h||p?`calc(100dvh - ${h+p}px)`:\"100dvh\",width:m||f?`calc(100vw - ${m+f}px)`:\"100vw\",boxSizing:\"border-box\",overflow:\"hidden\",scrollBehavior:\"unset\"}),r.scrollTop=a,r.scrollLeft=i,n.setAttribute(\"data-base-ui-scroll-locked\",\"\"),n.style.scrollBehavior=\"unset\"}function c(){Object.assign(n.style,lB),Object.assign(r.style,lP),n.scrollTop=a,n.scrollLeft=i,n.removeAttribute(\"data-base-ui-scroll-locked\"),n.style.scrollBehavior=lI}function u(){c(),l.request(s)}return s(),o.addEventListener(\"resize\",u),()=>{l.cancel(),c(),o.removeEventListener(\"resize\",u)}}(e)}}let lz=new lT;function lD(e){if(e)return({\"focus-out\":\"focus-out\",\"escape-key\":\"escape-key\",\"outside-press\":\"outside-press\",\"list-navigation\":\"list-navigation\",click:\"trigger-press\",hover:\"trigger-hover\",focus:\"trigger-focus\",\"reference-press\":\"trigger-press\",\"safe-polygon\":\"trigger-hover\",\"ancestor-scroll\":void 0})[e]}let lL=w.createContext(void 0);function lN(e=!0){let t=w.useContext(lL);if(void 0===t&&!e)throw Error(\"Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.\");return t}let lR=w.createContext(!1);function lM(e,t){return e&&!t?e:!e&&t?t:e||t?{...e,...t}:void 0}let lZ={};function lU(e,t,n,r,o){let a={...lH(e,lZ)};return t&&(a=lF(a,t)),n&&(a=lF(a,n)),r&&(a=lF(a,r)),o&&(a=lF(a,o)),a}function lF(e,t){return lq(t)?t(e):function(e,t){if(!t)return e;for(let n in t){let r=t[n];switch(n){case\"style\":e[n]=lM(e.style,r);break;case\"className\":e[n]=l$(e.className,r);break;default:!function(e,t){let n=e.charCodeAt(0),r=e.charCodeAt(1),o=e.charCodeAt(2);return 111===n&&110===r&&o>=65&&o<=90&&(\"function\"==typeof t||void 0===t)}(n,r)?e[n]=r:e[n]=function(e,t){return t?e?n=>{var r;if(null!=(r=n)&&\"object\"==typeof r&&\"nativeEvent\"in r){lV(n);let r=t(n);return n.baseUIHandlerPrevented||e?.(n),r}let o=t(n);return e?.(n),o}:t:e}(e[n],r)}}return e}(e,t)}function lq(e){return\"function\"==typeof e}function lH(e,t){return lq(e)?e(t):e??lZ}function lV(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function l$(e,t){return t?e?t+\" \"+e:t:e}let lW=[],lY={current:!1},lK=function(e){let t,n,{children:r,open:o,onOpenChange:a,onOpenChangeComplete:i,defaultOpen:l=!1,disabled:s=!1,modal:c,loop:u=!0,orientation:d=\"vertical\",actionsRef:f,openOnHover:p,delay:h=100,closeDelay:m=0,closeParentOnEsc:g=!0}=e,[y,v]=w.useState(null),[b,x]=w.useState(null),[C,_]=w.useState(),[k,E]=w.useState(!0),[j,S]=w.useState(null),[O,B]=w.useState(null),[P,I]=w.useState(!0),[T,z]=w.useState(!1),D=w.useRef(null),L=w.useRef(null),N=w.useRef(null),R=w.useRef([]),M=w.useRef([]),Z=ad(),U=lN(!0),F=w.useContext(lR);{let e=lw(!0),n=function(e){let t=w.useContext(lC);if(null===t&&!e)throw Error(\"Base UI: MenubarContext is missing. Menubar parts must be placed within <Menubar>.\");return t}(!0);t=F&&e?{type:\"menu\",context:e}:n?{type:\"menubar\",context:n}:U?{type:\"context-menu\",context:U}:{type:void 0}}let q=ax();void 0!==t.type&&(q=t.context.rootId);let H=(void 0===t.type||\"context-menu\"===t.type)&&(c??!0),V=\"menu\"===t.type?t.context.allowMouseEnter:T,$=\"menu\"===t.type?t.context.setAllowMouseEnter:z,W=p??(\"menu\"===t.type||\"menubar\"===t.type&&t.context.hasSubmenuOpen),[Y,K]=ay({controlled:o,default:l,name:\"MenuRoot\",state:\"open\"}),X=w.useRef(\"context-menu\"!==t.type),G=ad();w.useEffect(()=>{if(Y||(D.current=null),\"context-menu\"===t.type){if(!Y){G.clear(),X.current=!1;return}G.start(500,()=>{X.current=!0})}},[G,Y,t.type]);let Q=w.useCallback(e=>{N.current=e,x(e)},[]),{mounted:J,setMounted:ee,transitionStatus:et}=l_(Y),{openMethod:en,triggerProps:er,reset:eo}=function(e){let[t,n]=w.useState(null),r=ah((t,r)=>{e||n(r)}),o=ah(()=>{n(null)}),{onClick:a,onPointerDown:i}=function(e){let t=w.useRef(\"\"),n=w.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:w.useCallback(n=>{if(0===n.detail)return void e(n,\"keyboard\");\"pointerType\"in n&&e(n,n.pointerType),e(n,t.current),t.current=\"\"},[e]),onPointerDown:n}}(r);return w.useMemo(()=>({openMethod:t,reset:o,triggerProps:{onClick:a,onPointerDown:i}}),[t,o,a,i])}(Y);var ea={enabled:Y&&H&&\"trigger-hover\"!==O&&\"touch\"!==en,mounted:J,open:Y,referenceElement:b};let{enabled:ei=!0,mounted:el,open:es,referenceElement:ec=null}=ea;aC(()=>{if(ei&&a8&&el&&!es){let e=lS(ec),t=e.body.style.userSelect,n=e.body.style.webkitUserSelect;return e.body.style.userSelect=\"none\",e.body.style.webkitUserSelect=\"none\",()=>{e.body.style.userSelect=t,e.body.style.webkitUserSelect=n}}},[ei,el,es,ec]),aC(()=>{if(ei)return lz.acquire(ec)},[ei,ec]),Y||k||E(!0);let eu=ah(()=>{ee(!1),I(!0),$(!1),i?.(!1),eo()});lk({enabled:!f,open:Y,ref:L,onComplete(){Y||eu()}});let ed=w.useRef(!0),ef=ad(),ep=ah((e,n,r)=>{if(Y===e||!1===e&&n?.type===\"click\"&&\"touch\"===n.pointerType&&!ed.current)return;if(!e&&null!==j){let e=R.current[j];queueMicrotask(()=>{e?.setAttribute(\"tabindex\",\"-1\")})}e&&\"trigger-focus\"===r?(ed.current=!1,ef.start(300,()=>{ed.current=!0})):(ed.current=!0,ef.clear());let o=(\"trigger-press\"===r||\"item-press\"===r)&&0===n.detail&&n?.isTrusted,i=!e&&(\"escape-key\"===r||null==r);function l(){a?.(e,n,r),K(e),B(r??null),D.current=n??null}\"trigger-hover\"===r?(I(!0),Z.start(500,()=>{I(!1)}),eh.flushSync(l)):l(),\"menubar\"===t.type&&(\"trigger-focus\"===r||\"focus-out\"===r||\"trigger-hover\"===r||\"list-navigation\"===r||\"sibling-open\"===r)?_(\"group\"):o||i?_(o?\"click\":\"dismiss\"):_(void 0)});w.useImperativeHandle(f,()=>({unmount:eu}),[eu]),\"context-menu\"===t.type&&(n=t.context),w.useImperativeHandle(n?.positionerRef,()=>b,[b]),w.useImperativeHandle(n?.actionsRef,()=>({setOpen:ep}),[ep]),w.useEffect(()=>{Y||Z.clear()},[Z,Y]);let em=aB({elements:{reference:y,floating:b},open:Y,onOpenChange(e,t,n){ep(e,t,lD(n))}}),eg=iO(em,{enabled:k&&W&&!s&&\"context-menu\"!==t.type&&(\"menubar\"!==t.type||t.context.hasSubmenuOpen&&!Y),handleClose:iT({blockPointerEvents:!0}),mouseOnly:!0,move:\"menu\"===t.type,restMs:void 0===t.type||\"menu\"===t.type&&V?h:void 0,delay:\"menu\"===t.type?{open:V?h:1e10,close:m}:{close:m}}),ey=iD(em,{enabled:!s&&!Y&&\"menubar\"===t.type&&t.context.hasSubmenuOpen&&!U}),ev=function(e,t={}){let{open:n,onOpenChange:r,dataRef:o}=e,{enabled:a=!0,event:i=\"click\",toggle:l=!0,ignoreMouse:s=!1,stickIfOpen:c=!0}=t,u=w.useRef(void 0),d=iR(),f=w.useMemo(()=>({onPointerDown(e){u.current=e.pointerType},onMouseDown(e){let t=u.current,a=e.nativeEvent;if(0!==e.button||\"click\"===i||is(t,!0)&&s)return;let f=o.current.openEvent,p=f?.type,h=!(n&&l&&(!f||!c||\"click\"===p||\"mousedown\"===p));d.request(()=>{r(h,a,\"click\")})},onClick(e){let t=u.current;if(\"mousedown\"===i&&t){u.current=void 0;return}if(is(t,!0)&&s)return;let a=o.current.openEvent,d=a?.type;r(!(n&&l&&(!a||!c||\"click\"===d||\"mousedown\"===d||\"keydown\"===d||\"keyup\"===d)),e.nativeEvent,\"click\")},onKeyDown(){u.current=void 0}}),[o,i,s,r,n,c,l,d]);return w.useMemo(()=>a?{reference:f}:iZ,[a,f])}(em,{enabled:!s&&\"context-menu\"!==t.type,event:Y&&\"menubar\"===t.type?\"click\":\"mousedown\",toggle:!W||\"menu\"!==t.type,ignoreMouse:W&&\"menu\"===t.type,stickIfOpen:void 0===t.type&&P}),eb=i$(em,{enabled:!s,bubbles:g&&\"menu\"===t.type,outsidePress:()=>\"context-menu\"!==t.type||D.current?.type===\"contextmenu\"||X.current}),eA=function(e,t={}){let{open:n,elements:r,floatingId:o}=e,{enabled:a=!0,role:i=\"dialog\"}=t,l=ax(),s=r.domReference?.id||l,c=w.useMemo(()=>i_(r.floating)?.id||o,[r.floating,o]),u=iW.get(i)??i,d=null!=aE(),f=w.useMemo(()=>\"tooltip\"===u||\"label\"===i?{[`aria-${\"label\"===i?\"labelledby\":\"describedby\"}`]:n?c:void 0}:{\"aria-expanded\":n?\"true\":\"false\",\"aria-haspopup\":\"alertdialog\"===u?\"dialog\":u,\"aria-controls\":n?c:void 0,...\"listbox\"===u&&{role:\"combobox\"},...\"menu\"===u&&{id:s},...\"menu\"===u&&d&&{role:\"menuitem\"},...\"select\"===i&&{\"aria-autocomplete\":\"none\"},...\"combobox\"===i&&{\"aria-autocomplete\":\"list\"}},[u,c,d,n,s,i]),p=w.useMemo(()=>{let e={id:c,...u&&{role:u}};return\"tooltip\"===u||\"label\"===i?e:{...e,...\"menu\"===u&&{\"aria-labelledby\":s}}},[u,c,s,i]),h=w.useCallback(({active:e,selected:t})=>{let n={role:\"option\",...e&&{id:`${c}-fui-option`}};switch(i){case\"select\":case\"combobox\":return{...n,\"aria-selected\":t}}return{}},[c,i]);return w.useMemo(()=>a?{reference:f,floating:p,item:h}:{},[a,f,p,h])}(em,{role:\"menu\"}),ex=lj(),ew=function(e,t){let{open:n,onOpenChange:r,elements:o,floatingId:a}=e,{listRef:i,activeIndex:l,onNavigate:s=()=>{},enabled:c=!0,selectedIndex:u=null,allowEscape:d=!1,loop:f=!1,nested:p=!1,rtl:h=!1,virtual:m=!1,focusItemOnOpen:g=\"auto\",focusItemOnHover:y=!0,openOnArrowKeyDown:v=!0,disabledIndices:b,orientation:A=\"vertical\",parentOrientation:x,cols:C=1,scrollItemIntoView:_=!0,virtualItemRef:k,itemSizes:E,dense:j=!1}=t,S=a2(i_(o.floating)),O=aE(),B=aj();aC(()=>{e.dataRef.current.orientation=A},[e,A]);let P=iC(o.domReference),I=w.useRef(g),T=w.useRef(u??-1),z=w.useRef(null),D=w.useRef(!0),L=ah(()=>{s(-1===T.current?null:T.current)}),N=w.useRef(L),R=w.useRef(!!o.floating),M=w.useRef(n),Z=w.useRef(!1),U=w.useRef(!1),F=a2(b),q=a2(n),H=a2(_),V=a2(u),[$,W]=w.useState(),Y=ah(()=>{function e(e){m?(e.id?.endsWith(\"-fui-option\")&&(e.id=`${a}-${Math.random().toString(16).slice(2,10)}`),W(e.id),B?.events.emit(\"virtualfocus\",e),k&&(k.current=e)):lh(e,{sync:Z.current,preventScroll:!0})}let t=i.current[T.current],n=U.current;t&&e(t),(Z.current?e=>e():requestAnimationFrame)(()=>{let r=i.current[T.current]||t;if(!r)return;t||e(r);let o=H.current;o&&X&&(n||!D.current)&&r.scrollIntoView?.(\"boolean\"==typeof o?{block:\"nearest\",inline:\"nearest\"}:o)})});aC(()=>{c&&(n&&o.floating?I.current&&null!=u&&(U.current=!0,T.current=u,L()):R.current&&(T.current=-1,N.current()))},[c,n,o.floating,u,L]),aC(()=>{if(c&&n&&o.floating)if(null==l){if(Z.current=!1,null!=V.current)return;if(R.current&&(T.current=-1,Y()),(!M.current||!R.current)&&I.current&&(null!=z.current||!0===I.current&&null==z.current)){let e=0,t=()=>{null==i.current[0]?(e<2&&(e?requestAnimationFrame:queueMicrotask)(t),e+=1):(T.current=null==z.current||ly(z.current,A,h)||p?lc(i,F.current):lu(i,F.current),z.current=null,L())};t()}}else ls(i,l)||(T.current=l,Y(),U.current=!1)},[c,n,o.floating,l,V,p,i,A,h,L,Y,F]),aC(()=>{if(!c||o.floating||!B||m||!R.current)return;let e=B.nodesRef.current,t=e.find(e=>e.id===O)?.context?.elements.floating,n=iy(ix(o.floating)),r=e.some(e=>e.context&&iv(e.context.elements.floating,n));t&&!r&&D.current&&t.focus({preventScroll:!0})},[c,o.floating,B,O,m]),aC(()=>{N.current=L,M.current=n,R.current=!!o.floating}),aC(()=>{n||(z.current=null,I.current=g)},[n,g]);let K=null!=l,X=w.useMemo(()=>{function e(e){if(!q.current)return;let t=i.current.indexOf(e);-1!==t&&T.current!==t&&(T.current=t,L())}return{onFocus({currentTarget:t}){Z.current=!0,e(t)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove({currentTarget:t}){Z.current=!0,U.current=!1,y&&e(t)},onPointerLeave({pointerType:e}){D.current&&\"touch\"!==e&&(Z.current=!0,y&&(T.current=-1,L(),m||S.current?.focus({preventScroll:!0})))}}},[q,S,y,i,L,m]),G=w.useCallback(()=>x??B?.nodesRef.current.find(e=>e.id===O)?.context?.dataRef?.current.orientation,[O,B,x]),Q=ah(e=>{var t,a,l,s,c;if(D.current=!1,Z.current=!0,229===e.which||!q.current&&e.currentTarget===S.current)return;if(p&&(t=e.key,a=A,l=h,s=C,\"both\"===a||\"horizontal\"===a&&s&&s>1?\"Escape\"===t:lm(a,l?t===ih:t===ip,t===im))){lg(e.key,G())||ia(e),r(!1,e.nativeEvent,\"list-navigation\"),aN(o.domReference)&&(m?B?.events.emit(\"virtualfocus\",o.domReference):o.domReference.focus());return}let u=T.current,g=lc(i,b),y=lu(i,b);if(P||(\"Home\"===e.key&&(ia(e),T.current=g,L()),\"End\"===e.key&&(ia(e),T.current=y,L())),C>1){let t=E||Array.from({length:i.current.length},()=>({width:1,height:1})),n=function(e,t,n){let r=[],o=0;return e.forEach(({width:e,height:a},i)=>{let l=!1;for(n&&(o=0);!l;){let n=[];for(let r=0;r<e;r+=1)for(let e=0;e<a;e+=1)n.push(o+r+e*t);o%t+e<=t&&n.every(e=>null==r[e])?(n.forEach(e=>{r[e]=i}),l=!0):o+=1}}),[...r]}(t,C,j),r=n.findIndex(e=>null!=e&&!lf(i,e,b)),o=n.reduce((e,t,n)=>null==t||lf(i,t,b)?e:n,-1),a=n[function(e,{event:t,orientation:n,loop:r,rtl:o,cols:a,disabledIndices:i,minIndex:l,maxIndex:s,prevIndex:c,stopEvent:u=!1}){let d=c;if(t.key===im){if(u&&ia(t),-1===c)d=s;else if(d=ld(e,{startingIndex:d,amount:a,decrement:!0,disabledIndices:i}),r&&(c-a<l||d<0)){let e=c%a,t=s%a,n=s-(t-e);d=t===e?s:t>e?n:n-a}ls(e,d)&&(d=c)}if(t.key===ig&&(u&&ia(t),-1===c?d=l:(d=ld(e,{startingIndex:c,amount:a,disabledIndices:i}),r&&c+a>s&&(d=ld(e,{startingIndex:c%a-a,amount:a,disabledIndices:i}))),ls(e,d)&&(d=c)),\"both\"===n){let n=iQ(c/a);t.key===(o?ip:ih)&&(u&&ia(t),c%a!=a-1?(d=ld(e,{startingIndex:c,disabledIndices:i}),r&&ll(d,a,n)&&(d=ld(e,{startingIndex:c-c%a-1,disabledIndices:i}))):r&&(d=ld(e,{startingIndex:c-c%a-1,disabledIndices:i})),ll(d,a,n)&&(d=c)),t.key===(o?ih:ip)&&(u&&ia(t),c%a!=0?(d=ld(e,{startingIndex:c,decrement:!0,disabledIndices:i}),r&&ll(d,a,n)&&(d=ld(e,{startingIndex:c+(a-c%a),decrement:!0,disabledIndices:i}))):r&&(d=ld(e,{startingIndex:c+(a-c%a),decrement:!0,disabledIndices:i})),ll(d,a,n)&&(d=c));let l=iQ(s/a)===n;ls(e,d)&&(d=r&&l?t.key===(o?ih:ip)?s:ld(e,{startingIndex:c-c%a-1,disabledIndices:i}):c)}return d}({current:n.map(e=>null!=e?i.current[e]:null)},{event:e,orientation:A,loop:f,rtl:h,cols:C,disabledIndices:(c=[...(\"function\"!=typeof b?b:null)||i.current.map((e,t)=>lf(i,t,b)?t:void 0),void 0],n.flatMap((e,t)=>c.includes(e)?[t]:[])),minIndex:r,maxIndex:o,prevIndex:function(e,t,n,r,o){if(-1===e)return -1;let a=n.indexOf(e),i=t[e];switch(o){case\"tl\":return a;case\"tr\":if(!i)return a;return a+i.width-1;case\"bl\":if(!i)return a;return a+(i.height-1)*r;case\"br\":return n.lastIndexOf(e);default:return -1}}(T.current>y?g:T.current,t,n,C,e.key===ig?\"bl\":e.key===(h?ip:ih)?\"tr\":\"tl\"),stopEvent:!0})];if(null!=a&&(T.current=a,L()),\"both\"===A)return}if(lg(e.key,A)){if(ia(e),n&&!m&&iy(e.currentTarget.ownerDocument)===e.currentTarget){T.current=ly(e.key,A,h)?g:y,L();return}ly(e.key,A,h)?f?T.current=u>=y?d&&u!==i.current.length?-1:g:ld(i,{startingIndex:u,disabledIndices:b}):T.current=Math.min(y,ld(i,{startingIndex:u,disabledIndices:b})):f?T.current=u<=g?d&&-1!==u?i.current.length:y:ld(i,{startingIndex:u,decrement:!0,disabledIndices:b}):T.current=Math.max(g,ld(i,{startingIndex:u,decrement:!0,disabledIndices:b})),ls(i,T.current)&&(T.current=-1),L()}}),J=w.useMemo(()=>m&&n&&K&&{\"aria-activedescendant\":$},[m,n,K,$]),ee=w.useMemo(()=>({\"aria-orientation\":\"both\"===A?void 0:A,...!P?J:{},onKeyDown(e){if(\"Tab\"===e.key&&e.shiftKey&&n&&!m){ia(e),r(!1,e.nativeEvent,\"list-navigation\"),aN(o.domReference)&&o.domReference.focus();return}Q(e)},onPointerMove(){D.current=!0}}),[J,Q,A,P,r,n,m,o.domReference]),et=w.useMemo(()=>{function e(e){\"auto\"===g&&ii(e.nativeEvent)&&(I.current=!0)}function t(e){I.current=g,\"auto\"===g&&il(e.nativeEvent)&&(I.current=!0)}return{...J,onKeyDown(e){var t,o;D.current=!1;let a=e.key.startsWith(\"Arrow\"),l=(t=e.key,o=G(),lm(o,h?t===ip:t===ih,t===ig)),s=lg(e.key,A),c=(p?l:s)||\"Enter\"===e.key||\"\"===e.key.trim();if(m&&n)return Q(e);if(n||v||!a){if(c){let t=lg(e.key,G());z.current=p&&t?null:e.key}if(p){l&&(ia(e),n?(T.current=lc(i,F.current),L()):r(!0,e.nativeEvent,\"list-navigation\"));return}s&&(null!=u&&(T.current=u),ia(e),!n&&v?r(!0,e.nativeEvent,\"list-navigation\"):Q(e),n&&L())}},onFocus(){n&&!m&&(T.current=-1,L())},onPointerDown:t,onPointerEnter:t,onMouseDown:e,onClick:e}},[J,Q,F,g,i,p,L,r,n,v,A,G,h,u,m]);return w.useMemo(()=>c?{reference:et,floating:ee,item:X}:{},[c,et,ee,X])}(em,{enabled:!s,listRef:R,activeIndex:j,nested:void 0!==t.type,loop:u,orientation:d,parentOrientation:\"menubar\"===t.type?t.context.orientation:void 0,rtl:\"rtl\"===ex,disabledIndices:lW,onNavigate:S,openOnArrowKeyDown:\"context-menu\"!==t.type}),eC=w.useRef(!1),e_=function(e,t){let{open:n,dataRef:r}=e,{listRef:o,activeIndex:a,onMatch:i,onTypingChange:l,enabled:s=!0,findMatch:c=null,resetMs:u=750,ignoreKeys:d=[],selectedIndex:f=null}=t,p=ad(),h=w.useRef(\"\"),m=w.useRef(f??a??-1),g=w.useRef(null),y=ah(i),v=ah(l),b=a2(c),A=a2(d);aC(()=>{n&&(p.clear(),g.current=null,h.current=\"\")},[n,p]),aC(()=>{n&&\"\"===h.current&&(m.current=f??a??-1)},[n,f,a]);let x=ah(e=>{e?r.current.typing||(r.current.typing=e,v(e)):r.current.typing&&(r.current.typing=e,v(e))}),C=ah(e=>{function t(e,t,n){let r=b.current?b.current(t,n):t.find(e=>e?.toLocaleLowerCase().indexOf(n.toLocaleLowerCase())===0);return r?e.indexOf(r):-1}let r=o.current;if(h.current.length>0&&\" \"!==h.current[0]&&(-1===t(r,r,h.current)?x(!1):\" \"===e.key&&ia(e)),null==r||A.current.includes(e.key)||1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;n&&\" \"!==e.key&&(ia(e),x(!0)),r.every(e=>!e||e[0]?.toLocaleLowerCase()!==e[1]?.toLocaleLowerCase())&&h.current===e.key&&(h.current=\"\",m.current=g.current),h.current+=e.key,p.start(u,()=>{h.current=\"\",m.current=g.current,x(!1)});let a=m.current,i=t(r,[...r.slice((a||0)+1),...r.slice(0,(a||0)+1)],h.current);-1!==i?(y(i),g.current=i):\" \"!==e.key&&(h.current=\"\",x(!1))}),_=w.useMemo(()=>({onKeyDown:C}),[C]),k=w.useMemo(()=>({onKeyDown:C,onKeyUp(e){\" \"===e.key&&x(!1)}}),[C,x]);return w.useMemo(()=>s?{reference:_,floating:k}:{},[s,_,k])}(em,{listRef:M,activeIndex:j,resetMs:500,onMatch:e=>{Y&&e!==j&&S(e)},onTypingChange:w.useCallback(e=>{eC.current=e},[])}),{getReferenceProps:ek,getFloatingProps:eE,getItemProps:ej}=lv([eg,ev,eb,ey,eA,ew,e_]),eS=function(e){let{enabled:t=!0,mouseDownAction:n,open:r}=e,o=w.useRef(!1);return w.useMemo(()=>t?{onMouseDown:e=>{(\"open\"===n&&!r||\"close\"===n&&r)&&(o.current=!0,lS(e.currentTarget).addEventListener(\"click\",()=>{o.current=!1},{once:!0}))},onClick:e=>{o.current&&(o.current=!1,e.preventBaseUIHandler())}}:iZ,[t,n,r])}({open:Y,enabled:\"menubar\"===t.type,mouseDownAction:\"open\"}),eO=w.useMemo(()=>{let e=lU(ek(),{onMouseEnter(){E(!0)},onMouseMove(){$(!0)}},er,eS);return delete e.role,e},[ek,eS,$,er]),eB=w.useMemo(()=>eE({onMouseEnter(){W&&\"menu\"!==t.type||E(!1)},onMouseMove(){$(!0)},onClick(){W&&E(!1)}}),[eE,W,t.type,$]),eP=w.useMemo(()=>ej(),[ej]),eI=w.useMemo(()=>({activeIndex:j,setActiveIndex:S,allowMouseUpTriggerRef:t.type?t.context.allowMouseUpTriggerRef:lY,floatingRootContext:em,itemProps:eP,popupProps:eB,triggerProps:eO,itemDomElements:R,itemLabels:M,mounted:J,open:Y,popupRef:L,positionerRef:N,setOpen:ep,setPositionerElement:Q,triggerElement:y,setTriggerElement:v,transitionStatus:et,lastOpenChangeReason:O,instantType:C,onOpenChangeComplete:i,setHoverEnabled:E,typingRef:eC,modal:H,disabled:s,parent:t,rootId:q,allowMouseEnter:V,setAllowMouseEnter:$}),[j,em,eP,eB,eO,R,M,J,Y,N,ep,et,y,Q,O,C,i,H,s,t,q,V,$]),eT=(0,A.jsx)(lx.Provider,{value:eI,children:r});return void 0===t.type||\"context-menu\"===t.type?(0,A.jsx)(aO,{children:eT}):eT};function lX(e,t,n,r){var o,a,i,l,s;let c=al(lG).current;return o=c,a=e,i=t,l=n,s=r,(o.refs[0]!==a||o.refs[1]!==i||o.refs[2]!==l||o.refs[3]!==s)&&lQ(c,[e,t,n,r]),c.callback}function lG(){return{callback:null,cleanup:null,refs:[]}}function lQ(e,t){if(e.refs=t,t.every(e=>null==e)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&(e.cleanup(),e.cleanup=null),null!=n){let r=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let o=t[e];if(null!=o)switch(typeof o){case\"function\":{let t=o(n);\"function\"==typeof t&&(r[e]=t);break}case\"object\":o.current=n}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let n=t[e];if(null!=n)switch(typeof n){case\"function\":{let t=r[e];\"function\"==typeof t?t():n(null);break}case\"object\":n.current=null}}}}}}let lJ=function(e){return e.startingStyle=\"data-starting-style\",e.endingStyle=\"data-ending-style\",e}({}),l0={[lJ.startingStyle]:\"\"},l1={[lJ.endingStyle]:\"\"},l2={transitionStatus:e=>\"starting\"===e?l0:\"ending\"===e?l1:null},l4=function(e){return e.open=\"data-open\",e.closed=\"data-closed\",e[e.startingStyle=lJ.startingStyle]=\"startingStyle\",e[e.endingStyle=lJ.endingStyle]=\"endingStyle\",e.anchorHidden=\"data-anchor-hidden\",e}({}),l5=function(e){return e.popupOpen=\"data-popup-open\",e.pressed=\"data-pressed\",e}({}),l3={[l5.popupOpen]:\"\"},l6={[l5.popupOpen]:\"\",[l5.pressed]:\"\"},l9={[l4.open]:\"\"},l8={[l4.closed]:\"\"},l7={[l4.anchorHidden]:\"\"},se={open:e=>e?l3:null},st={open:e=>e?l6:null},sn={open:e=>e?l9:l8,anchorHidden:e=>e?l7:null},sr=parseInt(w.version,10);function so(e,t,n={}){let r=t.render,o=function(e,t={}){var n,r;let o,{className:a,render:i}=e,{state:l=iZ,ref:s,props:c,disableStyleHooks:u,customStyleHookMapping:d,enabled:f=!0}=t,p=f?(n=a,r=l,\"function\"==typeof n?n(r):n):void 0;!0!==u&&(o=w.useMemo(()=>f?function(e,t){let n={};for(let r in e){let o=e[r];if(t?.hasOwnProperty(r)){let e=t[r](o);null!=e&&Object.assign(n,e);continue}!0===o?n[`data-${r.toLowerCase()}`]=\"\":o&&(n[`data-${r.toLowerCase()}`]=o.toString())}return n}(l,d):iZ,[l,d,f]));let h=f?lM(o,Array.isArray(c)?function(e){if(0===e.length)return lZ;if(1===e.length)return lH(e[0],lZ);let t={...lH(e[0],lZ)};for(let n=1;n<e.length;n+=1)t=lF(t,e[n]);return t}(c):c)??iZ:iZ;return(\"undefined\"!=typeof document&&(f?Array.isArray(s)?h.ref=function(e){var t,n;let r=al(lG).current;return t=r,n=e,(t.refs.length!==n.length||t.refs.some((e,t)=>e!==n[t]))&&lQ(r,e),r.callback}([h.ref,sa(i),...s]):h.ref=lX(h.ref,sa(i),s):lX(null,null)),f)?(void 0!==p&&(h.className=l$(h.className,p)),h):iZ}(t,n);return!1===n.enabled?null:function(e,t,n,r){if(t){if(\"function\"==typeof t)return t(n,r);let e=lU(n,t.props);return e.ref=n.ref,w.cloneElement(t,e)}if(e&&\"string\"==typeof e){var o,a;return o=e,a=n,\"button\"===o?(0,A.jsx)(\"button\",{type:\"button\",...a}):\"img\"===o?(0,A.jsx)(\"img\",{alt:\"\",...a}):w.createElement(o,a)}throw Error(\"Base UI: Render element or function are not defined.\")}(e,r,o,n.state??iZ)}function sa(e){return e&&\"function\"!=typeof e?sr>=19?e.props.ref:e.ref:null}let si=w.createContext(void 0);function sl(e=!1){let t=w.useContext(si);if(void 0===t&&!e)throw Error(\"Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>.\");return t}function ss(e={}){let{disabled:t=!1,focusableWhenDisabled:n,tabIndex:r=0,native:o=!0}=e,a=w.useRef(null),i=void 0!==sl(!0),l=ah(()=>{let e=a.current;return!!(e?.tagName===\"A\"&&e?.href)}),{props:s}=function(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:o=0,isNativeButton:a}=e,i=r&&!1!==t,l=r&&!1===t;return{props:w.useMemo(()=>{let e={onKeyDown(e){n&&t&&\"Tab\"!==e.key&&e.preventDefault()}};return r||(e.tabIndex=o,!a&&n&&(e.tabIndex=t?o:-1)),(a&&(t||i)||!a&&n)&&(e[\"aria-disabled\"]=n),a&&(!t||l)&&(e.disabled=n),e},[r,n,t,i,l,a,o])}}({focusableWhenDisabled:n,disabled:t,composite:i,tabIndex:r,isNativeButton:o});return aC(()=>{let e=a.current;e instanceof HTMLButtonElement&&i&&t&&void 0===s.disabled&&e.disabled&&(e.disabled=!1)},[t,s.disabled,i]),{getButtonProps:w.useCallback((e={})=>{let{onClick:n,onMouseDown:r,onKeyUp:a,onKeyDown:i,onPointerDown:c,...u}=e;return lU({type:o?\"button\":void 0,onClick(e){if(t)return void e.preventDefault();n?.(e)},onMouseDown(e){t||r?.(e)},onKeyDown(e){if(t||(lV(e),i?.(e)),e.baseUIHandlerPrevented)return;let r=e.target===e.currentTarget&&!o&&!l()&&!t,a=\"Enter\"===e.key,s=\" \"===e.key;r&&((s||a)&&e.preventDefault(),a&&n?.(e))},onKeyUp(e){t||(lV(e),a?.(e)),!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||o||t||\" \"!==e.key||n?.(e))},onPointerDown(e){if(t)return void e.preventDefault();c?.(e)}},o?void 0:{role:\"button\"},s,u)},[t,s,o,l]),buttonRef:a}}let sc=w.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}}),su=function(e){return e[e.None=0]=\"None\",e[e.GuessFromOrder=1]=\"GuessFromOrder\",e}({});function sd(e={}){let{label:t,metadata:n,textRef:r,indexGuessBehavior:o}=e,{register:a,unregister:i,subscribeMapChange:l,elementsRef:s,labelsRef:c,nextIndexRef:u}=w.useContext(sc),d=w.useRef(-1),[f,p]=w.useState(o===su.GuessFromOrder?()=>{if(-1===d.current){let e=u.current;u.current+=1,d.current=e}return d.current}:-1),h=w.useRef(null),m=w.useCallback(e=>{if(h.current=e,-1!==f&&null!==e&&(s.current[f]=e,c)){let n=void 0!==t;c.current[f]=n?t:r?.current?.textContent??e.textContent}},[f,s,c,t,r]);return aC(()=>{let e=h.current;if(e)return a(e,n),()=>{i(e)}},[a,i,n]),aC(()=>l(e=>{let t=h.current?e.get(h.current)?.index:null;null!=t&&p(t)}),[l,p]),w.useMemo(()=>({ref:m,index:f}),[f,m])}function sf(e){let{render:t,className:n,state:r=iZ,props:o=iU,refs:a=iU,metadata:i,customStyleHookMapping:l,tag:s=\"div\",...c}=e,{compositeProps:u,compositeRef:d}=function(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=sl(),{ref:o,index:a}=sd(e),i=n===a,l=w.useRef(null),s=lX(o,l);return{compositeProps:w.useMemo(()=>({tabIndex:i?0:-1,onFocus(){r(a)},onMouseMove(){let e=l.current;if(!t||!e)return;let n=e.hasAttribute(\"disabled\")||\"true\"===e.ariaDisabled;i||n||e.focus()}}),[i,r,a,t]),compositeRef:s,index:a}}({metadata:i});return so(s,e,{state:r,ref:[...a,d],props:[u,...o,c],customStyleHookMapping:l})}let sp=w.forwardRef(function(e,t){let{render:n,className:r,disabled:o=!1,nativeButton:a=!0,...i}=e,{triggerProps:l,disabled:s,setTriggerElement:c,open:u,allowMouseUpTriggerRef:d,positionerRef:f,parent:p,lastOpenChangeReason:h,rootId:m}=lw(),g=o||s,y=w.useRef(null),v=ad(),{getButtonProps:b,buttonRef:x}=ss({disabled:g,native:a}),C=lX(x,c),{events:_}=aj();w.useEffect(()=>{u||void 0!==p.type||(d.current=!1)},[d,u,p.type]);let k=ah(e=>{if(!y.current)return;v.clear(),d.current=!1;let t=e.target;if(iv(y.current,t)||iv(f.current,t)||t===y.current||null!=t&&function e(t){return aN(t)&&t.hasAttribute(\"data-rootownerid\")?t.getAttribute(\"data-rootownerid\")??void 0:aX(t)?void 0:e(aJ(t))}(t)===m)return;let n=function(e){let t=e.getBoundingClientRect(),n=window.getComputedStyle(e,\"::before\"),r=window.getComputedStyle(e,\"::after\");if(\"none\"===n.content&&\"none\"===r.content)return t;let o=parseFloat(n.width)||0,a=parseFloat(n.height)||0,i=parseFloat(r.width)||0,l=parseFloat(r.height)||0,s=Math.max(t.width,o,i),c=Math.max(t.height,a,l),u=s-t.width,d=c-t.height;return{left:t.left-u/2,right:t.right+u/2,top:t.top-d/2,bottom:t.bottom+d/2}}(y.current);e.clientX>=n.left-2&&e.clientX<=n.right+2&&e.clientY>=n.top-2&&e.clientY<=n.bottom+2||_.emit(\"close\",{domEvent:e,reason:\"cancel-open\"})});w.useEffect(()=>{u&&\"trigger-hover\"===h&&lS(y.current).addEventListener(\"mouseup\",k,{once:!0})},[u,k,h]);let E=\"menubar\"===p.type,j=w.useCallback(e=>lU(E?{role:\"menuitem\"}:{},{\"aria-haspopup\":\"menu\",ref:C,onMouseDown:e=>{u||(v.start(200,()=>{d.current=!0}),lS(e.currentTarget).addEventListener(\"mouseup\",k,{once:!0}))}},e,b),[b,C,u,d,v,k,E]),S=w.useMemo(()=>({disabled:g,open:u}),[g,u]),O=[y,t,x],B=[l,i,j],P=so(\"button\",e,{enabled:!E,customStyleHookMapping:st,state:S,ref:O,props:B});return E?(0,A.jsx)(sf,{tag:\"button\",render:n,className:r,state:S,refs:O,props:B,customStyleHookMapping:st}):P}),sh={clip:\"rect(0 0 0 0)\",overflow:\"hidden\",whiteSpace:\"nowrap\",position:\"fixed\",top:0,left:0,border:0,padding:0,width:1,height:1,margin:-1},sm=w.forwardRef(function(e,t){let[n,r]=w.useState();return aC(()=>{ie&&r(\"button\")},[]),(0,A.jsx)(\"span\",{...e,ref:t,tabIndex:0,role:n,\"aria-hidden\":!n||void 0,style:sh,\"data-base-ui-focus-guard\":\"\"})});var sg='input:not([inert]),select:not([inert]),textarea:not([inert]),a[href]:not([inert]),button:not([inert]),[tabindex]:not(slot):not([inert]),audio[controls]:not([inert]),video[controls]:not([inert]),[contenteditable]:not([contenteditable=\"false\"]):not([inert]),details>summary:first-of-type:not([inert]),details:not([inert])',sy=\"undefined\"==typeof Element,sv=sy?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,sb=!sy&&Element.prototype.getRootNode?function(e){var t;return null==e||null==(t=e.getRootNode)?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},sA=function e(t,n){void 0===n&&(n=!0);var r,o=null==t||null==(r=t.getAttribute)?void 0:r.call(t,\"inert\");return\"\"===o||\"true\"===o||n&&t&&e(t.parentNode)},sx=function(e){var t,n=null==e||null==(t=e.getAttribute)?void 0:t.call(e,\"contenteditable\");return\"\"===n||\"true\"===n},sw=function(e,t,n){if(sA(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(sg));return t&&sv.call(e,sg)&&r.unshift(e),r=r.filter(n)},sC=function e(t,n,r){for(var o=[],a=Array.from(t);a.length;){var i=a.shift();if(!sA(i,!1))if(\"SLOT\"===i.tagName){var l=i.assignedElements(),s=e(l.length?l:i.children,!0,r);r.flatten?o.push.apply(o,s):o.push({scopeParent:i,candidates:s})}else{sv.call(i,sg)&&r.filter(i)&&(n||!t.includes(i))&&o.push(i);var c=i.shadowRoot||\"function\"==typeof r.getShadowRoot&&r.getShadowRoot(i),u=!sA(c,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(c&&u){var d=e(!0===c?i.children:c.children,!0,r);r.flatten?o.push.apply(o,d):o.push({scopeParent:i,candidates:d})}else a.unshift.apply(a,i.children)}}return o},s_=function(e){return!isNaN(parseInt(e.getAttribute(\"tabindex\"),10))},sk=function(e){if(!e)throw Error(\"No node provided\");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||sx(e))&&!s_(e)?0:e.tabIndex},sE=function(e,t){var n=sk(e);return n<0&&t&&!s_(e)?0:n},sj=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},sS=function(e){return\"INPUT\"===e.tagName},sO=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},sB=function(e){if(!e.name)return!0;var t,n=e.form||sb(e),r=function(e){return n.querySelectorAll('input[type=\"radio\"][name=\"'+e+'\"]')};if(\"undefined\"!=typeof window&&void 0!==window.CSS&&\"function\"==typeof window.CSS.escape)t=r(window.CSS.escape(e.name));else try{t=r(e.name)}catch(e){return console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\",e.message),!1}var o=sO(t,e.form);return!o||o===e},sP=function(e){var t;return sS(t=e)&&\"radio\"===t.type&&!sB(e)},sI=function(e){var t,n,r,o,a,i,l,s=e&&sb(e),c=null==(t=s)?void 0:t.host,u=!1;if(s&&s!==e)for(u=!!(null!=(n=c)&&null!=(r=n.ownerDocument)&&r.contains(c)||null!=e&&null!=(o=e.ownerDocument)&&o.contains(e));!u&&c;)u=!!(null!=(i=c=null==(a=s=sb(c))?void 0:a.host)&&null!=(l=i.ownerDocument)&&l.contains(c));return u},sT=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return 0===n&&0===r},sz=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(\"hidden\"===getComputedStyle(e).visibility)return!0;var o=sv.call(e,\"details>summary:first-of-type\")?e.parentElement:e;if(sv.call(o,\"details:not([open]) *\"))return!0;if(n&&\"full\"!==n&&\"legacy-full\"!==n){if(\"non-zero-area\"===n)return sT(e)}else{if(\"function\"==typeof r){for(var a=e;e;){var i=e.parentElement,l=sb(e);if(i&&!i.shadowRoot&&!0===r(i))return sT(e);e=e.assignedSlot?e.assignedSlot:i||l===e.ownerDocument?i:l.host}e=a}if(sI(e))return!e.getClientRects().length;if(\"legacy-full\"!==n)return!0}return!1},sD=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(\"FIELDSET\"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(\"LEGEND\"===r.tagName)return!!sv.call(t,\"fieldset[disabled] *\")||!r.contains(e)}return!0}t=t.parentElement}return!1},sL=function(e,t){var n,r;return!(t.disabled||sA(t)||sS(n=t)&&\"hidden\"===n.type||sz(t,e)||\"DETAILS\"===(r=t).tagName&&Array.prototype.slice.apply(r.children).some(function(e){return\"SUMMARY\"===e.tagName})||sD(t))},sN=function(e,t){return!(sP(t)||0>sk(t))&&!!sL(e,t)},sR=function(e){var t=parseInt(e.getAttribute(\"tabindex\"),10);return!!isNaN(t)||!!(t>=0)},sM=function e(t){var n=[],r=[];return t.forEach(function(t,o){var a=!!t.scopeParent,i=a?t.scopeParent:t,l=sE(i,a),s=a?e(t.candidates):i;0===l?a?n.push.apply(n,s):n.push(i):r.push({documentOrder:o,tabIndex:l,item:t,isScope:a,content:s})}),r.sort(sj).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(n)},sZ=function(e,t){return sM((t=t||{}).getShadowRoot?sC([e],t.includeContainer,{filter:sN.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:sR}):sw(e,t.includeContainer,sN.bind(null,t)))},sU=function(e,t){return(t=t||{}).getShadowRoot?sC([e],t.includeContainer,{filter:sL.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):sw(e,t.includeContainer,sL.bind(null,t))},sF=function(e,t){if(t=t||{},!e)throw Error(\"No node provided\");return!1!==sv.call(e,sg)&&sN(t,e)};let sq=()=>({getShadowRoot:!0,displayCheck:\"function\"==typeof ResizeObserver&&ResizeObserver.toString().includes(\"[native code]\")?\"full\":\"none\"});function sH(e,t){let n=sZ(e,sq()),r=n.length;if(0===r)return;let o=iy(ix(e)),a=n.indexOf(o);return n[-1===a?1===t?0:r-1:a+t]}function sV(e){return sH(ix(e).body,1)||e}function s$(e){return sH(ix(e).body,-1)||e}function sW(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!iv(n,r)}function sY(e){sZ(e,sq()).forEach(e=>{e.dataset.tabindex=e.getAttribute(\"tabindex\")||\"\",e.setAttribute(\"tabindex\",\"-1\")})}function sK(e){e.querySelectorAll(\"[data-tabindex]\").forEach(e=>{let t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute(\"tabindex\",t):e.removeAttribute(\"tabindex\")})}let sX=w.createContext(null),sG=()=>w.useContext(sX),sQ=ik(\"portal\");function sJ(e={}){let{id:t,root:n}=e,r=ax(),o=sG(),[a,i]=w.useState(null),l=w.useRef(null);return aC(()=>()=>{a?.remove(),queueMicrotask(()=>{l.current=null})},[a]),aC(()=>{if(!r||l.current)return;let e=t?document.getElementById(t):null;if(!e)return;let n=document.createElement(\"div\");n.id=r,n.setAttribute(sQ,\"\"),e.appendChild(n),l.current=n,i(n)},[t,r]),aC(()=>{if(null===n||!r||l.current)return;let e=n||o?.portalNode;e&&!aD(e)&&(e=e.current),e=e||document.body;let a=null;t&&((a=document.createElement(\"div\")).id=t,e.appendChild(a));let s=document.createElement(\"div\");s.id=r,s.setAttribute(sQ,\"\"),(e=a||e).appendChild(s),l.current=s,i(s)},[t,n,r,o]),a}function s0(e){let{children:t,id:n,root:r,preserveTabOrder:o=!0}=e,a=sJ({id:n,root:r}),[i,l]=w.useState(null),s=w.useRef(null),c=w.useRef(null),u=w.useRef(null),d=w.useRef(null),f=i?.modal,p=i?.open,h=!!i&&!i.modal&&i.open&&o&&!!(r||a);return w.useEffect(()=>{if(a&&o&&!f)return a.addEventListener(\"focusin\",e,!0),a.addEventListener(\"focusout\",e,!0),()=>{a.removeEventListener(\"focusin\",e,!0),a.removeEventListener(\"focusout\",e,!0)};function e(e){if(a&&sW(e)){let t=\"focusin\"===e.type;(t?sK:sY)(a)}}},[a,o,f]),w.useEffect(()=>{a&&(p||sK(a))},[p,a]),(0,A.jsxs)(sX.Provider,{value:w.useMemo(()=>({preserveTabOrder:o,beforeOutsideRef:s,afterOutsideRef:c,beforeInsideRef:u,afterInsideRef:d,portalNode:a,setFocusManagerState:l}),[o,a]),children:[h&&a&&(0,A.jsx)(sm,{\"data-type\":\"outside\",ref:s,onFocus:e=>{if(sW(e,a))u.current?.focus();else{let e=s$(i?i.domReference:null);e?.focus()}}}),h&&a&&(0,A.jsx)(\"span\",{\"aria-owns\":a.id,style:sh}),a&&eh.createPortal(t,a),h&&a&&(0,A.jsx)(sm,{\"data-type\":\"outside\",ref:c,onFocus:e=>{if(sW(e,a))d.current?.focus();else{let t=sV(i?i.domReference:null);t?.focus(),i?.closeOnFocusOut&&i?.onOpenChange(!1,e.nativeEvent,\"focus-out\")}}})]})}let s1=w.createContext(void 0);function s2(e){let{children:t,keepMounted:n=!1,container:r}=e,{mounted:o}=lw();return o||n?(0,A.jsx)(s1.Provider,{value:n,children:(0,A.jsx)(s0,{root:r,children:t})}):null}let s4=w.createContext(void 0);function s5(e,t,n){let r,{reference:o,floating:a}=e,i=i8(t),l=i3(i8(t)),s=i6(l),c=i4(t),u=\"y\"===i,d=o.x+o.width/2-a.width/2,f=o.y+o.height/2-a.height/2,p=o[s]/2-a[s]/2;switch(c){case\"top\":r={x:d,y:o.y-a.height};break;case\"bottom\":r={x:d,y:o.y+o.height};break;case\"right\":r={x:o.x+o.width,y:f};break;case\"left\":r={x:o.x-a.width,y:f};break;default:r={x:o.x,y:o.y}}switch(i5(t)){case\"start\":r[l]-=p*(n&&u?-1:1);break;case\"end\":r[l]+=p*(n&&u?-1:1)}return r}let s3=async(e,t,n)=>{let{placement:r=\"bottom\",strategy:o=\"absolute\",middleware:a=[],platform:i}=n,l=a.filter(Boolean),s=await (null==i.isRTL?void 0:i.isRTL(t)),c=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=s5(c,r,s),f=r,p={},h=0;for(let n=0;n<l.length;n++){let{name:a,fn:m}=l[n],{x:g,y:y,data:v,reset:b}=await m({x:u,y:d,initialPlacement:r,placement:f,strategy:o,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:t}});u=null!=g?g:u,d=null!=y?y:d,p={...p,[a]:{...p[a],...v}},b&&h<=50&&(h++,\"object\"==typeof b&&(b.placement&&(f=b.placement),b.rects&&(c=!0===b.rects?await i.getElementRects({reference:e,floating:t,strategy:o}):b.rects),{x:u,y:d}=s5(c,f,s)),n=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:p}};async function s6(e,t){var n;void 0===t&&(t={});let{x:r,y:o,platform:a,rects:i,elements:l,strategy:s}=e,{boundary:c=\"clippingAncestors\",rootBoundary:u=\"viewport\",elementContext:d=\"floating\",altBoundary:f=!1,padding:p=0}=i2(t,e),h=la(p),m=l[f?\"floating\"===d?\"reference\":\"floating\":d],g=li(await a.getClippingRect({element:null==(n=await (null==a.isElement?void 0:a.isElement(m)))||n?m:m.contextElement||await (null==a.getDocumentElement?void 0:a.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:s})),y=\"floating\"===d?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,v=await (null==a.getOffsetParent?void 0:a.getOffsetParent(l.floating)),b=await (null==a.isElement?void 0:a.isElement(v))&&await (null==a.getScale?void 0:a.getScale(v))||{x:1,y:1},A=li(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:y,offsetParent:v,strategy:s}):y);return{top:(g.top-A.top+h.top)/b.y,bottom:(A.bottom-g.bottom+h.bottom)/b.y,left:(g.left-A.left+h.left)/b.x,right:(A.right-g.right+h.right)/b.x}}function s9(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function s8(e){return iY.some(t=>e[t]>=0)}let s7=new Set([\"left\",\"top\"]);async function ce(e,t){let{placement:n,platform:r,elements:o}=e,a=await (null==r.isRTL?void 0:r.isRTL(o.floating)),i=i4(n),l=i5(n),s=\"y\"===i8(n),c=s7.has(i)?-1:1,u=a&&s?-1:1,d=i2(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:h}=\"number\"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&\"number\"==typeof h&&(p=\"end\"===l?-1*h:h),s?{x:p*u,y:f*c}:{x:f*c,y:p*u}}function ct(e){let t=aG(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,o=aN(e),a=o?e.offsetWidth:n,i=o?e.offsetHeight:r,l=iG(n)!==a||iG(r)!==i;return l&&(n=a,r=i),{width:n,height:r,$:l}}function cn(e){return aL(e)?e:e.contextElement}function cr(e){let t=cn(e);if(!aN(t))return iJ(1);let n=t.getBoundingClientRect(),{width:r,height:o,$:a}=ct(t),i=(a?iG(n.width):n.width)/r,l=(a?iG(n.height):n.height)/o;return i&&Number.isFinite(i)||(i=1),l&&Number.isFinite(l)||(l=1),{x:i,y:l}}let co=iJ(0);function ca(e){let t=aT(e);return aY()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:co}function ci(e,t,n,r){var o,a,i;void 0===t&&(t=!1),void 0===n&&(n=!1);let l=e.getBoundingClientRect(),s=cn(e),c=iJ(1);t&&(r?aL(r)&&(c=cr(r)):c=cr(e));let u=(o=s,void 0===(a=n)&&(a=!1),(i=r)&&(!a||i===aT(o))&&a)?ca(s):iJ(0),d=(l.left+u.x)/c.x,f=(l.top+u.y)/c.y,p=l.width/c.x,h=l.height/c.y;if(s){let e=aT(s),t=r&&aL(r)?aT(r):r,n=e,o=a1(n);for(;o&&r&&t!==n;){let e=cr(o),t=o.getBoundingClientRect(),r=aG(o),a=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,i=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;d*=e.x,f*=e.y,p*=e.x,h*=e.y,d+=a,f+=i,o=a1(n=aT(o))}}return li({width:p,height:h,x:d,y:f})}function cl(e,t){let n=aQ(e).scrollLeft;return t?t.left+n:ci(az(e)).left+n}function cs(e,t,n){void 0===n&&(n=!1);let r=e.getBoundingClientRect(),o=r.left+t.scrollLeft-(n?0:cl(e,r));return{x:o,y:r.top+t.scrollTop}}let cc=new Set([\"absolute\",\"fixed\"]);function cu(e,t,n){let r;if(\"viewport\"===t)r=function(e,t){let n=aT(e),r=az(e),o=n.visualViewport,a=r.clientWidth,i=r.clientHeight,l=0,s=0;if(o){a=o.width,i=o.height;let e=aY();(!e||e&&\"fixed\"===t)&&(l=o.offsetLeft,s=o.offsetTop)}return{width:a,height:i,x:l,y:s}}(e,n);else if(\"document\"===t)r=function(e){let t=az(e),n=aQ(e),r=e.ownerDocument.body,o=iX(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=iX(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),i=-n.scrollLeft+cl(e),l=-n.scrollTop;return\"rtl\"===aG(r).direction&&(i+=iX(t.clientWidth,r.clientWidth)-o),{width:o,height:a,x:i,y:l}}(az(e));else if(aL(t))r=function(e,t){let n=ci(e,!0,\"fixed\"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,a=aN(e)?cr(e):iJ(1),i=e.clientWidth*a.x,l=e.clientHeight*a.y,s=o*a.x;return{width:i,height:l,x:s,y:r*a.y}}(t,n);else{let n=ca(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return li(r)}function cd(e){return\"static\"===aG(e).position}function cf(e,t){if(!aN(e)||\"fixed\"===aG(e).position)return null;if(t)return t(e);let n=e.offsetParent;return az(e)===n&&(n=n.ownerDocument.body),n}function cp(e,t){var n;let r=aT(e);if(aq(e))return r;if(!aN(e)){let t=aJ(e);for(;t&&!aX(t);){if(aL(t)&&!cd(t))return t;t=aJ(t)}return r}let o=cf(e,t);for(;o&&(n=o,aU.has(aI(n)))&&cd(o);)o=cf(o,t);return o&&aX(o)&&cd(o)&&!aW(o)?r:o||function(e){let t=aJ(e);for(;aN(t)&&!aX(t);){if(aW(t))return t;if(aq(t))break;t=aJ(t)}return null}(e)||r}let ch=async function(e){let t=this.getOffsetParent||cp,n=this.getDimensions,r=await n(e.floating);return{reference:function(e,t,n){let r=aN(t),o=az(t),a=\"fixed\"===n,i=ci(e,!0,a,t),l={scrollLeft:0,scrollTop:0},s=iJ(0);if(r||!r&&!a)if((\"body\"!==aI(t)||aZ(o))&&(l=aQ(t)),r){let e=ci(t,!0,a,t);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else o&&(s.x=cl(o));a&&!r&&o&&(s.x=cl(o));let c=!o||r||a?iJ(0):cs(o,l),u=i.left+l.scrollLeft-s.x-c.x;return{x:u,y:i.top+l.scrollTop-s.y-c.y,width:i.width,height:i.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},cm={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e,a=\"fixed\"===o,i=az(r),l=!!t&&aq(t.floating);if(r===i||l&&a)return n;let s={scrollLeft:0,scrollTop:0},c=iJ(1),u=iJ(0),d=aN(r);if((d||!d&&!a)&&((\"body\"!==aI(r)||aZ(i))&&(s=aQ(r)),aN(r))){let e=ci(r);c=cr(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=!i||d||a?iJ(0):cs(i,s,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-s.scrollLeft*c.x+u.x+f.x,y:n.y*c.y-s.scrollTop*c.y+u.y+f.y}},getDocumentElement:az,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e,a=[...\"clippingAncestors\"===n?aq(t)?[]:function(e,t){let n=t.get(e);if(n)return n;let r=a0(e,[],!1).filter(e=>aL(e)&&\"body\"!==aI(e)),o=null,a=\"fixed\"===aG(e).position,i=a?aJ(e):e;for(;aL(i)&&!aX(i);){let t=aG(i),n=aW(i);n||\"fixed\"!==t.position||(o=null),(a?!n&&!o:!n&&\"static\"===t.position&&!!o&&cc.has(o.position)||aZ(i)&&!n&&function e(t,n){let r=aJ(t);return!(r===n||!aL(r)||aX(r))&&(\"fixed\"===aG(r).position||e(r,n))}(e,i))?r=r.filter(e=>e!==i):o=t,i=aJ(i)}return t.set(e,r),r}(t,this._c):[].concat(n),r],i=a[0],l=a.reduce((e,n)=>{let r=cu(t,n,o);return e.top=iX(r.top,e.top),e.right=iK(r.right,e.right),e.bottom=iK(r.bottom,e.bottom),e.left=iX(r.left,e.left),e},cu(t,i,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:cp,getElementRects:ch,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=ct(e);return{width:t,height:n}},getScale:cr,isElement:aL,isRTL:function(e){return\"rtl\"===aG(e).direction}};function cg(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function cy(e,t,n,r){let o;void 0===r&&(r={});let{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:l=\"function\"==typeof ResizeObserver,layoutShift:s=\"function\"==typeof IntersectionObserver,animationFrame:c=!1}=r,u=cn(e),d=a||i?[...u?a0(u):[],...a0(t)]:[];d.forEach(e=>{a&&e.addEventListener(\"scroll\",n,{passive:!0}),i&&e.addEventListener(\"resize\",n)});let f=u&&s?function(e,t){let n,r=null,o=az(e);function a(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return!function i(l,s){void 0===l&&(l=!1),void 0===s&&(s=1),a();let c=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=c;if(l||t(),!f||!p)return;let h=iQ(d),m=iQ(o.clientWidth-(u+f)),g=iQ(o.clientHeight-(d+p)),y={rootMargin:-h+\"px \"+-m+\"px \"+-g+\"px \"+-iQ(u)+\"px\",threshold:iX(0,iK(1,s))||1},v=!0;function b(t){let r=t[0].intersectionRatio;if(r!==s){if(!v)return i();r?i(!1,r):n=setTimeout(()=>{i(!1,1e-7)},1e3)}1!==r||cg(c,e.getBoundingClientRect())||i(),v=!1}try{r=new IntersectionObserver(b,{...y,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(b,y)}r.observe(e)}(!0),a}(u,n):null,p=-1,h=null;l&&(h=new ResizeObserver(e=>{let[r]=e;r&&r.target===u&&h&&(h.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=h)||e.observe(t)})),n()}),u&&!c&&h.observe(u),h.observe(t));let m=c?ci(e):null;return c&&function t(){let r=ci(e);m&&!cg(m,r)&&n(),m=r,o=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach(e=>{a&&e.removeEventListener(\"scroll\",n),i&&e.removeEventListener(\"resize\",n)}),null==f||f(),null==(e=h)||e.disconnect(),h=null,c&&cancelAnimationFrame(o)}}var cv=\"undefined\"!=typeof document,cb=cv?w.useLayoutEffect:function(){};function cA(e,t){let n,r,o;if(e===t)return!0;if(typeof e!=typeof t)return!1;if(\"function\"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&\"object\"==typeof e){if(Array.isArray(e)){if((n=e.length)!==t.length)return!1;for(r=n;0!=r--;)if(!cA(e[r],t[r]))return!1;return!0}if((n=(o=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!({}).hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){let n=o[r];if((\"_owner\"!==n||!e.$$typeof)&&!cA(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function cx(e){return\"undefined\"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function cw(e,t){let n=cx(e);return Math.round(t*n)/n}function cC(e){let t=w.useRef(e);return cb(()=>{t.current=e}),t}function c_(e,t,n){let r=\"inline-start\"===e||\"inline-end\"===e;return({top:\"top\",right:r?n?\"inline-start\":\"inline-end\":\"right\",bottom:\"bottom\",left:r?n?\"inline-end\":\"inline-start\":\"left\"})[t]}function ck(e,t,n){let{rects:r,placement:o}=e;return{side:c_(t,i4(o),n),align:i5(o)||\"center\",anchor:{width:r.reference.width,height:r.reference.height},positioner:{width:r.floating.width,height:r.floating.height}}}function cE(e){var t,n,r,o,a;let i,l,s,c,u,d,f,p,h,m,g,y,v,{anchor:b,positionMethod:A=\"absolute\",side:x=\"bottom\",sideOffset:C=0,align:_=\"center\",alignOffset:k=0,collisionBoundary:E,collisionPadding:j=5,sticky:S=!1,arrowPadding:O=5,trackAnchor:B=!0,keepMounted:P=!1,floatingRootContext:I,mounted:T,collisionAvoidance:z,shiftCrossAxis:D=!1,nodeId:L,adaptiveOrigin:N}=e,R=z.side||\"flip\",M=z.align||\"flip\",Z=z.fallbackAxisSide||\"end\",U=\"function\"==typeof b?b:void 0,F=ah(U),q=U?F:b,H=a2(b),V=\"rtl\"===lj(),$={top:\"top\",right:\"right\",bottom:\"bottom\",left:\"left\",\"inline-end\":V?\"left\":\"right\",\"inline-start\":V?\"right\":\"left\"}[x],W=\"center\"===_?$:`${$}-${_}`,Y={boundary:\"clipping-ancestors\"===E?\"clippingAncestors\":E,padding:j},K=w.useRef(null),X=a2(C),G=a2(k),Q=\"function\"!=typeof C?C:0,J=[(i=e=>{let t=ck(e,x,V),n=\"function\"==typeof X.current?X.current(t):X.current,r=\"function\"==typeof G.current?G.current(t):G.current;return{mainAxis:n,crossAxis:r,alignmentAxis:r}},l=[Q,\"function\"!=typeof k?k:0,V,x],{...(void 0===(t=i)&&(t=0),{name:\"offset\",options:t,async fn(e){var n,r;let{x:o,y:a,placement:i,middlewareData:l}=e,s=await ce(e,t);return i===(null==(n=l.offset)?void 0:n.placement)&&null!=(r=l.arrow)&&r.alignmentOffset?{}:{x:o+s.x,y:a+s.y,data:{...s,placement:i}}}}),options:[i,l]})],ee=\"none\"===M&&\"shift\"!==R,et=!ee&&(S||D||\"shift\"===R),en=\"none\"===R?null:{...{name:\"flip\",options:n=s={...Y,mainAxis:!D&&\"flip\"===R,crossAxis:\"flip\"===M&&\"alignment\",fallbackAxisSideDirection:Z},async fn(e){var t,r,o,a,i;let{placement:l,middlewareData:s,rects:c,initialPlacement:u,platform:d,elements:f}=e,{mainAxis:p=!0,crossAxis:h=!0,fallbackPlacements:m,fallbackStrategy:g=\"bestFit\",fallbackAxisSideDirection:y=\"none\",flipAlignment:v=!0,...b}=i2(n,e);if(null!=(t=s.arrow)&&t.alignmentOffset)return{};let A=i4(l),x=i8(u),w=i4(u)===u,C=await (null==d.isRTL?void 0:d.isRTL(f.floating)),_=m||(w||!v?[lo(u)]:function(e){let t=lo(e);return[i7(e),t,i7(t)]}(u)),k=\"none\"!==y;!m&&k&&_.push(...function(e,t,n,r){let o=i5(e),a=function(e,t,n){switch(e){case\"top\":case\"bottom\":if(n)return t?lt:le;return t?le:lt;case\"left\":case\"right\":return t?ln:lr;default:return[]}}(i4(e),\"start\"===n,r);return o&&(a=a.map(e=>e+\"-\"+o),t&&(a=a.concat(a.map(i7)))),a}(u,v,y,C));let E=[u,..._],j=await s6(e,b),S=[],O=(null==(r=s.flip)?void 0:r.overflows)||[];if(p&&S.push(j[A]),h){let e=function(e,t,n){void 0===n&&(n=!1);let r=i5(e),o=i3(i8(e)),a=i6(o),i=\"x\"===o?r===(n?\"end\":\"start\")?\"right\":\"left\":\"start\"===r?\"bottom\":\"top\";return t.reference[a]>t.floating[a]&&(i=lo(i)),[i,lo(i)]}(l,c,C);S.push(j[e[0]],j[e[1]])}if(O=[...O,{placement:l,overflows:S}],!S.every(e=>e<=0)){let e=((null==(o=s.flip)?void 0:o.index)||0)+1,t=E[e];if(t&&(\"alignment\"!==h||x===i8(t)||O.every(e=>i8(e.placement)!==x||e.overflows[0]>0)))return{data:{index:e,overflows:O},reset:{placement:t}};let n=null==(a=O.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:a.placement;if(!n)switch(g){case\"bestFit\":{let e=null==(i=O.filter(e=>{if(k){let t=i8(e.placement);return t===x||\"y\"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:i[0];e&&(n=e);break}case\"initialPlacement\":n=u}if(l!==n)return{reset:{placement:n}}}return{}}},options:[s,c]},er=ee?null:(u=e=>{var t;let n,r,o=lS(e.elements.floating).documentElement;return{...Y,rootBoundary:D?{x:0,y:0,width:o.clientWidth,height:o.clientHeight}:void 0,mainAxis:\"none\"!==M,crossAxis:et,limiter:S||D?void 0:{...(void 0===(t=n=()=>{if(!K.current)return{};let{height:e}=K.current.getBoundingClientRect();return{offset:e/2+(\"number\"==typeof j?j:0)}})&&(t={}),{options:t,fn(e){let{x:n,y:r,placement:o,rects:a,middlewareData:i}=e,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=i2(t,e),u={x:n,y:r},d=i8(o),f=i3(d),p=u[f],h=u[d],m=i2(l,e),g=\"number\"==typeof m?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(s){let e=\"y\"===f?\"height\":\"width\",t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(c){var y,v;let e=\"y\"===f?\"width\":\"height\",t=s7.has(i4(o)),n=a.reference[d]-a.floating[e]+(t&&(null==(y=i.offset)?void 0:y[d])||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:(null==(v=i.offset)?void 0:v[d])||0)-(t?g.crossAxis:0);h<n?h=n:h>r&&(h=r)}return{[f]:p,[d]:h}}}),options:[n,r]}}},d=[Y,S,D,j,M],{...(void 0===(r=u)&&(r={}),{name:\"shift\",options:r,async fn(e){let{x:t,y:n,placement:o}=e,{mainAxis:a=!0,crossAxis:i=!1,limiter:l={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...s}=i2(r,e),c={x:t,y:n},u=await s6(e,s),d=i8(i4(o)),f=i3(d),p=c[f],h=c[d];if(a){let e=\"y\"===f?\"top\":\"left\",t=\"y\"===f?\"bottom\":\"right\",n=p+u[e],r=p-u[t];p=iX(n,iK(p,r))}if(i){let e=\"y\"===d?\"top\":\"left\",t=\"y\"===d?\"bottom\":\"right\",n=h+u[e],r=h-u[t];h=iX(n,iK(h,r))}let m=l.fn({...e,[f]:p,[d]:h});return{...m,data:{x:m.x-t,y:m.y-n,enabled:{[f]:a,[d]:i}}}}}),options:[u,d]});\"shift\"===R||\"shift\"===M||\"center\"===_?J.push(er,en):J.push(en,er),J.push({...{name:\"size\",options:o=f={...Y,apply({elements:{floating:e},rects:{reference:t},availableWidth:n,availableHeight:r}){Object.entries({\"--available-width\":`${n}px`,\"--available-height\":`${r}px`,\"--anchor-width\":`${t.width}px`,\"--anchor-height\":`${t.height}px`}).forEach(([t,n])=>{e.style.setProperty(t,n)})}},async fn(e){var t,n;let r,a,{placement:i,rects:l,platform:s,elements:c}=e,{apply:u=()=>{},...d}=i2(o,e),f=await s6(e,d),p=i4(i),h=i5(i),m=\"y\"===i8(i),{width:g,height:y}=l.floating;\"top\"===p||\"bottom\"===p?(r=p,a=h===(await (null==s.isRTL?void 0:s.isRTL(c.floating))?\"start\":\"end\")?\"left\":\"right\"):(a=p,r=\"end\"===h?\"top\":\"bottom\");let v=y-f.top-f.bottom,b=g-f.left-f.right,A=iK(y-f[r],v),x=iK(g-f[a],b),w=!e.middlewareData.shift,C=A,_=x;if(null!=(t=e.middlewareData.shift)&&t.enabled.x&&(_=b),null!=(n=e.middlewareData.shift)&&n.enabled.y&&(C=v),w&&!h){let e=iX(f.left,0),t=iX(f.right,0),n=iX(f.top,0),r=iX(f.bottom,0);m?_=g-2*(0!==e||0!==t?e+t:iX(f.left,f.right)):C=y-2*(0!==n||0!==r?n+r:iX(f.top,f.bottom))}await u({...e,availableWidth:_,availableHeight:C});let k=await s.getDimensions(c.floating);return g!==k.width||y!==k.height?{reset:{rects:!0}}:{}}},options:[f,p]},(h=()=>({element:K.current||document.createElement(\"div\"),padding:O,offsetParent:\"floating\"}),m=[O],{...{name:\"arrow\",options:g=h,async fn(e){let{x:t,y:n,placement:r,rects:o,platform:a,elements:i,middlewareData:l}=e,{element:s,padding:c=0,offsetParent:u=\"real\"}=i2(g,e)||{};if(null==s)return{};let d=la(c),f={x:t,y:n},p=i3(i8(r)),h=i6(p),m=await a.getDimensions(s),y=\"y\"===p,v=y?\"clientHeight\":\"clientWidth\",b=o.reference[h]+o.reference[p]-f[p]-o.floating[h],A=f[p]-o.reference[p],x=\"real\"===u?await a.getOffsetParent?.(s):i.floating,w=i.floating[v]||o.floating[h];w&&await a.isElement?.(x)||(w=i.floating[v]||o.floating[h]);let C=w/2-m[h]/2-1,_=Math.min(d[y?\"top\":\"left\"],C),k=Math.min(d[y?\"bottom\":\"right\"],C),E=w-m[h]-k,j=w/2-m[h]/2+(b/2-A/2),S=iX(_,iK(j,E)),O=!l.arrow&&null!=i5(r)&&j!==S&&o.reference[h]/2-(j<_?_:k)-m[h]/2<0,B=O?j<_?j-_:j-E:0;return{[p]:f[p]+B,data:{[p]:S,centerOffset:j-S-B,...O&&{alignmentOffset:B}},reset:O}}},options:[h,m]}),{...(void 0===(a=y)&&(a={}),{name:\"hide\",options:a,async fn(e){let{rects:t}=e,{strategy:n=\"referenceHidden\",...r}=i2(a,e);switch(n){case\"referenceHidden\":{let n=s9(await s6(e,{...r,elementContext:\"reference\"}),t.reference);return{data:{referenceHiddenOffsets:n,referenceHidden:s8(n)}}}case\"escaped\":{let n=s9(await s6(e,{...r,altBoundary:!0}),t.floating);return{data:{escapedOffsets:n,escaped:s8(n)}}}default:return{}}}}),options:[y,v]},{name:\"transformOrigin\",fn(e){let{elements:t,middlewareData:n,placement:r,rects:o,y:a}=e,i=i4(r),l=i8(i),s=K.current,c=n.arrow?.x||0,u=n.arrow?.y||0,d=s?.clientWidth||0,f=s?.clientHeight||0,p=c+d/2,h=u+f/2,m=Math.abs(n.shift?.y||0),g=o.reference.height/2,y=m>(\"function\"==typeof C?C(ck(e,x,V)):C),v={top:`${p}px calc(100% + ${C}px)`,bottom:`${p}px ${-C}px`,left:`calc(100% + ${C}px) ${h}px`,right:`${-C}px ${h}px`}[i],b=`${p}px ${o.reference.y+g-a}px`;return t.floating.style.setProperty(\"--transform-origin\",et&&\"y\"===l&&y?b:v),{}}},N);let eo=I;!T&&I&&(eo={...I,elements:{reference:null,floating:null,domReference:null}});let ea=w.useMemo(()=>({elementResize:B&&\"undefined\"!=typeof ResizeObserver,layoutShift:B&&\"undefined\"!=typeof IntersectionObserver}),[B]),{refs:ei,elements:el,x:es,y:ec,middlewareData:eu,update:ed,placement:ef,context:ep,isPositioned:em,floatingStyles:eg}=function(e={}){let{nodeId:t}=e,n=aB({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,o=r.elements,[a,i]=w.useState(null),[l,s]=w.useState(null),c=o?.domReference||a,u=w.useRef(null),d=aj();aC(()=>{c&&(u.current=c)},[c]);let f=function(e){void 0===e&&(e={});let{placement:t=\"bottom\",strategy:n=\"absolute\",middleware:r=[],platform:o,elements:{reference:a,floating:i}={},transform:l=!0,whileElementsMounted:s,open:c}=e,[u,d]=w.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=w.useState(r);cA(f,r)||p(r);let[h,m]=w.useState(null),[g,y]=w.useState(null),v=w.useCallback(e=>{e!==C.current&&(C.current=e,m(e))},[]),b=w.useCallback(e=>{e!==_.current&&(_.current=e,y(e))},[]),A=a||h,x=i||g,C=w.useRef(null),_=w.useRef(null),k=w.useRef(u),E=null!=s,j=cC(s),S=cC(o),O=cC(c),B=w.useCallback(()=>{if(!C.current||!_.current)return;let e={placement:t,strategy:n,middleware:f};S.current&&(e.platform=S.current),((e,t,n)=>{let r=new Map,o={platform:cm,...n},a={...o.platform,_c:r};return s3(e,t,{...o,platform:a})})(C.current,_.current,e).then(e=>{let t={...e,isPositioned:!1!==O.current};P.current&&!cA(k.current,t)&&(k.current=t,eh.flushSync(()=>{d(t)}))})},[f,t,n,S,O]);cb(()=>{!1===c&&k.current.isPositioned&&(k.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[c]);let P=w.useRef(!1);cb(()=>(P.current=!0,()=>{P.current=!1}),[]),cb(()=>{if(A&&(C.current=A),x&&(_.current=x),A&&x){if(j.current)return j.current(A,x,B);B()}},[A,x,B,j,E]);let I=w.useMemo(()=>({reference:C,floating:_,setReference:v,setFloating:b}),[v,b]),T=w.useMemo(()=>({reference:A,floating:x}),[A,x]),z=w.useMemo(()=>{let e={position:n,left:0,top:0};if(!T.floating)return e;let t=cw(T.floating,u.x),r=cw(T.floating,u.y);return l?{...e,transform:\"translate(\"+t+\"px, \"+r+\"px)\",...cx(T.floating)>=1.5&&{willChange:\"transform\"}}:{position:n,left:t,top:r}},[n,l,T.floating,u.x,u.y]);return w.useMemo(()=>({...u,update:B,refs:I,elements:T,floatingStyles:z}),[u,B,I,T,z])}({...e,elements:{...o,...l&&{reference:l}}}),p=w.useCallback(e=>{let t=aL(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;s(t),f.refs.setReference(t)},[f.refs]),h=w.useCallback(e=>{(aL(e)||null===e)&&(u.current=e,i(e)),(aL(f.refs.reference.current)||null===f.refs.reference.current||null!==e&&!aL(e))&&f.refs.setReference(e)},[f.refs]),m=w.useMemo(()=>({...f.refs,setReference:h,setPositionReference:p,domReference:u}),[f.refs,h,p]),g=w.useMemo(()=>({...f.elements,domReference:c}),[f.elements,c]),y=w.useMemo(()=>({...f,...r,refs:m,elements:g,nodeId:t}),[f,m,g,t,r]);return aC(()=>{r.dataRef.current.floatingContext=y;let e=d?.nodesRef.current.find(e=>e.id===t);e&&(e.context=y)}),w.useMemo(()=>({...f,context:y,refs:m,elements:g}),[f,m,g,y])}({rootContext:eo,placement:W,middleware:J,strategy:A,whileElementsMounted:P?void 0:(...e)=>cy(...e,ea),nodeId:L}),{sideX:ey,sideY:ev}=eu.adaptiveOrigin||{},eb=w.useMemo(()=>N?{position:A,[ey]:`${es}px`,[ev]:`${ec}px`}:eg,[N,ey,ev,A,es,ec,eg]),eA=w.useRef(null);aC(()=>{if(!T)return;let e=H.current,t=\"function\"==typeof e?e():e,n=(cj(t)?t.current:t)||null;n!==eA.current&&(ei.setPositionReference(n),eA.current=n)},[T,ei,q,H]),w.useEffect(()=>{if(!T)return;let e=H.current;\"function\"!=typeof e&&cj(e)&&e.current!==eA.current&&(ei.setPositionReference(e.current),eA.current=e.current)},[T,ei,q,H]),w.useEffect(()=>{if(P&&T&&el.domReference&&el.floating)return cy(el.domReference,el.floating,ed,ea)},[P,T,el,ed,ea]);let ex=c_(x,i4(ef),V),ew=i5(ef)||\"center\",eC=!!eu.hide?.referenceHidden,e_=w.useMemo(()=>({position:\"absolute\",top:eu.arrow?.y,left:eu.arrow?.x}),[eu.arrow]),ek=eu.arrow?.centerOffset!==0;return w.useMemo(()=>({positionerStyles:eb,arrowStyles:e_,arrowRef:K,arrowUncentered:ek,side:ex,align:ew,anchorHidden:eC,refs:ei,context:ep,isPositioned:em,update:ed}),[eb,e_,K,ek,ex,ew,eC,ei,ep,em,ed])}function cj(e){return null!=e&&\"current\"in e}function cS(e){let{children:t,elementsRef:n,labelsRef:r,onMapChange:o}=e,a=w.useRef(0),i=al(cB).current,l=al(cO).current,[s,c]=w.useState(0),u=w.useRef(s),d=ah((e,t)=>{l.set(e,t??null),u.current+=1,c(u.current)}),f=ah(e=>{l.delete(e),u.current+=1,c(u.current)}),p=w.useMemo(()=>{let e=new Map;return Array.from(l.keys()).sort(cP).forEach((t,n)=>{let r=l.get(t)??{};e.set(t,{...r,index:n})}),e},[l,s]);aC(()=>{u.current===s&&(n.current.length!==p.size&&(n.current.length=p.size),r&&r.current.length!==p.size&&(r.current.length=p.size)),o?.(p)},[o,p,n,r,s,u]);let h=ah(e=>(i.add(e),()=>{i.delete(e)}));aC(()=>{i.forEach(e=>e(p))},[i,p]);let m=w.useMemo(()=>({register:d,unregister:f,subscribeMapChange:h,elementsRef:n,labelsRef:r,nextIndexRef:a}),[d,f,h,n,r,a]);return(0,A.jsx)(sc.Provider,{value:m,children:t})}function cO(){return new Map}function cB(){return new Set}function cP(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}let cI=w.forwardRef(function(e,t){let n,{cutout:r,...o}=e;if(r){let e=r?.getBoundingClientRect();n=`polygon(\n 0% 0%,\n 100% 0%,\n 100% 100%,\n 0% 100%,\n 0% 0%,\n ${e.left}px ${e.top}px,\n ${e.left}px ${e.bottom}px,\n ${e.right}px ${e.bottom}px,\n ${e.right}px ${e.top}px,\n ${e.left}px ${e.top}px\n )`}return(0,A.jsx)(\"div\",{ref:t,role:\"presentation\",\"data-base-ui-inert\":\"\",...o,style:{position:\"fixed\",inset:0,userSelect:\"none\",WebkitUserSelect:\"none\",clipPath:n}})}),cT=w.forwardRef(function(e,t){var n;let{anchor:r,positionMethod:o=\"absolute\",className:a,render:i,side:l,align:s,sideOffset:c=0,alignOffset:u=0,collisionBoundary:d=\"clipping-ancestors\",collisionPadding:f=5,arrowPadding:p=5,sticky:h=!1,trackAnchor:m=!0,collisionAvoidance:g=iF,...y}=e,{open:v,setOpen:b,floatingRootContext:x,setPositionerElement:C,itemDomElements:_,itemLabels:k,mounted:E,modal:j,lastOpenChangeReason:S,parent:O,setHoverEnabled:B,triggerElement:P}=lw(),I=function(){let e=w.useContext(s1);if(void 0===e)throw Error(\"Base UI: <Menu.Portal> is missing.\");return e}(),T=function(e){let t=ax(),n=aj(),r=aE(),o=r;return aC(()=>{if(!t)return;let e={id:t,parentId:o};return n?.addNode(e),()=>{n?.removeNode(e)}},[n,t,o]),t}(),z=aE(),D=lN(!0),L=r,N=c,R=u,M=s;\"context-menu\"===O.type&&(L=O.context?.anchor??r,M=e.align??\"start\",R=e.alignOffset??2,N=e.sideOffset??-5);let Z=l,U=M;\"menu\"===O.type?(Z=Z??\"inline-end\",U=U??\"start\"):\"menubar\"===O.type&&(Z=Z??\"bottom\",U=U??\"start\");let F=\"context-menu\"===O.type,q=cE({anchor:L,floatingRootContext:x,positionMethod:D?\"fixed\":o,mounted:E,side:Z,sideOffset:N,align:U,alignOffset:R,arrowPadding:F?0:p,collisionBoundary:d,collisionPadding:f,sticky:h,nodeId:T,keepMounted:I,trackAnchor:m,collisionAvoidance:g,shiftCrossAxis:F}),{events:H}=aj(),V=w.useMemo(()=>{let e={};return v||(e.pointerEvents=\"none\"),{role:\"presentation\",hidden:!E,style:{...q.positionerStyles,...e}}},[v,E,q.positionerStyles]);w.useEffect(()=>{function e(e){e.open?(e.parentNodeId===T&&B(!1),e.nodeId!==T&&e.parentNodeId===z&&b(!1,void 0,\"sibling-open\")):e.parentNodeId===T&&B(!0)}return H.on(\"openchange\",e),()=>{H.off(\"openchange\",e)}},[H,T,z,b,B]),w.useEffect(()=>{H.emit(\"openchange\",{open:v,nodeId:T,parentNodeId:z})},[H,v,T,z]);let $=w.useMemo(()=>({open:v,side:q.side,align:q.align,anchorHidden:q.anchorHidden,nested:\"menu\"===O.type}),[v,q.side,q.align,q.anchorHidden,O.type]),W=w.useMemo(()=>({side:q.side,align:q.align,arrowRef:q.arrowRef,arrowUncentered:q.arrowUncentered,arrowStyles:q.arrowStyles,floatingContext:q.context}),[q.side,q.align,q.arrowRef,q.arrowUncentered,q.arrowStyles,q.context]),Y=so(\"div\",e,{state:$,customStyleHookMapping:sn,ref:[t,C],props:{...V,...y}}),K=E&&\"menu\"!==O.type&&(\"menubar\"!==O.type&&j&&\"trigger-hover\"!==S||\"menubar\"===O.type&&O.context.modal),X=null;return\"menubar\"===O.type?X=O.context.contentElement:void 0===O.type&&(X=P),(0,A.jsxs)(s4.Provider,{value:W,children:[K&&(0,A.jsx)(cI,{ref:\"context-menu\"===O.type||\"nested-context-menu\"===O.type?O.context.internalBackdropRef:null,inert:(n=!v,sr>=19?n:n?\"true\":void 0),cutout:X}),(0,A.jsx)(aS,{id:T,children:(0,A.jsx)(cS,{elementsRef:_,labelsRef:k,children:Y})})]})}),cz={inert:new WeakMap,\"aria-hidden\":new WeakMap,none:new WeakMap};function cD(e){return\"inert\"===e?cz.inert:\"aria-hidden\"===e?cz[\"aria-hidden\"]:cz.none}let cL=new WeakSet,cN={},cR=0,cM=e=>e&&(e.host||cM(e.parentNode)),cZ=[];function cU(){cZ=cZ.filter(e=>e.isConnected)}function cF(){return cU(),cZ[cZ.length-1]}function cq(e,t){if(!t.current.includes(\"floating\")&&!e.getAttribute(\"role\")?.includes(\"dialog\"))return;let n=sq(),r=sU(e,n).filter(e=>{let t=e.getAttribute(\"data-tabindex\")||\"\";return sF(e,n)||e.hasAttribute(\"data-tabindex\")&&!t.startsWith(\"-\")}),o=e.getAttribute(\"tabindex\");t.current.includes(\"floating\")||0===r.length?\"0\"!==o&&e.setAttribute(\"tabindex\",\"0\"):(\"-1\"!==o||e.hasAttribute(\"data-tabindex\")&&\"-1\"!==e.getAttribute(\"data-tabindex\"))&&(e.setAttribute(\"tabindex\",\"-1\"),e.setAttribute(\"data-tabindex\",\"-1\"))}function cH(e){let{context:t,children:n,disabled:r=!1,order:o=[\"content\"],initialFocus:a=0,returnFocus:i=!0,restoreFocus:l=!1,modal:s=!0,closeOnFocusOut:c=!0,getInsideElements:u=()=>[]}=e,{open:d,onOpenChange:f,events:p,dataRef:h,elements:{domReference:m,floating:g}}=t,y=ah(()=>h.current.floatingContext?.nodeId),v=ah(u),b=\"number\"==typeof a&&a<0,x=iC(m)&&b,C=a2(o),_=a2(a),k=a2(i),E=aj(),j=sG(),S=w.useRef(null),O=w.useRef(null),B=w.useRef(!1),P=w.useRef(!1),I=w.useRef(-1),T=ad(),z=null!=j,D=i_(g),L=ah((e=D)=>e?sZ(e,sq()):[]),N=ah(e=>{let t=L(e);return C.current.map(()=>t).filter(Boolean).flat()});w.useEffect(()=>{if(r||!s)return;function e(e){\"Tab\"===e.key&&iv(D,iy(ix(D)))&&0===L().length&&!x&&ia(e)}let t=ix(D);return t.addEventListener(\"keydown\",e),()=>{t.removeEventListener(\"keydown\",e)}},[r,m,D,s,C,x,L,N]),w.useEffect(()=>{if(!r&&g)return g.addEventListener(\"focusin\",e),()=>{g.removeEventListener(\"focusin\",e)};function e(e){let t=ib(e),n=L().indexOf(t);-1!==n&&(I.current=n)}},[r,g,L]),w.useEffect(()=>{if(r||!c)return;function e(){P.current=!0}function t(e){let t=e.relatedTarget,n=e.currentTarget,r=ib(e);queueMicrotask(()=>{let o=y(),a=!(iv(m,t)||iv(g,t)||iv(t,g)||iv(j?.portalNode,t)||t?.hasAttribute(ik(\"focus-guard\"))||E&&(iB(E.nodesRef.current,o).find(e=>iv(e.context?.elements.floating,t)||iv(e.context?.elements.domReference,t))||iP(E.nodesRef.current,o).find(e=>[e.context?.elements.floating,i_(e.context?.elements.floating)].includes(t)||e.context?.elements.domReference===t)));if(n===m&&D&&cq(D,C),l&&n!==m&&!r?.isConnected&&iy(ix(D))===ix(D).body){aN(D)&&D.focus();let e=I.current,t=L(),n=t[e]||t[t.length-1]||D;aN(n)&&n.focus()}if(h.current.insideReactTree){h.current.insideReactTree=!1;return}if(P.current){P.current=!1;return}(x||!s)&&t&&a&&t!==cF()&&(B.current=!0,f(!1,e,\"focus-out\"))})}let n=!!(!E&&j);function o(){h.current.insideReactTree=!0,T.start(0,()=>{h.current.insideReactTree=!1})}if(g&&aN(m))return m.addEventListener(\"focusout\",t),m.addEventListener(\"pointerdown\",e),g.addEventListener(\"focusout\",t),n&&g.addEventListener(\"focusout\",o,!0),()=>{m.removeEventListener(\"focusout\",t),m.removeEventListener(\"pointerdown\",e),g.removeEventListener(\"focusout\",t),n&&g.removeEventListener(\"focusout\",o,!0)}},[r,m,g,D,s,E,j,f,c,l,L,x,y,C,h,T]);let R=w.useRef(null),M=w.useRef(null),Z=lX(R,j?.beforeInsideRef),U=lX(M,j?.afterInsideRef);w.useEffect(()=>{if(r||!g)return;let e=Array.from(j?.portalNode?.querySelectorAll(`[${ik(\"portal\")}]`)||[]),t=E?iP(E.nodesRef.current,y()):[],n=function(e,t=!1,n=!1){let r=ix(e[0]).body;return function(e,t,n,r){let o,a=\"data-base-ui-inert\",i=r?\"inert\":n?\"aria-hidden\":null,l=(o=t,e.map(e=>{if(o.contains(e))return e;let t=cM(e);return o.contains(t)?t:null}).filter(e=>null!=e)),s=new Set,c=new Set(l),u=[];cN[a]||(cN[a]=new WeakMap);let d=cN[a];return l.forEach(function e(t){!(!t||s.has(t))&&(s.add(t),t.parentNode&&e(t.parentNode))}),function e(t){!t||c.has(t)||[].forEach.call(t.children,t=>{if(\"script\"!==aI(t))if(s.has(t))e(t);else{let e=i?t.getAttribute(i):null,n=null!==e&&\"false\"!==e,r=cD(i),o=(r.get(t)||0)+1,l=(d.get(t)||0)+1;r.set(t,o),d.set(t,l),u.push(t),1===o&&n&&cL.add(t),1===l&&t.setAttribute(a,\"\"),!n&&i&&t.setAttribute(i,\"inert\"===i?\"\":\"true\")}})}(t),s.clear(),cR+=1,()=>{u.forEach(e=>{let t=cD(i),n=(t.get(e)||0)-1,r=(d.get(e)||0)-1;t.set(e,n),d.set(e,r),n||(!cL.has(e)&&i&&e.removeAttribute(i),cL.delete(e)),r||e.removeAttribute(a)}),(cR-=1)||(cz.inert=new WeakMap,cz[\"aria-hidden\"]=new WeakMap,cz.none=new WeakMap,cL=new WeakSet,cN={})}}(e.concat(Array.from(r.querySelectorAll(\"[aria-live]\"))),r,t,n)}([g,t.find(e=>iC(e.context?.elements.domReference||null))?.context?.elements.domReference,...e,...v(),S.current,O.current,R.current,M.current,j?.beforeOutsideRef.current,j?.afterOutsideRef.current,x?m:null].filter(e=>null!=e),s||x);return()=>{n()}},[r,m,g,s,C,j,x,E,y,v]),aC(()=>{if(r||!aN(D))return;let e=iy(ix(D));queueMicrotask(()=>{let t=N(D),n=_.current,r=(\"number\"==typeof n?t[n]:n.current)||D,o=iv(D,e);b||o||!d||lh(r,{preventScroll:r===D})})},[r,d,D,b,N,_]),aC(()=>{var e;if(r||!D)return;let t=ix(D);function n({reason:e,event:t,nested:n}){if([\"hover\",\"safe-polygon\"].includes(e)&&\"mouseleave\"===t.type&&(B.current=!0),\"outside-press\"===e)if(n)B.current=!1;else if(ii(t)||il(t))B.current=!1;else{let e=!1;document.createElement(\"div\").focus({get preventScroll(){return e=!0,!1}}),e?B.current=!1:B.current=!0}}e=iy(t),cU(),e&&\"body\"!==aI(e)&&(cZ.push(e),cZ.length>20&&(cZ=cZ.slice(-20))),p.on(\"openchange\",n);let o=t.createElement(\"span\");return o.setAttribute(\"tabindex\",\"-1\"),o.setAttribute(\"aria-hidden\",\"true\"),Object.assign(o.style,sh),z&&m&&m.insertAdjacentElement(\"afterend\",o),()=>{p.off(\"openchange\",n);let e=iy(t),r=iv(g,e)||E&&iB(E.nodesRef.current,y(),!1).some(t=>iv(t.context?.elements.floating,e)),a=function(){if(\"boolean\"==typeof k.current){let e=m||cF();return e&&e.isConnected?e:o}return k.current.current||o}();queueMicrotask(()=>{let n=function(e){let t=sq();return sF(e,t)?e:sZ(e,t)[0]||e}(a);k.current&&!B.current&&aN(n)&&(n===e||e===t.body||r)&&n.focus({preventScroll:!0}),o.remove()})}},[r,g,D,k,h,p,E,z,m,y]),w.useEffect(()=>{queueMicrotask(()=>{B.current=!1})},[r]),w.useEffect(()=>{if(r||!d)return;function e(e){let t=ib(e);t?.closest(\"[data-base-ui-click-trigger]\")&&(P.current=!0)}let t=ix(D);return t.addEventListener(\"pointerdown\",e,!0),()=>{t.removeEventListener(\"pointerdown\",e,!0)}},[r,d,D]),aC(()=>{if(!r&&j)return j.setFocusManagerState({modal:s,closeOnFocusOut:c,open:d,onOpenChange:f,domReference:m}),()=>{j.setFocusManagerState(null)}},[r,j,s,d,f,c,m]),aC(()=>{if(!r&&D)return cq(D,C),()=>{queueMicrotask(cU)}},[r,D,C]);let F=!r&&(!s||!x)&&(z||s);return(0,A.jsxs)(w.Fragment,{children:[F&&(0,A.jsx)(sm,{\"data-type\":\"inside\",ref:Z,onFocus:e=>{if(s){let e=N();lh(e[e.length-1])}else if(j?.preserveTabOrder&&j.portalNode)if(B.current=!1,sW(e,j.portalNode)){let e=sV(m);e?.focus()}else j.beforeOutsideRef.current?.focus()}}),n,F&&(0,A.jsx)(sm,{\"data-type\":\"inside\",ref:U,onFocus:e=>{if(s)lh(N()[0]);else if(j?.preserveTabOrder&&j.portalNode)if(c&&(B.current=!0),sW(e,j.portalNode)){let e=s$(m);e?.focus()}else j.afterOutsideRef.current?.focus()}})]})}let cV={...sn,...l2},c$=w.forwardRef(function(e,t){let{render:n,className:r,finalFocus:o,...a}=e,{open:i,setOpen:l,popupRef:s,transitionStatus:c,popupProps:u,mounted:d,instantType:f,onOpenChangeComplete:p,parent:h,lastOpenChangeReason:m,rootId:g}=lw(),{side:y,align:v,floatingContext:b}=function(){let e=w.useContext(s4);if(void 0===e)throw Error(\"Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.\");return e}();lk({open:i,ref:s,onComplete(){i&&p?.(!0)}});let{events:x}=aj();w.useEffect(()=>{function e(e){l(!1,e.domEvent,e.reason)}return x.on(\"close\",e),()=>{x.off(\"close\",e)}},[x,l]);let C=so(\"div\",e,{state:w.useMemo(()=>({transitionStatus:c,side:y,align:v,open:i,nested:\"menu\"===h.type,instant:f}),[c,y,v,i,h.type,f]),ref:[t,s],customStyleHookMapping:cV,props:[u,\"starting\"===c?iM:iZ,a,{\"data-rootownerid\":g}]}),_=void 0===h.type||\"context-menu\"===h.type;return\"menubar\"===h.type&&\"outside-press\"!==m&&(_=!0),(0,A.jsx)(cH,{context:b,modal:!1,disabled:!d,returnFocus:o||_,initialFocus:\"menu\"===h.type?-1:0,restoreFocus:!0,children:C})}),cW=w.createContext(void 0),cY=w.forwardRef(function(e,t){let{render:n,className:r,...o}=e,[a,i]=w.useState(void 0),l=w.useMemo(()=>({setLabelId:i}),[i]),s=so(\"div\",e,{ref:t,props:{role:\"group\",\"aria-labelledby\":a,...o}});return(0,A.jsx)(cW.Provider,{value:l,children:s})});function cK(e){return ax(e,\"base-ui\")}let cX=w.forwardRef(function(e,t){let{className:n,render:r,id:o,...a}=e,i=cK(o),{setLabelId:l}=function(){let e=w.useContext(cW);if(void 0===e)throw Error(\"Base UI: MenuGroupRootContext is missing. Menu group parts must be used within <Menu.Group>.\");return e}();return aC(()=>(l(i),()=>{l(void 0)}),[l,i]),so(\"div\",e,{ref:t,props:{id:i,role:\"presentation\",...a}})}),cG={type:\"regular-item\"},cQ=w.memo(w.forwardRef(function(e,t){let{className:n,closeOnClick:r=!0,disabled:o=!1,highlighted:a,id:i,menuEvents:l,itemProps:s,render:c,allowMouseUpTriggerRef:u,typingRef:d,nativeButton:f,...p}=e,{getItemProps:h,itemRef:m}=function(e){let{closeOnClick:t,disabled:n=!1,highlighted:r,id:o,menuEvents:a,allowMouseUpTriggerRef:i,typingRef:l,nativeButton:s,itemMetadata:c}=e,u=w.useRef(null),{getButtonProps:d,buttonRef:f}=ss({disabled:n,focusableWhenDisabled:!0,native:s}),p=w.useCallback(e=>lU({id:o,role:\"menuitem\",tabIndex:r?0:-1,onMouseEnter(){\"submenu-trigger\"===c.type&&c.setActive()},onKeyUp:e=>{\" \"===e.key&&l.current&&e.preventBaseUIHandler()},onClick:e=>{t&&a.emit(\"close\",{domEvent:e,reason:\"item-press\"})},onMouseUp:()=>{u.current&&i.current&&\"regular-item\"===c.type&&u.current.click()}},e,d),[o,r,d,l,t,a,i,c]),h=lX(u,f);return w.useMemo(()=>({getItemProps:p,itemRef:h}),[p,h])}({closeOnClick:r,disabled:o,highlighted:a,id:i,menuEvents:l,allowMouseUpTriggerRef:u,typingRef:d,nativeButton:f,itemMetadata:cG});return so(\"div\",e,{state:w.useMemo(()=>({disabled:o,highlighted:a}),[o,a]),ref:[m,t],props:[s,p,h]})})),cJ=w.forwardRef(function(e,t){let{id:n,label:r,nativeButton:o=!1,...a}=e,i=w.useRef(null),l=sd({label:r}),s=lX(t,l.ref,i),{itemProps:c,activeIndex:u,allowMouseUpTriggerRef:d,typingRef:f}=lw(),p=cK(n),h=l.index===u,{events:m}=aj();return(0,A.jsx)(cQ,{...a,id:p,ref:s,highlighted:h,menuEvents:m,itemProps:c,allowMouseUpTriggerRef:d,typingRef:f,nativeButton:o})});var c0=\"__next_builtin__\";function c1(e){return e.replace(new RegExp(\"^\".concat(c0)),\"\").replace(new RegExp(\"\".concat(\"@boundary\",\"$\")),\"\")}var c2=\"boundary:\";function c4(e){return e.startsWith(c2)}function c5(e){return e.replace(c2,\"\")}function c3(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function c6(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function c9(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function c8(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return c3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c3(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var c7=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach(function(t){\"function\"==typeof t?t(e):t&&(t.current=e)})}};function ue(e){var t,n=e.nodeState,r=e.boundaries,o=n.pagePath,a=n.boundaryType,i=n.setBoundaryType,l=c8((0,w.useState)(!1),2),s=l[0],c=l[1],u=dl().shadowRoot,d=(0,w.useRef)(null),f=(0,w.useRef)(null);ne(f,d,s,function(){c(!1)},null==(t=d.current)?void 0:t.ownerDocument);var p=(Object.values(r).find(function(e){return null!==e})||\"\").split(\".\").pop()||\"js\",h=(0,w.useMemo)(function(){return Object.fromEntries(Object.entries(r).map(function(e){var t=c8(e,2),n=t[0],r=c1((t[1]||\"\").split(\"/\").pop()||\"\".concat(n,\".\").concat(p));return[n,r]}))},[r,p]),m=(o||\"\").split(\"/\").pop()||\"\",g=c1(a?\"page.\".concat(p):m||\"page.\".concat(p)),y=[{label:h.loading,value:\"loading\",icon:(0,A.jsx)(ut,{}),disabled:!r.loading},{label:h.error,value:\"error\",icon:(0,A.jsx)(un,{}),disabled:!r.error},{label:h[\"not-found\"],value:\"not-found\",icon:(0,A.jsx)(ur,{}),disabled:!r[\"not-found\"]}],v={label:a?\"Reset\":g,value:\"reset\",icon:(0,A.jsx)(uo,{}),disabled:null===a},b=(0,w.useCallback)(function(e){var t=new URLSearchParams({file:e.filePath,isAppRelativePath:\"1\"});fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(t.toString())).catch(console.warn)},[]),x=(0,w.useCallback)(function(e){switch(e){case\"not-found\":case\"loading\":case\"error\":i(e);break;case\"reset\":i(null);break;case\"open-editor\":o&&b({filePath:o})}},[i,o,b]),C=(0,w.useMemo)(function(){return\"layout\"!==n.type&&\"template\"!==n.type&&Object.values(r).some(function(e){return null!==e})},[n.type,r]);return(0,A.jsxs)(lK,{delay:0,modal:!1,open:s,onOpenChange:c,children:[(0,A.jsx)(sp,{className:\"segment-boundary-trigger\",\"data-nextjs-dev-overlay-segment-boundary-trigger-button\":!0,render:function(e){var t=c7(e.ref,d);return(0,A.jsx)(ui,c9(c6({},e),{ref:t}))},disabled:!C}),(0,A.jsx)(s2,{container:u,children:(0,A.jsx)(cT,{className:\"segment-boundary-dropdown-positioner\",side:\"bottom\",align:\"center\",sideOffset:6,arrowPadding:8,ref:f,children:(0,A.jsxs)(c$,{className:\"segment-boundary-dropdown\",children:[(0,A.jsxs)(cY,{children:[(0,A.jsx)(cX,{className:\"segment-boundary-group-label\",children:\"Toggle Overrides\"}),y.map(function(e){return(0,A.jsxs)(cJ,{className:\"segment-boundary-dropdown-item\",onClick:function(){return x(e.value)},disabled:e.disabled,children:[e.icon,e.label]},e.value)})]}),(0,A.jsx)(cY,{children:(0,A.jsxs)(cJ,{className:\"segment-boundary-dropdown-item\",onClick:function(){return x(v.value)},disabled:v.disabled,children:[v.icon,v.label]},v.value)})]})})})]})}function ut(){var e,t,n=(0,x.c)(2);return n[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"g\",{clipPath:\"url(#clip0_2759_1866)\",children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10 3.5C13.5899 3.5 16.5 6.41015 16.5 10C16.5 13.5899 13.5899 16.5 10 16.5C6.41015 16.5 3.5 13.5899 3.5 10C3.5 6.41015 6.41015 3.5 10 3.5ZM2 10C2 14.4183 5.58172 18 10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10ZM10.75 9.62402V6H9.25V9.875C9.25 10.1898 9.39858 10.486 9.65039 10.6748L11.5498 12.0996L12.1504 12.5498L13.0498 11.3496L12.4502 10.9004L10.75 9.62402Z\",fill:\"currentColor\"})}),n[0]=e):e=n[0],n[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsxs)(\"svg\",{width:\"20px\",height:\"20px\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[e,(0,A.jsx)(\"defs\",{children:(0,A.jsx)(\"clipPath\",{id:\"clip0_2759_1866\",children:(0,A.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(2 2)\"})})})]}),n[1]=t):t=n[1],t}function un(){var e,t,n=(0,x.c)(2);return n[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"g\",{clipPath:\"url(#clip0_2759_1881)\",children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.5 7.30762V12.6924L7.30762 16.5H12.6924L16.5 12.6924V7.30762L12.6924 3.5H7.30762L3.5 7.30762ZM18 12.8994L17.9951 12.998C17.9724 13.2271 17.8712 13.4423 17.707 13.6064L13.6064 17.707L13.5332 17.7734C13.3806 17.8985 13.1944 17.9757 12.998 17.9951L12.8994 18H7.10059L7.00195 17.9951C6.80562 17.9757 6.6194 17.8985 6.4668 17.7734L6.39355 17.707L2.29297 13.6064C2.12883 13.4423 2.02756 13.2271 2.00488 12.998L2 12.8994V7.10059C2 6.83539 2.10546 6.58109 2.29297 6.39355L6.39355 2.29297C6.55771 2.12883 6.77294 2.02756 7.00195 2.00488L7.10059 2H12.8994L12.998 2.00488C13.2271 2.02756 13.4423 2.12883 13.6064 2.29297L17.707 6.39355C17.8945 6.58109 18 6.83539 18 7.10059V12.8994ZM9.25 5.75H10.75L10.75 10.75H9.25L9.25 5.75ZM10 14C10.5523 14 11 13.5523 11 13C11 12.4477 10.5523 12 10 12C9.44772 12 9 12.4477 9 13C9 13.5523 9.44772 14 10 14Z\",fill:\"currentColor\"})}),n[0]=e):e=n[0],n[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsxs)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[e,(0,A.jsx)(\"defs\",{children:(0,A.jsx)(\"clipPath\",{id:\"clip0_2759_1881\",children:(0,A.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(2 2)\"})})})]}),n[1]=t):t=n[1],t}function ur(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{width:\"20px\",height:\"20px\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10.5586 2.5C11.1341 2.50004 11.6588 2.8294 11.9091 3.34766L17.8076 15.5654C18.1278 16.2292 17.6442 16.9997 16.9072 17H3.09274C2.35574 16.9997 1.8721 16.2292 2.19235 15.5654L8.09079 3.34766C8.34109 2.8294 8.86583 2.50004 9.44137 2.5H10.5586ZM3.89059 15.5H16.1093L10.5586 4H9.44137L3.89059 15.5ZM9.24997 6.75H10.75L10.75 10.75H9.24997L9.24997 6.75ZM9.99997 14C10.5523 14 11 13.5523 11 13C11 12.4477 10.5523 12 9.99997 12C9.44768 12 8.99997 12.4477 8.99997 13C8.99997 13.5523 9.44768 14 9.99997 14Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function uo(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,A.jsx)(\"path\",{d:\"M9.96484 3C13.8463 3.00018 17 6.13012 17 10C17 13.8699 13.8463 16.9998 9.96484 17C7.62404 17 5.54877 15.8617 4.27051 14.1123L3.82812 13.5068L5.03906 12.6221L5.48145 13.2275C6.48815 14.6053 8.12092 15.5 9.96484 15.5C13.0259 15.4998 15.5 13.0335 15.5 10C15.5 6.96654 13.0259 4.50018 9.96484 4.5C7.42905 4.5 5.29544 6.19429 4.63867 8.5H8V10H2.75C2.33579 10 2 9.66421 2 9.25V4H3.5V7.2373C4.57781 4.74376 7.06749 3 9.96484 3Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function ua(e){var t,n,r=(0,x.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.7071 2.39644C8.31658 2.00592 7.68341 2.00592 7.29289 2.39644L4.46966 5.21966L3.93933 5.74999L4.99999 6.81065L5.53032 6.28032L7.99999 3.81065L10.4697 6.28032L11 6.81065L12.0607 5.74999L11.5303 5.21966L8.7071 2.39644ZM5.53032 9.71966L4.99999 9.18933L3.93933 10.25L4.46966 10.7803L7.29289 13.6035C7.68341 13.9941 8.31658 13.9941 8.7071 13.6035L11.5303 10.7803L12.0607 10.25L11 9.18933L10.4697 9.71966L7.99999 12.1893L5.53032 9.71966Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,A.jsx)(\"svg\",c9(c6({strokeLinejoin:\"round\",viewBox:\"0 0 16 16\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function ui(e){var t,n,r=(0,x.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"span\",{className:\"segment-boundary-trigger-text\",children:(0,A.jsx)(ua,{className:\"plus-icon\"})}),r[0]=t):t=r[0],r[1]!==e?(n=(0,A.jsx)(\"button\",c9(c6({},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}let ul=w.createContext(void 0);function us(){let e=w.useContext(ul);if(void 0===e)throw Error(\"Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>.\");return e}let uc=w.forwardRef(function(e,t){let{className:n,render:r,...o}=e,{open:a,setTriggerElement:i,triggerProps:l}=us();return so(\"button\",e,{state:w.useMemo(()=>({open:a}),[a]),ref:[t,i],props:[l,o],customStyleHookMapping:se})}),uu=w.createContext(void 0);function ud(){let e=w.useContext(uu);if(void 0===e)throw Error(\"Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>.\");return e}let uf=w.forwardRef(function(e,t){let{className:n,render:r,...o}=e,{open:a,arrowRef:i,side:l,align:s,arrowUncentered:c,arrowStyles:u}=ud();return so(\"div\",e,{state:w.useMemo(()=>({open:a,side:l,align:s,uncentered:c}),[a,l,s,c]),ref:[t,i],props:[{style:u,\"aria-hidden\":!0},o],customStyleHookMapping:sn})}),up={...sn,...l2},uh=w.forwardRef(function(e,t){let{className:n,render:r,...o}=e,{open:a,instantType:i,transitionStatus:l,popupProps:s,popupRef:c,onOpenChangeComplete:u}=us(),{side:d,align:f}=ud();return lk({open:a,ref:c,onComplete(){a&&u?.(!0)}}),so(\"div\",e,{state:w.useMemo(()=>({open:a,side:d,align:f,instant:i,transitionStatus:l}),[a,d,f,i,l]),ref:[t,c],props:[s,\"starting\"===l?iM:iZ,o],customStyleHookMapping:up})}),um=w.createContext(void 0),ug=w.forwardRef(function(e,t){let{render:n,className:r,anchor:o,positionMethod:a=\"absolute\",side:i=\"top\",align:l=\"center\",sideOffset:s=0,alignOffset:c=0,collisionBoundary:u=\"clipping-ancestors\",collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,trackAnchor:h=!0,collisionAvoidance:m=iq,...g}=e,{open:y,setPositionerElement:v,mounted:b,floatingRootContext:x,trackCursorAxis:C,hoverable:_}=us(),k=cE({anchor:o,positionMethod:a,floatingRootContext:x,mounted:b,side:i,sideOffset:s,align:l,alignOffset:c,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,trackAnchor:h,keepMounted:function(){let e=w.useContext(um);if(void 0===e)throw Error(\"Base UI: <Tooltip.Portal> is missing.\");return e}(),collisionAvoidance:m}),E=w.useMemo(()=>{let e={};return y&&\"both\"!==C&&_||(e.pointerEvents=\"none\"),{role:\"presentation\",hidden:!b,style:{...k.positionerStyles,...e}}},[y,C,_,b,k.positionerStyles]),j=w.useMemo(()=>({props:E,...k}),[E,k]),S=w.useMemo(()=>({open:y,side:j.side,align:j.align,anchorHidden:j.anchorHidden}),[y,j.side,j.align,j.anchorHidden]),O=w.useMemo(()=>({...S,arrowRef:j.arrowRef,arrowStyles:j.arrowStyles,arrowUncentered:j.arrowUncentered}),[S,j.arrowRef,j.arrowStyles,j.arrowUncentered]),B=so(\"div\",e,{state:S,props:[j.props,g],ref:[t,v],customStyleHookMapping:sn});return(0,A.jsx)(uu.Provider,{value:O,children:B})});function uy(e){let t=sJ({root:e.root});return t&&eh.createPortal(e.children,t)}function uv(e){let{children:t,keepMounted:n=!1,container:r}=e,{mounted:o}=us();return o||n?(0,A.jsx)(um.Provider,{value:n,children:(0,A.jsx)(uy,{root:r,children:t})}):null}let ub=w.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new au,currentIdRef:{current:null},currentContextRef:{current:null}});function uA(e){let{children:t,delay:n,timeoutMs:r=0}=e,o=w.useRef(n),a=w.useRef(n),i=w.useRef(null),l=w.useRef(null),s=ad();return(0,A.jsx)(ub.Provider,{value:w.useMemo(()=>({hasProvider:!0,delayRef:o,initialDelayRef:a,currentIdRef:i,timeoutMs:r,currentContextRef:l,timeout:s}),[r,s]),children:t})}let ux=w.createContext(void 0),uw=function(e){let{delay:t,closeDelay:n,timeout:r=400}=e,o=w.useMemo(()=>({delay:t,closeDelay:n}),[t,n]),a=w.useMemo(()=>({open:t,close:n}),[t,n]);return(0,A.jsx)(ux.Provider,{value:o,children:(0,A.jsx)(uA,{delay:a,timeoutMs:r,children:e.children})})};function uC(e){return null!=e&&null!=e.clientX}function u_(e){let{disabled:t=!1,defaultOpen:n=!1,onOpenChange:r,open:o,delay:a,closeDelay:i,hoverable:l=!0,trackCursorAxis:s=\"none\",actionsRef:c,onOpenChangeComplete:u}=e,d=a??600,f=i??0,[p,h]=w.useState(null),[m,g]=w.useState(null),[y,v]=w.useState(),b=w.useRef(null),[x,C]=ay({controlled:o,default:n,name:\"Tooltip\",state:\"open\"}),_=!t&&x;function k(e,t,n){let o=\"trigger-hover\"===n,a=e&&\"trigger-focus\"===n,i=!e&&(\"trigger-press\"===n||\"escape-key\"===n);function l(){r?.(e,t,n),C(e)}o?eh.flushSync(l):l(),a||i?v(a?\"focus\":\"dismiss\"):\"trigger-hover\"===n&&v(void 0)}let E=ah(k);x&&t&&k(!1,void 0,\"disabled\");let{mounted:j,setMounted:S,transitionStatus:O}=l_(_),B=ah(()=>{S(!1),u?.(!1)});lk({enabled:!c,open:_,ref:b,onComplete(){_||B()}}),w.useImperativeHandle(c,()=>({unmount:B}),[B]);let P=aB({elements:{reference:p,floating:m},open:_,onOpenChange(e,t,n){E(e,t,lD(n))}}),I=w.useContext(ux),{delayRef:T,isInstantPhase:z,hasProvider:D}=function(e,t={}){let{open:n,onOpenChange:r,floatingId:o}=e,{enabled:a=!0}=t,{currentIdRef:i,delayRef:l,timeoutMs:s,initialDelayRef:c,currentContextRef:u,hasProvider:d,timeout:f}=w.useContext(ub),[p,h]=w.useState(!1);return aC(()=>{function e(){h(!1),u.current?.setIsInstantPhase(!1),i.current=null,u.current=null,l.current=c.current}if(a&&i.current&&!n&&i.current===o){if(h(!1),s)return f.start(s,e),()=>{f.clear()};e()}},[a,n,o,i,l,s,c,u,f]),aC(()=>{if(!a||!n)return;let e=u.current,t=i.current;u.current={onOpenChange:r,setIsInstantPhase:h},i.current=o,l.current={open:0,close:ij(c.current,\"close\")},null!==t&&t!==o?(f.clear(),h(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1)):(h(!1),e?.setIsInstantPhase(!1))},[a,n,o,r,i,l,s,c,u,f]),aC(()=>()=>{u.current=null},[u]),w.useMemo(()=>({hasProvider:d,delayRef:l,isInstantPhase:p}),[d,l,p])}(P),L=z?\"delay\":y,N=iO(P,{enabled:!t,mouseOnly:!0,move:!1,handleClose:l&&\"both\"!==s?iT():null,restMs(){let e=I?.delay,t=\"object\"==typeof T.current?T.current.open:void 0,n=d;return D&&(n=0!==t?a??e??d:0),n},delay(){let e=\"object\"==typeof T.current?T.current.close:void 0,t=f;return null==i&&D&&(t=e),{close:t}}}),R=iD(P,{enabled:!t}),M=i$(P,{enabled:!t,referencePress:!0}),{getReferenceProps:Z,getFloatingProps:U}=lv([N,R,M,function(e,t={}){let{open:n,dataRef:r,elements:{floating:o,domReference:a},refs:i}=e,{enabled:l=!0,axis:s=\"both\",x:c=null,y:u=null}=t,d=w.useRef(!1),f=w.useRef(null),[p,h]=w.useState(),[m,g]=w.useState([]),y=ah((e,t)=>{if(!d.current&&(!r.current.openEvent||uC(r.current.openEvent))){var n,o;let l,c,u;i.setPositionReference((n=a,o={x:e,y:t,axis:s,dataRef:r,pointerType:p},l=null,c=null,u=!1,{contextElement:n||void 0,getBoundingClientRect(){let e=n?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},t=\"x\"===o.axis||\"both\"===o.axis,r=\"y\"===o.axis||\"both\"===o.axis,a=[\"mouseenter\",\"mousemove\"].includes(o.dataRef.current.openEvent?.type||\"\")&&\"touch\"!==o.pointerType,i=e.width,s=e.height,d=e.x,f=e.y;return null==l&&o.x&&t&&(l=e.x-o.x),null==c&&o.y&&r&&(c=e.y-o.y),d-=l||0,f-=c||0,i=0,s=0,!u||a?(i=\"y\"===o.axis?e.width:0,s=\"x\"===o.axis?e.height:0,d=t&&null!=o.x?o.x:d,f=r&&null!=o.y?o.y:f):u&&!a&&(s=\"x\"===o.axis?e.height:s,i=\"y\"===o.axis?e.width:i),u=!0,{width:i,height:s,x:d,y:f,top:f,right:d+i,bottom:f+s,left:d}}}))}}),v=ah(e=>{null==c&&null==u&&(n?f.current||g([]):y(e.clientX,e.clientY))}),b=is(p)?o:n,A=w.useCallback(()=>{if(!b||!l||null!=c||null!=u)return;let e=aT(o);function t(n){iv(o,ib(n))?(e.removeEventListener(\"mousemove\",t),f.current=null):y(n.clientX,n.clientY)}if(!r.current.openEvent||uC(r.current.openEvent)){e.addEventListener(\"mousemove\",t);let n=()=>{e.removeEventListener(\"mousemove\",t),f.current=null};return f.current=n,n}i.setPositionReference(a)},[b,l,c,u,o,r,i,a,y]);w.useEffect(()=>A(),[A,m]),w.useEffect(()=>{l&&!o&&(d.current=!1)},[l,o]),w.useEffect(()=>{!l&&n&&(d.current=!0)},[l,n]),aC(()=>{l&&(null!=c||null!=u)&&(d.current=!1,y(c,u))},[l,c,u,y]);let x=w.useMemo(()=>{function e(e){h(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:v,onMouseEnter:v}},[v]);return w.useMemo(()=>l?{reference:x}:{},[l,x])}(P,{enabled:!t&&\"none\"!==s,axis:\"none\"===s?void 0:s})]),F=w.useMemo(()=>({open:_,setOpen:E,mounted:j,setMounted:S,setTriggerElement:h,positionerElement:m,setPositionerElement:g,popupRef:b,triggerProps:Z(),popupProps:U(),floatingRootContext:P,instantType:L,transitionStatus:O,onOpenChangeComplete:u}),[_,E,j,S,h,m,g,b,Z,U,P,L,O,u]),q=w.useMemo(()=>({...F,delay:d,closeDelay:f,trackCursorAxis:s,hoverable:l}),[F,d,f,s,l]);return(0,A.jsx)(ul.Provider,{value:q,children:e.children})}var uk=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/tooltip/tooltip.css\"),uE={};uE.styleTagTransform=m(),uE.setAttributes=d(),uE.insert=c(),uE.domAPI=l(),uE.insertStyleElement=p(),a()(uk.Z,uE),uk.Z&&uk.Z.locals&&uk.Z.locals;var uj=(0,w.forwardRef)(function(e,t){var n,r,o,a,i,l,s,c,u,d,f,p,h=(0,x.c)(35),m=e.className,g=e.children,y=e.title,v=e.direction,b=e.arrowSize,w=e.offset,C=void 0===v?\"top\":v,_=void 0===b?6:b,k=dl().shadowRoot;if(!y)return g;h[0]!==g?(n=function(e){var t,n;return(0,A.jsx)(\"span\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},e),n=n={children:g},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},h[0]=g,h[1]=n):n=h[1],h[2]!==t||h[3]!==n?(r=(0,A.jsx)(uc,{ref:t,render:n}),h[2]=t,h[3]=n,h[4]=r):r=h[4];var E=(void 0===w?8:w)+_,j=\"\".concat(_,\"px\"),S=\"\".concat(_,\"px\");h[5]!==j||h[6]!==S?(o={\"--anchor-width\":j,\"--anchor-height\":S},h[5]=j,h[6]=S,h[7]=o):o=h[7];var O=o;h[8]!==m?(a=eJ(\"tooltip\",m),h[8]=m,h[9]=a):a=h[9];var B=\"\".concat(_,\"px\");h[10]!==B?(i={\"--arrow-size\":B},h[10]=B,h[11]=i):i=h[11];var P=i,I=\"tooltip-arrow--\".concat(C);h[12]!==I?(l=eJ(\"tooltip-arrow\",I),h[12]=I,h[13]=l):l=h[13];var T=\"\".concat(_,\"px\");h[14]!==T?(s={\"--arrow-size\":T},h[14]=T,h[15]=s):s=h[15];var z=s;return h[16]!==l||h[17]!==z?(c=(0,A.jsx)(uf,{className:l,style:z}),h[16]=l,h[17]=z,h[18]=c):c=h[18],h[19]!==a||h[20]!==P||h[21]!==c||h[22]!==y?(u=(0,A.jsxs)(uh,{className:a,style:P,children:[y,c]}),h[19]=a,h[20]=P,h[21]=c,h[22]=y,h[23]=u):u=h[23],h[24]!==C||h[25]!==O||h[26]!==u||h[27]!==E?(d=(0,A.jsx)(ug,{side:C,sideOffset:E,className:\"tooltip-positioner\",style:O,children:u}),h[24]=C,h[25]=O,h[26]=u,h[27]=E,h[28]=d):d=h[28],h[29]!==k||h[30]!==d?(f=(0,A.jsx)(uv,{container:k,children:d}),h[29]=k,h[30]=d,h[31]=f):f=h[31],h[32]!==f||h[33]!==r?(p=(0,A.jsx)(uw,{children:(0,A.jsxs)(u_,{delay:400,children:[r,f]})}),h[32]=f,h[33]=r,h[34]=p):p=h[34],p});function uS(e){var t,n,r=(0,x.c)(3),o=e.possibleExtension,a=e.missingGlobalError?\"No global-error.\".concat(o,\" found: Add one to ensure users see a helpful message when an unexpected error occurs.\"):null;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(uR,{}),r[0]=t):t=r[0],r[1]!==a?(n=(0,A.jsx)(\"span\",{className:\"segment-explorer-suggestions\",children:(0,A.jsx)(uj,{className:\"segment-explorer-suggestions-tooltip\",title:a,children:t})}),r[1]=a,r[2]=n):n=r[2],n}function uO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function uB(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var uP=function(e){var t,n;return!!(null==(t=e.value)?void 0:t.type)&&!!(null==(n=e.value)?void 0:n.pagePath)};function uI(e){var t,n,r=(0,x.c)(3),o=e.page;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(uM,{}),r[0]=t):t=r[0],r[1]!==o?(n=(0,A.jsxs)(\"div\",{className:\"segment-explorer-page-route-bar\",children:[t,(0,A.jsx)(\"span\",{className:\"segment-explorer-page-route-bar-path\",children:o})]}),r[1]=o,r[2]=n):n=r[2],n}function uT(e){var t,n,r,o=(0,x.c)(9),a=e.activeBoundariesCount,i=e.onGlobalReset,l=a>0,s=\"segment-explorer-footer-button \".concat(l?\"\":\"segment-explorer-footer-button--disabled\"),c=l?i:void 0,u=!l;return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"span\",{className:\"segment-explorer-footer-text\",children:\"Clear Segment Overrides\"}),o[0]=t):t=o[0],o[1]!==a||o[2]!==l?(n=l&&(0,A.jsx)(\"span\",{className:\"segment-explorer-footer-badge\",children:a}),o[1]=a,o[2]=l,o[3]=n):n=o[3],o[4]!==s||o[5]!==c||o[6]!==u||o[7]!==n?(r=(0,A.jsx)(\"div\",{className:\"segment-explorer-footer\",children:(0,A.jsxs)(\"button\",{className:s,onClick:c,disabled:u,type:\"button\",children:[t,n]})}),o[4]=s,o[5]=c,o[6]=u,o[7]=n,o[8]=r):r=o[8],r}function uz(e){var t,n,r,o,a,i=(0,x.c)(15),l=e.type,s=e.isBuiltin,c=e.isOverridden,u=e.filePath,d=e.fileName,f=\"segment-explorer-file-label--\".concat(l),p=s&&\"segment-explorer-file-label--builtin\",h=c&&\"segment-explorer-file-label--overridden\";return i[0]!==f||i[1]!==p||i[2]!==h?(t=eJ(\"segment-explorer-file-label\",f,p,h),i[0]=f,i[1]=p,i[2]=h,i[3]=t):t=i[3],i[4]!==u?(n=function(){var e;e=new URLSearchParams({file:{filePath:u}.filePath,isAppRelativePath:\"1\"}),fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(e.toString()))},i[4]=u,i[5]=n):n=i[5],i[6]!==d?(r=(0,A.jsx)(\"span\",{className:\"segment-explorer-file-label-text\",children:d}),i[6]=d,i[7]=r):r=i[7],i[8]!==s?(o=s?(0,A.jsx)(uR,{}):(0,A.jsx)(uZ,{className:\"code-icon\"}),i[8]=s,i[9]=o):o=i[9],i[10]!==t||i[11]!==n||i[12]!==r||i[13]!==o?(a=(0,A.jsxs)(\"span\",{className:t,onClick:n,children:[r,o]}),i[10]=t,i[11]=n,i[12]=r,i[13]=o,i[14]=a):a=i[14],a}function uD(e){var t,n,r,o,a,i,l,s,c,u=(0,x.c)(17),d=e.page,f=(0,w.useSyncExternalStore)(o8,o7,ae);u[0]!==f?(n=function e(t){var n,r=0;return(null==(n=t.value)?void 0:n.setBoundaryType)&&null!==t.value.boundaryType&&!c4(t.value.type)&&r++,Object.values(t.children).forEach(function(t){t&&(r+=e(t))}),r}(f),u[0]=f,u[1]=n):n=u[1],t=n,u[2]!==f?(r=function(){!function e(t){var n;(null==(n=t.value)?void 0:n.setBoundaryType)&&t.value.setBoundaryType(null),Object.values(t.children).forEach(function(t){t&&e(t)})}(f)},u[2]=f,u[3]=r):r=u[3];var p=r;return u[4]===Symbol.for(\"react.memo_cache_sentinel\")?(o={display:\"flex\",flexDirection:\"column\",height:\"100%\"},u[4]=o):o=u[4],u[5]!==d?(a=(0,A.jsx)(uI,{page:d}),u[5]=d,u[6]=a):a=u[6],u[7]===Symbol.for(\"react.memo_cache_sentinel\")?(i={flex:\"1 1 auto\",overflow:\"auto\"},u[7]=i):i=u[7],u[8]!==f?(l=(0,A.jsx)(\"div\",{className:\"segment-explorer-content\",\"data-nextjs-devtool-segment-explorer\":!0,style:i,children:(0,A.jsx)(uN,{node:f,level:0,segment:\"\"})}),u[8]=f,u[9]=l):l=u[9],u[10]!==t||u[11]!==p?(s=(0,A.jsx)(uT,{activeBoundariesCount:t,onGlobalReset:p}),u[10]=t,u[11]=p,u[12]=s):s=u[12],u[13]!==a||u[14]!==l||u[15]!==s?(c=(0,A.jsxs)(\"div\",{\"data-nextjs-devtools-panel-segments-explorer\":!0,style:o,children:[a,l,s]}),u[13]=a,u[14]=l,u[15]=s,u[16]=c):c=u[16],c}var uL=\"global-error\";function uN(e){var t=e.segment,n=e.node,r=e.level,o=(0,w.useMemo)(function(){return Object.keys(n.children)},[n.children]),a=(0,w.useMemo)(function(){var e=[];return o.forEach(function(t){var r=n.children[t];if(r&&r.value){var o=c5(r.value.type),a=o===uL;(a&&!r.value.pagePath.startsWith(c0)||!a&&c4(r.value.type))&&e.push(o)}}),0===r&&!e.includes(uL)},[n.children,o,r]),i=o.sort(function(e,t){var r=e.includes(\".\"),o=t.includes(\".\");if(r&&!o)return -1;if(!r&&o)return 1;if(r&&o){var a,i,l,s,c,u,d,f,p=null==(i=n.children[e])||null==(a=i.value)?void 0:a.type,h=null==(s=n.children[t])||null==(l=s.value)?void 0:l.type,m=function(e){return e?\"layout\"===e?1:\"template\"===e?2:\"page\"===e?3:c4(e)?4:5:5},g=m(p),y=m(h);if(g!==y)return g-y;var v=(null==(u=n.children[e])||null==(c=u.value)?void 0:c.pagePath)||\"\",b=(null==(f=n.children[t])||null==(d=f.value)?void 0:d.pagePath)||\"\";return v.localeCompare(b)}return e.localeCompare(t)}),l=0!==r||t?t:\"app\",s=[],c=[],u=!0,d=!1,f=void 0;try{for(var p,h=i[Symbol.iterator]();!(u=(p=h.next()).done);u=!0){var m=p.value,g=n.children[m];if(g){if(uP(g)){c.push(m);continue}s.push(m)}}}catch(e){d=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(d)throw f}}for(var y=c1(c[0]||\"\").split(\".\").pop()||\"js\",v=null,b=i.length-1;b>=0;b--){var x=n.children[i[b]];if(x&&x.value){var C=c4(x.value.type);if(!v&&!C){v=x;break}}}var _=null,k=!0,E=!1,j=void 0;try{for(var S,O=i[Symbol.iterator]();!(k=(S=O.next()).done);k=!0){var B=S.value,P=n.children[B];if(P&&P.value&&c4(P.value.type)){_=P;break}}}catch(e){E=!0,j=e}finally{try{k||null==O.return||O.return()}finally{if(E)throw j}}v=v||_;var I=c.length>0,T={\"not-found\":null,loading:null,error:null,\"global-error\":null};return c.forEach(function(e){var t=n.children[e];if(t&&t.value&&c4(t.value.type)){var r=c5(t.value.type);r in T&&(T[r]=t.value.pagePath||null)}}),(0,A.jsxs)(A.Fragment,{children:[I&&(0,A.jsx)(\"div\",{className:\"segment-explorer-item\",\"data-nextjs-devtool-segment-explorer-segment\":t+\"-\"+r,children:(0,A.jsx)(\"div\",{className:\"segment-explorer-item-row\",style:uO({},{paddingLeft:\"\".concat((r+1)*8,\"px\")}),children:(0,A.jsx)(\"div\",{className:\"segment-explorer-item-row-main\",children:(0,A.jsxs)(\"div\",{className:\"segment-explorer-filename\",children:[l&&(0,A.jsxs)(\"span\",{className:\"segment-explorer-filename--path\",children:[l,(0,A.jsx)(\"small\",{children:\"/\"})]}),a&&(0,A.jsx)(uS,{possibleExtension:y,missingGlobalError:a}),c.length>0&&(0,A.jsx)(\"span\",{className:\"segment-explorer-files\",children:c.map(function(e){var t=n.children[e];if(!t||!t.value||c4(t.value.type))return null;var r=t.value.pagePath,o=r.split(\"/\").pop()||\"\",a=r.startsWith(c0),i=c1(o),l=a?\"The default Next.js \".concat(t.value.type,\" is being shown. You can customize this page by adding your own \").concat(i,\" file to the app/ directory.\"):null,s=null!==t.value.boundaryType;return(0,A.jsx)(uj,{className:\"segment-explorer-file-label-tooltip--\"+(a?\"lg\":\"sm\"),direction:a?\"right\":\"top\",title:l,offset:12,children:(0,A.jsx)(uz,{type:t.value.type,isBuiltin:a,isOverridden:s,filePath:r,fileName:i})},e)})}),v&&v.value&&(0,A.jsx)(ue,{nodeState:v.value,boundaries:T})]})})})}),s.map(function(e){var o=n.children[e];if(!o)return null;var a=I?e:t+\" / \"+e;return(0,A.jsx)(uN,{segment:a,node:o,level:I?r+1:r},e)})]})}function uR(e){var t,n,r,o=(0,x.c)(4);return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{d:\"M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8Z\",fill:\"var(--color-gray-400)\"}),n=(0,A.jsx)(\"path\",{d:\"M7.75 7C8.30228 7.00001 8.75 7.44772 8.75 8V11.25H7.25V8.5H6.25V7H7.75ZM8 4C8.55228 4 9 4.44772 9 5C9 5.55228 8.55228 6 8 6C7.44772 6 7 5.55228 7 5C7 4.44772 7.44772 4 8 4Z\",fill:\"var(--color-gray-900)\"}),o[0]=t,o[1]=n):(t=o[0],n=o[1]),o[2]!==e?(r=(0,A.jsxs)(\"svg\",uB(uO({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[t,n]})),o[2]=e,o[3]=r):r=o[3],r}function uM(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"var(--color-gray-600)\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,A.jsx)(\"path\",{d:\"M4.5 11.25C4.5 11.3881 4.61193 11.5 4.75 11.5H14.4395L11.9395 9L13 7.93945L16.7803 11.7197L16.832 11.7764C17.0723 12.0709 17.0549 12.5057 16.7803 12.7803L13 16.5605L11.9395 15.5L14.4395 13H4.75C3.7835 13 3 12.2165 3 11.25V4.25H4.5V11.25Z\"})}),t[0]=e):e=t[0],e}function uZ(e){var t,n,r=(0,x.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M7.22763 14.1819L10.2276 2.18193L10.4095 1.45432L8.95432 1.09052L8.77242 1.81812L5.77242 13.8181L5.59051 14.5457L7.04573 14.9095L7.22763 14.1819ZM3.75002 12.0607L3.21969 11.5304L0.39647 8.70713C0.00594559 8.31661 0.00594559 7.68344 0.39647 7.29292L3.21969 4.46969L3.75002 3.93936L4.81068 5.00002L4.28035 5.53035L1.81068 8.00003L4.28035 10.4697L4.81068 11L3.75002 12.0607ZM12.25 12.0607L12.7804 11.5304L15.6036 8.70713C15.9941 8.31661 15.9941 7.68344 15.6036 7.29292L12.7804 4.46969L12.25 3.93936L11.1894 5.00002L11.7197 5.53035L14.1894 8.00003L11.7197 10.4697L11.1894 11L12.25 12.0607Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,A.jsx)(\"svg\",uB(uO({width:\"12\",height:\"12\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function uU(){var e,t,n=(e=[\"\\n .dev-tools-info-close-button:focus-visible {\\n outline: var(--focus-ring);\\n }\\n \"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return uU=function(){return n},n}function uF(e){var t,n,r,o,a,i,l,s,c,u,d,f=(0,x.c)(18),p=e.title,h=e.children,m=e.ref,g=r5().setPanel,y=(0,w.useRef)(null);return f[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=function(){var e;null==(e=y.current)||e.focus()},n=[],f[0]=t,f[1]=n):(t=f[0],n=f[1]),(0,w.useLayoutEffect)(t,n),f[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r={width:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",padding:\"8px 20px\",userSelect:\"none\",WebkitUserSelect:\"none\",borderBottom:\"1px solid var(--color-gray-alpha-400)\"},f[2]=r):r=f[2],f[3]===Symbol.for(\"react.memo_cache_sentinel\")?(o={margin:0,fontSize:\"14px\",color:\"var(--color-text-primary)\",fontWeight:\"normal\"},f[3]=o):o=f[3],f[4]!==p?(a=(0,A.jsx)(\"h3\",{style:o,children:p}),f[4]=p,f[5]=a):a=f[5],f[6]!==g?(i=function(){g(\"panel-selector\")},f[6]=g,f[7]=i):i=f[7],f[8]===Symbol.for(\"react.memo_cache_sentinel\")?(l={background:\"none\",border:\"none\",cursor:\"pointer\",padding:\"4px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:\"4px\",color:\"var(--color-gray-900)\"},s=(0,A.jsx)(uq,{}),f[8]=l,f[9]=s):(l=f[8],s=f[9]),f[10]!==i?(c=(0,A.jsx)(\"button\",{ref:y,id:\"_next-devtools-panel-close\",className:\"dev-tools-info-close-button\",onClick:i,\"aria-label\":\"Close devtools panel\",style:l,children:s}),f[10]=i,f[11]=c):c=f[11],f[12]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,A.jsx)(\"style\",{children:eu(uU())}),f[12]=u):u=f[12],f[13]!==h||f[14]!==m||f[15]!==a||f[16]!==c?(d=(0,A.jsxs)(\"div\",{style:r,ref:m,children:[a,h,c,u]}),f[13]=h,f[14]=m,f[15]=a,f[16]=c,f[17]=d):d=f[17],d}function uq(e){var t,n,r,o=(0,x.c)(4),a=e.size,i=void 0===a?22:a;return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,A.jsx)(\"path\",{d:\"M18 6 6 18\"}),n=(0,A.jsx)(\"path\",{d:\"m6 6 12 12\"}),o[0]=t,o[1]=n):(t=o[0],n=o[1]),o[2]!==i?(r=(0,A.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:i,height:i,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[t,n]}),o[2]=i,o[3]=r):r=o[3],r}function uH(){var e,t=(0,x.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 20 20\",fill:\"none\",children:(0,A.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"m9.7 3.736.045-.236h.51l.044.236a2.024 2.024 0 0 0 1.334 1.536c.19.066.375.143.554.23.618.301 1.398.29 2.03-.143l.199-.136.36.361-.135.199a2.024 2.024 0 0 0-.143 2.03c.087.179.164.364.23.554.224.65.783 1.192 1.536 1.334l.236.044v.51l-.236.044a2.024 2.024 0 0 0-1.536 1.334 4.95 4.95 0 0 1-.23.554 2.024 2.024 0 0 0 .143 2.03l.136.199-.361.36-.199-.135a2.024 2.024 0 0 0-2.03-.143c-.179.087-.364.164-.554.23a2.024 2.024 0 0 0-1.334 1.536l-.044.236h-.51l-.044-.236a2.024 2.024 0 0 0-1.334-1.536 4.952 4.952 0 0 1-.554-.23 2.024 2.024 0 0 0-2.03.143l-.199.136-.36-.361.135-.199a2.024 2.024 0 0 0 .143-2.03 4.958 4.958 0 0 1-.23-.554 2.024 2.024 0 0 0-1.536-1.334l-.236-.044v-.51l.236-.044a2.024 2.024 0 0 0 1.536-1.334 4.96 4.96 0 0 1 .23-.554 2.024 2.024 0 0 0-.143-2.03l-.136-.199.361-.36.199.135a2.024 2.024 0 0 0 2.03.143c.179-.087.364-.164.554-.23a2.024 2.024 0 0 0 1.334-1.536ZM8.5 2h3l.274 1.46c.034.185.17.333.348.394.248.086.49.186.722.3.17.082.37.074.526-.033l1.226-.839 2.122 2.122-.84 1.226a.524.524 0 0 0-.032.526c.114.233.214.474.3.722.061.177.21.314.394.348L18 8.5v3l-1.46.274a.524.524 0 0 0-.394.348 6.47 6.47 0 0 1-.3.722.524.524 0 0 0 .033.526l.839 1.226-2.122 2.122-1.226-.84a.524.524 0 0 0-.526-.032 6.477 6.477 0 0 1-.722.3.524.524 0 0 0-.348.394L11.5 18h-3l-.274-1.46a.524.524 0 0 0-.348-.394 6.477 6.477 0 0 1-.722-.3.524.524 0 0 0-.526.033l-1.226.839-2.122-2.122.84-1.226a.524.524 0 0 0 .032-.526 6.453 6.453 0 0 1-.3-.722.524.524 0 0 0-.394-.348L2 11.5v-3l1.46-.274a.524.524 0 0 0 .394-.348c.086-.248.186-.49.3-.722a.524.524 0 0 0-.033-.526l-.839-1.226 2.122-2.122 1.226.84a.524.524 0 0 0 .526.032 6.46 6.46 0 0 1 .722-.3.524.524 0 0 0 .348-.394L8.5 2Zm3 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm1.5 0a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\",clipRule:\"evenodd\"})}),t[0]=e):e=t[0],e}var uV=__nested_webpack_require_378273__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/menu/panel-router.css\"),u$={};u$.styleTagTransform=m(),u$.setAttributes=d(),u$.insert=c(),u$.domAPI=l(),u$.insertStyleElement=p(),a()(uV.Z,u$),uV.Z&&uV.Z.locals&&uV.Z.locals;var uW=function(){var e,t,n,r,o,a,i,l,s,c,u,d=(0,x.c)(32),f=r5(),p=f.setPanel,h=f.setSelectedIndex,m=dl(),g=m.state,y=m.dispatch,v=u3().totalErrorCount,b=\"app\"===g.routerType;d[0]!==y||d[1]!==p||d[2]!==h||d[3]!==g.isErrorOverlayOpen||d[4]!==v?(e=v>0&&{title:\"\".concat(v,\" \").concat(1===v?\"issue\":\"issues\",\" found. Click to view details in the dev overlay.\"),label:\"Issues\",value:(0,A.jsx)(oD,{children:v}),onClick:function(){if(g.isErrorOverlayOpen){y({type:q}),p(null);return}p(null),h(-1),v>0&&y({type:F})}},d[0]=y,d[1]=p,d[2]=h,d[3]=g.isErrorOverlayOpen,d[4]=v,d[5]=e):e=d[5];var w=\"Current route is \".concat(g.staticIndicator?\"static\":\"dynamic\",\".\"),C=g.staticIndicator?\"Static\":\"Dynamic\";d[6]!==p?(t=function(){return p(\"route-type\")},d[6]=p,d[7]=t):t=d[7];var _=g.staticIndicator?\"static\":\"dynamic\";return d[8]!==_?(n={\"data-nextjs-route-type\":_},d[8]=_,d[9]=n):n=d[9],d[10]!==w||d[11]!==C||d[12]!==t||d[13]!==n?(r={title:w,label:\"Route\",value:C,onClick:t,attributes:n},d[10]=w,d[11]=C,d[12]=t,d[13]=n,d[14]=r):r=d[14],d[15]!==p?(o= false?0:{title:\"Learn about Turbopack and how to enable it in your application.\",label:\"Try Turbopack\",value:(0,A.jsx)(oL,{}),onClick:function(){return p(\"turbo-info\")}},d[15]=p,d[16]=o):o=d[16],d[17]!==b||d[18]!==p?(a= true&&b&&{label:\"Route Info\",value:(0,A.jsx)(oL,{}),onClick:function(){return p(\"segment-explorer\")},attributes:{\"data-segment-explorer\":!0}},d[17]=b,d[18]=p,d[19]=a):a=d[19],d[20]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,A.jsx)(uH,{}),d[20]=i):i=d[20],d[21]!==p?(l=function(){return p(\"preferences\")},d[21]=p,d[22]=l):l=d[22],d[23]===Symbol.for(\"react.memo_cache_sentinel\")?(s={\"data-preferences\":!0},d[23]=s):s=d[23],d[24]!==l?(c={label:\"Preferences\",value:i,onClick:l,footer:!0,attributes:s},d[24]=l,d[25]=c):c=d[25],d[26]!==e||d[27]!==c||d[28]!==r||d[29]!==o||d[30]!==a?(u=(0,A.jsx)(oT,{items:[e,r,o,a,c]}),d[26]=e,d[27]=c,d[28]=r,d[29]=o,d[30]=a,d[31]=u):u=d[31],u},uY=function(){var e,t=(0,x.c)(4),n=dl(),r=n.state,o=n.dispatch,a=n.shadowRoot;return t[0]!==o||t[1]!==a||t[2]!==r.disableDevIndicator?(e=function(){o({type:U,disabled:!r.disableDevIndicator});var e=a.getElementById(\"panel-route\"),t=a.getElementById(\"data-devtools-indicator\");if(e&&e.firstElementChild){var n=e.firstElementChild,i=\"none\"===n.style.display;n.style.display=i?\"\":\"none\"}if(t){var l=\"none\"===t.style.display;t.style.display=l?\"\":\"none\"}},t[0]=o,t[1]=a,t[2]=r.disableDevIndicator,t[3]=e):e=t[3],e},uK=function(){var e,t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,b,C,_,k,E,j,S,O=(0,x.c)(44),B=dl().state,P=r5().triggerRef,I=uY(),T=\"app\"===B.routerType;O[0]!==B.hideShortcut||O[1]!==I?(s=B.hideShortcut?(e={},t=B.hideShortcut,n=I,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e):{},O[0]=B.hideShortcut,O[1]=I,O[2]=s):s=O[2],r=s,o=P,(l=(0,x.c)(4))[0]!==o||l[1]!==r?(a=function(){var e=function(e){if(!((n=t7((t=o).current))&&(\"true\"===n.contentEditable||\"INPUT\"===n.tagName||\"TEXTAREA\"===n.tagName||\"SELECT\"===n.tagName||\"true\"===n.dataset[\"shortcut-recorder\"])&&!n.hasAttribute(\"readonly\"))){var t,n,a=[];e.metaKey&&a.push(\"Meta\"),e.ctrlKey&&a.push(\"Control\"),e.altKey&&a.push(\"Alt\"),e.shiftKey&&a.push(\"Shift\"),\"Meta\"!==e.key&&\"Control\"!==e.key&&\"Alt\"!==e.key&&\"Shift\"!==e.key&&a.push(e.code);var i=a.join(\"+\");r[i]&&(e.preventDefault(),r[i]())}};return window.addEventListener(\"keydown\",e),function(){return window.removeEventListener(\"keydown\",e)}},i=[o,r],l[0]=o,l[1]=r,l[2]=a,l[3]=i):(a=l[2],i=l[3]),(0,w.useEffect)(a,i),O[3]===Symbol.for(\"react.memo_cache_sentinel\")?(c=(0,A.jsx)(u0,{name:\"panel-selector\",children:(0,A.jsx)(uW,{})}),O[3]=c):c=O[3];var z=500/B.scale;O[4]!==z?(u={kind:\"fixed\",height:z,width:512},O[4]=z,O[5]=u):u=O[5],O[6]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,A.jsx)(uF,{title:\"Preferences\"}),f=(0,A.jsx)(uG,{}),O[6]=d,O[7]=f):(d=O[6],f=O[7]),O[8]!==u?(p=(0,A.jsx)(u0,{name:\"preferences\",children:(0,A.jsx)(o2,{sharePanelSizeGlobally:!1,sizeConfig:u,closeOnClickOutside:!0,header:d,children:f})}),O[8]=u,O[9]=p):p=O[9];var D=B.staticIndicator?\"static\":\"dynamic\",L=B.staticIndicator?300/B.scale:325/B.scale,N=400/B.scale;O[10]!==L||O[11]!==N?(h={kind:\"fixed\",height:L,width:N},O[10]=L,O[11]=N,O[12]=h):h=O[12];var R=\"\".concat(B.staticIndicator?\"Static\":\"Dynamic\",\" Route\");O[13]!==R?(m=(0,A.jsx)(uF,{title:R}),O[13]=R,O[14]=m):m=O[14],O[15]!==B.routerType||O[16]!==B.staticIndicator?(g=(0,A.jsx)(n4,{routerType:B.routerType,isStaticRoute:B.staticIndicator}),O[15]=B.routerType,O[16]=B.staticIndicator,O[17]=g):g=O[17];var M=n2[B.routerType][B.staticIndicator?\"static\":\"dynamic\"];O[18]!==M?(y=(0,A.jsx)(uX,{href:M}),O[18]=M,O[19]=y):y=O[19],O[20]!==g||O[21]!==y?(v=(0,A.jsxs)(\"div\",{className:\"panel-content\",children:[g,y]}),O[20]=g,O[21]=y,O[22]=v):v=O[22],O[23]!==h||O[24]!==m||O[25]!==v||O[26]!==D?(b=(0,A.jsx)(u0,{name:\"route-type\",children:(0,A.jsx)(o2,{sharePanelSizeGlobally:!1,sizeConfig:h,closeOnClickOutside:!0,header:m,children:v},D)}),O[23]=h,O[24]=m,O[25]=v,O[26]=D,O[27]=b):b=O[27],O[28]!==T||O[29]!==B.page||O[30]!==B.scale?(C= true&&T&&(0,A.jsx)(u0,{name:\"segment-explorer\",children:(0,A.jsx)(o2,{sharePanelSizeGlobally:!1,sharePanelPositionGlobally:!1,draggable:!0,sizeConfig:{kind:\"resizable\",maxHeight:\"90vh\",maxWidth:\"90vw\",minHeight:200/B.scale,minWidth:250/B.scale,initialSize:{height:375/B.scale,width:400/B.scale}},header:(0,A.jsx)(uF,{title:\"Route Info\"}),children:(0,A.jsx)(uD,{page:B.page})})}),O[28]=T,O[29]=B.page,O[30]=B.scale,O[31]=C):C=O[31];var Z=470/B.scale,U=400/B.scale;return O[32]!==Z||O[33]!==U?(_={kind:\"fixed\",height:Z,width:U},O[32]=Z,O[33]=U,O[34]=_):_=O[34],O[35]===Symbol.for(\"react.memo_cache_sentinel\")?(k=(0,A.jsx)(uF,{title:\"Try Turbopack\"}),O[35]=k):k=O[35],O[36]===Symbol.for(\"react.memo_cache_sentinel\")?(E=(0,A.jsxs)(\"div\",{className:\"panel-content\",children:[(0,A.jsx)(nX,{}),(0,A.jsx)(uX,{href:\"https://nextjs.org/docs/app/api-reference/turbopack\"})]}),O[36]=E):E=O[36],O[37]!==_?(j=(0,A.jsx)(u0,{name:\"turbo-info\",children:(0,A.jsx)(o2,{sharePanelSizeGlobally:!1,sizeConfig:_,closeOnClickOutside:!0,header:k,children:E})}),O[37]=_,O[38]=j):j=O[38],O[39]!==b||O[40]!==C||O[41]!==j||O[42]!==p?(S=(0,A.jsxs)(A.Fragment,{children:[c,p,b,C,j]}),O[39]=b,O[40]=C,O[41]=j,O[42]=p,O[43]=S):S=O[43],S},uX=function(e){var t,n=(0,x.c)(2),r=e.href;return n[0]!==r?(t=(0,A.jsx)(\"div\",{className:\"dev-tools-info-button-container\",children:(0,A.jsx)(\"a\",{className:\"dev-tools-info-learn-more-button\",href:r,target:\"_blank\",rel:\"noreferrer noopener\",children:\"Learn More\"})}),n[0]=r,n[1]=t):t=n[1],t},uG=function(){var e,t,n,r,o=(0,x.c)(17),a=dl(),i=a.dispatch,l=a.state,s=r5(),c=s.setPanel,u=s.setSelectedIndex,d=o_();return o[0]!==i?(e=function(e){i({type:G,scale:e})},o[0]=i,o[1]=e):e=o[1],o[2]!==i||o[3]!==d?(t=function(e){i({type:K,devToolsPosition:e}),d(e)},o[2]=i,o[3]=d,o[4]=t):t=o[4],o[5]!==i||o[6]!==c||o[7]!==u?(n=function(){i({type:U,disabled:!0}),u(-1),c(null),fetch(\"/__nextjs_disable_dev_indicator\",{method:\"POST\"})},o[5]=i,o[6]=c,o[7]=u,o[8]=n):n=o[8],o[9]!==l.devToolsPosition||o[10]!==l.hideShortcut||o[11]!==l.scale||o[12]!==l.theme||o[13]!==e||o[14]!==t||o[15]!==n?(r=(0,A.jsx)(\"div\",{className:\"user-preferences-wrapper\",children:(0,A.jsx)(rk,{theme:l.theme,position:l.devToolsPosition,scale:l.scale,setScale:e,setPosition:t,hideShortcut:l.hideShortcut,setHideShortcut:u1,hide:n})}),o[9]=l.devToolsPosition,o[10]=l.hideShortcut,o[11]=l.scale,o[12]=l.theme,o[13]=e,o[14]=t,o[15]=n,o[16]=r):r=o[16],r},uQ=function(){return(0,w.useContext)(uJ)},uJ=(0,w.createContext)(null);function u0(e){var t,n,r,o,a,i=(0,x.c)(12),l=e.children,s=e.name,c=r5().panel;i[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={enterDelay:0,exitDelay:200},i[0]=t):t=i[0];var u=rN(s===c,t),d=u.mounted,f=u.rendered;if(!d)return null;i[1]!==d||i[2]!==s?(n={name:s,mounted:d},i[1]=d,i[2]=s,i[3]=n):n=i[3];var p=+!!f;i[4]!==p?(r={\"--panel-opacity\":p,\"--panel-transition\":\"opacity \".concat(200,\"ms \").concat(nt)},i[4]=p,i[5]=r):r=i[5];var h=r;return i[6]!==l||i[7]!==h?(o=(0,A.jsx)(\"div\",{id:\"panel-route\",className:\"panel-route\",style:h,children:l}),i[6]=l,i[7]=h,i[8]=o):o=i[8],i[9]!==n||i[10]!==o?(a=(0,A.jsx)(uJ,{value:n,children:o}),i[9]=n,i[10]=o,i[11]=a):a=i[11],a}function u1(e){rw({hideShortcut:e})}function u2(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u4(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return u2(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u2(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var u5=(0,w.createContext)(null),u3=function(){return(0,w.useContext)(u5)};function u6(){var e,t,n,r,o=(0,x.c)(11),a=u4((0,w.useState)(null),2),i=a[0],l=a[1],s=u4((0,w.useState)(-1),2),c=s[0],u=s[1],d=dl(),f=d.state,p=d.dispatch,h=d.getSquashedHydrationErrorDetails,m=(0,w.useRef)(null);return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,A.jsx)(rY,{}),t=(0,A.jsx)(rz,{}),o[0]=e,o[1]=t):(e=o[0],t=o[1]),o[2]!==p||o[3]!==h||o[4]!==i||o[5]!==c||o[6]!==f?(n=function(e){var t=e.runtimeErrors,n=e.totalErrorCount;return(0,A.jsx)(A.Fragment,{children:f.showIndicator?(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(u5,{value:{runtimeErrors:t,totalErrorCount:n},children:(0,A.jsxs)(r4,{value:{panel:i,setPanel:l,triggerRef:m,selectedIndex:c,setSelectedIndex:u},children:[(0,A.jsx)(rZ,{state:f,dispatch:p,getSquashedHydrationErrorDetails:h,runtimeErrors:t,errorCount:n}),(0,A.jsx)(uK,{}),(0,A.jsx)(oC,{})]})})}):null})},o[2]=p,o[3]=h,o[4]=i,o[5]=c,o[6]=f,o[7]=n):n=o[7],o[8]!==f||o[9]!==n?(r=(0,A.jsxs)(em,{children:[e,t,(0,A.jsx)(rV,{state:f,isAppDir:!0,children:n})]}),o[8]=f,o[9]=n,o[10]=r):r=o[10],r}function u9(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u8(e){return function(e){if(Array.isArray(e))return u9(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||u7(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function u7(e,t){if(e){if(\"string\"==typeof e)return u9(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u9(e,t)}}var de=null,dt=[];function dn(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];de?e.apply(void 0,[de].concat(u8(n))):dt.push(function(t){e.apply(void 0,[t].concat(u8(n)))})}}var dr={onBuildOk:dn(function(e){e({type:I})}),onBuildError:dn(function(e,t){e({type:T,message:t})}),onBeforeRefresh:dn(function(e){e({type:z})}),onRefresh:dn(function(e){e({type:D})}),onVersionInfo:dn(function(e,t){e({type:L,versionInfo:t})}),onStaticIndicator:dn(function(e,t){e({type:P,staticIndicator:t})}),onDebugInfo:dn(function(e,t){e({type:M,debugInfo:t})}),onDevIndicator:dn(function(e,t){e({type:Z,devIndicator:t})}),onDevToolsConfig:dn(function(e,t){e({type:Q,devToolsConfig:t})}),onUnhandledError:dn(function(e,t){e({type:N,reason:t})}),onUnhandledRejection:dn(function(e,t){e({type:R,reason:t})}),openErrorOverlay:dn(function(e){e({type:F})}),closeErrorOverlay:dn(function(e){e({type:q})}),toggleErrorOverlay:dn(function(e){e({type:H})}),buildingIndicatorHide:dn(function(e){e({type:$})}),buildingIndicatorShow:dn(function(e){e({type:V})}),renderingIndicatorHide:dn(function(e){e({type:Y})}),renderingIndicatorShow:dn(function(e){e({type:W})}),segmentExplorerNodeAdd:dn(function(e,t){an(t)}),segmentExplorerNodeRemove:dn(function(e,t){ar(t)}),segmentExplorerUpdateRouteState:dn(function(e,t){e({type:er,page:t})})};function da(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,b,C=(0,x.c)(18),B=e.getOwnerStack,J=e.getSquashedHydrationErrorDetails,ee=e.isRecoverableError,et=e.routerType,en=e.shadowRoot,eo=(t=et,n=B,r=ee,(s=(0,x.c)(7))[0]!==n||s[1]!==r?(a=function(e,t,o){var a,i=n(o),l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:process.env.__NEXT_DIST_DIR;return e?(e=e.split(\"\\n\").map(function(e){return e.includes(\"(eval \")&&(e=e.replace(/eval code/g,\"eval\").replace(/\\(eval at [^()]* \\(/,\"(file://\").replace(/\\),.*$/g,\")\")),e}).join(\"\\n\"),(0,_.parse)(e).map(function(e){try{var n=new URL(e.file),r=k.exec(n.pathname);if(r){var o,a=null==t||null==(o=t.replace(/\\\\/g,\"/\"))?void 0:o.replace(/\\/$/,\"\");a&&(e.file=\"file://\"+a.concat(r.pop())+n.search)}}catch(e){}return{file:e.file,line1:e.lineNumber,column1:e.column,methodName:e.methodName,arguments:e.arguments}})):[]}((o.stack||\"\")+(i||\"\")),s={id:t,error:o,frames:l,type:r(o)?\"recoverable\":(a=o)&&\"NEXT_CONSOLE_ERROR\"===a[E]?\"console\":\"runtime\"},c=e.filter(function(e){return e.error.stack!==s.error.stack&&ea(e.error.stack)!==ea(s.error.stack)||n(e.error)!==n(s.error)});return c.length===e.length?(c.push(s),c):e},s[0]=n,s[1]=r,s[2]=a):a=s[2],c=a,(s[3]!==c?(i=function(e,t){switch(t.type){case M:return O(S({},e),{debugInfo:t.debugInfo});case P:return O(S({},e),{staticIndicator:t.staticIndicator});case I:return O(S({},e),{buildError:null});case T:return O(S({},e),{buildError:t.message});case z:return O(S({},e),{refreshState:{type:\"pending\",errors:[]}});case D:return O(S({},e),{buildError:null,errors:\"pending\"===e.refreshState.type?e.refreshState.errors:[],refreshState:{type:\"idle\"}});case N:case R:switch(e.refreshState.type){case\"idle\":return O(S({},e),{nextId:e.nextId+1,errors:c(e.errors,e.nextId,t.reason)});case\"pending\":return O(S({},e),{nextId:e.nextId+1,refreshState:O(S({},e.refreshState),{errors:c(e.errors,e.nextId,t.reason)})});default:return e}case L:return O(S({},e),{versionInfo:t.versionInfo});case U:return O(S({},e),{disableDevIndicator:t.disabled});case Z:return O(S({},e),{showIndicator:!0,disableDevIndicator:ei||!!t.devIndicator.disabledUntil});case F:return O(S({},e),{isErrorOverlayOpen:!0});case q:return O(S({},e),{isErrorOverlayOpen:!1});case H:return O(S({},e),{isErrorOverlayOpen:!e.isErrorOverlayOpen});case V:return O(S({},e),{buildingIndicator:!0});case $:return O(S({},e),{buildingIndicator:!1});case W:return O(S({},e),{renderingIndicator:!0});case Y:return O(S({},e),{renderingIndicator:!1});case K:return O(S({},e),{devToolsPosition:t.devToolsPosition});case X:return O(S({},e),{devToolsPanelPosition:O(S({},e.devToolsPanelPosition),j({},t.key,t.devToolsPanelPosition))});case G:return O(S({},e),{scale:t.scale});case er:return O(S({},e),{page:t.page});case Q:var n=t.devToolsConfig,r=n.theme,o=n.disableDevIndicator,a=n.devToolsPosition,i=n.devToolsPanelPosition,l=n.devToolsPanelSize,s=n.scale,u=n.hideShortcut;return O(S({},e),{theme:null!=r?r:e.theme,disableDevIndicator:null!=o?o:e.disableDevIndicator,devToolsPosition:null!=a?a:e.devToolsPosition,devToolsPanelPosition:null!=i?i:e.devToolsPanelPosition,scale:null!=s?s:e.scale,devToolsPanelSize:null!=l?l:e.devToolsPanelSize,hideShortcut:void 0!==u?u:e.hideShortcut});default:return e}},s[3]=c,s[4]=i):i=s[4],s[5]!==t)?(o=t,l=O(S({},es),{isErrorOverlayOpen:\"pages\"===o,routerType:o}),s[5]=t,s[6]=l):l=s[6],u=(0,w.useReducer)(i,l),d=2,function(e){if(Array.isArray(e))return e}(u)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(u,2)||u7(u,d)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),el=eo[0],ec=eo[1];return C[0]!==en.host||C[1]!==el.theme?(f=function(){var e=en.host;\"dark\"===el.theme?(e.classList.add(\"dark\"),e.classList.remove(\"light\")):\"light\"===el.theme?(e.classList.add(\"light\"),e.classList.remove(\"dark\")):(e.classList.remove(\"dark\"),e.classList.remove(\"light\"))},C[0]=en.host,C[1]=el.theme,C[2]=f):f=C[2],C[3]!==en||C[4]!==el.theme?(p=[en,el.theme],C[3]=en,C[4]=el.theme,C[5]=p):p=C[5],(0,w.useLayoutEffect)(f,p),C[6]!==ec?(h=function(){de=ec;var e=setTimeout(function(){!function(e){try{var t=!0,n=!1,r=void 0;try{for(var o,a=dt[Symbol.iterator]();!(t=(o=a.next()).done);t=!0)(0,o.value)(e)}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}finally{dt.length=0}}(ec)});return function(){de=null,clearTimeout(e)}},C[6]=ec,C[7]=h):h=C[7],C[8]===Symbol.for(\"react.memo_cache_sentinel\")?(m=[],C[8]=m):m=C[8],(0,w.useInsertionEffect)(h,m),C[9]===Symbol.for(\"react.memo_cache_sentinel\")?(g=(0,A.jsx)(ef,{}),C[9]=g):g=C[9],C[10]!==ec||C[11]!==J||C[12]!==en||C[13]!==el?(y={dispatch:ec,getSquashedHydrationErrorDetails:J,shadowRoot:en,state:el},C[10]=ec,C[11]=J,C[12]=en,C[13]=el,C[14]=y):y=C[14],C[15]===Symbol.for(\"react.memo_cache_sentinel\")?(v=(0,A.jsx)(u6,{}),C[15]=v):v=C[15],C[16]!==y?(b=(0,A.jsxs)(A.Fragment,{children:[g,(0,A.jsx)(di,{value:y,children:v})]}),C[16]=y,C[17]=b):b=C[17],b}var di=(0,w.createContext)(null),dl=function(){return(0,w.useContext)(di)},ds=!1,dc=!1;function du(){return null}function dd(e,t){if(ds)throw Error(\"Next DevTools: Pages Dev Overlay is already mounted. This is a bug in Next.js\");if(!dc){var n=document.createElement(\"script\");n.style.display=\"block\",n.style.position=\"absolute\",n.setAttribute(\"data-nextjs-dev-overlay\",\"true\");var r=document.createElement(\"nextjs-portal\");n.appendChild(r),document.body.appendChild(n);var o=(0,ec.createRoot)(r,{identifierPrefix:\"ndt-\"}),a=r.attachShadow({mode:\"open\"});(0,w.startTransition)(function(){o.render((0,A.jsx)(da,{getOwnerStack:e,getSquashedHydrationErrorDetails:du,isRecoverableError:t,routerType:\"app\",shadowRoot:a}))}),dc=!0}}function df(e,t,n){if(dc)throw Error(\"Next DevTools: App Dev Overlay is already mounted. This is a bug in Next.js\");if(!ds){var r=document.createElement(\"nextjs-portal\");r.style.position=\"absolute\",new MutationObserver(function(e){var t=!0,n=!1,o=void 0;try{for(var a,i=e[Symbol.iterator]();!(t=(a=i.next()).done);t=!0){var l=a.value;if(\"childList\"===l.type){var s=!0,c=!1,u=void 0;try{for(var d,f=l.removedNodes[Symbol.iterator]();!(s=(d=f.next()).done);s=!0)d.value===r&&document.body.appendChild(r)}catch(e){c=!0,u=e}finally{try{s||null==f.return||f.return()}finally{if(c)throw u}}}}}catch(e){n=!0,o=e}finally{try{t||null==i.return||i.return()}finally{if(n)throw o}}}).observe(document.body,{childList:!0}),document.body.appendChild(r);var o=(0,ec.createRoot)(r,{identifierPrefix:\"ndt-\"}),a=r.attachShadow({mode:\"open\"});(0,w.startTransition)(function(){o.render((0,A.jsx)(da,{getOwnerStack:e,getSquashedHydrationErrorDetails:t,isRecoverableError:n,routerType:\"pages\",shadowRoot:a}))}),ds=!0}}})(),exports.DevOverlayContext=__nested_webpack_exports__.DevOverlayContext,exports.dispatcher=__nested_webpack_exports__.dispatcher,exports.renderAppDevOverlay=__nested_webpack_exports__.renderAppDevOverlay,exports.renderPagesDevOverlay=__nested_webpack_exports__.renderPagesDevOverlay,exports.useDevOverlayContext=__nested_webpack_exports__.useDevOverlayContext,__nested_webpack_exports__)-1===[\"DevOverlayContext\",\"dispatcher\",\"renderAppDevOverlay\",\"renderPagesDevOverlay\",\"useDevOverlayContext\"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__nested_webpack_exports__[__webpack_i__]);Object.defineProperty(exports, \"__esModule\", ({value:!0}));\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUEseUJBQXlCLDZSQUE2UixhQUFhLE9BQU8sUUFBUSxFQUFFLDhhQUE4YTtBQUNsd0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDZJQUE2SSxLQUFLLFVBQVUsS0FBSyxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksV0FBVyxV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OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sMklBQTJJLFlBQVksYUFBYSxXQUFXLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxZQUFZLE1BQU0sWUFBWSxPQUFPLE1BQU0sVUFBVSxVQUFVLFVBQVUsWUFBWSxPQUFPLGFBQWEsT0FBTyxVQUFVLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sUUFBUSxVQUFVLFVBQVUsVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksT0FBTyxNQUFNLFVBQVUsVUFBVSxZQUFZLE9BQU8sTUFBTSxVQUFVLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxXQUFXLFlBQVksYUFB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0saUlBQWlJLFlBQVksV0FBVyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsV0FBVyxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTSxzR0FBc0csV0FBVyxZQUFZLFdBQVcsT0FBTyxVQUFVLEtBQUssT0FBTyxZQUFZLE9BQU8sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sY0FBYyxVQUFVLE9BQU8sS0FBSyxVQUFVLE1BQU0sT0FBTyxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksV0FBVyxZQUFZLE9BQU8sVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLE1BQU0sWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLGFBQWEsT0FBTyxPQUFPLFVBQVUsWUFBWSxPQUFPLFFBQVEsWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxXQUFXLE9BQU8sS0FBSyxZQUFZLE9BQU8sTUFBTSxZQUFZLE9BQU8sS0FBSyxVQUFVLE9BQU8sTUFBTSxZQUFZLFdBQVcsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLE9BQU8sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLFFBQVEsS0FBSyxPQUFPLFdBQVcsT0FBTyxL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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw4R0FBOEcsWUFBWSxhQUFhLGNBQWMsYUFBYSxjQUFjLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssS0FBSyxZQUFZLGFBQWEsY0FBYyxhQUFhLGNBQWMsYUFBYSxhQUFhLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFB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QUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGlIQUFpSCxVQUFVLEtBQUssYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGNBQWMsYUFBYSxhQUFhLGNBQWMsTUFBTSxPQUFPLE1BQU0sTUFBTSxZQUFZLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLE9BQU8sTUFBTSxPQUFPLGFBQWEsYUFBYSxjQUFjLGFBQWEsTUFBTSxRQUFRLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxnQkFBZ0IsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxnQkFBZ0IsS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxjQUFjLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxNQUFNLFlBQVksTUFBTSxLQUFL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QkFBaUIsbUdBQW1HLFFBQVEsdUNBQXVDLHFHQUFxRyw4Q0FBOEMsOENBQThDLDJCQUEyQix3QkFBd0Isb0JBQW9CLFlBQVksRUFBRSxpQ0FBaUMsdUJBQXVCLHVHQUF1RyxHQUFHLFNBQVMsbUJBQW1CLGlHQUFpRyxRQUFRLDhDQUE4Qyw2REFBNkQsdUJBQXVCLElBQUksaUNBQWlDLHVCQUF1QixNQUFNLGNBQWMseUJBQXlCLHVCQUF1QixJQUFJLDhDQUE4Qyx1QkFBdUIsK0NBQStDLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsaUJBQWlCLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsZUFBZSx5QkFBeUIsYUFBYSwrQkFBK0IsMkJBQTJCLHdCQUF3QixvQkFBb0IsWUFBWSxFQUFFLGlDQUFpQyx1QkFBdUIsd0dBQXdHLEdBQUcsVUFBVSxJQUFJLHlCQUF5QixDQUFDLDBCQUFtQixtQkFBbUIsa0JBQWtCLENBQUMsMEJBQW1CLFlBQVksMkJBQTJCLENBQUMsMEJBQW1CLHFCQUFxQiw2QkFBNkIsQ0FBQywwQkFBbUIsdUJBQXVCLDRCQUE0QixDQUFDLDBCQUFtQixzQkFBc0IsMEJBQW1CLDhKQUE4SiwwQkFBbUIsaUJBQWlCLDhDQUEyQyxDQUFDLFNBQVMsRUFBQztBQUMxem1FIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1kZXZ0b29scy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX193ZWJwYWNrX21vZHVsZXNfXz17XCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9kZXZ0b29scy1pbmRpY2F0b3IvZGV2dG9vbHMtaW5kaWNhdG9yLmNzc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7WjooKT0+bH0pO3ZhciByPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCIpLG89bi5uKHIpLGE9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiKSxpPW4ubihhKSgpKG8oKSk7aS5wdXNoKFtlLmlkLGBbZGF0YS1uZXh0anMtdG9hc3RdIHtcbiAgJltkYXRhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZW51KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stc2Fucyk7XG4gIHotaW5kZXg6IDM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIG91dGxpbmU6IDA7XG4gIG1pbi13aWR0aDogMjQ4cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tYW5pbWF0ZS1vdXQtZHVyYXRpb24tbXMpXG4gICAgdmFyKC0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uKTtcblxuICAmW2RhdGEtcmVuZGVyZWQ9J3RydWUnXSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBzY2FsZTogMTtcbiAgfVxufVxuXG4uZGV2LXRvb2xzLWluZGljYXRvci1pbm5lciB7XG4gIHBhZGRpbmc6IDZweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiA4cHggNnB4O1xuICBoZWlnaHQ6IHZhcigtLXNpemUtMzYpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBzdmcge1xuICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbiAgcGFkZGluZzogNnB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmRldi10b29scy1pbmRpY2F0b3ItaXRlbVtkYXRhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbn1cblxuLmRldi10b29scy1pbmRpY2F0b3ItbGFiZWwge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xufVxuXG4uZGV2LXRvb2xzLWluZGljYXRvci12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWlzc3VlLWNvdW50IHtcbiAgLS1jb2xvci1wcmltYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XG4gIC0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiB2YXIoLS1zaXplLTQwKTtcbiAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbWFsbCk7XG4gIHBhZGRpbmc6IDJweDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDEyOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTMpO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuXG4gICZbZGF0YS1oYXMtaXNzdWVzPSd0cnVlJ10ge1xuICAgIC0tY29sb3ItcHJpbWFyeTogdmFyKC0tY29sb3ItcmVkLTgwMCk7XG4gICAgLS1jb2xvci1zZWNvbmRhcnk6IHZhcigtLWNvbG9yLXJlZC0xMDApO1xuICB9XG5cbiAgLmRldi10b29scy1pbmRpY2F0b3ItaXNzdWUtY291bnQtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS04KTtcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtOCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB9XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLXNob3J0Y3V0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA0cHg7XG5cbiAga2JkIHtcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0yMCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLXNhbnMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0xNik7XG4gIH1cbn1cblxuLmRldi10b29scy1ncmFiYmluZyB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG5cbiAgPiAqIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2RldnRvb2xzLWluZGljYXRvci9kZXZ0b29scy1pbmRpY2F0b3IuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2Qix1Q0FBdUM7RUFDdkMsNkNBQTZDO0VBQzdDLDRCQUE0QjtFQUM1Qiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLGtCQUFrQjtFQUNsQixtQ0FBbUM7RUFDbkMsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1YsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQjtzQ0FDb0M7O0VBRXBDO0lBQ0UsVUFBVTtJQUNWLFFBQVE7RUFDVjtBQUNGOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsZ0NBQWdDO0VBQ2hDLGlCQUFpQjtFQUNqQixtQkFBbUI7O0VBRW5CO0lBQ0UscUJBQXFCO0lBQ3JCLHNCQUFzQjtFQUN4Qjs7RUFFQTtJQUNFLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0UsdUNBQXVDO0VBQ3ZDLFlBQVk7RUFDWiwyQ0FBMkM7RUFDM0MsV0FBVztBQUNiOztBQUVBO0VBQ0UsZUFBZTtFQUNmLHVDQUF1QztBQUN6Qzs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QiwyQkFBMkI7RUFDM0IsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQiw0QkFBNEI7RUFDNUIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usc0NBQXNDO0VBQ3RDLHdDQUF3QztFQUN4QyxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsUUFBUTtFQUNSLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIsdUNBQXVDO0VBQ3ZDLDZDQUE2QztFQUM3Qyw0QkFBNEI7RUFDNUIsK0JBQStCO0VBQy9CLFlBQVk7RUFDWiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsa0NBQWtDOztFQUVsQztJQUNFLHFDQUFxQztJQUNyQyx1Q0FBdUM7RUFDekM7O0VBRUE7SUFDRSxvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLGdDQUFnQztJQUNoQyw0Q0FBNEM7SUFDNUMsa0JBQWtCO0VBQ3BCO0FBQ0Y7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsUUFBUTs7RUFFUjtJQUNFLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIsYUFBYTtJQUNiLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIsZ0NBQWdDO0lBQ2hDLHVDQUF1QztJQUN2QyxtQ0FBbUM7SUFDbkMsdUNBQXVDO0lBQ3ZDLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLDJCQUEyQjtFQUM3QjtBQUNGOztBQUVBO0VBQ0UsZ0JBQWdCOztFQUVoQjtJQUNFLG9CQUFvQjtFQUN0QjtBQUNGXCIsc291cmNlc0NvbnRlbnQ6W1wiW2RhdGEtbmV4dGpzLXRvYXN0XSB7XFxuICAmW2RhdGEtaGlkZGVuPSd0cnVlJ10ge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5cXG4uZGV2LXRvb2xzLWluZGljYXRvci1tZW51IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1lbnUpO1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gIHotaW5kZXg6IDM7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgb3BhY2l0eTogMDtcXG4gIG91dGxpbmU6IDA7XFxuICBtaW4td2lkdGg6IDI0OHB4O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1hbmltYXRlLW91dC1kdXJhdGlvbi1tcylcXG4gICAgdmFyKC0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uKTtcXG5cXG4gICZbZGF0YS1yZW5kZXJlZD0ndHJ1ZSddIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgc2NhbGU6IDE7XFxuICB9XFxufVxcblxcbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWlubmVyIHtcXG4gIHBhZGRpbmc6IDZweDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG5cXG4uZGV2LXRvb2xzLWluZGljYXRvci1pdGVtIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogOHB4IDZweDtcXG4gIGhlaWdodDogdmFyKC0tc2l6ZS0zNik7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG5cXG4gIHN2ZyB7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gIH1cXG5cXG4gICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgIG91dGxpbmU6IDA7XFxuICB9XFxufVxcblxcbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWZvb3RlciB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICBwYWRkaW5nOiA2cHg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcblxcbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWl0ZW1bZGF0YS1zZWxlY3RlZD0ndHJ1ZSddIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG59XFxuXFxuLmRldi10b29scy1pbmRpY2F0b3ItbGFiZWwge1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbn1cXG5cXG4uZGV2LXRvb2xzLWluZGljYXRvci12YWx1ZSB7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbn1cXG5cXG4uZGV2LXRvb2xzLWluZGljYXRvci1pc3N1ZS1jb3VudCB7XFxuICAtLWNvbG9yLXByaW1hcnk6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcXG4gIC0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGdhcDogOHB4O1xcbiAgbWluLXdpZHRoOiB2YXIoLS1zaXplLTQwKTtcXG4gIGhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtYWxsKTtcXG4gIHBhZGRpbmc6IDJweDtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgYm9yZGVyLXJhZGl1czogMTI4cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XFxuXFxuICAmW2RhdGEtaGFzLWlzc3Vlcz0ndHJ1ZSddIHtcXG4gICAgLS1jb2xvci1wcmltYXJ5OiB2YXIoLS1jb2xvci1yZWQtODAwKTtcXG4gICAgLS1jb2xvci1zZWNvbmRhcnk6IHZhcigtLWNvbG9yLXJlZC0xMDApO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItaXNzdWUtY291bnQtaW5kaWNhdG9yIHtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtOCk7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS04KTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB9XFxufVxcblxcbi5kZXYtdG9vbHMtaW5kaWNhdG9yLXNob3J0Y3V0IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBnYXA6IDRweDtcXG5cXG4gIGtiZCB7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTIwKTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQpO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLXNhbnMpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gIH1cXG59XFxuXFxuLmRldi10b29scy1ncmFiYmluZyB7XFxuICBjdXJzb3I6IGdyYWJiaW5nO1xcblxcbiAgPiAqIHtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxufVxcblwiXSxzb3VyY2VSb290OlwiXCJ9XSk7bGV0IGw9aX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9kZXZ0b29scy1wYW5lbC9yZXNpemUvcmVzaXplLWhhbmRsZS5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnJlc2l6ZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8qIHRvZG86IGJldHRlciB6IGluZGV4ICovXG4gIHotaW5kZXg6IDEwO1xuICAvKiB0b2RvOiBpcyB0aGlzIG5lZWRlZCAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLnJlc2l6ZS1saW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKiB0b2RvIHNtYXJ0ZXIgeiBpbmRleCAqL1xuICB6LWluZGV4OiAtMTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC8qIGEgbm9ybWFsIGV4aXQgYW5pbWF0aW9uIGN1cnZlLSBhdCB0aGlzIHBvaW50IHRoZSBleGl0IGFuaW1hdGlvbiBpcyAqL1xuICAvKiBpbW1lZGlhdGVseSByZXNwb25zaXZlIHNvIHdlIGRvbid0IG5lZWQgYSBiZXNwb2tlIGN1cnZlICovXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIC8qIHRvZG86IGJldHRlciB2YXI/ICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbn1cblxuLyogc3RhcnQgcmVhbGx5IGZhc3QgYmVjYXVzZSB3ZSBzdGFydCBzdXBlciBoaWRkZW4gaW5pdGlhbGx5IGJlaGluZCB0aGUgcGFuZWwsIG90aGVyd2lzZSBmZWVscyBsaWtlIGFuIHVuaW50ZW5kZWQgYW5pbWF0aW9uIGRlbGF5ICovXG4ucmVzaXplLWNvbnRhaW5lcjpob3ZlciB+IC5yZXNpemUtbGluZSB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMC45KTtcbn1cblxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQsXG4ucmVzaXplLWNvbnRhaW5lci5sZWZ0IHtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAyMnB4O1xuICBjdXJzb3I6IGV3LXJlc2l6ZTtcbn1cblxuLyogdG9kbzogZG9uJ3QgaGFyZCBjb2RlIGFsbCB0aGVzZSB2YWx1ZXMvdXNlIHZhcnMgKi9cblxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLFxuLnJlc2l6ZS1jb250YWluZXIudG9wIHtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjJweDtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG59XG5cbi5yZXNpemUtY29udGFpbmVyLnRvcCB7XG4gIHRvcDogLTdweDtcbn1cbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbSB7XG4gIGJvdHRvbTogLTdweDtcbn1cbi5yZXNpemUtY29udGFpbmVyLmxlZnQge1xuICBsZWZ0OiAtN3B4O1xufVxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQge1xuICByaWdodDogLTdweDtcbn1cblxuLnJlc2l6ZS1jb250YWluZXIudG9wLWxlZnQsXG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQsXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20tbGVmdCxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbS1yaWdodCB7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG4gIHotaW5kZXg6IDE1O1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci50b3AtbGVmdCB7XG4gIHRvcDogLTVweDtcbiAgbGVmdDogLTVweDtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cbi5yZXNpemUtY29udGFpbmVyLnRvcC1yaWdodCB7XG4gIHRvcDogLTVweDtcbiAgcmlnaHQ6IC01cHg7XG4gIGN1cnNvcjogbmVzdy1yZXNpemU7XG59XG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20tbGVmdCB7XG4gIGJvdHRvbTogLTVweDtcbiAgbGVmdDogLTVweDtcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcbn1cbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbS1yaWdodCB7XG4gIGJvdHRvbTogLTVweDtcbiAgcmlnaHQ6IC01cHg7XG4gIGN1cnNvcjogbndzZS1yZXNpemU7XG59XG5cbi5yZXNpemUtbGluZS50b3AsXG4ucmVzaXplLWxpbmUuYm90dG9tIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xufVxuXG4ucmVzaXplLWxpbmUubGVmdCxcbi5yZXNpemUtbGluZS5yaWdodCB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbn1cblxuLnJlc2l6ZS1saW5lLnRvcCB7XG4gIHRvcDogLTdweDtcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJvcmRlci1sZWZ0LCAycHgpKTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWJvcmRlci1ob3Jpem9udGFsLCA0cHgpKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZykgdmFyKC0tcm91bmRlZC1sZykgMCAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMThweCk7XG59XG5cbi5yZXNpemUtbGluZS5ib3R0b20ge1xuICBib3R0b206IC03cHg7XG4gIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItbGVmdCwgMnB4KSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1yb3VuZGVkLWxnKSB2YXIoLS1yb3VuZGVkLWxnKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xOHB4KTtcbn1cblxuLnJlc2l6ZS1saW5lLmxlZnQge1xuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItdG9wLCAycHgpKTtcbiAgbGVmdDogLTdweDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItdmVydGljYWwsIDRweCkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKSAwIDAgdmFyKC0tcm91bmRlZC1sZyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxOHB4KTtcbn1cblxuLnJlc2l6ZS1saW5lLnJpZ2h0IHtcbiAgdG9wOiBjYWxjKC0xICogdmFyKC0tYm9yZGVyLXRvcCwgMnB4KSk7XG4gIHJpZ2h0OiAtN3B4O1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLWJvcmRlci12ZXJ0aWNhbCwgNHB4KSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcm91bmRlZC1sZykgdmFyKC0tcm91bmRlZC1sZykgMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xOHB4KTtcbn1cblxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQsXG4ucmVzaXplLWNvbnRhaW5lci5sZWZ0OmhvdmVyIH4gLnJlc2l6ZS1saW5lLmxlZnQsXG4ucmVzaXplLWxpbmUucmlnaHQuZHJhZ2dpbmcsXG4ucmVzaXplLWxpbmUubGVmdC5kcmFnZ2luZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tOmhvdmVyIH4gLnJlc2l6ZS1saW5lLmJvdHRvbSxcbi5yZXNpemUtY29udGFpbmVyLnRvcDpob3ZlciB+IC5yZXNpemUtbGluZS50b3AsXG4ucmVzaXplLWxpbmUuYm90dG9tLmRyYWdnaW5nLFxuLnJlc2l6ZS1saW5lLnRvcC5kcmFnZ2luZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLyogbWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3Qgc2hvdyBtdWx0aXBsZSBoYW5kbGVzIGF0IG9uY2VcbiAqIHdlIHNob3VsZCBvbmx5IGV2ZXIgc2hvdyB0aGUgY3VycmVudGx5IHJlc2l6aW5nIGhhbmRsZVxuICogcmVnYXJkbGVzcyBvZiBob3ZlciBzdGF0ZSBcbiAqL1xuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xufVxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xufVxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIuYm90dG9tOmhvdmVyIH4gLnJlc2l6ZS1saW5lLmJvdHRvbSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG59XG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci50b3A6aG92ZXIgfiAucmVzaXplLWxpbmUudG9wIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2RldnRvb2xzLXBhbmVsL3Jlc2l6ZS9yZXNpemUtaGFuZGxlLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6QixXQUFXO0VBQ1gsb0JBQW9CO0VBQ3BCLHVFQUF1RTtFQUN2RSw0REFBNEQ7RUFDNUQsdURBQXVEO0VBQ3ZELHNCQUFzQjtFQUN0Qix1Q0FBdUM7QUFDekM7O0FBRUEsbUlBQW1JO0FBQ25JO0VBQ0UsNERBQTREO0FBQzlEOztBQUVBOztFQUVFLE1BQU07RUFDTixZQUFZO0VBQ1osV0FBVztFQUNYLGlCQUFpQjtBQUNuQjs7QUFFQSxvREFBb0Q7O0FBRXBEOztFQUVFLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtFQUNaLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFNBQVM7QUFDWDtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTs7OztFQUlFLFdBQVc7RUFDWCxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsU0FBUztFQUNULFVBQVU7RUFDVixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFNBQVM7RUFDVCxXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osVUFBVTtFQUNWLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxtQkFBbUI7QUFDckI7O0FBRUE7O0VBRUUsWUFBWTtFQUNaLFdBQVc7RUFDWCw2Q0FBNkM7QUFDL0M7O0FBRUE7O0VBRUUsV0FBVztFQUNYLFlBQVk7RUFDWiw2Q0FBNkM7QUFDL0M7O0FBRUE7RUFDRSxTQUFTO0VBQ1Qsd0NBQXdDO0VBQ3hDLGlEQUFpRDtFQUNqRCxzREFBc0Q7RUFDdEQsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLHdDQUF3QztFQUN4QyxpREFBaUQ7RUFDakQsc0RBQXNEO0VBQ3RELDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLHNDQUFzQztFQUN0QyxVQUFVO0VBQ1YsZ0RBQWdEO0VBQ2hELHNEQUFzRDtFQUN0RCwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxzQ0FBc0M7RUFDdEMsV0FBVztFQUNYLGdEQUFnRDtFQUNoRCxzREFBc0Q7RUFDdEQsNEJBQTRCO0FBQzlCOztBQUVBOzs7O0VBSUUsd0JBQXdCO0FBQzFCOztBQUVBOzs7O0VBSUUsd0JBQXdCO0FBQzFCOztBQUVBOzs7RUFHRTtBQUNGO0VBQ0UsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCXCIsc291cmNlc0NvbnRlbnQ6W1wiLnJlc2l6ZS1jb250YWluZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgLyogdG9kbzogYmV0dGVyIHogaW5kZXggKi9cXG4gIHotaW5kZXg6IDEwO1xcbiAgLyogdG9kbzogaXMgdGhpcyBuZWVkZWQgKi9cXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4ucmVzaXplLWxpbmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgLyogdG9kbyBzbWFydGVyIHogaW5kZXggKi9cXG4gIHotaW5kZXg6IC0xO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAvKiBhIG5vcm1hbCBleGl0IGFuaW1hdGlvbiBjdXJ2ZS0gYXQgdGhpcyBwb2ludCB0aGUgZXhpdCBhbmltYXRpb24gaXMgKi9cXG4gIC8qIGltbWVkaWF0ZWx5IHJlc3BvbnNpdmUgc28gd2UgZG9uJ3QgbmVlZCBhIGJlc3Bva2UgY3VydmUgKi9cXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICAvKiB0b2RvOiBiZXR0ZXIgdmFyPyAqL1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbn1cXG5cXG4vKiBzdGFydCByZWFsbHkgZmFzdCBiZWNhdXNlIHdlIHN0YXJ0IHN1cGVyIGhpZGRlbiBpbml0aWFsbHkgYmVoaW5kIHRoZSBwYW5lbCwgb3RoZXJ3aXNlIGZlZWxzIGxpa2UgYW4gdW5pbnRlbmRlZCBhbmltYXRpb24gZGVsYXkgKi9cXG4ucmVzaXplLWNvbnRhaW5lcjpob3ZlciB+IC5yZXNpemUtbGluZSB7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDAuOSk7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLnJpZ2h0LFxcbi5yZXNpemUtY29udGFpbmVyLmxlZnQge1xcbiAgdG9wOiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDIycHg7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLyogdG9kbzogZG9uJ3QgaGFyZCBjb2RlIGFsbCB0aGVzZSB2YWx1ZXMvdXNlIHZhcnMgKi9cXG5cXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20sXFxuLnJlc2l6ZS1jb250YWluZXIudG9wIHtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMjJweDtcXG4gIGN1cnNvcjogbnMtcmVzaXplO1xcbn1cXG5cXG4ucmVzaXplLWNvbnRhaW5lci50b3Age1xcbiAgdG9wOiAtN3B4O1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20ge1xcbiAgYm90dG9tOiAtN3B4O1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5sZWZ0IHtcXG4gIGxlZnQ6IC03cHg7XFxufVxcbi5yZXNpemUtY29udGFpbmVyLnJpZ2h0IHtcXG4gIHJpZ2h0OiAtN3B4O1xcbn1cXG5cXG4ucmVzaXplLWNvbnRhaW5lci50b3AtbGVmdCxcXG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLWxlZnQsXFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcXG4gIHdpZHRoOiAyNnB4O1xcbiAgaGVpZ2h0OiAyNnB4O1xcbiAgei1pbmRleDogMTU7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLnRvcC1sZWZ0IHtcXG4gIHRvcDogLTVweDtcXG4gIGxlZnQ6IC01cHg7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQge1xcbiAgdG9wOiAtNXB4O1xcbiAgcmlnaHQ6IC01cHg7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20tbGVmdCB7XFxuICBib3R0b206IC01cHg7XFxuICBsZWZ0OiAtNXB4O1xcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcXG4gIGJvdHRvbTogLTVweDtcXG4gIHJpZ2h0OiAtNXB4O1xcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcXG59XFxuXFxuLnJlc2l6ZS1saW5lLnRvcCxcXG4ucmVzaXplLWxpbmUuYm90dG9tIHtcXG4gIGhlaWdodDogMThweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbn1cXG5cXG4ucmVzaXplLWxpbmUubGVmdCxcXG4ucmVzaXplLWxpbmUucmlnaHQge1xcbiAgd2lkdGg6IDE4cHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxufVxcblxcbi5yZXNpemUtbGluZS50b3Age1xcbiAgdG9wOiAtN3B4O1xcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJvcmRlci1sZWZ0LCAycHgpKTtcXG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKSB2YXIoLS1yb3VuZGVkLWxnKSAwIDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMThweCk7XFxufVxcblxcbi5yZXNpemUtbGluZS5ib3R0b20ge1xcbiAgYm90dG9tOiAtN3B4O1xcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJvcmRlci1sZWZ0LCAycHgpKTtcXG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XFxuICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tcm91bmRlZC1sZykgdmFyKC0tcm91bmRlZC1sZyk7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE4cHgpO1xcbn1cXG5cXG4ucmVzaXplLWxpbmUubGVmdCB7XFxuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItdG9wLCAycHgpKTtcXG4gIGxlZnQ6IC03cHg7XFxuICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLWJvcmRlci12ZXJ0aWNhbCwgNHB4KSk7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKSAwIDAgdmFyKC0tcm91bmRlZC1sZyk7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMThweCk7XFxufVxcblxcbi5yZXNpemUtbGluZS5yaWdodCB7XFxuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItdG9wLCAycHgpKTtcXG4gIHJpZ2h0OiAtN3B4O1xcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItdmVydGljYWwsIDRweCkpO1xcbiAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1yb3VuZGVkLWxnKSB2YXIoLS1yb3VuZGVkLWxnKSAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xOHB4KTtcXG59XFxuXFxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0LFxcbi5yZXNpemUtbGluZS5yaWdodC5kcmFnZ2luZyxcXG4ucmVzaXplLWxpbmUubGVmdC5kcmFnZ2luZyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbTpob3ZlciB+IC5yZXNpemUtbGluZS5ib3R0b20sXFxuLnJlc2l6ZS1jb250YWluZXIudG9wOmhvdmVyIH4gLnJlc2l6ZS1saW5lLnRvcCxcXG4ucmVzaXplLWxpbmUuYm90dG9tLmRyYWdnaW5nLFxcbi5yZXNpemUtbGluZS50b3AuZHJhZ2dpbmcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG5cXG4vKiBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBzaG93IG11bHRpcGxlIGhhbmRsZXMgYXQgb25jZVxcbiAqIHdlIHNob3VsZCBvbmx5IGV2ZXIgc2hvdyB0aGUgY3VycmVudGx5IHJlc2l6aW5nIGhhbmRsZVxcbiAqIHJlZ2FyZGxlc3Mgb2YgaG92ZXIgc3RhdGUgXFxuICovXFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIuYm90dG9tOmhvdmVyIH4gLnJlc2l6ZS1saW5lLmJvdHRvbSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci50b3A6aG92ZXIgfiAucmVzaXplLWxpbmUudG9wIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcXG59XFxuXCJdLHNvdXJjZVJvb3Q6XCJcIn1dKTtsZXQgbD1pfSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL292ZXJ2aWV3L3NlZ21lbnQtYm91bmRhcnktdHJpZ2dlci5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQgLnBsdXMtaWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQ6aG92ZXIgLnBsdXMtaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIgc3ZnIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXI6aG92ZXIgc3ZnIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF0gc3ZnLFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF06aG92ZXIgc3ZnIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24ge1xuICBwYWRkaW5nOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3gtc2hhZG93OiAwcHggNHB4IDhweCAtNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci1ncmF5LTkwMCkgNCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24tcG9zaXRpb25lciB7XG4gIHotaW5kZXg6IHZhcigtLXRvcC16LWluZGV4KTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4td2lkdGg6IDIyMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtW2RhdGEtZGlzYWJsZWRdIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbSBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFlBQVk7RUFDWix5QkFBeUI7RUFDekIsZUFBZTtFQUNmLHVDQUF1QztBQUN6Qzs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2Qsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBOztFQUVFLDRCQUE0QjtFQUM1QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osdUNBQXVDO0VBQ3ZDLHVDQUF1QztFQUN2QyxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2Ysc0ZBQXNGO0FBQ3hGOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQiw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSw4QkFBOEI7RUFDOUIsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtBQUM5QlwiLHNvdXJjZXNDb250ZW50OltcIi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDRweDtcXG4gIHBhZGRpbmc6IDRweCA2cHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcXG59XFxuXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0IC5wbHVzLWljb24ge1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2U7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXItdGV4dDpob3ZlciAucGx1cy1pY29uIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIgc3ZnIHtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgaGVpZ2h0OiAxNHB4O1xcbiAgZmxleC1zaHJpbms6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyOmhvdmVyIHN2ZyB7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyW2Rpc2FibGVkXSBzdmcsXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF06aG92ZXIgc3ZnIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93biB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xcbiAgbWluLXdpZHRoOiAxMjBweDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgYm94LXNoYWRvdzogMHB4IDRweCA4cHggLTRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItZ3JheS05MDApIDQlLCB0cmFuc3BhcmVudCk7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLXBvc2l0aW9uZXIge1xcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogOHB4O1xcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG1pbi13aWR0aDogMjIwcHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW1bZGF0YS1kaXNhYmxlZF0ge1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW0gc3ZnIHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06aG92ZXIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1ncm91cC1sYWJlbCB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBmb250LXNpemU6IDEzcHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnNlZ21lbnQtZXhwbG9yZXItY29udGVudCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xuICBnYXA6IDEycHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLXBhZ2Utcm91dGUtYmFyLXBhdGgge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtIHtcbiAgbWFyZ2luOiA0cHggMDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbn1cbi5zZWdtZW50LWV4cGxvcmVyLWl0ZW0tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG4uc2VnbWVudC1leHBsb3Jlci1pdGVtLXJvdy1tYWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItY2hpbGRyZW4tLWludGVuZGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUgc2VsZWN0IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZS0tcGF0aCB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGggc21hbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLW5hbWUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS04MDApO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVzICsgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC10ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLW92ZXJyaWRkZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbCAuY29kZS1pY29uIHtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbi1vdXQ7XG59XG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsOmhvdmVyIC5jb2RlLWljb24ge1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbDpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjk1KTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tYnVpbHRpbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tY29sb3ItZ3JheS01MDApO1xuICBoZWlnaHQ6IDI0cHg7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW4gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xufVxuXG4vKiBGb290ZXIgc3R5bGVzICovXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXIge1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24tLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLXRleHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtdG9vbHRpcC0tc20ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLWxnIHtcbiAgbWluLXdpZHRoOiAyMDBweDtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItc3VnZ2VzdGlvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZ2FwOiA4cHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLXN1Z2dlc3Rpb25zLXRvb2x0aXAge1xuICB3aWR0aDogMjAwcHg7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIl0sbmFtZXM6W10sbWFwcGluZ3M6XCJBQUFBO0VBQ0UseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsNkNBQTZDO0VBQzdDLFNBQVM7QUFDWDs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsNkJBQTZCO0VBQzdCLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLDZDQUE2QztBQUMvQztBQUNBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLHFCQUFxQjtFQUNyQixRQUFRO0VBQ1IsVUFBVTtBQUNaO0FBQ0E7RUFDRSw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSxvQkFBb0I7RUFDcEIsUUFBUTtFQUNSLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGNBQWM7RUFDZCxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQix5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsdUNBQXVDO0VBQ3ZDLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHdDQUF3QztFQUN4Qyw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsY0FBYztFQUNkLFFBQVE7RUFDUixpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsNkJBQTZCO0VBQzdCLDRCQUE0QjtFQUM1Qix3Q0FBd0M7RUFDeEMsWUFBWTtFQUNaLGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUEsa0JBQWtCO0FBQ2xCO0VBQ0UsWUFBWTtFQUNaLDJDQUEyQztFQUMzQyxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFDWix1Q0FBdUM7RUFDdkMsdUNBQXVDO0VBQ3ZDLGtCQUFrQjtFQUNsQiw2QkFBNkI7RUFDN0IseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsdUNBQXVDO0FBQ3pDOztBQUVBO0VBQ0UsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLFlBQVk7RUFDWixjQUFjO0VBQ2Qsa0NBQWtDO0VBQ2xDLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLFFBQVE7QUFDVjs7QUFFQTtFQUNFLFlBQVk7QUFDZFwiLHNvdXJjZXNDb250ZW50OltcIi5zZWdtZW50LWV4cGxvcmVyLWNvbnRlbnQge1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gIHBhZGRpbmc6IDAgOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLXBhZ2Utcm91dGUtYmFyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogMTRweCAxNnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgZ2FwOiAxMnB4O1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhci1wYXRoIHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBsaW5lLWhlaWdodDogMjBweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItaXRlbSB7XFxuICBtYXJnaW46IDRweCAwO1xcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtOm50aC1jaGlsZChldmVuKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxufVxcbi5zZWdtZW50LWV4cGxvcmVyLWl0ZW0tcm93IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgcGFkZGluZy10b3A6IDEwcHg7XFxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItaXRlbS1yb3ctbWFpbiB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHdoaXRlLXNwYWNlOiBwcmU7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItY2hpbGRyZW4tLWludGVuZGVkIHtcXG4gIHBhZGRpbmctbGVmdDogMTZweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lIHNlbGVjdCB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGgge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lLS1wYXRoIHNtYWxsIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAwO1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLW5hbWUge1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZXMge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBnYXA6IDhweDtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlcyArIC5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDAgNnB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcXG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbn1cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRleHQge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1vdmVycmlkZGVuIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTMwMCk7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbCAuY29kZS1pY29uIHtcXG4gIG9wYWNpdHk6IDA7XFxuICBtYXJnaW4tbGVmdDogMDtcXG4gIHdpZHRoOiAwO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xcbn1cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsOmhvdmVyIC5jb2RlLWljb24ge1xcbiAgb3BhY2l0eTogMTtcXG4gIHdpZHRoOiAxMnB4O1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbDpob3ZlciB7XFxuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45NSk7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXktNTAwKTtcXG4gIGhlaWdodDogMjRweDtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tYnVpbHRpbiBzdmcge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gIG1hcmdpbi1yaWdodDogLTRweDtcXG59XFxuXFxuLyogRm9vdGVyIHN0eWxlcyAqL1xcbi5zZWdtZW50LWV4cGxvcmVyLWZvb3RlciB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGdhcDogOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiA2cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJ1dHRvbi0tZGlzYWJsZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLXRleHQge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYmFkZ2Uge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBtaW4td2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxuICBwYWRkaW5nOiAwIDZweDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFtYmVyLTMwMCk7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLXNtIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtdG9vbHRpcC0tbGcge1xcbiAgbWluLXdpZHRoOiAyMDBweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItc3VnZ2VzdGlvbnMge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBnYXA6IDhweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItc3VnZ2VzdGlvbnMtdG9vbHRpcCB7XFxuICB3aWR0aDogMjAwcHg7XFxufVxcblwiXSxzb3VyY2VSb290OlwiXCJ9XSk7bGV0IGw9aX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy90b2FzdC9zdHlsZS5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLm5leHRqcy10b2FzdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuICBib3gtc2hhZG93OiAwcHggMTZweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbi5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudCB7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtNHhsKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3RvYXN0L3N0eWxlLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxlQUFlO0VBQ2YsMkJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQiw2Q0FBNkM7QUFDL0M7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsaUNBQWlDO0VBQ2pDLGdCQUFnQjtFQUNoQixxQ0FBcUM7RUFDckMsdUNBQXVDO0FBQ3pDXCIsc291cmNlc0NvbnRlbnQ6W1wiLm5leHRqcy10b2FzdCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB6LWluZGV4OiB2YXIoLS10b3Atei1pbmRleCk7XFxuICBtYXgtd2lkdGg6IDQyMHB4O1xcbiAgYm94LXNoYWRvdzogMHB4IDE2cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbn1cXG5cXG4ubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xcbiAgcGFkZGluZzogMTZweDtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtNHhsKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7WjooKT0+bH0pO3ZhciByPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCIpLG89bi5uKHIpLGE9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiKSxpPW4ubihhKSgpKG8oKSk7aS5wdXNoKFtlLmlkLGAudG9vbHRpcC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbn1cblxuLnRvb2x0aXAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnRvb2x0aXAtYXJyb3ctLXRvcCB7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDBcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpO1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbn1cblxuLnRvb2x0aXAtYXJyb3ctLWJvdHRvbSB7XG4gIGJvcmRlci13aWR0aDogMCB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG5cbi50b29sdGlwLWFycm93LS1sZWZ0IHtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuICByaWdodDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuXG4udG9vbHRpcC1hcnJvdy0tcmlnaHQge1xuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCkgMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuXG4udG9vbHRpcC1wb3NpdGlvbmVyIHtcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jc3NcIl0sbmFtZXM6W10sbWFwcGluZ3M6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsNEJBQTRCO0VBQzVCLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsU0FBUztFQUNULG1CQUFtQjtFQUNuQixvQ0FBb0M7RUFDcEMseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0U7MEJBQ3dCO0VBQ3hCLHdDQUF3QztFQUN4QyxTQUFTO0VBQ1QsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0U7MEJBQ3dCO0VBQ3hCLDJDQUEyQztFQUMzQyxNQUFNO0VBQ04sNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0U7MEJBQ3dCO0VBQ3hCLHlDQUF5QztFQUN6QyxRQUFRO0VBQ1IsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0U7NEJBQzBCO0VBQzFCLDBDQUEwQztFQUMxQyxPQUFPO0VBQ1AsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCXCIsc291cmNlc0NvbnRlbnQ6W1wiLnRvb2x0aXAtd3JhcHBlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuXFxuLnRvb2x0aXAge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZzogNnB4IDEycHg7XFxuICBib3JkZXItcmFkaXVzOiA4cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBsaW5lLWhlaWdodDogMS40O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG59XFxuXFxuLnRvb2x0aXAtYXJyb3cge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpO1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnRvb2x0aXAtYXJyb3ctLXRvcCB7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSAwXFxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgYm90dG9tOiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tYm90dG9tIHtcXG4gIGJvcmRlci13aWR0aDogMCB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICB0b3A6IDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tbGVmdCB7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgMCB2YXIoLS1hcnJvdy1zaXplLCA2cHgpXFxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIHJpZ2h0OiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tcmlnaHQge1xcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSAwO1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgbGVmdDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxufVxcblxcbi50b29sdGlwLXBvc2l0aW9uZXIge1xcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2dsb2JhbC5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9PmZ9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSksbD1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L25vcm1hbGl6ZS5jc3NcIikscz1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9kZWZhdWx0LXRoZW1lLmNzc1wiKSxjPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvc3R5bGVzL2RhcmstdGhlbWUuY3NzXCIpLHU9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9zdHlsZXMvY29sb3JzLmNzc1wiKSxkPWkoKShvKCkpO2QuaShsLlopLGQuaShzLlopLGQuaShjLlopLGQuaSh1LlopLGQucHVzaChbZS5pZCxgLyogZGV2dG9vbCBnbG9iYWwgY3NzIHZhcmlhYmxlcyAqL1xuOmhvc3Qge1xuICAvKiB2YXJpYWJsZXMgKi9cbiAgLS10b3Atei1pbmRleDogMjE0NzQ4MzY0Nztcbn1cblxuLyogZ2xvYmFsIHN0eWxlcyAqL1xuKiB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4vKiBnbG9iYWwgcmVzZXQgZm9yIGRyYWdnYWJsZSBjb250ZW50IHNjcm9sbGJhciBzdHlsZXMgKi9cbltkYXRhLW5leHRqcy1zY3JvbGxhYmxlLWNvbnRlbnRdLFxuW2RhdGEtbmV4dGpzLXNjcm9sbGFibGUtY29udGVudF0gKiB7XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxcmVtIDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMXJlbSAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcbiAgfVxufVxuXG4vKiBQbGFjZSBvdmVyZmxvdzogaGlkZGVuIG9uIHRoaXMgc28gd2UgY2FuIGJyZWFrIG91dCBmcm9tIFtkYXRhLW5leHRqcy1kaWFsb2ddICovXG5bZGF0YS1uZXh0anMtc2Nyb2xsYWJsZS1jb250ZW50XSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2dsb2JhbC5jc3NcIl0sbmFtZXM6W10sbWFwcGluZ3M6XCJBQUtBLGlDQUFpQztBQUNqQztFQUNFLGNBQWM7RUFDZCx5QkFBeUI7QUFDM0I7O0FBRUEsa0JBQWtCO0FBQ2xCO0VBQ0UsbUNBQW1DO0FBQ3JDOztBQUVBLHdEQUF3RDtBQUN4RDs7RUFFRTtJQUNFLFVBQVU7SUFDVixXQUFXO0lBQ1gsNEJBQTRCO0lBQzVCLG1CQUFtQjtFQUNyQjs7RUFFQTtJQUNFLGFBQWE7RUFDZjs7RUFFQTtJQUNFLDRCQUE0QjtJQUM1Qiw2Q0FBNkM7RUFDL0M7O0VBRUE7SUFDRSxtQkFBbUI7SUFDbkIsdUNBQXVDO0VBQ3pDO0FBQ0Y7O0FBRUEsaUZBQWlGO0FBQ2pGO0VBQ0UsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtBQUN4QlwiLHNvdXJjZXNDb250ZW50OltcIkBpbXBvcnQgJy4vbm9ybWFsaXplLmNzcyc7XFxuQGltcG9ydCAnLi9zdHlsZXMvZGVmYXVsdC10aGVtZS5jc3MnO1xcbkBpbXBvcnQgJy4vc3R5bGVzL2RhcmstdGhlbWUuY3NzJztcXG5AaW1wb3J0ICcuL3N0eWxlcy9jb2xvcnMuY3NzJztcXG5cXG4vKiBkZXZ0b29sIGdsb2JhbCBjc3MgdmFyaWFibGVzICovXFxuOmhvc3Qge1xcbiAgLyogdmFyaWFibGVzICovXFxuICAtLXRvcC16LWluZGV4OiAyMTQ3NDgzNjQ3O1xcbn1cXG5cXG4vKiBnbG9iYWwgc3R5bGVzICovXFxuKiB7XFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG59XFxuXFxuLyogZ2xvYmFsIHJlc2V0IGZvciBkcmFnZ2FibGUgY29udGVudCBzY3JvbGxiYXIgc3R5bGVzICovXFxuW2RhdGEtbmV4dGpzLXNjcm9sbGFibGUtY29udGVudF0sXFxuW2RhdGEtbmV4dGpzLXNjcm9sbGFibGUtY29udGVudF0gKiB7XFxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XFxuICAgIHdpZHRoOiA2cHg7XFxuICAgIGhlaWdodDogNnB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMXJlbSAxcmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgfVxcblxcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG5cXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDFyZW0gMXJlbTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgfVxcblxcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XFxuICB9XFxufVxcblxcbi8qIFBsYWNlIG92ZXJmbG93OiBoaWRkZW4gb24gdGhpcyBzbyB3ZSBjYW4gYnJlYWsgb3V0IGZyb20gW2RhdGEtbmV4dGpzLWRpYWxvZ10gKi9cXG5bZGF0YS1uZXh0anMtc2Nyb2xsYWJsZS1jb250ZW50XSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG59XFxuXCJdLHNvdXJjZVJvb3Q6XCJcIn1dKTtsZXQgZj1kfSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9tZW51L3BhbmVsLXJvdXRlci5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLyogUGFuZWwgY29udGVudCBwYWRkaW5nIHN0eWxlcyAqL1xuLnBhbmVsLWNvbnRlbnQge1xuICBwYWRkaW5nOiAxNnB4O1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBVc2VyIHByZWZlcmVuY2VzIHdyYXBwZXIgc3R5bGVzICovXG4udXNlci1wcmVmZXJlbmNlcy13cmFwcGVyIHtcbiAgcGFkZGluZzogMjBweDtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogUGFuZWwgcm91dGUgYmFzZSBzdHlsZXMgKi9cbi5wYW5lbC1yb3V0ZSB7XG4gIG9wYWNpdHk6IHZhcigtLXBhbmVsLW9wYWNpdHkpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS1wYW5lbC10cmFuc2l0aW9uKTtcbn1cbmAsXCJcIix7dmVyc2lvbjozLHNvdXJjZXM6W1wid2VicGFjazovLy4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvbWVudS9wYW5lbC1yb3V0ZXIuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQSxpQ0FBaUM7QUFDakM7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjs7QUFFQSxvQ0FBb0M7QUFDcEM7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjs7QUFFQSw0QkFBNEI7QUFDNUI7RUFDRSw2QkFBNkI7RUFDN0IsbUNBQW1DO0FBQ3JDXCIsc291cmNlc0NvbnRlbnQ6W1wiLyogUGFuZWwgY29udGVudCBwYWRkaW5nIHN0eWxlcyAqL1xcbi5wYW5lbC1jb250ZW50IHtcXG4gIHBhZGRpbmc6IDE2cHg7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuXFxuLyogVXNlciBwcmVmZXJlbmNlcyB3cmFwcGVyIHN0eWxlcyAqL1xcbi51c2VyLXByZWZlcmVuY2VzLXdyYXBwZXIge1xcbiAgcGFkZGluZzogMjBweDtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG5cXG4vKiBQYW5lbCByb3V0ZSBiYXNlIHN0eWxlcyAqL1xcbi5wYW5lbC1yb3V0ZSB7XFxuICBvcGFjaXR5OiB2YXIoLS1wYW5lbC1vcGFjaXR5KTtcXG4gIHRyYW5zaXRpb246IHZhcigtLXBhbmVsLXRyYW5zaXRpb24pO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L25vcm1hbGl6ZS5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgOmhvc3Qge1xuICBhbGw6IGluaXRpYWw7XG5cbiAgLyogdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSBpcyBub3QgcmVzZXQgYnkgJ2FsbCcgKi9cbiAgZGlyZWN0aW9uOiBsdHI7XG59XG5cbi8qIVxuICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFRoZSBCb290c3RyYXAgQXV0aG9yc1xuICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICogRm9ya2VkIGZyb20gTm9ybWFsaXplLmNzcywgbGljZW5zZWQgTUlUIChodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpXG4gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbjpob3N0IHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sXG4gICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsICdOb3RvIFNhbnMnLCBzYW5zLXNlcmlmLCAnQXBwbGUgQ29sb3IgRW1vamknLFxuICAgICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnTm90byBDb2xvciBFbW9qaSc7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG46aG9zdDpub3QoYnV0dG9uKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cblt0YWJpbmRleD0nLTEnXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xufVxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbnAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAwO1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xufVxuXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxub2wsXG51bCxcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxub2wgb2wsXG51bCB1bCxcbm9sIHVsLFxudWwgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmRkIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsXG5zdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5hIHtcbiAgY29sb3I6ICMwMDdiZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmE6aG92ZXIge1xuICBjb2xvcjogIzAwNTZiMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbmE6bm90KFtocmVmXSkge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOm5vdChbaHJlZl0pOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxucHJlLFxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJyxcbiAgICAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5wcmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG5zdmcge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbn1cblxudGgge1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbmJ1dHRvbjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbnNlbGVjdCB7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG5idXR0b24sXG5bdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5idXR0b246bm90KDpkaXNhYmxlZCksXG5bdHlwZT0nYnV0dG9uJ106bm90KDpkaXNhYmxlZCksXG5bdHlwZT0ncmVzZXQnXTpub3QoOmRpc2FibGVkKSxcblt0eXBlPSdzdWJtaXQnXTpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9J3JhZGlvJ10sXG5pbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuaW5wdXRbdHlwZT0nZGF0ZSddLFxuaW5wdXRbdHlwZT0ndGltZSddLFxuaW5wdXRbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcbmlucHV0W3R5cGU9J21vbnRoJ10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3g7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbn1cblxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5vdXRwdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbmAsXCJcIix7dmVyc2lvbjozLHNvdXJjZXM6W1wid2VicGFjazovLy4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvbm9ybWFsaXplLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxZQUFZOztFQUVaLGlEQUFpRDtFQUNqRCxjQUFjO0FBQ2hCOztBQUVBOzs7Ozs7RUFNRTtBQUNGOzs7RUFHRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qiw2Q0FBNkM7QUFDL0M7O0FBRUE7Ozs7Ozs7Ozs7RUFVRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsU0FBUztFQUNUOzsyREFFeUQ7RUFDekQsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsd0JBQXdCO0VBQ3hCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixTQUFTO0VBQ1QsaUJBQWlCO0FBQ25COztBQUVBOzs7Ozs7RUFNRSxhQUFhO0VBQ2Isa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtBQUNyQjs7QUFFQTs7RUFFRSwwQkFBMEI7RUFDMUIseUNBQXlDO0VBQ3pDLGlDQUFp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IGFsbDogaW5pdGlhbDtcXG5cXG4gIC8qIHRoZSBkaXJlY3Rpb24gcHJvcGVydHkgaXMgbm90IHJlc2V0IGJ5ICdhbGwnICovXFxuICBkaXJlY3Rpb246IGx0cjtcXG59XFxuXFxuLyohXFxuICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXFxuICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFR3aXR0ZXIsIEluYy5cXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiAqIEZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MsIGxpY2Vuc2VkIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKVxcbiAqL1xcbiosXFxuKjo6YmVmb3JlLFxcbio6OmFmdGVyIHtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbjpob3N0IHtcXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XFxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxufVxcblxcbmFydGljbGUsXFxuYXNpZGUsXFxuZmlnY2FwdGlvbixcXG5maWd1cmUsXFxuZm9vdGVyLFxcbmhlYWRlcixcXG5oZ3JvdXAsXFxubWFpbixcXG5uYXYsXFxuc2VjdGlvbiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuXFxuOmhvc3Qge1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLFxcbiAgICAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgJ05vdG8gU2FucycsIHNhbnMtc2VyaWYsICdBcHBsZSBDb2xvciBFbW9qaScsXFxuICAgICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnTm90byBDb2xvciBFbW9qaSc7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mb250KTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcblxcbjpob3N0Om5vdChidXR0b24pIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxufVxcblxcblt0YWJpbmRleD0nLTEnXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcXG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcXG59XFxuXFxuaHIge1xcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBoZWlnaHQ6IDA7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG59XFxuXFxuaDEsXFxuaDIsXFxuaDMsXFxuaDQsXFxuaDUsXFxuaDYge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuXFxucCB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuXFxuYWJiclt0aXRsZV0sXFxuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgY3Vyc29yOiBoZWxwO1xcbiAgYm9yZGVyLWJvdHRvbTogMDtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xcbiAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xcbn1cXG5cXG5hZGRyZXNzIHtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuXFxub2wsXFxudWwsXFxuZGwge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxufVxcblxcbm9sIG9sLFxcbnVsIHVsLFxcbm9sIHVsLFxcbnVsIG9sIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcblxcbmR0IHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcblxcbmRkIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG5cXG5ibG9ja3F1b3RlIHtcXG4gIG1hcmdpbjogMCAwIDE2cHg7XFxufVxcblxcbmIsXFxuc3Ryb25nIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxufVxcblxcbnNtYWxsIHtcXG4gIGZvbnQtc2l6ZTogODAlO1xcbn1cXG5cXG5zdWIsXFxuc3VwIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGZvbnQtc2l6ZTogNzUlO1xcbiAgbGluZS1oZWlnaHQ6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxufVxcblxcbnN1YiB7XFxuICBib3R0b206IC0wLjI1ZW07XFxufVxcblxcbnN1cCB7XFxuICB0b3A6IC0wLjVlbTtcXG59XFxuXFxuYSB7XFxuICBjb2xvcjogIzAwN2JmZjtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG5hOmhvdmVyIHtcXG4gIGNvbG9yOiAjMDA1NmIzO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxufVxcblxcbmE6bm90KFtocmVmXSkge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxufVxcblxcbmE6bm90KFtocmVmXSk6aG92ZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxufVxcblxcbnByZSxcXG5jb2RlLFxcbmtiZCxcXG5zYW1wIHtcXG4gIGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLFxcbiAgICAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XFxuICBmb250LXNpemU6IDFlbTtcXG59XFxuXFxucHJlIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcblxcbmZpZ3VyZSB7XFxuICBtYXJnaW46IDAgMCAxNnB4O1xcbn1cXG5cXG5pbWcge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcXG59XFxuXFxuc3ZnIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG5cXG50YWJsZSB7XFxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbn1cXG5cXG5jYXB0aW9uIHtcXG4gIHBhZGRpbmctdG9wOiAxMnB4O1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxuICBjb2xvcjogIzZjNzU3ZDtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcXG59XFxuXFxudGgge1xcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcXG59XFxuXFxubGFiZWwge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG5cXG5idXR0b24ge1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG4gIGJvcmRlcjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgYXBwZWFyYW5jZTogbm9uZTtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuXFxuYnV0dG9uOmZvY3VzIHtcXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQ7XFxuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XFxufVxcblxcbmJ1dHRvbjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcblxcbmlucHV0LFxcbmJ1dHRvbixcXG5zZWxlY3QsXFxub3B0Z3JvdXAsXFxudGV4dGFyZWEge1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuXFxuYnV0dG9uLFxcbmlucHV0IHtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG5cXG5idXR0b24sXFxuc2VsZWN0IHtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbn1cXG5cXG5zZWxlY3Qge1xcbiAgd29yZC13cmFwOiBub3JtYWw7XFxufVxcblxcbmJ1dHRvbixcXG5bdHlwZT0nYnV0dG9uJ10sXFxuW3R5cGU9J3Jlc2V0J10sXFxuW3R5cGU9J3N1Ym1pdCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbn1cXG5cXG5idXR0b246bm90KDpkaXNhYmxlZCksXFxuW3R5cGU9J2J1dHRvbiddOm5vdCg6ZGlzYWJsZWQpLFxcblt0eXBlPSdyZXNldCddOm5vdCg6ZGlzYWJsZWQpLFxcblt0eXBlPSdzdWJtaXQnXTpub3QoOmRpc2FibGVkKSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcXG5bdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXFxuW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzLWlubmVyIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXItc3R5bGU6IG5vbmU7XFxufVxcblxcbmlucHV0W3R5cGU9J3JhZGlvJ10sXFxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuaW5wdXRbdHlwZT0nZGF0ZSddLFxcbmlucHV0W3R5cGU9J3RpbWUnXSxcXG5pbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxcbmlucHV0W3R5cGU9J21vbnRoJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xcbn1cXG5cXG50ZXh0YXJlYSB7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIHJlc2l6ZTogdmVydGljYWw7XFxufVxcblxcbmZpZWxkc2V0IHtcXG4gIG1pbi13aWR0aDogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IDA7XFxuICBib3JkZXI6IDA7XFxufVxcblxcbmxlZ2VuZCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogMDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbn1cXG5cXG5wcm9ncmVzcyB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxufVxcblxcblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5cXG5bdHlwZT0nc2VhcmNoJ10ge1xcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcblxcblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcblxcbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgZm9udDogaW5oZXJpdDtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbn1cXG5cXG5vdXRwdXQge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG5cXG5zdW1tYXJ5IHtcXG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxudGVtcGxhdGUge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuXFxuW2hpZGRlbl0ge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3BhbmVsL2R5bmFtaWMtcGFuZWwuY3NzXCI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtaOigpPT5sfSk7dmFyIHI9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIiksbz1uLm4ociksYT1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpLGk9bi5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsYC8qIFBhbmVsIGNvbnRhaW5lciBiYXNlIHN0eWxlcyB3aXRoIGR5bmFtaWMgcG9zaXRpb25pbmcgYW5kIHNpemluZyAqL1xuLmR5bmFtaWMtcGFuZWwtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ2O1xuICBvdXRsaW5lOiBub25lO1xuICB0b3A6IHZhcigtLXBhbmVsLXRvcCwgYXV0byk7XG4gIGJvdHRvbTogdmFyKC0tcGFuZWwtYm90dG9tLCBhdXRvKTtcbiAgbGVmdDogdmFyKC0tcGFuZWwtbGVmdCwgYXV0byk7XG4gIHJpZ2h0OiB2YXIoLS1wYW5lbC1yaWdodCwgYXV0byk7XG4gIHdpZHRoOiB2YXIoLS1wYW5lbC13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0tcGFuZWwtaGVpZ2h0KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1wYW5lbC1taW4td2lkdGgpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1wYW5lbC1taW4taGVpZ2h0KTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1wYW5lbC1tYXgtd2lkdGgpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1wYW5lbC1tYXgtaGVpZ2h0KTtcbn1cblxuLyogUGFuZWwgY29udGVudCBjb250YWluZXIgc3R5bGVzICovXG4ucGFuZWwtY29udGVudC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLyogRHJhZ2dhYmxlIGNvbnRlbnQgYXJlYSBzdHlsZXMgKi9cbi5kcmFnZ2FibGUtY29udGVudCB7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9wYW5lbC9keW5hbWljLXBhbmVsLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUEsb0VBQW9FO0FBQ3BFO0VBQ0UsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQyw2QkFBNkI7RUFDN0IsK0JBQStCO0VBQy9CLHlCQUF5QjtFQUN6QiwyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLG1DQUFtQztFQUNuQyxpQ0FBaUM7RUFDakMsbUNBQW1DO0FBQ3JDOztBQUVBLG1DQUFtQztBQUNuQztFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLDZDQUE2QztFQUM3QyxnQ0FBZ0M7RUFDaEMsdUNBQXVDO0VBQ3ZDLGFBQWE7RUFDYixzQkFBc0I7QUFDeEI7O0FBRUEsa0NBQWtDO0FBQ2xDO0VBQ0UsT0FBTztFQUNQLGNBQWM7QUFDaEJcIixzb3VyY2VzQ29udGVudDpbXCIvKiBQYW5lbCBjb250YWluZXIgYmFzZSBzdHlsZXMgd2l0aCBkeW5hbWljIHBvc2l0aW9uaW5nIGFuZCBzaXppbmcgKi9cXG4uZHluYW1pYy1wYW5lbC1jb250YWluZXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgei1pbmRleDogMjE0NzQ4MzY0NjtcXG4gIG91dGxpbmU6IG5vbmU7XFxuICB0b3A6IHZhcigtLXBhbmVsLXRvcCwgYXV0byk7XFxuICBib3R0b206IHZhcigtLXBhbmVsLWJvdHRvbSwgYXV0byk7XFxuICBsZWZ0OiB2YXIoLS1wYW5lbC1sZWZ0LCBhdXRvKTtcXG4gIHJpZ2h0OiB2YXIoLS1wYW5lbC1yaWdodCwgYXV0byk7XFxuICB3aWR0aDogdmFyKC0tcGFuZWwtd2lkdGgpO1xcbiAgaGVpZ2h0OiB2YXIoLS1wYW5lbC1oZWlnaHQpO1xcbiAgbWluLXdpZHRoOiB2YXIoLS1wYW5lbC1taW4td2lkdGgpO1xcbiAgbWluLWhlaWdodDogdmFyKC0tcGFuZWwtbWluLWhlaWdodCk7XFxuICBtYXgtd2lkdGg6IHZhcigtLXBhbmVsLW1heC13aWR0aCk7XFxuICBtYXgtaGVpZ2h0OiB2YXIoLS1wYW5lbC1tYXgtaGVpZ2h0KTtcXG59XFxuXFxuLyogUGFuZWwgY29udGVudCBjb250YWluZXIgc3R5bGVzICovXFxuLnBhbmVsLWNvbnRlbnQtY29udGFpbmVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuXFxuLyogRHJhZ2dhYmxlIGNvbnRlbnQgYXJlYSBzdHlsZXMgKi9cXG4uZHJhZ2dhYmxlLWNvbnRlbnQge1xcbiAgZmxleDogMTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9jb2xvcnMuY3NzXCI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtaOigpPT5sfSk7dmFyIHI9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIiksbz1uLm4ociksYT1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpLGk9bi5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsYDpob3N0IHtcbiAgLyogXG4gICAqIENBVVRJT046IFRISVMgSVMgQSBXT1JLQVJPVU5EIVxuICAgKiBGb3Igbm93LCB3ZSB1c2UgQGJhYmVsL2NvZGUtZnJhbWUgdG8gcGFyc2UgdGhlIGNvZGUgZnJhbWUgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBvcHRpb24gdG8gY2hhbmdlIHRoZSBjb2xvci5cbiAgICogeC1yZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJlbC9iYWJlbC9ibG9iL2VmYTUyMzI0ZmY4MzViNzk0YzQ4MDgwZjE0ODc3YjZjYWYzMmNkMTUvcGFja2FnZXMvYmFiZWwtY29kZS1mcmFtZS9zcmMvZGVmcy50cyNMNDAtTDU0XG4gICAqIFNvLCB3ZSBkbyBhIHdvcmthcm91bmQgbWFwcGluZyB0byBjaGFuZ2UgdGhlIGNvbG9yIG1hdGNoaW5nIHRoZSB0aGVtZS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGluIEBiYWJlbC9jb2RlLWZyYW1lLCB0aGUgXCJrZXl3b3JkXCIgaXMgbWFwcGVkIHRvIEFOU0kgXCJjeWFuXCIuXG4gICAqIFdlIHdhbnQgdGhlIFwia2V5d29yZFwiIHRvIHVzZSB0aGUgXCJzeW50YXgta2V5d29yZFwiIGNvbG9yIGluIHRoZSB0aGVtZS5cbiAgICogU28sIHdlIG1hcCB0aGUgXCJjeWFuXCIgdG8gdGhlIFwic3ludGF4LWtleXdvcmRcIiBpbiB0aGUgdGhlbWUuXG4gICAqL1xuICAvKiBjeWFuOiBrZXl3b3JkICovXG4gIC0tY29sb3ItYW5zaS1jeWFuOiB2YXIoLS1jb2xvci1zeW50YXgta2V5d29yZCk7XG4gIC8qIHllbGxvdzogY2FwaXRhbGl6ZWQsIGpzeElkZW50aWZpZXIsIHB1bmN0dWF0aW9uICovXG4gIC0tY29sb3ItYW5zaS15ZWxsb3c6IHZhcigtLWNvbG9yLXN5bnRheC1mdW5jdGlvbik7XG4gIC8qIG1hZ2VudGE6IG51bWJlciwgcmVnZXggKi9cbiAgLS1jb2xvci1hbnNpLW1hZ2VudGE6IHZhcigtLWNvbG9yLXN5bnRheC1rZXl3b3JkKTtcbiAgLyogZ3JlZW46IHN0cmluZyAqL1xuICAtLWNvbG9yLWFuc2ktZ3JlZW46IHZhcigtLWNvbG9yLXN5bnRheC1zdHJpbmcpO1xuICAvKiBncmF5IChicmlnaHQgYmxhY2spOiBjb21tZW50LCBndXR0ZXIgKi9cbiAgLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjazogdmFyKC0tY29sb3Itc3ludGF4LWNvbW1lbnQpO1xuXG4gIC8qIEFuc2kgLSBUZW1wb3JhcnkgKi9cbiAgLS1jb2xvci1hbnNpLXNlbGVjdGlvbjogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0zMDApO1xuICAtLWNvbG9yLWFuc2ktYmc6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbiAgLS1jb2xvci1hbnNpLWZnOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuXG4gIC0tY29sb3ItYW5zaS13aGl0ZTogdmFyKC0tY29sb3ItZ3JheS03MDApO1xuICAtLWNvbG9yLWFuc2ktYmxhY2s6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbiAgLS1jb2xvci1hbnNpLWJsdWU6IHZhcigtLWNvbG9yLWJsdWUtNzAwKTtcbiAgLS1jb2xvci1hbnNpLXJlZDogdmFyKC0tY29sb3ItcmVkLTcwMCk7XG4gIC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGU6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XG4gIC0tY29sb3ItYW5zaS1icmlnaHQtYmx1ZTogdmFyKC0tY29sb3ItYmx1ZS04MDApO1xuICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWN5YW46IHZhcigtLWNvbG9yLWJsdWUtODAwKTtcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1ncmVlbjogdmFyKC0tY29sb3ItZ3JlZW4tODAwKTtcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1tYWdlbnRhOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XG4gIC0tY29sb3ItYW5zaS1icmlnaHQtcmVkOiB2YXIoLS1jb2xvci1yZWQtODAwKTtcbiAgLS1jb2xvci1hbnNpLWJyaWdodC15ZWxsb3c6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XG5cbiAgLyogQmFja2dyb3VuZCBMaWdodCAqL1xuICAtLWNvbG9yLWJhY2tncm91bmQtMTAwOiAjZmZmZmZmO1xuICAtLWNvbG9yLWJhY2tncm91bmQtMjAwOiAjZmFmYWZhO1xuXG4gIC8qIFN5bnRheCBMaWdodCAqL1xuICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjNTQ1NDU0O1xuICAtLWNvbG9yLXN5bnRheC1jb25zdGFudDogIzE3MTcxNztcbiAgLS1jb2xvci1zeW50YXgtZnVuY3Rpb246ICMwMDU0YWQ7XG4gIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNhNTE4NTA7XG4gIC0tY29sb3Itc3ludGF4LWxpbms6ICMwNjYwNTY7XG4gIC0tY29sb3Itc3ludGF4LXBhcmFtZXRlcjogIzhmM2UwMDtcbiAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICMxNzE3MTc7XG4gIC0tY29sb3Itc3ludGF4LXN0cmluZzogIzAzNjE1NztcbiAgLS1jb2xvci1zeW50YXgtc3RyaW5nLWV4cHJlc3Npb246ICMwNjYwNTY7XG5cbiAgLyogR3JheSBTY2FsZSBMaWdodCAqL1xuICAtLWNvbG9yLWdyYXktMTAwOiAjZjJmMmYyO1xuICAtLWNvbG9yLWdyYXktMjAwOiAjZWJlYmViO1xuICAtLWNvbG9yLWdyYXktMzAwOiAjZTZlNmU2O1xuICAtLWNvbG9yLWdyYXktNDAwOiAjZWFlYWVhO1xuICAtLWNvbG9yLWdyYXktNTAwOiAjYzljOWM5O1xuICAtLWNvbG9yLWdyYXktNjAwOiAjYThhOGE4O1xuICAtLWNvbG9yLWdyYXktNzAwOiAjOGY4ZjhmO1xuICAtLWNvbG9yLWdyYXktODAwOiAjN2Q3ZDdkO1xuICAtLWNvbG9yLWdyYXktOTAwOiAjNjY2NjY2O1xuICAtLWNvbG9yLWdyYXktMTAwMDogIzE3MTcxNztcblxuICAvKiBHcmF5IEFscGhhIFNjYWxlIExpZ2h0ICovXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0xMDA6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS0yMDA6IHJnYmEoMCwgMCwgMCwgMC4wODEpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtMzAwOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS00MDA6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS01MDA6IHJnYmEoMCwgMCwgMCwgMC4yMSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS02MDA6IHJnYmEoMCwgMCwgMCwgMC4zNCk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS03MDA6IHJnYmEoMCwgMCwgMCwgMC40NCk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS04MDA6IHJnYmEoMCwgMCwgMCwgMC41MSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS05MDA6IHJnYmEoMCwgMCwgMCwgMC42MDUpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwMDogcmdiYSgwLCAwLCAwLCAwLjkxKTtcblxuICAvKiBCbHVlIFNjYWxlIExpZ2h0ICovXG4gIC0tY29sb3ItYmx1ZS0xMDA6ICNmMGY3ZmY7XG4gIC0tY29sb3ItYmx1ZS0yMDA6ICNlZGY2ZmY7XG4gIC0tY29sb3ItYmx1ZS0zMDA6ICNlMWYwZmY7XG4gIC0tY29sb3ItYmx1ZS00MDA6ICNjZGU3ZmY7XG4gIC0tY29sb3ItYmx1ZS01MDA6ICM5OWNlZmY7XG4gIC0tY29sb3ItYmx1ZS02MDA6ICM1MmFlZmY7XG4gIC0tY29sb3ItYmx1ZS03MDA6ICMwMDcwZjM7XG4gIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XG4gIC0tY29sb3ItYmx1ZS05MDA6ICMwMDY3ZDY7XG4gIC0tY29sb3ItYmx1ZS0xMDAwOiAjMDAyNWFkO1xuXG4gIC8qIFJlZCBTY2FsZSBMaWdodCAqL1xuICAtLWNvbG9yLXJlZC0xMDA6ICNmZmYwZjA7XG4gIC0tY29sb3ItcmVkLTIwMDogI2ZmZWJlYjtcbiAgLS1jb2xvci1yZWQtMzAwOiAjZmZlNWU1O1xuICAtLWNvbG9yLXJlZC00MDA6ICNmZGQ4ZDg7XG4gIC0tY29sb3ItcmVkLTUwMDogI2Y4YmFiYTtcbiAgLS1jb2xvci1yZWQtNjAwOiAjZjg3Mjc0O1xuICAtLWNvbG9yLXJlZC03MDA6ICNlNTQ4NGQ7XG4gIC0tY29sb3ItcmVkLTgwMDogI2RhMzAzNjtcbiAgLS1jb2xvci1yZWQtOTAwOiAjY2EyYTMwO1xuICAtLWNvbG9yLXJlZC0xMDAwOiAjMzgxMzE2O1xuXG4gIC8qIEFtYmVyIFNjYWxlIExpZ2h0ICovXG4gIC0tY29sb3ItYW1iZXItMTAwOiAjZmZmNmU1O1xuICAtLWNvbG9yLWFtYmVyLTIwMDogI2ZmZjRkNTtcbiAgLS1jb2xvci1hbWJlci0zMDA6ICNmZWYwY2Q7XG4gIC0tY29sb3ItYW1iZXItNDAwOiAjZmZkZGJmO1xuICAtLWNvbG9yLWFtYmVyLTUwMDogI2ZmYzk2YjtcbiAgLS1jb2xvci1hbWJlci02MDA6ICNmNWIwNDc7XG4gIC0tY29sb3ItYW1iZXItNzAwOiAjZmZiMjI0O1xuICAtLWNvbG9yLWFtYmVyLTgwMDogI2ZmOTkwYTtcbiAgLS1jb2xvci1hbWJlci05MDA6ICNhMzUyMDA7XG4gIC0tY29sb3ItYW1iZXItMTAwMDogIzRlMjAwOTtcblxuICAvKiBHcmVlbiBTY2FsZSBMaWdodCAqL1xuICAtLWNvbG9yLWdyZWVuLTEwMDogI2VmZmJlZjtcbiAgLS1jb2xvci1ncmVlbi0yMDA6ICNlYWZhZWE7XG4gIC0tY29sb3ItZ3JlZW4tMzAwOiAjZGNmNmRjO1xuICAtLWNvbG9yLWdyZWVuLTQwMDogI2M4ZjFjOTtcbiAgLS1jb2xvci1ncmVlbi01MDA6ICM5OWU1OWY7XG4gIC0tY29sb3ItZ3JlZW4tNjAwOiAjNmNkYTc2O1xuICAtLWNvbG9yLWdyZWVuLTcwMDogIzQ2YTc1ODtcbiAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XG4gIC0tY29sb3ItZ3JlZW4tOTAwOiAjMjk3YzNiO1xuICAtLWNvbG9yLWdyZWVuLTEwMDA6ICMxODMxMWU7XG5cbiAgLyogVHVyYm9wYWNrIExpZ2h0IC0gVGVtcG9yYXJ5ICovXG4gIC0tY29sb3ItdHVyYm9wYWNrLXRleHQtcmVkOiAjZmYxZTU2O1xuICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWU6ICMwMDk2ZmY7XG4gIC0tY29sb3ItdHVyYm9wYWNrLWJvcmRlci1yZWQ6ICNmMGFkYmU7XG4gIC0tY29sb3ItdHVyYm9wYWNrLWJvcmRlci1ibHVlOiAjYWRjY2VhO1xuICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLXJlZDogI2ZmZjdmOTtcbiAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1ibHVlOiAjZjZmYmZmO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9zdHlsZXMvY29sb3JzLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRTs7Ozs7Ozs7O0lBU0U7RUFDRixrQkFBa0I7RUFDbEIsOENBQThDO0VBQzlDLG9EQUFvRDtFQUNwRCxpREFBaUQ7RUFDakQsMkJBQTJCO0VBQzNCLGlEQUFpRDtFQUNqRCxrQkFBa0I7RUFDbEIsOENBQThDO0VBQzlDLHlDQUF5QztFQUN6QyxzREFBc0Q7O0VBRXRELHFCQUFxQjtFQUNyQixtREFBbUQ7RUFDbkQsNENBQTRDO0VBQzVDLHVDQUF1Qzs7RUFFdkMseUNBQXlDO0VBQ3pDLHlDQUF5QztFQUN6Qyx3Q0FBd0M7RUFDeEMsc0NBQXNDO0VBQ3RDLGlEQUFpRDtFQUNqRCwrQ0FBK0M7RUFDL0MsK0NBQStDO0VBQy9DLGlEQUFpRDtFQUNqRCxrREFBa0Q7RUFDbEQsNkNBQTZDO0VBQzdDLGtEQUFrRDs7RUFFbEQscUJBQXFCO0VBQ3JCLCtCQUErQjtFQUMvQiwrQkFBK0I7O0VBRS9CLGlCQUFpQjtFQUNqQiwrQkFBK0I7RUFDL0IsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQywrQkFBK0I7RUFDL0IsNEJBQTRCO0VBQzVCLGlDQUFpQztFQUNqQyxtQ0FBbUM7RUFDbkMsOEJBQThCO0VBQzlCLHlDQUF5Qzs7RUFFekMscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLDBCQUEwQjs7RUFFMUIsMkJBQTJCO0VBQzNCLDJDQUEyQztFQUMzQyw0Q0FBNEM7RUFDNUMsMENBQTBDO0VBQzFDLDJDQUEyQztFQUMzQywyQ0FBMkM7RUFDM0MsMkNBQTJDO0VBQzNDLDJDQUEyQztFQUMzQywyQ0FBMkM7RUFDM0MsNENBQTRDO0VBQzVDLDRDQUE0Qzs7RUFFNUMscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLDBCQUEwQjs7RUFFMUIsb0JBQW9CO0VBQ3BCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsd0JBQXdCO0VBQ3hCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsd0JBQXdCO0VBQ3hCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsd0JBQXdCO0VBQ3hCLHlCQUF5Qjs7RUFFekIsc0JBQXNCO0VBQ3RCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDJCQUEyQjs7RUFFM0Isc0JBQXNCO0VBQ3RCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDJCQUEyQjs7RUFFM0IsZ0NBQWdDO0VBQ2hDLG1DQUFtQztFQUNuQyxvQ0FBb0M7RUFDcEMscUNBQXFDO0VBQ3JDLHNDQUFzQztFQUN0Qyx5Q0FBeUM7RUFDekMsMENBQTBDO0FBQzVDXCIsc291cmNlc0NvbnRlbnQ6Wyc6aG9zdCB7XFxuICAvKiBcXG4gICAqIENBVVRJT046IFRISVMgSVMgQSBXT1JLQVJPVU5EIVxcbiAgICogRm9yIG5vdywgd2UgdXNlIEBiYWJlbC9jb2RlLWZyYW1lIHRvIHBhcnNlIHRoZSBjb2RlIGZyYW1lIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgb3B0aW9uIHRvIGNoYW5nZSB0aGUgY29sb3IuXFxuICAgKiB4LXJlZjogaHR0cHM6Ly9naXRodWIuY29tL2JhYmVsL2JhYmVsL2Jsb2IvZWZhNTIzMjRmZjgzNWI3OTRjNDgwODBmMTQ4NzdiNmNhZjMyY2QxNS9wYWNrYWdlcy9iYWJlbC1jb2RlLWZyYW1lL3NyYy9kZWZzLnRzI0w0MC1MNTRcXG4gICAqIFNvLCB3ZSBkbyBhIHdvcmthcm91bmQgbWFwcGluZyB0byBjaGFuZ2UgdGhlIGNvbG9yIG1hdGNoaW5nIHRoZSB0aGVtZS5cXG4gICAqXFxuICAgKiBGb3IgZXhhbXBsZSwgaW4gQGJhYmVsL2NvZGUtZnJhbWUsIHRoZSBcImtleXdvcmRcIiBpcyBtYXBwZWQgdG8gQU5TSSBcImN5YW5cIi5cXG4gICAqIFdlIHdhbnQgdGhlIFwia2V5d29yZFwiIHRvIHVzZSB0aGUgXCJzeW50YXgta2V5d29yZFwiIGNvbG9yIGluIHRoZSB0aGVtZS5cXG4gICAqIFNvLCB3ZSBtYXAgdGhlIFwiY3lhblwiIHRvIHRoZSBcInN5bnRheC1rZXl3b3JkXCIgaW4gdGhlIHRoZW1lLlxcbiAgICovXFxuICAvKiBjeWFuOiBrZXl3b3JkICovXFxuICAtLWNvbG9yLWFuc2ktY3lhbjogdmFyKC0tY29sb3Itc3ludGF4LWtleXdvcmQpO1xcbiAgLyogeWVsbG93OiBjYXBpdGFsaXplZCwganN4SWRlbnRpZmllciwgcHVuY3R1YXRpb24gKi9cXG4gIC0tY29sb3ItYW5zaS15ZWxsb3c6IHZhcigtLWNvbG9yLXN5bnRheC1mdW5jdGlvbik7XFxuICAvKiBtYWdlbnRhOiBudW1iZXIsIHJlZ2V4ICovXFxuICAtLWNvbG9yLWFuc2ktbWFnZW50YTogdmFyKC0tY29sb3Itc3ludGF4LWtleXdvcmQpO1xcbiAgLyogZ3JlZW46IHN0cmluZyAqL1xcbiAgLS1jb2xvci1hbnNpLWdyZWVuOiB2YXIoLS1jb2xvci1zeW50YXgtc3RyaW5nKTtcXG4gIC8qIGdyYXkgKGJyaWdodCBibGFjayk6IGNvbW1lbnQsIGd1dHRlciAqL1xcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjazogdmFyKC0tY29sb3Itc3ludGF4LWNvbW1lbnQpO1xcblxcbiAgLyogQW5zaSAtIFRlbXBvcmFyeSAqL1xcbiAgLS1jb2xvci1hbnNpLXNlbGVjdGlvbjogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0zMDApO1xcbiAgLS1jb2xvci1hbnNpLWJnOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICAtLWNvbG9yLWFuc2ktZmc6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuXFxuICAtLWNvbG9yLWFuc2ktd2hpdGU6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcXG4gIC0tY29sb3ItYW5zaS1ibGFjazogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xcbiAgLS1jb2xvci1hbnNpLWJsdWU6IHZhcigtLWNvbG9yLWJsdWUtNzAwKTtcXG4gIC0tY29sb3ItYW5zaS1yZWQ6IHZhcigtLWNvbG9yLXJlZC03MDApO1xcbiAgLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZTogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIC0tY29sb3ItYW5zaS1icmlnaHQtYmx1ZTogdmFyKC0tY29sb3ItYmx1ZS04MDApO1xcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1jeWFuOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWdyZWVuOiB2YXIoLS1jb2xvci1ncmVlbi04MDApO1xcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1tYWdlbnRhOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXJlZDogdmFyKC0tY29sb3ItcmVkLTgwMCk7XFxuICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXllbGxvdzogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcXG5cXG4gIC8qIEJhY2tncm91bmQgTGlnaHQgKi9cXG4gIC0tY29sb3ItYmFja2dyb3VuZC0xMDA6ICNmZmZmZmY7XFxuICAtLWNvbG9yLWJhY2tncm91bmQtMjAwOiAjZmFmYWZhO1xcblxcbiAgLyogU3ludGF4IExpZ2h0ICovXFxuICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjNTQ1NDU0O1xcbiAgLS1jb2xvci1zeW50YXgtY29uc3RhbnQ6ICMxNzE3MTc7XFxuICAtLWNvbG9yLXN5bnRheC1mdW5jdGlvbjogIzAwNTRhZDtcXG4gIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNhNTE4NTA7XFxuICAtLWNvbG9yLXN5bnRheC1saW5rOiAjMDY2MDU2O1xcbiAgLS1jb2xvci1zeW50YXgtcGFyYW1ldGVyOiAjOGYzZTAwO1xcbiAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICMxNzE3MTc7XFxuICAtLWNvbG9yLXN5bnRheC1zdHJpbmc6ICMwMzYxNTc7XFxuICAtLWNvbG9yLXN5bnRheC1zdHJpbmctZXhwcmVzc2lvbjogIzA2NjA1NjtcXG5cXG4gIC8qIEdyYXkgU2NhbGUgTGlnaHQgKi9cXG4gIC0tY29sb3ItZ3JheS0xMDA6ICNmMmYyZjI7XFxuICAtLWNvbG9yLWdyYXktMjAwOiAjZWJlYmViO1xcbiAgLS1jb2xvci1ncmF5LTMwMDogI2U2ZTZlNjtcXG4gIC0tY29sb3ItZ3JheS00MDA6ICNlYWVhZWE7XFxuICAtLWNvbG9yLWdyYXktNTAwOiAjYzljOWM5O1xcbiAgLS1jb2xvci1ncmF5LTYwMDogI2E4YThhODtcXG4gIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XFxuICAtLWNvbG9yLWdyYXktODAwOiAjN2Q3ZDdkO1xcbiAgLS1jb2xvci1ncmF5LTkwMDogIzY2NjY2NjtcXG4gIC0tY29sb3ItZ3JheS0xMDAwOiAjMTcxNzE3O1xcblxcbiAgLyogR3JheSBBbHBoYSBTY2FsZSBMaWdodCAqL1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0yMDA6IHJnYmEoMCwgMCwgMCwgMC4wODEpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTMwMDogcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTQwMDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS01MDA6IHJnYmEoMCwgMCwgMCwgMC4yMSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtNjAwOiByZ2JhKDAsIDAsIDAsIDAuMzQpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTcwMDogcmdiYSgwLCAwLCAwLCAwLjQ0KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS04MDA6IHJnYmEoMCwgMCwgMCwgMC41MSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtOTAwOiByZ2JhKDAsIDAsIDAsIDAuNjA1KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0xMDAwOiByZ2JhKDAsIDAsIDAsIDAuOTEpO1xcblxcbiAgLyogQmx1ZSBTY2FsZSBMaWdodCAqL1xcbiAgLS1jb2xvci1ibHVlLTEwMDogI2YwZjdmZjtcXG4gIC0tY29sb3ItYmx1ZS0yMDA6ICNlZGY2ZmY7XFxuICAtLWNvbG9yLWJsdWUtMzAwOiAjZTFmMGZmO1xcbiAgLS1jb2xvci1ibHVlLTQwMDogI2NkZTdmZjtcXG4gIC0tY29sb3ItYmx1ZS01MDA6ICM5OWNlZmY7XFxuICAtLWNvbG9yLWJsdWUtNjAwOiAjNTJhZWZmO1xcbiAgLS1jb2xvci1ibHVlLTcwMDogIzAwNzBmMztcXG4gIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XFxuICAtLWNvbG9yLWJsdWUtOTAwOiAjMDA2N2Q2O1xcbiAgLS1jb2xvci1ibHVlLTEwMDA6ICMwMDI1YWQ7XFxuXFxuICAvKiBSZWQgU2NhbGUgTGlnaHQgKi9cXG4gIC0tY29sb3ItcmVkLTEwMDogI2ZmZjBmMDtcXG4gIC0tY29sb3ItcmVkLTIwMDogI2ZmZWJlYjtcXG4gIC0tY29sb3ItcmVkLTMwMDogI2ZmZTVlNTtcXG4gIC0tY29sb3ItcmVkLTQwMDogI2ZkZDhkODtcXG4gIC0tY29sb3ItcmVkLTUwMDogI2Y4YmFiYTtcXG4gIC0tY29sb3ItcmVkLTYwMDogI2Y4NzI3NDtcXG4gIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcXG4gIC0tY29sb3ItcmVkLTgwMDogI2RhMzAzNjtcXG4gIC0tY29sb3ItcmVkLTkwMDogI2NhMmEzMDtcXG4gIC0tY29sb3ItcmVkLTEwMDA6ICMzODEzMTY7XFxuXFxuICAvKiBBbWJlciBTY2FsZSBMaWdodCAqL1xcbiAgLS1jb2xvci1hbWJlci0xMDA6ICNmZmY2ZTU7XFxuICAtLWNvbG9yLWFtYmVyLTIwMDogI2ZmZjRkNTtcXG4gIC0tY29sb3ItYW1iZXItMzAwOiAjZmVmMGNkO1xcbiAgLS1jb2xvci1hbWJlci00MDA6ICNmZmRkYmY7XFxuICAtLWNvbG9yLWFtYmVyLTUwMDogI2ZmYzk2YjtcXG4gIC0tY29sb3ItYW1iZXItNjAwOiAjZjViMDQ3O1xcbiAgLS1jb2xvci1hbWJlci03MDA6ICNmZmIyMjQ7XFxuICAtLWNvbG9yLWFtYmVyLTgwMDogI2ZmOTkwYTtcXG4gIC0tY29sb3ItYW1iZXItOTAwOiAjYTM1MjAwO1xcbiAgLS1jb2xvci1hbWJlci0xMDAwOiAjNGUyMDA5O1xcblxcbiAgLyogR3JlZW4gU2NhbGUgTGlnaHQgKi9cXG4gIC0tY29sb3ItZ3JlZW4tMTAwOiAjZWZmYmVmO1xcbiAgLS1jb2xvci1ncmVlbi0yMDA6ICNlYWZhZWE7XFxuICAtLWNvbG9yLWdyZWVuLTMwMDogI2RjZjZkYztcXG4gIC0tY29sb3ItZ3JlZW4tNDAwOiAjYzhmMWM5O1xcbiAgLS1jb2xvci1ncmVlbi01MDA6ICM5OWU1OWY7XFxuICAtLWNvbG9yLWdyZWVuLTYwMDogIzZjZGE3NjtcXG4gIC0tY29sb3ItZ3JlZW4tNzAwOiAjNDZhNzU4O1xcbiAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XFxuICAtLWNvbG9yLWdyZWVuLTkwMDogIzI5N2MzYjtcXG4gIC0tY29sb3ItZ3JlZW4tMTAwMDogIzE4MzExZTtcXG5cXG4gIC8qIFR1cmJvcGFjayBMaWdodCAtIFRlbXBvcmFyeSAqL1xcbiAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjFlNTY7XFxuICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWU6ICMwMDk2ZmY7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItcmVkOiAjZjBhZGJlO1xcbiAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICNhZGNjZWE7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLXJlZDogI2ZmZjdmOTtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtYmx1ZTogI2Y2ZmJmZjtcXG59XFxuJ10sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9kYXJrLXRoZW1lLmNzc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7WjooKT0+bH0pO3ZhciByPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCIpLG89bi5uKHIpLGE9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiKSxpPW4ubihhKSgpKG8oKSk7aS5wdXNoKFtlLmlkLGA6aG9zdCguZGFyaykge1xuICAtLWNvbG9yLWZvbnQ6IHdoaXRlO1xuICAtLWNvbG9yLWJhY2tkcm9wOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIC0tY29sb3ItYm9yZGVyLXNoYWRvdzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XG5cbiAgLS1jb2xvci10aXRsZS1jb2xvcjogI2ZhZmFmYTtcbiAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcblxuICAvKiBCYWNrZ3JvdW5kIERhcmsgKi9cbiAgLS1jb2xvci1iYWNrZ3JvdW5kLTEwMDogIzBhMGEwYTtcbiAgLS1jb2xvci1iYWNrZ3JvdW5kLTIwMDogIzAwMDAwMDtcblxuICAvKiBTeW50YXggRGFyayAqL1xuICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjYTBhMGEwO1xuICAtLWNvbG9yLXN5bnRheC1jb25zdGFudDogI2VkZWRlZDtcbiAgLS1jb2xvci1zeW50YXgtZnVuY3Rpb246ICM1MmE5ZmY7XG4gIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNmNzZlOTk7XG4gIC0tY29sb3Itc3ludGF4LWxpbms6ICMwYWM1YjI7XG4gIC0tY29sb3Itc3ludGF4LXBhcmFtZXRlcjogI2YxYTEwZDtcbiAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICNlZGVkZWQ7XG4gIC0tY29sb3Itc3ludGF4LXN0cmluZzogIzBhYzViMjtcbiAgLS1jb2xvci1zeW50YXgtc3RyaW5nLWV4cHJlc3Npb246ICMwYWM1YjI7XG5cbiAgLyogR3JheSBTY2FsZSBEYXJrICovXG4gIC0tY29sb3ItZ3JheS0xMDA6ICMxYTFhMWE7XG4gIC0tY29sb3ItZ3JheS0yMDA6ICMxZjFmMWY7XG4gIC0tY29sb3ItZ3JheS0zMDA6ICMyOTI5Mjk7XG4gIC0tY29sb3ItZ3JheS00MDA6ICMyZTJlMmU7XG4gIC0tY29sb3ItZ3JheS01MDA6ICM0NTQ1NDU7XG4gIC0tY29sb3ItZ3JheS02MDA6ICM4Nzg3ODc7XG4gIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XG4gIC0tY29sb3ItZ3JheS04MDA6ICM3ZDdkN2Q7XG4gIC0tY29sb3ItZ3JheS05MDA6ICNhMGEwYTA7XG4gIC0tY29sb3ItZ3JheS0xMDAwOiAjZWRlZGVkO1xuXG4gIC8qIEdyYXkgQWxwaGEgU2NhbGUgRGFyayAqL1xuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDY2KTtcbiAgLS1jb2xvci1ncmF5LWFscGhhLTIwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4Nyk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS0zMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMjUpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtNDAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcbiAgLS1jb2xvci1ncmF5LWFscGhhLTUwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIzOSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS02MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41MDYpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtNzAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtODAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDcpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtOTAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjEpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyMyk7XG5cbiAgLyogQmx1ZSBTY2FsZSBEYXJrICovXG4gIC0tY29sb3ItYmx1ZS0xMDA6ICMwZjFiMmQ7XG4gIC0tY29sb3ItYmx1ZS0yMDA6ICMxMDI0M2U7XG4gIC0tY29sb3ItYmx1ZS0zMDA6ICMwZjMwNTg7XG4gIC0tY29sb3ItYmx1ZS00MDA6ICMwZDM4Njg7XG4gIC0tY29sb3ItYmx1ZS01MDA6ICMwYTQ0ODE7XG4gIC0tY29sb3ItYmx1ZS02MDA6ICMwMDkxZmY7XG4gIC0tY29sb3ItYmx1ZS03MDA6ICMwMDcwZjM7XG4gIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XG4gIC0tY29sb3ItYmx1ZS05MDA6ICM1MmE5ZmY7XG4gIC0tY29sb3ItYmx1ZS0xMDAwOiAjZWFmNmZmO1xuXG4gIC8qIFJlZCBTY2FsZSBEYXJrICovXG4gIC0tY29sb3ItcmVkLTEwMDogIzJhMTMxNDtcbiAgLS1jb2xvci1yZWQtMjAwOiAjM2QxNzE5O1xuICAtLWNvbG9yLXJlZC0zMDA6ICM1NTFhMWU7XG4gIC0tY29sb3ItcmVkLTQwMDogIzY3MWUyMjtcbiAgLS1jb2xvci1yZWQtNTAwOiAjODIyMDI1O1xuICAtLWNvbG9yLXJlZC02MDA6ICNlNTQ4NGQ7XG4gIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcbiAgLS1jb2xvci1yZWQtODAwOiAjZGEzMDM2O1xuICAtLWNvbG9yLXJlZC05MDA6ICNmZjYzNjk7XG4gIC0tY29sb3ItcmVkLTEwMDA6ICNmZmVjZWU7XG5cbiAgLyogQW1iZXIgU2NhbGUgRGFyayAqL1xuICAtLWNvbG9yLWFtYmVyLTEwMDogIzI3MTcwMDtcbiAgLS1jb2xvci1hbWJlci0yMDA6ICMzNDFjMDA7XG4gIC0tY29sb3ItYW1iZXItMzAwOiAjNGEyOTAwO1xuICAtLWNvbG9yLWFtYmVyLTQwMDogIzU3MzMwMDtcbiAgLS1jb2xvci1hbWJlci01MDA6ICM2OTNmMDU7XG4gIC0tY29sb3ItYW1iZXItNjAwOiAjZTc5YzEzO1xuICAtLWNvbG9yLWFtYmVyLTcwMDogI2ZmYjIyNDtcbiAgLS1jb2xvci1hbWJlci04MDA6ICNmZjk5MGE7XG4gIC0tY29sb3ItYW1iZXItOTAwOiAjZjFhMTBkO1xuICAtLWNvbG9yLWFtYmVyLTEwMDA6ICNmZWYzZGQ7XG5cbiAgLyogR3JlZW4gU2NhbGUgRGFyayAqL1xuICAtLWNvbG9yLWdyZWVuLTEwMDogIzBiMjIxMTtcbiAgLS1jb2xvci1ncmVlbi0yMDA6ICMwZjJjMTc7XG4gIC0tY29sb3ItZ3JlZW4tMzAwOiAjMTEzNTFiO1xuICAtLWNvbG9yLWdyZWVuLTQwMDogIzBjNDYxYjtcbiAgLS1jb2xvci1ncmVlbi01MDA6ICMxMjY0Mjc7XG4gIC0tY29sb3ItZ3JlZW4tNjAwOiAjMWE5MzM4O1xuICAtLWNvbG9yLWdyZWVuLTcwMDogIzQ2YTc1ODtcbiAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XG4gIC0tY29sb3ItZ3JlZW4tOTAwOiAjNjNjMTc0O1xuICAtLWNvbG9yLWdyZWVuLTEwMDA6ICNlNWZiZWI7XG5cbiAgLyogVHVyYm9wYWNrIERhcmsgLSBUZW1wb3JhcnkgKi9cbiAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjZkOTI7XG4gIC0tY29sb3ItdHVyYm9wYWNrLXRleHQtYmx1ZTogIzQ1YjJmZjtcbiAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLXJlZDogIzZlMjkzYjtcbiAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICMyODRmODA7XG4gIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtcmVkOiAjMjUwZDEyO1xuICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLWJsdWU6ICMwYTE3MjM7XG59XG5cbkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgOmhvc3QoOm5vdCgubGlnaHQpKSB7XG4gICAgLS1jb2xvci1mb250OiB3aGl0ZTtcbiAgICAtLWNvbG9yLWJhY2tkcm9wOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcblxuICAgIC0tY29sb3ItdGl0bGUtY29sb3I6ICNmYWZhZmE7XG4gICAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcblxuICAgIC8qIEJhY2tncm91bmQgRGFyayAqL1xuICAgIC0tY29sb3ItYmFja2dyb3VuZC0xMDA6ICMwYTBhMGE7XG4gICAgLS1jb2xvci1iYWNrZ3JvdW5kLTIwMDogIzAwMDAwMDtcblxuICAgIC8qIFN5bnRheCBEYXJrICovXG4gICAgLS1jb2xvci1zeW50YXgtY29tbWVudDogI2EwYTBhMDtcbiAgICAtLWNvbG9yLXN5bnRheC1jb25zdGFudDogI2VkZWRlZDtcbiAgICAtLWNvbG9yLXN5bnRheC1mdW5jdGlvbjogIzUyYTlmZjtcbiAgICAtLWNvbG9yLXN5bnRheC1rZXl3b3JkOiAjZjc2ZTk5O1xuICAgIC0tY29sb3Itc3ludGF4LWxpbms6ICMwYWM1YjI7XG4gICAgLS1jb2xvci1zeW50YXgtcGFyYW1ldGVyOiAjZjFhMTBkO1xuICAgIC0tY29sb3Itc3ludGF4LXB1bmN0dWF0aW9uOiAjZWRlZGVkO1xuICAgIC0tY29sb3Itc3ludGF4LXN0cmluZzogIzBhYzViMjtcbiAgICAtLWNvbG9yLXN5bnRheC1zdHJpbmctZXhwcmVzc2lvbjogIzBhYzViMjtcblxuICAgIC8qIEdyYXkgU2NhbGUgRGFyayAqL1xuICAgIC0tY29sb3ItZ3JheS0xMDA6ICMxYTFhMWE7XG4gICAgLS1jb2xvci1ncmF5LTIwMDogIzFmMWYxZjtcbiAgICAtLWNvbG9yLWdyYXktMzAwOiAjMjkyOTI5O1xuICAgIC0tY29sb3ItZ3JheS00MDA6ICMyZTJlMmU7XG4gICAgLS1jb2xvci1ncmF5LTUwMDogIzQ1NDU0NTtcbiAgICAtLWNvbG9yLWdyYXktNjAwOiAjODc4Nzg3O1xuICAgIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XG4gICAgLS1jb2xvci1ncmF5LTgwMDogIzdkN2Q3ZDtcbiAgICAtLWNvbG9yLWdyYXktOTAwOiAjYTBhMGEwO1xuICAgIC0tY29sb3ItZ3JheS0xMDAwOiAjZWRlZGVkO1xuXG4gICAgLyogR3JheSBBbHBoYSBTY2FsZSBEYXJrICovXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2Nik7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTIwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4Nyk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTMwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyNSk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTQwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTUwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIzOSk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTYwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUwNik7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTcwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTtcbiAgICAtLWNvbG9yLWdyYXktYWxwaGEtODAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDcpO1xuICAgIC0tY29sb3ItZ3JheS1hbHBoYS05MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42MSk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MjMpO1xuXG4gICAgLyogQmx1ZSBTY2FsZSBEYXJrICovXG4gICAgLS1jb2xvci1ibHVlLTEwMDogIzBmMWIyZDtcbiAgICAtLWNvbG9yLWJsdWUtMjAwOiAjMTAyNDNlO1xuICAgIC0tY29sb3ItYmx1ZS0zMDA6ICMwZjMwNTg7XG4gICAgLS1jb2xvci1ibHVlLTQwMDogIzBkMzg2ODtcbiAgICAtLWNvbG9yLWJsdWUtNTAwOiAjMGE0NDgxO1xuICAgIC0tY29sb3ItYmx1ZS02MDA6ICMwMDkxZmY7XG4gICAgLS1jb2xvci1ibHVlLTcwMDogIzAwNzBmMztcbiAgICAtLWNvbG9yLWJsdWUtODAwOiAjMDA2MGQxO1xuICAgIC0tY29sb3ItYmx1ZS05MDA6ICM1MmE5ZmY7XG4gICAgLS1jb2xvci1ibHVlLTEwMDA6ICNlYWY2ZmY7XG5cbiAgICAvKiBSZWQgU2NhbGUgRGFyayAqL1xuICAgIC0tY29sb3ItcmVkLTEwMDogIzJhMTMxNDtcbiAgICAtLWNvbG9yLXJlZC0yMDA6ICMzZDE3MTk7XG4gICAgLS1jb2xvci1yZWQtMzAwOiAjNTUxYTFlO1xuICAgIC0tY29sb3ItcmVkLTQwMDogIzY3MWUyMjtcbiAgICAtLWNvbG9yLXJlZC01MDA6ICM4MjIwMjU7XG4gICAgLS1jb2xvci1yZWQtNjAwOiAjZTU0ODRkO1xuICAgIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcbiAgICAtLWNvbG9yLXJlZC04MDA6ICNkYTMwMzY7XG4gICAgLS1jb2xvci1yZWQtOTAwOiAjZmY2MzY5O1xuICAgIC0tY29sb3ItcmVkLTEwMDA6ICNmZmVjZWU7XG5cbiAgICAvKiBBbWJlciBTY2FsZSBEYXJrICovXG4gICAgLS1jb2xvci1hbWJlci0xMDA6ICMyNzE3MDA7XG4gICAgLS1jb2xvci1hbWJlci0yMDA6ICMzNDFjMDA7XG4gICAgLS1jb2xvci1hbWJlci0zMDA6ICM0YTI5MDA7XG4gICAgLS1jb2xvci1hbWJlci00MDA6ICM1NzMzMDA7XG4gICAgLS1jb2xvci1hbWJlci01MDA6ICM2OTNmMDU7XG4gICAgLS1jb2xvci1hbWJlci02MDA6ICNlNzljMTM7XG4gICAgLS1jb2xvci1hbWJlci03MDA6ICNmZmIyMjQ7XG4gICAgLS1jb2xvci1hbWJlci04MDA6ICNmZjk5MGE7XG4gICAgLS1jb2xvci1hbWJlci05MDA6ICNmMWExMGQ7XG4gICAgLS1jb2xvci1hbWJlci0xMDAwOiAjZmVmM2RkO1xuXG4gICAgLyogR3JlZW4gU2NhbGUgRGFyayAqL1xuICAgIC0tY29sb3ItZ3JlZW4tMTAwOiAjMGIyMjExO1xuICAgIC0tY29sb3ItZ3JlZW4tMjAwOiAjMGYyYzE3O1xuICAgIC0tY29sb3ItZ3JlZW4tMzAwOiAjMTEzNTFiO1xuICAgIC0tY29sb3ItZ3JlZW4tNDAwOiAjMGM0NjFiO1xuICAgIC0tY29sb3ItZ3JlZW4tNTAwOiAjMTI2NDI3O1xuICAgIC0tY29sb3ItZ3JlZW4tNjAwOiAjMWE5MzM4O1xuICAgIC0tY29sb3ItZ3JlZW4tNzAwOiAjNDZhNzU4O1xuICAgIC0tY29sb3ItZ3JlZW4tODAwOiAjMzg4ZTRhO1xuICAgIC0tY29sb3ItZ3JlZW4tOTAwOiAjNjNjMTc0O1xuICAgIC0tY29sb3ItZ3JlZW4tMTAwMDogI2U1ZmJlYjtcblxuICAgIC8qIFR1cmJvcGFjayBEYXJrIC0gVGVtcG9yYXJ5ICovXG4gICAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjZkOTI7XG4gICAgLS1jb2xvci10dXJib3BhY2stdGV4dC1ibHVlOiAjNDViMmZmO1xuICAgIC0tY29sb3ItdHVyYm9wYWNrLWJvcmRlci1yZWQ6ICM2ZTI5M2I7XG4gICAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICMyODRmODA7XG4gICAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1yZWQ6ICMyNTBkMTI7XG4gICAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1ibHVlOiAjMGExNzIzO1xuICB9XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9kYXJrLXRoZW1lLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxtQkFBbUI7RUFDbkIsb0NBQW9DO0VBQ3BDLGlEQUFpRDs7RUFFakQsNEJBQTRCO0VBQzVCLDRCQUE0Qjs7RUFFNUIsb0JBQW9CO0VBQ3BCLCtCQUErQjtFQUMvQiwrQkFBK0I7O0VBRS9CLGdCQUFnQjtFQUNoQiwrQkFBK0I7RUFDL0IsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQywrQkFBK0I7RUFDL0IsNEJBQTRCO0VBQzVCLGlDQUFpQztFQUNqQyxtQ0FBbUM7RUFDbkMsOEJBQThCO0VBQzlCLHlDQUF5Qzs7RUFFekMsb0JBQW9CO0VBQ3BCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLDBCQUEwQjs7RUFFMUIsMEJBQTBCO0VBQzFC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QkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDJCQUEyQjs7SUFFM0IsK0JBQStCO0lBQy9CLG1DQUFtQztJQUNuQyxvQ0FBb0M7SUFDcEMscUNBQXFDO0lBQ3JDLHNDQUFzQztJQUN0Qyx5Q0FBeUM7SUFDekMsMENBQTBDO0VBQzVDO0FBQ0ZcIixzb3VyY2VzQ29udGVudDpbXCI6aG9zdCguZGFyaykge1xcbiAgLS1jb2xvci1mb250OiB3aGl0ZTtcXG4gIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMCwgMCwgMCwgMC44KTtcXG4gIC0tY29sb3ItYm9yZGVyLXNoYWRvdzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XFxuXFxuICAtLWNvbG9yLXRpdGxlLWNvbG9yOiAjZmFmYWZhO1xcbiAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcXG5cXG4gIC8qIEJhY2tncm91bmQgRGFyayAqL1xcbiAgLS1jb2xvci1iYWNrZ3JvdW5kLTEwMDogIzBhMGEwYTtcXG4gIC0tY29sb3ItYmFja2dyb3VuZC0yMDA6ICMwMDAwMDA7XFxuXFxuICAvKiBTeW50YXggRGFyayAqL1xcbiAgLS1jb2xvci1zeW50YXgtY29tbWVudDogI2EwYTBhMDtcXG4gIC0tY29sb3Itc3ludGF4LWNvbnN0YW50OiAjZWRlZGVkO1xcbiAgLS1jb2xvci1zeW50YXgtZnVuY3Rpb246ICM1MmE5ZmY7XFxuICAtLWNvbG9yLXN5bnRheC1rZXl3b3JkOiAjZjc2ZTk5O1xcbiAgLS1jb2xvci1zeW50YXgtbGluazogIzBhYzViMjtcXG4gIC0tY29sb3Itc3ludGF4LXBhcmFtZXRlcjogI2YxYTEwZDtcXG4gIC0tY29sb3Itc3ludGF4LXB1bmN0dWF0aW9uOiAjZWRlZGVkO1xcbiAgLS1jb2xvci1zeW50YXgtc3RyaW5nOiAjMGFjNWIyO1xcbiAgLS1jb2xvci1zeW50YXgtc3RyaW5nLWV4cHJlc3Npb246ICMwYWM1YjI7XFxuXFxuICAvKiBHcmF5IFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItZ3JheS0xMDA6ICMxYTFhMWE7XFxuICAtLWNvbG9yLWdyYXktMjAwOiAjMWYxZjFmO1xcbiAgLS1jb2xvci1ncmF5LTMwMDogIzI5MjkyOTtcXG4gIC0tY29sb3ItZ3JheS00MDA6ICMyZTJlMmU7XFxuICAtLWNvbG9yLWdyYXktNTAwOiAjNDU0NTQ1O1xcbiAgLS1jb2xvci1ncmF5LTYwMDogIzg3ODc4NztcXG4gIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XFxuICAtLWNvbG9yLWdyYXktODAwOiAjN2Q3ZDdkO1xcbiAgLS1jb2xvci1ncmF5LTkwMDogI2EwYTBhMDtcXG4gIC0tY29sb3ItZ3JheS0xMDAwOiAjZWRlZGVkO1xcblxcbiAgLyogR3JheSBBbHBoYSBTY2FsZSBEYXJrICovXFxuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDY2KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0yMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wODcpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTMwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyNSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtNDAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS01MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMzkpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTYwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUwNik7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtNzAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTgwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ3KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS05MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42MSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyMyk7XFxuXFxuICAvKiBCbHVlIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItYmx1ZS0xMDA6ICMwZjFiMmQ7XFxuICAtLWNvbG9yLWJsdWUtMjAwOiAjMTAyNDNlO1xcbiAgLS1jb2xvci1ibHVlLTMwMDogIzBmMzA1ODtcXG4gIC0tY29sb3ItYmx1ZS00MDA6ICMwZDM4Njg7XFxuICAtLWNvbG9yLWJsdWUtNTAwOiAjMGE0NDgxO1xcbiAgLS1jb2xvci1ibHVlLTYwMDogIzAwOTFmZjtcXG4gIC0tY29sb3ItYmx1ZS03MDA6ICMwMDcwZjM7XFxuICAtLWNvbG9yLWJsdWUtODAwOiAjMDA2MGQxO1xcbiAgLS1jb2xvci1ibHVlLTkwMDogIzUyYTlmZjtcXG4gIC0tY29sb3ItYmx1ZS0xMDAwOiAjZWFmNmZmO1xcblxcbiAgLyogUmVkIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItcmVkLTEwMDogIzJhMTMxNDtcXG4gIC0tY29sb3ItcmVkLTIwMDogIzNkMTcxOTtcXG4gIC0tY29sb3ItcmVkLTMwMDogIzU1MWExZTtcXG4gIC0tY29sb3ItcmVkLTQwMDogIzY3MWUyMjtcXG4gIC0tY29sb3ItcmVkLTUwMDogIzgyMjAyNTtcXG4gIC0tY29sb3ItcmVkLTYwMDogI2U1NDg0ZDtcXG4gIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcXG4gIC0tY29sb3ItcmVkLTgwMDogI2RhMzAzNjtcXG4gIC0tY29sb3ItcmVkLTkwMDogI2ZmNjM2OTtcXG4gIC0tY29sb3ItcmVkLTEwMDA6ICNmZmVjZWU7XFxuXFxuICAvKiBBbWJlciBTY2FsZSBEYXJrICovXFxuICAtLWNvbG9yLWFtYmVyLTEwMDogIzI3MTcwMDtcXG4gIC0tY29sb3ItYW1iZXItMjAwOiAjMzQxYzAwO1xcbiAgLS1jb2xvci1hbWJlci0zMDA6ICM0YTI5MDA7XFxuICAtLWNvbG9yLWFtYmVyLTQwMDogIzU3MzMwMDtcXG4gIC0tY29sb3ItYW1iZXItNTAwOiAjNjkzZjA1O1xcbiAgLS1jb2xvci1hbWJlci02MDA6ICNlNzljMTM7XFxuICAtLWNvbG9yLWFtYmVyLTcwMDogI2ZmYjIyNDtcXG4gIC0tY29sb3ItYW1iZXItODAwOiAjZmY5OTBhO1xcbiAgLS1jb2xvci1hbWJlci05MDA6ICNmMWExMGQ7XFxuICAtLWNvbG9yLWFtYmVyLTEwMDA6ICNmZWYzZGQ7XFxuXFxuICAvKiBHcmVlbiBTY2FsZSBEYXJrICovXFxuICAtLWNvbG9yLWdyZWVuLTEwMDogIzBiMjIxMTtcXG4gIC0tY29sb3ItZ3JlZW4tMjAwOiAjMGYyYzE3O1xcbiAgLS1jb2xvci1ncmVlbi0zMDA6ICMxMTM1MWI7XFxuICAtLWNvbG9yLWdyZWVuLTQwMDogIzBjNDYxYjtcXG4gIC0tY29sb3ItZ3JlZW4tNTAwOiAjMTI2NDI3O1xcbiAgLS1jb2xvci1ncmVlbi02MDA6ICMxYTkzMzg7XFxuICAtLWNvbG9yLWdyZWVuLTcwMDogIzQ2YTc1ODtcXG4gIC0tY29sb3ItZ3JlZW4tODAwOiAjMzg4ZTRhO1xcbiAgLS1jb2xvci1ncmVlbi05MDA6ICM2M2MxNzQ7XFxuICAtLWNvbG9yLWdyZWVuLTEwMDA6ICNlNWZiZWI7XFxuXFxuICAvKiBUdXJib3BhY2sgRGFyayAtIFRlbXBvcmFyeSAqL1xcbiAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjZkOTI7XFxuICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWU6ICM0NWIyZmY7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItcmVkOiAjNmUyOTNiO1xcbiAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICMyODRmODA7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLXJlZDogIzI1MGQxMjtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtYmx1ZTogIzBhMTcyMztcXG59XFxuXFxuQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xcbiAgOmhvc3QoOm5vdCgubGlnaHQpKSB7XFxuICAgIC0tY29sb3ItZm9udDogd2hpdGU7XFxuICAgIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMCwgMCwgMCwgMC44KTtcXG4gICAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcXG5cXG4gICAgLS1jb2xvci10aXRsZS1jb2xvcjogI2ZhZmFmYTtcXG4gICAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcXG5cXG4gICAgLyogQmFja2dyb3VuZCBEYXJrICovXFxuICAgIC0tY29sb3ItYmFja2dyb3VuZC0xMDA6ICMwYTBhMGE7XFxuICAgIC0tY29sb3ItYmFja2dyb3VuZC0yMDA6ICMwMDAwMDA7XFxuXFxuICAgIC8qIFN5bnRheCBEYXJrICovXFxuICAgIC0tY29sb3Itc3ludGF4LWNvbW1lbnQ6ICNhMGEwYTA7XFxuICAgIC0tY29sb3Itc3ludGF4LWNvbnN0YW50OiAjZWRlZGVkO1xcbiAgICAtLWNvbG9yLXN5bnRheC1mdW5jdGlvbjogIzUyYTlmZjtcXG4gICAgLS1jb2xvci1zeW50YXgta2V5d29yZDogI2Y3NmU5OTtcXG4gICAgLS1jb2xvci1zeW50YXgtbGluazogIzBhYzViMjtcXG4gICAgLS1jb2xvci1zeW50YXgtcGFyYW1ldGVyOiAjZjFhMTBkO1xcbiAgICAtLWNvbG9yLXN5bnRheC1wdW5jdHVhdGlvbjogI2VkZWRlZDtcXG4gICAgLS1jb2xvci1zeW50YXgtc3RyaW5nOiAjMGFjNWIyO1xcbiAgICAtLWNvbG9yLXN5bnRheC1zdHJpbmctZXhwcmVzc2lvbjogIzBhYzViMjtcXG5cXG4gICAgLyogR3JheSBTY2FsZSBEYXJrICovXFxuICAgIC0tY29sb3ItZ3JheS0xMDA6ICMxYTFhMWE7XFxuICAgIC0tY29sb3ItZ3JheS0yMDA6ICMxZjFmMWY7XFxuICAgIC0tY29sb3ItZ3JheS0zMDA6ICMyOTI5Mjk7XFxuICAgIC0tY29sb3ItZ3JheS00MDA6ICMyZTJlMmU7XFxuICAgIC0tY29sb3ItZ3JheS01MDA6ICM0NTQ1NDU7XFxuICAgIC0tY29sb3ItZ3JheS02MDA6ICM4Nzg3ODc7XFxuICAgIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XFxuICAgIC0tY29sb3ItZ3JheS04MDA6ICM3ZDdkN2Q7XFxuICAgIC0tY29sb3ItZ3JheS05MDA6ICNhMGEwYTA7XFxuICAgIC0tY29sb3ItZ3JheS0xMDAwOiAjZWRlZGVkO1xcblxcbiAgICAvKiBHcmF5IEFscGhhIFNjYWxlIERhcmsgKi9cXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2Nik7XFxuICAgIC0tY29sb3ItZ3JheS1hbHBoYS0yMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wODcpO1xcbiAgICAtLWNvbG9yLWdyYXktYWxwaGEtMzAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTI1KTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTQwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XFxuICAgIC0tY29sb3ItZ3JheS1hbHBoYS01MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMzkpO1xcbiAgICAtLWNvbG9yLWdyYXktYWxwaGEtNjAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTA2KTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTcwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTgwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ3KTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTkwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYxKTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MjMpO1xcblxcbiAgICAvKiBCbHVlIFNjYWxlIERhcmsgKi9cXG4gICAgLS1jb2xvci1ibHVlLTEwMDogIzBmMWIyZDtcXG4gICAgLS1jb2xvci1ibHVlLTIwMDogIzEwMjQzZTtcXG4gICAgLS1jb2xvci1ibHVlLTMwMDogIzBmMzA1ODtcXG4gICAgLS1jb2xvci1ibHVlLTQwMDogIzBkMzg2ODtcXG4gICAgLS1jb2xvci1ibHVlLTUwMDogIzBhNDQ4MTtcXG4gICAgLS1jb2xvci1ibHVlLTYwMDogIzAwOTFmZjtcXG4gICAgLS1jb2xvci1ibHVlLTcwMDogIzAwNzBmMztcXG4gICAgLS1jb2xvci1ibHVlLTgwMDogIzAwNjBkMTtcXG4gICAgLS1jb2xvci1ibHVlLTkwMDogIzUyYTlmZjtcXG4gICAgLS1jb2xvci1ibHVlLTEwMDA6ICNlYWY2ZmY7XFxuXFxuICAgIC8qIFJlZCBTY2FsZSBEYXJrICovXFxuICAgIC0tY29sb3ItcmVkLTEwMDogIzJhMTMxNDtcXG4gICAgLS1jb2xvci1yZWQtMjAwOiAjM2QxNzE5O1xcbiAgICAtLWNvbG9yLXJlZC0zMDA6ICM1NTFhMWU7XFxuICAgIC0tY29sb3ItcmVkLTQwMDogIzY3MWUyMjtcXG4gICAgLS1jb2xvci1yZWQtNTAwOiAjODIyMDI1O1xcbiAgICAtLWNvbG9yLXJlZC02MDA6ICNlNTQ4NGQ7XFxuICAgIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcXG4gICAgLS1jb2xvci1yZWQtODAwOiAjZGEzMDM2O1xcbiAgICAtLWNvbG9yLXJlZC05MDA6ICNmZjYzNjk7XFxuICAgIC0tY29sb3ItcmVkLTEwMDA6ICNmZmVjZWU7XFxuXFxuICAgIC8qIEFtYmVyIFNjYWxlIERhcmsgKi9cXG4gICAgLS1jb2xvci1hbWJlci0xMDA6ICMyNzE3MDA7XFxuICAgIC0tY29sb3ItYW1iZXItMjAwOiAjMzQxYzAwO1xcbiAgICAtLWNvbG9yLWFtYmVyLTMwMDogIzRhMjkwMDtcXG4gICAgLS1jb2xvci1hbWJlci00MDA6ICM1NzMzMDA7XFxuICAgIC0tY29sb3ItYW1iZXItNTAwOiAjNjkzZjA1O1xcbiAgICAtLWNvbG9yLWFtYmVyLTYwMDogI2U3OWMxMztcXG4gICAgLS1jb2xvci1hbWJlci03MDA6ICNmZmIyMjQ7XFxuICAgIC0tY29sb3ItYW1iZXItODAwOiAjZmY5OTBhO1xcbiAgICAtLWNvbG9yLWFtYmVyLTkwMDogI2YxYTEwZDtcXG4gICAgLS1jb2xvci1hbWJlci0xMDAwOiAjZmVmM2RkO1xcblxcbiAgICAvKiBHcmVlbiBTY2FsZSBEYXJrICovXFxuICAgIC0tY29sb3ItZ3JlZW4tMTAwOiAjMGIyMjExO1xcbiAgICAtLWNvbG9yLWdyZWVuLTIwMDogIzBmMmMxNztcXG4gICAgLS1jb2xvci1ncmVlbi0zMDA6ICMxMTM1MWI7XFxuICAgIC0tY29sb3ItZ3JlZW4tNDAwOiAjMGM0NjFiO1xcbiAgICAtLWNvbG9yLWdyZWVuLTUwMDogIzEyNjQyNztcXG4gICAgLS1jb2xvci1ncmVlbi02MDA6ICMxYTkzMzg7XFxuICAgIC0tY29sb3ItZ3JlZW4tNzAwOiAjNDZhNzU4O1xcbiAgICAtLWNvbG9yLWdyZWVuLTgwMDogIzM4OGU0YTtcXG4gICAgLS1jb2xvci1ncmVlbi05MDA6ICM2M2MxNzQ7XFxuICAgIC0tY29sb3ItZ3JlZW4tMTAwMDogI2U1ZmJlYjtcXG5cXG4gICAgLyogVHVyYm9wYWNrIERhcmsgLSBUZW1wb3JhcnkgKi9cXG4gICAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjZkOTI7XFxuICAgIC0tY29sb3ItdHVyYm9wYWNrLXRleHQtYmx1ZTogIzQ1YjJmZjtcXG4gICAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLXJlZDogIzZlMjkzYjtcXG4gICAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICMyODRmODA7XFxuICAgIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtcmVkOiAjMjUwZDEyO1xcbiAgICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLWJsdWU6ICMwYTE3MjM7XFxuICB9XFxufVxcblwiXSxzb3VyY2VSb290OlwiXCJ9XSk7bGV0IGw9aX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvc3R5bGVzL2RlZmF1bHQtdGhlbWUuY3NzXCI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtaOigpPT5sfSk7dmFyIHI9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIiksbz1uLm4ociksYT1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpLGk9bi5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsYDpob3N0IHtcbiAgLyogXG4gICAqIEFsdGhvdWdoIHRoZSBzdHlsZSBhcHBsaWVkIHRvIHRoZSBzaGFkb3cgaG9zdCBpcyBpc29sYXRlZCxcbiAgICogdGhlIGVsZW1lbnQgdGhhdCBhdHRhY2hlZCB0aGUgc2hhZG93IGhvc3QgKGkuZS4gXCJuZXh0anMtcG9ydGFsXCIpXG4gICAqIGlzIHN0aWxsIGFmZmVjdGVkIGJ5IHRoZSBwYXJlbnQncyBzdHlsZSAoZS5nLiBcImJvZHlcIikuIFRoaXMgbWF5XG4gICAqIG9jY3VyIHN0eWxlIGNvbmZsaWN0cyBsaWtlIFwiZGlzcGxheTogZmxleFwiLCB3aXRoIG90aGVyIGNoaWxkcmVuXG4gICAqIGVsZW1lbnRzIHRoZXJlZm9yZSBnaXZlIHRoZSBzaGFkb3cgaG9zdCBhbiBhYnNvbHV0ZSBwb3NpdGlvbi5cbiAgICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAtLWNvbG9yLWZvbnQ6ICM3NTc1NzU7XG4gIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC44KTtcbiAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMTQ1KTtcblxuICAtLWNvbG9yLXRpdGxlLWNvbG9yOiAjMWYxZjFmO1xuICAtLWNvbG9yLXN0YWNrLW5vdGVzOiAjNzc3O1xuXG4gIC0tY29sb3ItYWNjZW50cy0xOiAjODA4MDgwO1xuICAtLWNvbG9yLWFjY2VudHMtMjogIzIyMjIyMjtcbiAgLS1jb2xvci1hY2NlbnRzLTM6ICM0MDQwNDA7XG5cbiAgLS1mb250LXN0YWNrLW1vbm9zcGFjZTogJ19fbmV4dGpzLUdlaXN0IE1vbm8nLCAnR2Vpc3QgTW9ubycsICdTRk1vbm8tUmVndWxhcicsXG4gICAgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlO1xuICAtLWZvbnQtc3RhY2stc2FuczogJ19fbmV4dGpzLUdlaXN0JywgJ0dlaXN0JywgLWFwcGxlLXN5c3RlbSwgJ1NvdXJjZSBTYW5zIFBybycsXG4gICAgc2Fucy1zZXJpZjtcblxuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcbiAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTtcblxuICAvKiBUT0RPOiBSZW1vdmUgcmVwbGFjZWQgb25lcy4gKi9cbiAgLS1zaGFkb3ctc206IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpO1xuICAtLXNoYWRvdzogMCAxcHggM3B4IDAgcmdiKDAgMCAwIC8gMC4xKSwgMCAxcHggMnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMXB4IHJnYigwIDAgMCAvIDAuMSksIDAgMnB4IDRweCAtMnB4IHJnYigwIDAgMCAvIDAuMSk7XG4gIC0tc2hhZG93LWxnOiAwIDEwcHggMTVweCAtM3B4IHJnYigwIDAgMCAvIDAuMSksXG4gICAgMCA0cHggNnB4IC00cHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1zaGFkb3cteGw6IDAgMjBweCAyNXB4IC01cHggcmdiKDAgMCAwIC8gMC4xKSxcbiAgICAwIDhweCAxMHB4IC02cHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1zaGFkb3ctMnhsOiAwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjI1KTtcbiAgLS1zaGFkb3ctaW5uZXI6IGluc2V0IDAgMnB4IDRweCAwIHJnYigwIDAgMCAvIDAuMDUpO1xuICAtLXNoYWRvdy1ub25lOiAwIDAgIzAwMDA7XG5cbiAgLS1zaGFkb3ctc21hbGw6IDBweCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIC0tc2hhZG93LW1lbnU6IDBweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wMiksXG4gICAgMHB4IDRweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMDQpLCAwcHggMTZweCAyNHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcblxuICAtLWZvY3VzLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XG4gIC0tZm9jdXMtcmluZzogMnB4IHNvbGlkIHZhcigtLWZvY3VzLWNvbG9yKTtcblxuICAtLXRpbWluZy1zd2lmdDogY3ViaWMtYmV6aWVyKDAuMjMsIDAuODgsIDAuMjYsIDAuOTIpO1xuICAtLXRpbWluZy1vdmVybGF5OiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjEpO1xuICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgLS10aW1pbmctYm91bmNlOiBsaW5lYXIoMCAwJSwgMC4wMDU4NzEgMSUsIDAuMDIyMDU4IDIlLCAwLjA0NjYxMiAzJSwgMC4wNzc4MjMgNCUsIDAuMTE0MTk5IDUlLCAwLjE1NDQ0MSA2JSwgMC4xOTc0MzEgNy4wMDAwMDAwMDAwMDAwMDElLCAwLjI0MjIwOCA4JSwgMC4yODc5NTkgOSUsIDAuMzMzOTk1IDEwJSwgMC4zNzk3NDMgMTElLCAwLjQyNDczMiAxMiUsIDAuNDY4NTggMTMlLCAwLjUxMDk4MiAxNC4wMDAwMDAwMDAwMDAwMDIlLCAwLjU1MTcwMiAxNSUsIDAuNTkwNTY0IDE2JSwgMC42Mjc0NDUgMTclLCAwLjY2MjI2MSAxOCUsIDAuNjk0OTcxIDE5JSwgMC43MjU1NjEgMjAlLCAwLjc1NDA0NyAyMSUsIDAuNzgwNDYyIDIyJSwgMC44MDQ4NjEgMjMlLCAwLjgyNzMxIDI0JSwgMC44NDc4ODggMjUlLCAwLjg2NjY3OSAyNiUsIDAuODgzNzc1IDI3JSwgMC44OTkyNzIgMjguMDAwMDAwMDAwMDAwMDA0JSwgMC45MTMyNjcgMjguOTk5OTk5OTk5OTk5OTk2JSwgMC45MjU4NTYgMzAlLCAwLjkzNzEzNyAzMSUsIDAuOTQ3MjA1IDMyJSwgMC45NTYxNTMgMzMlLCAwLjk2NDA3IDM0JSwgMC45NzEwNDMgMzUlLCAwLjk3NzE1MyAzNiUsIDAuOTgyNDc5IDM3JSwgMC45ODcwOTQgMzglLCAwLjk5MTA2NiAzOSUsIDAuOTk0NDYyIDQwJSwgMC45OTczMzkgNDElLCAwLjk5OTc1NSA0MiUsIDEuMDAxNzYxIDQzJSwgMS4wMDM0MDQgNDQlLCAxLjAwNDcyNyA0NSUsIDEuMDA1NzcgNDYlLCAxLjAwNjU2OSA0NyUsIDEuMDA3MTU3IDQ4JSwgMS4wMDc1NjMgNDklLCAxLjAwNzgxMyA1MCUsIDEuMDA3OTMxIDUxJSwgMS4wMDc5MzkgNTIlLCAxLjAwNzg1NSA1MyUsIDEuMDA3Njk3IDU0JSwgMS4wMDc0NzcgNTUuMDAwMDAwMDAwMDAwMDElLCAxLjAwNzIxIDU2LjAwMDAwMDAwMDAwMDAxJSwgMS4wMDY5MDcgNTYuOTk5OTk5OTk5OTk5OTklLCAxLjAwNjU3NiA1Ny45OTk5OTk5OTk5OTk5OSUsIDEuMDA2MjI4IDU5JSwgMS4wMDU4NjggNjAlLCAxLjAwNTUwMyA2MSUsIDEuMDA1MTM3IDYyJSwgMS4wMDQ3NzYgNjMlLCAxLjAwNDQyMiA2NCUsIDEuMDA0MDc4IDY1JSwgMS4wMDM3NDYgNjYlLCAxLjAwMzQyOSA2NyUsIDEuMDAzMTI3IDY4JSwgMS4wMDI4NCA2OSUsIDEuMDAyNTcxIDcwJSwgMS4wMDIzMTggNzElLCAxLjAwMjA4MiA3MiUsIDEuMDAxODYzIDczJSwgMS4wMDE2NiA3NCUsIDEuMDAxNDczIDc1JSwgMS4wMDEzMDEgNzYlLCAxLjAwMTE0MyA3NyUsIDEuMDAxIDc4JSwgMS4wMDA4NjkgNzklLCAxLjAwMDc1MiA4MCUsIDEuMDAwNjQ1IDgxJSwgMS4wMDA1NSA4MiUsIDEuMDAwNDY0IDgzJSwgMS4wMDAzODggODQlLCAxLjAwMDMyMSA4NSUsIDEuMDAwMjYxIDg2JSwgMS4wMDAyMDkgODclLCAxLjAwMDE2MyA4OCUsIDEuMDAwMTIzIDg5JSwgMS4wMDAwODggOTAlKTtcblxuICAtLXJvdW5kZWQtbm9uZTogMHB4O1xuICAtLXJvdW5kZWQtc206IDJweDtcbiAgLS1yb3VuZGVkLW1kOiA0cHg7XG4gIC0tcm91bmRlZC1tZC0yOiA2cHg7XG4gIC0tcm91bmRlZC1sZzogOHB4O1xuICAtLXJvdW5kZWQteGw6IDEycHg7XG4gIC0tcm91bmRlZC0yeGw6IDE2cHg7XG4gIC0tcm91bmRlZC0zeGw6IDI0cHg7XG4gIC0tcm91bmRlZC00eGw6IDMycHg7XG4gIC0tcm91bmRlZC1mdWxsOiA5OTk5cHg7XG5cbiAgLyogXG4gICAgVGhpcyB2YWx1ZSBnZXRzIHNldCBmcm9tIHRoZSBEZXYgVG9vbHMgcHJlZmVyZW5jZXMsXG4gICAgYW5kIHdlIHVzZSB0aGUgZm9sbG93aW5nIC0tc2l6ZS0qIHZhcmlhYmxlcyB0byBcbiAgICBzY2FsZSB0aGUgcmVsZXZhbnQgZWxlbWVudHMuXG5cbiAgICBUaGUgcmVhc29uIHdoeSB3ZSBkb24ndCByZWx5IG9uIHJlbSB2YWx1ZXMgaXMgYmVjYXVzZVxuICAgIGlmIGFuIGFwcCBzZXRzIHRoZWlyIHJvb3QgZm9udCBzaXplIHRvIHNvbWV0aGluZyB0aW55LCBcbiAgICBpdCBmZWVscyB1bmV4cGVjdGVkIHRvIGhhdmUgdGhlIGFwcCByb290IHNpemUgbGVhayBcbiAgICBpbnRvIGEgTmV4dC5qcyBzdXJmYWNlLlxuXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Rpc2N1c3Npb25zLzc2ODEyXG4gICovXG4gIC0tbmV4dGpzLWRldi10b29scy1zY2FsZTogMTtcbiAgLS1zaXplLTE6IGNhbGMoMXB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMjogY2FsYygycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0zOiBjYWxjKDNweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTQ6IGNhbGMoNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtNTogY2FsYyg1cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS02OiBjYWxjKDZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTc6IGNhbGMoN3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtODogY2FsYyg4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS05OiBjYWxjKDlweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTEwOiBjYWxjKDEwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0xMTogY2FsYygxMXB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMTI6IGNhbGMoMTJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTEzOiBjYWxjKDEzcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0xNDogY2FsYygxNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMTU6IGNhbGMoMTVweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTE2OiBjYWxjKDE2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0xNzogY2FsYygxN3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMTg6IGNhbGMoMThweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTIwOiBjYWxjKDIwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0yMjogY2FsYygyMnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMjQ6IGNhbGMoMjRweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTI2OiBjYWxjKDI2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0yODogY2FsYygyOHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMzA6IGNhbGMoMzBweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTMyOiBjYWxjKDMycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0zNDogY2FsYygzNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMzY6IGNhbGMoMzZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTM4OiBjYWxjKDM4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS00MDogY2FsYyg0MHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtNDI6IGNhbGMoNDJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTQ0OiBjYWxjKDQ0cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS00NjogY2FsYyg0NnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtNDg6IGNhbGMoNDhweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG5hIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcbiAgfVxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xuICB9XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9kZWZhdWx0LXRoZW1lLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRTs7Ozs7O0lBTUU7RUFDRixrQkFBa0I7O0VBRWxCLHFCQUFxQjtFQUNyQiwwQ0FBMEM7RUFDMUMsMkNBQTJDOztFQUUzQyw0QkFBNEI7RUFDNUIseUJBQXlCOztFQUV6QiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjs7RUFFMUI7MERBQ3dEO0VBQ3hEO2NBQ1k7O0VBRVosbUNBQW1DO0VBQ25DLDRCQUE0Qjs7RUFFNUIsZ0NBQWdDO0VBQ2hDLDBDQUEwQztFQUMxQyx1RUFBdUU7RUFDdkUsNkVBQTZFO0VBQzdFO21DQUNpQztFQUNqQztvQ0FDa0M7RUFDbEMsaURBQWlEO0VBQ2pELG1EQUFtRDtFQUNuRCx3QkFBd0I7O0VBRXhCLCtDQUErQztFQUMvQztnRkFDOEU7O0VBRTlFLG9DQUFvQztFQUNwQywwQ0FBMEM7O0VBRTFDLG9EQUFvRDtFQUNwRCx1REFBdUQ7RUFDdkQsb0JBQW9CO0VBQ3BCLGkzQ0FBaTNDOztFQUVqM0MsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCOztFQUV0Qjs7Ozs7Ozs7Ozs7R0FXQztFQUNELDJCQUEyQjtFQUMzQixtREFBbUQ7RUFDbkQsbURBQW1EO0VBQ25ELG1EQUFtRDtFQUNuRCxtREFBbUQ7RUFDbkQsbURBQW1EO0VBQ25ELG1EQUFtRDtFQUNuRCxtREFBbUQ7RUFDbkQsbURBQW1EO0VBQ25ELG1EQUFtRDtFQUNuRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDs7RUFFckQ7SUFDRSxhQUFhO0VBQ2Y7QUFDRjs7QUFFQTs7Ozs7O0VBTUUsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUI7SUFDRSw0QkFBNEI7RUFDOUI7RUFDQTtJQUNFLDBCQUEwQjtFQUM1QjtBQUNGXCIsc291cmNlc0NvbnRlbnQ6W1wiOmhvc3Qge1xcbiAgLyogXFxuICAgKiBBbHRob3VnaCB0aGUgc3R5bGUgYXBwbGllZCB0byB0aGUgc2hhZG93IGhvc3QgaXMgaXNvbGF0ZWQsXFxuICAgKiB0aGUgZWxlbWVudCB0aGF0IGF0dGFjaGVkIHRoZSBzaGFkb3cgaG9zdCAoaS5lLiBcXFwibmV4dGpzLXBvcnRhbFxcXCIpXFxuICAgKiBpcyBzdGlsbCBhZmZlY3RlZCBieSB0aGUgcGFyZW50J3Mgc3R5bGUgKGUuZy4gXFxcImJvZHlcXFwiKS4gVGhpcyBtYXlcXG4gICAqIG9jY3VyIHN0eWxlIGNvbmZsaWN0cyBsaWtlIFxcXCJkaXNwbGF5OiBmbGV4XFxcIiwgd2l0aCBvdGhlciBjaGlsZHJlblxcbiAgICogZWxlbWVudHMgdGhlcmVmb3JlIGdpdmUgdGhlIHNoYWRvdyBob3N0IGFuIGFic29sdXRlIHBvc2l0aW9uLlxcbiAgICovXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuXFxuICAtLWNvbG9yLWZvbnQ6ICM3NTc1NzU7XFxuICAtLWNvbG9yLWJhY2tkcm9wOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuOCk7XFxuICAtLWNvbG9yLWJvcmRlci1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4xNDUpO1xcblxcbiAgLS1jb2xvci10aXRsZS1jb2xvcjogIzFmMWYxZjtcXG4gIC0tY29sb3Itc3RhY2stbm90ZXM6ICM3Nzc7XFxuXFxuICAtLWNvbG9yLWFjY2VudHMtMTogIzgwODA4MDtcXG4gIC0tY29sb3ItYWNjZW50cy0yOiAjMjIyMjIyO1xcbiAgLS1jb2xvci1hY2NlbnRzLTM6ICM0MDQwNDA7XFxuXFxuICAtLWZvbnQtc3RhY2stbW9ub3NwYWNlOiAnX19uZXh0anMtR2Vpc3QgTW9ubycsICdHZWlzdCBNb25vJywgJ1NGTW9uby1SZWd1bGFyJyxcXG4gICAgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlO1xcbiAgLS1mb250LXN0YWNrLXNhbnM6ICdfX25leHRqcy1HZWlzdCcsICdHZWlzdCcsIC1hcHBsZS1zeXN0ZW0sICdTb3VyY2UgU2FucyBQcm8nLFxcbiAgICBzYW5zLXNlcmlmO1xcblxcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stc2Fucyk7XFxuICBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub25lO1xcblxcbiAgLyogVE9ETzogUmVtb3ZlIHJlcGxhY2VkIG9uZXMuICovXFxuICAtLXNoYWRvdy1zbTogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7XFxuICAtLXNoYWRvdzogMCAxcHggM3B4IDAgcmdiKDAgMCAwIC8gMC4xKSwgMCAxcHggMnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tc2hhZG93LW1kOiAwIDRweCA2cHggLTFweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDJweCA0cHggLTJweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgLS1zaGFkb3ctbGc6IDAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKSxcXG4gICAgMCA0cHggNnB4IC00cHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tc2hhZG93LXhsOiAwIDIwcHggMjVweCAtNXB4IHJnYigwIDAgMCAvIDAuMSksXFxuICAgIDAgOHB4IDEwcHggLTZweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgLS1zaGFkb3ctMnhsOiAwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjI1KTtcXG4gIC0tc2hhZG93LWlubmVyOiBpbnNldCAwIDJweCA0cHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcXG4gIC0tc2hhZG93LW5vbmU6IDAgMCAjMDAwMDtcXG5cXG4gIC0tc2hhZG93LXNtYWxsOiAwcHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDQpO1xcbiAgLS1zaGFkb3ctbWVudTogMHB4IDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjAyKSxcXG4gICAgMHB4IDRweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMDQpLCAwcHggMTZweCAyNHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcXG5cXG4gIC0tZm9jdXMtY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtODAwKTtcXG4gIC0tZm9jdXMtcmluZzogMnB4IHNvbGlkIHZhcigtLWZvY3VzLWNvbG9yKTtcXG5cXG4gIC0tdGltaW5nLXN3aWZ0OiBjdWJpYy1iZXppZXIoMC4yMywgMC44OCwgMC4yNiwgMC45Mik7XFxuICAtLXRpbWluZy1vdmVybGF5OiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjEpO1xcbiAgLyogcHJldHRpZXItaWdub3JlICovXFxuICAtLXRpbWluZy1ib3VuY2U6IGxpbmVhcigwIDAlLCAwLjAwNTg3MSAxJSwgMC4wMjIwNTggMiUsIDAuMDQ2NjEyIDMlLCAwLjA3NzgyMyA0JSwgMC4xMTQxOTkgNSUsIDAuMTU0NDQxIDYlLCAwLjE5NzQzMSA3LjAwMDAwMDAwMDAwMDAwMSUsIDAuMjQyMjA4IDglLCAwLjI4Nzk1OSA5JSwgMC4zMzM5OTUgMTAlLCAwLjM3OTc0MyAxMSUsIDAuNDI0NzMyIDEyJSwgMC40Njg1OCAxMyUsIDAuNTEwOTgyIDE0LjAwMDAwMDAwMDAwMDAwMiUsIDAuNTUxNzAyIDE1JSwgMC41OTA1NjQgMTYlLCAwLjYyNzQ0NSAxNyUsIDAuNjYyMjYxIDE4JSwgMC42OTQ5NzEgMTklLCAwLjcyNTU2MSAyMCUsIDAuNzU0MDQ3IDIxJSwgMC43ODA0NjIgMjIlLCAwLjgwNDg2MSAyMyUsIDAuODI3MzEgMjQlLCAwLjg0Nzg4OCAyNSUsIDAuODY2Njc5IDI2JSwgMC44ODM3NzUgMjclLCAwLjg5OTI3MiAyOC4wMDAwMDAwMDAwMDAwMDQlLCAwLjkxMzI2NyAyOC45OTk5OTk5OTk5OTk5OTYlLCAwLjkyNTg1NiAzMCUsIDAuOTM3MTM3IDMxJSwgMC45NDcyMDUgMzIlLCAwLjk1NjE1MyAzMyUsIDAuOTY0MDcgMzQlLCAwLjk3MTA0MyAzNSUsIDAuOTc3MTUzIDM2JSwgMC45ODI0NzkgMzclLCAwLjk4NzA5NCAzOCUsIDAuOTkxMDY2IDM5JSwgMC45OTQ0NjIgNDAlLCAwLjk5NzMzOSA0MSUsIDAuOTk5NzU1IDQyJSwgMS4wMDE3NjEgNDMlLCAxLjAwMzQwNCA0NCUsIDEuMDA0NzI3IDQ1JSwgMS4wMDU3NyA0NiUsIDEuMDA2NTY5IDQ3JSwgMS4wMDcxNTcgNDglLCAxLjAwNzU2MyA0OSUsIDEuMDA3ODEzIDUwJSwgMS4wMDc5MzEgNTElLCAxLjAwNzkzOSA1MiUsIDEuMDA3ODU1IDUzJSwgMS4wMDc2OTcgNTQlLCAxLjAwNzQ3NyA1NS4wMDAwMDAwMDAwMDAwMSUsIDEuMDA3MjEgNTYuMDAwMDAwMDAwMDAwMDElLCAxLjAwNjkwNyA1Ni45OTk5OTk5OTk5OTk5OSUsIDEuMDA2NTc2IDU3Ljk5OTk5OTk5OTk5OTk5JSwgMS4wMDYyMjggNTklLCAxLjAwNTg2OCA2MCUsIDEuMDA1NTAzIDYxJSwgMS4wMDUxMzcgNjIlLCAxLjAwNDc3NiA2MyUsIDEuMDA0NDIyIDY0JSwgMS4wMDQwNzggNjUlLCAxLjAwMzc0NiA2NiUsIDEuMDAzNDI5IDY3JSwgMS4wMDMxMjcgNjglLCAxLjAwMjg0IDY5JSwgMS4wMDI1NzEgNzAlLCAxLjAwMjMxOCA3MSUsIDEuMDAyMDgyIDcyJSwgMS4wMDE4NjMgNzMlLCAxLjAwMTY2IDc0JSwgMS4wMDE0NzMgNzUlLCAxLjAwMTMwMSA3NiUsIDEuMDAxMTQzIDc3JSwgMS4wMDEgNzglLCAxLjAwMDg2OSA3OSUsIDEuMDAwNzUyIDgwJSwgMS4wMDA2NDUgODElLCAxLjAwMDU1IDgyJSwgMS4wMDA0NjQgODMlLCAxLjAwMDM4OCA4NCUsIDEuMDAwMzIxIDg1JSwgMS4wMDAyNjEgODYlLCAxLjAwMDIwOSA4NyUsIDEuMDAwMTYzIDg4JSwgMS4wMDAxMjMgODklLCAxLjAwMDA4OCA5MCUpO1xcblxcbiAgLS1yb3VuZGVkLW5vbmU6IDBweDtcXG4gIC0tcm91bmRlZC1zbTogMnB4O1xcbiAgLS1yb3VuZGVkLW1kOiA0cHg7XFxuICAtLXJvdW5kZWQtbWQtMjogNnB4O1xcbiAgLS1yb3VuZGVkLWxnOiA4cHg7XFxuICAtLXJvdW5kZWQteGw6IDEycHg7XFxuICAtLXJvdW5kZWQtMnhsOiAxNnB4O1xcbiAgLS1yb3VuZGVkLTN4bDogMjRweDtcXG4gIC0tcm91bmRlZC00eGw6IDMycHg7XFxuICAtLXJvdW5kZWQtZnVsbDogOTk5OXB4O1xcblxcbiAgLyogXFxuICAgIFRoaXMgdmFsdWUgZ2V0cyBzZXQgZnJvbSB0aGUgRGV2IFRvb2xzIHByZWZlcmVuY2VzLFxcbiAgICBhbmQgd2UgdXNlIHRoZSBmb2xsb3dpbmcgLS1zaXplLSogdmFyaWFibGVzIHRvIFxcbiAgICBzY2FsZSB0aGUgcmVsZXZhbnQgZWxlbWVudHMuXFxuXFxuICAgIFRoZSByZWFzb24gd2h5IHdlIGRvbid0IHJlbHkgb24gcmVtIHZhbHVlcyBpcyBiZWNhdXNlXFxuICAgIGlmIGFuIGFwcCBzZXRzIHRoZWlyIHJvb3QgZm9udCBzaXplIHRvIHNvbWV0aGluZyB0aW55LCBcXG4gICAgaXQgZmVlbHMgdW5leHBlY3RlZCB0byBoYXZlIHRoZSBhcHAgcm9vdCBzaXplIGxlYWsgXFxuICAgIGludG8gYSBOZXh0LmpzIHN1cmZhY2UuXFxuXFxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9kaXNjdXNzaW9ucy83NjgxMlxcbiAgKi9cXG4gIC0tbmV4dGpzLWRldi10b29scy1zY2FsZTogMTtcXG4gIC0tc2l6ZS0xOiBjYWxjKDFweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0yOiBjYWxjKDJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0zOiBjYWxjKDNweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS00OiBjYWxjKDRweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS01OiBjYWxjKDVweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS02OiBjYWxjKDZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS03OiBjYWxjKDdweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS04OiBjYWxjKDhweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS05OiBjYWxjKDlweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0xMDogY2FsYygxMHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTExOiBjYWxjKDExcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMTI6IGNhbGMoMTJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0xMzogY2FsYygxM3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTE0OiBjYWxjKDE0cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMTU6IGNhbGMoMTVweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0xNjogY2FsYygxNnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTE3OiBjYWxjKDE3cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMTg6IGNhbGMoMThweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0yMDogY2FsYygyMHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTIyOiBjYWxjKDIycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMjQ6IGNhbGMoMjRweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0yNjogY2FsYygyNnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTI4OiBjYWxjKDI4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMzA6IGNhbGMoMzBweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0zMjogY2FsYygzMnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTM0OiBjYWxjKDM0cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMzY6IGNhbGMoMzZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0zODogY2FsYygzOHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTQwOiBjYWxjKDQwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtNDI6IGNhbGMoNDJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS00NDogY2FsYyg0NHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTQ2OiBjYWxjKDQ2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtNDg6IGNhbGMoNDhweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG5cXG4gIEBtZWRpYSBwcmludCB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcblxcbmgxLFxcbmgyLFxcbmgzLFxcbmg0LFxcbmg1LFxcbmg2IHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbn1cXG5cXG5hIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTkwMCk7XFxuICAmOmhvdmVyIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcXG4gIH1cXG4gICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgfVxcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPVwiXCIscj12b2lkIDAhPT10WzVdO3JldHVybiB0WzRdJiYobis9XCJAc3VwcG9ydHMgKFwiLmNvbmNhdCh0WzRdLFwiKSB7XCIpKSx0WzJdJiYobis9XCJAbWVkaWEgXCIuY29uY2F0KHRbMl0sXCIge1wiKSksciYmKG4rPVwiQGxheWVyXCIuY29uY2F0KHRbNV0ubGVuZ3RoPjA/XCIgXCIuY29uY2F0KHRbNV0pOlwiXCIsXCIge1wiKSksbis9ZSh0KSxyJiYobis9XCJ9XCIpLHRbMl0mJihuKz1cIn1cIiksdFs0XSYmKG4rPVwifVwiKSxufSkuam9pbihcIlwiKX0sdC5pPWZ1bmN0aW9uKGUsbixyLG8sYSl7XCJzdHJpbmdcIj09dHlwZW9mIGUmJihlPVtbbnVsbCxlLHZvaWQgMF1dKTt2YXIgaT17fTtpZihyKWZvcih2YXIgbD0wO2w8dGhpcy5sZW5ndGg7bCsrKXt2YXIgcz10aGlzW2xdWzBdO251bGwhPXMmJihpW3NdPSEwKX1mb3IodmFyIGM9MDtjPGUubGVuZ3RoO2MrKyl7dmFyIHU9W10uY29uY2F0KGVbY10pO3ImJmlbdVswXV18fCh2b2lkIDAhPT1hJiYodm9pZCAwPT09dVs1XXx8KHVbMV09XCJAbGF5ZXJcIi5jb25jYXQodVs1XS5sZW5ndGg+MD9cIiBcIi5jb25jYXQodVs1XSk6XCJcIixcIiB7XCIpLmNvbmNhdCh1WzFdLFwifVwiKSksdVs1XT1hKSxuJiYodVsyXSYmKHVbMV09XCJAbWVkaWEgXCIuY29uY2F0KHVbMl0sXCIge1wiKS5jb25jYXQodVsxXSxcIn1cIikpLHVbMl09biksbyYmKHVbNF0/KHVbMV09XCJAc3VwcG9ydHMgKFwiLmNvbmNhdCh1WzRdLFwiKSB7XCIpLmNvbmNhdCh1WzFdLFwifVwiKSx1WzRdPW8pOnVbNF09XCJcIi5jb25jYXQobykpLHQucHVzaCh1KSl9fSx0fX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWVbMV0sbj1lWzNdO2lmKCFuKXJldHVybiB0O2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGJ0b2Epe3ZhciByPWJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KG4pKSkpO3JldHVyblt0XS5jb25jYXQoW1wiLyojIFwiLmNvbmNhdChcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChyKSxcIiAqL1wiKV0pLmpvaW4oXCJcXG5cIil9cmV0dXJuW3RdLmpvaW4oXCJcXG5cIil9fSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO3ZhciB0PVtdO2Z1bmN0aW9uIG4oZSl7Zm9yKHZhciBuPS0xLHI9MDtyPHQubGVuZ3RoO3IrKylpZih0W3JdLmlkZW50aWZpZXI9PT1lKXtuPXI7YnJlYWt9cmV0dXJuIG59ZnVuY3Rpb24gcihlLHIpe2Zvcih2YXIgbz17fSxhPVtdLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIGw9ZVtpXSxzPXIuYmFzZT9sWzBdK3IuYmFzZTpsWzBdLGM9b1tzXXx8MCx1PVwiXCIuY29uY2F0KHMsXCIgXCIpLmNvbmNhdChjKTtvW3NdPWMrMTt2YXIgZD1uKHUpLGY9e2NzczpsWzFdLG1lZGlhOmxbMl0sc291cmNlTWFwOmxbM10sc3VwcG9ydHM6bFs0XSxsYXllcjpsWzVdfTtpZigtMSE9PWQpdFtkXS5yZWZlcmVuY2VzKyssdFtkXS51cGRhdGVyKGYpO2Vsc2V7dmFyIHA9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmRvbUFQSSh0KTtyZXR1cm4gbi51cGRhdGUoZSksZnVuY3Rpb24odCl7dD8odC5jc3MhPT1lLmNzc3x8dC5tZWRpYSE9PWUubWVkaWF8fHQuc291cmNlTWFwIT09ZS5zb3VyY2VNYXB8fHQuc3VwcG9ydHMhPT1lLnN1cHBvcnRzfHx0LmxheWVyIT09ZS5sYXllcikmJm4udXBkYXRlKGU9dCk6bi5yZW1vdmUoKX19KGYscik7ci5ieUluZGV4PWksdC5zcGxpY2UoaSwwLHtpZGVudGlmaWVyOnUsdXBkYXRlcjpwLHJlZmVyZW5jZXM6MX0pfWEucHVzaCh1KX1yZXR1cm4gYX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSxvKXt2YXIgYT1yKGU9ZXx8W10sbz1vfHx7fSk7cmV0dXJuIGZ1bmN0aW9uKGUpe2U9ZXx8W107Zm9yKHZhciBpPTA7aTxhLmxlbmd0aDtpKyspe3ZhciBsPW4oYVtpXSk7dFtsXS5yZWZlcmVuY2VzLS19Zm9yKHZhciBzPXIoZSxvKSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciB1PW4oYVtjXSk7MD09PXRbdV0ucmVmZXJlbmNlcyYmKHRbdV0udXBkYXRlcigpLHQuc3BsaWNlKHUsMSkpfWE9c319fSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7cmV0dXJuIGUuc2V0QXR0cmlidXRlcyh0LGUuYXR0cmlidXRlcyksZS5pbnNlcnQodCxlLm9wdGlvbnMpLHR9fSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bi5uYzt0JiZlLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsdCl9fSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBkb2N1bWVudClyZXR1cm57dXBkYXRlOmZ1bmN0aW9uKCl7fSxyZW1vdmU6ZnVuY3Rpb24oKXt9fTt2YXIgdD1lLmluc2VydFN0eWxlRWxlbWVudChlKTtyZXR1cm57dXBkYXRlOmZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPVwiXCIsbi5zdXBwb3J0cyYmKHIrPVwiQHN1cHBvcnRzIChcIi5jb25jYXQobi5zdXBwb3J0cyxcIikge1wiKSksbi5tZWRpYSYmKHIrPVwiQG1lZGlhIFwiLmNvbmNhdChuLm1lZGlhLFwiIHtcIikpLChvPXZvaWQgMCE9PW4ubGF5ZXIpJiYocis9XCJAbGF5ZXJcIi5jb25jYXQobi5sYXllci5sZW5ndGg+MD9cIiBcIi5jb25jYXQobi5sYXllcik6XCJcIixcIiB7XCIpKSxyKz1uLmNzcyxvJiYocis9XCJ9XCIpLG4ubWVkaWEmJihyKz1cIn1cIiksbi5zdXBwb3J0cyYmKHIrPVwifVwiKSwoYT1uLnNvdXJjZU1hcCkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBidG9hJiYocis9XCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShhKSkpKSxcIiAqL1wiKSksZS5zdHlsZVRhZ1RyYW5zZm9ybShyLHQsZS5vcHRpb25zKX0scmVtb3ZlOmZ1bmN0aW9uKCl7IWZ1bmN0aW9uKGUpe2lmKG51bGwhPT1lLnBhcmVudE5vZGUpZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSh0KX19fX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHQuc3R5bGVTaGVldCl0LnN0eWxlU2hlZXQuY3NzVGV4dD1lO2Vsc2V7Zm9yKDt0LmZpcnN0Q2hpbGQ7KXQucmVtb3ZlQ2hpbGQodC5maXJzdENoaWxkKTt0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX19fSxcIi4vZGlzdC9jb21waWxlZC9hbnNlci9pbmRleC5qc1wiOmZ1bmN0aW9uKGUpeygoKT0+e1widXNlIHN0cmljdFwiO3ZhciB0PXsyMTE6ZT0+e3ZhciB0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxyJiZlKHQsciksdH19KCksbj1bW3tjb2xvcjpcIjAsIDAsIDBcIixjbGFzczpcImFuc2ktYmxhY2tcIn0se2NvbG9yOlwiMTg3LCAwLCAwXCIsY2xhc3M6XCJhbnNpLXJlZFwifSx7Y29sb3I6XCIwLCAxODcsIDBcIixjbGFzczpcImFuc2ktZ3JlZW5cIn0se2NvbG9yOlwiMTg3LCAxODcsIDBcIixjbGFzczpcImFuc2kteWVsbG93XCJ9LHtjb2xvcjpcIjAsIDAsIDE4N1wiLGNsYXNzOlwiYW5zaS1ibHVlXCJ9LHtjb2xvcjpcIjE4NywgMCwgMTg3XCIsY2xhc3M6XCJhbnNpLW1hZ2VudGFcIn0se2NvbG9yOlwiMCwgMTg3LCAxODdcIixjbGFzczpcImFuc2ktY3lhblwifSx7Y29sb3I6XCIyNTUsMjU1LDI1NVwiLGNsYXNzOlwiYW5zaS13aGl0ZVwifV0sW3tjb2xvcjpcIjg1LCA4NSwgODVcIixjbGFzczpcImFuc2ktYnJpZ2h0LWJsYWNrXCJ9LHtjb2xvcjpcIjI1NSwgODUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1yZWRcIn0se2NvbG9yOlwiMCwgMjU1LCAwXCIsY2xhc3M6XCJhbnNpLWJyaWdodC1ncmVlblwifSx7Y29sb3I6XCIyNTUsIDI1NSwgODVcIixjbGFzczpcImFuc2ktYnJpZ2h0LXllbGxvd1wifSx7Y29sb3I6XCI4NSwgODUsIDI1NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtYmx1ZVwifSx7Y29sb3I6XCIyNTUsIDg1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LW1hZ2VudGFcIn0se2NvbG9yOlwiODUsIDI1NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1jeWFuXCJ9LHtjb2xvcjpcIjI1NSwgMjU1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LXdoaXRlXCJ9XV07ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGUpKXRocm93IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTt0aGlzLmZnPXRoaXMuYmc9dGhpcy5mZ190cnVlY29sb3I9dGhpcy5iZ190cnVlY29sb3I9bnVsbCx0aGlzLmJyaWdodD0wfXJldHVybiB0KGUsbnVsbCxbe2tleTpcImVzY2FwZUZvckh0bWxcIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4obmV3IGUpLmVzY2FwZUZvckh0bWwodCl9fSx7a2V5OlwibGlua2lmeVwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybihuZXcgZSkubGlua2lmeSh0KX19LHtrZXk6XCJhbnNpVG9IdG1sXCIsdmFsdWU6ZnVuY3Rpb24odCxuKXtyZXR1cm4obmV3IGUpLmFuc2lUb0h0bWwodCxuKX19LHtrZXk6XCJhbnNpVG9Kc29uXCIsdmFsdWU6ZnVuY3Rpb24odCxuKXtyZXR1cm4obmV3IGUpLmFuc2lUb0pzb24odCxuKX19LHtrZXk6XCJhbnNpVG9UZXh0XCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKG5ldyBlKS5hbnNpVG9UZXh0KHQpfX1dKSx0KGUsW3trZXk6XCJzZXR1cFBhbGV0dGVcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuUEFMRVRURV9DT0xPUlM9W107Zm9yKHZhciBlPTA7ZTwyOysrZSlmb3IodmFyIHQ9MDt0PDg7Kyt0KXRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChuW2VdW3RdLmNvbG9yKTtmb3IodmFyIHI9WzAsOTUsMTM1LDE3NSwyMTUsMjU1XSxvPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gcltlXStcIiwgXCIrclt0XStcIiwgXCIrcltuXX0sYT0wO2E8NjsrK2EpZm9yKHZhciBpPTA7aTw2OysraSlmb3IodmFyIGw9MDtsPDY7KytsKXRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChvKGEsaSxsKSk7Zm9yKHZhciBzPTgsYz0wO2M8MjQ7KytjLHMrPTEwKXRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChvKHMscyxzKSl9fSx7a2V5OlwiZXNjYXBlRm9ySHRtbFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1smPD5dL2dtLGZ1bmN0aW9uKGUpe3JldHVyblwiJlwiPT1lP1wiJmFtcDtcIjpcIjxcIj09ZT9cIiZsdDtcIjpcIj5cIj09ZT9cIiZndDtcIjpcIlwifSl9fSx7a2V5OlwibGlua2lmeVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoLyhodHRwcz86XFwvXFwvW15cXHNdKykvZ20sZnVuY3Rpb24oZSl7cmV0dXJuJzxhIGhyZWY9XCInK2UrJ1wiPicrZStcIjwvYT5cIn0pfX0se2tleTpcImFuc2lUb0h0bWxcIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnByb2Nlc3MoZSx0LCEwKX19LHtrZXk6XCJhbnNpVG9Kc29uXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4odD10fHx7fSkuanNvbj0hMCx0LmNsZWFyTGluZT0hMSx0aGlzLnByb2Nlc3MoZSx0LCEwKX19LHtrZXk6XCJhbnNpVG9UZXh0XCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHJvY2VzcyhlLHt9LCExKX19LHtrZXk6XCJwcm9jZXNzXCIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMsbz1lLnNwbGl0KC9cXDAzM1xcWy8pLGE9by5zaGlmdCgpO251bGw9PXQmJih0PXt9KSx0LmNsZWFyTGluZT0vXFxyLy50ZXN0KGUpO3ZhciBpPW8ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiByLnByb2Nlc3NDaHVuayhlLHQsbil9KTtpZih0JiZ0Lmpzb24pe3ZhciBsPXRoaXMucHJvY2Vzc0NodW5rSnNvbihcIlwiKTtyZXR1cm4gbC5jb250ZW50PWEsbC5jbGVhckxpbmU9dC5jbGVhckxpbmUsaS51bnNoaWZ0KGwpLHQucmVtb3ZlX2VtcHR5JiYoaT1pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5pc0VtcHR5KCl9KSksaX1yZXR1cm4gaS51bnNoaWZ0KGEpLGkuam9pbihcIlwiKX19LHtrZXk6XCJwcm9jZXNzQ2h1bmtKc29uXCIsdmFsdWU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvPSh0PXZvaWQgMD09PXQ/e306dCkudXNlX2NsYXNzZXM9dm9pZCAwIT09dC51c2VfY2xhc3NlcyYmdC51c2VfY2xhc3NlcyxhPXQua2V5PW8/XCJjbGFzc1wiOlwiY29sb3JcIixpPXtjb250ZW50OmUsZmc6bnVsbCxiZzpudWxsLGZnX3RydWVjb2xvcjpudWxsLGJnX3RydWVjb2xvcjpudWxsLGNsZWFyTGluZTp0LmNsZWFyTGluZSxkZWNvcmF0aW9uOm51bGwsd2FzX3Byb2Nlc3NlZDohMSxpc0VtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIWkuY29udGVudH19LGw9ZS5tYXRjaCgvXihbIVxceDNjLVxceDNmXSopKFtcXGQ7XSopKFtcXHgyMC1cXHgyY10qW1xceDQwLVxceDdlXSkoW1xcc1xcU10qKS9tKTtpZighbClyZXR1cm4gaTtpLmNvbnRlbnQ9bFs0XTt2YXIgcz1sWzJdLnNwbGl0KFwiO1wiKTtpZihcIlwiIT09bFsxXXx8XCJtXCIhPT1sWzNdfHwhcilyZXR1cm4gaTtmb3IodGhpcy5kZWNvcmF0aW9uPW51bGw7cy5sZW5ndGg+MDspe3ZhciBjPXBhcnNlSW50KHMuc2hpZnQoKSk7aWYoaXNOYU4oYyl8fDA9PT1jKXRoaXMuZmc9dGhpcy5iZz10aGlzLmRlY29yYXRpb249bnVsbDtlbHNlIGlmKDE9PT1jKXRoaXMuZGVjb3JhdGlvbj1cImJvbGRcIjtlbHNlIGlmKDI9PT1jKXRoaXMuZGVjb3JhdGlvbj1cImRpbVwiO2Vsc2UgaWYoMz09Yyl0aGlzLmRlY29yYXRpb249XCJpdGFsaWNcIjtlbHNlIGlmKDQ9PWMpdGhpcy5kZWNvcmF0aW9uPVwidW5kZXJsaW5lXCI7ZWxzZSBpZig1PT1jKXRoaXMuZGVjb3JhdGlvbj1cImJsaW5rXCI7ZWxzZSBpZig3PT09Yyl0aGlzLmRlY29yYXRpb249XCJyZXZlcnNlXCI7ZWxzZSBpZig4PT09Yyl0aGlzLmRlY29yYXRpb249XCJoaWRkZW5cIjtlbHNlIGlmKDk9PT1jKXRoaXMuZGVjb3JhdGlvbj1cInN0cmlrZXRocm91Z2hcIjtlbHNlIGlmKDM5PT1jKXRoaXMuZmc9bnVsbDtlbHNlIGlmKDQ5PT1jKXRoaXMuYmc9bnVsbDtlbHNlIGlmKGM+PTMwJiZjPDM4KXRoaXMuZmc9blswXVtjJTEwXVthXTtlbHNlIGlmKGM+PTkwJiZjPDk4KXRoaXMuZmc9blsxXVtjJTEwXVthXTtlbHNlIGlmKGM+PTQwJiZjPDQ4KXRoaXMuYmc9blswXVtjJTEwXVthXTtlbHNlIGlmKGM+PTEwMCYmYzwxMDgpdGhpcy5iZz1uWzFdW2MlMTBdW2FdO2Vsc2UgaWYoMzg9PT1jfHw0OD09PWMpe3ZhciB1PTM4PT09YztpZihzLmxlbmd0aD49MSl7dmFyIGQ9cy5zaGlmdCgpO2lmKFwiNVwiPT09ZCYmcy5sZW5ndGg+PTEpe3ZhciBmPXBhcnNlSW50KHMuc2hpZnQoKSk7aWYoZj49MCYmZjw9MjU1KWlmKG8pe3ZhciBwPWY+PTE2P1wiYW5zaS1wYWxldHRlLVwiK2Y6blsrKGY+NyldW2YlOF0uY2xhc3M7dT90aGlzLmZnPXA6dGhpcy5iZz1wfWVsc2UgdGhpcy5QQUxFVFRFX0NPTE9SU3x8dGhpcy5zZXR1cFBhbGV0dGUoKSx1P3RoaXMuZmc9dGhpcy5QQUxFVFRFX0NPTE9SU1tmXTp0aGlzLmJnPXRoaXMuUEFMRVRURV9DT0xPUlNbZl19ZWxzZSBpZihcIjJcIj09PWQmJnMubGVuZ3RoPj0zKXt2YXIgaD1wYXJzZUludChzLnNoaWZ0KCkpLG09cGFyc2VJbnQocy5zaGlmdCgpKSxnPXBhcnNlSW50KHMuc2hpZnQoKSk7aWYoaD49MCYmaDw9MjU1JiZtPj0wJiZtPD0yNTUmJmc+PTAmJmc8PTI1NSl7dmFyIHk9aCtcIiwgXCIrbStcIiwgXCIrZztvP3U/KHRoaXMuZmc9XCJhbnNpLXRydWVjb2xvclwiLHRoaXMuZmdfdHJ1ZWNvbG9yPXkpOih0aGlzLmJnPVwiYW5zaS10cnVlY29sb3JcIix0aGlzLmJnX3RydWVjb2xvcj15KTp1P3RoaXMuZmc9eTp0aGlzLmJnPXl9fX19fXJldHVybiBudWxsPT09dGhpcy5mZyYmbnVsbD09PXRoaXMuYmcmJm51bGw9PT10aGlzLmRlY29yYXRpb258fChpLmZnPXRoaXMuZmcsaS5iZz10aGlzLmJnLGkuZmdfdHJ1ZWNvbG9yPXRoaXMuZmdfdHJ1ZWNvbG9yLGkuYmdfdHJ1ZWNvbG9yPXRoaXMuYmdfdHJ1ZWNvbG9yLGkuZGVjb3JhdGlvbj10aGlzLmRlY29yYXRpb24saS53YXNfcHJvY2Vzc2VkPSEwKSxpfX0se2tleTpcInByb2Nlc3NDaHVua1wiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzO3Q9dHx8e307dmFyIG89dGhpcy5wcm9jZXNzQ2h1bmtKc29uKGUsdCxuKTtpZih0Lmpzb24pcmV0dXJuIG87aWYoby5pc0VtcHR5KCkpcmV0dXJuXCJcIjtpZighby53YXNfcHJvY2Vzc2VkKXJldHVybiBvLmNvbnRlbnQ7dmFyIGE9dC51c2VfY2xhc3NlcyxpPVtdLGw9W10scz17fSxjPWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49dm9pZCAwO2ZvcihuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmdC5wdXNoKFwiZGF0YS1cIituKyc9XCInK3IuZXNjYXBlRm9ySHRtbChlW25dKSsnXCInKTtyZXR1cm4gdC5sZW5ndGg+MD9cIiBcIit0LmpvaW4oXCIgXCIpOlwiXCJ9O3JldHVybihvLmZnJiYoYT8obC5wdXNoKG8uZmcrXCItZmdcIiksbnVsbCE9PW8uZmdfdHJ1ZWNvbG9yJiYoc1tcImFuc2ktdHJ1ZWNvbG9yLWZnXCJdPW8uZmdfdHJ1ZWNvbG9yLG8uZmdfdHJ1ZWNvbG9yPW51bGwpKTppLnB1c2goXCJjb2xvcjpyZ2IoXCIrby5mZytcIilcIikpLG8uYmcmJihhPyhsLnB1c2goby5iZytcIi1iZ1wiKSxudWxsIT09by5iZ190cnVlY29sb3ImJihzW1wiYW5zaS10cnVlY29sb3ItYmdcIl09by5iZ190cnVlY29sb3Isby5iZ190cnVlY29sb3I9bnVsbCkpOmkucHVzaChcImJhY2tncm91bmQtY29sb3I6cmdiKFwiK28uYmcrXCIpXCIpKSxvLmRlY29yYXRpb24mJihhP2wucHVzaChcImFuc2ktXCIrby5kZWNvcmF0aW9uKTpcImJvbGRcIj09PW8uZGVjb3JhdGlvbj9pLnB1c2goXCJmb250LXdlaWdodDpib2xkXCIpOlwiZGltXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwib3BhY2l0eTowLjVcIik6XCJpdGFsaWNcIj09PW8uZGVjb3JhdGlvbj9pLnB1c2goXCJmb250LXN0eWxlOml0YWxpY1wiKTpcInJldmVyc2VcIj09PW8uZGVjb3JhdGlvbj9pLnB1c2goXCJmaWx0ZXI6aW52ZXJ0KDEwMCUpXCIpOlwiaGlkZGVuXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwidmlzaWJpbGl0eTpoaWRkZW5cIik6XCJzdHJpa2V0aHJvdWdoXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwidGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaFwiKTppLnB1c2goXCJ0ZXh0LWRlY29yYXRpb246XCIrby5kZWNvcmF0aW9uKSksYSk/JzxzcGFuIGNsYXNzPVwiJytsLmpvaW4oXCIgXCIpKydcIicrYyhzKStcIj5cIitvLmNvbnRlbnQrXCI8L3NwYW4+XCI6JzxzcGFuIHN0eWxlPVwiJytpLmpvaW4oXCI7XCIpKydcIicrYyhzKStcIj5cIitvLmNvbnRlbnQrXCI8L3NwYW4+XCJ9fV0pLGV9KCl9fSxuPXt9O2Z1bmN0aW9uIHIoZSl7dmFyIG89bltlXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGE9bltlXT17ZXhwb3J0czp7fX0saT0hMDt0cnl7dFtlXShhLGEuZXhwb3J0cyxyKSxpPSExfWZpbmFsbHl7aSYmZGVsZXRlIG5bZV19cmV0dXJuIGEuZXhwb3J0c31yLmFiPVwiLy9cIixlLmV4cG9ydHM9cigyMTEpfSkoKX0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbz1uKFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9pbmRleC5qc1wiKSxhPW4oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIiksaT1uKFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9pbmRleC5qc1wiKTtmdW5jdGlvbiBsKGUpe3ZhciB0PVwiaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzL1wiK2U7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXt0Kz1cIj9hcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBuPTI7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSl9cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrZStcIjsgdmlzaXQgXCIrdCtcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9ZnVuY3Rpb24gcyhlKXt2YXIgdD1lLG49ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7ZT10O2RvIDAhPSg0MDk4Jih0PWUpLmZsYWdzKSYmKG49dC5yZXR1cm4pLGU9dC5yZXR1cm47d2hpbGUoZSl9cmV0dXJuIDM9PT10LnRhZz9uOm51bGx9ZnVuY3Rpb24gYyhlKXtpZigxMz09PWUudGFnKXt2YXIgdD1lLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PXQmJm51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJih0PWUubWVtb2l6ZWRTdGF0ZSksbnVsbCE9PXQpcmV0dXJuIHQuZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiB1KGUpe2lmKDMxPT09ZS50YWcpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09dCYmbnVsbCE9PShlPWUuYWx0ZXJuYXRlKSYmKHQ9ZS5tZW1vaXplZFN0YXRlKSxudWxsIT09dClyZXR1cm4gdC5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIGQoZSl7aWYocyhlKSE9PWUpdGhyb3cgRXJyb3IobCgxODgpKX12YXIgZj1PYmplY3QuYXNzaWduLHA9U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIiksaD1TeW1ib2wuZm9yKFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIiksbT1TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLGc9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLHk9U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLHY9U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLGI9U3ltYm9sLmZvcihcInJlYWN0LmNvbnN1bWVyXCIpLEE9U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIikseD1TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksdz1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIiksQz1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxfPVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLGs9U3ltYm9sLmZvcihcInJlYWN0LmxhenlcIik7U3ltYm9sLmZvcihcInJlYWN0LnNjb3BlXCIpO3ZhciBFPVN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKTtTeW1ib2wuZm9yKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKSxTeW1ib2wuZm9yKFwicmVhY3QudHJhY2luZ19tYXJrZXJcIik7dmFyIGo9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik7U3ltYm9sLmZvcihcInJlYWN0LnZpZXdfdHJhbnNpdGlvblwiKTt2YXIgUz1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gTyhlKXtyZXR1cm4gbnVsbD09PWV8fFwib2JqZWN0XCIhPXR5cGVvZiBlP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2YoZT1TJiZlW1NdfHxlW1wiQEBpdGVyYXRvclwiXSk/ZTpudWxsfXZhciBCPVN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFA9QXJyYXkuaXNBcnJheSxJPWEuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFQ9aS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsej17cGVuZGluZzohMSxkYXRhOm51bGwsbWV0aG9kOm51bGwsYWN0aW9uOm51bGx9LEQ9W10sTD0tMTtmdW5jdGlvbiBOKGUpe3JldHVybntjdXJyZW50OmV9fWZ1bmN0aW9uIFIoZSl7MD5MfHwoZS5jdXJyZW50PURbTF0sRFtMXT1udWxsLEwtLSl9ZnVuY3Rpb24gTShlLHQpe0RbKytMXT1lLmN1cnJlbnQsZS5jdXJyZW50PXR9dmFyIFo9TihudWxsKSxVPU4obnVsbCksRj1OKG51bGwpLHE9TihudWxsKTtmdW5jdGlvbiBIKGUsdCl7c3dpdGNoKE0oRix0KSxNKFUsZSksTShaLG51bGwpLHQubm9kZVR5cGUpe2Nhc2UgOTpjYXNlIDExOmU9KGU9dC5kb2N1bWVudEVsZW1lbnQpJiYoZT1lLm5hbWVzcGFjZVVSSSk/Y2goZSk6MDticmVhaztkZWZhdWx0OmlmKGU9dC50YWdOYW1lLHQ9dC5uYW1lc3BhY2VVUkkpZT1jbSh0PWNoKHQpLGUpO2Vsc2Ugc3dpdGNoKGUpe2Nhc2VcInN2Z1wiOmU9MTticmVhaztjYXNlXCJtYXRoXCI6ZT0yO2JyZWFrO2RlZmF1bHQ6ZT0wfX1SKFopLE0oWixlKX1mdW5jdGlvbiBWKCl7UihaKSxSKFUpLFIoRil9ZnVuY3Rpb24gJChlKXtudWxsIT09ZS5tZW1vaXplZFN0YXRlJiZNKHEsZSk7dmFyIHQ9Wi5jdXJyZW50LG49Y20odCxlLnR5cGUpO3QhPT1uJiYoTShVLGUpLE0oWixuKSl9ZnVuY3Rpb24gVyhlKXtVLmN1cnJlbnQ9PT1lJiYoUihaKSxSKFUpKSxxLmN1cnJlbnQ9PT1lJiYoUihxKSxjOS5fY3VycmVudFZhbHVlPXopfWZ1bmN0aW9uIFkoZSl7aWYodm9pZCAwPT09dEwpdHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goZSl7dmFyIHQ9ZS5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTt0TD10JiZ0WzFdfHxcIlwiLHROPS0xPGUuc3RhY2suaW5kZXhPZihcIlxcbiAgICBhdFwiKT9cIiAoPGFub255bW91cz4pXCI6LTE8ZS5zdGFjay5pbmRleE9mKFwiQFwiKT9cIkB1bmtub3duOjA6MFwiOlwiXCJ9cmV0dXJuXCJcXG5cIit0TCtlK3ROfXZhciBLPSExO2Z1bmN0aW9uIFgoZSx0KXtpZighZXx8SylyZXR1cm5cIlwiO0s9ITA7dmFyIG49RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dm9pZCAwO3RyeXt2YXIgcj17RGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290OmZ1bmN0aW9uKCl7dHJ5e2lmKHQpe3ZhciBuPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX07aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwicHJvcHNcIix7c2V0OmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX19KSxcIm9iamVjdFwiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChuLFtdKX1jYXRjaChlKXt2YXIgcj1lfVJlZmxlY3QuY29uc3RydWN0KGUsW10sbil9ZWxzZXt0cnl7bi5jYWxsKCl9Y2F0Y2goZSl7cj1lfWUuY2FsbChuLnByb3RvdHlwZSl9fWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goZSl7cj1lfShuPWUoKSkmJlwiZnVuY3Rpb25cIj09dHlwZW9mIG4uY2F0Y2gmJm4uY2F0Y2goZnVuY3Rpb24oKXt9KX19Y2F0Y2goZSl7aWYoZSYmciYmXCJzdHJpbmdcIj09dHlwZW9mIGUuc3RhY2spcmV0dXJuW2Uuc3RhY2ssci5zdGFja119cmV0dXJuW251bGwsbnVsbF19fTtyLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdC5kaXNwbGF5TmFtZT1cIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiO3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsXCJuYW1lXCIpO28mJm8uY29uZmlndXJhYmxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsXCJuYW1lXCIse3ZhbHVlOlwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCJ9KTt2YXIgYT1yLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLGk9YVswXSxsPWFbMV07aWYoaSYmbCl7dmFyIHM9aS5zcGxpdChcIlxcblwiKSxjPWwuc3BsaXQoXCJcXG5cIik7Zm9yKG89cj0wO3I8cy5sZW5ndGgmJiFzW3JdLmluY2x1ZGVzKFwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCIpOylyKys7Zm9yKDtvPGMubGVuZ3RoJiYhY1tvXS5pbmNsdWRlcyhcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiKTspbysrO2lmKHI9PT1zLmxlbmd0aHx8bz09PWMubGVuZ3RoKWZvcihyPXMubGVuZ3RoLTEsbz1jLmxlbmd0aC0xOzE8PXImJjA8PW8mJnNbcl0hPT1jW29dOylvLS07Zm9yKDsxPD1yJiYwPD1vO3ItLSxvLS0paWYoc1tyXSE9PWNbb10pe2lmKDEhPT1yfHwxIT09bylkbyBpZihyLS0sby0tLDA+b3x8c1tyXSE9PWNbb10pe3ZhciB1PVwiXFxuXCIrc1tyXS5yZXBsYWNlKFwiIGF0IG5ldyBcIixcIiBhdCBcIik7cmV0dXJuIGUuZGlzcGxheU5hbWUmJnUuaW5jbHVkZXMoXCI8YW5vbnltb3VzPlwiKSYmKHU9dS5yZXBsYWNlKFwiPGFub255bW91cz5cIixlLmRpc3BsYXlOYW1lKSksdX13aGlsZSgxPD1yJiYwPD1vKTticmVha319fWZpbmFsbHl7Sz0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT1ufXJldHVybihuPWU/ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lOlwiXCIpP1kobik6XCJcIn1mdW5jdGlvbiBHKGUpe3RyeXt2YXIgdD1cIlwiLG49bnVsbDtkbyB0Kz1mdW5jdGlvbihlLHQpe3N3aXRjaChlLnRhZyl7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpyZXR1cm4gWShlLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIFkoXCJMYXp5XCIpO2Nhc2UgMTM6cmV0dXJuIGUuY2hpbGQhPT10JiZudWxsIT09dD9ZKFwiU3VzcGVuc2UgRmFsbGJhY2tcIik6WShcIlN1c3BlbnNlXCIpO2Nhc2UgMTk6cmV0dXJuIFkoXCJTdXNwZW5zZUxpc3RcIik7Y2FzZSAwOmNhc2UgMTU6cmV0dXJuIFgoZS50eXBlLCExKTtjYXNlIDExOnJldHVybiBYKGUudHlwZS5yZW5kZXIsITEpO2Nhc2UgMTpyZXR1cm4gWChlLnR5cGUsITApO2Nhc2UgMzE6cmV0dXJuIFkoXCJBY3Rpdml0eVwiKTtkZWZhdWx0OnJldHVyblwiXCJ9fShlLG4pLG49ZSxlPWUucmV0dXJuO3doaWxlKGUpO3JldHVybiB0fWNhdGNoKGUpe3JldHVyblwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIrZS5tZXNzYWdlK1wiXFxuXCIrZS5zdGFja319dmFyIFE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxKPW8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxlZT1vLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLGV0PW8udW5zdGFibGVfc2hvdWxkWWllbGQsZW49by51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsZXI9by51bnN0YWJsZV9ub3csZW89by51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxlYT1vLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGVpPW8udW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksZWw9by51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxlcz1vLnVuc3RhYmxlX0xvd1ByaW9yaXR5LGVjPW8udW5zdGFibGVfSWRsZVByaW9yaXR5LGV1PW8ubG9nLGVkPW8udW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWUsZWY9bnVsbCxlcD1udWxsO2Z1bmN0aW9uIGVoKGUpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGV1JiZlZChlKSxlcCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZXAuc2V0U3RyaWN0TW9kZSl0cnl7ZXAuc2V0U3RyaWN0TW9kZShlZixlKX1jYXRjaChlKXt9fXZhciBlbT1NYXRoLmNsejMyP01hdGguY2x6MzI6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PShlPj4+PTApPzMyOjMxLShlZyhlKS9leXwwKXwwfSxlZz1NYXRoLmxvZyxleT1NYXRoLkxOMixldj0yNTYsZWI9NDE5NDMwNDtmdW5jdGlvbiBlQShlKXt2YXIgdD00MiZlO2lmKDAhPT10KXJldHVybiB0O3N3aXRjaChlJi1lKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpyZXR1cm4gNjQ7Y2FzZSAxMjg6cmV0dXJuIDEyODtjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gNDE5NDA0OCZlO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAweDEwMDAwMDA6Y2FzZSAweDIwMDAwMDA6cmV0dXJuIDB4M2MwMDAwMCZlO2Nhc2UgMHg0MDAwMDAwOnJldHVybiAweDQwMDAwMDA7Y2FzZSAweDgwMDAwMDA6cmV0dXJuIDB4ODAwMDAwMDtjYXNlIDB4MTAwMDAwMDA6cmV0dXJuIDB4MTAwMDAwMDA7Y2FzZSAweDIwMDAwMDAwOnJldHVybiAweDIwMDAwMDAwO2Nhc2UgMHg0MDAwMDAwMDpyZXR1cm4gMDtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBleChlLHQsbil7dmFyIHI9ZS5wZW5kaW5nTGFuZXM7aWYoMD09PXIpcmV0dXJuIDA7dmFyIG89MCxhPWUuc3VzcGVuZGVkTGFuZXMsaT1lLnBpbmdlZExhbmVzO2U9ZS53YXJtTGFuZXM7dmFyIGw9MHg3ZmZmZmZmJnI7cmV0dXJuIDAhPT1sPzAhPShyPWwmfmEpP289ZUEocik6MCE9KGkmPWwpP289ZUEoaSk6bnx8MCE9KG49bCZ+ZSkmJihvPWVBKG4pKTowIT0obD1yJn5hKT9vPWVBKGwpOjAhPT1pP289ZUEoaSk6bnx8MCE9KG49ciZ+ZSkmJihvPWVBKG4pKSwwPT09bz8wOjAhPT10JiZ0IT09byYmMD09KHQmYSkmJigoYT1vJi1vKT49KG49dCYtdCl8fDMyPT09YSYmMCE9KDQxOTQwNDgmbikpP3Q6b31mdW5jdGlvbiBldyhlLHQpe3JldHVybiAwPT0oZS5wZW5kaW5nTGFuZXMmfihlLnN1c3BlbmRlZExhbmVzJn5lLnBpbmdlZExhbmVzKSZ0KX1mdW5jdGlvbiBlQygpe3ZhciBlPWV2O3JldHVybiAwPT0oNDE5NDA0OCYoZXY8PD0xKSkmJihldj0yNTYpLGV9ZnVuY3Rpb24gZV8oKXt2YXIgZT1lYjtyZXR1cm4gMD09KDB4M2MwMDAwMCYoZWI8PD0xKSkmJihlYj00MTk0MzA0KSxlfWZ1bmN0aW9uIGVrKGUpe2Zvcih2YXIgdD1bXSxuPTA7MzE+bjtuKyspdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIGVFKGUsdCl7ZS5wZW5kaW5nTGFuZXN8PXQsMHgxMDAwMDAwMCE9PXQmJihlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wLGUud2FybUxhbmVzPTApfWZ1bmN0aW9uIGVqKGUsdCxuKXtlLnBlbmRpbmdMYW5lc3w9dCxlLnN1c3BlbmRlZExhbmVzJj1+dDt2YXIgcj0zMS1lbSh0KTtlLmVudGFuZ2xlZExhbmVzfD10LGUuZW50YW5nbGVtZW50c1tyXT0weDQwMDAwMDAwfGUuZW50YW5nbGVtZW50c1tyXXw0MTk0MDkwJm59ZnVuY3Rpb24gZVMoZSx0KXt2YXIgbj1lLmVudGFuZ2xlZExhbmVzfD10O2ZvcihlPWUuZW50YW5nbGVtZW50cztuOyl7dmFyIHI9MzEtZW0obiksbz0xPDxyO28mdHxlW3JdJnQmJihlW3JdfD10KSxuJj1+b319ZnVuY3Rpb24gZU8oZSx0KXt2YXIgbj10Ji10O3JldHVybiAwIT0oKG49MCE9KDQyJm4pPzE6ZUIobikpJihlLnN1c3BlbmRlZExhbmVzfHQpKT8wOm59ZnVuY3Rpb24gZUIoZSl7c3dpdGNoKGUpe2Nhc2UgMjplPTE7YnJlYWs7Y2FzZSA4OmU9NDticmVhaztjYXNlIDMyOmU9MTY7YnJlYWs7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDB4MTAwMDAwMDpjYXNlIDB4MjAwMDAwMDplPTEyODticmVhaztjYXNlIDB4MTAwMDAwMDA6ZT0weDgwMDAwMDA7YnJlYWs7ZGVmYXVsdDplPTB9cmV0dXJuIGV9ZnVuY3Rpb24gZVAoZSl7cmV0dXJuIDI8KGUmPS1lKT84PGU/MCE9KDB4N2ZmZmZmZiZlKT8zMjoweDEwMDAwMDAwOjg6Mn1mdW5jdGlvbiBlSSgpe3ZhciBlPVQucDtyZXR1cm4gMCE9PWU/ZTp2b2lkIDA9PT0oZT13aW5kb3cuZXZlbnQpPzMyOnVkKGUudHlwZSl9ZnVuY3Rpb24gZVQoZSx0KXt2YXIgbj1ULnA7dHJ5e3JldHVybiBULnA9ZSx0KCl9ZmluYWxseXtULnA9bn19dmFyIGV6PU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLGVEPVwiX19yZWFjdEZpYmVyJFwiK2V6LGVMPVwiX19yZWFjdFByb3BzJFwiK2V6LGVOPVwiX19yZWFjdENvbnRhaW5lciRcIitleixlUj1cIl9fcmVhY3RFdmVudHMkXCIrZXosZU09XCJfX3JlYWN0TGlzdGVuZXJzJFwiK2V6LGVaPVwiX19yZWFjdEhhbmRsZXMkXCIrZXosZVU9XCJfX3JlYWN0UmVzb3VyY2VzJFwiK2V6LGVGPVwiX19yZWFjdE1hcmtlciRcIitlejtmdW5jdGlvbiBlcShlKXtkZWxldGUgZVtlRF0sZGVsZXRlIGVbZUxdLGRlbGV0ZSBlW2VSXSxkZWxldGUgZVtlTV0sZGVsZXRlIGVbZVpdfWZ1bmN0aW9uIGVIKGUpe3ZhciB0PWVbZURdO2lmKHQpcmV0dXJuIHQ7Zm9yKHZhciBuPWUucGFyZW50Tm9kZTtuOyl7aWYodD1uW2VOXXx8bltlRF0pe2lmKG49dC5hbHRlcm5hdGUsbnVsbCE9PXQuY2hpbGR8fG51bGwhPT1uJiZudWxsIT09bi5jaGlsZClmb3IoZT1jVChlKTtudWxsIT09ZTspe2lmKG49ZVtlRF0pcmV0dXJuIG47ZT1jVChlKX1yZXR1cm4gdH1uPShlPW4pLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZVYoZSl7aWYoZT1lW2VEXXx8ZVtlTl0pe3ZhciB0PWUudGFnO2lmKDU9PT10fHw2PT09dHx8MTM9PT10fHwzMT09PXR8fDI2PT09dHx8Mjc9PT10fHwzPT09dClyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBlJChlKXt2YXIgdD1lLnRhZztpZig1PT09dHx8MjY9PT10fHwyNz09PXR8fDY9PT10KXJldHVybiBlLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihsKDMzKSl9ZnVuY3Rpb24gZVcoZSl7dmFyIHQ9ZVtlVV07cmV0dXJuIHR8fCh0PWVbZVVdPXtob2lzdGFibGVTdHlsZXM6bmV3IE1hcCxob2lzdGFibGVTY3JpcHRzOm5ldyBNYXB9KSx0fWZ1bmN0aW9uIGVZKGUpe2VbZUZdPSEwfXZhciBlSz1uZXcgU2V0LGVYPXt9O2Z1bmN0aW9uIGVHKGUsdCl7ZVEoZSx0KSxlUShlK1wiQ2FwdHVyZVwiLHQpfWZ1bmN0aW9uIGVRKGUsdCl7Zm9yKGVYW2VdPXQsZT0wO2U8dC5sZW5ndGg7ZSsrKWVLLmFkZCh0W2VdKX12YXIgZUo9UmVnRXhwKFwiXls6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXVs6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXFxcXC0uMC05XFxcXHUwMEI3XFxcXHUwMzAwLVxcXFx1MDM2RlxcXFx1MjAzRi1cXFxcdTIwNDBdKiRcIiksZTA9e30sZTE9e307ZnVuY3Rpb24gZTIoZSx0LG4pe2lmKFEuY2FsbChlMSx0KXx8IVEuY2FsbChlMCx0KSYmKGVKLnRlc3QodCk/ZTFbdF09ITA6KGUwW3RdPSEwLCExKSkpaWYobnVsbD09PW4pZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtzd2l0Y2godHlwZW9mIG4pe2Nhc2VcInVuZGVmaW5lZFwiOmNhc2VcImZ1bmN0aW9uXCI6Y2FzZVwic3ltYm9sXCI6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7cmV0dXJuO2Nhc2VcImJvb2xlYW5cIjp2YXIgcj10LnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtpZihcImRhdGEtXCIhPT1yJiZcImFyaWEtXCIhPT1yKXJldHVybiB2b2lkIGUucmVtb3ZlQXR0cmlidXRlKHQpfWUuc2V0QXR0cmlidXRlKHQsXCJcIituKX19ZnVuY3Rpb24gZTQoZSx0LG4pe2lmKG51bGw9PT1uKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7c3dpdGNoKHR5cGVvZiBuKXtjYXNlXCJ1bmRlZmluZWRcIjpjYXNlXCJmdW5jdGlvblwiOmNhc2VcInN5bWJvbFwiOmNhc2VcImJvb2xlYW5cIjplLnJlbW92ZUF0dHJpYnV0ZSh0KTtyZXR1cm59ZS5zZXRBdHRyaWJ1dGUodCxcIlwiK24pfX1mdW5jdGlvbiBlNShlLHQsbixyKXtpZihudWxsPT09cillLnJlbW92ZUF0dHJpYnV0ZShuKTtlbHNle3N3aXRjaCh0eXBlb2Ygcil7Y2FzZVwidW5kZWZpbmVkXCI6Y2FzZVwiZnVuY3Rpb25cIjpjYXNlXCJzeW1ib2xcIjpjYXNlXCJib29sZWFuXCI6ZS5yZW1vdmVBdHRyaWJ1dGUobik7cmV0dXJufWUuc2V0QXR0cmlidXRlTlModCxuLFwiXCIrcil9fWZ1bmN0aW9uIGUzKGUpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZVwiYmlnaW50XCI6Y2FzZVwiYm9vbGVhblwiOmNhc2VcIm51bWJlclwiOmNhc2VcInN0cmluZ1wiOmNhc2VcInVuZGVmaW5lZFwiOmNhc2VcIm9iamVjdFwiOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuXCJcIn19ZnVuY3Rpb24gZTYoZSl7dmFyIHQ9ZS50eXBlO3JldHVybihlPWUubm9kZU5hbWUpJiZcImlucHV0XCI9PT1lLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT10fHxcInJhZGlvXCI9PT10KX1mdW5jdGlvbiBlOShlKXtpZighZS5fdmFsdWVUcmFja2VyKXt2YXIgdD1lNihlKT9cImNoZWNrZWRcIjpcInZhbHVlXCI7ZS5fdmFsdWVUcmFja2VyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUuY29uc3RydWN0b3IucHJvdG90eXBlLHQpO2lmKCFlLmhhc093blByb3BlcnR5KHQpJiZ2b2lkIDAhPT1yJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmdldCYmXCJmdW5jdGlvblwiPT10eXBlb2Ygci5zZXQpe3ZhciBvPXIuZ2V0LGE9ci5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oZSl7bj1cIlwiK2UsYS5jYWxsKHRoaXMsZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTpyLmVudW1lcmFibGV9KSx7Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbn0sc2V0VmFsdWU6ZnVuY3Rpb24oZSl7bj1cIlwiK2V9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2UuX3ZhbHVlVHJhY2tlcj1udWxsLGRlbGV0ZSBlW3RdfX19fShlLHQsXCJcIitlW3RdKX19ZnVuY3Rpb24gZTgoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS5fdmFsdWVUcmFja2VyO2lmKCF0KXJldHVybiEwO3ZhciBuPXQuZ2V0VmFsdWUoKSxyPVwiXCI7cmV0dXJuIGUmJihyPWU2KGUpP2UuY2hlY2tlZD9cInRydWVcIjpcImZhbHNlXCI6ZS52YWx1ZSksKGU9cikhPT1uJiYodC5zZXRWYWx1ZShlKSwhMCl9ZnVuY3Rpb24gZTcoZSl7aWYodm9pZCAwPT09KGU9ZXx8KFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApKSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGUuYWN0aXZlRWxlbWVudHx8ZS5ib2R5fWNhdGNoKHQpe3JldHVybiBlLmJvZHl9fXZhciB0ZT0vW1xcblwiXFxcXF0vZztmdW5jdGlvbiB0dChlKXtyZXR1cm4gZS5yZXBsYWNlKHRlLGZ1bmN0aW9uKGUpe3JldHVyblwiXFxcXFwiK2UuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikrXCIgXCJ9KX1mdW5jdGlvbiB0bihlLHQsbixyLG8sYSxpLGwpe2UubmFtZT1cIlwiLG51bGwhPWkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGkmJlwic3ltYm9sXCIhPXR5cGVvZiBpJiZcImJvb2xlYW5cIiE9dHlwZW9mIGk/ZS50eXBlPWk6ZS5yZW1vdmVBdHRyaWJ1dGUoXCJ0eXBlXCIpLG51bGwhPXQ/XCJudW1iZXJcIj09PWk/KDA9PT10JiZcIlwiPT09ZS52YWx1ZXx8ZS52YWx1ZSE9dCkmJihlLnZhbHVlPVwiXCIrZTModCkpOmUudmFsdWUhPT1cIlwiK2UzKHQpJiYoZS52YWx1ZT1cIlwiK2UzKHQpKTpcInN1Ym1pdFwiIT09aSYmXCJyZXNldFwiIT09aXx8ZS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKSxudWxsIT10P3RvKGUsaSxlMyh0KSk6bnVsbCE9bj90byhlLGksZTMobikpOm51bGwhPXImJmUucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIiksbnVsbD09byYmbnVsbCE9YSYmKGUuZGVmYXVsdENoZWNrZWQ9ISFhKSxudWxsIT1vJiYoZS5jaGVja2VkPW8mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJlwic3ltYm9sXCIhPXR5cGVvZiBvKSxudWxsIT1sJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBsJiZcInN5bWJvbFwiIT10eXBlb2YgbCYmXCJib29sZWFuXCIhPXR5cGVvZiBsP2UubmFtZT1cIlwiK2UzKGwpOmUucmVtb3ZlQXR0cmlidXRlKFwibmFtZVwiKX1mdW5jdGlvbiB0cihlLHQsbixyLG8sYSxpLGwpe2lmKG51bGwhPWEmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGEmJlwic3ltYm9sXCIhPXR5cGVvZiBhJiZcImJvb2xlYW5cIiE9dHlwZW9mIGEmJihlLnR5cGU9YSksbnVsbCE9dHx8bnVsbCE9bil7aWYoKFwic3VibWl0XCI9PT1hfHxcInJlc2V0XCI9PT1hKSYmbnVsbD09dClyZXR1cm4gdm9pZCBlOShlKTtuPW51bGwhPW4/XCJcIitlMyhuKTpcIlwiLHQ9bnVsbCE9dD9cIlwiK2UzKHQpOm4sbHx8dD09PWUudmFsdWV8fChlLnZhbHVlPXQpLGUuZGVmYXVsdFZhbHVlPXR9cj1cImZ1bmN0aW9uXCIhPXR5cGVvZihyPW51bGwhPXI/cjpvKSYmXCJzeW1ib2xcIiE9dHlwZW9mIHImJiEhcixlLmNoZWNrZWQ9bD9lLmNoZWNrZWQ6ISFyLGUuZGVmYXVsdENoZWNrZWQ9ISFyLG51bGwhPWkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGkmJlwic3ltYm9sXCIhPXR5cGVvZiBpJiZcImJvb2xlYW5cIiE9dHlwZW9mIGkmJihlLm5hbWU9aSksZTkoZSl9ZnVuY3Rpb24gdG8oZSx0LG4pe1wibnVtYmVyXCI9PT10JiZlNyhlLm93bmVyRG9jdW1lbnQpPT09ZXx8ZS5kZWZhdWx0VmFsdWU9PT1cIlwiK258fChlLmRlZmF1bHRWYWx1ZT1cIlwiK24pfWZ1bmN0aW9uIHRhKGUsdCxuLHIpe2lmKGU9ZS5vcHRpb25zLHQpe3Q9e307Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspdFtcIiRcIituW29dXT0hMDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKW89dC5oYXNPd25Qcm9wZXJ0eShcIiRcIitlW25dLnZhbHVlKSxlW25dLnNlbGVjdGVkIT09byYmKGVbbl0uc2VsZWN0ZWQ9byksbyYmciYmKGVbbl0uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2ZvcihvPTAsbj1cIlwiK2UzKG4pLHQ9bnVsbDtvPGUubGVuZ3RoO28rKyl7aWYoZVtvXS52YWx1ZT09PW4pe2Vbb10uc2VsZWN0ZWQ9ITAsciYmKGVbb10uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59bnVsbCE9PXR8fGVbb10uZGlzYWJsZWR8fCh0PWVbb10pfW51bGwhPT10JiYodC5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIHRpKGUsdCxuKXtpZihudWxsIT10JiYoKHQ9XCJcIitlMyh0KSkhPT1lLnZhbHVlJiYoZS52YWx1ZT10KSxudWxsPT1uKSl7ZS5kZWZhdWx0VmFsdWUhPT10JiYoZS5kZWZhdWx0VmFsdWU9dCk7cmV0dXJufWUuZGVmYXVsdFZhbHVlPW51bGwhPW4/XCJcIitlMyhuKTpcIlwifWZ1bmN0aW9uIHRsKGUsdCxuLHIpe2lmKG51bGw9PXQpe2lmKG51bGwhPXIpe2lmKG51bGwhPW4pdGhyb3cgRXJyb3IobCg5MikpO2lmKFAocikpe2lmKDE8ci5sZW5ndGgpdGhyb3cgRXJyb3IobCg5MykpO3I9clswXX1uPXJ9bnVsbD09biYmKG49XCJcIiksdD1ufWUuZGVmYXVsdFZhbHVlPW49ZTModCksKHI9ZS50ZXh0Q29udGVudCk9PT1uJiZcIlwiIT09ciYmbnVsbCE9PXImJihlLnZhbHVlPXIpLGU5KGUpfWZ1bmN0aW9uIHRzKGUsdCl7aWYodCl7dmFyIG49ZS5maXJzdENoaWxkO2lmKG4mJm49PT1lLmxhc3RDaGlsZCYmMz09PW4ubm9kZVR5cGUpe24ubm9kZVZhbHVlPXQ7cmV0dXJufX1lLnRleHRDb250ZW50PXR9dmFyIHRjPW5ldyBTZXQoXCJhbmltYXRpb25JdGVyYXRpb25Db3VudCBhc3BlY3RSYXRpbyBib3JkZXJJbWFnZU91dHNldCBib3JkZXJJbWFnZVNsaWNlIGJvcmRlckltYWdlV2lkdGggYm94RmxleCBib3hGbGV4R3JvdXAgYm94T3JkaW5hbEdyb3VwIGNvbHVtbkNvdW50IGNvbHVtbnMgZmxleCBmbGV4R3JvdyBmbGV4UG9zaXRpdmUgZmxleFNocmluayBmbGV4TmVnYXRpdmUgZmxleE9yZGVyIGdyaWRBcmVhIGdyaWRSb3cgZ3JpZFJvd0VuZCBncmlkUm93U3BhbiBncmlkUm93U3RhcnQgZ3JpZENvbHVtbiBncmlkQ29sdW1uRW5kIGdyaWRDb2x1bW5TcGFuIGdyaWRDb2x1bW5TdGFydCBmb250V2VpZ2h0IGxpbmVDbGFtcCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JkZXIgb3JwaGFucyBzY2FsZSB0YWJTaXplIHdpZG93cyB6SW5kZXggem9vbSBmaWxsT3BhY2l0eSBmbG9vZE9wYWNpdHkgc3RvcE9wYWNpdHkgc3Ryb2tlRGFzaGFycmF5IHN0cm9rZURhc2hvZmZzZXQgc3Ryb2tlTWl0ZXJsaW1pdCBzdHJva2VPcGFjaXR5IHN0cm9rZVdpZHRoIE1vekFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IE1vekJveEZsZXggTW96Qm94RmxleEdyb3VwIE1vekxpbmVDbGFtcCBtc0FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IG1zRmxleCBtc1pvb20gbXNGbGV4R3JvdyBtc0ZsZXhOZWdhdGl2ZSBtc0ZsZXhPcmRlciBtc0ZsZXhQb3NpdGl2ZSBtc0ZsZXhTaHJpbmsgbXNHcmlkQ29sdW1uIG1zR3JpZENvbHVtblNwYW4gbXNHcmlkUm93IG1zR3JpZFJvd1NwYW4gV2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgV2Via2l0Qm94RmxleCBXZWJLaXRCb3hGbGV4R3JvdXAgV2Via2l0Qm94T3JkaW5hbEdyb3VwIFdlYmtpdENvbHVtbkNvdW50IFdlYmtpdENvbHVtbnMgV2Via2l0RmxleCBXZWJraXRGbGV4R3JvdyBXZWJraXRGbGV4UG9zaXRpdmUgV2Via2l0RmxleFNocmluayBXZWJraXRMaW5lQ2xhbXBcIi5zcGxpdChcIiBcIikpO2Z1bmN0aW9uIHR1KGUsdCxuKXt2YXIgcj0wPT09dC5pbmRleE9mKFwiLS1cIik7bnVsbD09bnx8XCJib29sZWFuXCI9PXR5cGVvZiBufHxcIlwiPT09bj9yP2Uuc2V0UHJvcGVydHkodCxcIlwiKTpcImZsb2F0XCI9PT10P2UuY3NzRmxvYXQ9XCJcIjplW3RdPVwiXCI6cj9lLnNldFByb3BlcnR5KHQsbik6XCJudW1iZXJcIiE9dHlwZW9mIG58fDA9PT1ufHx0Yy5oYXModCk/XCJmbG9hdFwiPT09dD9lLmNzc0Zsb2F0PW46ZVt0XT0oXCJcIituKS50cmltKCk6ZVt0XT1uK1wicHhcIn1mdW5jdGlvbiB0ZChlLHQsbil7aWYobnVsbCE9dCYmXCJvYmplY3RcIiE9dHlwZW9mIHQpdGhyb3cgRXJyb3IobCg2MikpO2lmKGU9ZS5zdHlsZSxudWxsIT1uKXtmb3IodmFyIHIgaW4gbikhbi5oYXNPd25Qcm9wZXJ0eShyKXx8bnVsbCE9dCYmdC5oYXNPd25Qcm9wZXJ0eShyKXx8KDA9PT1yLmluZGV4T2YoXCItLVwiKT9lLnNldFByb3BlcnR5KHIsXCJcIik6XCJmbG9hdFwiPT09cj9lLmNzc0Zsb2F0PVwiXCI6ZVtyXT1cIlwiKTtmb3IodmFyIG8gaW4gdClyPXRbb10sdC5oYXNPd25Qcm9wZXJ0eShvKSYmbltvXSE9PXImJnR1KGUsbyxyKX1lbHNlIGZvcih2YXIgYSBpbiB0KXQuaGFzT3duUHJvcGVydHkoYSkmJnR1KGUsYSx0W2FdKX1mdW5jdGlvbiB0ZihlKXtpZigtMT09PWUuaW5kZXhPZihcIi1cIikpcmV0dXJuITE7c3dpdGNoKGUpe2Nhc2VcImFubm90YXRpb24teG1sXCI6Y2FzZVwiY29sb3ItcHJvZmlsZVwiOmNhc2VcImZvbnQtZmFjZVwiOmNhc2VcImZvbnQtZmFjZS1zcmNcIjpjYXNlXCJmb250LWZhY2UtdXJpXCI6Y2FzZVwiZm9udC1mYWNlLWZvcm1hdFwiOmNhc2VcImZvbnQtZmFjZS1uYW1lXCI6Y2FzZVwibWlzc2luZy1nbHlwaFwiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciB0cD1uZXcgTWFwKFtbXCJhY2NlcHRDaGFyc2V0XCIsXCJhY2NlcHQtY2hhcnNldFwiXSxbXCJodG1sRm9yXCIsXCJmb3JcIl0sW1wiaHR0cEVxdWl2XCIsXCJodHRwLWVxdWl2XCJdLFtcImNyb3NzT3JpZ2luXCIsXCJjcm9zc29yaWdpblwiXSxbXCJhY2NlbnRIZWlnaHRcIixcImFjY2VudC1oZWlnaHRcIl0sW1wiYWxpZ25tZW50QmFzZWxpbmVcIixcImFsaWdubWVudC1iYXNlbGluZVwiXSxbXCJhcmFiaWNGb3JtXCIsXCJhcmFiaWMtZm9ybVwiXSxbXCJiYXNlbGluZVNoaWZ0XCIsXCJiYXNlbGluZS1zaGlmdFwiXSxbXCJjYXBIZWlnaHRcIixcImNhcC1oZWlnaHRcIl0sW1wiY2xpcFBhdGhcIixcImNsaXAtcGF0aFwiXSxbXCJjbGlwUnVsZVwiLFwiY2xpcC1ydWxlXCJdLFtcImNvbG9ySW50ZXJwb2xhdGlvblwiLFwiY29sb3ItaW50ZXJwb2xhdGlvblwiXSxbXCJjb2xvckludGVycG9sYXRpb25GaWx0ZXJzXCIsXCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnNcIl0sW1wiY29sb3JQcm9maWxlXCIsXCJjb2xvci1wcm9maWxlXCJdLFtcImNvbG9yUmVuZGVyaW5nXCIsXCJjb2xvci1yZW5kZXJpbmdcIl0sW1wiZG9taW5hbnRCYXNlbGluZVwiLFwiZG9taW5hbnQtYmFzZWxpbmVcIl0sW1wiZW5hYmxlQmFja2dyb3VuZFwiLFwiZW5hYmxlLWJhY2tncm91bmRcIl0sW1wiZmlsbE9wYWNpdHlcIixcImZpbGwtb3BhY2l0eVwiXSxbXCJmaWxsUnVsZVwiLFwiZmlsbC1ydWxlXCJdLFtcImZsb29kQ29sb3JcIixcImZsb29kLWNvbG9yXCJdLFtcImZsb29kT3BhY2l0eVwiLFwiZmxvb2Qtb3BhY2l0eVwiXSxbXCJmb250RmFtaWx5XCIsXCJmb250LWZhbWlseVwiXSxbXCJmb250U2l6ZVwiLFwiZm9udC1zaXplXCJdLFtcImZvbnRTaXplQWRqdXN0XCIsXCJmb250LXNpemUtYWRqdXN0XCJdLFtcImZvbnRTdHJldGNoXCIsXCJmb250LXN0cmV0Y2hcIl0sW1wiZm9udFN0eWxlXCIsXCJmb250LXN0eWxlXCJdLFtcImZvbnRWYXJpYW50XCIsXCJmb250LXZhcmlhbnRcIl0sW1wiZm9udFdlaWdodFwiLFwiZm9udC13ZWlnaHRcIl0sW1wiZ2x5cGhOYW1lXCIsXCJnbHlwaC1uYW1lXCJdLFtcImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsXCIsXCJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsXCJdLFtcImdseXBoT3JpZW50YXRpb25WZXJ0aWNhbFwiLFwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWxcIl0sW1wiaG9yaXpBZHZYXCIsXCJob3Jpei1hZHYteFwiXSxbXCJob3Jpek9yaWdpblhcIixcImhvcml6LW9yaWdpbi14XCJdLFtcImltYWdlUmVuZGVyaW5nXCIsXCJpbWFnZS1yZW5kZXJpbmdcIl0sW1wibGV0dGVyU3BhY2luZ1wiLFwibGV0dGVyLXNwYWNpbmdcIl0sW1wibGlnaHRpbmdDb2xvclwiLFwibGlnaHRpbmctY29sb3JcIl0sW1wibWFya2VyRW5kXCIsXCJtYXJrZXItZW5kXCJdLFtcIm1hcmtlck1pZFwiLFwibWFya2VyLW1pZFwiXSxbXCJtYXJrZXJTdGFydFwiLFwibWFya2VyLXN0YXJ0XCJdLFtcIm92ZXJsaW5lUG9zaXRpb25cIixcIm92ZXJsaW5lLXBvc2l0aW9uXCJdLFtcIm92ZXJsaW5lVGhpY2tuZXNzXCIsXCJvdmVybGluZS10aGlja25lc3NcIl0sW1wicGFpbnRPcmRlclwiLFwicGFpbnQtb3JkZXJcIl0sW1wicGFub3NlLTFcIixcInBhbm9zZS0xXCJdLFtcInBvaW50ZXJFdmVudHNcIixcInBvaW50ZXItZXZlbnRzXCJdLFtcInJlbmRlcmluZ0ludGVudFwiLFwicmVuZGVyaW5nLWludGVudFwiXSxbXCJzaGFwZVJlbmRlcmluZ1wiLFwic2hhcGUtcmVuZGVyaW5nXCJdLFtcInN0b3BDb2xvclwiLFwic3RvcC1jb2xvclwiXSxbXCJzdG9wT3BhY2l0eVwiLFwic3RvcC1vcGFjaXR5XCJdLFtcInN0cmlrZXRocm91Z2hQb3NpdGlvblwiLFwic3RyaWtldGhyb3VnaC1wb3NpdGlvblwiXSxbXCJzdHJpa2V0aHJvdWdoVGhpY2tuZXNzXCIsXCJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzc1wiXSxbXCJzdHJva2VEYXNoYXJyYXlcIixcInN0cm9rZS1kYXNoYXJyYXlcIl0sW1wic3Ryb2tlRGFzaG9mZnNldFwiLFwic3Ryb2tlLWRhc2hvZmZzZXRcIl0sW1wic3Ryb2tlTGluZWNhcFwiLFwic3Ryb2tlLWxpbmVjYXBcIl0sW1wic3Ryb2tlTGluZWpvaW5cIixcInN0cm9rZS1saW5lam9pblwiXSxbXCJzdHJva2VNaXRlcmxpbWl0XCIsXCJzdHJva2UtbWl0ZXJsaW1pdFwiXSxbXCJzdHJva2VPcGFjaXR5XCIsXCJzdHJva2Utb3BhY2l0eVwiXSxbXCJzdHJva2VXaWR0aFwiLFwic3Ryb2tlLXdpZHRoXCJdLFtcInRleHRBbmNob3JcIixcInRleHQtYW5jaG9yXCJdLFtcInRleHREZWNvcmF0aW9uXCIsXCJ0ZXh0LWRlY29yYXRpb25cIl0sW1widGV4dFJlbmRlcmluZ1wiLFwidGV4dC1yZW5kZXJpbmdcIl0sW1widHJhbnNmb3JtT3JpZ2luXCIsXCJ0cmFuc2Zvcm0tb3JpZ2luXCJdLFtcInVuZGVybGluZVBvc2l0aW9uXCIsXCJ1bmRlcmxpbmUtcG9zaXRpb25cIl0sW1widW5kZXJsaW5lVGhpY2tuZXNzXCIsXCJ1bmRlcmxpbmUtdGhpY2tuZXNzXCJdLFtcInVuaWNvZGVCaWRpXCIsXCJ1bmljb2RlLWJpZGlcIl0sW1widW5pY29kZVJhbmdlXCIsXCJ1bmljb2RlLXJhbmdlXCJdLFtcInVuaXRzUGVyRW1cIixcInVuaXRzLXBlci1lbVwiXSxbXCJ2QWxwaGFiZXRpY1wiLFwidi1hbHBoYWJldGljXCJdLFtcInZIYW5naW5nXCIsXCJ2LWhhbmdpbmdcIl0sW1widklkZW9ncmFwaGljXCIsXCJ2LWlkZW9ncmFwaGljXCJdLFtcInZNYXRoZW1hdGljYWxcIixcInYtbWF0aGVtYXRpY2FsXCJdLFtcInZlY3RvckVmZmVjdFwiLFwidmVjdG9yLWVmZmVjdFwiXSxbXCJ2ZXJ0QWR2WVwiLFwidmVydC1hZHYteVwiXSxbXCJ2ZXJ0T3JpZ2luWFwiLFwidmVydC1vcmlnaW4teFwiXSxbXCJ2ZXJ0T3JpZ2luWVwiLFwidmVydC1vcmlnaW4teVwiXSxbXCJ3b3JkU3BhY2luZ1wiLFwid29yZC1zcGFjaW5nXCJdLFtcIndyaXRpbmdNb2RlXCIsXCJ3cml0aW5nLW1vZGVcIl0sW1wieG1sbnNYbGlua1wiLFwieG1sbnM6eGxpbmtcIl0sW1wieEhlaWdodFwiLFwieC1oZWlnaHRcIl1dKSx0aD0vXltcXHUwMDAwLVxcdTAwMUYgXSpqW1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnZbXFxyXFxuXFx0XSphW1xcclxcblxcdF0qc1tcXHJcXG5cXHRdKmNbXFxyXFxuXFx0XSpyW1xcclxcblxcdF0qaVtcXHJcXG5cXHRdKnBbXFxyXFxuXFx0XSp0W1xcclxcblxcdF0qOi9pO2Z1bmN0aW9uIHRtKGUpe3JldHVybiB0aC50ZXN0KFwiXCIrZSk/XCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignUmVhY3QgaGFzIGJsb2NrZWQgYSBqYXZhc2NyaXB0OiBVUkwgYXMgYSBzZWN1cml0eSBwcmVjYXV0aW9uLicpXCI6ZX1mdW5jdGlvbiB0Zygpe312YXIgdHk9bnVsbDtmdW5jdGlvbiB0dihlKXtyZXR1cm4oZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3cpLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoZT1lLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KSwzPT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZX12YXIgdGI9bnVsbCx0QT1udWxsO2Z1bmN0aW9uIHR4KGUpe3ZhciB0PWVWKGUpO2lmKHQmJihlPXQuc3RhdGVOb2RlKSl7dmFyIG49ZVtlTF18fG51bGw7c3dpdGNoKGU9dC5zdGF0ZU5vZGUsdC50eXBlKXtjYXNlXCJpbnB1dFwiOmlmKHRuKGUsbi52YWx1ZSxuLmRlZmF1bHRWYWx1ZSxuLmRlZmF1bHRWYWx1ZSxuLmNoZWNrZWQsbi5kZWZhdWx0Q2hlY2tlZCxuLnR5cGUsbi5uYW1lKSx0PW4ubmFtZSxcInJhZGlvXCI9PT1uLnR5cGUmJm51bGwhPXQpe2ZvcihuPWU7bi5wYXJlbnROb2RlOyluPW4ucGFyZW50Tm9kZTtmb3Iobj1uLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9XCInK3R0KFwiXCIrdCkrJ1wiXVt0eXBlPVwicmFkaW9cIl0nKSx0PTA7dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF07aWYociE9PWUmJnIuZm9ybT09PWUuZm9ybSl7dmFyIG89cltlTF18fG51bGw7aWYoIW8pdGhyb3cgRXJyb3IobCg5MCkpO3RuKHIsby52YWx1ZSxvLmRlZmF1bHRWYWx1ZSxvLmRlZmF1bHRWYWx1ZSxvLmNoZWNrZWQsby5kZWZhdWx0Q2hlY2tlZCxvLnR5cGUsby5uYW1lKX19Zm9yKHQ9MDt0PG4ubGVuZ3RoO3QrKykocj1uW3RdKS5mb3JtPT09ZS5mb3JtJiZlOChyKX1icmVhaztjYXNlXCJ0ZXh0YXJlYVwiOnRpKGUsbi52YWx1ZSxuLmRlZmF1bHRWYWx1ZSk7YnJlYWs7Y2FzZVwic2VsZWN0XCI6bnVsbCE9KHQ9bi52YWx1ZSkmJnRhKGUsISFuLm11bHRpcGxlLHQsITEpfX19dmFyIHR3PSExO2Z1bmN0aW9uIHRDKGUsdCxuKXtpZih0dylyZXR1cm4gZSh0LG4pO3R3PSEwO3RyeXtyZXR1cm4gZSh0KX1maW5hbGx5e2lmKHR3PSExLChudWxsIT09dGJ8fG51bGwhPT10QSkmJihzYygpLHRiJiYodD10YixlPXRBLHRBPXRiPW51bGwsdHgodCksZSkpKWZvcih0PTA7dDxlLmxlbmd0aDt0KyspdHgoZVt0XSl9fWZ1bmN0aW9uIHRfKGUsdCl7dmFyIG49ZS5zdGF0ZU5vZGU7aWYobnVsbD09PW4pcmV0dXJuIG51bGw7dmFyIHI9bltlTF18fG51bGw7aWYobnVsbD09PXIpcmV0dXJuIG51bGw7c3dpdGNoKG49clt0XSx0KXtjYXNlXCJvbkNsaWNrXCI6Y2FzZVwib25DbGlja0NhcHR1cmVcIjpjYXNlXCJvbkRvdWJsZUNsaWNrXCI6Y2FzZVwib25Eb3VibGVDbGlja0NhcHR1cmVcIjpjYXNlXCJvbk1vdXNlRG93blwiOmNhc2VcIm9uTW91c2VEb3duQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VNb3ZlXCI6Y2FzZVwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZVwib25Nb3VzZVVwXCI6Y2FzZVwib25Nb3VzZVVwQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VFbnRlclwiOihyPSFyLmRpc2FibGVkKXx8KHI9XCJidXR0b25cIiE9PShlPWUudHlwZSkmJlwiaW5wdXRcIiE9PWUmJlwic2VsZWN0XCIhPT1lJiZcInRleHRhcmVhXCIhPT1lKSxlPSFyO2JyZWFrO2RlZmF1bHQ6ZT0hMX1pZihlKXJldHVybiBudWxsO2lmKG4mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgRXJyb3IobCgyMzEsdCx0eXBlb2YgbikpO3JldHVybiBufXZhciB0az1cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50LHRFPSExO2lmKHRrKXRyeXt2YXIgdGo9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHRqLFwicGFzc2l2ZVwiLHtnZXQ6ZnVuY3Rpb24oKXt0RT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIix0aix0aiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsdGosdGopfWNhdGNoKGUpe3RFPSExfXZhciB0Uz1udWxsLHRPPW51bGwsdEI9bnVsbDtmdW5jdGlvbiB0UCgpe2lmKHRCKXJldHVybiB0Qjt2YXIgZSx0LG49dE8scj1uLmxlbmd0aCxvPVwidmFsdWVcImluIHRTP3RTLnZhbHVlOnRTLnRleHRDb250ZW50LGE9by5sZW5ndGg7Zm9yKGU9MDtlPHImJm5bZV09PT1vW2VdO2UrKyk7dmFyIGk9ci1lO2Zvcih0PTE7dDw9aSYmbltyLXRdPT09b1thLXRdO3QrKyk7cmV0dXJuIHRCPW8uc2xpY2UoZSwxPHQ/MS10OnZvaWQgMCl9ZnVuY3Rpb24gdEkoZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVyblwiY2hhckNvZGVcImluIGU/MD09PShlPWUuY2hhckNvZGUpJiYxMz09PXQmJihlPTEzKTplPXQsMTA9PT1lJiYoZT0xMyksMzI8PWV8fDEzPT09ZT9lOjB9ZnVuY3Rpb24gdFQoKXtyZXR1cm4hMH1mdW5jdGlvbiB0eigpe3JldHVybiExfWZ1bmN0aW9uIHREKGUpe2Z1bmN0aW9uIHQodCxuLHIsbyxhKXtmb3IodmFyIGkgaW4gdGhpcy5fcmVhY3ROYW1lPXQsdGhpcy5fdGFyZ2V0SW5zdD1yLHRoaXMudHlwZT1uLHRoaXMubmF0aXZlRXZlbnQ9byx0aGlzLnRhcmdldD1hLHRoaXMuY3VycmVudFRhcmdldD1udWxsLGUpZS5oYXNPd25Qcm9wZXJ0eShpKSYmKHQ9ZVtpXSx0aGlzW2ldPXQ/dChvKTpvW2ldKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPW8uZGVmYXVsdFByZXZlbnRlZD9vLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1vLnJldHVyblZhbHVlKT90VDp0eix0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXR6LHRoaXN9cmV0dXJuIGYodC5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOlwidW5rbm93blwiIT10eXBlb2YgZS5yZXR1cm5WYWx1ZSYmKGUucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPXRUKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5uYXRpdmVFdmVudDtlJiYoZS5zdG9wUHJvcGFnYXRpb24/ZS5zdG9wUHJvcGFnYXRpb24oKTpcInVua25vd25cIiE9dHlwZW9mIGUuY2FuY2VsQnViYmxlJiYoZS5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dFQpfSxwZXJzaXN0OmZ1bmN0aW9uKCl7fSxpc1BlcnNpc3RlbnQ6dFR9KSx0fXZhciB0TCx0Tix0Uix0TSx0Wix0VT17ZXZlbnRQaGFzZTowLGJ1YmJsZXM6MCxjYW5jZWxhYmxlOjAsdGltZVN0YW1wOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRpbWVTdGFtcHx8RGF0ZS5ub3coKX0sZGVmYXVsdFByZXZlbnRlZDowLGlzVHJ1c3RlZDowfSx0Rj10RCh0VSksdHE9Zih7fSx0VSx7dmlldzowLGRldGFpbDowfSksdEg9dEQodHEpLHRWPWYoe30sdHEse3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6dDIsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUucmVsYXRlZFRhcmdldD9lLmZyb21FbGVtZW50PT09ZS5zcmNFbGVtZW50P2UudG9FbGVtZW50OmUuZnJvbUVsZW1lbnQ6ZS5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24oZSl7cmV0dXJuXCJtb3ZlbWVudFhcImluIGU/ZS5tb3ZlbWVudFg6KGUhPT10WiYmKHRaJiZcIm1vdXNlbW92ZVwiPT09ZS50eXBlPyh0Uj1lLnNjcmVlblgtdFouc2NyZWVuWCx0TT1lLnNjcmVlblktdFouc2NyZWVuWSk6dE09dFI9MCx0Wj1lKSx0Uil9LG1vdmVtZW50WTpmdW5jdGlvbihlKXtyZXR1cm5cIm1vdmVtZW50WVwiaW4gZT9lLm1vdmVtZW50WTp0TX19KSx0JD10RCh0ViksdFc9dEQoZih7fSx0Vix7ZGF0YVRyYW5zZmVyOjB9KSksdFk9dEQoZih7fSx0cSx7cmVsYXRlZFRhcmdldDowfSkpLHRLPXREKGYoe30sdFUse2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSx0WD10RChmKHt9LHRVLHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGUpe3JldHVyblwiY2xpcGJvYXJkRGF0YVwiaW4gZT9lLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSkpLHRHPXREKGYoe30sdFUse2RhdGE6MH0pKSx0UT17RXNjOlwiRXNjYXBlXCIsU3BhY2ViYXI6XCIgXCIsTGVmdDpcIkFycm93TGVmdFwiLFVwOlwiQXJyb3dVcFwiLFJpZ2h0OlwiQXJyb3dSaWdodFwiLERvd246XCJBcnJvd0Rvd25cIixEZWw6XCJEZWxldGVcIixXaW46XCJPU1wiLE1lbnU6XCJDb250ZXh0TWVudVwiLEFwcHM6XCJDb250ZXh0TWVudVwiLFNjcm9sbDpcIlNjcm9sbExvY2tcIixNb3pQcmludGFibGVLZXk6XCJVbmlkZW50aWZpZWRcIn0sdEo9ezg6XCJCYWNrc3BhY2VcIiw5OlwiVGFiXCIsMTI6XCJDbGVhclwiLDEzOlwiRW50ZXJcIiwxNjpcIlNoaWZ0XCIsMTc6XCJDb250cm9sXCIsMTg6XCJBbHRcIiwxOTpcIlBhdXNlXCIsMjA6XCJDYXBzTG9ja1wiLDI3OlwiRXNjYXBlXCIsMzI6XCIgXCIsMzM6XCJQYWdlVXBcIiwzNDpcIlBhZ2VEb3duXCIsMzU6XCJFbmRcIiwzNjpcIkhvbWVcIiwzNzpcIkFycm93TGVmdFwiLDM4OlwiQXJyb3dVcFwiLDM5OlwiQXJyb3dSaWdodFwiLDQwOlwiQXJyb3dEb3duXCIsNDU6XCJJbnNlcnRcIiw0NjpcIkRlbGV0ZVwiLDExMjpcIkYxXCIsMTEzOlwiRjJcIiwxMTQ6XCJGM1wiLDExNTpcIkY0XCIsMTE2OlwiRjVcIiwxMTc6XCJGNlwiLDExODpcIkY3XCIsMTE5OlwiRjhcIiwxMjA6XCJGOVwiLDEyMTpcIkYxMFwiLDEyMjpcIkYxMVwiLDEyMzpcIkYxMlwiLDE0NDpcIk51bUxvY2tcIiwxNDU6XCJTY3JvbGxMb2NrXCIsMjI0OlwiTWV0YVwifSx0MD17QWx0OlwiYWx0S2V5XCIsQ29udHJvbDpcImN0cmxLZXlcIixNZXRhOlwibWV0YUtleVwiLFNoaWZ0Olwic2hpZnRLZXlcIn07ZnVuY3Rpb24gdDEoZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPXQwW2VdKSYmISF0W2VdfWZ1bmN0aW9uIHQyKCl7cmV0dXJuIHQxfXZhciB0ND10RChmKHt9LHRxLHtrZXk6ZnVuY3Rpb24oZSl7aWYoZS5rZXkpe3ZhciB0PXRRW2Uua2V5XXx8ZS5rZXk7aWYoXCJVbmlkZW50aWZpZWRcIiE9PXQpcmV0dXJuIHR9cmV0dXJuXCJrZXlwcmVzc1wiPT09ZS50eXBlPzEzPT09KGU9dEkoZSkpP1wiRW50ZXJcIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGUpOlwia2V5ZG93blwiPT09ZS50eXBlfHxcImtleXVwXCI9PT1lLnR5cGU/dEpbZS5rZXlDb2RlXXx8XCJVbmlkZW50aWZpZWRcIjpcIlwifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTp0MixjaGFyQ29kZTpmdW5jdGlvbihlKXtyZXR1cm5cImtleXByZXNzXCI9PT1lLnR5cGU/dEkoZSk6MH0sa2V5Q29kZTpmdW5jdGlvbihlKXtyZXR1cm5cImtleWRvd25cIj09PWUudHlwZXx8XCJrZXl1cFwiPT09ZS50eXBlP2Uua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihlKXtyZXR1cm5cImtleXByZXNzXCI9PT1lLnR5cGU/dEkoZSk6XCJrZXlkb3duXCI9PT1lLnR5cGV8fFwia2V5dXBcIj09PWUudHlwZT9lLmtleUNvZGU6MH19KSksdDU9dEQoZih7fSx0Vix7cG9pbnRlcklkOjAsd2lkdGg6MCxoZWlnaHQ6MCxwcmVzc3VyZTowLHRhbmdlbnRpYWxQcmVzc3VyZTowLHRpbHRYOjAsdGlsdFk6MCx0d2lzdDowLHBvaW50ZXJUeXBlOjAsaXNQcmltYXJ5OjB9KSksdDM9dEQoZih7fSx0cSx7dG91Y2hlczowLHRhcmdldFRvdWNoZXM6MCxjaGFuZ2VkVG91Y2hlczowLGFsdEtleTowLG1ldGFLZXk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxnZXRNb2RpZmllclN0YXRlOnQyfSkpLHQ2PXREKGYoe30sdFUse3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkpLHQ5PXREKGYoe30sdFYse2RlbHRhWDpmdW5jdGlvbihlKXtyZXR1cm5cImRlbHRhWFwiaW4gZT9lLmRlbHRhWDpcIndoZWVsRGVsdGFYXCJpbiBlPy1lLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihlKXtyZXR1cm5cImRlbHRhWVwiaW4gZT9lLmRlbHRhWTpcIndoZWVsRGVsdGFZXCJpbiBlPy1lLndoZWVsRGVsdGFZOlwid2hlZWxEZWx0YVwiaW4gZT8tZS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSkpLHQ4PXREKGYoe30sdFUse25ld1N0YXRlOjAsb2xkU3RhdGU6MH0pKSx0Nz1bOSwxMywyNywzMl0sbmU9dGsmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LG50PW51bGw7dGsmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmKG50PWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIG5uPXRrJiZcIlRleHRFdmVudFwiaW4gd2luZG93JiYhbnQsbnI9dGsmJighbmV8fG50JiY4PG50JiYxMT49bnQpLG5vPSExO2Z1bmN0aW9uIG5hKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImtleXVwXCI6cmV0dXJuIC0xIT09dDcuaW5kZXhPZih0LmtleUNvZGUpO2Nhc2VcImtleWRvd25cIjpyZXR1cm4gMjI5IT09dC5rZXlDb2RlO2Nhc2VcImtleXByZXNzXCI6Y2FzZVwibW91c2Vkb3duXCI6Y2FzZVwiZm9jdXNvdXRcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBuaShlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YoZT1lLmRldGFpbCkmJlwiZGF0YVwiaW4gZT9lLmRhdGE6bnVsbH12YXIgbmw9ITEsbnM9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gbmMoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PXQ/ISFuc1tlLnR5cGVdOlwidGV4dGFyZWFcIj09PXR9ZnVuY3Rpb24gbnUoZSx0LG4scil7dGI/dEE/dEEucHVzaChyKTp0QT1bcl06dGI9ciwwPCh0PWN0KHQsXCJvbkNoYW5nZVwiKSkubGVuZ3RoJiYobj1uZXcgdEYoXCJvbkNoYW5nZVwiLFwiY2hhbmdlXCIsbnVsbCxuLHIpLGUucHVzaCh7ZXZlbnQ6bixsaXN0ZW5lcnM6dH0pKX12YXIgbmQ9bnVsbCxuZj1udWxsO2Z1bmN0aW9uIG5wKGUpe3M0KGUsMCl9ZnVuY3Rpb24gbmgoZSl7aWYoZTgoZSQoZSkpKXJldHVybiBlfWZ1bmN0aW9uIG5tKGUsdCl7aWYoXCJjaGFuZ2VcIj09PWUpcmV0dXJuIHR9dmFyIG5nPSExO2lmKHRrKXtpZih0ayl7dmFyIG55PVwib25pbnB1dFwiaW4gZG9jdW1lbnQ7aWYoIW55KXt2YXIgbnY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtudi5zZXRBdHRyaWJ1dGUoXCJvbmlucHV0XCIsXCJyZXR1cm47XCIpLG55PVwiZnVuY3Rpb25cIj09dHlwZW9mIG52Lm9uaW5wdXR9cj1ueX1lbHNlIHI9ITE7bmc9ciYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBuYigpe25kJiYobmQuZGV0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsbkEpLG5mPW5kPW51bGwpfWZ1bmN0aW9uIG5BKGUpe2lmKFwidmFsdWVcIj09PWUucHJvcGVydHlOYW1lJiZuaChuZikpe3ZhciB0PVtdO251KHQsbmYsZSx0dihlKSksdEMobnAsdCl9fWZ1bmN0aW9uIG54KGUsdCxuKXtcImZvY3VzaW5cIj09PWU/KG5iKCksbmQ9dCxuZj1uLG5kLmF0dGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLG5BKSk6XCJmb2N1c291dFwiPT09ZSYmbmIoKX1mdW5jdGlvbiBudyhlKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09ZXx8XCJrZXl1cFwiPT09ZXx8XCJrZXlkb3duXCI9PT1lKXJldHVybiBuaChuZil9ZnVuY3Rpb24gbkMoZSx0KXtpZihcImNsaWNrXCI9PT1lKXJldHVybiBuaCh0KX1mdW5jdGlvbiBuXyhlLHQpe2lmKFwiaW5wdXRcIj09PWV8fFwiY2hhbmdlXCI9PT1lKXJldHVybiBuaCh0KX12YXIgbms9XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpmdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKDAhPT1lfHwxL2U9PTEvdCl8fGUhPWUmJnQhPXR9O2Z1bmN0aW9uIG5FKGUsdCl7aWYobmsoZSx0KSlyZXR1cm4hMDtpZihcIm9iamVjdFwiIT10eXBlb2YgZXx8bnVsbD09PWV8fFwib2JqZWN0XCIhPXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4hMTt2YXIgbj1PYmplY3Qua2V5cyhlKSxyPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIG89bltyXTtpZighUS5jYWxsKHQsbyl8fCFuayhlW29dLHRbb10pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIG5qKGUpe2Zvcig7ZSYmZS5maXJzdENoaWxkOyllPWUuZmlyc3RDaGlsZDtyZXR1cm4gZX1mdW5jdGlvbiBuUyhlLHQpe3ZhciBuLHI9bmooZSk7Zm9yKGU9MDtyOyl7aWYoMz09PXIubm9kZVR5cGUpe2lmKG49ZStyLnRleHRDb250ZW50Lmxlbmd0aCxlPD10JiZuPj10KXJldHVybntub2RlOnIsb2Zmc2V0OnQtZX07ZT1ufWU6e2Zvcig7cjspe2lmKHIubmV4dFNpYmxpbmcpe3I9ci5uZXh0U2libGluZzticmVhayBlfXI9ci5wYXJlbnROb2RlfXI9dm9pZCAwfXI9bmoocil9fWZ1bmN0aW9uIG5PKGUpe2U9bnVsbCE9ZSYmbnVsbCE9ZS5vd25lckRvY3VtZW50JiZudWxsIT1lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc/ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3OndpbmRvdztmb3IodmFyIHQ9ZTcoZS5kb2N1bWVudCk7dCBpbnN0YW5jZW9mIGUuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIG49XCJzdHJpbmdcIj09dHlwZW9mIHQuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGUpe249ITF9aWYobillPXQuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO3Q9ZTcoZS5kb2N1bWVudCl9cmV0dXJuIHR9ZnVuY3Rpb24gbkIoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYoXCJpbnB1dFwiPT09dCYmKFwidGV4dFwiPT09ZS50eXBlfHxcInNlYXJjaFwiPT09ZS50eXBlfHxcInRlbFwiPT09ZS50eXBlfHxcInVybFwiPT09ZS50eXBlfHxcInBhc3N3b3JkXCI9PT1lLnR5cGUpfHxcInRleHRhcmVhXCI9PT10fHxcInRydWVcIj09PWUuY29udGVudEVkaXRhYmxlKX12YXIgblA9dGsmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxuST1udWxsLG5UPW51bGwsbno9bnVsbCxuRD0hMTtmdW5jdGlvbiBuTChlLHQsbil7dmFyIHI9bi53aW5kb3c9PT1uP24uZG9jdW1lbnQ6OT09PW4ubm9kZVR5cGU/bjpuLm93bmVyRG9jdW1lbnQ7bkR8fG51bGw9PW5JfHxuSSE9PWU3KHIpfHwocj1cInNlbGVjdGlvblN0YXJ0XCJpbihyPW5JKSYmbkIocik/e3N0YXJ0OnIuc2VsZWN0aW9uU3RhcnQsZW5kOnIuc2VsZWN0aW9uRW5kfTp7YW5jaG9yTm9kZToocj0oci5vd25lckRvY3VtZW50JiZyLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCkpLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OnIuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpyLmZvY3VzTm9kZSxmb2N1c09mZnNldDpyLmZvY3VzT2Zmc2V0fSxueiYmbkUobnoscil8fChuej1yLDA8KHI9Y3QoblQsXCJvblNlbGVjdFwiKSkubGVuZ3RoJiYodD1uZXcgdEYoXCJvblNlbGVjdFwiLFwic2VsZWN0XCIsbnVsbCx0LG4pLGUucHVzaCh7ZXZlbnQ6dCxsaXN0ZW5lcnM6cn0pLHQudGFyZ2V0PW5JKSkpfWZ1bmN0aW9uIG5OKGUsdCl7dmFyIG49e307cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksbltcIldlYmtpdFwiK2VdPVwid2Via2l0XCIrdCxuW1wiTW96XCIrZV09XCJtb3pcIit0LG59dmFyIG5SPXthbmltYXRpb25lbmQ6bk4oXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246bk4oXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpuTihcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbnJ1bjpuTihcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25SdW5cIiksdHJhbnNpdGlvbnN0YXJ0Om5OKFwiVHJhbnNpdGlvblwiLFwiVHJhbnNpdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25jYW5jZWw6bk4oXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uQ2FuY2VsXCIpLHRyYW5zaXRpb25lbmQ6bk4oXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uRW5kXCIpfSxuTT17fSxuWj17fTtmdW5jdGlvbiBuVShlKXtpZihuTVtlXSlyZXR1cm4gbk1bZV07aWYoIW5SW2VdKXJldHVybiBlO3ZhciB0LG49blJbZV07Zm9yKHQgaW4gbilpZihuLmhhc093blByb3BlcnR5KHQpJiZ0IGluIG5aKXJldHVybiBuTVtlXT1uW3RdO3JldHVybiBlfXRrJiYoblo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5zdHlsZSxcIkFuaW1hdGlvbkV2ZW50XCJpbiB3aW5kb3d8fChkZWxldGUgblIuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgblIuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgblIuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSxcIlRyYW5zaXRpb25FdmVudFwiaW4gd2luZG93fHxkZWxldGUgblIudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTt2YXIgbkY9blUoXCJhbmltYXRpb25lbmRcIiksbnE9blUoXCJhbmltYXRpb25pdGVyYXRpb25cIiksbkg9blUoXCJhbmltYXRpb25zdGFydFwiKSxuVj1uVShcInRyYW5zaXRpb25ydW5cIiksbiQ9blUoXCJ0cmFuc2l0aW9uc3RhcnRcIiksblc9blUoXCJ0cmFuc2l0aW9uY2FuY2VsXCIpLG5ZPW5VKFwidHJhbnNpdGlvbmVuZFwiKSxuSz1uZXcgTWFwLG5YPVwiYWJvcnQgYXV4Q2xpY2sgYmVmb3JlVG9nZ2xlIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsXCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIG5HKGUsdCl7bksuc2V0KGUsdCksZUcodCxbZV0pfW5YLnB1c2goXCJzY3JvbGxFbmRcIik7dmFyIG5RPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcG9ydEVycm9yP3JlcG9ydEVycm9yOmZ1bmN0aW9uKGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50KXt2YXIgdD1uZXcgd2luZG93LkVycm9yRXZlbnQoXCJlcnJvclwiLHtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsbWVzc2FnZTpcIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9PWUmJlwic3RyaW5nXCI9PXR5cGVvZiBlLm1lc3NhZ2U/U3RyaW5nKGUubWVzc2FnZSk6U3RyaW5nKGUpLGVycm9yOmV9KTtpZighd2luZG93LmRpc3BhdGNoRXZlbnQodCkpcmV0dXJufWVsc2UgaWYoXCJvYmplY3RcIj09dHlwZW9mIHByb2Nlc3MmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHByb2Nlc3MuZW1pdClyZXR1cm4gdm9pZCBwcm9jZXNzLmVtaXQoXCJ1bmNhdWdodEV4Y2VwdGlvblwiLGUpO2NvbnNvbGUuZXJyb3IoZSl9LG5KPVtdLG4wPTAsbjE9MDtmdW5jdGlvbiBuMigpe2Zvcih2YXIgZT1uMCx0PW4xPW4wPTA7dDxlOyl7dmFyIG49bkpbdF07bkpbdCsrXT1udWxsO3ZhciByPW5KW3RdO25KW3QrK109bnVsbDt2YXIgbz1uSlt0XTtuSlt0KytdPW51bGw7dmFyIGE9bkpbdF07aWYobkpbdCsrXT1udWxsLG51bGwhPT1yJiZudWxsIT09byl7dmFyIGk9ci5wZW5kaW5nO251bGw9PT1pP28ubmV4dD1vOihvLm5leHQ9aS5uZXh0LGkubmV4dD1vKSxyLnBlbmRpbmc9b30wIT09YSYmbjYobixvLGEpfX1mdW5jdGlvbiBuNChlLHQsbixyKXtuSltuMCsrXT1lLG5KW24wKytdPXQsbkpbbjArK109bixuSltuMCsrXT1yLG4xfD1yLGUubGFuZXN8PXIsbnVsbCE9PShlPWUuYWx0ZXJuYXRlKSYmKGUubGFuZXN8PXIpfWZ1bmN0aW9uIG41KGUsdCxuLHIpe3JldHVybiBuNChlLHQsbixyKSxuOShlKX1mdW5jdGlvbiBuMyhlLHQpe3JldHVybiBuNChlLG51bGwsbnVsbCx0KSxuOShlKX1mdW5jdGlvbiBuNihlLHQsbil7ZS5sYW5lc3w9bjt2YXIgcj1lLmFsdGVybmF0ZTtudWxsIT09ciYmKHIubGFuZXN8PW4pO2Zvcih2YXIgbz0hMSxhPWUucmV0dXJuO251bGwhPT1hOylhLmNoaWxkTGFuZXN8PW4sbnVsbCE9PShyPWEuYWx0ZXJuYXRlKSYmKHIuY2hpbGRMYW5lc3w9biksMjI9PT1hLnRhZyYmKG51bGw9PT0oZT1hLnN0YXRlTm9kZSl8fDEmZS5fdmlzaWJpbGl0eXx8KG89ITApKSxlPWEsYT1hLnJldHVybjtyZXR1cm4gMz09PWUudGFnPyhhPWUuc3RhdGVOb2RlLG8mJm51bGwhPT10JiYobz0zMS1lbShuKSxudWxsPT09KHI9KGU9YS5oaWRkZW5VcGRhdGVzKVtvXSk/ZVtvXT1bdF06ci5wdXNoKHQpLHQubGFuZT0weDIwMDAwMDAwfG4pLGEpOm51bGx9ZnVuY3Rpb24gbjkoZSl7aWYoNTA8c3QpdGhyb3cgc3Q9MCxzbj1udWxsLEVycm9yKGwoMTg1KSk7Zm9yKHZhciB0PWUucmV0dXJuO251bGwhPT10Oyl0PShlPXQpLnJldHVybjtyZXR1cm4gMz09PWUudGFnP2Uuc3RhdGVOb2RlOm51bGx9dmFyIG44PXt9O2Z1bmN0aW9uIG43KGUsdCxuLHIpe3RoaXMudGFnPWUsdGhpcy5rZXk9bix0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsLHRoaXMuaW5kZXg9MCx0aGlzLnJlZkNsZWFudXA9dGhpcy5yZWY9bnVsbCx0aGlzLnBlbmRpbmdQcm9wcz10LHRoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsLHRoaXMubW9kZT1yLHRoaXMuc3VidHJlZUZsYWdzPXRoaXMuZmxhZ3M9MCx0aGlzLmRlbGV0aW9ucz1udWxsLHRoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTAsdGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiByZShlLHQsbixyKXtyZXR1cm4gbmV3IG43KGUsdCxuLHIpfWZ1bmN0aW9uIHJ0KGUpe3JldHVybiEoIShlPWUucHJvdG90eXBlKXx8IWUuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gcm4oZSx0KXt2YXIgbj1lLmFsdGVybmF0ZTtyZXR1cm4gbnVsbD09PW4/KChuPXJlKGUudGFnLHQsZS5rZXksZS5tb2RlKSkuZWxlbWVudFR5cGU9ZS5lbGVtZW50VHlwZSxuLnR5cGU9ZS50eXBlLG4uc3RhdGVOb2RlPWUuc3RhdGVOb2RlLG4uYWx0ZXJuYXRlPWUsZS5hbHRlcm5hdGU9bik6KG4ucGVuZGluZ1Byb3BzPXQsbi50eXBlPWUudHlwZSxuLmZsYWdzPTAsbi5zdWJ0cmVlRmxhZ3M9MCxuLmRlbGV0aW9ucz1udWxsKSxuLmZsYWdzPTB4M2UwMDAwMCZlLmZsYWdzLG4uY2hpbGRMYW5lcz1lLmNoaWxkTGFuZXMsbi5sYW5lcz1lLmxhbmVzLG4uY2hpbGQ9ZS5jaGlsZCxuLm1lbW9pemVkUHJvcHM9ZS5tZW1vaXplZFByb3BzLG4ubWVtb2l6ZWRTdGF0ZT1lLm1lbW9pemVkU3RhdGUsbi51cGRhdGVRdWV1ZT1lLnVwZGF0ZVF1ZXVlLHQ9ZS5kZXBlbmRlbmNpZXMsbi5kZXBlbmRlbmNpZXM9bnVsbD09PXQ/bnVsbDp7bGFuZXM6dC5sYW5lcyxmaXJzdENvbnRleHQ6dC5maXJzdENvbnRleHR9LG4uc2libGluZz1lLnNpYmxpbmcsbi5pbmRleD1lLmluZGV4LG4ucmVmPWUucmVmLG4ucmVmQ2xlYW51cD1lLnJlZkNsZWFudXAsbn1mdW5jdGlvbiBycihlLHQpe2UuZmxhZ3MmPTB4M2UwMDAwMjt2YXIgbj1lLmFsdGVybmF0ZTtyZXR1cm4gbnVsbD09PW4/KGUuY2hpbGRMYW5lcz0wLGUubGFuZXM9dCxlLmNoaWxkPW51bGwsZS5zdWJ0cmVlRmxhZ3M9MCxlLm1lbW9pemVkUHJvcHM9bnVsbCxlLm1lbW9pemVkU3RhdGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGwsZS5kZXBlbmRlbmNpZXM9bnVsbCxlLnN0YXRlTm9kZT1udWxsKTooZS5jaGlsZExhbmVzPW4uY2hpbGRMYW5lcyxlLmxhbmVzPW4ubGFuZXMsZS5jaGlsZD1uLmNoaWxkLGUuc3VidHJlZUZsYWdzPTAsZS5kZWxldGlvbnM9bnVsbCxlLm1lbW9pemVkUHJvcHM9bi5tZW1vaXplZFByb3BzLGUubWVtb2l6ZWRTdGF0ZT1uLm1lbW9pemVkU3RhdGUsZS51cGRhdGVRdWV1ZT1uLnVwZGF0ZVF1ZXVlLGUudHlwZT1uLnR5cGUsZS5kZXBlbmRlbmNpZXM9bnVsbD09PSh0PW4uZGVwZW5kZW5jaWVzKT9udWxsOntsYW5lczp0LmxhbmVzLGZpcnN0Q29udGV4dDp0LmZpcnN0Q29udGV4dH0pLGV9ZnVuY3Rpb24gcm8oZSx0LG4scixvLGEpe3ZhciBpPTA7aWYocj1lLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpcnQoZSkmJihpPTEpO2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpaT0hZnVuY3Rpb24oZSx0LG4pe2lmKDE9PT1ufHxudWxsIT10Lml0ZW1Qcm9wKXJldHVybiExO3N3aXRjaChlKXtjYXNlXCJtZXRhXCI6Y2FzZVwidGl0bGVcIjpyZXR1cm4hMDtjYXNlXCJzdHlsZVwiOmlmKFwic3RyaW5nXCIhPXR5cGVvZiB0LnByZWNlZGVuY2V8fFwic3RyaW5nXCIhPXR5cGVvZiB0LmhyZWZ8fFwiXCI9PT10LmhyZWYpYnJlYWs7cmV0dXJuITA7Y2FzZVwibGlua1wiOmlmKFwic3RyaW5nXCIhPXR5cGVvZiB0LnJlbHx8XCJzdHJpbmdcIiE9dHlwZW9mIHQuaHJlZnx8XCJcIj09PXQuaHJlZnx8dC5vbkxvYWR8fHQub25FcnJvcilicmVhaztpZihcInN0eWxlc2hlZXRcIj09PXQucmVsKXJldHVybiBlPXQuZGlzYWJsZWQsXCJzdHJpbmdcIj09dHlwZW9mIHQucHJlY2VkZW5jZSYmbnVsbD09ZTtyZXR1cm4hMDtjYXNlXCJzY3JpcHRcIjppZih0LmFzeW5jJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0LmFzeW5jJiZcInN5bWJvbFwiIT10eXBlb2YgdC5hc3luYyYmIXQub25Mb2FkJiYhdC5vbkVycm9yJiZ0LnNyYyYmXCJzdHJpbmdcIj09dHlwZW9mIHQuc3JjKXJldHVybiEwfXJldHVybiExfShlLG4sWi5jdXJyZW50KT9cImh0bWxcIj09PWV8fFwiaGVhZFwiPT09ZXx8XCJib2R5XCI9PT1lPzI3OjU6MjY7ZWxzZSBlOnN3aXRjaChlKXtjYXNlIEU6cmV0dXJuKGU9cmUoMzEsbix0LG8pKS5lbGVtZW50VHlwZT1FLGUubGFuZXM9YSxlO2Nhc2UgZzpyZXR1cm4gcmEobi5jaGlsZHJlbixvLGEsdCk7Y2FzZSB5Omk9OCxvfD0yNDticmVhaztjYXNlIHY6cmV0dXJuKGU9cmUoMTIsbix0LDJ8bykpLmVsZW1lbnRUeXBlPXYsZS5sYW5lcz1hLGU7Y2FzZSB3OnJldHVybihlPXJlKDEzLG4sdCxvKSkuZWxlbWVudFR5cGU9dyxlLmxhbmVzPWEsZTtjYXNlIEM6cmV0dXJuKGU9cmUoMTksbix0LG8pKS5lbGVtZW50VHlwZT1DLGUubGFuZXM9YSxlO2RlZmF1bHQ6aWYoXCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIEE6aT0xMDticmVhayBlO2Nhc2UgYjppPTk7YnJlYWsgZTtjYXNlIHg6aT0xMTticmVhayBlO2Nhc2UgXzppPTE0O2JyZWFrIGU7Y2FzZSBrOmk9MTYscj1udWxsO2JyZWFrIGV9aT0yOSxuPUVycm9yKGwoMTMwLG51bGw9PT1lP1wibnVsbFwiOnR5cGVvZiBlLFwiXCIpKSxyPW51bGx9cmV0dXJuKHQ9cmUoaSxuLHQsbykpLmVsZW1lbnRUeXBlPWUsdC50eXBlPXIsdC5sYW5lcz1hLHR9ZnVuY3Rpb24gcmEoZSx0LG4scil7cmV0dXJuKGU9cmUoNyxlLHIsdCkpLmxhbmVzPW4sZX1mdW5jdGlvbiByaShlLHQsbil7cmV0dXJuKGU9cmUoNixlLG51bGwsdCkpLmxhbmVzPW4sZX1mdW5jdGlvbiBybChlKXt2YXIgdD1yZSgxOCxudWxsLG51bGwsMCk7cmV0dXJuIHQuc3RhdGVOb2RlPWUsdH1mdW5jdGlvbiBycyhlLHQsbil7cmV0dXJuKHQ9cmUoNCxudWxsIT09ZS5jaGlsZHJlbj9lLmNoaWxkcmVuOltdLGUua2V5LHQpKS5sYW5lcz1uLHQuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmUuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjplLmltcGxlbWVudGF0aW9ufSx0fXZhciByYz1uZXcgV2Vha01hcDtmdW5jdGlvbiBydShlLHQpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBlJiZudWxsIT09ZSl7dmFyIG49cmMuZ2V0KGUpO3JldHVybiB2b2lkIDAhPT1uP246KHQ9e3ZhbHVlOmUsc291cmNlOnQsc3RhY2s6Ryh0KX0scmMuc2V0KGUsdCksdCl9cmV0dXJue3ZhbHVlOmUsc291cmNlOnQsc3RhY2s6Ryh0KX19dmFyIHJkPVtdLHJmPTAscnA9bnVsbCxyaD0wLHJtPVtdLHJnPTAscnk9bnVsbCxydj0xLHJiPVwiXCI7ZnVuY3Rpb24gckEoZSx0KXtyZFtyZisrXT1yaCxyZFtyZisrXT1ycCxycD1lLHJoPXR9ZnVuY3Rpb24gcngoZSx0LG4pe3JtW3JnKytdPXJ2LHJtW3JnKytdPXJiLHJtW3JnKytdPXJ5LHJ5PWU7dmFyIHI9cnY7ZT1yYjt2YXIgbz0zMi1lbShyKS0xO3ImPX4oMTw8byksbis9MTt2YXIgYT0zMi1lbSh0KStvO2lmKDMwPGEpe3ZhciBpPW8tbyU1O2E9KHImKDE8PGkpLTEpLnRvU3RyaW5nKDMyKSxyPj49aSxvLT1pLHJ2PTE8PDMyLWVtKHQpK298bjw8b3xyLHJiPWErZX1lbHNlIHJ2PTE8PGF8bjw8b3xyLHJiPWV9ZnVuY3Rpb24gcncoZSl7bnVsbCE9PWUucmV0dXJuJiYockEoZSwxKSxyeChlLDEsMCkpfWZ1bmN0aW9uIHJDKGUpe2Zvcig7ZT09PXJwOylycD1yZFstLXJmXSxyZFtyZl09bnVsbCxyaD1yZFstLXJmXSxyZFtyZl09bnVsbDtmb3IoO2U9PT1yeTspcnk9cm1bLS1yZ10scm1bcmddPW51bGwscmI9cm1bLS1yZ10scm1bcmddPW51bGwscnY9cm1bLS1yZ10scm1bcmddPW51bGx9ZnVuY3Rpb24gcl8oZSx0KXtybVtyZysrXT1ydixybVtyZysrXT1yYixybVtyZysrXT1yeSxydj10LmlkLHJiPXQub3ZlcmZsb3cscnk9ZX12YXIgcms9bnVsbCxyRT1udWxsLHJqPSExLHJTPW51bGwsck89ITEsckI9RXJyb3IobCg1MTkpKTtmdW5jdGlvbiByUChlKXt2YXIgdD1FcnJvcihsKDQxOCwxPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdP1widGV4dFwiOlwiSFRNTFwiLFwiXCIpKTt0aHJvdyByTihydSh0LGUpKSxyQn1mdW5jdGlvbiBySShlKXt2YXIgdD1lLnN0YXRlTm9kZSxuPWUudHlwZSxyPWUubWVtb2l6ZWRQcm9wcztzd2l0Y2godFtlRF09ZSx0W2VMXT1yLG4pe2Nhc2VcImRpYWxvZ1wiOnM1KFwiY2FuY2VsXCIsdCksczUoXCJjbG9zZVwiLHQpO2JyZWFrO2Nhc2VcImlmcmFtZVwiOmNhc2VcIm9iamVjdFwiOmNhc2VcImVtYmVkXCI6czUoXCJsb2FkXCIsdCk7YnJlYWs7Y2FzZVwidmlkZW9cIjpjYXNlXCJhdWRpb1wiOmZvcihuPTA7bjxzMS5sZW5ndGg7bisrKXM1KHMxW25dLHQpO2JyZWFrO2Nhc2VcInNvdXJjZVwiOnM1KFwiZXJyb3JcIix0KTticmVhaztjYXNlXCJpbWdcIjpjYXNlXCJpbWFnZVwiOmNhc2VcImxpbmtcIjpzNShcImVycm9yXCIsdCksczUoXCJsb2FkXCIsdCk7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOnM1KFwidG9nZ2xlXCIsdCk7YnJlYWs7Y2FzZVwiaW5wdXRcIjpzNShcImludmFsaWRcIix0KSx0cih0LHIudmFsdWUsci5kZWZhdWx0VmFsdWUsci5jaGVja2VkLHIuZGVmYXVsdENoZWNrZWQsci50eXBlLHIubmFtZSwhMCk7YnJlYWs7Y2FzZVwic2VsZWN0XCI6czUoXCJpbnZhbGlkXCIsdCk7YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjpzNShcImludmFsaWRcIix0KSx0bCh0LHIudmFsdWUsci5kZWZhdWx0VmFsdWUsci5jaGlsZHJlbil9XCJzdHJpbmdcIiE9dHlwZW9mKG49ci5jaGlsZHJlbikmJlwibnVtYmVyXCIhPXR5cGVvZiBuJiZcImJpZ2ludFwiIT10eXBlb2Ygbnx8dC50ZXh0Q29udGVudD09PVwiXCIrbnx8ITA9PT1yLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x8Y2wodC50ZXh0Q29udGVudCxuKT8obnVsbCE9ci5wb3BvdmVyJiYoczUoXCJiZWZvcmV0b2dnbGVcIix0KSxzNShcInRvZ2dsZVwiLHQpKSxudWxsIT1yLm9uU2Nyb2xsJiZzNShcInNjcm9sbFwiLHQpLG51bGwhPXIub25TY3JvbGxFbmQmJnM1KFwic2Nyb2xsZW5kXCIsdCksbnVsbCE9ci5vbkNsaWNrJiYodC5vbmNsaWNrPXRnKSx0PSEwKTp0PSExLHR8fHJQKGUsITApfWZ1bmN0aW9uIHJUKGUpe2Zvcihyaz1lLnJldHVybjtyazspc3dpdGNoKHJrLnRhZyl7Y2FzZSA1OmNhc2UgMzE6Y2FzZSAxMzpyTz0hMTtyZXR1cm47Y2FzZSAyNzpjYXNlIDM6ck89ITA7cmV0dXJuO2RlZmF1bHQ6cms9cmsucmV0dXJufX1mdW5jdGlvbiByeihlKXtpZihlIT09cmspcmV0dXJuITE7aWYoIXJqKXJldHVybiByVChlKSxyaj0hMCwhMTt2YXIgdCxuPWUudGFnO2lmKCh0PTMhPT1uJiYyNyE9PW4pJiYoKHQ9NT09PW4pJiYodD1cImZvcm1cIj09PSh0PWUudHlwZSl8fFwiYnV0dG9uXCI9PT10fHxjZyhlLnR5cGUsZS5tZW1vaXplZFByb3BzKSksdD0hdCksdCYmckUmJnJQKGUpLHJUKGUpLDEzPT09bil7aWYoIShlPW51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpP2UuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihsKDMxNykpO3JFPWNJKGUpfWVsc2UgaWYoMzE9PT1uKXtpZighKGU9bnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSk/ZS5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKGwoMzE3KSk7ckU9Y0koZSl9ZWxzZSAyNz09PW4/KG49ckUsY0MoZS50eXBlKT8oZT1jUCxjUD1udWxsLHJFPWUpOnJFPW4pOnJFPXJrP2NCKGUuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIHJEKCl7ckU9cms9bnVsbCxyaj0hMX1mdW5jdGlvbiByTCgpe3ZhciBlPXJTO3JldHVybiBudWxsIT09ZSYmKG51bGw9PT1sUT9sUT1lOmxRLnB1c2guYXBwbHkobFEsZSksclM9bnVsbCksZX1mdW5jdGlvbiByTihlKXtudWxsPT09clM/clM9W2VdOnJTLnB1c2goZSl9dmFyIHJSPU4obnVsbCksck09bnVsbCxyWj1udWxsO2Z1bmN0aW9uIHJVKGUsdCxuKXtNKHJSLHQuX2N1cnJlbnRWYWx1ZSksdC5fY3VycmVudFZhbHVlPW59ZnVuY3Rpb24gckYoZSl7ZS5fY3VycmVudFZhbHVlPXJSLmN1cnJlbnQsUihyUil9ZnVuY3Rpb24gcnEoZSx0LG4pe2Zvcig7bnVsbCE9PWU7KXt2YXIgcj1lLmFsdGVybmF0ZTtpZigoZS5jaGlsZExhbmVzJnQpIT09dD8oZS5jaGlsZExhbmVzfD10LG51bGwhPT1yJiYoci5jaGlsZExhbmVzfD10KSk6bnVsbCE9PXImJihyLmNoaWxkTGFuZXMmdCkhPT10JiYoci5jaGlsZExhbmVzfD10KSxlPT09bilicmVhaztlPWUucmV0dXJufX1mdW5jdGlvbiBySChlLHQsbixyKXt2YXIgbz1lLmNoaWxkO2ZvcihudWxsIT09byYmKG8ucmV0dXJuPWUpO251bGwhPT1vOyl7dmFyIGE9by5kZXBlbmRlbmNpZXM7aWYobnVsbCE9PWEpe3ZhciBpPW8uY2hpbGQ7YT1hLmZpcnN0Q29udGV4dDtlOmZvcig7bnVsbCE9PWE7KXt2YXIgcz1hO2E9bztmb3IodmFyIGM9MDtjPHQubGVuZ3RoO2MrKylpZihzLmNvbnRleHQ9PT10W2NdKXthLmxhbmVzfD1uLG51bGwhPT0ocz1hLmFsdGVybmF0ZSkmJihzLmxhbmVzfD1uKSxycShhLnJldHVybixuLGUpLHJ8fChpPW51bGwpO2JyZWFrIGV9YT1zLm5leHR9fWVsc2UgaWYoMTg9PT1vLnRhZyl7aWYobnVsbD09PShpPW8ucmV0dXJuKSl0aHJvdyBFcnJvcihsKDM0MSkpO2kubGFuZXN8PW4sbnVsbCE9PShhPWkuYWx0ZXJuYXRlKSYmKGEubGFuZXN8PW4pLHJxKGksbixlKSxpPW51bGx9ZWxzZSBpPW8uY2hpbGQ7aWYobnVsbCE9PWkpaS5yZXR1cm49bztlbHNlIGZvcihpPW87bnVsbCE9PWk7KXtpZihpPT09ZSl7aT1udWxsO2JyZWFrfWlmKG51bGwhPT0obz1pLnNpYmxpbmcpKXtvLnJldHVybj1pLnJldHVybixpPW87YnJlYWt9aT1pLnJldHVybn1vPWl9fWZ1bmN0aW9uIHJWKGUsdCxuLHIpe2U9bnVsbDtmb3IodmFyIG89dCxhPSExO251bGwhPT1vOyl7aWYoIWEpe2lmKDAhPSg1MjQyODgmby5mbGFncykpYT0hMDtlbHNlIGlmKDAhPSgyNjIxNDQmby5mbGFncykpYnJlYWt9aWYoMTA9PT1vLnRhZyl7dmFyIGk9by5hbHRlcm5hdGU7aWYobnVsbD09PWkpdGhyb3cgRXJyb3IobCgzODcpKTtpZihudWxsIT09KGk9aS5tZW1vaXplZFByb3BzKSl7dmFyIHM9by50eXBlO25rKG8ucGVuZGluZ1Byb3BzLnZhbHVlLGkudmFsdWUpfHwobnVsbCE9PWU/ZS5wdXNoKHMpOmU9W3NdKX19ZWxzZSBpZihvPT09cS5jdXJyZW50KXtpZihudWxsPT09KGk9by5hbHRlcm5hdGUpKXRocm93IEVycm9yKGwoMzg3KSk7aS5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUhPT1vLm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT1lP2UucHVzaChjOSk6ZT1bYzldKX1vPW8ucmV0dXJufW51bGwhPT1lJiZySCh0LGUsbixyKSx0LmZsYWdzfD0yNjIxNDR9ZnVuY3Rpb24gciQoZSl7Zm9yKGU9ZS5maXJzdENvbnRleHQ7bnVsbCE9PWU7KXtpZighbmsoZS5jb250ZXh0Ll9jdXJyZW50VmFsdWUsZS5tZW1vaXplZFZhbHVlKSlyZXR1cm4hMDtlPWUubmV4dH1yZXR1cm4hMX1mdW5jdGlvbiByVyhlKXtyTT1lLHJaPW51bGwsbnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmKGUuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIHJZKGUpe3JldHVybiByWChyTSxlKX1mdW5jdGlvbiBySyhlLHQpe3JldHVybiBudWxsPT09ck0mJnJXKGUpLHJYKGUsdCl9ZnVuY3Rpb24gclgoZSx0KXt2YXIgbj10Ll9jdXJyZW50VmFsdWU7aWYodD17Y29udGV4dDp0LG1lbW9pemVkVmFsdWU6bixuZXh0Om51bGx9LG51bGw9PT1yWil7aWYobnVsbD09PWUpdGhyb3cgRXJyb3IobCgzMDgpKTtyWj10LGUuZGVwZW5kZW5jaWVzPXtsYW5lczowLGZpcnN0Q29udGV4dDp0fSxlLmZsYWdzfD01MjQyODh9ZWxzZSByWj1yWi5uZXh0PXQ7cmV0dXJuIG59dmFyIHJHPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBBYm9ydENvbnRyb2xsZXI/QWJvcnRDb250cm9sbGVyOmZ1bmN0aW9uKCl7dmFyIGU9W10sdD10aGlzLnNpZ25hbD17YWJvcnRlZDohMSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQsbil7ZS5wdXNoKG4pfX07dGhpcy5hYm9ydD1mdW5jdGlvbigpe3QuYWJvcnRlZD0hMCxlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pfX0sclE9by51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLHJKPW8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHkscjA9eyQkdHlwZW9mOkEsQ29uc3VtZXI6bnVsbCxQcm92aWRlcjpudWxsLF9jdXJyZW50VmFsdWU6bnVsbCxfY3VycmVudFZhbHVlMjpudWxsLF90aHJlYWRDb3VudDowfTtmdW5jdGlvbiByMSgpe3JldHVybntjb250cm9sbGVyOm5ldyByRyxkYXRhOm5ldyBNYXAscmVmQ291bnQ6MH19ZnVuY3Rpb24gcjIoZSl7ZS5yZWZDb3VudC0tLDA9PT1lLnJlZkNvdW50JiZyUShySixmdW5jdGlvbigpe2UuY29udHJvbGxlci5hYm9ydCgpfSl9dmFyIHI0PW51bGwscjU9MCxyMz0wLHI2PW51bGw7ZnVuY3Rpb24gcjkoKXtpZigwPT0tLXI1JiZudWxsIT09cjQpe251bGwhPT1yNiYmKHI2LnN0YXR1cz1cImZ1bGZpbGxlZFwiKTt2YXIgZT1yNDtyND1udWxsLHIzPTAscjY9bnVsbDtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKykoMCxlW3RdKSgpfX12YXIgcjg9SS5TO0kuUz1mdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT09dCYmXCJmdW5jdGlvblwiPT10eXBlb2YgdC50aGVuJiZmdW5jdGlvbihlLHQpe2lmKG51bGw9PT1yNCl7dmFyIG49cjQ9W107cjU9MCxyMz1zWCgpLHI2PXtzdGF0dXM6XCJwZW5kaW5nXCIsdmFsdWU6dm9pZCAwLHRoZW46ZnVuY3Rpb24oZSl7bi5wdXNoKGUpfX19cjUrKyx0LnRoZW4ocjkscjkpfSgwLHQpLG51bGwhPT1yOCYmcjgoZSx0KX07dmFyIHI3PU4obnVsbCk7ZnVuY3Rpb24gb2UoKXt2YXIgZT1yNy5jdXJyZW50O3JldHVybiBudWxsIT09ZT9lOmxMLnBvb2xlZENhY2hlfWZ1bmN0aW9uIG90KGUsdCl7bnVsbD09PXQ/TShyNyxyNy5jdXJyZW50KTpNKHI3LHQucG9vbCl9ZnVuY3Rpb24gb24oKXt2YXIgZT1vZSgpO3JldHVybiBudWxsPT09ZT9udWxsOntwYXJlbnQ6cjAuX2N1cnJlbnRWYWx1ZSxwb29sOmV9fXZhciBvcj1FcnJvcihsKDQ2MCkpLG9vPUVycm9yKGwoNDc0KSksb2E9RXJyb3IobCg1NDIpKSxvaT17dGhlbjpmdW5jdGlvbigpe319O2Z1bmN0aW9uIG9sKGUpe3JldHVyblwiZnVsZmlsbGVkXCI9PT0oZT1lLnN0YXR1cyl8fFwicmVqZWN0ZWRcIj09PWV9ZnVuY3Rpb24gb3MoZSx0LG4pe3N3aXRjaCh2b2lkIDA9PT0obj1lW25dKT9lLnB1c2godCk6biE9PXQmJih0LnRoZW4odGcsdGcpLHQ9biksdC5zdGF0dXMpe2Nhc2VcImZ1bGZpbGxlZFwiOnJldHVybiB0LnZhbHVlO2Nhc2VcInJlamVjdGVkXCI6dGhyb3cgb2YoZT10LnJlYXNvbiksZTtkZWZhdWx0OmlmKFwic3RyaW5nXCI9PXR5cGVvZiB0LnN0YXR1cyl0LnRoZW4odGcsdGcpO2Vsc2V7aWYobnVsbCE9PShlPWxMKSYmMTAwPGUuc2hlbGxTdXNwZW5kQ291bnRlcil0aHJvdyBFcnJvcihsKDQ4MikpOyhlPXQpLnN0YXR1cz1cInBlbmRpbmdcIixlLnRoZW4oZnVuY3Rpb24oZSl7aWYoXCJwZW5kaW5nXCI9PT10LnN0YXR1cyl7dmFyIG49dDtuLnN0YXR1cz1cImZ1bGZpbGxlZFwiLG4udmFsdWU9ZX19LGZ1bmN0aW9uKGUpe2lmKFwicGVuZGluZ1wiPT09dC5zdGF0dXMpe3ZhciBuPXQ7bi5zdGF0dXM9XCJyZWplY3RlZFwiLG4ucmVhc29uPWV9fSl9c3dpdGNoKHQuc3RhdHVzKXtjYXNlXCJmdWxmaWxsZWRcIjpyZXR1cm4gdC52YWx1ZTtjYXNlXCJyZWplY3RlZFwiOnRocm93IG9mKGU9dC5yZWFzb24pLGV9dGhyb3cgb3U9dCxvcn19ZnVuY3Rpb24gb2MoZSl7dHJ5e3JldHVybigwLGUuX2luaXQpKGUuX3BheWxvYWQpfWNhdGNoKGUpe2lmKG51bGwhPT1lJiZcIm9iamVjdFwiPT10eXBlb2YgZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS50aGVuKXRocm93IG91PWUsb3I7dGhyb3cgZX19dmFyIG91PW51bGw7ZnVuY3Rpb24gb2QoKXtpZihudWxsPT09b3UpdGhyb3cgRXJyb3IobCg0NTkpKTt2YXIgZT1vdTtyZXR1cm4gb3U9bnVsbCxlfWZ1bmN0aW9uIG9mKGUpe2lmKGU9PT1vcnx8ZT09PW9hKXRocm93IEVycm9yKGwoNDgzKSl9dmFyIG9wPW51bGwsb2g9MDtmdW5jdGlvbiBvbShlKXt2YXIgdD1vaDtyZXR1cm4gb2grPTEsbnVsbD09PW9wJiYob3A9W10pLG9zKG9wLGUsdCl9ZnVuY3Rpb24gb2coZSx0KXtlLnJlZj12b2lkIDAhPT0odD10LnByb3BzLnJlZik/dDpudWxsfWZ1bmN0aW9uIG95KGUsdCl7aWYodC4kJHR5cGVvZj09PXApdGhyb3cgRXJyb3IobCg1MjUpKTt0aHJvdyBFcnJvcihsKDMxLFwiW29iamVjdCBPYmplY3RdXCI9PT0oZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkpP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXModCkuam9pbihcIiwgXCIpK1wifVwiOmUpKX1mdW5jdGlvbiBvdihlKXtmdW5jdGlvbiB0KHQsbil7aWYoZSl7dmFyIHI9dC5kZWxldGlvbnM7bnVsbD09PXI/KHQuZGVsZXRpb25zPVtuXSx0LmZsYWdzfD0xNik6ci5wdXNoKG4pfX1mdW5jdGlvbiBuKG4scil7aWYoIWUpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09cjspdChuLHIpLHI9ci5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0PW5ldyBNYXA7bnVsbCE9PWU7KW51bGwhPT1lLmtleT90LnNldChlLmtleSxlKTp0LnNldChlLmluZGV4LGUpLGU9ZS5zaWJsaW5nO3JldHVybiB0fWZ1bmN0aW9uIG8oZSx0KXtyZXR1cm4oZT1ybihlLHQpKS5pbmRleD0wLGUuc2libGluZz1udWxsLGV9ZnVuY3Rpb24gYSh0LG4scil7cmV0dXJuKHQuaW5kZXg9cixlKT9udWxsIT09KHI9dC5hbHRlcm5hdGUpPyhyPXIuaW5kZXgpPG4/KHQuZmxhZ3N8PTB4NDAwMDAwMixuKTpyOih0LmZsYWdzfD0weDQwMDAwMDIsbik6KHQuZmxhZ3N8PTEwNDg1NzYsbil9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZSYmbnVsbD09PXQuYWx0ZXJuYXRlJiYodC5mbGFnc3w9MHg0MDAwMDAyKSx0fWZ1bmN0aW9uIHMoZSx0LG4scil7cmV0dXJuIG51bGw9PT10fHw2IT09dC50YWc/KHQ9cmkobixlLm1vZGUscikpLnJldHVybj1lOih0PW8odCxuKSkucmV0dXJuPWUsdH1mdW5jdGlvbiBjKGUsdCxuLHIpe3ZhciBhPW4udHlwZTtyZXR1cm4gYT09PWc/ZChlLHQsbi5wcm9wcy5jaGlsZHJlbixyLG4ua2V5KToobnVsbCE9PXQmJih0LmVsZW1lbnRUeXBlPT09YXx8XCJvYmplY3RcIj09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09ayYmb2MoYSk9PT10LnR5cGUpP29nKHQ9byh0LG4ucHJvcHMpLG4pOm9nKHQ9cm8obi50eXBlLG4ua2V5LG4ucHJvcHMsbnVsbCxlLm1vZGUsciksbiksdC5yZXR1cm49ZSx0KX1mdW5jdGlvbiB1KGUsdCxuLHIpe3JldHVybiBudWxsPT09dHx8NCE9PXQudGFnfHx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09bi5jb250YWluZXJJbmZvfHx0LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PW4uaW1wbGVtZW50YXRpb24/KHQ9cnMobixlLm1vZGUscikpLnJldHVybj1lOih0PW8odCxuLmNoaWxkcmVufHxbXSkpLnJldHVybj1lLHR9ZnVuY3Rpb24gZChlLHQsbixyLGEpe3JldHVybiBudWxsPT09dHx8NyE9PXQudGFnPyh0PXJhKG4sZS5tb2RlLHIsYSkpLnJldHVybj1lOih0PW8odCxuKSkucmV0dXJuPWUsdH1mdW5jdGlvbiBmKGUsdCxuKXtpZihcInN0cmluZ1wiPT10eXBlb2YgdCYmXCJcIiE9PXR8fFwibnVtYmVyXCI9PXR5cGVvZiB0fHxcImJpZ2ludFwiPT10eXBlb2YgdClyZXR1cm4odD1yaShcIlwiK3QsZS5tb2RlLG4pKS5yZXR1cm49ZSx0O2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT09dCl7c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgaDpyZXR1cm4gb2cobj1ybyh0LnR5cGUsdC5rZXksdC5wcm9wcyxudWxsLGUubW9kZSxuKSx0KSxuLnJldHVybj1lLG47Y2FzZSBtOnJldHVybih0PXJzKHQsZS5tb2RlLG4pKS5yZXR1cm49ZSx0O2Nhc2UgazpyZXR1cm4gZihlLHQ9b2ModCksbil9aWYoUCh0KXx8Tyh0KSlyZXR1cm4odD1yYSh0LGUubW9kZSxuLG51bGwpKS5yZXR1cm49ZSx0O2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQudGhlbilyZXR1cm4gZihlLG9tKHQpLG4pO2lmKHQuJCR0eXBlb2Y9PT1BKXJldHVybiBmKGUscksoZSx0KSxuKTtveShlLHQpfXJldHVybiBudWxsfWZ1bmN0aW9uIHAoZSx0LG4scil7dmFyIG89bnVsbCE9PXQ/dC5rZXk6bnVsbDtpZihcInN0cmluZ1wiPT10eXBlb2YgbiYmXCJcIiE9PW58fFwibnVtYmVyXCI9PXR5cGVvZiBufHxcImJpZ2ludFwiPT10eXBlb2YgbilyZXR1cm4gbnVsbCE9PW8/bnVsbDpzKGUsdCxcIlwiK24scik7aWYoXCJvYmplY3RcIj09dHlwZW9mIG4mJm51bGwhPT1uKXtzd2l0Y2gobi4kJHR5cGVvZil7Y2FzZSBoOnJldHVybiBuLmtleT09PW8/YyhlLHQsbixyKTpudWxsO2Nhc2UgbTpyZXR1cm4gbi5rZXk9PT1vP3UoZSx0LG4scik6bnVsbDtjYXNlIGs6cmV0dXJuIHAoZSx0LG49b2Mobikscil9aWYoUChuKXx8TyhuKSlyZXR1cm4gbnVsbCE9PW8/bnVsbDpkKGUsdCxuLHIsbnVsbCk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50aGVuKXJldHVybiBwKGUsdCxvbShuKSxyKTtpZihuLiQkdHlwZW9mPT09QSlyZXR1cm4gcChlLHQscksoZSxuKSxyKTtveShlLG4pfXJldHVybiBudWxsfWZ1bmN0aW9uIHkoZSx0LG4scixvKXtpZihcInN0cmluZ1wiPT10eXBlb2YgciYmXCJcIiE9PXJ8fFwibnVtYmVyXCI9PXR5cGVvZiByfHxcImJpZ2ludFwiPT10eXBlb2YgcilyZXR1cm4gcyh0LGU9ZS5nZXQobil8fG51bGwsXCJcIityLG8pO2lmKFwib2JqZWN0XCI9PXR5cGVvZiByJiZudWxsIT09cil7c3dpdGNoKHIuJCR0eXBlb2Ype2Nhc2UgaDpyZXR1cm4gYyh0LGU9ZS5nZXQobnVsbD09PXIua2V5P246ci5rZXkpfHxudWxsLHIsbyk7Y2FzZSBtOnJldHVybiB1KHQsZT1lLmdldChudWxsPT09ci5rZXk/bjpyLmtleSl8fG51bGwscixvKTtjYXNlIGs6cmV0dXJuIHkoZSx0LG4scj1vYyhyKSxvKX1pZihQKHIpfHxPKHIpKXJldHVybiBkKHQsZT1lLmdldChuKXx8bnVsbCxyLG8sbnVsbCk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygci50aGVuKXJldHVybiB5KGUsdCxuLG9tKHIpLG8pO2lmKHIuJCR0eXBlb2Y9PT1BKXJldHVybiB5KGUsdCxuLHJLKHQsciksbyk7b3kodCxyKX1yZXR1cm4gbnVsbH1yZXR1cm4gZnVuY3Rpb24ocyxjLHUsZCl7dHJ5e29oPTA7dmFyIHY9ZnVuY3Rpb24gcyhjLHUsZCx2KXtpZihcIm9iamVjdFwiPT10eXBlb2YgZCYmbnVsbCE9PWQmJmQudHlwZT09PWcmJm51bGw9PT1kLmtleSYmKGQ9ZC5wcm9wcy5jaGlsZHJlbiksXCJvYmplY3RcIj09dHlwZW9mIGQmJm51bGwhPT1kKXtzd2l0Y2goZC4kJHR5cGVvZil7Y2FzZSBoOmU6e2Zvcih2YXIgYj1kLmtleTtudWxsIT09dTspe2lmKHUua2V5PT09Yil7aWYoKGI9ZC50eXBlKT09PWcpe2lmKDc9PT11LnRhZyl7bihjLHUuc2libGluZyksKHY9byh1LGQucHJvcHMuY2hpbGRyZW4pKS5yZXR1cm49YyxjPXY7YnJlYWsgZX19ZWxzZSBpZih1LmVsZW1lbnRUeXBlPT09Ynx8XCJvYmplY3RcIj09dHlwZW9mIGImJm51bGwhPT1iJiZiLiQkdHlwZW9mPT09ayYmb2MoYik9PT11LnR5cGUpe24oYyx1LnNpYmxpbmcpLG9nKHY9byh1LGQucHJvcHMpLGQpLHYucmV0dXJuPWMsYz12O2JyZWFrIGV9bihjLHUpO2JyZWFrfXQoYyx1KSx1PXUuc2libGluZ31kLnR5cGU9PT1nPyh2PXJhKGQucHJvcHMuY2hpbGRyZW4sYy5tb2RlLHYsZC5rZXkpKS5yZXR1cm49Yzoob2codj1ybyhkLnR5cGUsZC5rZXksZC5wcm9wcyxudWxsLGMubW9kZSx2KSxkKSx2LnJldHVybj1jKSxjPXZ9cmV0dXJuIGkoYyk7Y2FzZSBtOmU6e2ZvcihiPWQua2V5O251bGwhPT11Oyl7aWYodS5rZXk9PT1iKWlmKDQ9PT11LnRhZyYmdS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWQuY29udGFpbmVySW5mbyYmdS5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1kLmltcGxlbWVudGF0aW9uKXtuKGMsdS5zaWJsaW5nKSwodj1vKHUsZC5jaGlsZHJlbnx8W10pKS5yZXR1cm49YyxjPXY7YnJlYWsgZX1lbHNle24oYyx1KTticmVha310KGMsdSksdT11LnNpYmxpbmd9KHY9cnMoZCxjLm1vZGUsdikpLnJldHVybj1jLGM9dn1yZXR1cm4gaShjKTtjYXNlIGs6cmV0dXJuIHMoYyx1LGQ9b2MoZCksdil9aWYoUChkKSlyZXR1cm4gZnVuY3Rpb24obyxpLGwscyl7Zm9yKHZhciBjPW51bGwsdT1udWxsLGQ9aSxoPWk9MCxtPW51bGw7bnVsbCE9PWQmJmg8bC5sZW5ndGg7aCsrKXtkLmluZGV4Pmg/KG09ZCxkPW51bGwpOm09ZC5zaWJsaW5nO3ZhciBnPXAobyxkLGxbaF0scyk7aWYobnVsbD09PWcpe251bGw9PT1kJiYoZD1tKTticmVha31lJiZkJiZudWxsPT09Zy5hbHRlcm5hdGUmJnQobyxkKSxpPWEoZyxpLGgpLG51bGw9PT11P2M9Zzp1LnNpYmxpbmc9Zyx1PWcsZD1tfWlmKGg9PT1sLmxlbmd0aClyZXR1cm4gbihvLGQpLHJqJiZyQShvLGgpLGM7aWYobnVsbD09PWQpe2Zvcig7aDxsLmxlbmd0aDtoKyspbnVsbCE9PShkPWYobyxsW2hdLHMpKSYmKGk9YShkLGksaCksbnVsbD09PXU/Yz1kOnUuc2libGluZz1kLHU9ZCk7cmV0dXJuIHJqJiZyQShvLGgpLGN9Zm9yKGQ9cihkKTtoPGwubGVuZ3RoO2grKyludWxsIT09KG09eShkLG8saCxsW2hdLHMpKSYmKGUmJm51bGwhPT1tLmFsdGVybmF0ZSYmZC5kZWxldGUobnVsbD09PW0ua2V5P2g6bS5rZXkpLGk9YShtLGksaCksbnVsbD09PXU/Yz1tOnUuc2libGluZz1tLHU9bSk7cmV0dXJuIGUmJmQuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdChvLGUpfSkscmomJnJBKG8saCksY30oYyx1LGQsdik7aWYoTyhkKSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YoYj1PKGQpKSl0aHJvdyBFcnJvcihsKDE1MCkpO3JldHVybiBmdW5jdGlvbihvLGkscyxjKXtpZihudWxsPT1zKXRocm93IEVycm9yKGwoMTUxKSk7Zm9yKHZhciB1PW51bGwsZD1udWxsLGg9aSxtPWk9MCxnPW51bGwsdj1zLm5leHQoKTtudWxsIT09aCYmIXYuZG9uZTttKyssdj1zLm5leHQoKSl7aC5pbmRleD5tPyhnPWgsaD1udWxsKTpnPWguc2libGluZzt2YXIgYj1wKG8saCx2LnZhbHVlLGMpO2lmKG51bGw9PT1iKXtudWxsPT09aCYmKGg9Zyk7YnJlYWt9ZSYmaCYmbnVsbD09PWIuYWx0ZXJuYXRlJiZ0KG8saCksaT1hKGIsaSxtKSxudWxsPT09ZD91PWI6ZC5zaWJsaW5nPWIsZD1iLGg9Z31pZih2LmRvbmUpcmV0dXJuIG4obyxoKSxyaiYmckEobyxtKSx1O2lmKG51bGw9PT1oKXtmb3IoOyF2LmRvbmU7bSsrLHY9cy5uZXh0KCkpbnVsbCE9PSh2PWYobyx2LnZhbHVlLGMpKSYmKGk9YSh2LGksbSksbnVsbD09PWQ/dT12OmQuc2libGluZz12LGQ9dik7cmV0dXJuIHJqJiZyQShvLG0pLHV9Zm9yKGg9cihoKTshdi5kb25lO20rKyx2PXMubmV4dCgpKW51bGwhPT0odj15KGgsbyxtLHYudmFsdWUsYykpJiYoZSYmbnVsbCE9PXYuYWx0ZXJuYXRlJiZoLmRlbGV0ZShudWxsPT09di5rZXk/bTp2LmtleSksaT1hKHYsaSxtKSxudWxsPT09ZD91PXY6ZC5zaWJsaW5nPXYsZD12KTtyZXR1cm4gZSYmaC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0KG8sZSl9KSxyaiYmckEobyxtKSx1fShjLHUsZD1iLmNhbGwoZCksdil9aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZC50aGVuKXJldHVybiBzKGMsdSxvbShkKSx2KTtpZihkLiQkdHlwZW9mPT09QSlyZXR1cm4gcyhjLHUscksoYyxkKSx2KTtveShjLGQpfXJldHVyblwic3RyaW5nXCI9PXR5cGVvZiBkJiZcIlwiIT09ZHx8XCJudW1iZXJcIj09dHlwZW9mIGR8fFwiYmlnaW50XCI9PXR5cGVvZiBkPyhkPVwiXCIrZCxudWxsIT09dSYmNj09PXUudGFnPyhuKGMsdS5zaWJsaW5nKSwodj1vKHUsZCkpLnJldHVybj1jKToobihjLHUpLCh2PXJpKGQsYy5tb2RlLHYpKS5yZXR1cm49YyksaShjPXYpKTpuKGMsdSl9KHMsYyx1LGQpO3JldHVybiBvcD1udWxsLHZ9Y2F0Y2goZSl7aWYoZT09PW9yfHxlPT09b2EpdGhyb3cgZTt2YXIgYj1yZSgyOSxlLG51bGwscy5tb2RlKTtyZXR1cm4gYi5sYW5lcz1kLGIucmV0dXJuPXMsYn1maW5hbGx5e319fXZhciBvYj1vdighMCksb0E9b3YoITEpLG94PSExO2Z1bmN0aW9uIG93KGUpe2UudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTplLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbCxsYW5lczowLGhpZGRlbkNhbGxiYWNrczpudWxsfSxjYWxsYmFja3M6bnVsbH19ZnVuY3Rpb24gb0MoZSx0KXtlPWUudXBkYXRlUXVldWUsdC51cGRhdGVRdWV1ZT09PWUmJih0LnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOmUubGFzdEJhc2VVcGRhdGUsc2hhcmVkOmUuc2hhcmVkLGNhbGxiYWNrczpudWxsfSl9ZnVuY3Rpb24gb18oZSl7cmV0dXJue2xhbmU6ZSx0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIG9rKGUsdCxuKXt2YXIgcj1lLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1yKXJldHVybiBudWxsO2lmKHI9ci5zaGFyZWQsMCE9KDImbEQpKXt2YXIgbz1yLnBlbmRpbmc7cmV0dXJuIG51bGw9PT1vP3QubmV4dD10Oih0Lm5leHQ9by5uZXh0LG8ubmV4dD10KSxyLnBlbmRpbmc9dCx0PW45KGUpLG42KGUsbnVsbCxuKSx0fXJldHVybiBuNChlLHIsdCxuKSxuOShlKX1mdW5jdGlvbiBvRShlLHQsbil7aWYobnVsbCE9PSh0PXQudXBkYXRlUXVldWUpJiYodD10LnNoYXJlZCwwIT0oNDE5NDA0OCZuKSkpe3ZhciByPXQubGFuZXM7ciY9ZS5wZW5kaW5nTGFuZXMsbnw9cix0LmxhbmVzPW4sZVMoZSxuKX19ZnVuY3Rpb24gb2ooZSx0KXt2YXIgbj1lLnVwZGF0ZVF1ZXVlLHI9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PXImJm49PT0ocj1yLnVwZGF0ZVF1ZXVlKSl7dmFyIG89bnVsbCxhPW51bGw7aWYobnVsbCE9PShuPW4uZmlyc3RCYXNlVXBkYXRlKSl7ZG97dmFyIGk9e2xhbmU6bi5sYW5lLHRhZzpuLnRhZyxwYXlsb2FkOm4ucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH07bnVsbD09PWE/bz1hPWk6YT1hLm5leHQ9aSxuPW4ubmV4dH13aGlsZShudWxsIT09bik7bnVsbD09PWE/bz1hPXQ6YT1hLm5leHQ9dH1lbHNlIG89YT10O249e2Jhc2VTdGF0ZTpyLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6byxsYXN0QmFzZVVwZGF0ZTphLHNoYXJlZDpyLnNoYXJlZCxjYWxsYmFja3M6ci5jYWxsYmFja3N9LGUudXBkYXRlUXVldWU9bjtyZXR1cm59bnVsbD09PShlPW4ubGFzdEJhc2VVcGRhdGUpP24uZmlyc3RCYXNlVXBkYXRlPXQ6ZS5uZXh0PXQsbi5sYXN0QmFzZVVwZGF0ZT10fXZhciBvUz0hMTtmdW5jdGlvbiBvTygpe2lmKG9TKXt2YXIgZT1yNjtpZihudWxsIT09ZSl0aHJvdyBlfX1mdW5jdGlvbiBvQihlLHQsbixyKXtvUz0hMTt2YXIgbz1lLnVwZGF0ZVF1ZXVlO294PSExO3ZhciBhPW8uZmlyc3RCYXNlVXBkYXRlLGk9by5sYXN0QmFzZVVwZGF0ZSxsPW8uc2hhcmVkLnBlbmRpbmc7aWYobnVsbCE9PWwpe28uc2hhcmVkLnBlbmRpbmc9bnVsbDt2YXIgcz1sLGM9cy5uZXh0O3MubmV4dD1udWxsLG51bGw9PT1pP2E9YzppLm5leHQ9YyxpPXM7dmFyIHU9ZS5hbHRlcm5hdGU7bnVsbCE9PXUmJihsPSh1PXUudXBkYXRlUXVldWUpLmxhc3RCYXNlVXBkYXRlKSE9PWkmJihudWxsPT09bD91LmZpcnN0QmFzZVVwZGF0ZT1jOmwubmV4dD1jLHUubGFzdEJhc2VVcGRhdGU9cyl9aWYobnVsbCE9PWEpe3ZhciBkPW8uYmFzZVN0YXRlO2ZvcihpPTAsdT1jPXM9bnVsbCxsPWE7Oyl7dmFyIHA9LTB4MjAwMDAwMDEmbC5sYW5lLGg9cCE9PWwubGFuZTtpZihoPyhsUiZwKT09PXA6KHImcCk9PT1wKXswIT09cCYmcD09PXIzJiYob1M9ITApLG51bGwhPT11JiYodT11Lm5leHQ9e2xhbmU6MCx0YWc6bC50YWcscGF5bG9hZDpsLnBheWxvYWQsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9KTtlOnt2YXIgbT1lLGc9bDtzd2l0Y2gocD10LGcudGFnKXtjYXNlIDE6aWYoXCJmdW5jdGlvblwiPT10eXBlb2YobT1nLnBheWxvYWQpKXtkPW0uY2FsbChuLGQscCk7YnJlYWsgZX1kPW07YnJlYWsgZTtjYXNlIDM6bS5mbGFncz0tNjU1MzcmbS5mbGFnc3wxMjg7Y2FzZSAwOmlmKG51bGw9PShwPVwiZnVuY3Rpb25cIj09dHlwZW9mKG09Zy5wYXlsb2FkKT9tLmNhbGwobixkLHApOm0pKWJyZWFrIGU7ZD1mKHt9LGQscCk7YnJlYWsgZTtjYXNlIDI6b3g9ITB9fW51bGwhPT0ocD1sLmNhbGxiYWNrKSYmKGUuZmxhZ3N8PTY0LGgmJihlLmZsYWdzfD04MTkyKSxudWxsPT09KGg9by5jYWxsYmFja3MpP28uY2FsbGJhY2tzPVtwXTpoLnB1c2gocCkpfWVsc2UgaD17bGFuZTpwLHRhZzpsLnRhZyxwYXlsb2FkOmwucGF5bG9hZCxjYWxsYmFjazpsLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PXU/KGM9dT1oLHM9ZCk6dT11Lm5leHQ9aCxpfD1wO2lmKG51bGw9PT0obD1sLm5leHQpKWlmKG51bGw9PT0obD1vLnNoYXJlZC5wZW5kaW5nKSlicmVhaztlbHNlIGw9KGg9bCkubmV4dCxoLm5leHQ9bnVsbCxvLmxhc3RCYXNlVXBkYXRlPWgsby5zaGFyZWQucGVuZGluZz1udWxsfW51bGw9PT11JiYocz1kKSxvLmJhc2VTdGF0ZT1zLG8uZmlyc3RCYXNlVXBkYXRlPWMsby5sYXN0QmFzZVVwZGF0ZT11LG51bGw9PT1hJiYoby5zaGFyZWQubGFuZXM9MCksbCR8PWksZS5sYW5lcz1pLGUubWVtb2l6ZWRTdGF0ZT1kfX1mdW5jdGlvbiBvUChlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgRXJyb3IobCgxOTEsZSkpO2UuY2FsbCh0KX1mdW5jdGlvbiBvSShlLHQpe3ZhciBuPWUuY2FsbGJhY2tzO2lmKG51bGwhPT1uKWZvcihlLmNhbGxiYWNrcz1udWxsLGU9MDtlPG4ubGVuZ3RoO2UrKylvUChuW2VdLHQpfXZhciBvVD1OKG51bGwpLG96PU4oMCk7ZnVuY3Rpb24gb0QoZSx0KXtNKG96LGU9bEgpLE0ob1QsdCksbEg9ZXx0LmJhc2VMYW5lc31mdW5jdGlvbiBvTCgpe00ob3osbEgpLE0ob1Qsb1QuY3VycmVudCl9ZnVuY3Rpb24gb04oKXtsSD1vei5jdXJyZW50LFIob1QpLFIob3opfXZhciBvUj1OKG51bGwpLG9NPW51bGw7ZnVuY3Rpb24gb1ooZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7TShvViwxJm9WLmN1cnJlbnQpLE0ob1IsZSksbnVsbD09PW9NJiYobnVsbD09PXR8fG51bGwhPT1vVC5jdXJyZW50P29NPWU6bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSYmKG9NPWUpKX1mdW5jdGlvbiBvVShlKXtNKG9WLG9WLmN1cnJlbnQpLE0ob1IsZSksbnVsbD09PW9NJiYob009ZSl9ZnVuY3Rpb24gb0YoZSl7MjI9PT1lLnRhZz8oTShvVixvVi5jdXJyZW50KSxNKG9SLGUpLG51bGw9PT1vTSYmKG9NPWUpKTpvcShlKX1mdW5jdGlvbiBvcSgpe00ob1Ysb1YuY3VycmVudCksTShvUixvUi5jdXJyZW50KX1mdW5jdGlvbiBvSChlKXtSKG9SKSxvTT09PWUmJihvTT1udWxsKSxSKG9WKX12YXIgb1Y9TigwKTtmdW5jdGlvbiBvJChlKXtmb3IodmFyIHQ9ZTtudWxsIT09dDspe2lmKDEzPT09dC50YWcpe3ZhciBuPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09biYmKG51bGw9PT0obj1uLmRlaHlkcmF0ZWQpfHxjUyhuKXx8Y08obikpKXJldHVybiB0fWVsc2UgaWYoMTk9PT10LnRhZyYmKFwiZm9yd2FyZHNcIj09PXQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcnx8XCJiYWNrd2FyZHNcIj09PXQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcnx8XCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCI9PT10Lm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXJ8fFwidG9nZXRoZXJcIj09PXQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcikpe2lmKDAhPSgxMjgmdC5mbGFncykpcmV0dXJuIHR9ZWxzZSBpZihudWxsIT09dC5jaGlsZCl7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGQ7Y29udGludWV9aWYodD09PWUpYnJlYWs7Zm9yKDtudWxsPT09dC5zaWJsaW5nOyl7aWYobnVsbD09PXQucmV0dXJufHx0LnJldHVybj09PWUpcmV0dXJuIG51bGw7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfXJldHVybiBudWxsfXZhciBvVz0wLG9ZPW51bGwsb0s9bnVsbCxvWD1udWxsLG9HPSExLG9RPSExLG9KPSExLG8wPTAsbzE9MCxvMj1udWxsLG80PTA7ZnVuY3Rpb24gbzUoKXt0aHJvdyBFcnJvcihsKDMyMSkpfWZ1bmN0aW9uIG8zKGUsdCl7aWYobnVsbD09PXQpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aCYmbjxlLmxlbmd0aDtuKyspaWYoIW5rKGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gbzYoZSx0LG4scixvLGEpe3JldHVybiBvVz1hLG9ZPXQsdC5tZW1vaXplZFN0YXRlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLHQubGFuZXM9MCxJLkg9bnVsbD09PWV8fG51bGw9PT1lLm1lbW9pemVkU3RhdGU/aXQ6aXIsb0o9ITEsYT1uKHIsbyksb0o9ITEsb1EmJihhPW84KHQsbixyLG8pKSxvOShlKSxhfWZ1bmN0aW9uIG85KGUpe0kuSD1pZTt2YXIgdD1udWxsIT09b0smJm51bGwhPT1vSy5uZXh0O2lmKG9XPTAsb1g9b0s9b1k9bnVsbCxvRz0hMSxvMT0wLG8yPW51bGwsdCl0aHJvdyBFcnJvcihsKDMwMCkpO251bGw9PT1lfHxpQXx8bnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmciQoZSkmJihpQT0hMCl9ZnVuY3Rpb24gbzgoZSx0LG4scil7b1k9ZTt2YXIgbz0wO2Rve2lmKG9RJiYobzI9bnVsbCksbzE9MCxvUT0hMSwyNTw9byl0aHJvdyBFcnJvcihsKDMwMSkpO2lmKG8rPTEsb1g9b0s9bnVsbCxudWxsIT1lLnVwZGF0ZVF1ZXVlKXt2YXIgYT1lLnVwZGF0ZVF1ZXVlO2EubGFzdEVmZmVjdD1udWxsLGEuZXZlbnRzPW51bGwsYS5zdG9yZXM9bnVsbCxudWxsIT1hLm1lbW9DYWNoZSYmKGEubWVtb0NhY2hlLmluZGV4PTApfUkuSD1pbyxhPXQobixyKX13aGlsZShvUSk7cmV0dXJuIGF9ZnVuY3Rpb24gbzcoKXt2YXIgZT1JLkgsdD1lLnVzZVN0YXRlKClbMF07cmV0dXJuIHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgdC50aGVuP2FpKHQpOnQsZT1lLnVzZVN0YXRlKClbMF0sKG51bGwhPT1vSz9vSy5tZW1vaXplZFN0YXRlOm51bGwpIT09ZSYmKG9ZLmZsYWdzfD0xMDI0KSx0fWZ1bmN0aW9uIGFlKCl7dmFyIGU9MCE9PW8wO3JldHVybiBvMD0wLGV9ZnVuY3Rpb24gYXQoZSx0LG4pe3QudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0LmZsYWdzJj0tMjA1MyxlLmxhbmVzJj1+bn1mdW5jdGlvbiBhbihlKXtpZihvRyl7Zm9yKGU9ZS5tZW1vaXplZFN0YXRlO251bGwhPT1lOyl7dmFyIHQ9ZS5xdWV1ZTtudWxsIT09dCYmKHQucGVuZGluZz1udWxsKSxlPWUubmV4dH1vRz0hMX1vVz0wLG9YPW9LPW9ZPW51bGwsb1E9ITEsbzE9bzA9MCxvMj1udWxsfWZ1bmN0aW9uIGFyKCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIG51bGw9PT1vWD9vWS5tZW1vaXplZFN0YXRlPW9YPWU6b1g9b1gubmV4dD1lLG9YfWZ1bmN0aW9uIGFvKCl7aWYobnVsbD09PW9LKXt2YXIgZT1vWS5hbHRlcm5hdGU7ZT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGU9b0submV4dDt2YXIgdD1udWxsPT09b1g/b1kubWVtb2l6ZWRTdGF0ZTpvWC5uZXh0O2lmKG51bGwhPT10KW9YPXQsb0s9ZTtlbHNle2lmKG51bGw9PT1lKXtpZihudWxsPT09b1kuYWx0ZXJuYXRlKXRocm93IEVycm9yKGwoNDY3KSk7dGhyb3cgRXJyb3IobCgzMTApKX1lPXttZW1vaXplZFN0YXRlOihvSz1lKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpvSy5iYXNlU3RhdGUsYmFzZVF1ZXVlOm9LLmJhc2VRdWV1ZSxxdWV1ZTpvSy5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1vWD9vWS5tZW1vaXplZFN0YXRlPW9YPWU6b1g9b1gubmV4dD1lfXJldHVybiBvWH1mdW5jdGlvbiBhYSgpe3JldHVybntsYXN0RWZmZWN0Om51bGwsZXZlbnRzOm51bGwsc3RvcmVzOm51bGwsbWVtb0NhY2hlOm51bGx9fWZ1bmN0aW9uIGFpKGUpe3ZhciB0PW8xO3JldHVybiBvMSs9MSxudWxsPT09bzImJihvMj1bXSksZT1vcyhvMixlLHQpLHQ9b1ksbnVsbD09PShudWxsPT09b1g/dC5tZW1vaXplZFN0YXRlOm9YLm5leHQpJiYoSS5IPW51bGw9PT0odD10LmFsdGVybmF0ZSl8fG51bGw9PT10Lm1lbW9pemVkU3RhdGU/aXQ6aXIpLGV9ZnVuY3Rpb24gYWwoZSl7aWYobnVsbCE9PWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRoZW4pcmV0dXJuIGFpKGUpO2lmKGUuJCR0eXBlb2Y9PT1BKXJldHVybiByWShlKX10aHJvdyBFcnJvcihsKDQzOCxTdHJpbmcoZSkpKX1mdW5jdGlvbiBhcyhlKXt2YXIgdD1udWxsLG49b1kudXBkYXRlUXVldWU7aWYobnVsbCE9PW4mJih0PW4ubWVtb0NhY2hlKSxudWxsPT10KXt2YXIgcj1vWS5hbHRlcm5hdGU7bnVsbCE9PXImJm51bGwhPT0ocj1yLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9KHI9ci5tZW1vQ2FjaGUpJiYodD17ZGF0YTpyLmRhdGEubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNsaWNlKCl9KSxpbmRleDowfSl9aWYobnVsbD09dCYmKHQ9e2RhdGE6W10saW5kZXg6MH0pLG51bGw9PT1uJiYobj1hYSgpLG9ZLnVwZGF0ZVF1ZXVlPW4pLG4ubWVtb0NhY2hlPXQsdm9pZCAwPT09KG49dC5kYXRhW3QuaW5kZXhdKSlmb3Iobj10LmRhdGFbdC5pbmRleF09QXJyYXkoZSkscj0wO3I8ZTtyKyspbltyXT1qO3JldHVybiB0LmluZGV4Kyssbn1mdW5jdGlvbiBhYyhlLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dChlKTp0fWZ1bmN0aW9uIGF1KGUpe3JldHVybiBhZChhbygpLG9LLGUpfWZ1bmN0aW9uIGFkKGUsdCxuKXt2YXIgcj1lLnF1ZXVlO2lmKG51bGw9PT1yKXRocm93IEVycm9yKGwoMzExKSk7ci5sYXN0UmVuZGVyZWRSZWR1Y2VyPW47dmFyIG89ZS5iYXNlUXVldWUsYT1yLnBlbmRpbmc7aWYobnVsbCE9PWEpe2lmKG51bGwhPT1vKXt2YXIgaT1vLm5leHQ7by5uZXh0PWEubmV4dCxhLm5leHQ9aX10LmJhc2VRdWV1ZT1vPWEsci5wZW5kaW5nPW51bGx9aWYoYT1lLmJhc2VTdGF0ZSxudWxsPT09byllLm1lbW9pemVkU3RhdGU9YTtlbHNle3Q9by5uZXh0O3ZhciBzPWk9bnVsbCxjPW51bGwsdT10LGQ9ITE7ZG97dmFyIGY9LTB4MjAwMDAwMDEmdS5sYW5lO2lmKGYhPT11LmxhbmU/KGxSJmYpPT09Zjoob1cmZik9PT1mKXt2YXIgcD11LnJldmVydExhbmU7aWYoMD09PXApbnVsbCE9PWMmJihjPWMubmV4dD17bGFuZTowLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOnUuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6dS5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6dS5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGY9PT1yMyYmKGQ9ITApO2Vsc2UgaWYoKG9XJnApPT09cCl7dT11Lm5leHQscD09PXIzJiYoZD0hMCk7Y29udGludWV9ZWxzZSBmPXtsYW5lOjAscmV2ZXJ0TGFuZTp1LnJldmVydExhbmUsZ2VzdHVyZTpudWxsLGFjdGlvbjp1LmFjdGlvbixoYXNFYWdlclN0YXRlOnUuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnUuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LG51bGw9PT1jPyhzPWM9ZixpPWEpOmM9Yy5uZXh0PWYsb1kubGFuZXN8PXAsbCR8PXA7Zj11LmFjdGlvbixvSiYmbihhLGYpLGE9dS5oYXNFYWdlclN0YXRlP3UuZWFnZXJTdGF0ZTpuKGEsZil9ZWxzZSBwPXtsYW5lOmYscmV2ZXJ0TGFuZTp1LnJldmVydExhbmUsZ2VzdHVyZTp1Lmdlc3R1cmUsYWN0aW9uOnUuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6dS5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6dS5lYWdlclN0YXRlLG5leHQ6bnVsbH0sbnVsbD09PWM/KHM9Yz1wLGk9YSk6Yz1jLm5leHQ9cCxvWS5sYW5lc3w9ZixsJHw9Zjt1PXUubmV4dH13aGlsZShudWxsIT09dSYmdSE9PXQpO2lmKG51bGw9PT1jP2k9YTpjLm5leHQ9cywhbmsoYSxlLm1lbW9pemVkU3RhdGUpJiYoaUE9ITAsZCYmbnVsbCE9PShuPXI2KSkpdGhyb3cgbjtlLm1lbW9pemVkU3RhdGU9YSxlLmJhc2VTdGF0ZT1pLGUuYmFzZVF1ZXVlPWMsci5sYXN0UmVuZGVyZWRTdGF0ZT1hfXJldHVybiBudWxsPT09byYmKHIubGFuZXM9MCksW2UubWVtb2l6ZWRTdGF0ZSxyLmRpc3BhdGNoXX1mdW5jdGlvbiBhZihlKXt2YXIgdD1hbygpLG49dC5xdWV1ZTtpZihudWxsPT09bil0aHJvdyBFcnJvcihsKDMxMSkpO24ubGFzdFJlbmRlcmVkUmVkdWNlcj1lO3ZhciByPW4uZGlzcGF0Y2gsbz1uLnBlbmRpbmcsYT10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW8pe24ucGVuZGluZz1udWxsO3ZhciBpPW89by5uZXh0O2RvIGE9ZShhLGkuYWN0aW9uKSxpPWkubmV4dDt3aGlsZShpIT09byk7bmsoYSx0Lm1lbW9pemVkU3RhdGUpfHwoaUE9ITApLHQubWVtb2l6ZWRTdGF0ZT1hLG51bGw9PT10LmJhc2VRdWV1ZSYmKHQuYmFzZVN0YXRlPWEpLG4ubGFzdFJlbmRlcmVkU3RhdGU9YX1yZXR1cm5bYSxyXX1mdW5jdGlvbiBhcChlLHQsbil7dmFyIHI9b1ksbz1hbygpLGE9cmo7aWYoYSl7aWYodm9pZCAwPT09bil0aHJvdyBFcnJvcihsKDQwNykpO249bigpfWVsc2Ugbj10KCk7dmFyIGk9IW5rKChvS3x8bykubWVtb2l6ZWRTdGF0ZSxuKTtpZihpJiYoby5tZW1vaXplZFN0YXRlPW4saUE9ITApLG89by5xdWV1ZSxhUihhZy5iaW5kKG51bGwscixvLGUpLFtlXSksby5nZXRTbmFwc2hvdCE9PXR8fGl8fG51bGwhPT1vWCYmMSZvWC5tZW1vaXplZFN0YXRlLnRhZyl7aWYoci5mbGFnc3w9MjA0OCxhVCg5LHtkZXN0cm95OnZvaWQgMH0sYW0uYmluZChudWxsLHIsbyxuLHQpLG51bGwpLG51bGw9PT1sTCl0aHJvdyBFcnJvcihsKDM0OSkpO2F8fDAhPSgxMjQmb1cpfHxhaChyLHQsbil9cmV0dXJuIG59ZnVuY3Rpb24gYWgoZSx0LG4pe2UuZmxhZ3N8PTE2Mzg0LGU9e2dldFNuYXBzaG90OnQsdmFsdWU6bn0sbnVsbD09PSh0PW9ZLnVwZGF0ZVF1ZXVlKT8odD1hYSgpLG9ZLnVwZGF0ZVF1ZXVlPXQsdC5zdG9yZXM9W2VdKTpudWxsPT09KG49dC5zdG9yZXMpP3Quc3RvcmVzPVtlXTpuLnB1c2goZSl9ZnVuY3Rpb24gYW0oZSx0LG4scil7dC52YWx1ZT1uLHQuZ2V0U25hcHNob3Q9cixheSh0KSYmYXYoZSl9ZnVuY3Rpb24gYWcoZSx0LG4pe3JldHVybiBuKGZ1bmN0aW9uKCl7YXkodCkmJmF2KGUpfSl9ZnVuY3Rpb24gYXkoZSl7dmFyIHQ9ZS5nZXRTbmFwc2hvdDtlPWUudmFsdWU7dHJ5e3ZhciBuPXQoKTtyZXR1cm4hbmsoZSxuKX1jYXRjaChlKXtyZXR1cm4hMH19ZnVuY3Rpb24gYXYoZSl7dmFyIHQ9bjMoZSwyKTtudWxsIT09dCYmc2EodCxlLDIpfWZ1bmN0aW9uIGFiKGUpe3ZhciB0PWFyKCk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZSl7dmFyIG49ZTtpZihlPW4oKSxvSil7ZWgoITApO3RyeXtuKCl9ZmluYWxseXtlaCghMSl9fX1yZXR1cm4gdC5tZW1vaXplZFN0YXRlPXQuYmFzZVN0YXRlPWUsdC5xdWV1ZT17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmFjLGxhc3RSZW5kZXJlZFN0YXRlOmV9LHR9ZnVuY3Rpb24gYUEoZSx0LG4scil7cmV0dXJuIGUuYmFzZVN0YXRlPW4sYWQoZSxvSyxcImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6YWMpfWZ1bmN0aW9uIGF4KGUsdCxuLHIsbyl7aWYoYTkoZSkpdGhyb3cgRXJyb3IobCg0ODUpKTtpZihudWxsIT09KGU9dC5hY3Rpb24pKXt2YXIgYT17cGF5bG9hZDpvLGFjdGlvbjplLG5leHQ6bnVsbCxpc1RyYW5zaXRpb246ITAsc3RhdHVzOlwicGVuZGluZ1wiLHZhbHVlOm51bGwscmVhc29uOm51bGwsbGlzdGVuZXJzOltdLHRoZW46ZnVuY3Rpb24oZSl7YS5saXN0ZW5lcnMucHVzaChlKX19O251bGwhPT1JLlQ/bighMCk6YS5pc1RyYW5zaXRpb249ITEscihhKSxudWxsPT09KG49dC5wZW5kaW5nKT8oYS5uZXh0PXQucGVuZGluZz1hLGF3KHQsYSkpOihhLm5leHQ9bi5uZXh0LHQucGVuZGluZz1uLm5leHQ9YSl9fWZ1bmN0aW9uIGF3KGUsdCl7dmFyIG49dC5hY3Rpb24scj10LnBheWxvYWQsbz1lLnN0YXRlO2lmKHQuaXNUcmFuc2l0aW9uKXt2YXIgYT1JLlQsaT17fTtJLlQ9aTt0cnl7dmFyIGw9bihvLHIpLHM9SS5TO251bGwhPT1zJiZzKGksbCksYUMoZSx0LGwpfWNhdGNoKG4pe2FrKGUsdCxuKX1maW5hbGx5e251bGwhPT1hJiZudWxsIT09aS50eXBlcyYmKGEudHlwZXM9aS50eXBlcyksSS5UPWF9fWVsc2UgdHJ5e2E9bihvLHIpLGFDKGUsdCxhKX1jYXRjaChuKXthayhlLHQsbil9fWZ1bmN0aW9uIGFDKGUsdCxuKXtudWxsIT09biYmXCJvYmplY3RcIj09dHlwZW9mIG4mJlwiZnVuY3Rpb25cIj09dHlwZW9mIG4udGhlbj9uLnRoZW4oZnVuY3Rpb24obil7YV8oZSx0LG4pfSxmdW5jdGlvbihuKXtyZXR1cm4gYWsoZSx0LG4pfSk6YV8oZSx0LG4pfWZ1bmN0aW9uIGFfKGUsdCxuKXt0LnN0YXR1cz1cImZ1bGZpbGxlZFwiLHQudmFsdWU9bixhRSh0KSxlLnN0YXRlPW4sbnVsbCE9PSh0PWUucGVuZGluZykmJigobj10Lm5leHQpPT09dD9lLnBlbmRpbmc9bnVsbDoobj1uLm5leHQsdC5uZXh0PW4sYXcoZSxuKSkpfWZ1bmN0aW9uIGFrKGUsdCxuKXt2YXIgcj1lLnBlbmRpbmc7aWYoZS5wZW5kaW5nPW51bGwsbnVsbCE9PXIpe3I9ci5uZXh0O2RvIHQuc3RhdHVzPVwicmVqZWN0ZWRcIix0LnJlYXNvbj1uLGFFKHQpLHQ9dC5uZXh0O3doaWxlKHQhPT1yKX1lLmFjdGlvbj1udWxsfWZ1bmN0aW9uIGFFKGUpe2U9ZS5saXN0ZW5lcnM7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspKDAsZVt0XSkoKX1mdW5jdGlvbiBhaihlLHQpe3JldHVybiB0fWZ1bmN0aW9uIGFTKGUsdCl7aWYocmope3ZhciBuPWxMLmZvcm1TdGF0ZTtpZihudWxsIT09bil7ZTp7dmFyIHI9b1k7aWYocmope2lmKHJFKXt0Ontmb3IodmFyIG89ckUsYT1yTzs4IT09by5ub2RlVHlwZTspaWYoIWF8fG51bGw9PT0obz1jQihvLm5leHRTaWJsaW5nKSkpe289bnVsbDticmVhayB0fW89XCJGIVwiPT09KGE9by5kYXRhKXx8XCJGXCI9PT1hP286bnVsbH1pZihvKXtyRT1jQihvLm5leHRTaWJsaW5nKSxyPVwiRiFcIj09PW8uZGF0YTticmVhayBlfX1yUChyKX1yPSExfXImJih0PW5bMF0pfX1yZXR1cm4obj1hcigpKS5tZW1vaXplZFN0YXRlPW4uYmFzZVN0YXRlPXQscj17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmFqLGxhc3RSZW5kZXJlZFN0YXRlOnR9LG4ucXVldWU9cixuPWE1LmJpbmQobnVsbCxvWSxyKSxyLmRpc3BhdGNoPW4scj1hYighMSksYT1hNi5iaW5kKG51bGwsb1ksITEsci5xdWV1ZSkscj1hcigpLG89e3N0YXRlOnQsZGlzcGF0Y2g6bnVsbCxhY3Rpb246ZSxwZW5kaW5nOm51bGx9LHIucXVldWU9byxuPWF4LmJpbmQobnVsbCxvWSxvLGEsbiksby5kaXNwYXRjaD1uLHIubWVtb2l6ZWRTdGF0ZT1lLFt0LG4sITFdfWZ1bmN0aW9uIGFPKGUpe3JldHVybiBhQihhbygpLG9LLGUpfWZ1bmN0aW9uIGFCKGUsdCxuKXtpZih0PWFkKGUsdCxhailbMF0sZT1hdShhYylbMF0sXCJvYmplY3RcIj09dHlwZW9mIHQmJm51bGwhPT10JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnRoZW4pdHJ5e3ZhciByPWFpKHQpfWNhdGNoKGUpe2lmKGU9PT1vcil0aHJvdyBvYTt0aHJvdyBlfWVsc2Ugcj10O3ZhciBvPSh0PWFvKCkpLnF1ZXVlLGE9by5kaXNwYXRjaDtyZXR1cm4gbiE9PXQubWVtb2l6ZWRTdGF0ZSYmKG9ZLmZsYWdzfD0yMDQ4LGFUKDkse2Rlc3Ryb3k6dm9pZCAwfSxhUC5iaW5kKG51bGwsbyxuKSxudWxsKSksW3IsYSxlXX1mdW5jdGlvbiBhUChlLHQpe2UuYWN0aW9uPXR9ZnVuY3Rpb24gYUkoZSl7dmFyIHQ9YW8oKSxuPW9LO2lmKG51bGwhPT1uKXJldHVybiBhQih0LG4sZSk7YW8oKSx0PXQubWVtb2l6ZWRTdGF0ZTt2YXIgcj0obj1hbygpKS5xdWV1ZS5kaXNwYXRjaDtyZXR1cm4gbi5tZW1vaXplZFN0YXRlPWUsW3QsciwhMV19ZnVuY3Rpb24gYVQoZSx0LG4scil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTpuLGRlcHM6cixpbnN0OnQsbmV4dDpudWxsfSxudWxsPT09KHQ9b1kudXBkYXRlUXVldWUpJiYodD1hYSgpLG9ZLnVwZGF0ZVF1ZXVlPXQpLG51bGw9PT0obj10Lmxhc3RFZmZlY3QpP3QubGFzdEVmZmVjdD1lLm5leHQ9ZToocj1uLm5leHQsbi5uZXh0PWUsZS5uZXh0PXIsdC5sYXN0RWZmZWN0PWUpLGV9ZnVuY3Rpb24gYXooKXtyZXR1cm4gYW8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGFEKGUsdCxuLHIpe3ZhciBvPWFyKCk7b1kuZmxhZ3N8PWUsby5tZW1vaXplZFN0YXRlPWFUKDF8dCx7ZGVzdHJveTp2b2lkIDB9LG4sdm9pZCAwPT09cj9udWxsOnIpfWZ1bmN0aW9uIGFMKGUsdCxuLHIpe3ZhciBvPWFvKCk7cj12b2lkIDA9PT1yP251bGw6cjt2YXIgYT1vLm1lbW9pemVkU3RhdGUuaW5zdDtudWxsIT09b0smJm51bGwhPT1yJiZvMyhyLG9LLm1lbW9pemVkU3RhdGUuZGVwcyk/by5tZW1vaXplZFN0YXRlPWFUKHQsYSxuLHIpOihvWS5mbGFnc3w9ZSxvLm1lbW9pemVkU3RhdGU9YVQoMXx0LGEsbixyKSl9ZnVuY3Rpb24gYU4oZSx0KXthRCg4MzkwNjU2LDgsZSx0KX1mdW5jdGlvbiBhUihlLHQpe2FMKDIwNDgsOCxlLHQpfWZ1bmN0aW9uIGFNKGUsdCl7cmV0dXJuIGFMKDQsMixlLHQpfWZ1bmN0aW9uIGFaKGUsdCl7cmV0dXJuIGFMKDQsNCxlLHQpfWZ1bmN0aW9uIGFVKGUsdCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgdCl7dmFyIG49dChlPWUoKSk7cmV0dXJuIGZ1bmN0aW9uKCl7XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uKCk6dChudWxsKX19aWYobnVsbCE9dClyZXR1cm4gdC5jdXJyZW50PWU9ZSgpLGZ1bmN0aW9uKCl7dC5jdXJyZW50PW51bGx9fWZ1bmN0aW9uIGFGKGUsdCxuKXtuPW51bGwhPW4/bi5jb25jYXQoW2VdKTpudWxsLGFMKDQsNCxhVS5iaW5kKG51bGwsdCxlKSxuKX1mdW5jdGlvbiBhcSgpe31mdW5jdGlvbiBhSChlLHQpe3ZhciBuPWFvKCk7dD12b2lkIDA9PT10P251bGw6dDt2YXIgcj1uLm1lbW9pemVkU3RhdGU7cmV0dXJuIG51bGwhPT10JiZvMyh0LHJbMV0pP3JbMF06KG4ubWVtb2l6ZWRTdGF0ZT1bZSx0XSxlKX1mdW5jdGlvbiBhVihlLHQpe3ZhciBuPWFvKCk7dD12b2lkIDA9PT10P251bGw6dDt2YXIgcj1uLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXQmJm8zKHQsclsxXSkpcmV0dXJuIHJbMF07aWYocj1lKCksb0ope2VoKCEwKTt0cnl7ZSgpfWZpbmFsbHl7ZWgoITEpfX1yZXR1cm4gbi5tZW1vaXplZFN0YXRlPVtyLHRdLHJ9ZnVuY3Rpb24gYSQoZSx0LG4pe3JldHVybiB2b2lkIDA9PT1ufHwwIT0oMHg0MDAwMDAwMCZvVyk/ZS5tZW1vaXplZFN0YXRlPXQ6KGUubWVtb2l6ZWRTdGF0ZT1uLGU9c28oKSxvWS5sYW5lc3w9ZSxsJHw9ZSxuKX1mdW5jdGlvbiBhVyhlLHQsbixyKXtyZXR1cm4gbmsobix0KT9uOm51bGwhPT1vVC5jdXJyZW50PyhuayhlPWEkKGUsbixyKSx0KXx8KGlBPSEwKSxlKTowPT0oNDImb1cpfHwwIT0oMHg0MDAwMDAwMCZvVyk/KGlBPSEwLGUubWVtb2l6ZWRTdGF0ZT1uKTooZT1zbygpLG9ZLmxhbmVzfD1lLGwkfD1lLHQpfWZ1bmN0aW9uIGFZKGUsdCxuLHIsbyl7dmFyIGE9VC5wO1QucD0wIT09YSYmOD5hP2E6ODt2YXIgaT1JLlQsbD17fTtJLlQ9bCxhNihlLCExLHQsbik7dHJ5e3ZhciBzPW8oKSxjPUkuUztpZihudWxsIT09YyYmYyhsLHMpLG51bGwhPT1zJiZcIm9iamVjdFwiPT10eXBlb2YgcyYmXCJmdW5jdGlvblwiPT10eXBlb2Ygcy50aGVuKXt2YXIgdSxkLGY9KHU9W10sZD17c3RhdHVzOlwicGVuZGluZ1wiLHZhbHVlOm51bGwscmVhc29uOm51bGwsdGhlbjpmdW5jdGlvbihlKXt1LnB1c2goZSl9fSxzLnRoZW4oZnVuY3Rpb24oKXtkLnN0YXR1cz1cImZ1bGZpbGxlZFwiLGQudmFsdWU9cjtmb3IodmFyIGU9MDtlPHUubGVuZ3RoO2UrKykoMCx1W2VdKShyKX0sZnVuY3Rpb24oZSl7Zm9yKGQuc3RhdHVzPVwicmVqZWN0ZWRcIixkLnJlYXNvbj1lLGU9MDtlPHUubGVuZ3RoO2UrKykoMCx1W2VdKSh2b2lkIDApfSksZCk7YTMoZSx0LGYsc3IoZSkpfWVsc2UgYTMoZSx0LHIsc3IoZSkpfWNhdGNoKG4pe2EzKGUsdCx7dGhlbjpmdW5jdGlvbigpe30sc3RhdHVzOlwicmVqZWN0ZWRcIixyZWFzb246bn0sc3IoKSl9ZmluYWxseXtULnA9YSxudWxsIT09aSYmbnVsbCE9PWwudHlwZXMmJihpLnR5cGVzPWwudHlwZXMpLEkuVD1pfX1mdW5jdGlvbiBhSygpe31mdW5jdGlvbiBhWChlLHQsbixyKXtpZig1IT09ZS50YWcpdGhyb3cgRXJyb3IobCg0NzYpKTt2YXIgbz1hRyhlKS5xdWV1ZTthWShlLG8sdCx6LG51bGw9PT1uP2FLOmZ1bmN0aW9uKCl7cmV0dXJuIGFRKGUpLG4ocil9KX1mdW5jdGlvbiBhRyhlKXt2YXIgdD1lLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXQpcmV0dXJuIHQ7dmFyIG49e307cmV0dXJuKHQ9e21lbW9pemVkU3RhdGU6eixiYXNlU3RhdGU6eixiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmFjLGxhc3RSZW5kZXJlZFN0YXRlOnp9LG5leHQ6bnVsbH0pLm5leHQ9e21lbW9pemVkU3RhdGU6bixiYXNlU3RhdGU6bixiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmFjLGxhc3RSZW5kZXJlZFN0YXRlOm59LG5leHQ6bnVsbH0sZS5tZW1vaXplZFN0YXRlPXQsbnVsbCE9PShlPWUuYWx0ZXJuYXRlKSYmKGUubWVtb2l6ZWRTdGF0ZT10KSx0fWZ1bmN0aW9uIGFRKGUpe3ZhciB0PWFHKGUpO251bGw9PT10Lm5leHQmJih0PWUuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUpLGEzKGUsdC5uZXh0LnF1ZXVlLHt9LHNyKCkpfWZ1bmN0aW9uIGFKKCl7cmV0dXJuIHJZKGM5KX1mdW5jdGlvbiBhMCgpe3JldHVybiBhbygpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gYTEoKXtyZXR1cm4gYW8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGEyKGUpe2Zvcih2YXIgdD1lLnJldHVybjtudWxsIT09dDspe3N3aXRjaCh0LnRhZyl7Y2FzZSAyNDpjYXNlIDM6dmFyIG49c3IoKSxyPW9rKHQsZT1vXyhuKSxuKTtudWxsIT09ciYmKHNhKHIsdCxuKSxvRShyLHQsbikpLHQ9e2NhY2hlOnIxKCl9LGUucGF5bG9hZD10O3JldHVybn10PXQucmV0dXJufX1mdW5jdGlvbiBhNChlLHQsbil7dmFyIHI9c3IoKTtuPXtsYW5lOnIscmV2ZXJ0TGFuZTowLGdlc3R1cmU6bnVsbCxhY3Rpb246bixoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LGE5KGUpP2E4KHQsbik6bnVsbCE9PShuPW41KGUsdCxuLHIpKSYmKHNhKG4sZSxyKSxhNyhuLHQscikpfWZ1bmN0aW9uIGE1KGUsdCxuKXthMyhlLHQsbixzcigpKX1mdW5jdGlvbiBhMyhlLHQsbixyKXt2YXIgbz17bGFuZTpyLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOm4saGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZihhOShlKSlhOCh0LG8pO2Vsc2V7dmFyIGE9ZS5hbHRlcm5hdGU7aWYoMD09PWUubGFuZXMmJihudWxsPT09YXx8MD09PWEubGFuZXMpJiZudWxsIT09KGE9dC5sYXN0UmVuZGVyZWRSZWR1Y2VyKSl0cnl7dmFyIGk9dC5sYXN0UmVuZGVyZWRTdGF0ZSxsPWEoaSxuKTtpZihvLmhhc0VhZ2VyU3RhdGU9ITAsby5lYWdlclN0YXRlPWwsbmsobCxpKSlyZXR1cm4gbjQoZSx0LG8sMCksbnVsbD09PWxMJiZuMigpLCExfWNhdGNoKGUpe31maW5hbGx5e31pZihudWxsIT09KG49bjUoZSx0LG8scikpKXJldHVybiBzYShuLGUsciksYTcobix0LHIpLCEwfXJldHVybiExfWZ1bmN0aW9uIGE2KGUsdCxuLHIpe2lmKHI9e2xhbmU6MixyZXZlcnRMYW5lOnNYKCksZ2VzdHVyZTpudWxsLGFjdGlvbjpyLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0sYTkoZSkpe2lmKHQpdGhyb3cgRXJyb3IobCg0NzkpKX1lbHNlIG51bGwhPT0odD1uNShlLG4sciwyKSkmJnNhKHQsZSwyKX1mdW5jdGlvbiBhOShlKXt2YXIgdD1lLmFsdGVybmF0ZTtyZXR1cm4gZT09PW9ZfHxudWxsIT09dCYmdD09PW9ZfWZ1bmN0aW9uIGE4KGUsdCl7b1E9b0c9ITA7dmFyIG49ZS5wZW5kaW5nO251bGw9PT1uP3QubmV4dD10Oih0Lm5leHQ9bi5uZXh0LG4ubmV4dD10KSxlLnBlbmRpbmc9dH1mdW5jdGlvbiBhNyhlLHQsbil7aWYoMCE9KDQxOTQwNDgmbikpe3ZhciByPXQubGFuZXM7ciY9ZS5wZW5kaW5nTGFuZXMsdC5sYW5lcz1ufD1yLGVTKGUsbil9fXZhciBpZT17cmVhZENvbnRleHQ6clksdXNlOmFsLHVzZUNhbGxiYWNrOm81LHVzZUNvbnRleHQ6bzUsdXNlRWZmZWN0Om81LHVzZUltcGVyYXRpdmVIYW5kbGU6bzUsdXNlTGF5b3V0RWZmZWN0Om81LHVzZUluc2VydGlvbkVmZmVjdDpvNSx1c2VNZW1vOm81LHVzZVJlZHVjZXI6bzUsdXNlUmVmOm81LHVzZVN0YXRlOm81LHVzZURlYnVnVmFsdWU6bzUsdXNlRGVmZXJyZWRWYWx1ZTpvNSx1c2VUcmFuc2l0aW9uOm81LHVzZVN5bmNFeHRlcm5hbFN0b3JlOm81LHVzZUlkOm81LHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOm81LHVzZUZvcm1TdGF0ZTpvNSx1c2VBY3Rpb25TdGF0ZTpvNSx1c2VPcHRpbWlzdGljOm81LHVzZU1lbW9DYWNoZTpvNSx1c2VDYWNoZVJlZnJlc2g6bzV9LGl0PXtyZWFkQ29udGV4dDpyWSx1c2U6YWwsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXIoKS5tZW1vaXplZFN0YXRlPVtlLHZvaWQgMD09PXQ/bnVsbDp0XSxlfSx1c2VDb250ZXh0OnJZLHVzZUVmZmVjdDphTix1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGUsdCxuKXtuPW51bGwhPW4/bi5jb25jYXQoW2VdKTpudWxsLGFEKDQxOTQzMDgsNCxhVS5iaW5kKG51bGwsdCxlKSxuKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFEKDQxOTQzMDgsNCxlLHQpfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24oZSx0KXthRCg0LDIsZSx0KX0sdXNlTWVtbzpmdW5jdGlvbihlLHQpe3ZhciBuPWFyKCk7dD12b2lkIDA9PT10P251bGw6dDt2YXIgcj1lKCk7aWYob0ope2VoKCEwKTt0cnl7ZSgpfWZpbmFsbHl7ZWgoITEpfX1yZXR1cm4gbi5tZW1vaXplZFN0YXRlPVtyLHRdLHJ9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWFyKCk7aWYodm9pZCAwIT09bil7dmFyIG89bih0KTtpZihvSil7ZWgoITApO3RyeXtuKHQpfWZpbmFsbHl7ZWgoITEpfX19ZWxzZSBvPXQ7cmV0dXJuIHIubWVtb2l6ZWRTdGF0ZT1yLmJhc2VTdGF0ZT1vLHIucXVldWU9ZT17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmUsbGFzdFJlbmRlcmVkU3RhdGU6b30sZT1lLmRpc3BhdGNoPWE0LmJpbmQobnVsbCxvWSxlKSxbci5tZW1vaXplZFN0YXRlLGVdfSx1c2VSZWY6ZnVuY3Rpb24oZSl7cmV0dXJuIGFyKCkubWVtb2l6ZWRTdGF0ZT1lPXtjdXJyZW50OmV9fSx1c2VTdGF0ZTpmdW5jdGlvbihlKXt2YXIgdD0oZT1hYihlKSkucXVldWUsbj1hNS5iaW5kKG51bGwsb1ksdCk7cmV0dXJuIHQuZGlzcGF0Y2g9bixbZS5tZW1vaXplZFN0YXRlLG5dfSx1c2VEZWJ1Z1ZhbHVlOmFxLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYSQoYXIoKSxlLHQpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9YWIoITEpO3JldHVybiBlPWFZLmJpbmQobnVsbCxvWSxlLnF1ZXVlLCEwLCExKSxhcigpLm1lbW9pemVkU3RhdGU9ZSxbITEsZV19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1vWSxvPWFyKCk7aWYocmope2lmKHZvaWQgMD09PW4pdGhyb3cgRXJyb3IobCg0MDcpKTtuPW4oKX1lbHNle2lmKG49dCgpLG51bGw9PT1sTCl0aHJvdyBFcnJvcihsKDM0OSkpOzAhPSgxMjQmbFIpfHxhaChyLHQsbil9by5tZW1vaXplZFN0YXRlPW47dmFyIGE9e3ZhbHVlOm4sZ2V0U25hcHNob3Q6dH07cmV0dXJuIG8ucXVldWU9YSxhTihhZy5iaW5kKG51bGwscixhLGUpLFtlXSksci5mbGFnc3w9MjA0OCxhVCg5LHtkZXN0cm95OnZvaWQgMH0sYW0uYmluZChudWxsLHIsYSxuLHQpLG51bGwpLG59LHVzZUlkOmZ1bmN0aW9uKCl7dmFyIGU9YXIoKSx0PWxMLmlkZW50aWZpZXJQcmVmaXg7aWYocmope3ZhciBuPXJiLHI9cnY7dD1cIl9cIit0K1wiUl9cIisobj0ociZ+KDE8PDMyLWVtKHIpLTEpKS50b1N0cmluZygzMikrbiksMDwobj1vMCsrKSYmKHQrPVwiSFwiK24udG9TdHJpbmcoMzIpKSx0Kz1cIl9cIn1lbHNlIHQ9XCJfXCIrdCtcInJfXCIrKG49bzQrKykudG9TdHJpbmcoMzIpK1wiX1wiO3JldHVybiBlLm1lbW9pemVkU3RhdGU9dH0sdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6YUosdXNlRm9ybVN0YXRlOmFTLHVzZUFjdGlvblN0YXRlOmFTLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSl7dmFyIHQ9YXIoKTt0Lm1lbW9pemVkU3RhdGU9dC5iYXNlU3RhdGU9ZTt2YXIgbj17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOm51bGwsbGFzdFJlbmRlcmVkU3RhdGU6bnVsbH07cmV0dXJuIHQucXVldWU9bix0PWE2LmJpbmQobnVsbCxvWSwhMCxuKSxuLmRpc3BhdGNoPXQsW2UsdF19LHVzZU1lbW9DYWNoZTphcyx1c2VDYWNoZVJlZnJlc2g6ZnVuY3Rpb24oKXtyZXR1cm4gYXIoKS5tZW1vaXplZFN0YXRlPWEyLmJpbmQobnVsbCxvWSl9fSxpcj17cmVhZENvbnRleHQ6clksdXNlOmFsLHVzZUNhbGxiYWNrOmFILHVzZUNvbnRleHQ6clksdXNlRWZmZWN0OmFSLHVzZUltcGVyYXRpdmVIYW5kbGU6YUYsdXNlSW5zZXJ0aW9uRWZmZWN0OmFNLHVzZUxheW91dEVmZmVjdDphWix1c2VNZW1vOmFWLHVzZVJlZHVjZXI6YXUsdXNlUmVmOmF6LHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGF1KGFjKX0sdXNlRGVidWdWYWx1ZTphcSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFXKGFvKCksb0subWVtb2l6ZWRTdGF0ZSxlLHQpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9YXUoYWMpWzBdLHQ9YW8oKS5tZW1vaXplZFN0YXRlO3JldHVybltcImJvb2xlYW5cIj09dHlwZW9mIGU/ZTphaShlKSx0XX0sdXNlU3luY0V4dGVybmFsU3RvcmU6YXAsdXNlSWQ6YTAsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6YUosdXNlRm9ybVN0YXRlOmFPLHVzZUFjdGlvblN0YXRlOmFPLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYUEoYW8oKSxvSyxlLHQpfSx1c2VNZW1vQ2FjaGU6YXMsdXNlQ2FjaGVSZWZyZXNoOmExfSxpbz17cmVhZENvbnRleHQ6clksdXNlOmFsLHVzZUNhbGxiYWNrOmFILHVzZUNvbnRleHQ6clksdXNlRWZmZWN0OmFSLHVzZUltcGVyYXRpdmVIYW5kbGU6YUYsdXNlSW5zZXJ0aW9uRWZmZWN0OmFNLHVzZUxheW91dEVmZmVjdDphWix1c2VNZW1vOmFWLHVzZVJlZHVjZXI6YWYsdXNlUmVmOmF6LHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGFmKGFjKX0sdXNlRGVidWdWYWx1ZTphcSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49YW8oKTtyZXR1cm4gbnVsbD09PW9LP2EkKG4sZSx0KTphVyhuLG9LLm1lbW9pemVkU3RhdGUsZSx0KX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBlPWFmKGFjKVswXSx0PWFvKCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm5bXCJib29sZWFuXCI9PXR5cGVvZiBlP2U6YWkoZSksdF19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmFwLHVzZUlkOmEwLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmFKLHVzZUZvcm1TdGF0ZTphSSx1c2VBY3Rpb25TdGF0ZTphSSx1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGUsdCl7dmFyIG49YW8oKTtyZXR1cm4gbnVsbCE9PW9LP2FBKG4sb0ssZSx0KToobi5iYXNlU3RhdGU9ZSxbZSxuLnF1ZXVlLmRpc3BhdGNoXSl9LHVzZU1lbW9DYWNoZTphcyx1c2VDYWNoZVJlZnJlc2g6YTF9O2Z1bmN0aW9uIGlhKGUsdCxuLHIpe249bnVsbD09KG49bihyLHQ9ZS5tZW1vaXplZFN0YXRlKSk/dDpmKHt9LHQsbiksZS5tZW1vaXplZFN0YXRlPW4sMD09PWUubGFuZXMmJihlLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1uKX12YXIgaWk9e2VucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihlLHQsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1zcigpLG89b18ocik7by5wYXlsb2FkPXQsbnVsbCE9biYmKG8uY2FsbGJhY2s9biksbnVsbCE9PSh0PW9rKGUsbyxyKSkmJihzYSh0LGUsciksb0UodCxlLHIpKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihlLHQsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1zcigpLG89b18ocik7by50YWc9MSxvLnBheWxvYWQ9dCxudWxsIT1uJiYoby5jYWxsYmFjaz1uKSxudWxsIT09KHQ9b2soZSxvLHIpKSYmKHNhKHQsZSxyKSxvRSh0LGUscikpfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oZSx0KXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciBuPXNyKCkscj1vXyhuKTtyLnRhZz0yLG51bGwhPXQmJihyLmNhbGxiYWNrPXQpLG51bGwhPT0odD1vayhlLHIsbikpJiYoc2EodCxlLG4pLG9FKHQsZSxuKSl9fTtmdW5jdGlvbiBpbChlLHQsbixyLG8sYSxpKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZihlPWUuc3RhdGVOb2RlKS5zaG91bGRDb21wb25lbnRVcGRhdGU/ZS5zaG91bGRDb21wb25lbnRVcGRhdGUocixhLGkpOiF0LnByb3RvdHlwZXx8IXQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50fHwhbkUobixyKXx8IW5FKG8sYSl9ZnVuY3Rpb24gaXMoZSx0LG4scil7ZT10LnN0YXRlLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sciksXCJmdW5jdGlvblwiPT10eXBlb2YgdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuLHIpLHQuc3RhdGUhPT1lJiZpaS5lbnF1ZXVlUmVwbGFjZVN0YXRlKHQsdC5zdGF0ZSxudWxsKX1mdW5jdGlvbiBpYyhlLHQpe3ZhciBuPXQ7aWYoXCJyZWZcImluIHQpZm9yKHZhciByIGluIG49e30sdClcInJlZlwiIT09ciYmKG5bcl09dFtyXSk7aWYoZT1lLmRlZmF1bHRQcm9wcylmb3IodmFyIG8gaW4gbj09PXQmJihuPWYoe30sbikpLGUpdm9pZCAwPT09bltvXSYmKG5bb109ZVtvXSk7cmV0dXJuIG59ZnVuY3Rpb24gaXUoZSl7blEoZSl9ZnVuY3Rpb24gaWQoZSl7Y29uc29sZS5lcnJvcihlKX1mdW5jdGlvbiBpcChlKXtuUShlKX1mdW5jdGlvbiBpaChlLHQpe3RyeXsoMCxlLm9uVW5jYXVnaHRFcnJvcikodC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6dC5zdGFja30pfWNhdGNoKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9fWZ1bmN0aW9uIGltKGUsdCxuKXt0cnl7KDAsZS5vbkNhdWdodEVycm9yKShuLnZhbHVlLHtjb21wb25lbnRTdGFjazpuLnN0YWNrLGVycm9yQm91bmRhcnk6MT09PXQudGFnP3Quc3RhdGVOb2RlOm51bGx9KX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfX1mdW5jdGlvbiBpZyhlLHQsbil7cmV0dXJuKG49b18obikpLnRhZz0zLG4ucGF5bG9hZD17ZWxlbWVudDpudWxsfSxuLmNhbGxiYWNrPWZ1bmN0aW9uKCl7aWgoZSx0KX0sbn1mdW5jdGlvbiBpeShlKXtyZXR1cm4oZT1vXyhlKSkudGFnPTMsZX1mdW5jdGlvbiBpdihlLHQsbixyKXt2YXIgbz1uLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8pe3ZhciBhPXIudmFsdWU7ZS5wYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIG8oYSl9LGUuY2FsbGJhY2s9ZnVuY3Rpb24oKXtpbSh0LG4scil9fXZhciBpPW4uc3RhdGVOb2RlO251bGwhPT1pJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBpLmNvbXBvbmVudERpZENhdGNoJiYoZS5jYWxsYmFjaz1mdW5jdGlvbigpe2ltKHQsbixyKSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBvJiYobnVsbD09PWw0P2w0PW5ldyBTZXQoW3RoaXNdKTpsNC5hZGQodGhpcykpO3ZhciBlPXIuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChyLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09ZT9lOlwiXCJ9KX0pfXZhciBpYj1FcnJvcihsKDQ2MSkpLGlBPSExO2Z1bmN0aW9uIGl4KGUsdCxuLHIpe3QuY2hpbGQ9bnVsbD09PWU/b0EodCxudWxsLG4scik6b2IodCxlLmNoaWxkLG4scil9ZnVuY3Rpb24gaXcoZSx0LG4scixvKXtuPW4ucmVuZGVyO3ZhciBhPXQucmVmO2lmKFwicmVmXCJpbiByKXt2YXIgaT17fTtmb3IodmFyIGwgaW4gcilcInJlZlwiIT09bCYmKGlbbF09cltsXSl9ZWxzZSBpPXI7cmV0dXJuKHJXKHQpLHI9bzYoZSx0LG4saSxhLG8pLGw9YWUoKSxudWxsPT09ZXx8aUEpPyhyaiYmbCYmcncodCksdC5mbGFnc3w9MSxpeChlLHQscixvKSx0LmNoaWxkKTooYXQoZSx0LG8pLGlWKGUsdCxvKSl9ZnVuY3Rpb24gaUMoZSx0LG4scixvKXtpZihudWxsPT09ZSl7dmFyIGE9bi50eXBlO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIGF8fHJ0KGEpfHx2b2lkIDAhPT1hLmRlZmF1bHRQcm9wc3x8bnVsbCE9PW4uY29tcGFyZT8oKGU9cm8obi50eXBlLG51bGwscix0LHQubW9kZSxvKSkucmVmPXQucmVmLGUucmV0dXJuPXQsdC5jaGlsZD1lKToodC50YWc9MTUsdC50eXBlPWEsaV8oZSx0LGEscixvKSl9aWYoYT1lLmNoaWxkLCFpJChlLG8pKXt2YXIgaT1hLm1lbW9pemVkUHJvcHM7aWYoKG49bnVsbCE9PShuPW4uY29tcGFyZSk/bjpuRSkoaSxyKSYmZS5yZWY9PT10LnJlZilyZXR1cm4gaVYoZSx0LG8pfXJldHVybiB0LmZsYWdzfD0xLChlPXJuKGEscikpLnJlZj10LnJlZixlLnJldHVybj10LHQuY2hpbGQ9ZX1mdW5jdGlvbiBpXyhlLHQsbixyLG8pe2lmKG51bGwhPT1lKXt2YXIgYT1lLm1lbW9pemVkUHJvcHM7aWYobkUoYSxyKSYmZS5yZWY9PT10LnJlZilpZihpQT0hMSx0LnBlbmRpbmdQcm9wcz1yPWEsIWkkKGUsbykpcmV0dXJuIHQubGFuZXM9ZS5sYW5lcyxpVihlLHQsbyk7ZWxzZSAwIT0oMTMxMDcyJmUuZmxhZ3MpJiYoaUE9ITApfXJldHVybiBpUChlLHQsbixyLG8pfWZ1bmN0aW9uIGlrKGUsdCxuLHIpe3ZhciBvPXIuY2hpbGRyZW4sYT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbDtpZihudWxsPT09ZSYmbnVsbD09PXQuc3RhdGVOb2RlJiYodC5zdGF0ZU5vZGU9e192aXNpYmlsaXR5OjEsX3BlbmRpbmdNYXJrZXJzOm51bGwsX3JldHJ5Q2FjaGU6bnVsbCxfdHJhbnNpdGlvbnM6bnVsbH0pLFwiaGlkZGVuXCI9PT1yLm1vZGUpe2lmKDAhPSgxMjgmdC5mbGFncykpe2lmKHI9bnVsbCE9PWE/YS5iYXNlTGFuZXN8bjpuLG51bGwhPT1lKXtmb3IoYT0wLG89dC5jaGlsZD1lLmNoaWxkO251bGwhPT1vOylhPWF8by5sYW5lc3xvLmNoaWxkTGFuZXMsbz1vLnNpYmxpbmc7dC5jaGlsZExhbmVzPWEmfnJ9ZWxzZSB0LmNoaWxkTGFuZXM9MCx0LmNoaWxkPW51bGw7cmV0dXJuIGlqKGUsdCxyLG4pfWlmKDA9PSgweDIwMDAwMDAwJm4pKXJldHVybiB0LmxhbmVzPXQuY2hpbGRMYW5lcz0weDIwMDAwMDAwLGlqKGUsdCxudWxsIT09YT9hLmJhc2VMYW5lc3xuOm4sbik7dC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbH0sbnVsbCE9PWUmJm90KHQsbnVsbCE9PWE/YS5jYWNoZVBvb2w6bnVsbCksbnVsbCE9PWE/b0QodCxhKTpvTCgpLG9GKHQpfWVsc2UgbnVsbCE9PWE/KG90KHQsYS5jYWNoZVBvb2wpLG9EKHQsYSksb3EodCksdC5tZW1vaXplZFN0YXRlPW51bGwpOihudWxsIT09ZSYmb3QodCxudWxsKSxvTCgpLG9xKHQpKTtyZXR1cm4gaXgoZSx0LG8sbiksdC5jaGlsZH1mdW5jdGlvbiBpRShlLHQpe3JldHVybiBudWxsIT09ZSYmMjI9PT1lLnRhZ3x8bnVsbCE9PXQuc3RhdGVOb2RlfHwodC5zdGF0ZU5vZGU9e192aXNpYmlsaXR5OjEsX3BlbmRpbmdNYXJrZXJzOm51bGwsX3JldHJ5Q2FjaGU6bnVsbCxfdHJhbnNpdGlvbnM6bnVsbH0pLHQuc2libGluZ31mdW5jdGlvbiBpaihlLHQsbixyKXt2YXIgbz1vZSgpO3JldHVybiB0Lm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczpuLGNhY2hlUG9vbDpvPW51bGw9PT1vP251bGw6e3BhcmVudDpyMC5fY3VycmVudFZhbHVlLHBvb2w6b319LG51bGwhPT1lJiZvdCh0LG51bGwpLG9MKCksb0YodCksbnVsbCE9PWUmJnJWKGUsdCxyLCEwKSxudWxsfWZ1bmN0aW9uIGlTKGUsdCl7cmV0dXJuKHQ9aVooe21vZGU6dC5tb2RlLGNoaWxkcmVuOnQuY2hpbGRyZW59LGUubW9kZSkpLnJlZj1lLnJlZixlLmNoaWxkPXQsdC5yZXR1cm49ZSx0fWZ1bmN0aW9uIGlPKGUsdCxuKXtyZXR1cm4gb2IodCxlLmNoaWxkLG51bGwsbiksZT1pUyh0LHQucGVuZGluZ1Byb3BzKSxlLmZsYWdzfD0yLG9IKHQpLHQubWVtb2l6ZWRTdGF0ZT1udWxsLGV9ZnVuY3Rpb24gaUIoZSx0KXt2YXIgbj10LnJlZjtpZihudWxsPT09biludWxsIT09ZSYmbnVsbCE9PWUucmVmJiYodC5mbGFnc3w9NDE5NDgxNik7ZWxzZXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuJiZcIm9iamVjdFwiIT10eXBlb2Ygbil0aHJvdyBFcnJvcihsKDI4NCkpOyhudWxsPT09ZXx8ZS5yZWYhPT1uKSYmKHQuZmxhZ3N8PTQxOTQ4MTYpfX1mdW5jdGlvbiBpUChlLHQsbixyLG8pe3JldHVybihyVyh0KSxuPW82KGUsdCxuLHIsdm9pZCAwLG8pLHI9YWUoKSxudWxsPT09ZXx8aUEpPyhyaiYmciYmcncodCksdC5mbGFnc3w9MSxpeChlLHQsbixvKSx0LmNoaWxkKTooYXQoZSx0LG8pLGlWKGUsdCxvKSl9ZnVuY3Rpb24gaUkoZSx0LG4scixvLGEpe3JldHVybihyVyh0KSx0LnVwZGF0ZVF1ZXVlPW51bGwsbj1vOCh0LHIsbixvKSxvOShlKSxyPWFlKCksbnVsbD09PWV8fGlBKT8ocmomJnImJnJ3KHQpLHQuZmxhZ3N8PTEsaXgoZSx0LG4sYSksdC5jaGlsZCk6KGF0KGUsdCxhKSxpVihlLHQsYSkpfWZ1bmN0aW9uIGlUKGUsdCxuLHIsbyl7aWYoclcodCksbnVsbD09PXQuc3RhdGVOb2RlKXt2YXIgYT1uOCxpPW4uY29udGV4dFR5cGU7XCJvYmplY3RcIj09dHlwZW9mIGkmJm51bGwhPT1pJiYoYT1yWShpKSksdC5tZW1vaXplZFN0YXRlPW51bGwhPT0oYT1uZXcgbihyLGEpKS5zdGF0ZSYmdm9pZCAwIT09YS5zdGF0ZT9hLnN0YXRlOm51bGwsYS51cGRhdGVyPWlpLHQuc3RhdGVOb2RlPWEsYS5fcmVhY3RJbnRlcm5hbHM9dCwoYT10LnN0YXRlTm9kZSkucHJvcHM9cixhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSxhLnJlZnM9e30sb3codCksaT1uLmNvbnRleHRUeXBlLGEuY29udGV4dD1cIm9iamVjdFwiPT10eXBlb2YgaSYmbnVsbCE9PWk/clkoaSk6bjgsYS5zdGF0ZT10Lm1lbW9pemVkU3RhdGUsXCJmdW5jdGlvblwiPT10eXBlb2YoaT1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcykmJihpYSh0LG4saSxyKSxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksXCJmdW5jdGlvblwiPT10eXBlb2Ygbi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnR8fChpPWEuc3RhdGUsXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnQmJmEuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxpIT09YS5zdGF0ZSYmaWkuZW5xdWV1ZVJlcGxhY2VTdGF0ZShhLGEuc3RhdGUsbnVsbCksb0IodCxyLGEsbyksb08oKSxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpLHI9ITB9ZWxzZSBpZihudWxsPT09ZSl7YT10LnN0YXRlTm9kZTt2YXIgbD10Lm1lbW9pemVkUHJvcHMscz1pYyhuLGwpO2EucHJvcHM9czt2YXIgYz1hLmNvbnRleHQsdT1uLmNvbnRleHRUeXBlO2k9bjgsXCJvYmplY3RcIj09dHlwZW9mIHUmJm51bGwhPT11JiYoaT1yWSh1KSk7dmFyIGQ9bi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7dT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBkfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlLGw9dC5wZW5kaW5nUHJvcHMhPT1sLHV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGx8fGMhPT1pKSYmaXModCxhLHIsaSksb3g9ITE7dmFyIGY9dC5tZW1vaXplZFN0YXRlO2Euc3RhdGU9ZixvQih0LHIsYSxvKSxvTygpLGM9dC5tZW1vaXplZFN0YXRlLGx8fGYhPT1jfHxveD8oXCJmdW5jdGlvblwiPT10eXBlb2YgZCYmKGlhKHQsbixkLHIpLGM9dC5tZW1vaXplZFN0YXRlKSwocz1veHx8aWwodCxuLHMscixmLGMsaSkpPyh1fHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50fHwoXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnQmJmEuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpKTooXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpLHQubWVtb2l6ZWRQcm9wcz1yLHQubWVtb2l6ZWRTdGF0ZT1jKSxhLnByb3BzPXIsYS5zdGF0ZT1jLGEuY29udGV4dD1pLHI9cyk6KFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00MTk0MzA4KSxyPSExKX1lbHNle2E9dC5zdGF0ZU5vZGUsb0MoZSx0KSx1PWljKG4saT10Lm1lbW9pemVkUHJvcHMpLGEucHJvcHM9dSxkPXQucGVuZGluZ1Byb3BzLGY9YS5jb250ZXh0LGM9bi5jb250ZXh0VHlwZSxzPW44LFwib2JqZWN0XCI9PXR5cGVvZiBjJiZudWxsIT09YyYmKHM9clkoYykpLChjPVwiZnVuY3Rpb25cIj09dHlwZW9mKGw9bi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKXx8XCJmdW5jdGlvblwiIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwoaSE9PWR8fGYhPT1zKSYmaXModCxhLHIscyksb3g9ITEsZj10Lm1lbW9pemVkU3RhdGUsYS5zdGF0ZT1mLG9CKHQscixhLG8pLG9PKCk7dmFyIHA9dC5tZW1vaXplZFN0YXRlO2khPT1kfHxmIT09cHx8b3h8fG51bGwhPT1lJiZudWxsIT09ZS5kZXBlbmRlbmNpZXMmJnIkKGUuZGVwZW5kZW5jaWVzKT8oXCJmdW5jdGlvblwiPT10eXBlb2YgbCYmKGlhKHQsbixsLHIpLHA9dC5tZW1vaXplZFN0YXRlKSwodT1veHx8aWwodCxuLHUscixmLHAscyl8fG51bGwhPT1lJiZudWxsIT09ZS5kZXBlbmRlbmNpZXMmJnIkKGUuZGVwZW5kZW5jaWVzKSk/KGN8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFVwZGF0ZXx8KFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuY29tcG9uZW50V2lsbFVwZGF0ZSYmYS5jb21wb25lbnRXaWxsVXBkYXRlKHIscCxzKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKHIscCxzKSksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRVcGRhdGUmJih0LmZsYWdzfD00KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYodC5mbGFnc3w9MTAyNCkpOihcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZXx8aT09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGk9PT1lLm1lbW9pemVkUHJvcHMmJmY9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD0xMDI0KSx0Lm1lbW9pemVkUHJvcHM9cix0Lm1lbW9pemVkU3RhdGU9cCksYS5wcm9wcz1yLGEuc3RhdGU9cCxhLmNvbnRleHQ9cyxyPXUpOihcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZXx8aT09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGk9PT1lLm1lbW9pemVkUHJvcHMmJmY9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD0xMDI0KSxyPSExKX1yZXR1cm4gYT1yLGlCKGUsdCkscj0wIT0oMTI4JnQuZmxhZ3MpLGF8fHI/KGE9dC5zdGF0ZU5vZGUsbj1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOmEucmVuZGVyKCksdC5mbGFnc3w9MSxudWxsIT09ZSYmcj8odC5jaGlsZD1vYih0LGUuY2hpbGQsbnVsbCxvKSx0LmNoaWxkPW9iKHQsbnVsbCxuLG8pKTppeChlLHQsbixvKSx0Lm1lbW9pemVkU3RhdGU9YS5zdGF0ZSxlPXQuY2hpbGQpOmU9aVYoZSx0LG8pLGV9ZnVuY3Rpb24gaXooZSx0LG4scil7cmV0dXJuIHJEKCksdC5mbGFnc3w9MjU2LGl4KGUsdCxuLHIpLHQuY2hpbGR9dmFyIGlEPXtkZWh5ZHJhdGVkOm51bGwsdHJlZUNvbnRleHQ6bnVsbCxyZXRyeUxhbmU6MCxoeWRyYXRpb25FcnJvcnM6bnVsbH07ZnVuY3Rpb24gaUwoZSl7cmV0dXJue2Jhc2VMYW5lczplLGNhY2hlUG9vbDpvbigpfX1mdW5jdGlvbiBpTihlLHQsbil7cmV0dXJuIGU9bnVsbCE9PWU/ZS5jaGlsZExhbmVzJn5uOjAsdCYmKGV8PWxLKSxlfWZ1bmN0aW9uIGlSKGUsdCxuKXt2YXIgcixvPXQucGVuZGluZ1Byb3BzLGE9ITEsaT0wIT0oMTI4JnQuZmxhZ3MpO2lmKChyPWkpfHwocj0obnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpJiYwIT0oMiZvVi5jdXJyZW50KSksciYmKGE9ITAsdC5mbGFncyY9LTEyOSkscj0wIT0oMzImdC5mbGFncyksdC5mbGFncyY9LTMzLG51bGw9PT1lKXtpZihyail7aWYoYT9vWih0KTpvcSh0KSwoZT1yRSk/bnVsbCE9PShlPW51bGwhPT0oZT1jaihlLHJPKSkmJlwiJlwiIT09ZS5kYXRhP2U6bnVsbCkmJih0Lm1lbW9pemVkU3RhdGU9e2RlaHlkcmF0ZWQ6ZSx0cmVlQ29udGV4dDpudWxsIT09cnk/e2lkOnJ2LG92ZXJmbG93OnJifTpudWxsLHJldHJ5TGFuZToweDIwMDAwMDAwLGh5ZHJhdGlvbkVycm9yczpudWxsfSwobj1ybChlKSkucmV0dXJuPXQsdC5jaGlsZD1uLHJrPXQsckU9bnVsbCk6ZT1udWxsLG51bGw9PT1lKXRocm93IHJQKHQpO3JldHVybiBjTyhlKT90LmxhbmVzPTMyOnQubGFuZXM9MHgyMDAwMDAwMCxudWxsfXZhciBzPW8uY2hpbGRyZW47cmV0dXJuKG89by5mYWxsYmFjayxhKT8ob3EodCkscz1pWih7bW9kZTpcImhpZGRlblwiLGNoaWxkcmVuOnN9LGE9dC5tb2RlKSxvPXJhKG8sYSxuLG51bGwpLHMucmV0dXJuPXQsby5yZXR1cm49dCxzLnNpYmxpbmc9byx0LmNoaWxkPXMsKG89dC5jaGlsZCkubWVtb2l6ZWRTdGF0ZT1pTChuKSxvLmNoaWxkTGFuZXM9aU4oZSxyLG4pLHQubWVtb2l6ZWRTdGF0ZT1pRCxpRShudWxsLG8pKToob1oodCksaU0odCxzKSl9dmFyIGM9ZS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1jJiZudWxsIT09KHM9Yy5kZWh5ZHJhdGVkKSl7aWYoaSkyNTYmdC5mbGFncz8ob1oodCksdC5mbGFncyY9LTI1Nyx0PWlVKGUsdCxuKSk6bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZT8ob3EodCksdC5jaGlsZD1lLmNoaWxkLHQuZmxhZ3N8PTEyOCx0PW51bGwpOihvcSh0KSxzPW8uZmFsbGJhY2ssYT10Lm1vZGUsbz1pWih7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjpvLmNoaWxkcmVufSxhKSxzPXJhKHMsYSxuLG51bGwpLHMuZmxhZ3N8PTIsby5yZXR1cm49dCxzLnJldHVybj10LG8uc2libGluZz1zLHQuY2hpbGQ9byxvYih0LGUuY2hpbGQsbnVsbCxuKSwobz10LmNoaWxkKS5tZW1vaXplZFN0YXRlPWlMKG4pLG8uY2hpbGRMYW5lcz1pTihlLHIsbiksdC5tZW1vaXplZFN0YXRlPWlELHQ9aUUobnVsbCxvKSk7ZWxzZSBpZihvWih0KSxjTyhzKSl7aWYocj1zLm5leHRTaWJsaW5nJiZzLm5leHRTaWJsaW5nLmRhdGFzZXQpdmFyIHU9ci5kZ3N0O3I9dSwobz1FcnJvcihsKDQxOSkpKS5zdGFjaz1cIlwiLG8uZGlnZXN0PXIsck4oe3ZhbHVlOm8sc291cmNlOm51bGwsc3RhY2s6bnVsbH0pLHQ9aVUoZSx0LG4pfWVsc2UgaWYoaUF8fHJWKGUsdCxuLCExKSxyPTAhPShuJmUuY2hpbGRMYW5lcyksaUF8fHIpe2lmKG51bGwhPT0ocj1sTCkmJjAhPT0obz1lTyhyLG4pKSYmbyE9PWMucmV0cnlMYW5lKXRocm93IGMucmV0cnlMYW5lPW8sbjMoZSxvKSxzYShyLGUsbyksaWI7Y1Mocyl8fHNnKCksdD1pVShlLHQsbil9ZWxzZSBjUyhzKT8odC5mbGFnc3w9MTkyLHQuY2hpbGQ9ZS5jaGlsZCx0PW51bGwpOihlPWMudHJlZUNvbnRleHQsckU9Y0Iocy5uZXh0U2libGluZykscms9dCxyaj0hMCxyUz1udWxsLHJPPSExLG51bGwhPT1lJiZyXyh0LGUpLHQ9aU0odCxvLmNoaWxkcmVuKSx0LmZsYWdzfD00MDk2KTtyZXR1cm4gdH1yZXR1cm4gYT8ob3EodCkscz1vLmZhbGxiYWNrLGE9dC5tb2RlLHU9KGM9ZS5jaGlsZCkuc2libGluZywobz1ybihjLHttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46by5jaGlsZHJlbn0pKS5zdWJ0cmVlRmxhZ3M9MHgzZTAwMDAwJmMuc3VidHJlZUZsYWdzLG51bGwhPT11P3M9cm4odSxzKToocz1yYShzLGEsbixudWxsKSxzLmZsYWdzfD0yKSxzLnJldHVybj10LG8ucmV0dXJuPXQsby5zaWJsaW5nPXMsdC5jaGlsZD1vLGlFKG51bGwsbyksbz10LmNoaWxkLG51bGw9PT0ocz1lLmNoaWxkLm1lbW9pemVkU3RhdGUpP3M9aUwobik6KG51bGwhPT0oYT1zLmNhY2hlUG9vbCk/KGM9cjAuX2N1cnJlbnRWYWx1ZSxhPWEucGFyZW50IT09Yz97cGFyZW50OmMscG9vbDpjfTphKTphPW9uKCkscz17YmFzZUxhbmVzOnMuYmFzZUxhbmVzfG4sY2FjaGVQb29sOmF9KSxvLm1lbW9pemVkU3RhdGU9cyxvLmNoaWxkTGFuZXM9aU4oZSxyLG4pLHQubWVtb2l6ZWRTdGF0ZT1pRCxpRShlLmNoaWxkLG8pKToob1oodCksZT0obj1lLmNoaWxkKS5zaWJsaW5nLChuPXJuKG4se21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46by5jaGlsZHJlbn0pKS5yZXR1cm49dCxuLnNpYmxpbmc9bnVsbCxudWxsIT09ZSYmKG51bGw9PT0ocj10LmRlbGV0aW9ucyk/KHQuZGVsZXRpb25zPVtlXSx0LmZsYWdzfD0xNik6ci5wdXNoKGUpKSx0LmNoaWxkPW4sdC5tZW1vaXplZFN0YXRlPW51bGwsbil9ZnVuY3Rpb24gaU0oZSx0KXtyZXR1cm4odD1pWih7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjp0fSxlLm1vZGUpKS5yZXR1cm49ZSxlLmNoaWxkPXR9ZnVuY3Rpb24gaVooZSx0KXtyZXR1cm4oZT1yZSgyMixlLG51bGwsdCkpLmxhbmVzPTAsZX1mdW5jdGlvbiBpVShlLHQsbil7cmV0dXJuIG9iKHQsZS5jaGlsZCxudWxsLG4pLGU9aU0odCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbiksZS5mbGFnc3w9Mix0Lm1lbW9pemVkU3RhdGU9bnVsbCxlfWZ1bmN0aW9uIGlGKGUsdCxuKXtlLmxhbmVzfD10O3ZhciByPWUuYWx0ZXJuYXRlO251bGwhPT1yJiYoci5sYW5lc3w9dCkscnEoZS5yZXR1cm4sdCxuKX1mdW5jdGlvbiBpcShlLHQsbixyLG8sYSl7dmFyIGk9ZS5tZW1vaXplZFN0YXRlO251bGw9PT1pP2UubWVtb2l6ZWRTdGF0ZT17aXNCYWNrd2FyZHM6dCxyZW5kZXJpbmc6bnVsbCxyZW5kZXJpbmdTdGFydFRpbWU6MCxsYXN0OnIsdGFpbDpuLHRhaWxNb2RlOm8sdHJlZUZvcmtDb3VudDphfTooaS5pc0JhY2t3YXJkcz10LGkucmVuZGVyaW5nPW51bGwsaS5yZW5kZXJpbmdTdGFydFRpbWU9MCxpLmxhc3Q9cixpLnRhaWw9bixpLnRhaWxNb2RlPW8saS50cmVlRm9ya0NvdW50PWEpfWZ1bmN0aW9uIGlIKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcyxvPXIucmV2ZWFsT3JkZXIsYT1yLnRhaWw7cj1yLmNoaWxkcmVuO3ZhciBpPW9WLmN1cnJlbnQsbD0wIT0oMiZpKTtpZihsPyhpPTEmaXwyLHQuZmxhZ3N8PTEyOCk6aSY9MSxNKG9WLGkpLGl4KGUsdCxyLG4pLHI9cmo/cmg6MCwhbCYmbnVsbCE9PWUmJjAhPSgxMjgmZS5mbGFncykpZTpmb3IoZT10LmNoaWxkO251bGwhPT1lOyl7aWYoMTM9PT1lLnRhZyludWxsIT09ZS5tZW1vaXplZFN0YXRlJiZpRihlLG4sdCk7ZWxzZSBpZigxOT09PWUudGFnKWlGKGUsbix0KTtlbHNlIGlmKG51bGwhPT1lLmNoaWxkKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX1pZihlPT09dClicmVhaztmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGUucmV0dXJuPT09dClicmVhayBlO2U9ZS5yZXR1cm59ZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZ31zd2l0Y2gobyl7Y2FzZVwiZm9yd2FyZHNcIjpmb3Iobz1udWxsLG49dC5jaGlsZDtudWxsIT09bjspbnVsbCE9PShlPW4uYWx0ZXJuYXRlKSYmbnVsbD09PW8kKGUpJiYobz1uKSxuPW4uc2libGluZztudWxsPT09KG49byk/KG89dC5jaGlsZCx0LmNoaWxkPW51bGwpOihvPW4uc2libGluZyxuLnNpYmxpbmc9bnVsbCksaXEodCwhMSxvLG4sYSxyKTticmVhaztjYXNlXCJiYWNrd2FyZHNcIjpjYXNlXCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCI6Zm9yKG49bnVsbCxvPXQuY2hpbGQsdC5jaGlsZD1udWxsO251bGwhPT1vOyl7aWYobnVsbCE9PShlPW8uYWx0ZXJuYXRlKSYmbnVsbD09PW8kKGUpKXt0LmNoaWxkPW87YnJlYWt9ZT1vLnNpYmxpbmcsby5zaWJsaW5nPW4sbj1vLG89ZX1pcSh0LCEwLG4sbnVsbCxhLHIpO2JyZWFrO2Nhc2VcInRvZ2V0aGVyXCI6aXEodCwhMSxudWxsLG51bGwsdm9pZCAwLHIpO2JyZWFrO2RlZmF1bHQ6dC5tZW1vaXplZFN0YXRlPW51bGx9cmV0dXJuIHQuY2hpbGR9ZnVuY3Rpb24gaVYoZSx0LG4pe2lmKG51bGwhPT1lJiYodC5kZXBlbmRlbmNpZXM9ZS5kZXBlbmRlbmNpZXMpLGwkfD10LmxhbmVzLDA9PShuJnQuY2hpbGRMYW5lcykpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO2Vsc2UgaWYoclYoZSx0LG4sITEpLDA9PShuJnQuY2hpbGRMYW5lcykpcmV0dXJuIG51bGx9aWYobnVsbCE9PWUmJnQuY2hpbGQhPT1lLmNoaWxkKXRocm93IEVycm9yKGwoMTUzKSk7aWYobnVsbCE9PXQuY2hpbGQpe2ZvcihuPXJuKGU9dC5jaGlsZCxlLnBlbmRpbmdQcm9wcyksdC5jaGlsZD1uLG4ucmV0dXJuPXQ7bnVsbCE9PWUuc2libGluZzspZT1lLnNpYmxpbmcsKG49bi5zaWJsaW5nPXJuKGUsZS5wZW5kaW5nUHJvcHMpKS5yZXR1cm49dDtuLnNpYmxpbmc9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiBpJChlLHQpe3JldHVybiAwIT0oZS5sYW5lcyZ0KXx8ISEobnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmciQoZSkpfWZ1bmN0aW9uIGlXKGUsdCxuKXtpZihudWxsIT09ZSlpZihlLm1lbW9pemVkUHJvcHMhPT10LnBlbmRpbmdQcm9wcylpQT0hMDtlbHNle2lmKCFpJChlLG4pJiYwPT0oMTI4JnQuZmxhZ3MpKXJldHVybiBpQT0hMSxmdW5jdGlvbihlLHQsbil7c3dpdGNoKHQudGFnKXtjYXNlIDM6SCh0LHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHJVKHQscjAsZS5tZW1vaXplZFN0YXRlLmNhY2hlKSxyRCgpO2JyZWFrO2Nhc2UgMjc6Y2FzZSA1OiQodCk7YnJlYWs7Y2FzZSA0OkgodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnJVKHQsdC50eXBlLHQubWVtb2l6ZWRQcm9wcy52YWx1ZSk7YnJlYWs7Y2FzZSAzMTppZihudWxsIT09dC5tZW1vaXplZFN0YXRlKXJldHVybiB0LmZsYWdzfD0xMjgsb1UodCksbnVsbDticmVhaztjYXNlIDEzOnZhciByPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09cil7aWYobnVsbCE9PXIuZGVoeWRyYXRlZClyZXR1cm4gb1oodCksdC5mbGFnc3w9MTI4LG51bGw7aWYoMCE9KG4mdC5jaGlsZC5jaGlsZExhbmVzKSlyZXR1cm4gaVIoZSx0LG4pO3JldHVybiBvWih0KSxudWxsIT09KGU9aVYoZSx0LG4pKT9lLnNpYmxpbmc6bnVsbH1vWih0KTticmVhaztjYXNlIDE5OnZhciBvPTAhPSgxMjgmZS5mbGFncyk7aWYoKHI9MCE9KG4mdC5jaGlsZExhbmVzKSl8fChyVihlLHQsbiwhMSkscj0wIT0obiZ0LmNoaWxkTGFuZXMpKSxvKXtpZihyKXJldHVybiBpSChlLHQsbik7dC5mbGFnc3w9MTI4fWlmKG51bGwhPT0obz10Lm1lbW9pemVkU3RhdGUpJiYoby5yZW5kZXJpbmc9bnVsbCxvLnRhaWw9bnVsbCxvLmxhc3RFZmZlY3Q9bnVsbCksTShvVixvVi5jdXJyZW50KSwhcilyZXR1cm4gbnVsbDticmVhaztjYXNlIDIyOnJldHVybiB0LmxhbmVzPTAsaWsoZSx0LG4sdC5wZW5kaW5nUHJvcHMpO2Nhc2UgMjQ6clUodCxyMCxlLm1lbW9pemVkU3RhdGUuY2FjaGUpfXJldHVybiBpVihlLHQsbil9KGUsdCxuKTtpQT0wIT0oMTMxMDcyJmUuZmxhZ3MpfWVsc2UgaUE9ITEscmomJjAhPSgxMDQ4NTc2JnQuZmxhZ3MpJiZyeCh0LHJoLHQuaW5kZXgpO3N3aXRjaCh0LmxhbmVzPTAsdC50YWcpe2Nhc2UgMTY6ZTp7dmFyIHI9dC5wZW5kaW5nUHJvcHM7aWYoZT1vYyh0LmVsZW1lbnRUeXBlKSx0LnR5cGU9ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKXJ0KGUpPyhyPWljKGUsciksdC50YWc9MSx0PWlUKG51bGwsdCxlLHIsbikpOih0LnRhZz0wLHQ9aVAobnVsbCx0LGUscixuKSk7ZWxzZXtpZihudWxsIT1lKXt2YXIgbz1lLiQkdHlwZW9mO2lmKG89PT14KXt0LnRhZz0xMSx0PWl3KG51bGwsdCxlLHIsbik7YnJlYWsgZX1pZihvPT09Xyl7dC50YWc9MTQsdD1pQyhudWxsLHQsZSxyLG4pO2JyZWFrIGV9fXRocm93IEVycm9yKGwoMzA2LHQ9ZnVuY3Rpb24gZSh0KXtpZihudWxsPT10KXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQpcmV0dXJuIHQuJCR0eXBlb2Y9PT1CP251bGw6dC5kaXNwbGF5TmFtZXx8dC5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXJldHVybiB0O3N3aXRjaCh0KXtjYXNlIGc6cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2UgdjpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSB5OnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgdzpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBDOnJldHVyblwiU3VzcGVuc2VMaXN0XCI7Y2FzZSBFOnJldHVyblwiQWN0aXZpdHlcIn1pZihcIm9iamVjdFwiPT10eXBlb2YgdClzd2l0Y2godC4kJHR5cGVvZil7Y2FzZSBtOnJldHVyblwiUG9ydGFsXCI7Y2FzZSBBOnJldHVybiB0LmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIjtjYXNlIGI6cmV0dXJuKHQuX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2UgeDp2YXIgbj10LnJlbmRlcjtyZXR1cm4odD10LmRpc3BsYXlOYW1lKXx8KHQ9XCJcIiE9PSh0PW4uZGlzcGxheU5hbWV8fG4ubmFtZXx8XCJcIik/XCJGb3J3YXJkUmVmKFwiK3QrXCIpXCI6XCJGb3J3YXJkUmVmXCIpLHQ7Y2FzZSBfOnJldHVybiBudWxsIT09KG49dC5kaXNwbGF5TmFtZXx8bnVsbCk/bjplKHQudHlwZSl8fFwiTWVtb1wiO2Nhc2UgazpuPXQuX3BheWxvYWQsdD10Ll9pbml0O3RyeXtyZXR1cm4gZSh0KG4pKX1jYXRjaChlKXt9fXJldHVybiBudWxsfShlKXx8ZSxcIlwiKSl9fXJldHVybiB0O2Nhc2UgMDpyZXR1cm4gaVAoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxuKTtjYXNlIDE6cmV0dXJuIG89aWMocj10LnR5cGUsdC5wZW5kaW5nUHJvcHMpLGlUKGUsdCxyLG8sbik7Y2FzZSAzOmU6e2lmKEgodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxudWxsPT09ZSl0aHJvdyBFcnJvcihsKDM4NykpO3I9dC5wZW5kaW5nUHJvcHM7dmFyIGE9dC5tZW1vaXplZFN0YXRlO289YS5lbGVtZW50LG9DKGUsdCksb0IodCxyLG51bGwsbik7dmFyIGk9dC5tZW1vaXplZFN0YXRlO2lmKHJVKHQscjAscj1pLmNhY2hlKSxyIT09YS5jYWNoZSYmckgodCxbcjBdLG4sITApLG9PKCkscj1pLmVsZW1lbnQsYS5pc0RlaHlkcmF0ZWQpaWYoYT17ZWxlbWVudDpyLGlzRGVoeWRyYXRlZDohMSxjYWNoZTppLmNhY2hlfSx0LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1hLHQubWVtb2l6ZWRTdGF0ZT1hLDI1NiZ0LmZsYWdzKXt0PWl6KGUsdCxyLG4pO2JyZWFrIGV9ZWxzZSBpZihyIT09byl7ck4obz1ydShFcnJvcihsKDQyNCkpLHQpKSx0PWl6KGUsdCxyLG4pO2JyZWFrIGV9ZWxzZSBmb3IockU9Y0IoKGU9OT09PShlPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLm5vZGVUeXBlP2UuYm9keTpcIkhUTUxcIj09PWUubm9kZU5hbWU/ZS5vd25lckRvY3VtZW50LmJvZHk6ZSkuZmlyc3RDaGlsZCkscms9dCxyaj0hMCxyUz1udWxsLHJPPSEwLG49b0EodCxudWxsLHIsbiksdC5jaGlsZD1uO247KW4uZmxhZ3M9LTMmbi5mbGFnc3w0MDk2LG49bi5zaWJsaW5nO2Vsc2V7aWYockQoKSxyPT09byl7dD1pVihlLHQsbik7YnJlYWsgZX1peChlLHQscixuKX10PXQuY2hpbGR9cmV0dXJuIHQ7Y2FzZSAyNjpyZXR1cm4gaUIoZSx0KSxudWxsPT09ZT8obj1jRih0LnR5cGUsbnVsbCx0LnBlbmRpbmdQcm9wcyxudWxsKSk/dC5tZW1vaXplZFN0YXRlPW46cmp8fChuPXQudHlwZSxlPXQucGVuZGluZ1Byb3BzLChyPWNwKEYuY3VycmVudCkuY3JlYXRlRWxlbWVudChuKSlbZURdPXQscltlTF09ZSxjdShyLG4sZSksZVkociksdC5zdGF0ZU5vZGU9cik6dC5tZW1vaXplZFN0YXRlPWNGKHQudHlwZSxlLm1lbW9pemVkUHJvcHMsdC5wZW5kaW5nUHJvcHMsZS5tZW1vaXplZFN0YXRlKSxudWxsO2Nhc2UgMjc6cmV0dXJuICQodCksbnVsbD09PWUmJnJqJiYocj10LnN0YXRlTm9kZT1jeih0LnR5cGUsdC5wZW5kaW5nUHJvcHMsRi5jdXJyZW50KSxyaz10LHJPPSEwLG89ckUsY0ModC50eXBlKT8oY1A9byxyRT1jQihyLmZpcnN0Q2hpbGQpKTpyRT1vKSxpeChlLHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbiksaUIoZSx0KSxudWxsPT09ZSYmKHQuZmxhZ3N8PTQxOTQzMDQpLHQuY2hpbGQ7Y2FzZSA1OnJldHVybiBudWxsPT09ZSYmcmomJigobz1yPXJFKSYmKG51bGwhPT0ocj1mdW5jdGlvbihlLHQsbixyKXtmb3IoOzE9PT1lLm5vZGVUeXBlOyl7aWYoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09dC50b0xvd2VyQ2FzZSgpKXtpZighciYmKFwiSU5QVVRcIiE9PWUubm9kZU5hbWV8fFwiaGlkZGVuXCIhPT1lLnR5cGUpKWJyZWFrfWVsc2UgaWYocil7aWYoIWVbZUZdKXN3aXRjaCh0KXtjYXNlXCJtZXRhXCI6aWYoIWUuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpYnJlYWs7cmV0dXJuIGU7Y2FzZVwibGlua1wiOmlmKFwic3R5bGVzaGVldFwiPT09KG89ZS5nZXRBdHRyaWJ1dGUoXCJyZWxcIikpJiZlLmhhc0F0dHJpYnV0ZShcImRhdGEtcHJlY2VkZW5jZVwiKXx8byE9PW4ucmVsfHxlLmdldEF0dHJpYnV0ZShcImhyZWZcIikhPT0obnVsbD09bi5ocmVmfHxcIlwiPT09bi5ocmVmP251bGw6bi5ocmVmKXx8ZS5nZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiKSE9PShudWxsPT1uLmNyb3NzT3JpZ2luP251bGw6bi5jcm9zc09yaWdpbil8fGUuZ2V0QXR0cmlidXRlKFwidGl0bGVcIikhPT0obnVsbD09bi50aXRsZT9udWxsOm4udGl0bGUpKWJyZWFrO3JldHVybiBlO2Nhc2VcInN0eWxlXCI6aWYoZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXByZWNlZGVuY2VcIikpYnJlYWs7cmV0dXJuIGU7Y2FzZVwic2NyaXB0XCI6aWYoKChvPWUuZ2V0QXR0cmlidXRlKFwic3JjXCIpKSE9PShudWxsPT1uLnNyYz9udWxsOm4uc3JjKXx8ZS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpIT09KG51bGw9PW4udHlwZT9udWxsOm4udHlwZSl8fGUuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIikhPT0obnVsbD09bi5jcm9zc09yaWdpbj9udWxsOm4uY3Jvc3NPcmlnaW4pKSYmbyYmZS5oYXNBdHRyaWJ1dGUoXCJhc3luY1wiKSYmIWUuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpYnJlYWs7cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gZX19ZWxzZXtpZihcImlucHV0XCIhPT10fHxcImhpZGRlblwiIT09ZS50eXBlKXJldHVybiBlO3ZhciBvPW51bGw9PW4ubmFtZT9udWxsOlwiXCIrbi5uYW1lO2lmKFwiaGlkZGVuXCI9PT1uLnR5cGUmJmUuZ2V0QXR0cmlidXRlKFwibmFtZVwiKT09PW8pcmV0dXJuIGV9aWYobnVsbD09PShlPWNCKGUubmV4dFNpYmxpbmcpKSlicmVha31yZXR1cm4gbnVsbH0ocix0LnR5cGUsdC5wZW5kaW5nUHJvcHMsck8pKT8odC5zdGF0ZU5vZGU9cixyaz10LHJFPWNCKHIuZmlyc3RDaGlsZCksck89ITEsbz0hMCk6bz0hMSksb3x8clAodCkpLCQodCksbz10LnR5cGUsYT10LnBlbmRpbmdQcm9wcyxpPW51bGwhPT1lP2UubWVtb2l6ZWRQcm9wczpudWxsLHI9YS5jaGlsZHJlbixjZyhvLGEpP3I9bnVsbDpudWxsIT09aSYmY2cobyxpKSYmKHQuZmxhZ3N8PTMyKSxudWxsIT09dC5tZW1vaXplZFN0YXRlJiYoYzkuX2N1cnJlbnRWYWx1ZT1vPW82KGUsdCxvNyxudWxsLG51bGwsbikpLGlCKGUsdCksaXgoZSx0LHIsbiksdC5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1lJiZyaiYmKChlPW49ckUpJiYobnVsbCE9PShuPWZ1bmN0aW9uKGUsdCxuKXtpZihcIlwiPT09dClyZXR1cm4gbnVsbDtmb3IoOzMhPT1lLm5vZGVUeXBlOylpZigoMSE9PWUubm9kZVR5cGV8fFwiSU5QVVRcIiE9PWUubm9kZU5hbWV8fFwiaGlkZGVuXCIhPT1lLnR5cGUpJiYhbnx8bnVsbD09PShlPWNCKGUubmV4dFNpYmxpbmcpKSlyZXR1cm4gbnVsbDtyZXR1cm4gZX0obix0LnBlbmRpbmdQcm9wcyxyTykpPyh0LnN0YXRlTm9kZT1uLHJrPXQsckU9bnVsbCxlPSEwKTplPSExKSxlfHxyUCh0KSksbnVsbDtjYXNlIDEzOnJldHVybiBpUihlLHQsbik7Y2FzZSA0OnJldHVybiBIKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscj10LnBlbmRpbmdQcm9wcyxudWxsPT09ZT90LmNoaWxkPW9iKHQsbnVsbCxyLG4pOml4KGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gaXcoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxuKTtjYXNlIDc6cmV0dXJuIGl4KGUsdCx0LnBlbmRpbmdQcm9wcyxuKSx0LmNoaWxkO2Nhc2UgODpjYXNlIDEyOnJldHVybiBpeChlLHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbiksdC5jaGlsZDtjYXNlIDEwOnJldHVybiByPXQucGVuZGluZ1Byb3BzLHJVKHQsdC50eXBlLHIudmFsdWUpLGl4KGUsdCxyLmNoaWxkcmVuLG4pLHQuY2hpbGQ7Y2FzZSA5OnJldHVybiBvPXQudHlwZS5fY29udGV4dCxyPXQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLHJXKHQpLHI9cihvPXJZKG8pKSx0LmZsYWdzfD0xLGl4KGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gaUMoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxuKTtjYXNlIDE1OnJldHVybiBpXyhlLHQsdC50eXBlLHQucGVuZGluZ1Byb3BzLG4pO2Nhc2UgMTk6cmV0dXJuIGlIKGUsdCxuKTtjYXNlIDMxOnZhciBzPWUsYz10LHU9bixkPWMucGVuZGluZ1Byb3BzLGY9MCE9KDEyOCZjLmZsYWdzKTtpZihjLmZsYWdzJj0tMTI5LG51bGw9PT1zKXtpZihyail7aWYoXCJoaWRkZW5cIj09PWQubW9kZSlyZXR1cm4gcz1pUyhjLGQpLGMubGFuZXM9MHgyMDAwMDAwMCxpRShudWxsLHMpO2lmKG9VKGMpLChzPXJFKT9udWxsIT09KHM9bnVsbCE9PShzPWNqKHMsck8pKSYmXCImXCI9PT1zLmRhdGE/czpudWxsKSYmKGMubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDpzLHRyZWVDb250ZXh0Om51bGwhPT1yeT97aWQ6cnYsb3ZlcmZsb3c6cmJ9Om51bGwscmV0cnlMYW5lOjB4MjAwMDAwMDAsaHlkcmF0aW9uRXJyb3JzOm51bGx9LCh1PXJsKHMpKS5yZXR1cm49YyxjLmNoaWxkPXUscms9YyxyRT1udWxsKTpzPW51bGwsbnVsbD09PXMpdGhyb3cgclAoYyk7cmV0dXJuIGMubGFuZXM9MHgyMDAwMDAwMCxudWxsfXJldHVybiBpUyhjLGQpfXZhciBwPXMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09cCl7dmFyIGg9cC5kZWh5ZHJhdGVkO2lmKG9VKGMpLGYpaWYoMjU2JmMuZmxhZ3MpYy5mbGFncyY9LTI1NyxjPWlPKHMsYyx1KTtlbHNlIGlmKG51bGwhPT1jLm1lbW9pemVkU3RhdGUpYy5jaGlsZD1zLmNoaWxkLGMuZmxhZ3N8PTEyOCxjPW51bGw7ZWxzZSB0aHJvdyBFcnJvcihsKDU1OCkpO2Vsc2UgaWYoaUF8fHJWKHMsYyx1LCExKSxmPTAhPSh1JnMuY2hpbGRMYW5lcyksaUF8fGYpe2lmKG51bGwhPT0oZD1sTCkmJjAhPT0oaD1lTyhkLHUpKSYmaCE9PXAucmV0cnlMYW5lKXRocm93IHAucmV0cnlMYW5lPWgsbjMocyxoKSxzYShkLHMsaCksaWI7c2coKSxjPWlPKHMsYyx1KX1lbHNlIHM9cC50cmVlQ29udGV4dCxyRT1jQihoLm5leHRTaWJsaW5nKSxyaz1jLHJqPSEwLHJTPW51bGwsck89ITEsbnVsbCE9PXMmJnJfKGMscyksYz1pUyhjLGQpLGMuZmxhZ3N8PTQwOTY7cmV0dXJuIGN9cmV0dXJuKHM9cm4ocy5jaGlsZCx7bW9kZTpkLm1vZGUsY2hpbGRyZW46ZC5jaGlsZHJlbn0pKS5yZWY9Yy5yZWYsYy5jaGlsZD1zLHMucmV0dXJuPWMscztjYXNlIDIyOnJldHVybiBpayhlLHQsbix0LnBlbmRpbmdQcm9wcyk7Y2FzZSAyNDpyZXR1cm4gclcodCkscj1yWShyMCksbnVsbD09PWU/KG51bGw9PT0obz1vZSgpKSYmKG89bEwsYT1yMSgpLG8ucG9vbGVkQ2FjaGU9YSxhLnJlZkNvdW50KyssbnVsbCE9PWEmJihvLnBvb2xlZENhY2hlTGFuZXN8PW4pLG89YSksdC5tZW1vaXplZFN0YXRlPXtwYXJlbnQ6cixjYWNoZTpvfSxvdyh0KSxyVSh0LHIwLG8pKTooMCE9KGUubGFuZXMmbikmJihvQyhlLHQpLG9CKHQsbnVsbCxudWxsLG4pLG9PKCkpLG89ZS5tZW1vaXplZFN0YXRlLGE9dC5tZW1vaXplZFN0YXRlLG8ucGFyZW50IT09cj8obz17cGFyZW50OnIsY2FjaGU6cn0sdC5tZW1vaXplZFN0YXRlPW8sMD09PXQubGFuZXMmJih0Lm1lbW9pemVkU3RhdGU9dC51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9byksclUodCxyMCxyKSk6KHJVKHQscjAscj1hLmNhY2hlKSxyIT09by5jYWNoZSYmckgodCxbcjBdLG4sITApKSksaXgoZSx0LHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLG4pLHQuY2hpbGQ7Y2FzZSAyOTp0aHJvdyB0LnBlbmRpbmdQcm9wc310aHJvdyBFcnJvcihsKDE1Nix0LnRhZykpfWZ1bmN0aW9uIGlZKGUpe2UuZmxhZ3N8PTR9ZnVuY3Rpb24gaUsoZSx0LG4scixvKXtpZigodD0wIT0oMzImZS5tb2RlKSkmJih0PSExKSx0KXtpZihlLmZsYWdzfD0weDEwMDAwMDAsKDB4MTNmZmZmNDAmbyk9PT1vKWlmKGUuc3RhdGVOb2RlLmNvbXBsZXRlKWUuZmxhZ3N8PTgxOTI7ZWxzZSBpZihzcCgpKWUuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBvdT1vaSxvb31lbHNlIGUuZmxhZ3MmPS0weDEwMDAwMDF9ZnVuY3Rpb24gaVgoZSx0KXtpZihcInN0eWxlc2hlZXRcIiE9PXQudHlwZXx8MCE9KDQmdC5zdGF0ZS5sb2FkaW5nKSllLmZsYWdzJj0tMHgxMDAwMDAxO2Vsc2UgaWYoZS5mbGFnc3w9MHgxMDAwMDAwLCFjMSh0KSlpZihzcCgpKWUuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBvdT1vaSxvb31mdW5jdGlvbiBpRyhlLHQpe251bGwhPT10JiYoZS5mbGFnc3w9NCksMTYzODQmZS5mbGFncyYmKHQ9MjIhPT1lLnRhZz9lXygpOjB4MjAwMDAwMDAsZS5sYW5lc3w9dCxsWHw9dCl9ZnVuY3Rpb24gaVEoZSx0KXtpZighcmopc3dpdGNoKGUudGFpbE1vZGUpe2Nhc2VcImhpZGRlblwiOnQ9ZS50YWlsO2Zvcih2YXIgbj1udWxsO251bGwhPT10OyludWxsIT09dC5hbHRlcm5hdGUmJihuPXQpLHQ9dC5zaWJsaW5nO251bGw9PT1uP2UudGFpbD1udWxsOm4uc2libGluZz1udWxsO2JyZWFrO2Nhc2VcImNvbGxhcHNlZFwiOm49ZS50YWlsO2Zvcih2YXIgcj1udWxsO251bGwhPT1uOyludWxsIT09bi5hbHRlcm5hdGUmJihyPW4pLG49bi5zaWJsaW5nO251bGw9PT1yP3R8fG51bGw9PT1lLnRhaWw/ZS50YWlsPW51bGw6ZS50YWlsLnNpYmxpbmc9bnVsbDpyLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gaUooZSl7dmFyIHQ9bnVsbCE9PWUuYWx0ZXJuYXRlJiZlLmFsdGVybmF0ZS5jaGlsZD09PWUuY2hpbGQsbj0wLHI9MDtpZih0KWZvcih2YXIgbz1lLmNoaWxkO251bGwhPT1vOylufD1vLmxhbmVzfG8uY2hpbGRMYW5lcyxyfD0weDNlMDAwMDAmby5zdWJ0cmVlRmxhZ3Mscnw9MHgzZTAwMDAwJm8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztlbHNlIGZvcihvPWUuY2hpbGQ7bnVsbCE9PW87KW58PW8ubGFuZXN8by5jaGlsZExhbmVzLHJ8PW8uc3VidHJlZUZsYWdzLHJ8PW8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztyZXR1cm4gZS5zdWJ0cmVlRmxhZ3N8PXIsZS5jaGlsZExhbmVzPW4sdH1mdW5jdGlvbiBpMChlLHQpe3N3aXRjaChyQyh0KSx0LnRhZyl7Y2FzZSAzOnJGKHIwKSxWKCk7YnJlYWs7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpXKHQpO2JyZWFrO2Nhc2UgNDpWKCk7YnJlYWs7Y2FzZSAzMTpudWxsIT09dC5tZW1vaXplZFN0YXRlJiZvSCh0KTticmVhaztjYXNlIDEzOm9IKHQpO2JyZWFrO2Nhc2UgMTk6UihvVik7YnJlYWs7Y2FzZSAxMDpyRih0LnR5cGUpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpvSCh0KSxvTigpLG51bGwhPT1lJiZSKHI3KTticmVhaztjYXNlIDI0OnJGKHIwKX19ZnVuY3Rpb24gaTEoZSx0KXt0cnl7dmFyIG49dC51cGRhdGVRdWV1ZSxyPW51bGwhPT1uP24ubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1yKXt2YXIgbz1yLm5leHQ7bj1vO2Rve2lmKChuLnRhZyZlKT09PWUpe3I9dm9pZCAwO3ZhciBhPW4uY3JlYXRlO24uaW5zdC5kZXN0cm95PXI9YSgpfW49bi5uZXh0fXdoaWxlKG4hPT1vKX19Y2F0Y2goZSl7c1AodCx0LnJldHVybixlKX19ZnVuY3Rpb24gaTIoZSx0LG4pe3RyeXt2YXIgcj10LnVwZGF0ZVF1ZXVlLG89bnVsbCE9PXI/ci5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PW8pe3ZhciBhPW8ubmV4dDtyPWE7ZG97aWYoKHIudGFnJmUpPT09ZSl7dmFyIGk9ci5pbnN0LGw9aS5kZXN0cm95O2lmKHZvaWQgMCE9PWwpe2kuZGVzdHJveT12b2lkIDAsbz10O3RyeXtsKCl9Y2F0Y2goZSl7c1AobyxuLGUpfX19cj1yLm5leHR9d2hpbGUociE9PWEpfX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX1mdW5jdGlvbiBpNChlKXt2YXIgdD1lLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT10KXt2YXIgbj1lLnN0YXRlTm9kZTt0cnl7b0kodCxuKX1jYXRjaCh0KXtzUChlLGUucmV0dXJuLHQpfX19ZnVuY3Rpb24gaTUoZSx0LG4pe24ucHJvcHM9aWMoZS50eXBlLGUubWVtb2l6ZWRQcm9wcyksbi5zdGF0ZT1lLm1lbW9pemVkU3RhdGU7dHJ5e24uY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChuKXtzUChlLHQsbil9fWZ1bmN0aW9uIGkzKGUsdCl7dHJ5e3ZhciBuPWUucmVmO2lmKG51bGwhPT1uKXtzd2l0Y2goZS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6dmFyIHI9ZS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDpyPWUuc3RhdGVOb2RlfVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZS5yZWZDbGVhbnVwPW4ocik6bi5jdXJyZW50PXJ9fWNhdGNoKG4pe3NQKGUsdCxuKX19ZnVuY3Rpb24gaTYoZSx0KXt2YXIgbj1lLnJlZixyPWUucmVmQ2xlYW51cDtpZihudWxsIT09bilpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXRyeXtyKCl9Y2F0Y2gobil7c1AoZSx0LG4pfWZpbmFsbHl7ZS5yZWZDbGVhbnVwPW51bGwsbnVsbCE9KGU9ZS5hbHRlcm5hdGUpJiYoZS5yZWZDbGVhbnVwPW51bGwpfWVsc2UgaWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbil0cnl7bihudWxsKX1jYXRjaChuKXtzUChlLHQsbil9ZWxzZSBuLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBpOShlKXt2YXIgdD1lLnR5cGUsbj1lLm1lbW9pemVkUHJvcHMscj1lLnN0YXRlTm9kZTt0cnl7c3dpdGNoKHQpe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjpuLmF1dG9Gb2N1cyYmci5mb2N1cygpO2JyZWFrO2Nhc2VcImltZ1wiOm4uc3JjP3Iuc3JjPW4uc3JjOm4uc3JjU2V0JiYoci5zcmNzZXQ9bi5zcmNTZXQpfX1jYXRjaCh0KXtzUChlLGUucmV0dXJuLHQpfX1mdW5jdGlvbiBpOChlLHQsbil7dHJ5e3ZhciByPWUuc3RhdGVOb2RlOyhmdW5jdGlvbihlLHQsbixyKXtzd2l0Y2godCl7Y2FzZVwiZGl2XCI6Y2FzZVwic3BhblwiOmNhc2VcInN2Z1wiOmNhc2VcInBhdGhcIjpjYXNlXCJhXCI6Y2FzZVwiZ1wiOmNhc2VcInBcIjpjYXNlXCJsaVwiOmJyZWFrO2Nhc2VcImlucHV0XCI6dmFyIG89bnVsbCxhPW51bGwsaT1udWxsLHM9bnVsbCxjPW51bGwsdT1udWxsLGQ9bnVsbDtmb3IoaCBpbiBuKXt2YXIgZj1uW2hdO2lmKG4uaGFzT3duUHJvcGVydHkoaCkmJm51bGwhPWYpc3dpdGNoKGgpe2Nhc2VcImNoZWNrZWRcIjpjYXNlXCJ2YWx1ZVwiOmJyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOmM9ZjtkZWZhdWx0OnIuaGFzT3duUHJvcGVydHkoaCl8fGNzKGUsdCxoLG51bGwscixmKX19Zm9yKHZhciBwIGluIHIpe3ZhciBoPXJbcF07aWYoZj1uW3BdLHIuaGFzT3duUHJvcGVydHkocCkmJihudWxsIT1ofHxudWxsIT1mKSlzd2l0Y2gocCl7Y2FzZVwidHlwZVwiOmE9aDticmVhaztjYXNlXCJuYW1lXCI6bz1oO2JyZWFrO2Nhc2VcImNoZWNrZWRcIjp1PWg7YnJlYWs7Y2FzZVwiZGVmYXVsdENoZWNrZWRcIjpkPWg7YnJlYWs7Y2FzZVwidmFsdWVcIjppPWg7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6cz1oO2JyZWFrO2Nhc2VcImNoaWxkcmVuXCI6Y2FzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjppZihudWxsIT1oKXRocm93IEVycm9yKGwoMTM3LHQpKTticmVhaztkZWZhdWx0OmghPT1mJiZjcyhlLHQscCxoLHIsZil9fXRuKGUsaSxzLGMsdSxkLGEsbyk7cmV0dXJuO2Nhc2VcInNlbGVjdFwiOmZvcihhIGluIGg9aT1zPXA9bnVsbCxuKWlmKGM9blthXSxuLmhhc093blByb3BlcnR5KGEpJiZudWxsIT1jKXN3aXRjaChhKXtjYXNlXCJ2YWx1ZVwiOmJyZWFrO2Nhc2VcIm11bHRpcGxlXCI6aD1jO2RlZmF1bHQ6ci5oYXNPd25Qcm9wZXJ0eShhKXx8Y3MoZSx0LGEsbnVsbCxyLGMpfWZvcihvIGluIHIpaWYoYT1yW29dLGM9bltvXSxyLmhhc093blByb3BlcnR5KG8pJiYobnVsbCE9YXx8bnVsbCE9Yykpc3dpdGNoKG8pe2Nhc2VcInZhbHVlXCI6cD1hO2JyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOnM9YTticmVhaztjYXNlXCJtdWx0aXBsZVwiOmk9YTtkZWZhdWx0OmEhPT1jJiZjcyhlLHQsbyxhLHIsYyl9dD1zLG49aSxyPWgsbnVsbCE9cD90YShlLCEhbixwLCExKTohIXIhPSEhbiYmKG51bGwhPXQ/dGEoZSwhIW4sdCwhMCk6dGEoZSwhIW4sbj9bXTpcIlwiLCExKSk7cmV0dXJuO2Nhc2VcInRleHRhcmVhXCI6Zm9yKHMgaW4gaD1wPW51bGwsbilpZihvPW5bc10sbi5oYXNPd25Qcm9wZXJ0eShzKSYmbnVsbCE9byYmIXIuaGFzT3duUHJvcGVydHkocykpc3dpdGNoKHMpe2Nhc2VcInZhbHVlXCI6Y2FzZVwiY2hpbGRyZW5cIjpicmVhaztkZWZhdWx0OmNzKGUsdCxzLG51bGwscixvKX1mb3IoaSBpbiByKWlmKG89cltpXSxhPW5baV0sci5oYXNPd25Qcm9wZXJ0eShpKSYmKG51bGwhPW98fG51bGwhPWEpKXN3aXRjaChpKXtjYXNlXCJ2YWx1ZVwiOnA9bzticmVhaztjYXNlXCJkZWZhdWx0VmFsdWVcIjpoPW87YnJlYWs7Y2FzZVwiY2hpbGRyZW5cIjpicmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPW8pdGhyb3cgRXJyb3IobCg5MSkpO2JyZWFrO2RlZmF1bHQ6byE9PWEmJmNzKGUsdCxpLG8scixhKX10aShlLHAsaCk7cmV0dXJuO2Nhc2VcIm9wdGlvblwiOmZvcih2YXIgbSBpbiBuKXA9blttXSxuLmhhc093blByb3BlcnR5KG0pJiZudWxsIT1wJiYhci5oYXNPd25Qcm9wZXJ0eShtKSYmKFwic2VsZWN0ZWRcIj09PW0/ZS5zZWxlY3RlZD0hMTpjcyhlLHQsbSxudWxsLHIscCkpO2ZvcihjIGluIHIpcD1yW2NdLGg9bltjXSxyLmhhc093blByb3BlcnR5KGMpJiZwIT09aCYmKG51bGwhPXB8fG51bGwhPWgpJiYoXCJzZWxlY3RlZFwiPT09Yz9lLnNlbGVjdGVkPXAmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHAmJlwic3ltYm9sXCIhPXR5cGVvZiBwOmNzKGUsdCxjLHAscixoKSk7cmV0dXJuO2Nhc2VcImltZ1wiOmNhc2VcImxpbmtcIjpjYXNlXCJhcmVhXCI6Y2FzZVwiYmFzZVwiOmNhc2VcImJyXCI6Y2FzZVwiY29sXCI6Y2FzZVwiZW1iZWRcIjpjYXNlXCJoclwiOmNhc2VcImtleWdlblwiOmNhc2VcIm1ldGFcIjpjYXNlXCJwYXJhbVwiOmNhc2VcInNvdXJjZVwiOmNhc2VcInRyYWNrXCI6Y2FzZVwid2JyXCI6Y2FzZVwibWVudWl0ZW1cIjpmb3IodmFyIGcgaW4gbilwPW5bZ10sbi5oYXNPd25Qcm9wZXJ0eShnKSYmbnVsbCE9cCYmIXIuaGFzT3duUHJvcGVydHkoZykmJmNzKGUsdCxnLG51bGwscixwKTtmb3IodSBpbiByKWlmKHA9clt1XSxoPW5bdV0sci5oYXNPd25Qcm9wZXJ0eSh1KSYmcCE9PWgmJihudWxsIT1wfHxudWxsIT1oKSlzd2l0Y2godSl7Y2FzZVwiY2hpbGRyZW5cIjpjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXApdGhyb3cgRXJyb3IobCgxMzcsdCkpO2JyZWFrO2RlZmF1bHQ6Y3MoZSx0LHUscCxyLGgpfXJldHVybjtkZWZhdWx0OmlmKHRmKHQpKXtmb3IodmFyIHkgaW4gbilwPW5beV0sbi5oYXNPd25Qcm9wZXJ0eSh5KSYmdm9pZCAwIT09cCYmIXIuaGFzT3duUHJvcGVydHkoeSkmJmNjKGUsdCx5LHZvaWQgMCxyLHApO2ZvcihkIGluIHIpcD1yW2RdLGg9bltkXSxyLmhhc093blByb3BlcnR5KGQpJiZwIT09aCYmKHZvaWQgMCE9PXB8fHZvaWQgMCE9PWgpJiZjYyhlLHQsZCxwLHIsaCk7cmV0dXJufX1mb3IodmFyIHYgaW4gbilwPW5bdl0sbi5oYXNPd25Qcm9wZXJ0eSh2KSYmbnVsbCE9cCYmIXIuaGFzT3duUHJvcGVydHkodikmJmNzKGUsdCx2LG51bGwscixwKTtmb3IoZiBpbiByKXA9cltmXSxoPW5bZl0sci5oYXNPd25Qcm9wZXJ0eShmKSYmcCE9PWgmJihudWxsIT1wfHxudWxsIT1oKSYmY3MoZSx0LGYscCxyLGgpfSkocixlLnR5cGUsbix0KSxyW2VMXT10fWNhdGNoKHQpe3NQKGUsZS5yZXR1cm4sdCl9fWZ1bmN0aW9uIGk3KGUpe3JldHVybiA1PT09ZS50YWd8fDM9PT1lLnRhZ3x8MjY9PT1lLnRhZ3x8Mjc9PT1lLnRhZyYmY0MoZS50eXBlKXx8ND09PWUudGFnfWZ1bmN0aW9uIGxlKGUpe2U6Zm9yKDs7KXtmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGk3KGUucmV0dXJuKSlyZXR1cm4gbnVsbDtlPWUucmV0dXJufWZvcihlLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nOzUhPT1lLnRhZyYmNiE9PWUudGFnJiYxOCE9PWUudGFnOyl7aWYoMjc9PT1lLnRhZyYmY0MoZS50eXBlKXx8MiZlLmZsYWdzfHxudWxsPT09ZS5jaGlsZHx8ND09PWUudGFnKWNvbnRpbnVlIGU7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGR9aWYoISgyJmUuZmxhZ3MpKXJldHVybiBlLnN0YXRlTm9kZX19ZnVuY3Rpb24gbHQoZSx0LG4pe3ZhciByPWUudGFnO2lmKDU9PT1yfHw2PT09cillPWUuc3RhdGVOb2RlLHQ/bi5pbnNlcnRCZWZvcmUoZSx0KTpuLmFwcGVuZENoaWxkKGUpO2Vsc2UgaWYoNCE9PXImJigyNz09PXImJmNDKGUudHlwZSkmJihuPWUuc3RhdGVOb2RlKSxudWxsIT09KGU9ZS5jaGlsZCkpKWZvcihsdChlLHQsbiksZT1lLnNpYmxpbmc7bnVsbCE9PWU7KWx0KGUsdCxuKSxlPWUuc2libGluZ31mdW5jdGlvbiBsbihlKXt2YXIgdD1lLnN0YXRlTm9kZSxuPWUubWVtb2l6ZWRQcm9wczt0cnl7Zm9yKHZhciByPWUudHlwZSxvPXQuYXR0cmlidXRlcztvLmxlbmd0aDspdC5yZW1vdmVBdHRyaWJ1dGVOb2RlKG9bMF0pO2N1KHQscixuKSx0W2VEXT1lLHRbZUxdPW59Y2F0Y2godCl7c1AoZSxlLnJldHVybix0KX19dmFyIGxyPSExLGxvPSExLGxhPSExLGxpPVwiZnVuY3Rpb25cIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsbGw9bnVsbDtmdW5jdGlvbiBscyhlLHQsbil7dmFyIHI9bi5mbGFncztzd2l0Y2gobi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6bEEoZSxuKSw0JnImJmkxKDUsbik7YnJlYWs7Y2FzZSAxOmlmKGxBKGUsbiksNCZyKWlmKGU9bi5zdGF0ZU5vZGUsbnVsbD09PXQpdHJ5e2UuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfWVsc2V7dmFyIG89aWMobi50eXBlLHQubWVtb2l6ZWRQcm9wcyk7dD10Lm1lbW9pemVkU3RhdGU7dHJ5e2UuY29tcG9uZW50RGlkVXBkYXRlKG8sdCxlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX02NCZyJiZpNChuKSw1MTImciYmaTMobixuLnJldHVybik7YnJlYWs7Y2FzZSAzOmlmKGxBKGUsbiksNjQmciYmbnVsbCE9PShlPW4udXBkYXRlUXVldWUpKXtpZih0PW51bGwsbnVsbCE9PW4uY2hpbGQpc3dpdGNoKG4uY2hpbGQudGFnKXtjYXNlIDI3OmNhc2UgNTpjYXNlIDE6dD1uLmNoaWxkLnN0YXRlTm9kZX10cnl7b0koZSx0KX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX1icmVhaztjYXNlIDI3Om51bGw9PT10JiY0JnImJmxuKG4pO2Nhc2UgMjY6Y2FzZSA1OmxBKGUsbiksbnVsbD09PXQmJjQmciYmaTkobiksNTEyJnImJmkzKG4sbi5yZXR1cm4pO2JyZWFrO2Nhc2UgMTI6ZGVmYXVsdDpsQShlLG4pO2JyZWFrO2Nhc2UgMzE6bEEoZSxuKSw0JnImJmxwKGUsbik7YnJlYWs7Y2FzZSAxMzpsQShlLG4pLDQmciYmbGgoZSxuKSw2NCZyJiZudWxsIT09KGU9bi5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShlPWUuZGVoeWRyYXRlZCkmJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5vd25lckRvY3VtZW50O2lmKFwiJH5cIj09PWUuZGF0YSllLl9yZWFjdFJldHJ5PXQ7ZWxzZSBpZihcIiQ/XCIhPT1lLmRhdGF8fFwibG9hZGluZ1wiIT09bi5yZWFkeVN0YXRlKXQoKTtlbHNle3ZhciByPWZ1bmN0aW9uKCl7dCgpLG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIixyKX07bi5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLHIpLGUuX3JlYWN0UmV0cnk9cn19KGUsbj1zRC5iaW5kKG51bGwsbikpO2JyZWFrO2Nhc2UgMjI6aWYoIShyPW51bGwhPT1uLm1lbW9pemVkU3RhdGV8fGxyKSl7dD1udWxsIT09dCYmbnVsbCE9PXQubWVtb2l6ZWRTdGF0ZXx8bG8sbz1scjt2YXIgYT1sbztscj1yLChsbz10KSYmIWE/ZnVuY3Rpb24gZSh0LG4scil7Zm9yKHI9ciYmMCE9KDg3NzImbi5zdWJ0cmVlRmxhZ3MpLG49bi5jaGlsZDtudWxsIT09bjspe3ZhciBvPW4uYWx0ZXJuYXRlLGE9dCxpPW4sbD1pLmZsYWdzO3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTplKGEsaSxyKSxpMSg0LGkpO2JyZWFrO2Nhc2UgMTppZihlKGEsaSxyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZihhPShvPWkpLnN0YXRlTm9kZSkuY29tcG9uZW50RGlkTW91bnQpdHJ5e2EuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChlKXtzUChvLG8ucmV0dXJuLGUpfWlmKG51bGwhPT0oYT0obz1pKS51cGRhdGVRdWV1ZSkpe3ZhciBzPW8uc3RhdGVOb2RlO3RyeXt2YXIgYz1hLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M7aWYobnVsbCE9PWMpZm9yKGEuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsLGE9MDthPGMubGVuZ3RoO2ErKylvUChjW2FdLHMpfWNhdGNoKGUpe3NQKG8sby5yZXR1cm4sZSl9fXImJjY0JmwmJmk0KGkpLGkzKGksaS5yZXR1cm4pO2JyZWFrO2Nhc2UgMjc6bG4oaSk7Y2FzZSAyNjpjYXNlIDU6ZShhLGksciksciYmbnVsbD09PW8mJjQmbCYmaTkoaSksaTMoaSxpLnJldHVybik7YnJlYWs7Y2FzZSAxMjpkZWZhdWx0OmUoYSxpLHIpO2JyZWFrO2Nhc2UgMzE6ZShhLGksciksciYmNCZsJiZscChhLGkpO2JyZWFrO2Nhc2UgMTM6ZShhLGksciksciYmNCZsJiZsaChhLGkpO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWkubWVtb2l6ZWRTdGF0ZSYmZShhLGksciksaTMoaSxpLnJldHVybik7Y2FzZSAzMDp9bj1uLnNpYmxpbmd9fShlLG4sMCE9KDg3NzImbi5zdWJ0cmVlRmxhZ3MpKTpsQShlLG4pLGxyPW8sbG89YX1jYXNlIDMwOn19dmFyIGxjPW51bGwsbHU9ITE7ZnVuY3Rpb24gbGQoZSx0LG4pe2ZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KWxmKGUsdCxuKSxuPW4uc2libGluZ31mdW5jdGlvbiBsZihlLHQsbil7aWYoZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtlcC5vbkNvbW1pdEZpYmVyVW5tb3VudChlZixuKX1jYXRjaChlKXt9c3dpdGNoKG4udGFnKXtjYXNlIDI2OmxvfHxpNihuLHQpLGxkKGUsdCxuKSxuLm1lbW9pemVkU3RhdGU/bi5tZW1vaXplZFN0YXRlLmNvdW50LS06bi5zdGF0ZU5vZGUmJihuPW4uc3RhdGVOb2RlKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pO2JyZWFrO2Nhc2UgMjc6bG98fGk2KG4sdCk7dmFyIHI9bGMsbz1sdTtjQyhuLnR5cGUpJiYobGM9bi5zdGF0ZU5vZGUsbHU9ITEpLGxkKGUsdCxuKSxjRChuLnN0YXRlTm9kZSksbGM9cixsdT1vO2JyZWFrO2Nhc2UgNTpsb3x8aTYobix0KTtjYXNlIDY6aWYocj1sYyxvPWx1LGxjPW51bGwsbGQoZSx0LG4pLGxjPXIsbHU9byxudWxsIT09bGMpaWYobHUpdHJ5eyg5PT09bGMubm9kZVR5cGU/bGMuYm9keTpcIkhUTUxcIj09PWxjLm5vZGVOYW1lP2xjLm93bmVyRG9jdW1lbnQuYm9keTpsYykucmVtb3ZlQ2hpbGQobi5zdGF0ZU5vZGUpfWNhdGNoKGUpe3NQKG4sdCxlKX1lbHNlIHRyeXtsYy5yZW1vdmVDaGlsZChuLnN0YXRlTm9kZSl9Y2F0Y2goZSl7c1Aobix0LGUpfWJyZWFrO2Nhc2UgMTg6bnVsbCE9PWxjJiYobHU/KGNfKDk9PT0oZT1sYykubm9kZVR5cGU/ZS5ib2R5OlwiSFRNTFwiPT09ZS5ub2RlTmFtZT9lLm93bmVyRG9jdW1lbnQuYm9keTplLG4uc3RhdGVOb2RlKSx1TyhlKSk6Y18obGMsbi5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6cj1sYyxvPWx1LGxjPW4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sbHU9ITAsbGQoZSx0LG4pLGxjPXIsbHU9bzticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6bG98fGkyKDIsbix0KSxsb3x8aTIoNCxuLHQpLGxkKGUsdCxuKTticmVhaztjYXNlIDE6bG98fChpNihuLHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mKHI9bi5zdGF0ZU5vZGUpLmNvbXBvbmVudFdpbGxVbm1vdW50JiZpNShuLHQscikpLGxkKGUsdCxuKTticmVhaztjYXNlIDIxOmRlZmF1bHQ6bGQoZSx0LG4pO2JyZWFrO2Nhc2UgMjI6bG89KHI9bG8pfHxudWxsIT09bi5tZW1vaXplZFN0YXRlLGxkKGUsdCxuKSxsbz1yfX1mdW5jdGlvbiBscChlLHQpe2lmKG51bGw9PT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT0oZT10LmFsdGVybmF0ZSkmJm51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpKXtlPWUuZGVoeWRyYXRlZDt0cnl7dU8oZSl9Y2F0Y2goZSl7c1AodCx0LnJldHVybixlKX19fWZ1bmN0aW9uIGxoKGUsdCl7aWYobnVsbD09PXQubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PShlPXQuYWx0ZXJuYXRlKSYmbnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0oZT1lLmRlaHlkcmF0ZWQpKXRyeXt1TyhlKX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX1mdW5jdGlvbiBsbShlLHQpe3ZhciBuPWZ1bmN0aW9uKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOmNhc2UgMTk6dmFyIHQ9ZS5zdGF0ZU5vZGU7cmV0dXJuIG51bGw9PT10JiYodD1lLnN0YXRlTm9kZT1uZXcgbGkpLHQ7Y2FzZSAyMjpyZXR1cm4gbnVsbD09PSh0PShlPWUuc3RhdGVOb2RlKS5fcmV0cnlDYWNoZSkmJih0PWUuX3JldHJ5Q2FjaGU9bmV3IGxpKSx0O2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0MzUsZS50YWcpKX19KGUpO3QuZm9yRWFjaChmdW5jdGlvbih0KXtpZighbi5oYXModCkpe24uYWRkKHQpO3ZhciByPXNMLmJpbmQobnVsbCxlLHQpO3QudGhlbihyLHIpfX0pfWZ1bmN0aW9uIGxnKGUsdCl7dmFyIG49dC5kZWxldGlvbnM7aWYobnVsbCE9PW4pZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBvPW5bcl0sYT1lLGk9dCxzPWk7ZTpmb3IoO251bGwhPT1zOyl7c3dpdGNoKHMudGFnKXtjYXNlIDI3OmlmKGNDKHMudHlwZSkpe2xjPXMuc3RhdGVOb2RlLGx1PSExO2JyZWFrIGV9YnJlYWs7Y2FzZSA1OmxjPXMuc3RhdGVOb2RlLGx1PSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpsYz1zLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGx1PSEwO2JyZWFrIGV9cz1zLnJldHVybn1pZihudWxsPT09bGMpdGhyb3cgRXJyb3IobCgxNjApKTtsZihhLGksbyksbGM9bnVsbCxsdT0hMSxudWxsIT09KGE9by5hbHRlcm5hdGUpJiYoYS5yZXR1cm49bnVsbCksby5yZXR1cm49bnVsbH1pZigxMzg3OCZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10Oylsdih0LGUpLHQ9dC5zaWJsaW5nfXZhciBseT1udWxsO2Z1bmN0aW9uIGx2KGUsdCl7dmFyIG49ZS5hbHRlcm5hdGUscj1lLmZsYWdzO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmxnKHQsZSksbGIoZSksNCZyJiYoaTIoMyxlLGUucmV0dXJuKSxpMSgzLGUpLGkyKDUsZSxlLnJldHVybikpO2JyZWFrO2Nhc2UgMTpsZyh0LGUpLGxiKGUpLDUxMiZyJiYobG98fG51bGw9PT1ufHxpNihuLG4ucmV0dXJuKSksNjQmciYmbHImJm51bGwhPT0oZT1lLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShyPWUuY2FsbGJhY2tzKSYmKG49ZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzLGUuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsPT09bj9yOm4uY29uY2F0KHIpKTticmVhaztjYXNlIDI2OnZhciBvPWx5O2lmKGxnKHQsZSksbGIoZSksNTEyJnImJihsb3x8bnVsbD09PW58fGk2KG4sbi5yZXR1cm4pKSw0JnIpe3ZhciBhPW51bGwhPT1uP24ubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKHI9ZS5tZW1vaXplZFN0YXRlLG51bGw9PT1uKWlmKG51bGw9PT1yKWlmKG51bGw9PT1lLnN0YXRlTm9kZSl7ZTp7cj1lLnR5cGUsbj1lLm1lbW9pemVkUHJvcHMsbz1vLm93bmVyRG9jdW1lbnR8fG87dDpzd2l0Y2gocil7Y2FzZVwidGl0bGVcIjooIShhPW8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJ0aXRsZVwiKVswXSl8fGFbZUZdfHxhW2VEXXx8XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09YS5uYW1lc3BhY2VVUkl8fGEuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpJiYoYT1vLmNyZWF0ZUVsZW1lbnQociksby5oZWFkLmluc2VydEJlZm9yZShhLG8ucXVlcnlTZWxlY3RvcihcImhlYWQgPiB0aXRsZVwiKSkpLGN1KGEscixuKSxhW2VEXT1lLGVZKGEpLHI9YTticmVhayBlO2Nhc2VcImxpbmtcIjp2YXIgaT1jSihcImxpbmtcIixcImhyZWZcIixvKS5nZXQocisobi5ocmVmfHxcIlwiKSk7aWYoaSl7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspaWYoKGE9aVtzXSkuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKT09PShudWxsPT1uLmhyZWZ8fFwiXCI9PT1uLmhyZWY/bnVsbDpuLmhyZWYpJiZhLmdldEF0dHJpYnV0ZShcInJlbFwiKT09PShudWxsPT1uLnJlbD9udWxsOm4ucmVsKSYmYS5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKT09PShudWxsPT1uLnRpdGxlP251bGw6bi50aXRsZSkmJmEuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIik9PT0obnVsbD09bi5jcm9zc09yaWdpbj9udWxsOm4uY3Jvc3NPcmlnaW4pKXtpLnNwbGljZShzLDEpO2JyZWFrIHR9fWN1KGE9by5jcmVhdGVFbGVtZW50KHIpLHIsbiksby5oZWFkLmFwcGVuZENoaWxkKGEpO2JyZWFrO2Nhc2VcIm1ldGFcIjppZihpPWNKKFwibWV0YVwiLFwiY29udGVudFwiLG8pLmdldChyKyhuLmNvbnRlbnR8fFwiXCIpKSl7Zm9yKHM9MDtzPGkubGVuZ3RoO3MrKylpZigoYT1pW3NdKS5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpPT09KG51bGw9PW4uY29udGVudD9udWxsOlwiXCIrbi5jb250ZW50KSYmYS5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpPT09KG51bGw9PW4ubmFtZT9udWxsOm4ubmFtZSkmJmEuZ2V0QXR0cmlidXRlKFwicHJvcGVydHlcIik9PT0obnVsbD09bi5wcm9wZXJ0eT9udWxsOm4ucHJvcGVydHkpJiZhLmdldEF0dHJpYnV0ZShcImh0dHAtZXF1aXZcIik9PT0obnVsbD09bi5odHRwRXF1aXY/bnVsbDpuLmh0dHBFcXVpdikmJmEuZ2V0QXR0cmlidXRlKFwiY2hhcnNldFwiKT09PShudWxsPT1uLmNoYXJTZXQ/bnVsbDpuLmNoYXJTZXQpKXtpLnNwbGljZShzLDEpO2JyZWFrIHR9fWN1KGE9by5jcmVhdGVFbGVtZW50KHIpLHIsbiksby5oZWFkLmFwcGVuZENoaWxkKGEpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0NjgscikpfWFbZURdPWUsZVkoYSkscj1hfWUuc3RhdGVOb2RlPXJ9ZWxzZSBjMChvLGUudHlwZSxlLnN0YXRlTm9kZSk7ZWxzZSBlLnN0YXRlTm9kZT1jWShvLHIsZS5tZW1vaXplZFByb3BzKTtlbHNlIGEhPT1yPyhudWxsPT09YT9udWxsIT09bi5zdGF0ZU5vZGUmJihuPW4uc3RhdGVOb2RlKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pOmEuY291bnQtLSxudWxsPT09cj9jMChvLGUudHlwZSxlLnN0YXRlTm9kZSk6Y1kobyxyLGUubWVtb2l6ZWRQcm9wcykpOm51bGw9PT1yJiZudWxsIT09ZS5zdGF0ZU5vZGUmJmk4KGUsZS5tZW1vaXplZFByb3BzLG4ubWVtb2l6ZWRQcm9wcyl9YnJlYWs7Y2FzZSAyNzpsZyh0LGUpLGxiKGUpLDUxMiZyJiYobG98fG51bGw9PT1ufHxpNihuLG4ucmV0dXJuKSksbnVsbCE9PW4mJjQmciYmaTgoZSxlLm1lbW9pemVkUHJvcHMsbi5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6aWYobGcodCxlKSxsYihlKSw1MTImciYmKGxvfHxudWxsPT09bnx8aTYobixuLnJldHVybikpLDMyJmUuZmxhZ3Mpe289ZS5zdGF0ZU5vZGU7dHJ5e3RzKG8sXCJcIil9Y2F0Y2godCl7c1AoZSxlLnJldHVybix0KX19NCZyJiZudWxsIT1lLnN0YXRlTm9kZSYmKG89ZS5tZW1vaXplZFByb3BzLGk4KGUsbyxudWxsIT09bj9uLm1lbW9pemVkUHJvcHM6bykpLDEwMjQmciYmKGxhPSEwKTticmVhaztjYXNlIDY6aWYobGcodCxlKSxsYihlKSw0JnIpe2lmKG51bGw9PT1lLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihsKDE2MikpO3I9ZS5tZW1vaXplZFByb3BzLG49ZS5zdGF0ZU5vZGU7dHJ5e24ubm9kZVZhbHVlPXJ9Y2F0Y2godCl7c1AoZSxlLnJldHVybix0KX19YnJlYWs7Y2FzZSAzOmlmKGNRPW51bGwsbz1seSxseT1jUih0LmNvbnRhaW5lckluZm8pLGxnKHQsZSksbHk9byxsYihlKSw0JnImJm51bGwhPT1uJiZuLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXRyeXt1Tyh0LmNvbnRhaW5lckluZm8pfWNhdGNoKHQpe3NQKGUsZS5yZXR1cm4sdCl9bGEmJihsYT0hMSxmdW5jdGlvbiBlKHQpe2lmKDEwMjQmdC5zdWJ0cmVlRmxhZ3MpZm9yKHQ9dC5jaGlsZDtudWxsIT09dDspe3ZhciBuPXQ7ZShuKSw1PT09bi50YWcmJjEwMjQmbi5mbGFncyYmbi5zdGF0ZU5vZGUucmVzZXQoKSx0PXQuc2libGluZ319KGUpKTticmVhaztjYXNlIDQ6cj1seSxseT1jUihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsZyh0LGUpLGxiKGUpLGx5PXI7YnJlYWs7Y2FzZSAxMjpkZWZhdWx0OmxnKHQsZSksbGIoZSk7YnJlYWs7Y2FzZSAzMTpjYXNlIDE5OmxnKHQsZSksbGIoZSksNCZyJiZudWxsIT09KHI9ZS51cGRhdGVRdWV1ZSkmJihlLnVwZGF0ZVF1ZXVlPW51bGwsbG0oZSxyKSk7YnJlYWs7Y2FzZSAxMzpsZyh0LGUpLGxiKGUpLDgxOTImZS5jaGlsZC5mbGFncyYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSE9KG51bGwhPT1uJiZudWxsIT09bi5tZW1vaXplZFN0YXRlKSYmKGwwPWVyKCkpLDQmciYmbnVsbCE9PShyPWUudXBkYXRlUXVldWUpJiYoZS51cGRhdGVRdWV1ZT1udWxsLGxtKGUscikpO2JyZWFrO2Nhc2UgMjI6bz1udWxsIT09ZS5tZW1vaXplZFN0YXRlO3ZhciBjPW51bGwhPT1uJiZudWxsIT09bi5tZW1vaXplZFN0YXRlLHU9bHIsZD1sbztpZihscj11fHxvLGxvPWR8fGMsbGcodCxlKSxsbz1kLGxyPXUsbGIoZSksODE5MiZyKWU6Zm9yKCh0PWUuc3RhdGVOb2RlKS5fdmlzaWJpbGl0eT1vPy0yJnQuX3Zpc2liaWxpdHk6MXx0Ll92aXNpYmlsaXR5LG8mJihudWxsPT09bnx8Y3x8bHJ8fGxvfHxmdW5jdGlvbiBlKHQpe2Zvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXt2YXIgbj10O3N3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmkyKDQsbixuLnJldHVybiksZShuKTticmVhaztjYXNlIDE6aTYobixuLnJldHVybik7dmFyIHI9bi5zdGF0ZU5vZGU7XCJmdW5jdGlvblwiPT10eXBlb2Ygci5jb21wb25lbnRXaWxsVW5tb3VudCYmaTUobixuLnJldHVybixyKSxlKG4pO2JyZWFrO2Nhc2UgMjc6Y0Qobi5zdGF0ZU5vZGUpO2Nhc2UgMjY6Y2FzZSA1Omk2KG4sbi5yZXR1cm4pLGUobik7YnJlYWs7Y2FzZSAyMjpudWxsPT09bi5tZW1vaXplZFN0YXRlJiZlKG4pO2JyZWFrO2RlZmF1bHQ6ZShuKX10PXQuc2libGluZ319KGUpKSxuPW51bGwsdD1lOzspe2lmKDU9PT10LnRhZ3x8MjY9PT10LnRhZyl7aWYobnVsbD09PW4pe2M9bj10O3RyeXtpZihhPWMuc3RhdGVOb2RlLG8paT1hLnN0eWxlLFwiZnVuY3Rpb25cIj09dHlwZW9mIGkuc2V0UHJvcGVydHk/aS5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIixcIm5vbmVcIixcImltcG9ydGFudFwiKTppLmRpc3BsYXk9XCJub25lXCI7ZWxzZXtzPWMuc3RhdGVOb2RlO3ZhciBmPWMubWVtb2l6ZWRQcm9wcy5zdHlsZSxwPW51bGwhPWYmJmYuaGFzT3duUHJvcGVydHkoXCJkaXNwbGF5XCIpP2YuZGlzcGxheTpudWxsO3Muc3R5bGUuZGlzcGxheT1udWxsPT1wfHxcImJvb2xlYW5cIj09dHlwZW9mIHA/XCJcIjooXCJcIitwKS50cmltKCl9fWNhdGNoKGUpe3NQKGMsYy5yZXR1cm4sZSl9fX1lbHNlIGlmKDY9PT10LnRhZyl7aWYobnVsbD09PW4pe2M9dDt0cnl7Yy5zdGF0ZU5vZGUubm9kZVZhbHVlPW8/XCJcIjpjLm1lbW9pemVkUHJvcHN9Y2F0Y2goZSl7c1AoYyxjLnJldHVybixlKX19fWVsc2UgaWYoMTg9PT10LnRhZyl7aWYobnVsbD09PW4pe2M9dDt0cnl7dmFyIGg9Yy5zdGF0ZU5vZGU7bz9jayhoLCEwKTpjayhjLnN0YXRlTm9kZSwhMSl9Y2F0Y2goZSl7c1AoYyxjLnJldHVybixlKX19fWVsc2UgaWYoKDIyIT09dC50YWcmJjIzIT09dC50YWd8fG51bGw9PT10Lm1lbW9pemVkU3RhdGV8fHQ9PT1lKSYmbnVsbCE9PXQuY2hpbGQpe3QuY2hpbGQucmV0dXJuPXQsdD10LmNoaWxkO2NvbnRpbnVlfWlmKHQ9PT1lKWJyZWFrO2Zvcig7bnVsbD09PXQuc2libGluZzspe2lmKG51bGw9PT10LnJldHVybnx8dC5yZXR1cm49PT1lKWJyZWFrIGU7bj09PXQmJihuPW51bGwpLHQ9dC5yZXR1cm59bj09PXQmJihuPW51bGwpLHQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9NCZyJiZudWxsIT09KHI9ZS51cGRhdGVRdWV1ZSkmJm51bGwhPT0obj1yLnJldHJ5UXVldWUpJiYoci5yZXRyeVF1ZXVlPW51bGwsbG0oZSxuKSk7Y2FzZSAzMDpjYXNlIDIxOn19ZnVuY3Rpb24gbGIoZSl7dmFyIHQ9ZS5mbGFncztpZigyJnQpe3RyeXtmb3IodmFyIG4scj1lLnJldHVybjtudWxsIT09cjspe2lmKGk3KHIpKXtuPXI7YnJlYWt9cj1yLnJldHVybn1pZihudWxsPT1uKXRocm93IEVycm9yKGwoMTYwKSk7c3dpdGNoKG4udGFnKXtjYXNlIDI3OnZhciBvPW4uc3RhdGVOb2RlLGE9bGUoZSk7bHQoZSxhLG8pO2JyZWFrO2Nhc2UgNTp2YXIgaT1uLnN0YXRlTm9kZTszMiZuLmZsYWdzJiYodHMoaSxcIlwiKSxuLmZsYWdzJj0tMzMpO3ZhciBzPWxlKGUpO2x0KGUscyxpKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciBjPW4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sdT1sZShlKTshZnVuY3Rpb24gZSh0LG4scil7dmFyIG89dC50YWc7aWYoNT09PW98fDY9PT1vKXQ9dC5zdGF0ZU5vZGUsbj8oOT09PXIubm9kZVR5cGU/ci5ib2R5OlwiSFRNTFwiPT09ci5ub2RlTmFtZT9yLm93bmVyRG9jdW1lbnQuYm9keTpyKS5pbnNlcnRCZWZvcmUodCxuKTooKG49OT09PXIubm9kZVR5cGU/ci5ib2R5OlwiSFRNTFwiPT09ci5ub2RlTmFtZT9yLm93bmVyRG9jdW1lbnQuYm9keTpyKS5hcHBlbmRDaGlsZCh0KSxudWxsIT0ocj1yLl9yZWFjdFJvb3RDb250YWluZXIpfHxudWxsIT09bi5vbmNsaWNrfHwobi5vbmNsaWNrPXRnKSk7ZWxzZSBpZig0IT09byYmKDI3PT09byYmY0ModC50eXBlKSYmKHI9dC5zdGF0ZU5vZGUsbj1udWxsKSxudWxsIT09KHQ9dC5jaGlsZCkpKWZvcihlKHQsbixyKSx0PXQuc2libGluZztudWxsIT09dDspZSh0LG4sciksdD10LnNpYmxpbmd9KGUsdSxjKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGwoMTYxKSl9fWNhdGNoKHQpe3NQKGUsZS5yZXR1cm4sdCl9ZS5mbGFncyY9LTN9NDA5NiZ0JiYoZS5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIGxBKGUsdCl7aWYoODc3MiZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10OylscyhlLHQuYWx0ZXJuYXRlLHQpLHQ9dC5zaWJsaW5nfWZ1bmN0aW9uIGx4KGUsdCl7dmFyIG49bnVsbDtudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihuPWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksZT1udWxsLG51bGwhPT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYoZT10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGUhPT1uJiYobnVsbCE9ZSYmZS5yZWZDb3VudCsrLG51bGwhPW4mJnIyKG4pKX1mdW5jdGlvbiBsdyhlLHQpe2U9bnVsbCxudWxsIT09dC5hbHRlcm5hdGUmJihlPXQuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLCh0PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSkhPT1lJiYodC5yZWZDb3VudCsrLG51bGwhPWUmJnIyKGUpKX1mdW5jdGlvbiBsQyhlLHQsbixyKXtpZigxMDI1NiZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10OylsXyhlLHQsbixyKSx0PXQuc2libGluZ31mdW5jdGlvbiBsXyhlLHQsbixyKXt2YXIgbz10LmZsYWdzO3N3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpsQyhlLHQsbixyKSwyMDQ4Jm8mJmkxKDksdCk7YnJlYWs7Y2FzZSAxOmNhc2UgMzE6Y2FzZSAxMzpkZWZhdWx0OmxDKGUsdCxuLHIpO2JyZWFrO2Nhc2UgMzpsQyhlLHQsbixyKSwyMDQ4Jm8mJihlPW51bGwsbnVsbCE9PXQuYWx0ZXJuYXRlJiYoZT10LmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSwodD10Lm1lbW9pemVkU3RhdGUuY2FjaGUpIT09ZSYmKHQucmVmQ291bnQrKyxudWxsIT1lJiZyMihlKSkpO2JyZWFrO2Nhc2UgMTI6aWYoMjA0OCZvKXtsQyhlLHQsbixyKSxlPXQuc3RhdGVOb2RlO3RyeXt2YXIgYT10Lm1lbW9pemVkUHJvcHMsaT1hLmlkLGw9YS5vblBvc3RDb21taXQ7XCJmdW5jdGlvblwiPT10eXBlb2YgbCYmbChpLG51bGw9PT10LmFsdGVybmF0ZT9cIm1vdW50XCI6XCJ1cGRhdGVcIixlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiwtMCl9Y2F0Y2goZSl7c1AodCx0LnJldHVybixlKX19ZWxzZSBsQyhlLHQsbixyKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6YT10LnN0YXRlTm9kZSxpPXQuYWx0ZXJuYXRlLG51bGwhPT10Lm1lbW9pemVkU3RhdGU/MiZhLl92aXNpYmlsaXR5P2xDKGUsdCxuLHIpOmxrKGUsdCk6MiZhLl92aXNpYmlsaXR5P2xDKGUsdCxuLHIpOihhLl92aXNpYmlsaXR5fD0yLGZ1bmN0aW9uIGUodCxuLHIsbyxhKXtmb3IoYT1hJiYwIT0oMTAyNTYmbi5zdWJ0cmVlRmxhZ3MpLG49bi5jaGlsZDtudWxsIT09bjspe3ZhciBpPW4sbD1pLmZsYWdzO3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTplKHQsaSxyLG8sYSksaTEoOCxpKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6dmFyIHM9aS5zdGF0ZU5vZGU7bnVsbCE9PWkubWVtb2l6ZWRTdGF0ZT8yJnMuX3Zpc2liaWxpdHk/ZSh0LGkscixvLGEpOmxrKHQsaSk6KHMuX3Zpc2liaWxpdHl8PTIsZSh0LGkscixvLGEpKSxhJiYyMDQ4JmwmJmx4KGkuYWx0ZXJuYXRlLGkpO2JyZWFrO2Nhc2UgMjQ6ZSh0LGkscixvLGEpLGEmJjIwNDgmbCYmbHcoaS5hbHRlcm5hdGUsaSk7YnJlYWs7ZGVmYXVsdDplKHQsaSxyLG8sYSl9bj1uLnNpYmxpbmd9fShlLHQsbixyLDAhPSgxMDI1NiZ0LnN1YnRyZWVGbGFncykpKSwyMDQ4Jm8mJmx4KGksdCk7YnJlYWs7Y2FzZSAyNDpsQyhlLHQsbixyKSwyMDQ4Jm8mJmx3KHQuYWx0ZXJuYXRlLHQpfX1mdW5jdGlvbiBsayhlLHQpe2lmKDEwMjU2JnQuc3VidHJlZUZsYWdzKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXt2YXIgbj10LHI9bi5mbGFncztzd2l0Y2gobi50YWcpe2Nhc2UgMjI6bGsoZSxuKSwyMDQ4JnImJmx4KG4uYWx0ZXJuYXRlLG4pO2JyZWFrO2Nhc2UgMjQ6bGsoZSxuKSwyMDQ4JnImJmx3KG4uYWx0ZXJuYXRlLG4pO2JyZWFrO2RlZmF1bHQ6bGsoZSxuKX10PXQuc2libGluZ319dmFyIGxFPTgxOTI7ZnVuY3Rpb24gbGooZSl7aWYoZS5zdWJ0cmVlRmxhZ3MmbEUpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspbFMoZSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gbFMoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDI2OmxqKGUpLGUuZmxhZ3MmbEUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJmZ1bmN0aW9uKGUsdCxuKXtpZihudWxsPT09YzIpdGhyb3cgRXJyb3IobCg0NzUpKTt2YXIgcj1jMjtpZihcInN0eWxlc2hlZXRcIj09PXQudHlwZSYmKFwic3RyaW5nXCIhPXR5cGVvZiBuLm1lZGlhfHwhMSE9PW1hdGNoTWVkaWEobi5tZWRpYSkubWF0Y2hlcykmJjA9PSg0JnQuc3RhdGUubG9hZGluZykpe2lmKG51bGw9PT10Lmluc3RhbmNlKXt2YXIgbz1jcShuLmhyZWYpLGE9ZS5xdWVyeVNlbGVjdG9yKGNIKG8pKTtpZihhKXtudWxsIT09KGU9YS5fcCkmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRoZW4mJihyLmNvdW50Kysscj1jNC5iaW5kKHIpLGUudGhlbihyLHIpKSx0LnN0YXRlLmxvYWRpbmd8PTQsdC5pbnN0YW5jZT1hLGVZKGEpO3JldHVybn1hPWUub3duZXJEb2N1bWVudHx8ZSxuPWNWKG4pLChvPWNMLmdldChvKSkmJmNYKG4sbyksZVkoYT1hLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKTt2YXIgaT1hO2kuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtpLm9ubG9hZD1lLGkub25lcnJvcj10fSksY3UoYSxcImxpbmtcIixuKSx0Lmluc3RhbmNlPWF9bnVsbD09PXIuc3R5bGVzaGVldHMmJihyLnN0eWxlc2hlZXRzPW5ldyBNYXApLHIuc3R5bGVzaGVldHMuc2V0KHQsZSksKGU9dC5zdGF0ZS5wcmVsb2FkKSYmMD09KDMmdC5zdGF0ZS5sb2FkaW5nKSYmKHIuY291bnQrKyx0PWM0LmJpbmQociksZS5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLHQpLGUuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsdCkpfX0obHksZS5tZW1vaXplZFN0YXRlLGUubWVtb2l6ZWRQcm9wcyk7YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6bGooZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgdD1seTtseT1jUihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsaihlKSxseT10O2JyZWFrO2Nhc2UgMjI6bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT0odD1lLmFsdGVybmF0ZSkmJm51bGwhPT10Lm1lbW9pemVkU3RhdGU/KHQ9bEUsbEU9MHgxMDAwMDAwLGxqKGUpLGxFPXQpOmxqKGUpKX19ZnVuY3Rpb24gbE8oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PXQmJm51bGwhPT0oZT10LmNoaWxkKSl7dC5jaGlsZD1udWxsO2RvIHQ9ZS5zaWJsaW5nLGUuc2libGluZz1udWxsLGU9dDt3aGlsZShudWxsIT09ZSl9fWZ1bmN0aW9uIGxCKGUpe3ZhciB0PWUuZGVsZXRpb25zO2lmKDAhPSgxNiZlLmZsYWdzKSl7aWYobnVsbCE9PXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07bGw9cixsSShyLGUpfWxPKGUpfWlmKDEwMjU2JmUuc3VidHJlZUZsYWdzKWZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KWxQKGUpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIGxQKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpsQihlKSwyMDQ4JmUuZmxhZ3MmJmkyKDksZSxlLnJldHVybik7YnJlYWs7Y2FzZSAzOmNhc2UgMTI6ZGVmYXVsdDpsQihlKTticmVhaztjYXNlIDIyOnZhciB0PWUuc3RhdGVOb2RlO251bGwhPT1lLm1lbW9pemVkU3RhdGUmJjImdC5fdmlzaWJpbGl0eSYmKG51bGw9PT1lLnJldHVybnx8MTMhPT1lLnJldHVybi50YWcpPyh0Ll92aXNpYmlsaXR5Jj0tMyxmdW5jdGlvbiBlKHQpe3ZhciBuPXQuZGVsZXRpb25zO2lmKDAhPSgxNiZ0LmZsYWdzKSl7aWYobnVsbCE9PW4pZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBvPW5bcl07bGw9byxsSShvLHQpfWxPKHQpfWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXtzd2l0Y2goKG49dCkudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmkyKDgsbixuLnJldHVybiksZShuKTticmVhaztjYXNlIDIyOjImKHI9bi5zdGF0ZU5vZGUpLl92aXNpYmlsaXR5JiYoci5fdmlzaWJpbGl0eSY9LTMsZShuKSk7YnJlYWs7ZGVmYXVsdDplKG4pfXQ9dC5zaWJsaW5nfX0oZSkpOmxCKGUpfX1mdW5jdGlvbiBsSShlLHQpe2Zvcig7bnVsbCE9PWxsOyl7dmFyIG49bGw7c3dpdGNoKG4udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmkyKDgsbix0KTticmVhaztjYXNlIDIzOmNhc2UgMjI6aWYobnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wpe3ZhciByPW4ubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbDtudWxsIT1yJiZyLnJlZkNvdW50Kyt9YnJlYWs7Y2FzZSAyNDpyMihuLm1lbW9pemVkU3RhdGUuY2FjaGUpfWlmKG51bGwhPT0ocj1uLmNoaWxkKSlyLnJldHVybj1uLGxsPXI7ZWxzZSBmb3Iobj1lO251bGwhPT1sbDspe3ZhciBvPShyPWxsKS5zaWJsaW5nLGE9ci5yZXR1cm47aWYoIWZ1bmN0aW9uIGUodCl7dmFyIG49dC5hbHRlcm5hdGU7bnVsbCE9PW4mJih0LmFsdGVybmF0ZT1udWxsLGUobikpLHQuY2hpbGQ9bnVsbCx0LmRlbGV0aW9ucz1udWxsLHQuc2libGluZz1udWxsLDU9PT10LnRhZyYmbnVsbCE9PShuPXQuc3RhdGVOb2RlKSYmZXEobiksdC5zdGF0ZU5vZGU9bnVsbCx0LnJldHVybj1udWxsLHQuZGVwZW5kZW5jaWVzPW51bGwsdC5tZW1vaXplZFByb3BzPW51bGwsdC5tZW1vaXplZFN0YXRlPW51bGwsdC5wZW5kaW5nUHJvcHM9bnVsbCx0LnN0YXRlTm9kZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbH0ocikscj09PW4pe2xsPW51bGw7YnJlYWt9aWYobnVsbCE9PW8pe28ucmV0dXJuPWEsbGw9bzticmVha31sbD1hfX19dmFyIGxUPXtnZXRDYWNoZUZvclR5cGU6ZnVuY3Rpb24oZSl7dmFyIHQ9clkocjApLG49dC5kYXRhLmdldChlKTtyZXR1cm4gdm9pZCAwPT09biYmKG49ZSgpLHQuZGF0YS5zZXQoZSxuKSksbn0sY2FjaGVTaWduYWw6ZnVuY3Rpb24oKXtyZXR1cm4gclkocjApLmNvbnRyb2xsZXIuc2lnbmFsfX0sbHo9XCJmdW5jdGlvblwiPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcCxsRD0wLGxMPW51bGwsbE49bnVsbCxsUj0wLGxNPTAsbFo9bnVsbCxsVT0hMSxsRj0hMSxscT0hMSxsSD0wLGxWPTAsbCQ9MCxsVz0wLGxZPTAsbEs9MCxsWD0wLGxHPW51bGwsbFE9bnVsbCxsSj0hMSxsMD0wLGwxPTEvMCxsMj1udWxsLGw0PW51bGwsbDU9MCxsMz1udWxsLGw2PW51bGwsbDk9MCxsOD0wLGw3PW51bGwsc2U9bnVsbCxzdD0wLHNuPW51bGw7ZnVuY3Rpb24gc3IoKXtyZXR1cm4gMCE9KDImbEQpJiYwIT09bFI/bFImLWxSOm51bGwhPT1JLlQ/c1goKTplSSgpfWZ1bmN0aW9uIHNvKCl7MD09PWxLJiYobEs9MD09KDB4MjAwMDAwMDAmbFIpfHxyaj9lQygpOjB4MjAwMDAwMDApO3ZhciBlPW9SLmN1cnJlbnQ7cmV0dXJuIG51bGwhPT1lJiYoZS5mbGFnc3w9MzIpLGxLfWZ1bmN0aW9uIHNhKGUsdCxuKXsoZT09PWxMJiYoMj09PWxNfHw5PT09bE0pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KSYmKHNkKGUsMCksc3MoZSxsUixsSywhMSkpLGVFKGUsbiksKDA9PSgyJmxEKXx8ZSE9PWxMKSYmKGU9PT1sTCYmKDA9PSgyJmxEKSYmKGxXfD1uKSw0PT09bFYmJnNzKGUsbFIsbEssITEpKSxzcShlKSl9ZnVuY3Rpb24gc2koZSx0LG4pe2lmKDAhPSg2JmxEKSl0aHJvdyBFcnJvcihsKDMyNykpO2Zvcih2YXIgcj0hbiYmMD09KDEyNCZ0KSYmMD09KHQmZS5leHBpcmVkTGFuZXMpfHxldyhlLHQpLG89cj9mdW5jdGlvbihlLHQpe3ZhciBuPWxEO2xEfD0yO3ZhciByPXNoKCksbz1zbSgpO2xMIT09ZXx8bFIhPT10PyhsMj1udWxsLGwxPWVyKCkrNTAwLHNkKGUsdCkpOmxGPWV3KGUsdCk7ZTpmb3IoOzspdHJ5e2lmKDAhPT1sTSYmbnVsbCE9PWxOKXt0PWxOO3ZhciBhPWxaO3Q6c3dpdGNoKGxNKXtjYXNlIDE6bE09MCxsWj1udWxsLHNBKGUsdCxhLDEpO2JyZWFrO2Nhc2UgMjpjYXNlIDk6aWYob2woYSkpe2xNPTAsbFo9bnVsbCxzYih0KTticmVha310PWZ1bmN0aW9uKCl7MiE9PWxNJiY5IT09bE18fGxMIT09ZXx8KGxNPTcpLHNxKGUpfSxhLnRoZW4odCx0KTticmVhayBlO2Nhc2UgMzpsTT03O2JyZWFrIGU7Y2FzZSA0OmxNPTU7YnJlYWsgZTtjYXNlIDc6b2woYSk/KGxNPTAsbFo9bnVsbCxzYih0KSk6KGxNPTAsbFo9bnVsbCxzQShlLHQsYSw3KSk7YnJlYWs7Y2FzZSA1OnZhciBpPW51bGw7c3dpdGNoKGxOLnRhZyl7Y2FzZSAyNjppPWxOLm1lbW9pemVkU3RhdGU7Y2FzZSA1OmNhc2UgMjc6dmFyIHM9bE47aWYoaT9jMShpKTpzLnN0YXRlTm9kZS5jb21wbGV0ZSl7bE09MCxsWj1udWxsO3ZhciBjPXMuc2libGluZztpZihudWxsIT09YylsTj1jO2Vsc2V7dmFyIHU9cy5yZXR1cm47bnVsbCE9PXU/KGxOPXUsc3godSkpOmxOPW51bGx9YnJlYWsgdH19bE09MCxsWj1udWxsLHNBKGUsdCxhLDUpO2JyZWFrO2Nhc2UgNjpsTT0wLGxaPW51bGwsc0EoZSx0LGEsNik7YnJlYWs7Y2FzZSA4OnN1KCksbFY9NjticmVhayBlO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0NjIpKX19Zm9yKDtudWxsIT09bE4mJiFldCgpOylzdihsTik7YnJlYWt9Y2F0Y2godCl7c2YoZSx0KX1yZXR1cm4oclo9ck09bnVsbCxJLkg9cixJLkE9byxsRD1uLG51bGwhPT1sTik/MDoobEw9bnVsbCxsUj0wLG4yKCksbFYpfShlLHQpOnN5KGUsdCwhMCksYT1yOzspe2lmKDA9PT1vKWxGJiYhciYmc3MoZSx0LDAsITEpO2Vsc2V7aWYobj1lLmN1cnJlbnQuYWx0ZXJuYXRlLGEmJiFmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZTs7KXt2YXIgbj10LnRhZztpZigoMD09PW58fDExPT09bnx8MTU9PT1uKSYmMTYzODQmdC5mbGFncyYmbnVsbCE9PShuPXQudXBkYXRlUXVldWUpJiZudWxsIT09KG49bi5zdG9yZXMpKWZvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbz1uW3JdLGE9by5nZXRTbmFwc2hvdDtvPW8udmFsdWU7dHJ5e2lmKCFuayhhKCksbykpcmV0dXJuITF9Y2F0Y2goZSl7cmV0dXJuITF9fWlmKG49dC5jaGlsZCwxNjM4NCZ0LnN1YnRyZWVGbGFncyYmbnVsbCE9PW4pbi5yZXR1cm49dCx0PW47ZWxzZXtpZih0PT09ZSlicmVhaztmb3IoO251bGw9PT10LnNpYmxpbmc7KXtpZihudWxsPT09dC5yZXR1cm58fHQucmV0dXJuPT09ZSlyZXR1cm4hMDt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9fXJldHVybiEwfShuKSl7bz1zeShlLHQsITEpLGE9ITE7Y29udGludWV9aWYoMj09PW8pe2lmKGE9dCxlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJmEpdmFyIGk9MDtlbHNlIGk9MCE9KGk9LTB4MjAwMDAwMDEmZS5wZW5kaW5nTGFuZXMpP2k6MHgyMDAwMDAwMCZpPzB4MjAwMDAwMDA6MDtpZigwIT09aSl7dD1pO2U6e289bEc7dmFyIHM9ZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkO2lmKHMmJihzZChlLGkpLmZsYWdzfD0yNTYpLDIhPT0oaT1zeShlLGksITEpKSl7aWYobHEmJiFzKXtlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzfD1hLGxXfD1hLG89NDticmVhayBlfWE9bFEsbFE9byxudWxsIT09YSYmKG51bGw9PT1sUT9sUT1hOmxRLnB1c2guYXBwbHkobFEsYSkpfW89aX1pZihhPSExLDIhPT1vKWNvbnRpbnVlfX1pZigxPT09byl7c2QoZSwwKSxzcyhlLHQsMCwhMCk7YnJlYWt9ZTp7c3dpdGNoKHI9ZSxhPW8pe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IobCgzNDUpKTtjYXNlIDQ6aWYoKDQxOTQwNDgmdCkhPT10KWJyZWFrO2Nhc2UgNjpzcyhyLHQsbEssIWxVKTticmVhayBlO2Nhc2UgMjpsUT1udWxsO2JyZWFrO2Nhc2UgMzpjYXNlIDU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDMyOSkpfWlmKCgweDNjMDAwMDAmdCk9PT10JiYxMDwobz1sMCszMDAtZXIoKSkpe2lmKHNzKHIsdCxsSywhbFUpLDAhPT1leChyLDAsITApKWJyZWFrIGU7ci50aW1lb3V0SGFuZGxlPWN2KHNsLmJpbmQobnVsbCxyLG4sbFEsbDIsbEosdCxsSyxsVyxsWCxsVSxhLDIsLTAsMCksbyk7YnJlYWsgZX1zbChyLG4sbFEsbDIsbEosdCxsSyxsVyxsWCxsVSxhLDAsLTAsMCl9fWJyZWFrfXNxKGUpfWZ1bmN0aW9uIHNsKGUsdCxuLHIsbyxhLGkscyxjLHUsZCxmLHAsaCl7aWYoZS50aW1lb3V0SGFuZGxlPS0xLCg4MTkyJihmPXQuc3VidHJlZUZsYWdzKXx8MHgxMDAyMDAwPT0oMHgxMDAyMDAwJmYpKSYmKGMyPXtzdHlsZXNoZWV0czpudWxsLGNvdW50OjAsdW5zdXNwZW5kOnRnfSxsUyh0KSxudWxsIT09KGY9ZnVuY3Rpb24oKXtpZihudWxsPT09YzIpdGhyb3cgRXJyb3IobCg0NzUpKTt2YXIgZT1jMjtyZXR1cm4gZS5zdHlsZXNoZWV0cyYmMD09PWUuY291bnQmJmMzKGUsZS5zdHlsZXNoZWV0cyksMDxlLmNvdW50P2Z1bmN0aW9uKHQpe3ZhciBuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihlLnN0eWxlc2hlZXRzJiZjMyhlLGUuc3R5bGVzaGVldHMpLGUudW5zdXNwZW5kKXt2YXIgdD1lLnVuc3VzcGVuZDtlLnVuc3VzcGVuZD1udWxsLHQoKX19LDZlNCk7cmV0dXJuIGUudW5zdXNwZW5kPXQsZnVuY3Rpb24oKXtlLnVuc3VzcGVuZD1udWxsLGNsZWFyVGltZW91dChuKX19Om51bGx9KCkpKSl7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PWYoc0MuYmluZChudWxsLGUsdCxhLG4scixvLGkscyxjLGQsMSxwLGgpKSxzcyhlLGEsaSwhdSk7cmV0dXJufXNDKGUsdCxhLG4scixvLGkscyxjKX1mdW5jdGlvbiBzcyhlLHQsbixyKXt0Jj1+bFksdCY9fmxXLGUuc3VzcGVuZGVkTGFuZXN8PXQsZS5waW5nZWRMYW5lcyY9fnQsciYmKGUud2FybUxhbmVzfD10KSxyPWUuZXhwaXJhdGlvblRpbWVzO2Zvcih2YXIgbz10OzA8bzspe3ZhciBhPTMxLWVtKG8pLGk9MTw8YTtyW2FdPS0xLG8mPX5pfTAhPT1uJiZlaihlLG4sdCl9ZnVuY3Rpb24gc2MoKXtyZXR1cm4gMCE9KDYmbEQpfHwoc0goMCwhMSksITEpfWZ1bmN0aW9uIHN1KCl7aWYobnVsbCE9PWxOKXtpZigwPT09bE0pdmFyIGU9bE4ucmV0dXJuO2Vsc2UgZT1sTixyWj1yTT1udWxsLGFuKGUpLG9wPW51bGwsb2g9MCxlPWxOO2Zvcig7bnVsbCE9PWU7KWkwKGUuYWx0ZXJuYXRlLGUpLGU9ZS5yZXR1cm47bE49bnVsbH19ZnVuY3Rpb24gc2QoZSx0KXt2YXIgbj1lLnRpbWVvdXRIYW5kbGU7LTEhPT1uJiYoZS50aW1lb3V0SGFuZGxlPS0xLGNiKG4pKSxudWxsIT09KG49ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KSYmKGUuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsLG4oKSksc3UoKSxsTD1lLGxOPW49cm4oZS5jdXJyZW50LG51bGwpLGxSPXQsbE09MCxsWj1udWxsLGxVPSExLGxGPWV3KGUsdCksbHE9ITEsbFg9bEs9bFk9bFc9bCQ9bFY9MCxsUT1sRz1udWxsLGxKPSExLDAhPSg4JnQpJiYodHw9MzImdCk7dmFyIHI9ZS5lbnRhbmdsZWRMYW5lcztpZigwIT09cilmb3IoZT1lLmVudGFuZ2xlbWVudHMsciY9dDswPHI7KXt2YXIgbz0zMS1lbShyKSxhPTE8PG87dHw9ZVtvXSxyJj1+YX1yZXR1cm4gbEg9dCxuMigpLG59ZnVuY3Rpb24gc2YoZSx0KXtvWT1udWxsLEkuSD1pZSx0PT09b3J8fHQ9PT1vYT8odD1vZCgpLGxNPTMpOnQ9PT1vbz8odD1vZCgpLGxNPTQpOmxNPXQ9PT1pYj84Om51bGwhPT10JiZcIm9iamVjdFwiPT10eXBlb2YgdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgdC50aGVuPzY6MSxsWj10LG51bGw9PT1sTiYmKGxWPTEsaWgoZSxydSh0LGUuY3VycmVudCkpKX1mdW5jdGlvbiBzcCgpe3ZhciBlPW9SLmN1cnJlbnQ7cmV0dXJuIG51bGw9PT1lfHwoKDQxOTQwNDgmbFIpPT09bFI/bnVsbD09PW9NOigoMHgzYzAwMDAwJmxSKT09PWxSfHwwIT0oMHgyMDAwMDAwMCZsUikpJiZlPT09b00pfWZ1bmN0aW9uIHNoKCl7dmFyIGU9SS5IO3JldHVybiBJLkg9aWUsbnVsbD09PWU/aWU6ZX1mdW5jdGlvbiBzbSgpe3ZhciBlPUkuQTtyZXR1cm4gSS5BPWxULGV9ZnVuY3Rpb24gc2coKXtsVj00LGxVfHwoNDE5NDA0OCZsUikhPT1sUiYmbnVsbCE9PW9SLmN1cnJlbnR8fChsRj0hMCksMD09KDB4N2ZmZmZmZiZsJCkmJjA9PSgweDdmZmZmZmYmbFcpfHxudWxsPT09bEx8fHNzKGxMLGxSLGxLLCExKX1mdW5jdGlvbiBzeShlLHQsbil7dmFyIHI9bEQ7bER8PTI7dmFyIG89c2goKSxhPXNtKCk7KGxMIT09ZXx8bFIhPT10KSYmKGwyPW51bGwsc2QoZSx0KSksdD0hMTt2YXIgaT1sVjtlOmZvcig7Oyl0cnl7aWYoMCE9PWxNJiZudWxsIT09bE4pe3ZhciBsPWxOLHM9bFo7c3dpdGNoKGxNKXtjYXNlIDg6c3UoKSxpPTY7YnJlYWsgZTtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6bnVsbD09PW9SLmN1cnJlbnQmJih0PSEwKTt2YXIgYz1sTTtpZihsTT0wLGxaPW51bGwsc0EoZSxsLHMsYyksbiYmbEYpe2k9MDticmVhayBlfWJyZWFrO2RlZmF1bHQ6Yz1sTSxsTT0wLGxaPW51bGwsc0EoZSxsLHMsYyl9fShmdW5jdGlvbigpe2Zvcig7bnVsbCE9PWxOOylzdihsTil9KSgpLGk9bFY7YnJlYWt9Y2F0Y2godCl7c2YoZSx0KX1yZXR1cm4gdCYmZS5zaGVsbFN1c3BlbmRDb3VudGVyKyssclo9ck09bnVsbCxsRD1yLEkuSD1vLEkuQT1hLG51bGw9PT1sTiYmKGxMPW51bGwsbFI9MCxuMigpKSxpfWZ1bmN0aW9uIHN2KGUpe3ZhciB0PWlXKGUuYWx0ZXJuYXRlLGUsbEgpO2UubWVtb2l6ZWRQcm9wcz1lLnBlbmRpbmdQcm9wcyxudWxsPT09dD9zeChlKTpsTj10fWZ1bmN0aW9uIHNiKGUpe3ZhciB0PWUsbj10LmFsdGVybmF0ZTtzd2l0Y2godC50YWcpe2Nhc2UgMTU6Y2FzZSAwOnQ9aUkobix0LHQucGVuZGluZ1Byb3BzLHQudHlwZSx2b2lkIDAsbFIpO2JyZWFrO2Nhc2UgMTE6dD1pSShuLHQsdC5wZW5kaW5nUHJvcHMsdC50eXBlLnJlbmRlcix0LnJlZixsUik7YnJlYWs7Y2FzZSA1OmFuKHQpO2RlZmF1bHQ6aTAobix0KSx0PWlXKG4sdD1sTj1ycih0LGxIKSxsSCl9ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT10P3N4KGUpOmxOPXR9ZnVuY3Rpb24gc0EoZSx0LG4scil7clo9ck09bnVsbCxhbih0KSxvcD1udWxsLG9oPTA7dmFyIG89dC5yZXR1cm47dHJ5e2lmKGZ1bmN0aW9uKGUsdCxuLHIsbyl7aWYobi5mbGFnc3w9MzI3NjgsbnVsbCE9PXImJlwib2JqZWN0XCI9PXR5cGVvZiByJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLnRoZW4pe2lmKG51bGwhPT0odD1uLmFsdGVybmF0ZSkmJnJWKHQsbixvLCEwKSxudWxsIT09KG49b1IuY3VycmVudCkpe3N3aXRjaChuLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOnJldHVybiBudWxsPT09b00/c2coKTpudWxsPT09bi5hbHRlcm5hdGUmJjA9PT1sViYmKGxWPTMpLG4uZmxhZ3MmPS0yNTcsbi5mbGFnc3w9NjU1MzYsbi5sYW5lcz1vLHI9PT1vaT9uLmZsYWdzfD0xNjM4NDoobnVsbD09PSh0PW4udXBkYXRlUXVldWUpP24udXBkYXRlUXVldWU9bmV3IFNldChbcl0pOnQuYWRkKHIpLHNJKGUscixvKSksITE7Y2FzZSAyMjpyZXR1cm4gbi5mbGFnc3w9NjU1MzYscj09PW9pP24uZmxhZ3N8PTE2Mzg0OihudWxsPT09KHQ9bi51cGRhdGVRdWV1ZSk/KHQ9e3RyYW5zaXRpb25zOm51bGwsbWFya2VySW5zdGFuY2VzOm51bGwscmV0cnlRdWV1ZTpuZXcgU2V0KFtyXSl9LG4udXBkYXRlUXVldWU9dCk6bnVsbD09PShuPXQucmV0cnlRdWV1ZSk/dC5yZXRyeVF1ZXVlPW5ldyBTZXQoW3JdKTpuLmFkZChyKSxzSShlLHIsbykpLCExfXRocm93IEVycm9yKGwoNDM1LG4udGFnKSl9cmV0dXJuIHNJKGUscixvKSxzZygpLCExfWlmKHJqKXJldHVybiBudWxsIT09KHQ9b1IuY3VycmVudCk/KDA9PSg2NTUzNiZ0LmZsYWdzKSYmKHQuZmxhZ3N8PTI1NiksdC5mbGFnc3w9NjU1MzYsdC5sYW5lcz1vLHIhPT1yQiYmck4ocnUoZT1FcnJvcihsKDQyMikse2NhdXNlOnJ9KSxuKSkpOihyIT09ckImJnJOKHJ1KHQ9RXJyb3IobCg0MjMpLHtjYXVzZTpyfSksbikpLGU9ZS5jdXJyZW50LmFsdGVybmF0ZSxlLmZsYWdzfD02NTUzNixvJj0tbyxlLmxhbmVzfD1vLHI9cnUocixuKSxvPWlnKGUuc3RhdGVOb2RlLHIsbyksb2ooZSxvKSw0IT09bFYmJihsVj0yKSksITE7dmFyIGE9RXJyb3IobCg1MjApLHtjYXVzZTpyfSk7aWYoYT1ydShhLG4pLG51bGw9PT1sRz9sRz1bYV06bEcucHVzaChhKSw0IT09bFYmJihsVj0yKSxudWxsPT09dClyZXR1cm4hMDtyPXJ1KHIsbiksbj10O2Rve3N3aXRjaChuLnRhZyl7Y2FzZSAzOnJldHVybiBuLmZsYWdzfD02NTUzNixlPW8mLW8sbi5sYW5lc3w9ZSxlPWlnKG4uc3RhdGVOb2RlLHIsZSksb2oobixlKSwhMTtjYXNlIDE6aWYodD1uLnR5cGUsYT1uLnN0YXRlTm9kZSwwPT0oMTI4Jm4uZmxhZ3MpJiYoXCJmdW5jdGlvblwiPT10eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT1hJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PWw0fHwhbDQuaGFzKGEpKSkpcmV0dXJuIG4uZmxhZ3N8PTY1NTM2LG8mPS1vLG4ubGFuZXN8PW8saXYobz1peShvKSxlLG4sciksb2oobixvKSwhMX1uPW4ucmV0dXJufXdoaWxlKG51bGwhPT1uKTtyZXR1cm4hMX0oZSxvLHQsbixsUikpe2xWPTEsaWgoZSxydShuLGUuY3VycmVudCkpLGxOPW51bGw7cmV0dXJufX1jYXRjaCh0KXtpZihudWxsIT09byl0aHJvdyBsTj1vLHQ7bFY9MSxpaChlLHJ1KG4sZS5jdXJyZW50KSksbE49bnVsbDtyZXR1cm59MzI3NjgmdC5mbGFncz8ocmp8fDE9PT1yP2U9ITA6bEZ8fDAhPSgweDIwMDAwMDAwJmxSKT9lPSExOihsVT1lPSEwLCgyPT09cnx8OT09PXJ8fDM9PT1yfHw2PT09cikmJm51bGwhPT0ocj1vUi5jdXJyZW50KSYmMTM9PT1yLnRhZyYmKHIuZmxhZ3N8PTE2Mzg0KSksc3codCxlKSk6c3godCl9ZnVuY3Rpb24gc3goZSl7dmFyIHQ9ZTtkb3tpZigwIT0oMzI3NjgmdC5mbGFncykpcmV0dXJuIHZvaWQgc3codCxsVSk7ZT10LnJldHVybjt2YXIgbj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dC5wZW5kaW5nUHJvcHM7c3dpdGNoKHJDKHQpLHQudGFnKXtjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OmNhc2UgMTpyZXR1cm4gaUoodCksbnVsbDtjYXNlIDM6cmV0dXJuIG49dC5zdGF0ZU5vZGUscj1udWxsLG51bGwhPT1lJiYocj1lLm1lbW9pemVkU3RhdGUuY2FjaGUpLHQubWVtb2l6ZWRTdGF0ZS5jYWNoZSE9PXImJih0LmZsYWdzfD0yMDQ4KSxyRihyMCksVigpLG4ucGVuZGluZ0NvbnRleHQmJihuLmNvbnRleHQ9bi5wZW5kaW5nQ29udGV4dCxuLnBlbmRpbmdDb250ZXh0PW51bGwpLChudWxsPT09ZXx8bnVsbD09PWUuY2hpbGQpJiYocnoodCk/aVkodCk6bnVsbD09PWV8fGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJjA9PSgyNTYmdC5mbGFncyl8fCh0LmZsYWdzfD0xMDI0LHJMKCkpKSxpSih0KSxudWxsO2Nhc2UgMjY6dmFyIG89dC50eXBlLGE9dC5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsPT09ZT8oaVkodCksbnVsbCE9PWE/KGlKKHQpLGlYKHQsYSkpOihpSih0KSxpSyh0LG8sbnVsbCxyLG4pKSk6YT9hIT09ZS5tZW1vaXplZFN0YXRlPyhpWSh0KSxpSih0KSxpWCh0LGEpKTooaUoodCksdC5mbGFncyY9LTB4MTAwMDAwMSk6KChlPWUubWVtb2l6ZWRQcm9wcykhPT1yJiZpWSh0KSxpSih0KSxpSyh0LG8sZSxyLG4pKSxudWxsO2Nhc2UgMjc6aWYoVyh0KSxuPUYuY3VycmVudCxvPXQudHlwZSxudWxsIT09ZSYmbnVsbCE9dC5zdGF0ZU5vZGUpZS5tZW1vaXplZFByb3BzIT09ciYmaVkodCk7ZWxzZXtpZighcil7aWYobnVsbD09PXQuc3RhdGVOb2RlKXRocm93IEVycm9yKGwoMTY2KSk7cmV0dXJuIGlKKHQpLG51bGx9ZT1aLmN1cnJlbnQscnoodCk/ckkodCxlKToodC5zdGF0ZU5vZGU9ZT1jeihvLHIsbiksaVkodCkpfXJldHVybiBpSih0KSxudWxsO2Nhc2UgNTppZihXKHQpLG89dC50eXBlLG51bGwhPT1lJiZudWxsIT10LnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpWSh0KTtlbHNle2lmKCFyKXtpZihudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IobCgxNjYpKTtyZXR1cm4gaUoodCksbnVsbH1pZihhPVouY3VycmVudCxyeih0KSlySSh0LGEpO2Vsc2V7dmFyIGk9Y3AoRi5jdXJyZW50KTtzd2l0Y2goYSl7Y2FzZSAxOmE9aS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLG8pO2JyZWFrO2Nhc2UgMjphPWkuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLG8pO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKG8pe2Nhc2VcInN2Z1wiOmE9aS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLG8pO2JyZWFrO2Nhc2VcIm1hdGhcIjphPWkuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLG8pO2JyZWFrO2Nhc2VcInNjcmlwdFwiOihhPWkuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuaW5uZXJIVE1MPVwiPHNjcmlwdD48XFwvc2NyaXB0PlwiLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOmE9XCJzdHJpbmdcIj09dHlwZW9mIHIuaXM/aS5jcmVhdGVFbGVtZW50KFwic2VsZWN0XCIse2lzOnIuaXN9KTppLmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIiksci5tdWx0aXBsZT9hLm11bHRpcGxlPSEwOnIuc2l6ZSYmKGEuc2l6ZT1yLnNpemUpO2JyZWFrO2RlZmF1bHQ6YT1cInN0cmluZ1wiPT10eXBlb2Ygci5pcz9pLmNyZWF0ZUVsZW1lbnQobyx7aXM6ci5pc30pOmkuY3JlYXRlRWxlbWVudChvKX19YVtlRF09dCxhW2VMXT1yO2U6Zm9yKGk9dC5jaGlsZDtudWxsIT09aTspe2lmKDU9PT1pLnRhZ3x8Nj09PWkudGFnKWEuYXBwZW5kQ2hpbGQoaS5zdGF0ZU5vZGUpO2Vsc2UgaWYoNCE9PWkudGFnJiYyNyE9PWkudGFnJiZudWxsIT09aS5jaGlsZCl7aS5jaGlsZC5yZXR1cm49aSxpPWkuY2hpbGQ7Y29udGludWV9aWYoaT09PXQpYnJlYWs7Zm9yKDtudWxsPT09aS5zaWJsaW5nOyl7aWYobnVsbD09PWkucmV0dXJufHxpLnJldHVybj09PXQpYnJlYWsgZTtpPWkucmV0dXJufWkuc2libGluZy5yZXR1cm49aS5yZXR1cm4saT1pLnNpYmxpbmd9c3dpdGNoKHQuc3RhdGVOb2RlPWEsY3UoYSxvLHIpLG8pe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjpyPSEhci5hdXRvRm9jdXM7YnJlYWs7Y2FzZVwiaW1nXCI6cj0hMDticmVhaztkZWZhdWx0OnI9ITF9ciYmaVkodCl9fXJldHVybiBpSih0KSxpSyh0LHQudHlwZSxudWxsPT09ZT9udWxsOmUubWVtb2l6ZWRQcm9wcyx0LnBlbmRpbmdQcm9wcyxuKSxudWxsO2Nhc2UgNjppZihlJiZudWxsIT10LnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpWSh0KTtlbHNle2lmKFwic3RyaW5nXCIhPXR5cGVvZiByJiZudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IobCgxNjYpKTtpZihlPUYuY3VycmVudCxyeih0KSl7aWYoZT10LnN0YXRlTm9kZSxuPXQubWVtb2l6ZWRQcm9wcyxyPW51bGwsbnVsbCE9PShvPXJrKSlzd2l0Y2goby50YWcpe2Nhc2UgMjc6Y2FzZSA1OnI9by5tZW1vaXplZFByb3BzfWVbZURdPXQsKGU9ISEoZS5ub2RlVmFsdWU9PT1ufHxudWxsIT09ciYmITA9PT1yLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x8Y2woZS5ub2RlVmFsdWUsbikpKXx8clAodCwhMCl9ZWxzZShlPWNwKGUpLmNyZWF0ZVRleHROb2RlKHIpKVtlRF09dCx0LnN0YXRlTm9kZT1lfXJldHVybiBpSih0KSxudWxsO2Nhc2UgMzE6aWYobj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpe2lmKHI9cnoodCksbnVsbCE9PW4pe2lmKG51bGw9PT1lKXtpZighcil0aHJvdyBFcnJvcihsKDMxOCkpO2lmKCEoZT1udWxsIT09KGU9dC5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IobCg1NTcpKTtlW2VEXT10fWVsc2UgckQoKSwwPT0oMTI4JnQuZmxhZ3MpJiYodC5tZW1vaXplZFN0YXRlPW51bGwpLHQuZmxhZ3N8PTQ7aUoodCksZT0hMX1lbHNlIG49ckwoKSxudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmKGUubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnM9biksZT0hMDtpZighZSl7aWYoMjU2JnQuZmxhZ3MpcmV0dXJuIG9IKHQpLHQ7cmV0dXJuIG9IKHQpLG51bGx9aWYoMCE9KDEyOCZ0LmZsYWdzKSl0aHJvdyBFcnJvcihsKDU1OCkpfXJldHVybiBpSih0KSxudWxsO2Nhc2UgMTM6aWYocj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYobz1yeih0KSxudWxsIT09ciYmbnVsbCE9PXIuZGVoeWRyYXRlZCl7aWYobnVsbD09PWUpe2lmKCFvKXRocm93IEVycm9yKGwoMzE4KSk7aWYoIShvPW51bGwhPT0obz10Lm1lbW9pemVkU3RhdGUpP28uZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihsKDMxNykpO29bZURdPXR9ZWxzZSByRCgpLDA9PSgxMjgmdC5mbGFncykmJih0Lm1lbW9pemVkU3RhdGU9bnVsbCksdC5mbGFnc3w9NDtpSih0KSxvPSExfWVsc2Ugbz1yTCgpLG51bGwhPT1lJiZudWxsIT09ZS5tZW1vaXplZFN0YXRlJiYoZS5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1vKSxvPSEwO2lmKCFvKXtpZigyNTYmdC5mbGFncylyZXR1cm4gb0godCksdDtyZXR1cm4gb0godCksbnVsbH19aWYob0godCksMCE9KDEyOCZ0LmZsYWdzKSlyZXR1cm4gdC5sYW5lcz1uLHQ7cmV0dXJuIG49bnVsbCE9PXIsZT1udWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSxuJiYocj10LmNoaWxkLG89bnVsbCxudWxsIT09ci5hbHRlcm5hdGUmJm51bGwhPT1yLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihvPXIuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGE9bnVsbCxudWxsIT09ci5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKGE9ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxhIT09byYmKHIuZmxhZ3N8PTIwNDgpKSxuIT09ZSYmbiYmKHQuY2hpbGQuZmxhZ3N8PTgxOTIpLGlHKHQsdC51cGRhdGVRdWV1ZSksaUoodCksbnVsbDtjYXNlIDQ6cmV0dXJuIFYoKSxudWxsPT09ZSYmczkodC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksaUoodCksbnVsbDtjYXNlIDEwOnJldHVybiByRih0LnR5cGUpLGlKKHQpLG51bGw7Y2FzZSAxOTppZihSKG9WKSxudWxsPT09KHI9dC5tZW1vaXplZFN0YXRlKSlyZXR1cm4gaUoodCksbnVsbDtpZihvPTAhPSgxMjgmdC5mbGFncyksbnVsbD09PShhPXIucmVuZGVyaW5nKSlpZihvKWlRKHIsITEpO2Vsc2V7aWYoMCE9PWxWfHxudWxsIT09ZSYmMCE9KDEyOCZlLmZsYWdzKSlmb3IoZT10LmNoaWxkO251bGwhPT1lOyl7aWYobnVsbCE9PShhPW8kKGUpKSl7Zm9yKHQuZmxhZ3N8PTEyOCxpUShyLCExKSx0LnVwZGF0ZVF1ZXVlPWU9YS51cGRhdGVRdWV1ZSxpRyh0LGUpLHQuc3VidHJlZUZsYWdzPTAsZT1uLG49dC5jaGlsZDtudWxsIT09bjspcnIobixlKSxuPW4uc2libGluZztyZXR1cm4gTShvViwxJm9WLmN1cnJlbnR8MikscmomJnJBKHQsci50cmVlRm9ya0NvdW50KSx0LmNoaWxkfWU9ZS5zaWJsaW5nfW51bGwhPT1yLnRhaWwmJmVyKCk+bDEmJih0LmZsYWdzfD0xMjgsbz0hMCxpUShyLCExKSx0LmxhbmVzPTQxOTQzMDQpfWVsc2V7aWYoIW8paWYobnVsbCE9PShlPW8kKGEpKSl7aWYodC5mbGFnc3w9MTI4LG89ITAsdC51cGRhdGVRdWV1ZT1lPWUudXBkYXRlUXVldWUsaUcodCxlKSxpUShyLCEwKSxudWxsPT09ci50YWlsJiZcImhpZGRlblwiPT09ci50YWlsTW9kZSYmIWEuYWx0ZXJuYXRlJiYhcmopcmV0dXJuIGlKKHQpLG51bGx9ZWxzZSAyKmVyKCktci5yZW5kZXJpbmdTdGFydFRpbWU+bDEmJjB4MjAwMDAwMDAhPT1uJiYodC5mbGFnc3w9MTI4LG89ITAsaVEociwhMSksdC5sYW5lcz00MTk0MzA0KTtyLmlzQmFja3dhcmRzPyhhLnNpYmxpbmc9dC5jaGlsZCx0LmNoaWxkPWEpOihudWxsIT09KGU9ci5sYXN0KT9lLnNpYmxpbmc9YTp0LmNoaWxkPWEsci5sYXN0PWEpfWlmKG51bGwhPT1yLnRhaWwpcmV0dXJuIGU9ci50YWlsLHIucmVuZGVyaW5nPWUsci50YWlsPWUuc2libGluZyxyLnJlbmRlcmluZ1N0YXJ0VGltZT1lcigpLGUuc2libGluZz1udWxsLG49b1YuY3VycmVudCxNKG9WLG8/MSZufDI6MSZuKSxyaiYmckEodCxyLnRyZWVGb3JrQ291bnQpLGU7cmV0dXJuIGlKKHQpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvSCh0KSxvTigpLHI9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSxudWxsIT09ZT9udWxsIT09ZS5tZW1vaXplZFN0YXRlIT09ciYmKHQuZmxhZ3N8PTgxOTIpOnImJih0LmZsYWdzfD04MTkyKSxyPzAhPSgweDIwMDAwMDAwJm4pJiYwPT0oMTI4JnQuZmxhZ3MpJiYoaUoodCksNiZ0LnN1YnRyZWVGbGFncyYmKHQuZmxhZ3N8PTgxOTIpKTppSih0KSxudWxsIT09KG49dC51cGRhdGVRdWV1ZSkmJmlHKHQsbi5yZXRyeVF1ZXVlKSxuPW51bGwsbnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYobj1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLHI9bnVsbCxudWxsIT09dC5tZW1vaXplZFN0YXRlJiZudWxsIT09dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKHI9dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxyIT09biYmKHQuZmxhZ3N8PTIwNDgpLG51bGwhPT1lJiZSKHI3KSxudWxsO2Nhc2UgMjQ6cmV0dXJuIG49bnVsbCxudWxsIT09ZSYmKG49ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1uJiYodC5mbGFnc3w9MjA0OCksckYocjApLGlKKHQpLG51bGw7Y2FzZSAyNTpjYXNlIDMwOnJldHVybiBudWxsfXRocm93IEVycm9yKGwoMTU2LHQudGFnKSl9KHQuYWx0ZXJuYXRlLHQsbEgpO2lmKG51bGwhPT1uKXtsTj1uO3JldHVybn1pZihudWxsIT09KHQ9dC5zaWJsaW5nKSl7bE49dDtyZXR1cm59bE49dD1lfXdoaWxlKG51bGwhPT10KTswPT09bFYmJihsVj01KX1mdW5jdGlvbiBzdyhlLHQpe2Rve3ZhciBuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHJDKHQpLHQudGFnKXtjYXNlIDE6cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMzpyZXR1cm4gckYocjApLFYoKSwwIT0oNjU1MzYmKGU9dC5mbGFncykpJiYwPT0oMTI4JmUpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6cmV0dXJuIFcodCksbnVsbDtjYXNlIDMxOmlmKG51bGwhPT10Lm1lbW9pemVkU3RhdGUpe2lmKG9IKHQpLG51bGw9PT10LmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDM0MCkpO3JEKCl9cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMTM6aWYob0godCksbnVsbCE9PShlPXQubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1lLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT10LmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDM0MCkpO3JEKCl9cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMTk6cmV0dXJuIFIob1YpLG51bGw7Y2FzZSA0OnJldHVybiBWKCksbnVsbDtjYXNlIDEwOnJldHVybiByRih0LnR5cGUpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvSCh0KSxvTigpLG51bGwhPT1lJiZSKHI3KSw2NTUzNiYoZT10LmZsYWdzKT8odC5mbGFncz0tNjU1MzcmZXwxMjgsdCk6bnVsbDtjYXNlIDI0OnJldHVybiByRihyMCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX0oZS5hbHRlcm5hdGUsZSk7aWYobnVsbCE9PW4pe24uZmxhZ3MmPTMyNzY3LGxOPW47cmV0dXJufWlmKG51bGwhPT0obj1lLnJldHVybikmJihuLmZsYWdzfD0zMjc2OCxuLnN1YnRyZWVGbGFncz0wLG4uZGVsZXRpb25zPW51bGwpLCF0JiZudWxsIT09KGU9ZS5zaWJsaW5nKSl7bE49ZTtyZXR1cm59bE49ZT1ufXdoaWxlKG51bGwhPT1lKTtsVj02LGxOPW51bGx9ZnVuY3Rpb24gc0MoZSx0LG4scixvLGEsaSxzLGMpe2UuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsO2RvIHNTKCk7d2hpbGUoMCE9PWw1KTtpZigwIT0oNiZsRCkpdGhyb3cgRXJyb3IobCgzMjcpKTtpZihudWxsIT09dCl7aWYodD09PWUuY3VycmVudCl0aHJvdyBFcnJvcihsKDE3NykpO2lmKCFmdW5jdGlvbihlLHQsbixyLG8sYSl7dmFyIGk9ZS5wZW5kaW5nTGFuZXM7ZS5wZW5kaW5nTGFuZXM9bixlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wLGUud2FybUxhbmVzPTAsZS5leHBpcmVkTGFuZXMmPW4sZS5lbnRhbmdsZWRMYW5lcyY9bixlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJj1uLGUuc2hlbGxTdXNwZW5kQ291bnRlcj0wO3ZhciBsPWUuZW50YW5nbGVtZW50cyxzPWUuZXhwaXJhdGlvblRpbWVzLGM9ZS5oaWRkZW5VcGRhdGVzO2ZvcihuPWkmfm47MDxuOyl7dmFyIHU9MzEtZW0obiksZD0xPDx1O2xbdV09MCxzW3VdPS0xO3ZhciBmPWNbdV07aWYobnVsbCE9PWYpZm9yKGNbdV09bnVsbCx1PTA7dTxmLmxlbmd0aDt1Kyspe3ZhciBwPWZbdV07bnVsbCE9PXAmJihwLmxhbmUmPS0weDIwMDAwMDAxKX1uJj1+ZH0wIT09ciYmZWooZSxyLDApLDAhPT1hJiYwPT09byYmMCE9PWUudGFnJiYoZS5zdXNwZW5kZWRMYW5lc3w9YSZ+KGkmfnQpKX0oZSxuLGE9dC5sYW5lc3x0LmNoaWxkTGFuZXN8bjEsaSxzLGMpLGU9PT1sTCYmKGxOPWxMPW51bGwsbFI9MCksbDY9dCxsMz1lLGw5PW4sbDg9YSxsNz1vLHNlPXIsMCE9KDEwMjU2JnQuc3VidHJlZUZsYWdzKXx8MCE9KDEwMjU2JnQuZmxhZ3MpPyhlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tQcmlvcml0eT0wLEooZWwsZnVuY3Rpb24oKXtyZXR1cm4gc08oITApLG51bGx9KSk6KGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTApLHI9MCE9KDEzODc4JnQuZmxhZ3MpLDAhPSgxMzg3OCZ0LnN1YnRyZWVGbGFncyl8fHIpe3I9SS5ULEkuVD1udWxsLG89VC5wLFQucD0yLGk9bEQsbER8PTQ7dHJ5eyFmdW5jdGlvbihlLHQpe2lmKGU9ZS5jb250YWluZXJJbmZvLGNkPXVvLG5CKGU9bk8oZSkpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBlKXZhciBuPXtzdGFydDplLnNlbGVjdGlvblN0YXJ0LGVuZDplLnNlbGVjdGlvbkVuZH07ZWxzZSBlOnt2YXIgcj0obj0obj1lLm93bmVyRG9jdW1lbnQpJiZuLmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmbi5nZXRTZWxlY3Rpb24oKTtpZihyJiYwIT09ci5yYW5nZUNvdW50KXtuPXIuYW5jaG9yTm9kZTt2YXIgbyxhPXIuYW5jaG9yT2Zmc2V0LGk9ci5mb2N1c05vZGU7cj1yLmZvY3VzT2Zmc2V0O3RyeXtuLm5vZGVUeXBlLGkubm9kZVR5cGV9Y2F0Y2goZSl7bj1udWxsO2JyZWFrIGV9dmFyIHM9MCxjPS0xLHU9LTEsZD0wLGY9MCxwPWUsaD1udWxsO3Q6Zm9yKDs7KXtmb3IoO3AhPT1ufHwwIT09YSYmMyE9PXAubm9kZVR5cGV8fChjPXMrYSkscCE9PWl8fDAhPT1yJiYzIT09cC5ub2RlVHlwZXx8KHU9cytyKSwzPT09cC5ub2RlVHlwZSYmKHMrPXAubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PShvPXAuZmlyc3RDaGlsZCk7KWg9cCxwPW87Zm9yKDs7KXtpZihwPT09ZSlicmVhayB0O2lmKGg9PT1uJiYrK2Q9PT1hJiYoYz1zKSxoPT09aSYmKytmPT09ciYmKHU9cyksbnVsbCE9PShvPXAubmV4dFNpYmxpbmcpKWJyZWFrO2g9KHA9aCkucGFyZW50Tm9kZX1wPW99bj0tMT09PWN8fC0xPT09dT9udWxsOntzdGFydDpjLGVuZDp1fX1lbHNlIG49bnVsbH1uPW58fHtzdGFydDowLGVuZDowfX1lbHNlIG49bnVsbDtmb3IoY2Y9e2ZvY3VzZWRFbGVtOmUsc2VsZWN0aW9uUmFuZ2U6bn0sdW89ITEsbGw9dDtudWxsIT09bGw7KWlmKGU9KHQ9bGwpLmNoaWxkLDAhPSgxMDI0JnQuc3VidHJlZUZsYWdzKSYmbnVsbCE9PWUpZS5yZXR1cm49dCxsbD1lO2Vsc2UgZm9yKDtudWxsIT09bGw7KXtzd2l0Y2goaT0odD1sbCkuYWx0ZXJuYXRlLGU9dC5mbGFncyx0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDU6Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztjYXNlIDE6aWYoMCE9KDEwMjQmZSkmJm51bGwhPT1pKXtlPXZvaWQgMCxuPXQsYT1pLm1lbW9pemVkUHJvcHMsaT1pLm1lbW9pemVkU3RhdGUscj1uLnN0YXRlTm9kZTt0cnl7dmFyIG09aWMobi50eXBlLGEpO2U9ci5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShtLGkpLHIuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9ZX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX1icmVhaztjYXNlIDM6aWYoMCE9KDEwMjQmZSkpe2lmKDk9PT0obj0oZT10LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKS5ub2RlVHlwZSkpY0UoZSk7ZWxzZSBpZigxPT09bilzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZVwiSEVBRFwiOmNhc2VcIkhUTUxcIjpjYXNlXCJCT0RZXCI6Y0UoZSk7YnJlYWs7ZGVmYXVsdDplLnRleHRDb250ZW50PVwiXCJ9fWJyZWFrO2RlZmF1bHQ6aWYoMCE9KDEwMjQmZSkpdGhyb3cgRXJyb3IobCgxNjMpKX1pZihudWxsIT09KGU9dC5zaWJsaW5nKSl7ZS5yZXR1cm49dC5yZXR1cm4sbGw9ZTticmVha31sbD10LnJldHVybn19KGUsdCxuKX1maW5hbGx5e2xEPWksVC5wPW8sSS5UPXJ9fWw1PTEsc18oKSxzaygpLHNFKCl9fWZ1bmN0aW9uIHNfKCl7aWYoMT09PWw1KXtsNT0wO3ZhciBlPWwzLHQ9bDYsbj0wIT0oMTM4NzgmdC5mbGFncyk7aWYoMCE9KDEzODc4JnQuc3VidHJlZUZsYWdzKXx8bil7bj1JLlQsSS5UPW51bGw7dmFyIHI9VC5wO1QucD0yO3ZhciBvPWxEO2xEfD00O3RyeXtsdih0LGUpO3ZhciBhPWNmLGk9bk8oZS5jb250YWluZXJJbmZvKSxsPWEuZm9jdXNlZEVsZW0scz1hLnNlbGVjdGlvblJhbmdlO2lmKGkhPT1sJiZsJiZsLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxuKXtyZXR1cm4hIXQmJiEhbiYmKHQ9PT1ufHwoIXR8fDMhPT10Lm5vZGVUeXBlKSYmKG4mJjM9PT1uLm5vZGVUeXBlP2UodCxuLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIHQ/dC5jb250YWlucyhuKTohIXQuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJiEhKDE2JnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24obikpKSl9KGwub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbCkpe2lmKG51bGwhPT1zJiZuQihsKSl7dmFyIGM9cy5zdGFydCx1PXMuZW5kO2lmKHZvaWQgMD09PXUmJih1PWMpLFwic2VsZWN0aW9uU3RhcnRcImluIGwpbC5zZWxlY3Rpb25TdGFydD1jLGwuc2VsZWN0aW9uRW5kPU1hdGgubWluKHUsbC52YWx1ZS5sZW5ndGgpO2Vsc2V7dmFyIGQ9bC5vd25lckRvY3VtZW50fHxkb2N1bWVudCxmPWQmJmQuZGVmYXVsdFZpZXd8fHdpbmRvdztpZihmLmdldFNlbGVjdGlvbil7dmFyIHA9Zi5nZXRTZWxlY3Rpb24oKSxoPWwudGV4dENvbnRlbnQubGVuZ3RoLG09TWF0aC5taW4ocy5zdGFydCxoKSxnPXZvaWQgMD09PXMuZW5kP206TWF0aC5taW4ocy5lbmQsaCk7IXAuZXh0ZW5kJiZtPmcmJihpPWcsZz1tLG09aSk7dmFyIHk9blMobCxtKSx2PW5TKGwsZyk7aWYoeSYmdiYmKDEhPT1wLnJhbmdlQ291bnR8fHAuYW5jaG9yTm9kZSE9PXkubm9kZXx8cC5hbmNob3JPZmZzZXQhPT15Lm9mZnNldHx8cC5mb2N1c05vZGUhPT12Lm5vZGV8fHAuZm9jdXNPZmZzZXQhPT12Lm9mZnNldCkpe3ZhciBiPWQuY3JlYXRlUmFuZ2UoKTtiLnNldFN0YXJ0KHkubm9kZSx5Lm9mZnNldCkscC5yZW1vdmVBbGxSYW5nZXMoKSxtPmc/KHAuYWRkUmFuZ2UoYikscC5leHRlbmQodi5ub2RlLHYub2Zmc2V0KSk6KGIuc2V0RW5kKHYubm9kZSx2Lm9mZnNldCkscC5hZGRSYW5nZShiKSl9fX19Zm9yKGQ9W10scD1sO3A9cC5wYXJlbnROb2RlOykxPT09cC5ub2RlVHlwZSYmZC5wdXNoKHtlbGVtZW50OnAsbGVmdDpwLnNjcm9sbExlZnQsdG9wOnAuc2Nyb2xsVG9wfSk7Zm9yKFwiZnVuY3Rpb25cIj09dHlwZW9mIGwuZm9jdXMmJmwuZm9jdXMoKSxsPTA7bDxkLmxlbmd0aDtsKyspe3ZhciBBPWRbbF07QS5lbGVtZW50LnNjcm9sbExlZnQ9QS5sZWZ0LEEuZWxlbWVudC5zY3JvbGxUb3A9QS50b3B9fXVvPSEhY2QsY2Y9Y2Q9bnVsbH1maW5hbGx5e2xEPW8sVC5wPXIsSS5UPW59fWUuY3VycmVudD10LGw1PTJ9fWZ1bmN0aW9uIHNrKCl7aWYoMj09PWw1KXtsNT0wO3ZhciBlPWwzLHQ9bDYsbj0wIT0oODc3MiZ0LmZsYWdzKTtpZigwIT0oODc3MiZ0LnN1YnRyZWVGbGFncyl8fG4pe249SS5ULEkuVD1udWxsO3ZhciByPVQucDtULnA9Mjt2YXIgbz1sRDtsRHw9NDt0cnl7bHMoZSx0LmFsdGVybmF0ZSx0KX1maW5hbGx5e2xEPW8sVC5wPXIsSS5UPW59fWw1PTN9fWZ1bmN0aW9uIHNFKCl7aWYoND09PWw1fHwzPT09bDUpe2w1PTAsZW4oKTt2YXIgZT1sMyx0PWw2LG49bDkscj1zZTswIT0oMTAyNTYmdC5zdWJ0cmVlRmxhZ3MpfHwwIT0oMTAyNTYmdC5mbGFncyk/bDU9NToobDU9MCxsNj1sMz1udWxsLHNqKGUsZS5wZW5kaW5nTGFuZXMpKTt2YXIgbz1lLnBlbmRpbmdMYW5lcztpZigwPT09byYmKGw0PW51bGwpLGVQKG4pLHQ9dC5zdGF0ZU5vZGUsZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uQ29tbWl0RmliZXJSb290KXRyeXtlcC5vbkNvbW1pdEZpYmVyUm9vdChlZix0LHZvaWQgMCwxMjg9PSgxMjgmdC5jdXJyZW50LmZsYWdzKSl9Y2F0Y2goZSl7fWlmKG51bGwhPT1yKXt0PUkuVCxvPVQucCxULnA9MixJLlQ9bnVsbDt0cnl7Zm9yKHZhciBhPWUub25SZWNvdmVyYWJsZUVycm9yLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGw9cltpXTthKGwudmFsdWUse2NvbXBvbmVudFN0YWNrOmwuc3RhY2t9KX19ZmluYWxseXtJLlQ9dCxULnA9b319MCE9KDMmbDkpJiZzUygpLHNxKGUpLG89ZS5wZW5kaW5nTGFuZXMsMCE9KDQxOTQwOTAmbikmJjAhPSg0MiZvKT9lPT09c24/c3QrKzooc3Q9MCxzbj1lKTpzdD0wLHNIKDAsITEpfX1mdW5jdGlvbiBzaihlLHQpezA9PShlLnBvb2xlZENhY2hlTGFuZXMmPXQpJiZudWxsIT0odD1lLnBvb2xlZENhY2hlKSYmKGUucG9vbGVkQ2FjaGU9bnVsbCxyMih0KSl9ZnVuY3Rpb24gc1MoZSl7cmV0dXJuIHNfKCksc2soKSxzRSgpLHNPKGUpfWZ1bmN0aW9uIHNPKCl7aWYoNSE9PWw1KXJldHVybiExO3ZhciBlPWwzLHQ9bDg7bDg9MDt2YXIgbj1lUChsOSkscj1JLlQsbz1ULnA7dHJ5e1QucD0zMj5uPzMyOm4sSS5UPW51bGwsbj1sNyxsNz1udWxsO3ZhciBhPWwzLGk9bDk7aWYobDU9MCxsNj1sMz1udWxsLGw5PTAsMCE9KDYmbEQpKXRocm93IEVycm9yKGwoMzMxKSk7dmFyIHM9bEQ7aWYobER8PTQsbFAoYS5jdXJyZW50KSxsXyhhLGEuY3VycmVudCxpLG4pLGxEPXMsc0goMCwhMSksZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7ZXAub25Qb3N0Q29tbWl0RmliZXJSb290KGVmLGEpfWNhdGNoKGUpe31yZXR1cm4hMH1maW5hbGx5e1QucD1vLEkuVD1yLHNqKGUsdCl9fWZ1bmN0aW9uIHNCKGUsdCxuKXt0PXJ1KG4sdCksdD1pZyhlLnN0YXRlTm9kZSx0LDIpLG51bGwhPT0oZT1vayhlLHQsMikpJiYoZUUoZSwyKSxzcShlKSl9ZnVuY3Rpb24gc1AoZSx0LG4pe2lmKDM9PT1lLnRhZylzQihlLGUsbik7ZWxzZSBmb3IoO251bGwhPT10Oyl7aWYoMz09PXQudGFnKXtzQih0LGUsbik7YnJlYWt9aWYoMT09PXQudGFnKXt2YXIgcj10LnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PWw0fHwhbDQuaGFzKHIpKSl7ZT1ydShuLGUpLG51bGwhPT0ocj1vayh0LG49aXkoMiksMikpJiYoaXYobixyLHQsZSksZUUociwyKSxzcShyKSk7YnJlYWt9fXQ9dC5yZXR1cm59fWZ1bmN0aW9uIHNJKGUsdCxuKXt2YXIgcj1lLnBpbmdDYWNoZTtpZihudWxsPT09cil7cj1lLnBpbmdDYWNoZT1uZXcgbHo7dmFyIG89bmV3IFNldDtyLnNldCh0LG8pfWVsc2Ugdm9pZCAwPT09KG89ci5nZXQodCkpJiYobz1uZXcgU2V0LHIuc2V0KHQsbykpO28uaGFzKG4pfHwobHE9ITAsby5hZGQobiksZT1zVC5iaW5kKG51bGwsZSx0LG4pLHQudGhlbihlLGUpKX1mdW5jdGlvbiBzVChlLHQsbil7dmFyIHI9ZS5waW5nQ2FjaGU7bnVsbCE9PXImJnIuZGVsZXRlKHQpLGUucGluZ2VkTGFuZXN8PWUuc3VzcGVuZGVkTGFuZXMmbixlLndhcm1MYW5lcyY9fm4sbEw9PT1lJiYobFImbik9PT1uJiYoND09PWxWfHwzPT09bFYmJigweDNjMDAwMDAmbFIpPT09bFImJjMwMD5lcigpLWwwPzA9PSgyJmxEKSYmc2QoZSwwKTpsWXw9bixsWD09PWxSJiYobFg9MCkpLHNxKGUpfWZ1bmN0aW9uIHN6KGUsdCl7MD09PXQmJih0PWVfKCkpLG51bGwhPT0oZT1uMyhlLHQpKSYmKGVFKGUsdCksc3EoZSkpfWZ1bmN0aW9uIHNEKGUpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZSxuPTA7bnVsbCE9PXQmJihuPXQucmV0cnlMYW5lKSxzeihlLG4pfWZ1bmN0aW9uIHNMKGUsdCl7dmFyIG49MDtzd2l0Y2goZS50YWcpe2Nhc2UgMzE6Y2FzZSAxMzp2YXIgcj1lLnN0YXRlTm9kZSxvPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09byYmKG49by5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6cj1lLnN0YXRlTm9kZTticmVhaztjYXNlIDIyOnI9ZS5zdGF0ZU5vZGUuX3JldHJ5Q2FjaGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDMxNCkpfW51bGwhPT1yJiZyLmRlbGV0ZSh0KSxzeihlLG4pfXZhciBzTj1udWxsLHNSPW51bGwsc009ITEsc1o9ITEsc1U9ITEsc0Y9MDtmdW5jdGlvbiBzcShlKXtlIT09c1ImJm51bGw9PT1lLm5leHQmJihudWxsPT09c1I/c049c1I9ZTpzUj1zUi5uZXh0PWUpLHNaPSEwLHNNfHwoc009ITAsY3goZnVuY3Rpb24oKXswIT0oNiZsRCk/SihlYSxzVik6cyQoKX0pKX1mdW5jdGlvbiBzSChlLHQpe2lmKCFzVSYmc1ope3NVPSEwO2RvIGZvcih2YXIgbj0hMSxyPXNOO251bGwhPT1yOyl7aWYoIXQpaWYoMCE9PWUpe3ZhciBvPXIucGVuZGluZ0xhbmVzO2lmKDA9PT1vKXZhciBhPTA7ZWxzZXt2YXIgaT1yLnN1c3BlbmRlZExhbmVzLGw9ci5waW5nZWRMYW5lczthPTB4YzAwMDA5NSYoYT0oMTw8MzEtZW0oNDJ8ZSkrMSktMSYobyZ+KGkmfmwpKSk/MHhjMDAwMDk1JmF8MTphPzJ8YTowfTAhPT1hJiYobj0hMCxzSyhyLGEpKX1lbHNlIGE9bFIsMD09KDMmKGE9ZXgocixyPT09bEw/YTowLG51bGwhPT1yLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ci50aW1lb3V0SGFuZGxlKSkpfHxldyhyLGEpfHwobj0hMCxzSyhyLGEpKTtyPXIubmV4dH13aGlsZShuKTtzVT0hMX19ZnVuY3Rpb24gc1YoKXtzJCgpfWZ1bmN0aW9uIHMkKCl7c1o9c009ITE7dmFyIGUsdD0wOzA9PT1zRnx8KChlPXdpbmRvdy5ldmVudCkmJlwicG9wc3RhdGVcIj09PWUudHlwZT9lPT09Y3l8fChjeT1lLDApOihjeT1udWxsLDEpKXx8KHQ9c0YpO2Zvcih2YXIgbj1lcigpLHI9bnVsbCxvPXNOO251bGwhPT1vOyl7dmFyIGE9by5uZXh0LGk9c1cobyxuKTswPT09aT8oby5uZXh0PW51bGwsbnVsbD09PXI/c049YTpyLm5leHQ9YSxudWxsPT09YSYmKHNSPXIpKToocj1vLCgwIT09dHx8MCE9KDMmaSkpJiYoc1o9ITApKSxvPWF9MCE9PWw1JiY1IT09bDV8fHNIKHQsITEpLDAhPT1zRiYmKHNGPTApfWZ1bmN0aW9uIHNXKGUsdCl7Zm9yKHZhciBuPWUuc3VzcGVuZGVkTGFuZXMscj1lLnBpbmdlZExhbmVzLG89ZS5leHBpcmF0aW9uVGltZXMsYT0tMHgzYzAwMDAxJmUucGVuZGluZ0xhbmVzOzA8YTspe3ZhciBpPTMxLWVtKGEpLGw9MTw8aSxzPW9baV07LTE9PT1zPygwPT0obCZuKXx8MCE9KGwmcikpJiYob1tpXT1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDg6Y2FzZSA2NDpyZXR1cm4gdCsyNTA7Y2FzZSAxNjpjYXNlIDMyOmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiB0KzVlMztkZWZhdWx0OnJldHVybiAtMX19KGwsdCkpOnM8PXQmJihlLmV4cGlyZWRMYW5lc3w9bCksYSY9fmx9aWYodD1sTCxuPWxSLG49ZXgoZSxlPT09dD9uOjAsbnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdHx8LTEhPT1lLnRpbWVvdXRIYW5kbGUpLHI9ZS5jYWxsYmFja05vZGUsMD09PW58fGU9PT10JiYoMj09PWxNfHw5PT09bE0pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KXJldHVybiBudWxsIT09ciYmbnVsbCE9PXImJmVlKHIpLGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7aWYoMD09KDMmbil8fGV3KGUsbikpe2lmKCh0PW4mLW4pPT09ZS5jYWxsYmFja1ByaW9yaXR5KXJldHVybiB0O3N3aXRjaChudWxsIT09ciYmZWUociksZVAobikpe2Nhc2UgMjpjYXNlIDg6bj1laTticmVhaztjYXNlIDMyOmRlZmF1bHQ6bj1lbDticmVhaztjYXNlIDB4MTAwMDAwMDA6bj1lY31yZXR1cm4gbj1KKG4scj1zWS5iaW5kKG51bGwsZSkpLGUuY2FsbGJhY2tQcmlvcml0eT10LGUuY2FsbGJhY2tOb2RlPW4sdH1yZXR1cm4gbnVsbCE9PXImJm51bGwhPT1yJiZlZShyKSxlLmNhbGxiYWNrUHJpb3JpdHk9MixlLmNhbGxiYWNrTm9kZT1udWxsLDJ9ZnVuY3Rpb24gc1koZSx0KXtpZigwIT09bDUmJjUhPT1sNSlyZXR1cm4gZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCxudWxsO3ZhciBuPWUuY2FsbGJhY2tOb2RlO2lmKHNTKCEwKSYmZS5jYWxsYmFja05vZGUhPT1uKXJldHVybiBudWxsO3ZhciByPWxSO3JldHVybiAwPT09KHI9ZXgoZSxlPT09bEw/cjowLG51bGwhPT1lLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ZS50aW1lb3V0SGFuZGxlKSk/bnVsbDooc2koZSxyLHQpLHNXKGUsZXIoKSksbnVsbCE9ZS5jYWxsYmFja05vZGUmJmUuY2FsbGJhY2tOb2RlPT09bj9zWS5iaW5kKG51bGwsZSk6bnVsbCl9ZnVuY3Rpb24gc0soZSx0KXtpZihzUygpKXJldHVybiBudWxsO3NpKGUsdCwhMCl9ZnVuY3Rpb24gc1goKXtpZigwPT09c0Ype3ZhciBlPXIzO3NGPTAhPT1lP2U6ZUMoKX1yZXR1cm4gc0Z9ZnVuY3Rpb24gc0coZSl7cmV0dXJuIG51bGw9PWV8fFwic3ltYm9sXCI9PXR5cGVvZiBlfHxcImJvb2xlYW5cIj09dHlwZW9mIGU/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6dG0oXCJcIitlKX1mdW5jdGlvbiBzUShlLHQpe3ZhciBuPXQub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7cmV0dXJuIG4ubmFtZT10Lm5hbWUsbi52YWx1ZT10LnZhbHVlLGUuaWQmJm4uc2V0QXR0cmlidXRlKFwiZm9ybVwiLGUuaWQpLHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobix0KSxlPW5ldyBGb3JtRGF0YShlKSxuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksZX1mb3IodmFyIHNKPTA7c0o8blgubGVuZ3RoO3NKKyspe3ZhciBzMD1uWFtzSl07bkcoczAudG9Mb3dlckNhc2UoKSxcIm9uXCIrKHMwWzBdLnRvVXBwZXJDYXNlKCkrczAuc2xpY2UoMSkpKX1uRyhuRixcIm9uQW5pbWF0aW9uRW5kXCIpLG5HKG5xLFwib25BbmltYXRpb25JdGVyYXRpb25cIiksbkcobkgsXCJvbkFuaW1hdGlvblN0YXJ0XCIpLG5HKFwiZGJsY2xpY2tcIixcIm9uRG91YmxlQ2xpY2tcIiksbkcoXCJmb2N1c2luXCIsXCJvbkZvY3VzXCIpLG5HKFwiZm9jdXNvdXRcIixcIm9uQmx1clwiKSxuRyhuVixcIm9uVHJhbnNpdGlvblJ1blwiKSxuRyhuJCxcIm9uVHJhbnNpdGlvblN0YXJ0XCIpLG5HKG5XLFwib25UcmFuc2l0aW9uQ2FuY2VsXCIpLG5HKG5ZLFwib25UcmFuc2l0aW9uRW5kXCIpLGVRKFwib25Nb3VzZUVudGVyXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSksZVEoXCJvbk1vdXNlTGVhdmVcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKSxlUShcIm9uUG9pbnRlckVudGVyXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pLGVRKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSksZUcoXCJvbkNoYW5nZVwiLFwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpLGVHKFwib25TZWxlY3RcIixcImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSksZUcoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKSxlRyhcIm9uQ29tcG9zaXRpb25FbmRcIixcImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKSxlRyhcIm9uQ29tcG9zaXRpb25TdGFydFwiLFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSksZUcoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIHMxPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmdcIi5zcGxpdChcIiBcIiksczI9bmV3IFNldChcImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlXCIuc3BsaXQoXCIgXCIpLmNvbmNhdChzMSkpO2Z1bmN0aW9uIHM0KGUsdCl7dD0wIT0oNCZ0KTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXSxvPXIuZXZlbnQ7cj1yLmxpc3RlbmVycztlOnt2YXIgYT12b2lkIDA7aWYodClmb3IodmFyIGk9ci5sZW5ndGgtMTswPD1pO2ktLSl7dmFyIGw9cltpXSxzPWwuaW5zdGFuY2UsYz1sLmN1cnJlbnRUYXJnZXQ7aWYobD1sLmxpc3RlbmVyLHMhPT1hJiZvLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTthPWwsby5jdXJyZW50VGFyZ2V0PWM7dHJ5e2Eobyl9Y2F0Y2goZSl7blEoZSl9by5jdXJyZW50VGFyZ2V0PW51bGwsYT1zfWVsc2UgZm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7aWYocz0obD1yW2ldKS5pbnN0YW5jZSxjPWwuY3VycmVudFRhcmdldCxsPWwubGlzdGVuZXIscyE9PWEmJm8uaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO2E9bCxvLmN1cnJlbnRUYXJnZXQ9Yzt0cnl7YShvKX1jYXRjaChlKXtuUShlKX1vLmN1cnJlbnRUYXJnZXQ9bnVsbCxhPXN9fX19ZnVuY3Rpb24gczUoZSx0KXt2YXIgbj10W2VSXTt2b2lkIDA9PT1uJiYobj10W2VSXT1uZXcgU2V0KTt2YXIgcj1lK1wiX19idWJibGVcIjtuLmhhcyhyKXx8KHM4KHQsZSwyLCExKSxuLmFkZChyKSl9ZnVuY3Rpb24gczMoZSx0LG4pe3ZhciByPTA7dCYmKHJ8PTQpLHM4KG4sZSxyLHQpfXZhciBzNj1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIHM5KGUpe2lmKCFlW3M2XSl7ZVtzNl09ITAsZUsuZm9yRWFjaChmdW5jdGlvbih0KXtcInNlbGVjdGlvbmNoYW5nZVwiIT09dCYmKHMyLmhhcyh0KXx8czModCwhMSxlKSxzMyh0LCEwLGUpKX0pO3ZhciB0PTk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50O251bGw9PT10fHx0W3M2XXx8KHRbczZdPSEwLHMzKFwic2VsZWN0aW9uY2hhbmdlXCIsITEsdCkpfX1mdW5jdGlvbiBzOChlLHQsbixyKXtzd2l0Y2godWQodCkpe2Nhc2UgMjp2YXIgbz11YTticmVhaztjYXNlIDg6bz11aTticmVhaztkZWZhdWx0Om89dWx9bj1vLmJpbmQobnVsbCx0LG4sZSksbz12b2lkIDAsdEUmJihcInRvdWNoc3RhcnRcIj09PXR8fFwidG91Y2htb3ZlXCI9PT10fHxcIndoZWVsXCI9PT10KSYmKG89ITApLHI/dm9pZCAwIT09bz9lLmFkZEV2ZW50TGlzdGVuZXIodCxuLHtjYXB0dXJlOiEwLHBhc3NpdmU6b30pOmUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sITApOnZvaWQgMCE9PW8/ZS5hZGRFdmVudExpc3RlbmVyKHQsbix7cGFzc2l2ZTpvfSk6ZS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMSl9ZnVuY3Rpb24gczcoZSx0LG4scixvKXt2YXIgYT1yO2lmKDA9PSgxJnQpJiYwPT0oMiZ0KSYmbnVsbCE9PXIpZTpmb3IoOzspe2lmKG51bGw9PT1yKXJldHVybjt2YXIgaT1yLnRhZztpZigzPT09aXx8ND09PWkpe3ZhciBsPXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYobD09PW8pYnJlYWs7aWYoND09PWkpZm9yKGk9ci5yZXR1cm47bnVsbCE9PWk7KXt2YXIgYz1pLnRhZztpZigoMz09PWN8fDQ9PT1jKSYmaS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PW8pcmV0dXJuO2k9aS5yZXR1cm59Zm9yKDtudWxsIT09bDspe2lmKG51bGw9PT0oaT1lSChsKSkpcmV0dXJuO2lmKDU9PT0oYz1pLnRhZyl8fDY9PT1jfHwyNj09PWN8fDI3PT09Yyl7cj1hPWk7Y29udGludWUgZX1sPWwucGFyZW50Tm9kZX19cj1yLnJldHVybn10QyhmdW5jdGlvbigpe3ZhciByPWEsbz10dihuKSxpPVtdO2U6e3ZhciBsPW5LLmdldChlKTtpZih2b2lkIDAhPT1sKXt2YXIgYz10Rix1PWU7c3dpdGNoKGUpe2Nhc2VcImtleXByZXNzXCI6aWYoMD09PXRJKG4pKWJyZWFrIGU7Y2FzZVwia2V5ZG93blwiOmNhc2VcImtleXVwXCI6Yz10NDticmVhaztjYXNlXCJmb2N1c2luXCI6dT1cImZvY3VzXCIsYz10WTticmVhaztjYXNlXCJmb2N1c291dFwiOnU9XCJibHVyXCIsYz10WTticmVhaztjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Yz10WTticmVhaztjYXNlXCJjbGlja1wiOmlmKDI9PT1uLmJ1dHRvbilicmVhayBlO2Nhc2VcImF1eGNsaWNrXCI6Y2FzZVwiZGJsY2xpY2tcIjpjYXNlXCJtb3VzZWRvd25cIjpjYXNlXCJtb3VzZW1vdmVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwibW91c2VvdXRcIjpjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJjb250ZXh0bWVudVwiOmM9dCQ7YnJlYWs7Y2FzZVwiZHJhZ1wiOmNhc2VcImRyYWdlbmRcIjpjYXNlXCJkcmFnZW50ZXJcIjpjYXNlXCJkcmFnZXhpdFwiOmNhc2VcImRyYWdsZWF2ZVwiOmNhc2VcImRyYWdvdmVyXCI6Y2FzZVwiZHJhZ3N0YXJ0XCI6Y2FzZVwiZHJvcFwiOmM9dFc7YnJlYWs7Y2FzZVwidG91Y2hjYW5jZWxcIjpjYXNlXCJ0b3VjaGVuZFwiOmNhc2VcInRvdWNobW92ZVwiOmNhc2VcInRvdWNoc3RhcnRcIjpjPXQzO2JyZWFrO2Nhc2UgbkY6Y2FzZSBucTpjYXNlIG5IOmM9dEs7YnJlYWs7Y2FzZSBuWTpjPXQ2O2JyZWFrO2Nhc2VcInNjcm9sbFwiOmNhc2VcInNjcm9sbGVuZFwiOmM9dEg7YnJlYWs7Y2FzZVwid2hlZWxcIjpjPXQ5O2JyZWFrO2Nhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJwYXN0ZVwiOmM9dFg7YnJlYWs7Y2FzZVwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJwb2ludGVyY2FuY2VsXCI6Y2FzZVwicG9pbnRlcmRvd25cIjpjYXNlXCJwb2ludGVybW92ZVwiOmNhc2VcInBvaW50ZXJvdXRcIjpjYXNlXCJwb2ludGVyb3ZlclwiOmNhc2VcInBvaW50ZXJ1cFwiOmM9dDU7YnJlYWs7Y2FzZVwidG9nZ2xlXCI6Y2FzZVwiYmVmb3JldG9nZ2xlXCI6Yz10OH12YXIgZD0wIT0oNCZ0KSxmPSFkJiYoXCJzY3JvbGxcIj09PWV8fFwic2Nyb2xsZW5kXCI9PT1lKSxwPWQ/bnVsbCE9PWw/bCtcIkNhcHR1cmVcIjpudWxsOmw7ZD1bXTtmb3IodmFyIGgsbT1yO251bGwhPT1tOyl7dmFyIGc9bTtpZihoPWcuc3RhdGVOb2RlLDUhPT0oZz1nLnRhZykmJjI2IT09ZyYmMjchPT1nfHxudWxsPT09aHx8bnVsbD09PXB8fG51bGwhPShnPXRfKG0scCkpJiZkLnB1c2goY2UobSxnLGgpKSxmKWJyZWFrO209bS5yZXR1cm59MDxkLmxlbmd0aCYmKGw9bmV3IGMobCx1LG51bGwsbixvKSxpLnB1c2goe2V2ZW50OmwsbGlzdGVuZXJzOmR9KSl9fWlmKDA9PSg3JnQpKXtpZigobD1cIm1vdXNlb3ZlclwiPT09ZXx8XCJwb2ludGVyb3ZlclwiPT09ZSxjPVwibW91c2VvdXRcIj09PWV8fFwicG9pbnRlcm91dFwiPT09ZSwhKGwmJm4hPT10eSYmKHU9bi5yZWxhdGVkVGFyZ2V0fHxuLmZyb21FbGVtZW50KSYmKGVIKHUpfHx1W2VOXSkpKSYmKGN8fGwpJiYobD1vLndpbmRvdz09PW8/bzoobD1vLm93bmVyRG9jdW1lbnQpP2wuZGVmYXVsdFZpZXd8fGwucGFyZW50V2luZG93OndpbmRvdyxjPyh1PW4ucmVsYXRlZFRhcmdldHx8bi50b0VsZW1lbnQsYz1yLG51bGwhPT0odT11P2VIKHUpOm51bGwpJiYoZj1zKHUpLGQ9dS50YWcsdSE9PWZ8fDUhPT1kJiYyNyE9PWQmJjYhPT1kKSYmKHU9bnVsbCkpOihjPW51bGwsdT1yKSxjIT09dSkpe2lmKGQ9dCQsZz1cIm9uTW91c2VMZWF2ZVwiLHA9XCJvbk1vdXNlRW50ZXJcIixtPVwibW91c2VcIiwoXCJwb2ludGVyb3V0XCI9PT1lfHxcInBvaW50ZXJvdmVyXCI9PT1lKSYmKGQ9dDUsZz1cIm9uUG9pbnRlckxlYXZlXCIscD1cIm9uUG9pbnRlckVudGVyXCIsbT1cInBvaW50ZXJcIiksZj1udWxsPT1jP2w6ZSQoYyksaD1udWxsPT11P2w6ZSQodSksKGw9bmV3IGQoZyxtK1wibGVhdmVcIixjLG4sbykpLnRhcmdldD1mLGwucmVsYXRlZFRhcmdldD1oLGc9bnVsbCxlSChvKT09PXImJigoZD1uZXcgZChwLG0rXCJlbnRlclwiLHUsbixvKSkudGFyZ2V0PWgsZC5yZWxhdGVkVGFyZ2V0PWYsZz1kKSxmPWcsYyYmdSl0Ontmb3IoZD1jbixwPWMsbT11LGg9MCxnPXA7ZztnPWQoZykpaCsrO2c9MDtmb3IodmFyIHksdj1tO3Y7dj1kKHYpKWcrKztmb3IoOzA8aC1nOylwPWQocCksaC0tO2Zvcig7MDxnLWg7KW09ZChtKSxnLS07Zm9yKDtoLS07KXtpZihwPT09bXx8bnVsbCE9PW0mJnA9PT1tLmFsdGVybmF0ZSl7ZD1wO2JyZWFrIHR9cD1kKHApLG09ZChtKX1kPW51bGx9ZWxzZSBkPW51bGw7bnVsbCE9PWMmJmNyKGksbCxjLGQsITEpLG51bGwhPT11JiZudWxsIT09ZiYmY3IoaSxmLHUsZCwhMCl9ZTp7aWYoXCJzZWxlY3RcIj09PShjPShsPXI/ZSQocik6d2luZG93KS5ub2RlTmFtZSYmbC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXx8XCJpbnB1dFwiPT09YyYmXCJmaWxlXCI9PT1sLnR5cGUpdmFyIGI9bm07ZWxzZSBpZihuYyhsKSlpZihuZyliPW5fO2Vsc2V7Yj1udzt2YXIgQT1ueH1lbHNlKGM9bC5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWMudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWwudHlwZXx8XCJyYWRpb1wiPT09bC50eXBlKT9iPW5DOnImJnRmKHIuZWxlbWVudFR5cGUpJiYoYj1ubSk7aWYoYiYmKGI9YihlLHIpKSl7bnUoaSxiLG4sbyk7YnJlYWsgZX1BJiZBKGUsbCxyKSxcImZvY3Vzb3V0XCI9PT1lJiZyJiZcIm51bWJlclwiPT09bC50eXBlJiZudWxsIT1yLm1lbW9pemVkUHJvcHMudmFsdWUmJnRvKGwsXCJudW1iZXJcIixsLnZhbHVlKX1zd2l0Y2goQT1yP2UkKHIpOndpbmRvdyxlKXtjYXNlXCJmb2N1c2luXCI6KG5jKEEpfHxcInRydWVcIj09PUEuY29udGVudEVkaXRhYmxlKSYmKG5JPUEsblQ9cixuej1udWxsKTticmVhaztjYXNlXCJmb2N1c291dFwiOm56PW5UPW5JPW51bGw7YnJlYWs7Y2FzZVwibW91c2Vkb3duXCI6bkQ9ITA7YnJlYWs7Y2FzZVwiY29udGV4dG1lbnVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwiZHJhZ2VuZFwiOm5EPSExLG5MKGksbixvKTticmVhaztjYXNlXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihuUClicmVhaztjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5dXBcIjpuTChpLG4sbyl9aWYobmUpdDp7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgeD1cIm9uQ29tcG9zaXRpb25TdGFydFwiO2JyZWFrIHQ7Y2FzZVwiY29tcG9zaXRpb25lbmRcIjp4PVwib25Db21wb3NpdGlvbkVuZFwiO2JyZWFrIHQ7Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjp4PVwib25Db21wb3NpdGlvblVwZGF0ZVwiO2JyZWFrIHR9eD12b2lkIDB9ZWxzZSBubD9uYShlLG4pJiYoeD1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1lJiYyMjk9PT1uLmtleUNvZGUmJih4PVwib25Db21wb3NpdGlvblN0YXJ0XCIpO3gmJihuciYmXCJrb1wiIT09bi5sb2NhbGUmJihubHx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PXg/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT14JiZubCYmKHk9dFAoKSk6KHRPPVwidmFsdWVcImluKHRTPW8pP3RTLnZhbHVlOnRTLnRleHRDb250ZW50LG5sPSEwKSksMDwoQT1jdChyLHgpKS5sZW5ndGgmJih4PW5ldyB0Ryh4LGUsbnVsbCxuLG8pLGkucHVzaCh7ZXZlbnQ6eCxsaXN0ZW5lcnM6QX0pLHk/eC5kYXRhPXk6bnVsbCE9PSh5PW5pKG4pKSYmKHguZGF0YT15KSkpLCh5PW5uP2Z1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIG5pKHQpO2Nhc2VcImtleXByZXNzXCI6aWYoMzIhPT10LndoaWNoKXJldHVybiBudWxsO3JldHVybiBubz0hMCxcIiBcIjtjYXNlXCJ0ZXh0SW5wdXRcIjpyZXR1cm5cIiBcIj09PShlPXQuZGF0YSkmJm5vP251bGw6ZTtkZWZhdWx0OnJldHVybiBudWxsfX0oZSxuKTpmdW5jdGlvbihlLHQpe2lmKG5sKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWV8fCFuZSYmbmEoZSx0KT8oZT10UCgpLHRCPXRPPXRTPW51bGwsbmw9ITEsZSk6bnVsbDtzd2l0Y2goZSl7Y2FzZVwicGFzdGVcIjpkZWZhdWx0OnJldHVybiBudWxsO2Nhc2VcImtleXByZXNzXCI6aWYoISh0LmN0cmxLZXl8fHQuYWx0S2V5fHx0Lm1ldGFLZXkpfHx0LmN0cmxLZXkmJnQuYWx0S2V5KXtpZih0LmNoYXImJjE8dC5jaGFyLmxlbmd0aClyZXR1cm4gdC5jaGFyO2lmKHQud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodC53aGljaCl9cmV0dXJuIG51bGw7Y2FzZVwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gbnImJlwia29cIiE9PXQubG9jYWxlP251bGw6dC5kYXRhfX0oZSxuKSkmJjA8KHg9Y3QocixcIm9uQmVmb3JlSW5wdXRcIikpLmxlbmd0aCYmKEE9bmV3IHRHKFwib25CZWZvcmVJbnB1dFwiLFwiYmVmb3JlaW5wdXRcIixudWxsLG4sbyksaS5wdXNoKHtldmVudDpBLGxpc3RlbmVyczp4fSksQS5kYXRhPXkpO3ZhciB3PWU7aWYoXCJzdWJtaXRcIj09PXcmJnImJnIuc3RhdGVOb2RlPT09byl7dmFyIEM9c0coKG9bZUxdfHxudWxsKS5hY3Rpb24pLF89bi5zdWJtaXR0ZXI7XyYmbnVsbCE9PSh3PSh3PV9bZUxdfHxudWxsKT9zRyh3LmZvcm1BY3Rpb24pOl8uZ2V0QXR0cmlidXRlKFwiZm9ybUFjdGlvblwiKSkmJihDPXcsXz1udWxsKTt2YXIgaz1uZXcgdEYoXCJhY3Rpb25cIixcImFjdGlvblwiLG51bGwsbixvKTtpLnB1c2goe2V2ZW50OmssbGlzdGVuZXJzOlt7aW5zdGFuY2U6bnVsbCxsaXN0ZW5lcjpmdW5jdGlvbigpe2lmKG4uZGVmYXVsdFByZXZlbnRlZCl7aWYoMCE9PXNGKXt2YXIgZT1fP3NRKG8sXyk6bmV3IEZvcm1EYXRhKG8pO2FYKHIse3BlbmRpbmc6ITAsZGF0YTplLG1ldGhvZDpvLm1ldGhvZCxhY3Rpb246Q30sbnVsbCxlKX19ZWxzZVwiZnVuY3Rpb25cIj09dHlwZW9mIEMmJihrLnByZXZlbnREZWZhdWx0KCksYVgocix7cGVuZGluZzohMCxkYXRhOmU9Xz9zUShvLF8pOm5ldyBGb3JtRGF0YShvKSxtZXRob2Q6by5tZXRob2QsYWN0aW9uOkN9LEMsZSkpfSxjdXJyZW50VGFyZ2V0Om99XX0pfX1zNChpLHQpfSl9ZnVuY3Rpb24gY2UoZSx0LG4pe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOnQsY3VycmVudFRhcmdldDpufX1mdW5jdGlvbiBjdChlLHQpe2Zvcih2YXIgbj10K1wiQ2FwdHVyZVwiLHI9W107bnVsbCE9PWU7KXt2YXIgbz1lLGE9by5zdGF0ZU5vZGU7aWYoNSE9PShvPW8udGFnKSYmMjYhPT1vJiYyNyE9PW98fG51bGw9PT1hfHwobnVsbCE9KG89dF8oZSxuKSkmJnIudW5zaGlmdChjZShlLG8sYSkpLG51bGwhPShvPXRfKGUsdCkpJiZyLnB1c2goY2UoZSxvLGEpKSksMz09PWUudGFnKXJldHVybiByO2U9ZS5yZXR1cm59cmV0dXJuW119ZnVuY3Rpb24gY24oZSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7ZG8gZT1lLnJldHVybjt3aGlsZShlJiY1IT09ZS50YWcmJjI3IT09ZS50YWcpO3JldHVybiBlfHxudWxsfWZ1bmN0aW9uIGNyKGUsdCxuLHIsbyl7Zm9yKHZhciBhPXQuX3JlYWN0TmFtZSxpPVtdO251bGwhPT1uJiZuIT09cjspe3ZhciBsPW4scz1sLmFsdGVybmF0ZSxjPWwuc3RhdGVOb2RlO2lmKGw9bC50YWcsbnVsbCE9PXMmJnM9PT1yKWJyZWFrOzUhPT1sJiYyNiE9PWwmJjI3IT09bHx8bnVsbD09PWN8fChzPWMsbz9udWxsIT0oYz10XyhuLGEpKSYmaS51bnNoaWZ0KGNlKG4sYyxzKSk6b3x8bnVsbCE9KGM9dF8obixhKSkmJmkucHVzaChjZShuLGMscykpKSxuPW4ucmV0dXJufTAhPT1pLmxlbmd0aCYmZS5wdXNoKHtldmVudDp0LGxpc3RlbmVyczppfSl9dmFyIGNvPS9cXHJcXG4/L2csY2E9L1xcdTAwMDB8XFx1RkZGRC9nO2Z1bmN0aW9uIGNpKGUpe3JldHVybihcInN0cmluZ1wiPT10eXBlb2YgZT9lOlwiXCIrZSkucmVwbGFjZShjbyxcIlxcblwiKS5yZXBsYWNlKGNhLFwiXCIpfWZ1bmN0aW9uIGNsKGUsdCl7cmV0dXJuIHQ9Y2kodCksY2koZSk9PT10fWZ1bmN0aW9uIGNzKGUsdCxuLHIsbyxhKXtzd2l0Y2gobil7Y2FzZVwiY2hpbGRyZW5cIjpcInN0cmluZ1wiPT10eXBlb2Ygcj9cImJvZHlcIj09PXR8fFwidGV4dGFyZWFcIj09PXQmJlwiXCI9PT1yfHx0cyhlLHIpOihcIm51bWJlclwiPT10eXBlb2Ygcnx8XCJiaWdpbnRcIj09dHlwZW9mIHIpJiZcImJvZHlcIiE9PXQmJnRzKGUsXCJcIityKTticmVhaztjYXNlXCJjbGFzc05hbWVcIjplNChlLFwiY2xhc3NcIixyKTticmVhaztjYXNlXCJ0YWJJbmRleFwiOmU0KGUsXCJ0YWJpbmRleFwiLHIpO2JyZWFrO2Nhc2VcImRpclwiOmNhc2VcInJvbGVcIjpjYXNlXCJ2aWV3Qm94XCI6Y2FzZVwid2lkdGhcIjpjYXNlXCJoZWlnaHRcIjplNChlLG4scik7YnJlYWs7Y2FzZVwic3R5bGVcIjp0ZChlLHIsYSk7YnJlYWs7Y2FzZVwiZGF0YVwiOmlmKFwib2JqZWN0XCIhPT10KXtlNChlLFwiZGF0YVwiLHIpO2JyZWFrfWNhc2VcInNyY1wiOmNhc2VcImhyZWZcIjppZihcIlwiPT09ciYmKFwiYVwiIT09dHx8XCJocmVmXCIhPT1uKXx8bnVsbD09cnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcnx8XCJzeW1ib2xcIj09dHlwZW9mIHJ8fFwiYm9vbGVhblwiPT10eXBlb2Ygcil7ZS5yZW1vdmVBdHRyaWJ1dGUobik7YnJlYWt9cj10bShcIlwiK3IpLGUuc2V0QXR0cmlidXRlKG4scik7YnJlYWs7Y2FzZVwiYWN0aW9uXCI6Y2FzZVwiZm9ybUFjdGlvblwiOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpe2Uuc2V0QXR0cmlidXRlKG4sXCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignQSBSZWFjdCBmb3JtIHdhcyB1bmV4cGVjdGVkbHkgc3VibWl0dGVkLiBJZiB5b3UgY2FsbGVkIGZvcm0uc3VibWl0KCkgbWFudWFsbHksIGNvbnNpZGVyIHVzaW5nIGZvcm0ucmVxdWVzdFN1Ym1pdCgpIGluc3RlYWQuIElmIHlvdVxcXFwncmUgdHJ5aW5nIHRvIHVzZSBldmVudC5zdG9wUHJvcGFnYXRpb24oKSBpbiBhIHN1Ym1pdCBldmVudCBoYW5kbGVyLCBjb25zaWRlciBhbHNvIGNhbGxpbmcgZXZlbnQucHJldmVudERlZmF1bHQoKS4nKVwiKTticmVha31pZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBhJiYoXCJmb3JtQWN0aW9uXCI9PT1uPyhcImlucHV0XCIhPT10JiZjcyhlLHQsXCJuYW1lXCIsby5uYW1lLG8sbnVsbCksY3MoZSx0LFwiZm9ybUVuY1R5cGVcIixvLmZvcm1FbmNUeXBlLG8sbnVsbCksY3MoZSx0LFwiZm9ybU1ldGhvZFwiLG8uZm9ybU1ldGhvZCxvLG51bGwpLGNzKGUsdCxcImZvcm1UYXJnZXRcIixvLmZvcm1UYXJnZXQsbyxudWxsKSk6KGNzKGUsdCxcImVuY1R5cGVcIixvLmVuY1R5cGUsbyxudWxsKSxjcyhlLHQsXCJtZXRob2RcIixvLm1ldGhvZCxvLG51bGwpLGNzKGUsdCxcInRhcmdldFwiLG8udGFyZ2V0LG8sbnVsbCkpKSxudWxsPT1yfHxcInN5bWJvbFwiPT10eXBlb2Ygcnx8XCJib29sZWFuXCI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZShuKTticmVha31yPXRtKFwiXCIrciksZS5zZXRBdHRyaWJ1dGUobixyKTticmVhaztjYXNlXCJvbkNsaWNrXCI6bnVsbCE9ciYmKGUub25jbGljaz10Zyk7YnJlYWs7Y2FzZVwib25TY3JvbGxcIjpudWxsIT1yJiZzNShcInNjcm9sbFwiLGUpO2JyZWFrO2Nhc2VcIm9uU2Nyb2xsRW5kXCI6bnVsbCE9ciYmczUoXCJzY3JvbGxlbmRcIixlKTticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByfHwhKFwiX19odG1sXCJpbiByKSl0aHJvdyBFcnJvcihsKDYxKSk7aWYobnVsbCE9KG49ci5fX2h0bWwpKXtpZihudWxsIT1vLmNoaWxkcmVuKXRocm93IEVycm9yKGwoNjApKTtlLmlubmVySFRNTD1ufX1icmVhaztjYXNlXCJtdWx0aXBsZVwiOmUubXVsdGlwbGU9ciYmXCJmdW5jdGlvblwiIT10eXBlb2YgciYmXCJzeW1ib2xcIiE9dHlwZW9mIHI7YnJlYWs7Y2FzZVwibXV0ZWRcIjplLm11dGVkPXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByO2JyZWFrO2Nhc2VcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiOmNhc2VcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiOmNhc2VcImRlZmF1bHRWYWx1ZVwiOmNhc2VcImRlZmF1bHRDaGVja2VkXCI6Y2FzZVwiaW5uZXJIVE1MXCI6Y2FzZVwicmVmXCI6Y2FzZVwiYXV0b0ZvY3VzXCI6Y2FzZVwiaW5uZXJUZXh0XCI6Y2FzZVwidGV4dENvbnRlbnRcIjpicmVhaztjYXNlXCJ4bGlua0hyZWZcIjppZihudWxsPT1yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByfHxcImJvb2xlYW5cIj09dHlwZW9mIHJ8fFwic3ltYm9sXCI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZShcInhsaW5rOmhyZWZcIik7YnJlYWt9bj10bShcIlwiK3IpLGUuc2V0QXR0cmlidXRlTlMoXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazpocmVmXCIsbik7YnJlYWs7Y2FzZVwiY29udGVudEVkaXRhYmxlXCI6Y2FzZVwic3BlbGxDaGVja1wiOmNhc2VcImRyYWdnYWJsZVwiOmNhc2VcInZhbHVlXCI6Y2FzZVwiYXV0b1JldmVyc2VcIjpjYXNlXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCI6Y2FzZVwiZm9jdXNhYmxlXCI6Y2FzZVwicHJlc2VydmVBbHBoYVwiOm51bGwhPXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKG4sXCJcIityKTplLnJlbW92ZUF0dHJpYnV0ZShuKTticmVhaztjYXNlXCJpbmVydFwiOmNhc2VcImFsbG93RnVsbFNjcmVlblwiOmNhc2VcImFzeW5jXCI6Y2FzZVwiYXV0b1BsYXlcIjpjYXNlXCJjb250cm9sc1wiOmNhc2VcImRlZmF1bHRcIjpjYXNlXCJkZWZlclwiOmNhc2VcImRpc2FibGVkXCI6Y2FzZVwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVcIjpjYXNlXCJkaXNhYmxlUmVtb3RlUGxheWJhY2tcIjpjYXNlXCJmb3JtTm9WYWxpZGF0ZVwiOmNhc2VcImhpZGRlblwiOmNhc2VcImxvb3BcIjpjYXNlXCJub01vZHVsZVwiOmNhc2VcIm5vVmFsaWRhdGVcIjpjYXNlXCJvcGVuXCI6Y2FzZVwicGxheXNJbmxpbmVcIjpjYXNlXCJyZWFkT25seVwiOmNhc2VcInJlcXVpcmVkXCI6Y2FzZVwicmV2ZXJzZWRcIjpjYXNlXCJzY29wZWRcIjpjYXNlXCJzZWFtbGVzc1wiOmNhc2VcIml0ZW1TY29wZVwiOnImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKG4sXCJcIik6ZS5yZW1vdmVBdHRyaWJ1dGUobik7YnJlYWs7Y2FzZVwiY2FwdHVyZVwiOmNhc2VcImRvd25sb2FkXCI6ITA9PT1yP2Uuc2V0QXR0cmlidXRlKG4sXCJcIik6ITEhPT1yJiZudWxsIT1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZcInN5bWJvbFwiIT10eXBlb2Ygcj9lLnNldEF0dHJpYnV0ZShuLHIpOmUucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrO2Nhc2VcImNvbHNcIjpjYXNlXCJyb3dzXCI6Y2FzZVwic2l6ZVwiOmNhc2VcInNwYW5cIjpudWxsIT1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZcInN5bWJvbFwiIT10eXBlb2YgciYmIWlzTmFOKHIpJiYxPD1yP2Uuc2V0QXR0cmlidXRlKG4scik6ZS5yZW1vdmVBdHRyaWJ1dGUobik7YnJlYWs7Y2FzZVwicm93U3BhblwiOmNhc2VcInN0YXJ0XCI6bnVsbD09cnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcnx8XCJzeW1ib2xcIj09dHlwZW9mIHJ8fGlzTmFOKHIpP2UucmVtb3ZlQXR0cmlidXRlKG4pOmUuc2V0QXR0cmlidXRlKG4scik7YnJlYWs7Y2FzZVwicG9wb3ZlclwiOnM1KFwiYmVmb3JldG9nZ2xlXCIsZSksczUoXCJ0b2dnbGVcIixlKSxlMihlLFwicG9wb3ZlclwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rQWN0dWF0ZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazphY3R1YXRlXCIscik7YnJlYWs7Y2FzZVwieGxpbmtBcmNyb2xlXCI6ZTUoZSxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcInhsaW5rOmFyY3JvbGVcIixyKTticmVhaztjYXNlXCJ4bGlua1JvbGVcIjplNShlLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFwieGxpbms6cm9sZVwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rU2hvd1wiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazpzaG93XCIscik7YnJlYWs7Y2FzZVwieGxpbmtUaXRsZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazp0aXRsZVwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rVHlwZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazp0eXBlXCIscik7YnJlYWs7Y2FzZVwieG1sQmFzZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcInhtbDpiYXNlXCIscik7YnJlYWs7Y2FzZVwieG1sTGFuZ1wiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcInhtbDpsYW5nXCIscik7YnJlYWs7Y2FzZVwieG1sU3BhY2VcIjplNShlLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsXCJ4bWw6c3BhY2VcIixyKTticmVhaztjYXNlXCJpc1wiOmUyKGUsXCJpc1wiLHIpO2JyZWFrO2RlZmF1bHQ6MjxuLmxlbmd0aCYmKFwib1wiPT09blswXXx8XCJPXCI9PT1uWzBdKSYmKFwiblwiPT09blsxXXx8XCJOXCI9PT1uWzFdKXx8ZTIoZSxuPXRwLmdldChuKXx8bixyKX19ZnVuY3Rpb24gY2MoZSx0LG4scixvLGEpe3N3aXRjaChuKXtjYXNlXCJzdHlsZVwiOnRkKGUscixhKTticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByfHwhKFwiX19odG1sXCJpbiByKSl0aHJvdyBFcnJvcihsKDYxKSk7aWYobnVsbCE9KG49ci5fX2h0bWwpKXtpZihudWxsIT1vLmNoaWxkcmVuKXRocm93IEVycm9yKGwoNjApKTtlLmlubmVySFRNTD1ufX1icmVhaztjYXNlXCJjaGlsZHJlblwiOlwic3RyaW5nXCI9PXR5cGVvZiByP3RzKGUscik6KFwibnVtYmVyXCI9PXR5cGVvZiByfHxcImJpZ2ludFwiPT10eXBlb2YgcikmJnRzKGUsXCJcIityKTticmVhaztjYXNlXCJvblNjcm9sbFwiOm51bGwhPXImJnM1KFwic2Nyb2xsXCIsZSk7YnJlYWs7Y2FzZVwib25TY3JvbGxFbmRcIjpudWxsIT1yJiZzNShcInNjcm9sbGVuZFwiLGUpO2JyZWFrO2Nhc2VcIm9uQ2xpY2tcIjpudWxsIT1yJiYoZS5vbmNsaWNrPXRnKTticmVhaztjYXNlXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIjpjYXNlXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjpjYXNlXCJpbm5lckhUTUxcIjpjYXNlXCJyZWZcIjpjYXNlXCJpbm5lclRleHRcIjpjYXNlXCJ0ZXh0Q29udGVudFwiOmJyZWFrO2RlZmF1bHQ6aWYoIWVYLmhhc093blByb3BlcnR5KG4pKWU6e2lmKFwib1wiPT09blswXSYmXCJuXCI9PT1uWzFdJiYobz1uLmVuZHNXaXRoKFwiQ2FwdHVyZVwiKSx0PW4uc2xpY2UoMixvP24ubGVuZ3RoLTc6dm9pZCAwKSxcImZ1bmN0aW9uXCI9PXR5cGVvZihhPW51bGwhPShhPWVbZUxdfHxudWxsKT9hW25dOm51bGwpJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxhLG8pLFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpKXtcImZ1bmN0aW9uXCIhPXR5cGVvZiBhJiZudWxsIT09YSYmKG4gaW4gZT9lW25dPW51bGw6ZS5oYXNBdHRyaWJ1dGUobikmJmUucmVtb3ZlQXR0cmlidXRlKG4pKSxlLmFkZEV2ZW50TGlzdGVuZXIodCxyLG8pO2JyZWFrIGV9biBpbiBlP2Vbbl09cjohMD09PXI/ZS5zZXRBdHRyaWJ1dGUobixcIlwiKTplMihlLG4scil9fX1mdW5jdGlvbiBjdShlLHQsbil7c3dpdGNoKHQpe2Nhc2VcImRpdlwiOmNhc2VcInNwYW5cIjpjYXNlXCJzdmdcIjpjYXNlXCJwYXRoXCI6Y2FzZVwiYVwiOmNhc2VcImdcIjpjYXNlXCJwXCI6Y2FzZVwibGlcIjpicmVhaztjYXNlXCJpbWdcIjpzNShcImVycm9yXCIsZSksczUoXCJsb2FkXCIsZSk7dmFyIHIsbz0hMSxhPSExO2ZvcihyIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIGk9bltyXTtpZihudWxsIT1pKXN3aXRjaChyKXtjYXNlXCJzcmNcIjpvPSEwO2JyZWFrO2Nhc2VcInNyY1NldFwiOmE9ITA7YnJlYWs7Y2FzZVwiY2hpbGRyZW5cIjpjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOnRocm93IEVycm9yKGwoMTM3LHQpKTtkZWZhdWx0OmNzKGUsdCxyLGksbixudWxsKX19YSYmY3MoZSx0LFwic3JjU2V0XCIsbi5zcmNTZXQsbixudWxsKSxvJiZjcyhlLHQsXCJzcmNcIixuLnNyYyxuLG51bGwpO3JldHVybjtjYXNlXCJpbnB1dFwiOnM1KFwiaW52YWxpZFwiLGUpO3ZhciBzPXI9aT1hPW51bGwsYz1udWxsLHU9bnVsbDtmb3IobyBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkobykpe3ZhciBkPW5bb107aWYobnVsbCE9ZClzd2l0Y2gobyl7Y2FzZVwibmFtZVwiOmE9ZDticmVhaztjYXNlXCJ0eXBlXCI6aT1kO2JyZWFrO2Nhc2VcImNoZWNrZWRcIjpjPWQ7YnJlYWs7Y2FzZVwiZGVmYXVsdENoZWNrZWRcIjp1PWQ7YnJlYWs7Y2FzZVwidmFsdWVcIjpyPWQ7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6cz1kO2JyZWFrO2Nhc2VcImNoaWxkcmVuXCI6Y2FzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjppZihudWxsIT1kKXRocm93IEVycm9yKGwoMTM3LHQpKTticmVhaztkZWZhdWx0OmNzKGUsdCxvLGQsbixudWxsKX19dHIoZSxyLHMsYyx1LGksYSwhMSk7cmV0dXJuO2Nhc2VcInNlbGVjdFwiOmZvcihhIGluIHM1KFwiaW52YWxpZFwiLGUpLG89aT1yPW51bGwsbilpZihuLmhhc093blByb3BlcnR5KGEpJiZudWxsIT0ocz1uW2FdKSlzd2l0Y2goYSl7Y2FzZVwidmFsdWVcIjpyPXM7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6aT1zO2JyZWFrO2Nhc2VcIm11bHRpcGxlXCI6bz1zO2RlZmF1bHQ6Y3MoZSx0LGEscyxuLG51bGwpfXQ9cixuPWksZS5tdWx0aXBsZT0hIW8sbnVsbCE9dD90YShlLCEhbyx0LCExKTpudWxsIT1uJiZ0YShlLCEhbyxuLCEwKTtyZXR1cm47Y2FzZVwidGV4dGFyZWFcIjpmb3IoaSBpbiBzNShcImludmFsaWRcIixlKSxyPWE9bz1udWxsLG4paWYobi5oYXNPd25Qcm9wZXJ0eShpKSYmbnVsbCE9KHM9bltpXSkpc3dpdGNoKGkpe2Nhc2VcInZhbHVlXCI6bz1zO2JyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOmE9czticmVhaztjYXNlXCJjaGlsZHJlblwiOnI9czticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXMpdGhyb3cgRXJyb3IobCg5MSkpO2JyZWFrO2RlZmF1bHQ6Y3MoZSx0LGkscyxuLG51bGwpfXRsKGUsbyxhLHIpO3JldHVybjtjYXNlXCJvcHRpb25cIjpmb3IoYyBpbiBuKW4uaGFzT3duUHJvcGVydHkoYykmJm51bGwhPShvPW5bY10pJiYoXCJzZWxlY3RlZFwiPT09Yz9lLnNlbGVjdGVkPW8mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJlwic3ltYm9sXCIhPXR5cGVvZiBvOmNzKGUsdCxjLG8sbixudWxsKSk7cmV0dXJuO2Nhc2VcImRpYWxvZ1wiOnM1KFwiYmVmb3JldG9nZ2xlXCIsZSksczUoXCJ0b2dnbGVcIixlKSxzNShcImNhbmNlbFwiLGUpLHM1KFwiY2xvc2VcIixlKTticmVhaztjYXNlXCJpZnJhbWVcIjpjYXNlXCJvYmplY3RcIjpzNShcImxvYWRcIixlKTticmVhaztjYXNlXCJ2aWRlb1wiOmNhc2VcImF1ZGlvXCI6Zm9yKG89MDtvPHMxLmxlbmd0aDtvKyspczUoczFbb10sZSk7YnJlYWs7Y2FzZVwiaW1hZ2VcIjpzNShcImVycm9yXCIsZSksczUoXCJsb2FkXCIsZSk7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOnM1KFwidG9nZ2xlXCIsZSk7YnJlYWs7Y2FzZVwiZW1iZWRcIjpjYXNlXCJzb3VyY2VcIjpjYXNlXCJsaW5rXCI6czUoXCJlcnJvclwiLGUpLHM1KFwibG9hZFwiLGUpO2Nhc2VcImFyZWFcIjpjYXNlXCJiYXNlXCI6Y2FzZVwiYnJcIjpjYXNlXCJjb2xcIjpjYXNlXCJoclwiOmNhc2VcImtleWdlblwiOmNhc2VcIm1ldGFcIjpjYXNlXCJwYXJhbVwiOmNhc2VcInRyYWNrXCI6Y2FzZVwid2JyXCI6Y2FzZVwibWVudWl0ZW1cIjpmb3IodSBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodSkmJm51bGwhPShvPW5bdV0pKXN3aXRjaCh1KXtjYXNlXCJjaGlsZHJlblwiOmNhc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6dGhyb3cgRXJyb3IobCgxMzcsdCkpO2RlZmF1bHQ6Y3MoZSx0LHUsbyxuLG51bGwpfXJldHVybjtkZWZhdWx0OmlmKHRmKHQpKXtmb3IoZCBpbiBuKW4uaGFzT3duUHJvcGVydHkoZCkmJnZvaWQgMCE9PShvPW5bZF0pJiZjYyhlLHQsZCxvLG4sdm9pZCAwKTtyZXR1cm59fWZvcihzIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShzKSYmbnVsbCE9KG89bltzXSkmJmNzKGUsdCxzLG8sbixudWxsKX12YXIgY2Q9bnVsbCxjZj1udWxsO2Z1bmN0aW9uIGNwKGUpe3JldHVybiA5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH1mdW5jdGlvbiBjaChlKXtzd2l0Y2goZSl7Y2FzZVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjpyZXR1cm4gMTtjYXNlXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gY20oZSx0KXtpZigwPT09ZSlzd2l0Y2godCl7Y2FzZVwic3ZnXCI6cmV0dXJuIDE7Y2FzZVwibWF0aFwiOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9cmV0dXJuIDE9PT1lJiZcImZvcmVpZ25PYmplY3RcIj09PXQ/MDplfWZ1bmN0aW9uIGNnKGUsdCl7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09ZXx8XCJub3NjcmlwdFwiPT09ZXx8XCJzdHJpbmdcIj09dHlwZW9mIHQuY2hpbGRyZW58fFwibnVtYmVyXCI9PXR5cGVvZiB0LmNoaWxkcmVufHxcImJpZ2ludFwiPT10eXBlb2YgdC5jaGlsZHJlbnx8XCJvYmplY3RcIj09dHlwZW9mIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgY3k9bnVsbCxjdj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLGNiPVwiZnVuY3Rpb25cIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLGNBPVwiZnVuY3Rpb25cIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZTp2b2lkIDAsY3g9XCJmdW5jdGlvblwiPT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6dm9pZCAwIT09Y0E/ZnVuY3Rpb24oZSl7cmV0dXJuIGNBLnJlc29sdmUobnVsbCkudGhlbihlKS5jYXRjaChjdyl9OmN2O2Z1bmN0aW9uIGN3KGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9ZnVuY3Rpb24gY0MoZSl7cmV0dXJuXCJoZWFkXCI9PT1lfWZ1bmN0aW9uIGNfKGUsdCl7dmFyIG49dCxyPTA7ZG97dmFyIG89bi5uZXh0U2libGluZztpZihlLnJlbW92ZUNoaWxkKG4pLG8mJjg9PT1vLm5vZGVUeXBlKWlmKFwiLyRcIj09PShuPW8uZGF0YSl8fFwiLyZcIj09PW4pe2lmKDA9PT1yKXtlLnJlbW92ZUNoaWxkKG8pLHVPKHQpO3JldHVybn1yLS19ZWxzZSBpZihcIiRcIj09PW58fFwiJD9cIj09PW58fFwiJH5cIj09PW58fFwiJCFcIj09PW58fFwiJlwiPT09bilyKys7ZWxzZSBpZihcImh0bWxcIj09PW4pY0QoZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7ZWxzZSBpZihcImhlYWRcIj09PW4pe2NEKG49ZS5vd25lckRvY3VtZW50LmhlYWQpO2Zvcih2YXIgYT1uLmZpcnN0Q2hpbGQ7YTspe3ZhciBpPWEubmV4dFNpYmxpbmcsbD1hLm5vZGVOYW1lO2FbZUZdfHxcIlNDUklQVFwiPT09bHx8XCJTVFlMRVwiPT09bHx8XCJMSU5LXCI9PT1sJiZcInN0eWxlc2hlZXRcIj09PWEucmVsLnRvTG93ZXJDYXNlKCl8fG4ucmVtb3ZlQ2hpbGQoYSksYT1pfX1lbHNlXCJib2R5XCI9PT1uJiZjRChlLm93bmVyRG9jdW1lbnQuYm9keSk7bj1vfXdoaWxlKG4pO3VPKHQpfWZ1bmN0aW9uIGNrKGUsdCl7dmFyIG49ZTtlPTA7ZG97dmFyIHI9bi5uZXh0U2libGluZztpZigxPT09bi5ub2RlVHlwZT90PyhuLl9zdGFzaGVkRGlzcGxheT1uLnN0eWxlLmRpc3BsYXksbi5zdHlsZS5kaXNwbGF5PVwibm9uZVwiKToobi5zdHlsZS5kaXNwbGF5PW4uX3N0YXNoZWREaXNwbGF5fHxcIlwiLFwiXCI9PT1uLmdldEF0dHJpYnV0ZShcInN0eWxlXCIpJiZuLnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpKTozPT09bi5ub2RlVHlwZSYmKHQ/KG4uX3N0YXNoZWRUZXh0PW4ubm9kZVZhbHVlLG4ubm9kZVZhbHVlPVwiXCIpOm4ubm9kZVZhbHVlPW4uX3N0YXNoZWRUZXh0fHxcIlwiKSxyJiY4PT09ci5ub2RlVHlwZSlpZihcIi8kXCI9PT0obj1yLmRhdGEpKWlmKDA9PT1lKWJyZWFrO2Vsc2UgZS0tO2Vsc2VcIiRcIiE9PW4mJlwiJD9cIiE9PW4mJlwiJH5cIiE9PW4mJlwiJCFcIiE9PW58fGUrKztuPXJ9d2hpbGUobil9ZnVuY3Rpb24gY0UoZSl7dmFyIHQ9ZS5maXJzdENoaWxkO2Zvcih0JiYxMD09PXQubm9kZVR5cGUmJih0PXQubmV4dFNpYmxpbmcpO3Q7KXt2YXIgbj10O3N3aXRjaCh0PXQubmV4dFNpYmxpbmcsbi5ub2RlTmFtZSl7Y2FzZVwiSFRNTFwiOmNhc2VcIkhFQURcIjpjYXNlXCJCT0RZXCI6Y0UobiksZXEobik7Y29udGludWU7Y2FzZVwiU0NSSVBUXCI6Y2FzZVwiU1RZTEVcIjpjb250aW51ZTtjYXNlXCJMSU5LXCI6aWYoXCJzdHlsZXNoZWV0XCI9PT1uLnJlbC50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlfWUucmVtb3ZlQ2hpbGQobil9fWZ1bmN0aW9uIGNqKGUsdCl7Zm9yKDs4IT09ZS5ub2RlVHlwZTspaWYoIXR8fG51bGw9PT0oZT1jQihlLm5leHRTaWJsaW5nKSkpcmV0dXJuIG51bGw7cmV0dXJuIGV9ZnVuY3Rpb24gY1MoZSl7cmV0dXJuXCIkP1wiPT09ZS5kYXRhfHxcIiR+XCI9PT1lLmRhdGF9ZnVuY3Rpb24gY08oZSl7cmV0dXJuXCIkIVwiPT09ZS5kYXRhfHxcIiQ/XCI9PT1lLmRhdGEmJlwibG9hZGluZ1wiIT09ZS5vd25lckRvY3VtZW50LnJlYWR5U3RhdGV9ZnVuY3Rpb24gY0IoZSl7Zm9yKDtudWxsIT1lO2U9ZS5uZXh0U2libGluZyl7dmFyIHQ9ZS5ub2RlVHlwZTtpZigxPT09dHx8Mz09PXQpYnJlYWs7aWYoOD09PXQpe2lmKFwiJFwiPT09KHQ9ZS5kYXRhKXx8XCIkIVwiPT09dHx8XCIkP1wiPT09dHx8XCIkflwiPT09dHx8XCImXCI9PT10fHxcIkYhXCI9PT10fHxcIkZcIj09PXQpYnJlYWs7aWYoXCIvJFwiPT09dHx8XCIvJlwiPT09dClyZXR1cm4gbnVsbH19cmV0dXJuIGV9dmFyIGNQPW51bGw7ZnVuY3Rpb24gY0koZSl7ZT1lLm5leHRTaWJsaW5nO2Zvcih2YXIgdD0wO2U7KXtpZig4PT09ZS5ub2RlVHlwZSl7dmFyIG49ZS5kYXRhO2lmKFwiLyRcIj09PW58fFwiLyZcIj09PW4pe2lmKDA9PT10KXJldHVybiBjQihlLm5leHRTaWJsaW5nKTt0LS19ZWxzZVwiJFwiIT09biYmXCIkIVwiIT09biYmXCIkP1wiIT09biYmXCIkflwiIT09biYmXCImXCIhPT1ufHx0Kyt9ZT1lLm5leHRTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGNUKGUpe2U9ZS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciB0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYoXCIkXCI9PT1ufHxcIiQhXCI9PT1ufHxcIiQ/XCI9PT1ufHxcIiR+XCI9PT1ufHxcIiZcIj09PW4pe2lmKDA9PT10KXJldHVybiBlO3QtLX1lbHNlXCIvJFwiIT09biYmXCIvJlwiIT09bnx8dCsrfWU9ZS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY3ooZSx0LG4pe3N3aXRjaCh0PWNwKG4pLGUpe2Nhc2VcImh0bWxcIjppZighKGU9dC5kb2N1bWVudEVsZW1lbnQpKXRocm93IEVycm9yKGwoNDUyKSk7cmV0dXJuIGU7Y2FzZVwiaGVhZFwiOmlmKCEoZT10LmhlYWQpKXRocm93IEVycm9yKGwoNDUzKSk7cmV0dXJuIGU7Y2FzZVwiYm9keVwiOmlmKCEoZT10LmJvZHkpKXRocm93IEVycm9yKGwoNDU0KSk7cmV0dXJuIGU7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ1MSkpfX1mdW5jdGlvbiBjRChlKXtmb3IodmFyIHQ9ZS5hdHRyaWJ1dGVzO3QubGVuZ3RoOyllLnJlbW92ZUF0dHJpYnV0ZU5vZGUodFswXSk7ZXEoZSl9dmFyIGNMPW5ldyBNYXAsY049bmV3IFNldDtmdW5jdGlvbiBjUihlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmdldFJvb3ROb2RlP2UuZ2V0Um9vdE5vZGUoKTo5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH12YXIgY009VC5kO1QuZD17ZjpmdW5jdGlvbigpe3ZhciBlPWNNLmYoKSx0PXNjKCk7cmV0dXJuIGV8fHR9LHI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZVYoZSk7bnVsbCE9PXQmJjU9PT10LnRhZyYmXCJmb3JtXCI9PT10LnR5cGU/YVEodCk6Y00ucihlKX0sRDpmdW5jdGlvbihlKXtjTS5EKGUpLGNVKFwiZG5zLXByZWZldGNoXCIsZSxudWxsKX0sQzpmdW5jdGlvbihlLHQpe2NNLkMoZSx0KSxjVShcInByZWNvbm5lY3RcIixlLHQpfSxMOmZ1bmN0aW9uKGUsdCxuKXtpZihjTS5MKGUsdCxuKSxjWiYmZSYmdCl7dmFyIHI9J2xpbmtbcmVsPVwicHJlbG9hZFwiXVthcz1cIicrdHQodCkrJ1wiXSc7XCJpbWFnZVwiPT09dCYmbiYmbi5pbWFnZVNyY1NldD8ocis9J1tpbWFnZXNyY3NldD1cIicrdHQobi5pbWFnZVNyY1NldCkrJ1wiXScsXCJzdHJpbmdcIj09dHlwZW9mIG4uaW1hZ2VTaXplcyYmKHIrPSdbaW1hZ2VzaXplcz1cIicrdHQobi5pbWFnZVNpemVzKSsnXCJdJykpOnIrPSdbaHJlZj1cIicrdHQoZSkrJ1wiXSc7dmFyIG89cjtzd2l0Y2godCl7Y2FzZVwic3R5bGVcIjpvPWNxKGUpO2JyZWFrO2Nhc2VcInNjcmlwdFwiOm89YyQoZSl9Y0wuaGFzKG8pfHwoZT1mKHtyZWw6XCJwcmVsb2FkXCIsaHJlZjpcImltYWdlXCI9PT10JiZuJiZuLmltYWdlU3JjU2V0P3ZvaWQgMDplLGFzOnR9LG4pLGNMLnNldChvLGUpLG51bGwhPT1jWi5xdWVyeVNlbGVjdG9yKHIpfHxcInN0eWxlXCI9PT10JiZjWi5xdWVyeVNlbGVjdG9yKGNIKG8pKXx8XCJzY3JpcHRcIj09PXQmJmNaLnF1ZXJ5U2VsZWN0b3IoY1cobykpfHwoY3UodD1jWi5jcmVhdGVFbGVtZW50KFwibGlua1wiKSxcImxpbmtcIixlKSxlWSh0KSxjWi5oZWFkLmFwcGVuZENoaWxkKHQpKSl9fSxtOmZ1bmN0aW9uKGUsdCl7aWYoY00ubShlLHQpLGNaJiZlKXt2YXIgbj10JiZcInN0cmluZ1wiPT10eXBlb2YgdC5hcz90LmFzOlwic2NyaXB0XCIscj0nbGlua1tyZWw9XCJtb2R1bGVwcmVsb2FkXCJdW2FzPVwiJyt0dChuKSsnXCJdW2hyZWY9XCInK3R0KGUpKydcIl0nLG89cjtzd2l0Y2gobil7Y2FzZVwiYXVkaW93b3JrbGV0XCI6Y2FzZVwicGFpbnR3b3JrbGV0XCI6Y2FzZVwic2VydmljZXdvcmtlclwiOmNhc2VcInNoYXJlZHdvcmtlclwiOmNhc2VcIndvcmtlclwiOmNhc2VcInNjcmlwdFwiOm89YyQoZSl9aWYoIWNMLmhhcyhvKSYmKGU9Zih7cmVsOlwibW9kdWxlcHJlbG9hZFwiLGhyZWY6ZX0sdCksY0wuc2V0KG8sZSksbnVsbD09PWNaLnF1ZXJ5U2VsZWN0b3IocikpKXtzd2l0Y2gobil7Y2FzZVwiYXVkaW93b3JrbGV0XCI6Y2FzZVwicGFpbnR3b3JrbGV0XCI6Y2FzZVwic2VydmljZXdvcmtlclwiOmNhc2VcInNoYXJlZHdvcmtlclwiOmNhc2VcIndvcmtlclwiOmNhc2VcInNjcmlwdFwiOmlmKGNaLnF1ZXJ5U2VsZWN0b3IoY1cobykpKXJldHVybn1jdShuPWNaLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLFwibGlua1wiLGUpLGVZKG4pLGNaLmhlYWQuYXBwZW5kQ2hpbGQobil9fX0sWDpmdW5jdGlvbihlLHQpe2lmKGNNLlgoZSx0KSxjWiYmZSl7dmFyIG49ZVcoY1opLmhvaXN0YWJsZVNjcmlwdHMscj1jJChlKSxvPW4uZ2V0KHIpO298fCgobz1jWi5xdWVyeVNlbGVjdG9yKGNXKHIpKSl8fChlPWYoe3NyYzplLGFzeW5jOiEwfSx0KSwodD1jTC5nZXQocikpJiZjRyhlLHQpLGVZKG89Y1ouY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSksY3UobyxcImxpbmtcIixlKSxjWi5oZWFkLmFwcGVuZENoaWxkKG8pKSxvPXt0eXBlOlwic2NyaXB0XCIsaW5zdGFuY2U6byxjb3VudDoxLHN0YXRlOm51bGx9LG4uc2V0KHIsbykpfX0sUzpmdW5jdGlvbihlLHQsbil7aWYoY00uUyhlLHQsbiksY1omJmUpe3ZhciByPWVXKGNaKS5ob2lzdGFibGVTdHlsZXMsbz1jcShlKTt0PXR8fFwiZGVmYXVsdFwiO3ZhciBhPXIuZ2V0KG8pO2lmKCFhKXt2YXIgaT17bG9hZGluZzowLHByZWxvYWQ6bnVsbH07aWYoYT1jWi5xdWVyeVNlbGVjdG9yKGNIKG8pKSlpLmxvYWRpbmc9NTtlbHNle2U9Zih7cmVsOlwic3R5bGVzaGVldFwiLGhyZWY6ZSxcImRhdGEtcHJlY2VkZW5jZVwiOnR9LG4pLChuPWNMLmdldChvKSkmJmNYKGUsbik7dmFyIGw9YT1jWi5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtlWShsKSxjdShsLFwibGlua1wiLGUpLGwuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtsLm9ubG9hZD1lLGwub25lcnJvcj10fSksbC5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLGZ1bmN0aW9uKCl7aS5sb2FkaW5nfD0xfSksbC5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIixmdW5jdGlvbigpe2kubG9hZGluZ3w9Mn0pLGkubG9hZGluZ3w9NCxjSyhhLHQsY1opfWE9e3R5cGU6XCJzdHlsZXNoZWV0XCIsaW5zdGFuY2U6YSxjb3VudDoxLHN0YXRlOml9LHIuc2V0KG8sYSl9fX0sTTpmdW5jdGlvbihlLHQpe2lmKGNNLk0oZSx0KSxjWiYmZSl7dmFyIG49ZVcoY1opLmhvaXN0YWJsZVNjcmlwdHMscj1jJChlKSxvPW4uZ2V0KHIpO298fCgobz1jWi5xdWVyeVNlbGVjdG9yKGNXKHIpKSl8fChlPWYoe3NyYzplLGFzeW5jOiEwLHR5cGU6XCJtb2R1bGVcIn0sdCksKHQ9Y0wuZ2V0KHIpKSYmY0coZSx0KSxlWShvPWNaLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLGN1KG8sXCJsaW5rXCIsZSksY1ouaGVhZC5hcHBlbmRDaGlsZChvKSksbz17dHlwZTpcInNjcmlwdFwiLGluc3RhbmNlOm8sY291bnQ6MSxzdGF0ZTpudWxsfSxuLnNldChyLG8pKX19fTt2YXIgY1o9XCJ1bmRlZmluZWRcIj09dHlwZW9mIGRvY3VtZW50P251bGw6ZG9jdW1lbnQ7ZnVuY3Rpb24gY1UoZSx0LG4pe2lmKGNaJiZcInN0cmluZ1wiPT10eXBlb2YgdCYmdCl7dmFyIHI9dHQodCk7cj0nbGlua1tyZWw9XCInK2UrJ1wiXVtocmVmPVwiJytyKydcIl0nLFwic3RyaW5nXCI9PXR5cGVvZiBuJiYocis9J1tjcm9zc29yaWdpbj1cIicrbisnXCJdJyksY04uaGFzKHIpfHwoY04uYWRkKHIpLGU9e3JlbDplLGNyb3NzT3JpZ2luOm4saHJlZjp0fSxudWxsPT09Y1oucXVlcnlTZWxlY3RvcihyKSYmKGN1KHQ9Y1ouY3JlYXRlRWxlbWVudChcImxpbmtcIiksXCJsaW5rXCIsZSksZVkodCksY1ouaGVhZC5hcHBlbmRDaGlsZCh0KSkpfX1mdW5jdGlvbiBjRihlLHQsbixyKXt2YXIgbz0obz1GLmN1cnJlbnQpP2NSKG8pOm51bGw7aWYoIW8pdGhyb3cgRXJyb3IobCg0NDYpKTtzd2l0Y2goZSl7Y2FzZVwibWV0YVwiOmNhc2VcInRpdGxlXCI6cmV0dXJuIG51bGw7Y2FzZVwic3R5bGVcIjpyZXR1cm5cInN0cmluZ1wiPT10eXBlb2Ygbi5wcmVjZWRlbmNlJiZcInN0cmluZ1wiPT10eXBlb2Ygbi5ocmVmPyh0PWNxKG4uaHJlZiksKHI9KG49ZVcobykuaG9pc3RhYmxlU3R5bGVzKS5nZXQodCkpfHwocj17dHlwZTpcInN0eWxlXCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LG4uc2V0KHQscikpLHIpOnt0eXBlOlwidm9pZFwiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfTtjYXNlXCJsaW5rXCI6aWYoXCJzdHlsZXNoZWV0XCI9PT1uLnJlbCYmXCJzdHJpbmdcIj09dHlwZW9mIG4uaHJlZiYmXCJzdHJpbmdcIj09dHlwZW9mIG4ucHJlY2VkZW5jZSl7ZT1jcShuLmhyZWYpO3ZhciBhLGkscyxjLHU9ZVcobykuaG9pc3RhYmxlU3R5bGVzLGQ9dS5nZXQoZSk7aWYoZHx8KG89by5vd25lckRvY3VtZW50fHxvLGQ9e3R5cGU6XCJzdHlsZXNoZWV0XCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOntsb2FkaW5nOjAscHJlbG9hZDpudWxsfX0sdS5zZXQoZSxkKSwodT1vLnF1ZXJ5U2VsZWN0b3IoY0goZSkpKSYmIXUuX3AmJihkLmluc3RhbmNlPXUsZC5zdGF0ZS5sb2FkaW5nPTUpLGNMLmhhcyhlKXx8KG49e3JlbDpcInByZWxvYWRcIixhczpcInN0eWxlXCIsaHJlZjpuLmhyZWYsY3Jvc3NPcmlnaW46bi5jcm9zc09yaWdpbixpbnRlZ3JpdHk6bi5pbnRlZ3JpdHksbWVkaWE6bi5tZWRpYSxocmVmTGFuZzpuLmhyZWZMYW5nLHJlZmVycmVyUG9saWN5Om4ucmVmZXJyZXJQb2xpY3l9LGNMLnNldChlLG4pLHV8fChhPW8saT1lLHM9bixjPWQuc3RhdGUsYS5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD1cInByZWxvYWRcIl1bYXM9XCJzdHlsZVwiXVsnK2krXCJdXCIpP2MubG9hZGluZz0xOihjLnByZWxvYWQ9aT1hLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLGkuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBjLmxvYWRpbmd8PTF9KSxpLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLGZ1bmN0aW9uKCl7cmV0dXJuIGMubG9hZGluZ3w9Mn0pLGN1KGksXCJsaW5rXCIscyksZVkoaSksYS5oZWFkLmFwcGVuZENoaWxkKGkpKSkpKSx0JiZudWxsPT09cil0aHJvdyBFcnJvcihsKDUyOCxcIlwiKSk7cmV0dXJuIGR9aWYodCYmbnVsbCE9PXIpdGhyb3cgRXJyb3IobCg1MjksXCJcIikpO3JldHVybiBudWxsO2Nhc2VcInNjcmlwdFwiOnJldHVybiB0PW4uYXN5bmMsXCJzdHJpbmdcIj09dHlwZW9mKG49bi5zcmMpJiZ0JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiZcInN5bWJvbFwiIT10eXBlb2YgdD8odD1jJChuKSwocj0obj1lVyhvKS5ob2lzdGFibGVTY3JpcHRzKS5nZXQodCkpfHwocj17dHlwZTpcInNjcmlwdFwiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSxuLnNldCh0LHIpKSxyKTp7dHlwZTpcInZvaWRcIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ0NCxlKSl9fWZ1bmN0aW9uIGNxKGUpe3JldHVybidocmVmPVwiJyt0dChlKSsnXCInfWZ1bmN0aW9uIGNIKGUpe3JldHVybidsaW5rW3JlbD1cInN0eWxlc2hlZXRcIl1bJytlK1wiXVwifWZ1bmN0aW9uIGNWKGUpe3JldHVybiBmKHt9LGUse1wiZGF0YS1wcmVjZWRlbmNlXCI6ZS5wcmVjZWRlbmNlLHByZWNlZGVuY2U6bnVsbH0pfWZ1bmN0aW9uIGMkKGUpe3JldHVybidbc3JjPVwiJyt0dChlKSsnXCJdJ31mdW5jdGlvbiBjVyhlKXtyZXR1cm5cInNjcmlwdFthc3luY11cIitlfWZ1bmN0aW9uIGNZKGUsdCxuKXtpZih0LmNvdW50KyssbnVsbD09PXQuaW5zdGFuY2Upc3dpdGNoKHQudHlwZSl7Y2FzZVwic3R5bGVcIjp2YXIgcj1lLnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtaHJlZn49XCInK3R0KG4uaHJlZikrJ1wiXScpO2lmKHIpcmV0dXJuIHQuaW5zdGFuY2U9cixlWShyKSxyO3ZhciBvPWYoe30sbix7XCJkYXRhLWhyZWZcIjpuLmhyZWYsXCJkYXRhLXByZWNlZGVuY2VcIjpuLnByZWNlZGVuY2UsaHJlZjpudWxsLHByZWNlZGVuY2U6bnVsbH0pO3JldHVybiBlWShyPShlLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKSksY3UocixcInN0eWxlXCIsbyksY0socixuLnByZWNlZGVuY2UsZSksdC5pbnN0YW5jZT1yO2Nhc2VcInN0eWxlc2hlZXRcIjpvPWNxKG4uaHJlZik7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKGNIKG8pKTtpZihhKXJldHVybiB0LnN0YXRlLmxvYWRpbmd8PTQsdC5pbnN0YW5jZT1hLGVZKGEpLGE7cj1jVihuKSwobz1jTC5nZXQobykpJiZjWChyLG8pLGVZKGE9KGUub3duZXJEb2N1bWVudHx8ZSkuY3JlYXRlRWxlbWVudChcImxpbmtcIikpO3ZhciBpPWE7cmV0dXJuIGkuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtpLm9ubG9hZD1lLGkub25lcnJvcj10fSksY3UoYSxcImxpbmtcIixyKSx0LnN0YXRlLmxvYWRpbmd8PTQsY0soYSxuLnByZWNlZGVuY2UsZSksdC5pbnN0YW5jZT1hO2Nhc2VcInNjcmlwdFwiOmlmKGE9YyQobi5zcmMpLG89ZS5xdWVyeVNlbGVjdG9yKGNXKGEpKSlyZXR1cm4gdC5pbnN0YW5jZT1vLGVZKG8pLG87cmV0dXJuIHI9biwobz1jTC5nZXQoYSkpJiZjRyhyPWYoe30sbiksbyksZVkobz0oZT1lLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLGN1KG8sXCJsaW5rXCIsciksZS5oZWFkLmFwcGVuZENoaWxkKG8pLHQuaW5zdGFuY2U9bztjYXNlXCJ2b2lkXCI6cmV0dXJuIG51bGw7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ0Myx0LnR5cGUpKX1yZXR1cm5cInN0eWxlc2hlZXRcIj09PXQudHlwZSYmMD09KDQmdC5zdGF0ZS5sb2FkaW5nKSYmKHI9dC5pbnN0YW5jZSx0LnN0YXRlLmxvYWRpbmd8PTQsY0socixuLnByZWNlZGVuY2UsZSkpLHQuaW5zdGFuY2V9ZnVuY3Rpb24gY0soZSx0LG4pe2Zvcih2YXIgcj1uLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPVwic3R5bGVzaGVldFwiXVtkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0nKSxvPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV06bnVsbCxhPW8saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbD1yW2ldO2lmKGwuZGF0YXNldC5wcmVjZWRlbmNlPT09dClhPWw7ZWxzZSBpZihhIT09bylicmVha31hP2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxhLm5leHRTaWJsaW5nKToodD05PT09bi5ub2RlVHlwZT9uLmhlYWQ6bikuaW5zZXJ0QmVmb3JlKGUsdC5maXJzdENoaWxkKX1mdW5jdGlvbiBjWChlLHQpe251bGw9PWUuY3Jvc3NPcmlnaW4mJihlLmNyb3NzT3JpZ2luPXQuY3Jvc3NPcmlnaW4pLG51bGw9PWUucmVmZXJyZXJQb2xpY3kmJihlLnJlZmVycmVyUG9saWN5PXQucmVmZXJyZXJQb2xpY3kpLG51bGw9PWUudGl0bGUmJihlLnRpdGxlPXQudGl0bGUpfWZ1bmN0aW9uIGNHKGUsdCl7bnVsbD09ZS5jcm9zc09yaWdpbiYmKGUuY3Jvc3NPcmlnaW49dC5jcm9zc09yaWdpbiksbnVsbD09ZS5yZWZlcnJlclBvbGljeSYmKGUucmVmZXJyZXJQb2xpY3k9dC5yZWZlcnJlclBvbGljeSksbnVsbD09ZS5pbnRlZ3JpdHkmJihlLmludGVncml0eT10LmludGVncml0eSl9dmFyIGNRPW51bGw7ZnVuY3Rpb24gY0ooZSx0LG4pe2lmKG51bGw9PT1jUSl7dmFyIHI9bmV3IE1hcCxvPWNRPW5ldyBNYXA7by5zZXQobixyKX1lbHNlKHI9KG89Y1EpLmdldChuKSl8fChyPW5ldyBNYXAsby5zZXQobixyKSk7aWYoci5oYXMoZSkpcmV0dXJuIHI7Zm9yKHIuc2V0KGUsbnVsbCksbj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpLG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIGE9bltvXTtpZighKGFbZUZdfHxhW2VEXXx8XCJsaW5rXCI9PT1lJiZcInN0eWxlc2hlZXRcIj09PWEuZ2V0QXR0cmlidXRlKFwicmVsXCIpKSYmXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIT09YS5uYW1lc3BhY2VVUkkpe3ZhciBpPWEuZ2V0QXR0cmlidXRlKHQpfHxcIlwiO2k9ZStpO3ZhciBsPXIuZ2V0KGkpO2w/bC5wdXNoKGEpOnIuc2V0KGksW2FdKX19cmV0dXJuIHJ9ZnVuY3Rpb24gYzAoZSx0LG4peyhlPWUub3duZXJEb2N1bWVudHx8ZSkuaGVhZC5pbnNlcnRCZWZvcmUobixcInRpdGxlXCI9PT10P2UucXVlcnlTZWxlY3RvcihcImhlYWQgPiB0aXRsZVwiKTpudWxsKX1mdW5jdGlvbiBjMShlKXtyZXR1cm5cInN0eWxlc2hlZXRcIiE9PWUudHlwZXx8MCE9KDMmZS5zdGF0ZS5sb2FkaW5nKX12YXIgYzI9bnVsbDtmdW5jdGlvbiBjNCgpe2lmKHRoaXMuY291bnQtLSwwPT09dGhpcy5jb3VudCl7aWYodGhpcy5zdHlsZXNoZWV0cyljMyh0aGlzLHRoaXMuc3R5bGVzaGVldHMpO2Vsc2UgaWYodGhpcy51bnN1c3BlbmQpe3ZhciBlPXRoaXMudW5zdXNwZW5kO3RoaXMudW5zdXNwZW5kPW51bGwsZSgpfX19dmFyIGM1PW51bGw7ZnVuY3Rpb24gYzMoZSx0KXtlLnN0eWxlc2hlZXRzPW51bGwsbnVsbCE9PWUudW5zdXNwZW5kJiYoZS5jb3VudCsrLGM1PW5ldyBNYXAsdC5mb3JFYWNoKGM2LGUpLGM1PW51bGwsYzQuY2FsbChlKSl9ZnVuY3Rpb24gYzYoZSx0KXtpZighKDQmdC5zdGF0ZS5sb2FkaW5nKSl7dmFyIG49YzUuZ2V0KGUpO2lmKG4pdmFyIHI9bi5nZXQobnVsbCk7ZWxzZXtuPW5ldyBNYXAsYzUuc2V0KGUsbik7Zm9yKHZhciBvPWUucXVlcnlTZWxlY3RvckFsbChcImxpbmtbZGF0YS1wcmVjZWRlbmNlXSxzdHlsZVtkYXRhLXByZWNlZGVuY2VdXCIpLGE9MDthPG8ubGVuZ3RoO2ErKyl7dmFyIGk9b1thXTsoXCJMSU5LXCI9PT1pLm5vZGVOYW1lfHxcIm5vdCBhbGxcIiE9PWkuZ2V0QXR0cmlidXRlKFwibWVkaWFcIikpJiYobi5zZXQoaS5kYXRhc2V0LnByZWNlZGVuY2UsaSkscj1pKX1yJiZuLnNldChudWxsLHIpfWk9KG89dC5pbnN0YW5jZSkuZ2V0QXR0cmlidXRlKFwiZGF0YS1wcmVjZWRlbmNlXCIpLChhPW4uZ2V0KGkpfHxyKT09PXImJm4uc2V0KG51bGwsbyksbi5zZXQoaSxvKSx0aGlzLmNvdW50Kysscj1jNC5iaW5kKHRoaXMpLG8uYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixyKSxvLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLHIpLGE/YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShvLGEubmV4dFNpYmxpbmcpOihlPTk9PT1lLm5vZGVUeXBlP2UuaGVhZDplKS5pbnNlcnRCZWZvcmUobyxlLmZpcnN0Q2hpbGQpLHQuc3RhdGUubG9hZGluZ3w9NH19dmFyIGM5PXskJHR5cGVvZjpBLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfY3VycmVudFZhbHVlOnosX2N1cnJlbnRWYWx1ZTI6eixfdGhyZWFkQ291bnQ6MH07ZnVuY3Rpb24gYzgoZSx0LG4scixvLGEsaSxsLHMpe3RoaXMudGFnPTEsdGhpcy5jb250YWluZXJJbmZvPWUsdGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGwsdGhpcy50aW1lb3V0SGFuZGxlPS0xLHRoaXMuY2FsbGJhY2tOb2RlPXRoaXMubmV4dD10aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD10aGlzLmNhbmNlbFBlbmRpbmdDb21taXQ9bnVsbCx0aGlzLmNhbGxiYWNrUHJpb3JpdHk9MCx0aGlzLmV4cGlyYXRpb25UaW1lcz1laygtMSksdGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLnNoZWxsU3VzcGVuZENvdW50ZXI9dGhpcy5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcz10aGlzLmV4cGlyZWRMYW5lcz10aGlzLndhcm1MYW5lcz10aGlzLnBpbmdlZExhbmVzPXRoaXMuc3VzcGVuZGVkTGFuZXM9dGhpcy5wZW5kaW5nTGFuZXM9MCx0aGlzLmVudGFuZ2xlbWVudHM9ZWsoMCksdGhpcy5oaWRkZW5VcGRhdGVzPWVrKG51bGwpLHRoaXMuaWRlbnRpZmllclByZWZpeD1yLHRoaXMub25VbmNhdWdodEVycm9yPW8sdGhpcy5vbkNhdWdodEVycm9yPWEsdGhpcy5vblJlY292ZXJhYmxlRXJyb3I9aSx0aGlzLnBvb2xlZENhY2hlPW51bGwsdGhpcy5wb29sZWRDYWNoZUxhbmVzPTAsdGhpcy5mb3JtU3RhdGU9cyx0aGlzLmluY29tcGxldGVUcmFuc2l0aW9ucz1uZXcgTWFwfWZ1bmN0aW9uIGM3KGUsdCxuLHIsbyxhKXtvPW8/bjg6bjgsbnVsbD09PXIuY29udGV4dD9yLmNvbnRleHQ9bzpyLnBlbmRpbmdDb250ZXh0PW8sKHI9b18odCkpLnBheWxvYWQ9e2VsZW1lbnQ6bn0sbnVsbCE9PShhPXZvaWQgMD09PWE/bnVsbDphKSYmKHIuY2FsbGJhY2s9YSksbnVsbCE9PShuPW9rKGUscix0KSkmJihzYShuLGUsdCksb0UobixlLHQpKX1mdW5jdGlvbiB1ZShlLHQpe2lmKG51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpJiZudWxsIT09ZS5kZWh5ZHJhdGVkKXt2YXIgbj1lLnJldHJ5TGFuZTtlLnJldHJ5TGFuZT0wIT09biYmbjx0P246dH19ZnVuY3Rpb24gdXQoZSx0KXt1ZShlLHQpLChlPWUuYWx0ZXJuYXRlKSYmdWUoZSx0KX1mdW5jdGlvbiB1bihlKXtpZigxMz09PWUudGFnfHwzMT09PWUudGFnKXt2YXIgdD1uMyhlLDB4NDAwMDAwMCk7bnVsbCE9PXQmJnNhKHQsZSwweDQwMDAwMDApLHV0KGUsMHg0MDAwMDAwKX19ZnVuY3Rpb24gdXIoZSl7aWYoMTM9PT1lLnRhZ3x8MzE9PT1lLnRhZyl7dmFyIHQ9c3IoKSxuPW4zKGUsdD1lQih0KSk7bnVsbCE9PW4mJnNhKG4sZSx0KSx1dChlLHQpfX12YXIgdW89ITA7ZnVuY3Rpb24gdWEoZSx0LG4scil7dmFyIG89SS5UO0kuVD1udWxsO3ZhciBhPVQucDt0cnl7VC5wPTIsdWwoZSx0LG4scil9ZmluYWxseXtULnA9YSxJLlQ9b319ZnVuY3Rpb24gdWkoZSx0LG4scil7dmFyIG89SS5UO0kuVD1udWxsO3ZhciBhPVQucDt0cnl7VC5wPTgsdWwoZSx0LG4scil9ZmluYWxseXtULnA9YSxJLlQ9b319ZnVuY3Rpb24gdWwoZSx0LG4scil7aWYodW8pe3ZhciBvPXVzKHIpO2lmKG51bGw9PT1vKXM3KGUsdCxyLHVjLG4pLHVBKGUscik7ZWxzZSBpZihmdW5jdGlvbihlLHQsbixyLG8pe3N3aXRjaCh0KXtjYXNlXCJmb2N1c2luXCI6cmV0dXJuIHVwPXV4KHVwLGUsdCxuLHIsbyksITA7Y2FzZVwiZHJhZ2VudGVyXCI6cmV0dXJuIHVoPXV4KHVoLGUsdCxuLHIsbyksITA7Y2FzZVwibW91c2VvdmVyXCI6cmV0dXJuIHVtPXV4KHVtLGUsdCxuLHIsbyksITA7Y2FzZVwicG9pbnRlcm92ZXJcIjp2YXIgYT1vLnBvaW50ZXJJZDtyZXR1cm4gdWcuc2V0KGEsdXgodWcuZ2V0KGEpfHxudWxsLGUsdCxuLHIsbykpLCEwO2Nhc2VcImdvdHBvaW50ZXJjYXB0dXJlXCI6cmV0dXJuIGE9by5wb2ludGVySWQsdXkuc2V0KGEsdXgodXkuZ2V0KGEpfHxudWxsLGUsdCxuLHIsbykpLCEwfXJldHVybiExfShvLGUsdCxuLHIpKXIuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZih1QShlLHIpLDQmdCYmLTE8dWIuaW5kZXhPZihlKSl7Zm9yKDtudWxsIT09bzspe3ZhciBhPWVWKG8pO2lmKG51bGwhPT1hKXN3aXRjaChhLnRhZyl7Y2FzZSAzOmlmKChhPWEuc3RhdGVOb2RlKS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXt2YXIgaT1lQShhLnBlbmRpbmdMYW5lcyk7aWYoMCE9PWkpe3ZhciBsPWE7Zm9yKGwucGVuZGluZ0xhbmVzfD0yLGwuZW50YW5nbGVkTGFuZXN8PTI7aTspe3ZhciBzPTE8PDMxLWVtKGkpO2wuZW50YW5nbGVtZW50c1sxXXw9cyxpJj1+c31zcShhKSwwPT0oNiZsRCkmJihsMT1lcigpKzUwMCxzSCgwLCExKSl9fWJyZWFrO2Nhc2UgMzE6Y2FzZSAxMzpudWxsIT09KGw9bjMoYSwyKSkmJnNhKGwsYSwyKSxzYygpLHV0KGEsMil9aWYobnVsbD09PShhPXVzKHIpKSYmczcoZSx0LHIsdWMsbiksYT09PW8pYnJlYWs7bz1hfW51bGwhPT1vJiZyLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgczcoZSx0LHIsbnVsbCxuKX19ZnVuY3Rpb24gdXMoZSl7cmV0dXJuIHV1KGU9dHYoZSkpfXZhciB1Yz1udWxsO2Z1bmN0aW9uIHV1KGUpe2lmKHVjPW51bGwsbnVsbCE9PShlPWVIKGUpKSl7dmFyIHQ9cyhlKTtpZihudWxsPT09dCllPW51bGw7ZWxzZXt2YXIgbj10LnRhZztpZigxMz09PW4pe2lmKG51bGwhPT0oZT1jKHQpKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzMT09PW4pe2lmKG51bGwhPT0oZT11KHQpKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzPT09bil7aWYodC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gMz09PXQudGFnP3Quc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSB0IT09ZSYmKGU9bnVsbCl9fXJldHVybiB1Yz1lLG51bGx9ZnVuY3Rpb24gdWQoZSl7c3dpdGNoKGUpe2Nhc2VcImJlZm9yZXRvZ2dsZVwiOmNhc2VcImNhbmNlbFwiOmNhc2VcImNsaWNrXCI6Y2FzZVwiY2xvc2VcIjpjYXNlXCJjb250ZXh0bWVudVwiOmNhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJhdXhjbGlja1wiOmNhc2VcImRibGNsaWNrXCI6Y2FzZVwiZHJhZ2VuZFwiOmNhc2VcImRyYWdzdGFydFwiOmNhc2VcImRyb3BcIjpjYXNlXCJmb2N1c2luXCI6Y2FzZVwiZm9jdXNvdXRcIjpjYXNlXCJpbnB1dFwiOmNhc2VcImludmFsaWRcIjpjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5cHJlc3NcIjpjYXNlXCJrZXl1cFwiOmNhc2VcIm1vdXNlZG93blwiOmNhc2VcIm1vdXNldXBcIjpjYXNlXCJwYXN0ZVwiOmNhc2VcInBhdXNlXCI6Y2FzZVwicGxheVwiOmNhc2VcInBvaW50ZXJjYW5jZWxcIjpjYXNlXCJwb2ludGVyZG93blwiOmNhc2VcInBvaW50ZXJ1cFwiOmNhc2VcInJhdGVjaGFuZ2VcIjpjYXNlXCJyZXNldFwiOmNhc2VcInJlc2l6ZVwiOmNhc2VcInNlZWtlZFwiOmNhc2VcInN1Ym1pdFwiOmNhc2VcInRvZ2dsZVwiOmNhc2VcInRvdWNoY2FuY2VsXCI6Y2FzZVwidG91Y2hlbmRcIjpjYXNlXCJ0b3VjaHN0YXJ0XCI6Y2FzZVwidm9sdW1lY2hhbmdlXCI6Y2FzZVwiY2hhbmdlXCI6Y2FzZVwic2VsZWN0aW9uY2hhbmdlXCI6Y2FzZVwidGV4dElucHV0XCI6Y2FzZVwiY29tcG9zaXRpb25zdGFydFwiOmNhc2VcImNvbXBvc2l0aW9uZW5kXCI6Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjpjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Y2FzZVwiYmVmb3JlaW5wdXRcIjpjYXNlXCJibHVyXCI6Y2FzZVwiZnVsbHNjcmVlbmNoYW5nZVwiOmNhc2VcImZvY3VzXCI6Y2FzZVwiaGFzaGNoYW5nZVwiOmNhc2VcInBvcHN0YXRlXCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwic2VsZWN0c3RhcnRcIjpyZXR1cm4gMjtjYXNlXCJkcmFnXCI6Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2V4aXRcIjpjYXNlXCJkcmFnbGVhdmVcIjpjYXNlXCJkcmFnb3ZlclwiOmNhc2VcIm1vdXNlbW92ZVwiOmNhc2VcIm1vdXNlb3V0XCI6Y2FzZVwibW91c2VvdmVyXCI6Y2FzZVwicG9pbnRlcm1vdmVcIjpjYXNlXCJwb2ludGVyb3V0XCI6Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJzY3JvbGxcIjpjYXNlXCJ0b3VjaG1vdmVcIjpjYXNlXCJ3aGVlbFwiOmNhc2VcIm1vdXNlZW50ZXJcIjpjYXNlXCJtb3VzZWxlYXZlXCI6Y2FzZVwicG9pbnRlcmVudGVyXCI6Y2FzZVwicG9pbnRlcmxlYXZlXCI6cmV0dXJuIDg7Y2FzZVwibWVzc2FnZVwiOnN3aXRjaChlbygpKXtjYXNlIGVhOnJldHVybiAyO2Nhc2UgZWk6cmV0dXJuIDg7Y2FzZSBlbDpjYXNlIGVzOnJldHVybiAzMjtjYXNlIGVjOnJldHVybiAweDEwMDAwMDAwO2RlZmF1bHQ6cmV0dXJuIDMyfWRlZmF1bHQ6cmV0dXJuIDMyfX12YXIgdWY9ITEsdXA9bnVsbCx1aD1udWxsLHVtPW51bGwsdWc9bmV3IE1hcCx1eT1uZXcgTWFwLHV2PVtdLHViPVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0XCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIHVBKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImZvY3VzaW5cIjpjYXNlXCJmb2N1c291dFwiOnVwPW51bGw7YnJlYWs7Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2xlYXZlXCI6dWg9bnVsbDticmVhaztjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJtb3VzZW91dFwiOnVtPW51bGw7YnJlYWs7Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJwb2ludGVyb3V0XCI6dWcuZGVsZXRlKHQucG9pbnRlcklkKTticmVhaztjYXNlXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2VcImxvc3Rwb2ludGVyY2FwdHVyZVwiOnV5LmRlbGV0ZSh0LnBvaW50ZXJJZCl9fWZ1bmN0aW9uIHV4KGUsdCxuLHIsbyxhKXtyZXR1cm4gbnVsbD09PWV8fGUubmF0aXZlRXZlbnQhPT1hPyhlPXtibG9ja2VkT246dCxkb21FdmVudE5hbWU6bixldmVudFN5c3RlbUZsYWdzOnIsbmF0aXZlRXZlbnQ6YSx0YXJnZXRDb250YWluZXJzOltvXX0sbnVsbCE9PXQmJm51bGwhPT0odD1lVih0KSkmJnVuKHQpKTooZS5ldmVudFN5c3RlbUZsYWdzfD1yLHQ9ZS50YXJnZXRDb250YWluZXJzLG51bGwhPT1vJiYtMT09PXQuaW5kZXhPZihvKSYmdC5wdXNoKG8pKSxlfWZ1bmN0aW9uIHV3KGUpe3ZhciB0PWVIKGUudGFyZ2V0KTtpZihudWxsIT09dCl7dmFyIG49cyh0KTtpZihudWxsIT09bil7aWYoMTM9PT0odD1uLnRhZykpe2lmKG51bGwhPT0odD1jKG4pKSl7ZS5ibG9ja2VkT249dCxlVChlLnByaW9yaXR5LGZ1bmN0aW9uKCl7dXIobil9KTtyZXR1cm59fWVsc2UgaWYoMzE9PT10KXtpZihudWxsIT09KHQ9dShuKSkpe2UuYmxvY2tlZE9uPXQsZVQoZS5wcmlvcml0eSxmdW5jdGlvbigpe3VyKG4pfSk7cmV0dXJufX1lbHNlIGlmKDM9PT10JiZuLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXtlLmJsb2NrZWRPbj0zPT09bi50YWc/bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3JldHVybn19fWUuYmxvY2tlZE9uPW51bGx9ZnVuY3Rpb24gdUMoZSl7aWYobnVsbCE9PWUuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgdD1lLnRhcmdldENvbnRhaW5lcnM7MDx0Lmxlbmd0aDspe3ZhciBuPXVzKGUubmF0aXZlRXZlbnQpO2lmKG51bGwhPT1uKXJldHVybiBudWxsIT09KHQ9ZVYobikpJiZ1bih0KSxlLmJsb2NrZWRPbj1uLCExO3ZhciByPW5ldyhuPWUubmF0aXZlRXZlbnQpLmNvbnN0cnVjdG9yKG4udHlwZSxuKTt0eT1yLG4udGFyZ2V0LmRpc3BhdGNoRXZlbnQociksdHk9bnVsbCx0LnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gdV8oZSx0LG4pe3VDKGUpJiZuLmRlbGV0ZSh0KX1mdW5jdGlvbiB1aygpe3VmPSExLG51bGwhPT11cCYmdUModXApJiYodXA9bnVsbCksbnVsbCE9PXVoJiZ1Qyh1aCkmJih1aD1udWxsKSxudWxsIT09dW0mJnVDKHVtKSYmKHVtPW51bGwpLHVnLmZvckVhY2godV8pLHV5LmZvckVhY2godV8pfWZ1bmN0aW9uIHVFKGUsdCl7ZS5ibG9ja2VkT249PT10JiYoZS5ibG9ja2VkT249bnVsbCx1Znx8KHVmPSEwLG8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhvLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHVrKSkpfXZhciB1aj1udWxsO2Z1bmN0aW9uIHVTKGUpe3VqIT09ZSYmKHVqPWUsby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKG8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZnVuY3Rpb24oKXt1aj09PWUmJih1aj1udWxsKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrPTMpe3ZhciBuPWVbdF0scj1lW3QrMV0sbz1lW3QrMl07aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgcilpZihudWxsPT09dXUocnx8bikpY29udGludWU7ZWxzZSBicmVhazt2YXIgYT1lVihuKTtudWxsIT09YSYmKGUuc3BsaWNlKHQsMyksdC09MyxhWChhLHtwZW5kaW5nOiEwLGRhdGE6byxtZXRob2Q6bi5tZXRob2QsYWN0aW9uOnJ9LHIsbykpfX0pKX1mdW5jdGlvbiB1TyhlKXtmdW5jdGlvbiB0KHQpe3JldHVybiB1RSh0LGUpfW51bGwhPT11cCYmdUUodXAsZSksbnVsbCE9PXVoJiZ1RSh1aCxlKSxudWxsIT09dW0mJnVFKHVtLGUpLHVnLmZvckVhY2godCksdXkuZm9yRWFjaCh0KTtmb3IodmFyIG49MDtuPHV2Lmxlbmd0aDtuKyspe3ZhciByPXV2W25dO3IuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpfWZvcig7MDx1di5sZW5ndGgmJm51bGw9PT0obj11dlswXSkuYmxvY2tlZE9uOyl1dyhuKSxudWxsPT09bi5ibG9ja2VkT24mJnV2LnNoaWZ0KCk7aWYobnVsbCE9KG49KGUub3duZXJEb2N1bWVudHx8ZSkuJCRyZWFjdEZvcm1SZXBsYXkpKWZvcihyPTA7cjxuLmxlbmd0aDtyKz0zKXt2YXIgbz1uW3JdLGE9bltyKzFdLGk9b1tlTF18fG51bGw7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgYSlpfHx1UyhuKTtlbHNlIGlmKGkpe3ZhciBsPW51bGw7aWYoYSYmYS5oYXNBdHRyaWJ1dGUoXCJmb3JtQWN0aW9uXCIpKXtpZihvPWEsaT1hW2VMXXx8bnVsbClsPWkuZm9ybUFjdGlvbjtlbHNlIGlmKG51bGwhPT11dShvKSljb250aW51ZX1lbHNlIGw9aS5hY3Rpb247XCJmdW5jdGlvblwiPT10eXBlb2YgbD9uW3IrMV09bDoobi5zcGxpY2UociwzKSxyLT0zKSx1UyhuKX19fWZ1bmN0aW9uIHVCKCl7ZnVuY3Rpb24gZShlKXtlLmNhbkludGVyY2VwdCYmXCJyZWFjdC10cmFuc2l0aW9uXCI9PT1lLmluZm8mJmUuaW50ZXJjZXB0KHtoYW5kbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3JldHVybiBvPWV9KX0sZm9jdXNSZXNldDpcIm1hbnVhbFwiLHNjcm9sbDpcIm1hbnVhbFwifSl9ZnVuY3Rpb24gdCgpe251bGwhPT1vJiYobygpLG89bnVsbCkscnx8c2V0VGltZW91dChuLDIwKX1mdW5jdGlvbiBuKCl7aWYoIXImJiFuYXZpZ2F0aW9uLnRyYW5zaXRpb24pe3ZhciBlPW5hdmlnYXRpb24uY3VycmVudEVudHJ5O2UmJm51bGwhPWUudXJsJiZuYXZpZ2F0aW9uLm5hdmlnYXRlKGUudXJsLHtzdGF0ZTplLmdldFN0YXRlKCksaW5mbzpcInJlYWN0LXRyYW5zaXRpb25cIixoaXN0b3J5OlwicmVwbGFjZVwifSl9fWlmKFwib2JqZWN0XCI9PXR5cGVvZiBuYXZpZ2F0aW9uKXt2YXIgcj0hMSxvPW51bGw7cmV0dXJuIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlXCIsZSksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVzdWNjZXNzXCIsdCksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVlcnJvclwiLHQpLHNldFRpbWVvdXQobiwxMDApLGZ1bmN0aW9uKCl7cj0hMCxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJuYXZpZ2F0ZVwiLGUpLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlc3VjY2Vzc1wiLHQpLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlZXJyb3JcIix0KSxudWxsIT09byYmKG8oKSxvPW51bGwpfX19ZnVuY3Rpb24gdVAoZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZnVuY3Rpb24gdUkoZSl7dGhpcy5faW50ZXJuYWxSb290PWV9dUkucHJvdG90eXBlLnJlbmRlcj11UC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09dCl0aHJvdyBFcnJvcihsKDQwOSkpO2M3KHQuY3VycmVudCxzcigpLGUsdCxudWxsLG51bGwpfSx1SS5wcm90b3R5cGUudW5tb3VudD11UC5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsIT09ZSl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIHQ9ZS5jb250YWluZXJJbmZvO2M3KGUuY3VycmVudCwyLG51bGwsZSxudWxsLG51bGwpLHNjKCksdFtlTl09bnVsbH19LHVJLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgdD1lSSgpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5OnR9O2Zvcih2YXIgbj0wO248dXYubGVuZ3RoJiYwIT09dCYmdDx1dltuXS5wcmlvcml0eTtuKyspO3V2LnNwbGljZShuLDAsZSksMD09PW4mJnV3KGUpfX07dmFyIHVUPWEudmVyc2lvbjtpZihcIjE5LjIuMC1jYW5hcnktMGJkYjkyMDYtMjAyNTA4MThcIiE9PXVUKXRocm93IEVycm9yKGwoNTI3LHVULFwiMTkuMi4wLWNhbmFyeS0wYmRiOTIwNi0yMDI1MDgxOFwiKSk7aWYoVC5maW5kRE9NTm9kZT1mdW5jdGlvbihlKXt2YXIgdD1lLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT10KXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnJlbmRlcil0aHJvdyBFcnJvcihsKDE4OCkpO3Rocm93IEVycm9yKGwoMjY4LGU9T2JqZWN0LmtleXMoZSkuam9pbihcIixcIikpKX1yZXR1cm4gZT1udWxsPT09KGU9bnVsbCE9PShlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO2lmKCF0KXtpZihudWxsPT09KHQ9cyhlKSkpdGhyb3cgRXJyb3IobCgxODgpKTtyZXR1cm4gdCE9PWU/bnVsbDplfWZvcih2YXIgbj1lLHI9dDs7KXt2YXIgbz1uLnJldHVybjtpZihudWxsPT09bylicmVhazt2YXIgYT1vLmFsdGVybmF0ZTtpZihudWxsPT09YSl7aWYobnVsbCE9PShyPW8ucmV0dXJuKSl7bj1yO2NvbnRpbnVlfWJyZWFrfWlmKG8uY2hpbGQ9PT1hLmNoaWxkKXtmb3IoYT1vLmNoaWxkO2E7KXtpZihhPT09bilyZXR1cm4gZChvKSxlO2lmKGE9PT1yKXJldHVybiBkKG8pLHQ7YT1hLnNpYmxpbmd9dGhyb3cgRXJyb3IobCgxODgpKX1pZihuLnJldHVybiE9PXIucmV0dXJuKW49byxyPWE7ZWxzZXtmb3IodmFyIGk9ITEsYz1vLmNoaWxkO2M7KXtpZihjPT09bil7aT0hMCxuPW8scj1hO2JyZWFrfWlmKGM9PT1yKXtpPSEwLHI9byxuPWE7YnJlYWt9Yz1jLnNpYmxpbmd9aWYoIWkpe2ZvcihjPWEuY2hpbGQ7Yzspe2lmKGM9PT1uKXtpPSEwLG49YSxyPW87YnJlYWt9aWYoYz09PXIpe2k9ITAscj1hLG49bzticmVha31jPWMuc2libGluZ31pZighaSl0aHJvdyBFcnJvcihsKDE4OSkpfX1pZihuLmFsdGVybmF0ZSE9PXIpdGhyb3cgRXJyb3IobCgxOTApKX1pZigzIT09bi50YWcpdGhyb3cgRXJyb3IobCgxODgpKTtyZXR1cm4gbi5zdGF0ZU5vZGUuY3VycmVudD09PW4/ZTp0fSh0KSk/ZnVuY3Rpb24gZSh0KXt2YXIgbj10LnRhZztpZig1PT09bnx8MjY9PT1ufHwyNz09PW58fDY9PT1uKXJldHVybiB0O2Zvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXtpZihudWxsIT09KG49ZSh0KSkpcmV0dXJuIG47dD10LnNpYmxpbmd9cmV0dXJuIG51bGx9KGUpOm51bGwpP251bGw6ZS5zdGF0ZU5vZGV9LFwidW5kZWZpbmVkXCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3ZhciB1ej1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYoIXV6LmlzRGlzYWJsZWQmJnV6LnN1cHBvcnRzRmliZXIpdHJ5e2VmPXV6LmluamVjdCh7YnVuZGxlVHlwZTowLHZlcnNpb246XCIxOS4yLjAtY2FuYXJ5LTBiZGI5MjA2LTIwMjUwODE4XCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwiLGN1cnJlbnREaXNwYXRjaGVyUmVmOkkscmVjb25jaWxlclZlcnNpb246XCIxOS4yLjAtY2FuYXJ5LTBiZGI5MjA2LTIwMjUwODE4XCJ9KSxlcD11en1jYXRjaChlKXt9fXQuY3JlYXRlUm9vdD1mdW5jdGlvbihlLHQpe2lmKCEobj1lKXx8MSE9PW4ubm9kZVR5cGUmJjkhPT1uLm5vZGVUeXBlJiYxMSE9PW4ubm9kZVR5cGUpdGhyb3cgRXJyb3IobCgyOTkpKTt2YXIgbixyLG8sYSxpLHMsYyx1LGQ9ITEsZj1cIlwiLHA9aXUsaD1pZCxtPWlwO3JldHVybiBudWxsIT10JiYoITA9PT10LnVuc3RhYmxlX3N0cmljdE1vZGUmJihkPSEwKSx2b2lkIDAhPT10LmlkZW50aWZpZXJQcmVmaXgmJihmPXQuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09dC5vblVuY2F1Z2h0RXJyb3ImJihwPXQub25VbmNhdWdodEVycm9yKSx2b2lkIDAhPT10Lm9uQ2F1Z2h0RXJyb3ImJihoPXQub25DYXVnaHRFcnJvciksdm9pZCAwIT09dC5vblJlY292ZXJhYmxlRXJyb3ImJihtPXQub25SZWNvdmVyYWJsZUVycm9yKSkscj1lLG89MSxhPSExLGk9bnVsbCxzPTAsYz1kLHU9bnVsbCxyPW5ldyBjOChyLG8sYSxmLHAsaCxtLHVCLG51bGwpLG89MSwhMD09PWMmJihvfD0yNCksYz1yZSgzLG51bGwsbnVsbCxvKSxyLmN1cnJlbnQ9YyxjLnN0YXRlTm9kZT1yLG89cjEoKSxvLnJlZkNvdW50Kyssci5wb29sZWRDYWNoZT1vLG8ucmVmQ291bnQrKyxjLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6bnVsbCxpc0RlaHlkcmF0ZWQ6YSxjYWNoZTpvfSxvdyhjKSx0PXIsZVtlTl09dC5jdXJyZW50LHM5KGUpLG5ldyB1UCh0KX19LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bihcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiKTtmdW5jdGlvbiBvKGUpe3ZhciB0PVwiaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzL1wiK2U7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXt0Kz1cIj9hcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBuPTI7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSl9cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrZStcIjsgdmlzaXQgXCIrdCtcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9ZnVuY3Rpb24gYSgpe312YXIgaT17ZDp7ZjphLHI6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihvKDUyMikpfSxEOmEsQzphLEw6YSxtOmEsWDphLFM6YSxNOmF9LHA6MCxmaW5kRE9NTm9kZTpudWxsfSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIikscz1yLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtmdW5jdGlvbiBjKGUsdCl7cmV0dXJuXCJmb250XCI9PT1lP1wiXCI6XCJzdHJpbmdcIj09dHlwZW9mIHQ/XCJ1c2UtY3JlZGVudGlhbHNcIj09PXQ/dDpcIlwiOnZvaWQgMH10Ll9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERT1pLHQuY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGUsdCl7dmFyIG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIXR8fDEhPT10Lm5vZGVUeXBlJiY5IT09dC5ub2RlVHlwZSYmMTEhPT10Lm5vZGVUeXBlKXRocm93IEVycm9yKG8oMjk5KSk7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6bCxrZXk6bnVsbD09cj9udWxsOlwiXCIrcixjaGlsZHJlbjplLGNvbnRhaW5lckluZm86dCxpbXBsZW1lbnRhdGlvbjpufX0oZSx0LG51bGwsbil9LHQuZmx1c2hTeW5jPWZ1bmN0aW9uKGUpe3ZhciB0PXMuVCxuPWkucDt0cnl7aWYocy5UPW51bGwsaS5wPTIsZSlyZXR1cm4gZSgpfWZpbmFsbHl7cy5UPXQsaS5wPW4saS5kLmYoKX19LHQucHJlY29ubmVjdD1mdW5jdGlvbihlLHQpe1wic3RyaW5nXCI9PXR5cGVvZiBlJiYodD10P1wic3RyaW5nXCI9PXR5cGVvZih0PXQuY3Jvc3NPcmlnaW4pP1widXNlLWNyZWRlbnRpYWxzXCI9PT10P3Q6XCJcIjp2b2lkIDA6bnVsbCxpLmQuQyhlLHQpKX0sdC5wcmVmZXRjaEROUz1mdW5jdGlvbihlKXtcInN0cmluZ1wiPT10eXBlb2YgZSYmaS5kLkQoZSl9LHQucHJlaW5pdD1mdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZ0JiZcInN0cmluZ1wiPT10eXBlb2YgdC5hcyl7dmFyIG49dC5hcyxyPWMobix0LmNyb3NzT3JpZ2luKSxvPVwic3RyaW5nXCI9PXR5cGVvZiB0LmludGVncml0eT90LmludGVncml0eTp2b2lkIDAsYT1cInN0cmluZ1wiPT10eXBlb2YgdC5mZXRjaFByaW9yaXR5P3QuZmV0Y2hQcmlvcml0eTp2b2lkIDA7XCJzdHlsZVwiPT09bj9pLmQuUyhlLFwic3RyaW5nXCI9PXR5cGVvZiB0LnByZWNlZGVuY2U/dC5wcmVjZWRlbmNlOnZvaWQgMCx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OmF9KTpcInNjcmlwdFwiPT09biYmaS5kLlgoZSx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OmEsbm9uY2U6XCJzdHJpbmdcIj09dHlwZW9mIHQubm9uY2U/dC5ub25jZTp2b2lkIDB9KX19LHQucHJlaW5pdE1vZHVsZT1mdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKWlmKFwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT09dCl7aWYobnVsbD09dC5hc3x8XCJzY3JpcHRcIj09PXQuYXMpe3ZhciBuPWModC5hcyx0LmNyb3NzT3JpZ2luKTtpLmQuTShlLHtjcm9zc09yaWdpbjpuLGludGVncml0eTpcInN0cmluZ1wiPT10eXBlb2YgdC5pbnRlZ3JpdHk/dC5pbnRlZ3JpdHk6dm9pZCAwLG5vbmNlOlwic3RyaW5nXCI9PXR5cGVvZiB0Lm5vbmNlP3Qubm9uY2U6dm9pZCAwfSl9fWVsc2UgbnVsbD09dCYmaS5kLk0oZSl9LHQucHJlbG9hZD1mdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZcIm9iamVjdFwiPT10eXBlb2YgdCYmbnVsbCE9PXQmJlwic3RyaW5nXCI9PXR5cGVvZiB0LmFzKXt2YXIgbj10LmFzLHI9YyhuLHQuY3Jvc3NPcmlnaW4pO2kuZC5MKGUsbix7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6XCJzdHJpbmdcIj09dHlwZW9mIHQuaW50ZWdyaXR5P3QuaW50ZWdyaXR5OnZvaWQgMCxub25jZTpcInN0cmluZ1wiPT10eXBlb2YgdC5ub25jZT90Lm5vbmNlOnZvaWQgMCx0eXBlOlwic3RyaW5nXCI9PXR5cGVvZiB0LnR5cGU/dC50eXBlOnZvaWQgMCxmZXRjaFByaW9yaXR5Olwic3RyaW5nXCI9PXR5cGVvZiB0LmZldGNoUHJpb3JpdHk/dC5mZXRjaFByaW9yaXR5OnZvaWQgMCxyZWZlcnJlclBvbGljeTpcInN0cmluZ1wiPT10eXBlb2YgdC5yZWZlcnJlclBvbGljeT90LnJlZmVycmVyUG9saWN5OnZvaWQgMCxpbWFnZVNyY1NldDpcInN0cmluZ1wiPT10eXBlb2YgdC5pbWFnZVNyY1NldD90LmltYWdlU3JjU2V0OnZvaWQgMCxpbWFnZVNpemVzOlwic3RyaW5nXCI9PXR5cGVvZiB0LmltYWdlU2l6ZXM/dC5pbWFnZVNpemVzOnZvaWQgMCxtZWRpYTpcInN0cmluZ1wiPT10eXBlb2YgdC5tZWRpYT90Lm1lZGlhOnZvaWQgMH0pfX0sdC5wcmVsb2FkTW9kdWxlPWZ1bmN0aW9uKGUsdCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpaWYodCl7dmFyIG49Yyh0LmFzLHQuY3Jvc3NPcmlnaW4pO2kuZC5tKGUse2FzOlwic3RyaW5nXCI9PXR5cGVvZiB0LmFzJiZcInNjcmlwdFwiIT09dC5hcz90LmFzOnZvaWQgMCxjcm9zc09yaWdpbjpuLGludGVncml0eTpcInN0cmluZ1wiPT10eXBlb2YgdC5pbnRlZ3JpdHk/dC5pbnRlZ3JpdHk6dm9pZCAwfSl9ZWxzZSBpLmQubShlKX0sdC5yZXF1ZXN0Rm9ybVJlc2V0PWZ1bmN0aW9uKGUpe2kuZC5yKGUpfSx0LnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUodCl9LHQudXNlRm9ybVN0YXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gcy5ILnVzZUZvcm1TdGF0ZShlLHQsbil9LHQudXNlRm9ybVN0YXR1cz1mdW5jdGlvbigpe3JldHVybiBzLkgudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKX0sdC52ZXJzaW9uPVwiMTkuMi4wLWNhbmFyeS0wYmRiOTIwNi0yMDI1MDgxOFwifSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC1kb20vY2xpZW50LmpzXCI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiOyFmdW5jdGlvbiBlKCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmXCJmdW5jdGlvblwiPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KCksZS5leHBvcnRzPW4oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjshZnVuY3Rpb24gZSgpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJlwiZnVuY3Rpb25cIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSgpLGUuZXhwb3J0cz1uKFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1jb21waWxlci1ydW50aW1lLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bihcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiKS5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU7dC5jPWZ1bmN0aW9uKGUpe3JldHVybiByLkgudXNlTWVtb0NhY2hlKGUpfX0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPVN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKTtmdW5jdGlvbiByKGUsdCxyKXt2YXIgbz1udWxsO2lmKHZvaWQgMCE9PXImJihvPVwiXCIrciksdm9pZCAwIT09dC5rZXkmJihvPVwiXCIrdC5rZXkpLFwia2V5XCJpbiB0KWZvcih2YXIgYSBpbiByPXt9LHQpXCJrZXlcIiE9PWEmJihyW2FdPXRbYV0pO2Vsc2Ugcj10O3JldHVybnskJHR5cGVvZjpuLHR5cGU6ZSxrZXk6byxyZWY6dm9pZCAwIT09KHQ9ci5yZWYpP3Q6bnVsbCxwcm9wczpyfX10LkZyYWdtZW50PVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSx0LmpzeD1yLHQuanN4cz1yfSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QucHJvZHVjdGlvbi5qc1wiOmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49U3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLHI9U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxvPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxhPVN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxpPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSxzPVN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLGM9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLHU9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLGQ9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksZj1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSxwPVN5bWJvbC5pdGVyYXRvcixoPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxtPU9iamVjdC5hc3NpZ24sZz17fTtmdW5jdGlvbiB5KGUsdCxuKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPWcsdGhpcy51cGRhdGVyPW58fGh9ZnVuY3Rpb24gdigpe31mdW5jdGlvbiBiKGUsdCxuKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPWcsdGhpcy51cGRhdGVyPW58fGh9eS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSx5LnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihlLHQpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiBlJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZudWxsIT1lKXRocm93IEVycm9yKFwidGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuXCIpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxlLHQsXCJzZXRTdGF0ZVwiKX0seS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsXCJmb3JjZVVwZGF0ZVwiKX0sdi5wcm90b3R5cGU9eS5wcm90b3R5cGU7dmFyIEE9Yi5wcm90b3R5cGU9bmV3IHY7QS5jb25zdHJ1Y3Rvcj1iLG0oQSx5LnByb3RvdHlwZSksQS5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgeD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHcoKXt9dmFyIEM9e0g6bnVsbCxBOm51bGwsVDpudWxsLFM6bnVsbH0sXz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGsoZSx0LHIpe3ZhciBvPXIucmVmO3JldHVybnskJHR5cGVvZjpuLHR5cGU6ZSxrZXk6dCxyZWY6dm9pZCAwIT09bz9vOm51bGwscHJvcHM6cn19ZnVuY3Rpb24gRShlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1ufXZhciBqPS9cXC8rL2c7ZnVuY3Rpb24gUyhlLHQpe3ZhciBuLHI7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT8obj1cIlwiK2Uua2V5LHI9e1wiPVwiOlwiPTBcIixcIjpcIjpcIj0yXCJ9LFwiJFwiK24ucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGUpe3JldHVybiByW2VdfSkpOnQudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIE8oZSx0LG8pe2lmKG51bGw9PWUpcmV0dXJuIGU7dmFyIGE9W10saT0wO3JldHVybiFmdW5jdGlvbiBlKHQsbyxhLGksbCl7dmFyIHMsYyx1LGQ9dHlwZW9mIHQ7KFwidW5kZWZpbmVkXCI9PT1kfHxcImJvb2xlYW5cIj09PWQpJiYodD1udWxsKTt2YXIgaD0hMTtpZihudWxsPT09dCloPSEwO2Vsc2Ugc3dpdGNoKGQpe2Nhc2VcImJpZ2ludFwiOmNhc2VcInN0cmluZ1wiOmNhc2VcIm51bWJlclwiOmg9ITA7YnJlYWs7Y2FzZVwib2JqZWN0XCI6c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgbjpjYXNlIHI6aD0hMDticmVhaztjYXNlIGY6cmV0dXJuIGUoKGg9dC5faW5pdCkodC5fcGF5bG9hZCksbyxhLGksbCl9fWlmKGgpcmV0dXJuIGw9bCh0KSxoPVwiXCI9PT1pP1wiLlwiK1ModCwwKTppLHgobCk/KGE9XCJcIixudWxsIT1oJiYoYT1oLnJlcGxhY2UoaixcIiQmL1wiKStcIi9cIiksZShsLG8sYSxcIlwiLGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpOm51bGwhPWwmJihFKGwpJiYocz1sLGM9YSsobnVsbD09bC5rZXl8fHQmJnQua2V5PT09bC5rZXk/XCJcIjooXCJcIitsLmtleSkucmVwbGFjZShqLFwiJCYvXCIpK1wiL1wiKStoLGw9ayhzLnR5cGUsYyxzLnByb3BzKSksby5wdXNoKGwpKSwxO2g9MDt2YXIgbT1cIlwiPT09aT9cIi5cIjppK1wiOlwiO2lmKHgodCkpZm9yKHZhciBnPTA7Zzx0Lmxlbmd0aDtnKyspZD1tK1MoaT10W2ddLGcpLGgrPWUoaSxvLGEsZCxsKTtlbHNlIGlmKFwiZnVuY3Rpb25cIj09dHlwZW9mKGc9bnVsbD09PSh1PXQpfHxcIm9iamVjdFwiIT10eXBlb2YgdT9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mKHU9cCYmdVtwXXx8dVtcIkBAaXRlcmF0b3JcIl0pP3U6bnVsbCkpZm9yKHQ9Zy5jYWxsKHQpLGc9MDshKGk9dC5uZXh0KCkpLmRvbmU7KWQ9bStTKGk9aS52YWx1ZSxnKyspLGgrPWUoaSxvLGEsZCxsKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1kKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnRoZW4pcmV0dXJuIGUoZnVuY3Rpb24oZSl7c3dpdGNoKGUuc3RhdHVzKXtjYXNlXCJmdWxmaWxsZWRcIjpyZXR1cm4gZS52YWx1ZTtjYXNlXCJyZWplY3RlZFwiOnRocm93IGUucmVhc29uO2RlZmF1bHQ6c3dpdGNoKFwic3RyaW5nXCI9PXR5cGVvZiBlLnN0YXR1cz9lLnRoZW4odyx3KTooZS5zdGF0dXM9XCJwZW5kaW5nXCIsZS50aGVuKGZ1bmN0aW9uKHQpe1wicGVuZGluZ1wiPT09ZS5zdGF0dXMmJihlLnN0YXR1cz1cImZ1bGZpbGxlZFwiLGUudmFsdWU9dCl9LGZ1bmN0aW9uKHQpe1wicGVuZGluZ1wiPT09ZS5zdGF0dXMmJihlLnN0YXR1cz1cInJlamVjdGVkXCIsZS5yZWFzb249dCl9KSksZS5zdGF0dXMpe2Nhc2VcImZ1bGZpbGxlZFwiOnJldHVybiBlLnZhbHVlO2Nhc2VcInJlamVjdGVkXCI6dGhyb3cgZS5yZWFzb259fXRocm93IGV9KHQpLG8sYSxpLGwpO3Rocm93IEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIisoXCJbb2JqZWN0IE9iamVjdF1cIj09PShvPVN0cmluZyh0KSk/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyh0KS5qb2luKFwiLCBcIikrXCJ9XCI6bykrXCIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuXCIpfXJldHVybiBofShlLGEsXCJcIixcIlwiLGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwobyxlLGkrKyl9KSxhfWZ1bmN0aW9uIEIoZSl7aWYoLTE9PT1lLl9zdGF0dXMpe3ZhciB0PWUuX3Jlc3VsdDsodD10KCkpLnRoZW4oZnVuY3Rpb24odCl7KDA9PT1lLl9zdGF0dXN8fC0xPT09ZS5fc3RhdHVzKSYmKGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD10KX0sZnVuY3Rpb24odCl7KDA9PT1lLl9zdGF0dXN8fC0xPT09ZS5fc3RhdHVzKSYmKGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pLC0xPT09ZS5fc3RhdHVzJiYoZS5fc3RhdHVzPTAsZS5fcmVzdWx0PXQpfWlmKDE9PT1lLl9zdGF0dXMpcmV0dXJuIGUuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IGUuX3Jlc3VsdH12YXIgUD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudCl7dmFyIHQ9bmV3IHdpbmRvdy5FcnJvckV2ZW50KFwiZXJyb3JcIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6XCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZcInN0cmluZ1wiPT10eXBlb2YgZS5tZXNzYWdlP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KHQpKXJldHVybn1lbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBwcm9jZXNzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBwcm9jZXNzLmVtaXQpcmV0dXJuIHZvaWQgcHJvY2Vzcy5lbWl0KFwidW5jYXVnaHRFeGNlcHRpb25cIixlKTtjb25zb2xlLmVycm9yKGUpfTt0LkNoaWxkcmVuPXttYXA6Tyxmb3JFYWNoOmZ1bmN0aW9uKGUsdCxuKXtPKGUsZnVuY3Rpb24oKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbil9LGNvdW50OmZ1bmN0aW9uKGUpe3ZhciB0PTA7cmV0dXJuIE8oZSxmdW5jdGlvbigpe3QrK30pLHR9LHRvQXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSxmdW5jdGlvbihlKXtyZXR1cm4gZX0pfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighRShlKSl0aHJvdyBFcnJvcihcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiKTtyZXR1cm4gZX19LHQuQ29tcG9uZW50PXksdC5GcmFnbWVudD1vLHQuUHJvZmlsZXI9aSx0LlB1cmVDb21wb25lbnQ9Yix0LlN0cmljdE1vZGU9YSx0LlN1c3BlbnNlPXUsdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU9Qyx0Ll9fQ09NUElMRVJfUlVOVElNRT17X19wcm90b19fOm51bGwsYzpmdW5jdGlvbihlKXtyZXR1cm4gQy5ILnVzZU1lbW9DYWNoZShlKX19LHQuY2FjaGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sdC5jYWNoZVNpZ25hbD1mdW5jdGlvbigpe3JldHVybiBudWxsfSx0LmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQsbil7aWYobnVsbD09ZSl0aHJvdyBFcnJvcihcIlRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIrZStcIi5cIik7dmFyIHI9bSh7fSxlLnByb3BzKSxvPWUua2V5O2lmKG51bGwhPXQpZm9yKGEgaW4gdm9pZCAwIT09dC5rZXkmJihvPVwiXCIrdC5rZXkpLHQpXy5jYWxsKHQsYSkmJlwia2V5XCIhPT1hJiZcIl9fc2VsZlwiIT09YSYmXCJfX3NvdXJjZVwiIT09YSYmKFwicmVmXCIhPT1hfHx2b2lkIDAhPT10LnJlZikmJihyW2FdPXRbYV0pO3ZhciBhPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09YSlyLmNoaWxkcmVuPW47ZWxzZSBpZigxPGEpe2Zvcih2YXIgaT1BcnJheShhKSxsPTA7bDxhO2wrKylpW2xdPWFyZ3VtZW50c1tsKzJdO3IuY2hpbGRyZW49aX1yZXR1cm4gayhlLnR5cGUsbyxyKX0sdC5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybihlPXskJHR5cGVvZjpzLF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0pLlByb3ZpZGVyPWUsZS5Db25zdW1lcj17JCR0eXBlb2Y6bCxfY29udGV4dDplfSxlfSx0LmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG89e30sYT1udWxsO2lmKG51bGwhPXQpZm9yKHIgaW4gdm9pZCAwIT09dC5rZXkmJihhPVwiXCIrdC5rZXkpLHQpXy5jYWxsKHQscikmJlwia2V5XCIhPT1yJiZcIl9fc2VsZlwiIT09ciYmXCJfX3NvdXJjZVwiIT09ciYmKG9bcl09dFtyXSk7dmFyIGk9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1pKW8uY2hpbGRyZW49bjtlbHNlIGlmKDE8aSl7Zm9yKHZhciBsPUFycmF5KGkpLHM9MDtzPGk7cysrKWxbc109YXJndW1lbnRzW3MrMl07by5jaGlsZHJlbj1sfWlmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihyIGluIGk9ZS5kZWZhdWx0UHJvcHMpdm9pZCAwPT09b1tyXSYmKG9bcl09aVtyXSk7cmV0dXJuIGsoZSxhLG8pfSx0LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSx0LmZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOmMscmVuZGVyOmV9fSx0LmlzVmFsaWRFbGVtZW50PUUsdC5sYXp5PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpmLF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6ZX0sX2luaXQ6Qn19LHQubWVtbz1mdW5jdGlvbihlLHQpe3JldHVybnskJHR5cGVvZjpkLHR5cGU6ZSxjb21wYXJlOnZvaWQgMD09PXQ/bnVsbDp0fX0sdC5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oZSl7dmFyIHQ9Qy5ULG49e307Qy5UPW47dHJ5e3ZhciByPWUoKSxvPUMuUztudWxsIT09byYmbyhuLHIpLFwib2JqZWN0XCI9PXR5cGVvZiByJiZudWxsIT09ciYmXCJmdW5jdGlvblwiPT10eXBlb2Ygci50aGVuJiZyLnRoZW4odyxQKX1jYXRjaChlKXtQKGUpfWZpbmFsbHl7bnVsbCE9PXQmJm51bGwhPT1uLnR5cGVzJiYodC50eXBlcz1uLnR5cGVzKSxDLlQ9dH19LHQudW5zdGFibGVfdXNlQ2FjaGVSZWZyZXNoPWZ1bmN0aW9uKCl7cmV0dXJuIEMuSC51c2VDYWNoZVJlZnJlc2goKX0sdC51c2U9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuSC51c2UoZSl9LHQudXNlQWN0aW9uU3RhdGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBDLkgudXNlQWN0aW9uU3RhdGUoZSx0LG4pfSx0LnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEMuSC51c2VDYWxsYmFjayhlLHQpfSx0LnVzZUNvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuSC51c2VDb250ZXh0KGUpfSx0LnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LHQudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihlLHQpe3JldHVybiBDLkgudXNlRGVmZXJyZWRWYWx1ZShlLHQpfSx0LnVzZUVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBDLkgudXNlRWZmZWN0KGUsdCl9LHQudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gQy5ILnVzZUlkKCl9LHQudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIEMuSC51c2VJbXBlcmF0aXZlSGFuZGxlKGUsdCxuKX0sdC51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gQy5ILnVzZUluc2VydGlvbkVmZmVjdChlLHQpfSx0LnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBDLkgudXNlTGF5b3V0RWZmZWN0KGUsdCl9LHQudXNlTWVtbz1mdW5jdGlvbihlLHQpe3JldHVybiBDLkgudXNlTWVtbyhlLHQpfSx0LnVzZU9wdGltaXN0aWM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gQy5ILnVzZU9wdGltaXN0aWMoZSx0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gQy5ILnVzZVJlZHVjZXIoZSx0LG4pfSx0LnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gQy5ILnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gQy5ILnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gQy5ILnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxuKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEMuSC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj1cIjE5LjIuMC1jYW5hcnktMGJkYjkyMDYtMjAyNTA4MThcIn0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY29tcGlsZXItcnVudGltZS5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9bihcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QtY29tcGlsZXItcnVudGltZS5wcm9kdWN0aW9uLmpzXCIpfSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9bihcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QucHJvZHVjdGlvbi5qc1wiKX0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPW4oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSx0KXt2YXIgbj1lLmxlbmd0aDtmb3IoZS5wdXNoKHQpOzA8bjspe3ZhciByPW4tMT4+PjEsbz1lW3JdO2lmKDA8YShvLHQpKWVbcl09dCxlW25dPW8sbj1yO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIHIoZSl7cmV0dXJuIDA9PT1lLmxlbmd0aD9udWxsOmVbMF19ZnVuY3Rpb24gbyhlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHQ9ZVswXSxuPWUucG9wKCk7aWYobiE9PXQpe2VbMF09bjtmb3IodmFyIHI9MCxvPWUubGVuZ3RoLGk9bz4+PjE7cjxpOyl7dmFyIGw9MioocisxKS0xLHM9ZVtsXSxjPWwrMSx1PWVbY107aWYoMD5hKHMsbikpYzxvJiYwPmEodSxzKT8oZVtyXT11LGVbY109bixyPWMpOihlW3JdPXMsZVtsXT1uLHI9bCk7ZWxzZSBpZihjPG8mJjA+YSh1LG4pKWVbcl09dSxlW2NdPW4scj1jO2Vsc2UgYnJlYWt9fXJldHVybiB0fWZ1bmN0aW9uIGEoZSx0KXt2YXIgbj1lLnNvcnRJbmRleC10LnNvcnRJbmRleDtyZXR1cm4gMCE9PW4/bjplLmlkLXQuaWR9aWYodC51bnN0YWJsZV9ub3c9dm9pZCAwLFwib2JqZWN0XCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgaSxsPXBlcmZvcm1hbmNlO3QudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGwubm93KCl9fWVsc2V7dmFyIHM9RGF0ZSxjPXMubm93KCk7dC51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcy5ub3coKS1jfX12YXIgdT1bXSxkPVtdLGY9MSxwPW51bGwsaD0zLG09ITEsZz0hMSx5PSExLHY9ITEsYj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6bnVsbCxBPVwiZnVuY3Rpb25cIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6bnVsbCx4PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gdyhlKXtmb3IodmFyIHQ9cihkKTtudWxsIT09dDspe2lmKG51bGw9PT10LmNhbGxiYWNrKW8oZCk7ZWxzZSBpZih0LnN0YXJ0VGltZTw9ZSlvKGQpLHQuc29ydEluZGV4PXQuZXhwaXJhdGlvblRpbWUsbih1LHQpO2Vsc2UgYnJlYWs7dD1yKGQpfX1mdW5jdGlvbiBDKGUpe2lmKHk9ITEsdyhlKSwhZylpZihudWxsIT09cih1KSlnPSEwLF98fChfPSEwLGkoKSk7ZWxzZXt2YXIgdD1yKGQpO251bGwhPT10JiZJKEMsdC5zdGFydFRpbWUtZSl9fXZhciBfPSExLGs9LTEsRT01LGo9LTE7ZnVuY3Rpb24gUygpe3JldHVybiEhdnx8ISh0LnVuc3RhYmxlX25vdygpLWo8RSl9ZnVuY3Rpb24gTygpe2lmKHY9ITEsXyl7dmFyIGU9dC51bnN0YWJsZV9ub3coKTtqPWU7dmFyIG49ITA7dHJ5e2U6e2c9ITEseSYmKHk9ITEsQShrKSxrPS0xKSxtPSEwO3ZhciBhPWg7dHJ5e3Q6e2Zvcih3KGUpLHA9cih1KTtudWxsIT09cCYmIShwLmV4cGlyYXRpb25UaW1lPmUmJlMoKSk7KXt2YXIgbD1wLmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGwpe3AuY2FsbGJhY2s9bnVsbCxoPXAucHJpb3JpdHlMZXZlbDt2YXIgcz1sKHAuZXhwaXJhdGlvblRpbWU8PWUpO2lmKGU9dC51bnN0YWJsZV9ub3coKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBzKXtwLmNhbGxiYWNrPXMsdyhlKSxuPSEwO2JyZWFrIHR9cD09PXIodSkmJm8odSksdyhlKX1lbHNlIG8odSk7cD1yKHUpfWlmKG51bGwhPT1wKW49ITA7ZWxzZXt2YXIgYz1yKGQpO251bGwhPT1jJiZJKEMsYy5zdGFydFRpbWUtZSksbj0hMX19YnJlYWsgZX1maW5hbGx5e3A9bnVsbCxoPWEsbT0hMX19fWZpbmFsbHl7bj9pKCk6Xz0hMX19fWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHgpaT1mdW5jdGlvbigpe3goTyl9O2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgQj1uZXcgTWVzc2FnZUNoYW5uZWwsUD1CLnBvcnQyO0IucG9ydDEub25tZXNzYWdlPU8saT1mdW5jdGlvbigpe1AucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgaT1mdW5jdGlvbigpe2IoTywwKX07ZnVuY3Rpb24gSShlLG4pe2s9YihmdW5jdGlvbigpe2UodC51bnN0YWJsZV9ub3coKSl9LG4pfXQudW5zdGFibGVfSWRsZVByaW9yaXR5PTUsdC51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLHQudW5zdGFibGVfTG93UHJpb3JpdHk9NCx0LnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsdC51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbCx0LnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTIsdC51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihlKXtlLmNhbGxiYWNrPW51bGx9LHQudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oZSl7MD5lfHwxMjU8ZT9jb25zb2xlLmVycm9yKFwiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkXCIpOkU9MDxlP01hdGguZmxvb3IoMWUzL2UpOjV9LHQudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gaH0sdC51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGUpe3N3aXRjaChoKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgdD0zO2JyZWFrO2RlZmF1bHQ6dD1ofXZhciBuPWg7aD10O3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7aD1ufX0sdC51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9ZnVuY3Rpb24oKXt2PSEwfSx0LnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6ZT0zfXZhciBuPWg7aD1lO3RyeXtyZXR1cm4gdCgpfWZpbmFsbHl7aD1ufX0sdC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbyxhKXt2YXIgbD10LnVuc3RhYmxlX25vdygpO3N3aXRjaChhPVwib2JqZWN0XCI9PXR5cGVvZiBhJiZudWxsIT09YSYmXCJudW1iZXJcIj09dHlwZW9mKGE9YS5kZWxheSkmJjA8YT9sK2E6bCxlKXtjYXNlIDE6dmFyIHM9LTE7YnJlYWs7Y2FzZSAyOnM9MjUwO2JyZWFrO2Nhc2UgNTpzPTB4M2ZmZmZmZmY7YnJlYWs7Y2FzZSA0OnM9MWU0O2JyZWFrO2RlZmF1bHQ6cz01ZTN9cmV0dXJuIHM9YStzLGU9e2lkOmYrKyxjYWxsYmFjazpvLHByaW9yaXR5TGV2ZWw6ZSxzdGFydFRpbWU6YSxleHBpcmF0aW9uVGltZTpzLHNvcnRJbmRleDotMX0sYT5sPyhlLnNvcnRJbmRleD1hLG4oZCxlKSxudWxsPT09cih1KSYmZT09PXIoZCkmJih5PyhBKGspLGs9LTEpOnk9ITAsSShDLGEtbCkpKTooZS5zb3J0SW5kZXg9cyxuKHUsZSksZ3x8bXx8KGc9ITAsX3x8KF89ITAsaSgpKSkpLGV9LHQudW5zdGFibGVfc2hvdWxkWWllbGQ9Uyx0LnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgdD1oO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWg7aD10O3RyeXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtoPW59fX19LFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9bihcIi4vZGlzdC9jb21waWxlZC9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLmpzXCIpfSxcIi4vZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlci9zdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzXCI6ZnVuY3Rpb24oZSl7KCgpPT57XCJ1c2Ugc3RyaWN0XCI7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18mJihfX25jY3dwY2tfcmVxdWlyZV9fLmFiPVwiLy9cIik7dmFyIHQsbixyLG8sYSxpLGwscyxjPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQ9XCI8dW5rbm93bj5cIixuPS9eXFxzKmF0ICguKj8pID9cXCgoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWUtZXh0ZW5zaW9ufG5hdGl2ZXxldmFsfHdlYnBhY2t8d2VicGFjay1pbnRlcm5hbHxyc2N8YWJvdXR8dHVyYm9wYWNrfDxhbm9ueW1vdXM+fFxcL3xbYS16XTpcXFxcfFxcXFxcXFxcKS4qPykoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxyPS9cXCgoXFxTKikoPzo6KFxcZCspKSg/OjooXFxkKykpXFwpLyxvPS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT8uKykgKT9cXCg/KCg/OmZpbGV8bXMtYXBweHxodHRwcz98d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3xhYm91dHx0dXJib3BhY2t8YmxvYik6Lio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxhPS9eXFxzKiguKj8pKD86XFwoKC4qPylcXCkpPyg/Ol58QCkoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWV8d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3xhYm91dHx0dXJib3BhY2t8cmVzb3VyY2V8XFxbbmF0aXZlKS4qP3xbXkBdKmJ1bmRsZSkoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXHMqJC9pLGk9LyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2ksbD0vXlxccyooPzooW15AXSopKD86XFwoKC4qPylcXCkpP0ApPyhcXFMuKj8pOihcXGQrKSg/OjooXFxkKykpP1xccyokL2kscz0vXlxccyphdCAoPzooKD86XFxbb2JqZWN0IG9iamVjdFxcXSk/W15cXFxcL10rKD86IFxcW2FzIFxcUytcXF0pPykgKT9cXCg/KC4qPyk6KFxcZCspKD86OihcXGQrKSk/XFwpP1xccyokL2ksYy5wYXJzZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdChcIlxcblwiKS5yZWR1Y2UoZnVuY3Rpb24oZSxjKXt2YXIgdSxkLGYscCxoLG0sZz1mdW5jdGlvbihlKXt2YXIgbz1uLmV4ZWMoZSk7aWYoIW8pcmV0dXJuIG51bGw7dmFyIGE9b1syXSYmMD09PW9bMl0uaW5kZXhPZihcIm5hdGl2ZVwiKSxpPW9bMl0mJjA9PT1vWzJdLmluZGV4T2YoXCJldmFsXCIpLGw9ci5leGVjKG9bMl0pO3JldHVybiBpJiZudWxsIT1sJiYob1syXT1sWzFdLG9bM109bFsyXSxvWzRdPWxbM10pLHtmaWxlOmE/bnVsbDpvWzJdLG1ldGhvZE5hbWU6b1sxXXx8dCxhcmd1bWVudHM6YT9bb1syXV06W10sbGluZU51bWJlcjpvWzNdPytvWzNdOm51bGwsY29sdW1uOm9bNF0/K29bNF06bnVsbH19KGMpfHwodT1jLChkPW8uZXhlYyh1KSk/e2ZpbGU6ZFsyXSxtZXRob2ROYW1lOmRbMV18fHQsYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K2RbM10sY29sdW1uOmRbNF0/K2RbNF06bnVsbH06bnVsbCl8fGZ1bmN0aW9uKGUpe3ZhciBuPWEuZXhlYyhlKTtpZighbilyZXR1cm4gbnVsbDt2YXIgcj1uWzNdJiZuWzNdLmluZGV4T2YoXCIgPiBldmFsXCIpPi0xLG89aS5leGVjKG5bM10pO3JldHVybiByJiZudWxsIT1vJiYoblszXT1vWzFdLG5bNF09b1syXSxuWzVdPW51bGwpLHtmaWxlOm5bM10sbWV0aG9kTmFtZTpuWzFdfHx0LGFyZ3VtZW50czpuWzJdP25bMl0uc3BsaXQoXCIsXCIpOltdLGxpbmVOdW1iZXI6bls0XT8rbls0XTpudWxsLGNvbHVtbjpuWzVdPytuWzVdOm51bGx9fShjKXx8KGY9YywocD1zLmV4ZWMoZikpP3tmaWxlOnBbMl0sbWV0aG9kTmFtZTpwWzFdfHx0LGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOitwWzNdLGNvbHVtbjpwWzRdPytwWzRdOm51bGx9Om51bGwpfHwoaD1jLChtPWwuZXhlYyhoKSk/e2ZpbGU6bVszXSxtZXRob2ROYW1lOm1bMV18fHQsYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K21bNF0sY29sdW1uOm1bNV0/K21bNV06bnVsbH06bnVsbCk7cmV0dXJuIGcmJmUucHVzaChnKSxlfSxbXSl9LGUuZXhwb3J0cz1jfSkoKX0sXCIuL2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qc1wiOmZ1bmN0aW9uKGUpeygoKT0+e1widXNlIHN0cmljdFwiO3ZhciB0PXs1MTE6ZT0+e2UuZXhwb3J0cz0oe29ubHlGaXJzdDplPSExfT17fSk9PlJlZ0V4cChcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyl8KD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSlcIixlP3ZvaWQgMDpcImdcIil9LDUzMjooZSx0LG4pPT57bGV0IHI9big1MTEpO2UuZXhwb3J0cz1lPT5cInN0cmluZ1wiPT10eXBlb2YgZT9lLnJlcGxhY2UocigpLFwiXCIpOmV9fSxuPXt9O2Z1bmN0aW9uIHIoZSl7dmFyIG89bltlXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGE9bltlXT17ZXhwb3J0czp7fX0saT0hMDt0cnl7dFtlXShhLGEuZXhwb3J0cyxyKSxpPSExfWZpbmFsbHl7aSYmZGVsZXRlIG5bZV19cmV0dXJuIGEuZXhwb3J0c31yLmFiPVwiLy9cIixlLmV4cG9ydHM9cig1MzIpfSkoKX0sXCIuL3NyYy9idWlsZC93ZWJwYWNrL2xvYWRlcnMvZGV2dG9vbC9kZXZ0b29sLXN0eWxlLWluamVjdC5qc1wiOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtsZXQgZT13aW5kb3cuX25leHRqc0RldnRvb2xzU3R5bGVDYWNoZTtpZihlLmNhY2hlZFNoYWRvd1Jvb3QpcmV0dXJuIGUuY2FjaGVkU2hhZG93Um9vdDtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibmV4dGpzLXBvcnRhbFwiKSxuPXQ/LnNoYWRvd1Jvb3R8fG51bGw7cmV0dXJuIG4mJihlLmNhY2hlZFNoYWRvd1Jvb3Q9biksbn1mdW5jdGlvbiBuKGUsdCl7bGV0IG49d2luZG93Ll9uZXh0anNEZXZ0b29sc1N0eWxlQ2FjaGU7bi5sYXN0SW5zZXJ0ZWRFbGVtZW50P24ubGFzdEluc2VydGVkRWxlbWVudC5uZXh0U2libGluZz90Lmluc2VydEJlZm9yZShlLG4ubGFzdEluc2VydGVkRWxlbWVudC5uZXh0U2libGluZyk6dC5hcHBlbmRDaGlsZChlKTp0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCksbi5sYXN0SW5zZXJ0ZWRFbGVtZW50PWV9ZnVuY3Rpb24gcigpe2xldCBlPXdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlLHI9dCgpO3ImJihlLnBlbmRpbmdFbGVtZW50cy5mb3JFYWNoKGU9PntuKGUscil9KSxlLnBlbmRpbmdFbGVtZW50cz1bXSl9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlPXdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlfHx7cGVuZGluZ0VsZW1lbnRzOltdLGlzT2JzZXJ2aW5nOiExLGxhc3RJbnNlcnRlZEVsZW1lbnQ6bnVsbCxjYWNoZWRTaGFkb3dSb290Om51bGx9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW5leHRqcy1kZXYtdG9vbC1zdHlsZVwiLFwidHJ1ZVwiKTtsZXQgbz10KCk7bz9uKGUsbyk6KHdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlLnBlbmRpbmdFbGVtZW50cy5wdXNoKGUpLGZ1bmN0aW9uKCl7bGV0IGU9d2luZG93Ll9uZXh0anNEZXZ0b29sc1N0eWxlQ2FjaGU7aWYoZS5pc09ic2VydmluZylyZXR1cm47aWYoZS5pc09ic2VydmluZz0hMCx0KCkpcmV0dXJuIHIoKTtsZXQgbj1uZXcgTXV0YXRpb25PYnNlcnZlcihvPT57aWYoMCE9PW8ubGVuZ3RoKXtmb3IobGV0IGEgb2YgbylpZigwIT09YS5hZGRlZE5vZGVzLmxlbmd0aClmb3IobGV0IG8gb2YgYS5hZGRlZE5vZGVzKXtpZihvLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpY29udGludWU7bGV0IGE9bnVsbDtpZihcIlNDUklQVFwiPT09by50YWdOYW1lJiZvLmdldEF0dHJpYnV0ZShcImRhdGEtbmV4dGpzLWRldi1vdmVybGF5XCIpP2E9by5maXJzdENoaWxkOlwiTkVYVEpTLVBPUlRBTFwiPT09by50YWdOYW1lJiYoYT1vKSxhKXtsZXQgbz0oKT0+e3QoKT8ocigpLG4uZGlzY29ubmVjdCgpLGUuaXNPYnNlcnZpbmc9ITEpOnNldFRpbWVvdXQobywyMCl9O28oKTtyZXR1cm59fX19KTtuLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX0oKSl9fSxcIi4vZGlzdC9jb21waWxlZC96b2QvaW5kZXguY2pzXCI6ZnVuY3Rpb24oZSl7KCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHQ9ezYyOTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pO3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTsoIW98fChcImdldFwiaW4gbz8hdC5fX2VzTW9kdWxlOm8ud3JpdGFibGV8fG8uY29uZmlndXJhYmxlKSkmJihvPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsbyl9OmZ1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pLGVbcl09dFtuXX0pLG89dGhpcyYmdGhpcy5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0XCIse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pfTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSksYT10aGlzJiZ0aGlzLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpXCJkZWZhdWx0XCIhPT1uJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmcih0LGUsbik7cmV0dXJuIG8odCxlKSx0fSxpPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiPT09bnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbil8fHIodCxlLG4pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lno9dm9pZCAwO2xldCBsPWEobig5MjMpKTt0Lno9bCxpKG4oOTIzKSx0KSx0LmRlZmF1bHQ9bH0sMzQ4OihlLHQsbik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlpvZEVycm9yPXQucXVvdGVsZXNzSnNvbj10LlpvZElzc3VlQ29kZT12b2lkIDA7bGV0IHI9big3MDkpO3QuWm9kSXNzdWVDb2RlPXIudXRpbC5hcnJheVRvRW51bShbXCJpbnZhbGlkX3R5cGVcIixcImludmFsaWRfbGl0ZXJhbFwiLFwiY3VzdG9tXCIsXCJpbnZhbGlkX3VuaW9uXCIsXCJpbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3JcIixcImludmFsaWRfZW51bV92YWx1ZVwiLFwidW5yZWNvZ25pemVkX2tleXNcIixcImludmFsaWRfYXJndW1lbnRzXCIsXCJpbnZhbGlkX3JldHVybl90eXBlXCIsXCJpbnZhbGlkX2RhdGVcIixcImludmFsaWRfc3RyaW5nXCIsXCJ0b29fc21hbGxcIixcInRvb19iaWdcIixcImludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzXCIsXCJub3RfbXVsdGlwbGVfb2ZcIixcIm5vdF9maW5pdGVcIl0pLHQucXVvdGVsZXNzSnNvbj1lPT5KU09OLnN0cmluZ2lmeShlLG51bGwsMikucmVwbGFjZSgvXCIoW15cIl0rKVwiOi9nLFwiJDE6XCIpO2NsYXNzIG8gZXh0ZW5kcyBFcnJvcntnZXQgZXJyb3JzKCl7cmV0dXJuIHRoaXMuaXNzdWVzfWNvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5pc3N1ZXM9W10sdGhpcy5hZGRJc3N1ZT1lPT57dGhpcy5pc3N1ZXM9Wy4uLnRoaXMuaXNzdWVzLGVdfSx0aGlzLmFkZElzc3Vlcz0oZT1bXSk9Pnt0aGlzLmlzc3Vlcz1bLi4udGhpcy5pc3N1ZXMsLi4uZV19O2xldCB0PW5ldy50YXJnZXQucHJvdG90eXBlO09iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyx0KTp0aGlzLl9fcHJvdG9fXz10LHRoaXMubmFtZT1cIlpvZEVycm9yXCIsdGhpcy5pc3N1ZXM9ZX1mb3JtYXQoZSl7bGV0IHQ9ZXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWVzc2FnZX0sbj17X2Vycm9yczpbXX0scj1lPT57Zm9yKGxldCBvIG9mIGUuaXNzdWVzKWlmKFwiaW52YWxpZF91bmlvblwiPT09by5jb2RlKW8udW5pb25FcnJvcnMubWFwKHIpO2Vsc2UgaWYoXCJpbnZhbGlkX3JldHVybl90eXBlXCI9PT1vLmNvZGUpcihvLnJldHVyblR5cGVFcnJvcik7ZWxzZSBpZihcImludmFsaWRfYXJndW1lbnRzXCI9PT1vLmNvZGUpcihvLmFyZ3VtZW50c0Vycm9yKTtlbHNlIGlmKDA9PT1vLnBhdGgubGVuZ3RoKW4uX2Vycm9ycy5wdXNoKHQobykpO2Vsc2V7bGV0IGU9bixyPTA7Zm9yKDtyPG8ucGF0aC5sZW5ndGg7KXtsZXQgbj1vLnBhdGhbcl07cj09PW8ucGF0aC5sZW5ndGgtMT8oZVtuXT1lW25dfHx7X2Vycm9yczpbXX0sZVtuXS5fZXJyb3JzLnB1c2godChvKSkpOmVbbl09ZVtuXXx8e19lcnJvcnM6W119LGU9ZVtuXSxyKyt9fX07cmV0dXJuIHIodGhpcyksbn1zdGF0aWMgYXNzZXJ0KGUpe2lmKCEoZSBpbnN0YW5jZW9mIG8pKXRocm93IEVycm9yKGBOb3QgYSBab2RFcnJvcjogJHtlfWApfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubWVzc2FnZX1nZXQgbWVzc2FnZSgpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmlzc3VlcyxyLnV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyLDIpfWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmlzc3Vlcy5sZW5ndGh9ZmxhdHRlbihlPWU9PmUubWVzc2FnZSl7bGV0IHQ9e30sbj1bXTtmb3IobGV0IHIgb2YgdGhpcy5pc3N1ZXMpaWYoci5wYXRoLmxlbmd0aD4wKXtsZXQgbj1yLnBhdGhbMF07dFtuXT10W25dfHxbXSx0W25dLnB1c2goZShyKSl9ZWxzZSBuLnB1c2goZShyKSk7cmV0dXJue2Zvcm1FcnJvcnM6bixmaWVsZEVycm9yczp0fX1nZXQgZm9ybUVycm9ycygpe3JldHVybiB0aGlzLmZsYXR0ZW4oKX19dC5ab2RFcnJvcj1vLG8uY3JlYXRlPWU9Pm5ldyBvKGUpfSw2MTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0RXJyb3JNYXA9dm9pZCAwLHQuc2V0RXJyb3JNYXA9ZnVuY3Rpb24oZSl7YT1lfSx0LmdldEVycm9yTWFwPWZ1bmN0aW9uKCl7cmV0dXJuIGF9O2xldCBvPXIobig4NzEpKTt0LmRlZmF1bHRFcnJvck1hcD1vLmRlZmF1bHQ7bGV0IGE9by5kZWZhdWx0fSw5MjM6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFvfHwoXCJnZXRcImluIG8/IXQuX19lc01vZHVsZTpvLndyaXRhYmxlfHxvLmNvbmZpZ3VyYWJsZSkpJiYobz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLG8pfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KSxvPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiPT09bnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbil8fHIodCxlLG4pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxvKG4oNjEpLHQpLG8obig4MTgpLHQpLG8obig1MTUpLHQpLG8obig3MDkpLHQpLG8obigxNTUpLHQpLG8obigzNDgpLHQpfSw1Mzg6KGUsdCk9Pnt2YXIgbixyO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZXJyb3JVdGlsPXZvaWQgMCwocj1ufHwodC5lcnJvclV0aWw9bj17fSkpLmVyclRvT2JqPWU9Plwic3RyaW5nXCI9PXR5cGVvZiBlP3ttZXNzYWdlOmV9OmV8fHt9LHIudG9TdHJpbmc9ZT0+XCJzdHJpbmdcIj09dHlwZW9mIGU/ZTplPy5tZXNzYWdlfSw4MTg6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaXNBc3luYz10LmlzVmFsaWQ9dC5pc0RpcnR5PXQuaXNBYm9ydGVkPXQuT0s9dC5ESVJUWT10LklOVkFMSUQ9dC5QYXJzZVN0YXR1cz10LkVNUFRZX1BBVEg9dC5tYWtlSXNzdWU9dm9pZCAwLHQuYWRkSXNzdWVUb0NvbnRleHQ9ZnVuY3Rpb24oZSxuKXtsZXQgcj0oMCxvLmdldEVycm9yTWFwKSgpLGk9KDAsdC5tYWtlSXNzdWUpKHtpc3N1ZURhdGE6bixkYXRhOmUuZGF0YSxwYXRoOmUucGF0aCxlcnJvck1hcHM6W2UuY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCxlLnNjaGVtYUVycm9yTWFwLHIscj09PWEuZGVmYXVsdD92b2lkIDA6YS5kZWZhdWx0XS5maWx0ZXIoZT0+ISFlKX0pO2UuY29tbW9uLmlzc3Vlcy5wdXNoKGkpfTtsZXQgbz1uKDYxKSxhPXIobig4NzEpKTt0Lm1ha2VJc3N1ZT1lPT57bGV0e2RhdGE6dCxwYXRoOm4sZXJyb3JNYXBzOnIsaXNzdWVEYXRhOm99PWUsYT1bLi4ubiwuLi5vLnBhdGh8fFtdXSxpPXsuLi5vLHBhdGg6YX07aWYodm9pZCAwIT09by5tZXNzYWdlKXJldHVybnsuLi5vLHBhdGg6YSxtZXNzYWdlOm8ubWVzc2FnZX07bGV0IGw9XCJcIjtmb3IobGV0IGUgb2Ygci5maWx0ZXIoZT0+ISFlKS5zbGljZSgpLnJldmVyc2UoKSlsPWUoaSx7ZGF0YTp0LGRlZmF1bHRFcnJvcjpsfSkubWVzc2FnZTtyZXR1cm57Li4ubyxwYXRoOmEsbWVzc2FnZTpsfX0sdC5FTVBUWV9QQVRIPVtdO2NsYXNzIGl7Y29uc3RydWN0b3IoKXt0aGlzLnZhbHVlPVwidmFsaWRcIn1kaXJ0eSgpe1widmFsaWRcIj09PXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPVwiZGlydHlcIil9YWJvcnQoKXtcImFib3J0ZWRcIiE9PXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPVwiYWJvcnRlZFwiKX1zdGF0aWMgbWVyZ2VBcnJheShlLG4pe2xldCByPVtdO2ZvcihsZXQgbyBvZiBuKXtpZihcImFib3J0ZWRcIj09PW8uc3RhdHVzKXJldHVybiB0LklOVkFMSUQ7XCJkaXJ0eVwiPT09by5zdGF0dXMmJmUuZGlydHkoKSxyLnB1c2goby52YWx1ZSl9cmV0dXJue3N0YXR1czplLnZhbHVlLHZhbHVlOnJ9fXN0YXRpYyBhc3luYyBtZXJnZU9iamVjdEFzeW5jKGUsdCl7bGV0IG49W107Zm9yKGxldCBlIG9mIHQpe2xldCB0PWF3YWl0IGUua2V5LHI9YXdhaXQgZS52YWx1ZTtuLnB1c2goe2tleTp0LHZhbHVlOnJ9KX1yZXR1cm4gaS5tZXJnZU9iamVjdFN5bmMoZSxuKX1zdGF0aWMgbWVyZ2VPYmplY3RTeW5jKGUsbil7bGV0IHI9e307Zm9yKGxldCBvIG9mIG4pe2xldHtrZXk6bix2YWx1ZTphfT1vO2lmKFwiYWJvcnRlZFwiPT09bi5zdGF0dXN8fFwiYWJvcnRlZFwiPT09YS5zdGF0dXMpcmV0dXJuIHQuSU5WQUxJRDtcImRpcnR5XCI9PT1uLnN0YXR1cyYmZS5kaXJ0eSgpLFwiZGlydHlcIj09PWEuc3RhdHVzJiZlLmRpcnR5KCksXCJfX3Byb3RvX19cIiE9PW4udmFsdWUmJih2b2lkIDAhPT1hLnZhbHVlfHxvLmFsd2F5c1NldCkmJihyW24udmFsdWVdPWEudmFsdWUpfXJldHVybntzdGF0dXM6ZS52YWx1ZSx2YWx1ZTpyfX19dC5QYXJzZVN0YXR1cz1pLHQuSU5WQUxJRD1PYmplY3QuZnJlZXplKHtzdGF0dXM6XCJhYm9ydGVkXCJ9KSx0LkRJUlRZPWU9Pih7c3RhdHVzOlwiZGlydHlcIix2YWx1ZTplfSksdC5PSz1lPT4oe3N0YXR1czpcInZhbGlkXCIsdmFsdWU6ZX0pLHQuaXNBYm9ydGVkPWU9PlwiYWJvcnRlZFwiPT09ZS5zdGF0dXMsdC5pc0RpcnR5PWU9PlwiZGlydHlcIj09PWUuc3RhdHVzLHQuaXNWYWxpZD1lPT5cInZhbGlkXCI9PT1lLnN0YXR1cyx0LmlzQXN5bmM9ZT0+XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFByb21pc2UmJmUgaW5zdGFuY2VvZiBQcm9taXNlfSw1MTU6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sNzA5OihlLHQpPT57dmFyIG4scixvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZ2V0UGFyc2VkVHlwZT10LlpvZFBhcnNlZFR5cGU9dC5vYmplY3RVdGlsPXQudXRpbD12b2lkIDAsKG89bnx8KHQudXRpbD1uPXt9KSkuYXNzZXJ0RXF1YWw9ZT0+e30sby5hc3NlcnRJcz1mdW5jdGlvbihlKXt9LG8uYXNzZXJ0TmV2ZXI9ZnVuY3Rpb24oZSl7dGhyb3cgRXJyb3IoKX0sby5hcnJheVRvRW51bT1lPT57bGV0IHQ9e307Zm9yKGxldCBuIG9mIGUpdFtuXT1uO3JldHVybiB0fSxvLmdldFZhbGlkRW51bVZhbHVlcz1lPT57bGV0IHQ9by5vYmplY3RLZXlzKGUpLmZpbHRlcih0PT5cIm51bWJlclwiIT10eXBlb2YgZVtlW3RdXSksbj17fTtmb3IobGV0IHIgb2YgdCluW3JdPWVbcl07cmV0dXJuIG8ub2JqZWN0VmFsdWVzKG4pfSxvLm9iamVjdFZhbHVlcz1lPT5vLm9iamVjdEtleXMoZSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSksby5vYmplY3RLZXlzPVwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5rZXlzP2U9Pk9iamVjdC5rZXlzKGUpOmU9PntsZXQgdD1bXTtmb3IobGV0IG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmdC5wdXNoKG4pO3JldHVybiB0fSxvLmZpbmQ9KGUsdCk9Pntmb3IobGV0IG4gb2YgZSlpZih0KG4pKXJldHVybiBufSxvLmlzSW50ZWdlcj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBOdW1iZXIuaXNJbnRlZ2VyP2U9Pk51bWJlci5pc0ludGVnZXIoZSk6ZT0+XCJudW1iZXJcIj09dHlwZW9mIGUmJk51bWJlci5pc0Zpbml0ZShlKSYmTWF0aC5mbG9vcihlKT09PWUsby5qb2luVmFsdWVzPWZ1bmN0aW9uKGUsdD1cIiB8IFwiKXtyZXR1cm4gZS5tYXAoZT0+XCJzdHJpbmdcIj09dHlwZW9mIGU/YCcke2V9J2A6ZSkuam9pbih0KX0sby5qc29uU3RyaW5naWZ5UmVwbGFjZXI9KGUsdCk9PlwiYmlnaW50XCI9PXR5cGVvZiB0P3QudG9TdHJpbmcoKTp0LChyfHwodC5vYmplY3RVdGlsPXI9e30pKS5tZXJnZVNoYXBlcz0oZSx0KT0+KHsuLi5lLC4uLnR9KSx0LlpvZFBhcnNlZFR5cGU9bi5hcnJheVRvRW51bShbXCJzdHJpbmdcIixcIm5hblwiLFwibnVtYmVyXCIsXCJpbnRlZ2VyXCIsXCJmbG9hdFwiLFwiYm9vbGVhblwiLFwiZGF0ZVwiLFwiYmlnaW50XCIsXCJzeW1ib2xcIixcImZ1bmN0aW9uXCIsXCJ1bmRlZmluZWRcIixcIm51bGxcIixcImFycmF5XCIsXCJvYmplY3RcIixcInVua25vd25cIixcInByb21pc2VcIixcInZvaWRcIixcIm5ldmVyXCIsXCJtYXBcIixcInNldFwiXSksdC5nZXRQYXJzZWRUeXBlPWU9Pntzd2l0Y2godHlwZW9mIGUpe2Nhc2VcInVuZGVmaW5lZFwiOnJldHVybiB0LlpvZFBhcnNlZFR5cGUudW5kZWZpbmVkO2Nhc2VcInN0cmluZ1wiOnJldHVybiB0LlpvZFBhcnNlZFR5cGUuc3RyaW5nO2Nhc2VcIm51bWJlclwiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/dC5ab2RQYXJzZWRUeXBlLm5hbjp0LlpvZFBhcnNlZFR5cGUubnVtYmVyO2Nhc2VcImJvb2xlYW5cIjpyZXR1cm4gdC5ab2RQYXJzZWRUeXBlLmJvb2xlYW47Y2FzZVwiZnVuY3Rpb25cIjpyZXR1cm4gdC5ab2RQYXJzZWRUeXBlLmZ1bmN0aW9uO2Nhc2VcImJpZ2ludFwiOnJldHVybiB0LlpvZFBhcnNlZFR5cGUuYmlnaW50O2Nhc2VcInN5bWJvbFwiOnJldHVybiB0LlpvZFBhcnNlZFR5cGUuc3ltYm9sO2Nhc2VcIm9iamVjdFwiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQuWm9kUGFyc2VkVHlwZS5hcnJheTtpZihudWxsPT09ZSlyZXR1cm4gdC5ab2RQYXJzZWRUeXBlLm51bGw7aWYoZS50aGVuJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRoZW4mJmUuY2F0Y2gmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGUuY2F0Y2gpcmV0dXJuIHQuWm9kUGFyc2VkVHlwZS5wcm9taXNlO2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBNYXAmJmUgaW5zdGFuY2VvZiBNYXApcmV0dXJuIHQuWm9kUGFyc2VkVHlwZS5tYXA7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFNldCYmZSBpbnN0YW5jZW9mIFNldClyZXR1cm4gdC5ab2RQYXJzZWRUeXBlLnNldDtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgRGF0ZSYmZSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIHQuWm9kUGFyc2VkVHlwZS5kYXRlO3JldHVybiB0LlpvZFBhcnNlZFR5cGUub2JqZWN0O2RlZmF1bHQ6cmV0dXJuIHQuWm9kUGFyc2VkVHlwZS51bmtub3dufX19LDg3MTooZSx0LG4pPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7bGV0IHI9bigzNDgpLG89big3MDkpO3QuZGVmYXVsdD0oZSx0KT0+e2xldCBuO3N3aXRjaChlLmNvZGUpe2Nhc2Ugci5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlOm49ZS5yZWNlaXZlZD09PW8uWm9kUGFyc2VkVHlwZS51bmRlZmluZWQ/XCJSZXF1aXJlZFwiOmBFeHBlY3RlZCAke2UuZXhwZWN0ZWR9LCByZWNlaXZlZCAke2UucmVjZWl2ZWR9YDticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfbGl0ZXJhbDpuPWBJbnZhbGlkIGxpdGVyYWwgdmFsdWUsIGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZS5leHBlY3RlZCxvLnV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyKX1gO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUudW5yZWNvZ25pemVkX2tleXM6bj1gVW5yZWNvZ25pemVkIGtleShzKSBpbiBvYmplY3Q6ICR7by51dGlsLmpvaW5WYWx1ZXMoZS5rZXlzLFwiLCBcIil9YDticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb246bj1cIkludmFsaWQgaW5wdXRcIjticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb25fZGlzY3JpbWluYXRvcjpuPWBJbnZhbGlkIGRpc2NyaW1pbmF0b3IgdmFsdWUuIEV4cGVjdGVkICR7by51dGlsLmpvaW5WYWx1ZXMoZS5vcHRpb25zKX1gO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlOm49YEludmFsaWQgZW51bSB2YWx1ZS4gRXhwZWN0ZWQgJHtvLnV0aWwuam9pblZhbHVlcyhlLm9wdGlvbnMpfSwgcmVjZWl2ZWQgJyR7ZS5yZWNlaXZlZH0nYDticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfYXJndW1lbnRzOm49XCJJbnZhbGlkIGZ1bmN0aW9uIGFyZ3VtZW50c1wiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUuaW52YWxpZF9yZXR1cm5fdHlwZTpuPVwiSW52YWxpZCBmdW5jdGlvbiByZXR1cm4gdHlwZVwiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUuaW52YWxpZF9kYXRlOm49XCJJbnZhbGlkIGRhdGVcIjticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nOlwib2JqZWN0XCI9PXR5cGVvZiBlLnZhbGlkYXRpb24/XCJpbmNsdWRlc1wiaW4gZS52YWxpZGF0aW9uPyhuPWBJbnZhbGlkIGlucHV0OiBtdXN0IGluY2x1ZGUgXCIke2UudmFsaWRhdGlvbi5pbmNsdWRlc31cImAsXCJudW1iZXJcIj09dHlwZW9mIGUudmFsaWRhdGlvbi5wb3NpdGlvbiYmKG49YCR7bn0gYXQgb25lIG9yIG1vcmUgcG9zaXRpb25zIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke2UudmFsaWRhdGlvbi5wb3NpdGlvbn1gKSk6XCJzdGFydHNXaXRoXCJpbiBlLnZhbGlkYXRpb24/bj1gSW52YWxpZCBpbnB1dDogbXVzdCBzdGFydCB3aXRoIFwiJHtlLnZhbGlkYXRpb24uc3RhcnRzV2l0aH1cImA6XCJlbmRzV2l0aFwiaW4gZS52YWxpZGF0aW9uP249YEludmFsaWQgaW5wdXQ6IG11c3QgZW5kIHdpdGggXCIke2UudmFsaWRhdGlvbi5lbmRzV2l0aH1cImA6by51dGlsLmFzc2VydE5ldmVyKGUudmFsaWRhdGlvbik6bj1cInJlZ2V4XCIhPT1lLnZhbGlkYXRpb24/YEludmFsaWQgJHtlLnZhbGlkYXRpb259YDpcIkludmFsaWRcIjticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLnRvb19zbWFsbDpuPVwiYXJyYXlcIj09PWUudHlwZT9gQXJyYXkgbXVzdCBjb250YWluICR7ZS5leGFjdD9cImV4YWN0bHlcIjplLmluY2x1c2l2ZT9cImF0IGxlYXN0XCI6XCJtb3JlIHRoYW5cIn0gJHtlLm1pbmltdW19IGVsZW1lbnQocylgOlwic3RyaW5nXCI9PT1lLnR5cGU/YFN0cmluZyBtdXN0IGNvbnRhaW4gJHtlLmV4YWN0P1wiZXhhY3RseVwiOmUuaW5jbHVzaXZlP1wiYXQgbGVhc3RcIjpcIm92ZXJcIn0gJHtlLm1pbmltdW19IGNoYXJhY3RlcihzKWA6XCJudW1iZXJcIj09PWUudHlwZXx8XCJiaWdpbnRcIj09PWUudHlwZT9gTnVtYmVyIG11c3QgYmUgJHtlLmV4YWN0P1wiZXhhY3RseSBlcXVhbCB0byBcIjplLmluY2x1c2l2ZT9cImdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBcIjpcImdyZWF0ZXIgdGhhbiBcIn0ke2UubWluaW11bX1gOlwiZGF0ZVwiPT09ZS50eXBlP2BEYXRlIG11c3QgYmUgJHtlLmV4YWN0P1wiZXhhY3RseSBlcXVhbCB0byBcIjplLmluY2x1c2l2ZT9cImdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBcIjpcImdyZWF0ZXIgdGhhbiBcIn0ke25ldyBEYXRlKE51bWJlcihlLm1pbmltdW0pKX1gOlwiSW52YWxpZCBpbnB1dFwiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUudG9vX2JpZzpuPVwiYXJyYXlcIj09PWUudHlwZT9gQXJyYXkgbXVzdCBjb250YWluICR7ZS5leGFjdD9cImV4YWN0bHlcIjplLmluY2x1c2l2ZT9cImF0IG1vc3RcIjpcImxlc3MgdGhhblwifSAke2UubWF4aW11bX0gZWxlbWVudChzKWA6XCJzdHJpbmdcIj09PWUudHlwZT9gU3RyaW5nIG11c3QgY29udGFpbiAke2UuZXhhY3Q/XCJleGFjdGx5XCI6ZS5pbmNsdXNpdmU/XCJhdCBtb3N0XCI6XCJ1bmRlclwifSAke2UubWF4aW11bX0gY2hhcmFjdGVyKHMpYDpcIm51bWJlclwiPT09ZS50eXBlP2BOdW1iZXIgbXVzdCBiZSAke2UuZXhhY3Q/XCJleGFjdGx5XCI6ZS5pbmNsdXNpdmU/XCJsZXNzIHRoYW4gb3IgZXF1YWwgdG9cIjpcImxlc3MgdGhhblwifSAke2UubWF4aW11bX1gOlwiYmlnaW50XCI9PT1lLnR5cGU/YEJpZ0ludCBtdXN0IGJlICR7ZS5leGFjdD9cImV4YWN0bHlcIjplLmluY2x1c2l2ZT9cImxlc3MgdGhhbiBvciBlcXVhbCB0b1wiOlwibGVzcyB0aGFuXCJ9ICR7ZS5tYXhpbXVtfWA6XCJkYXRlXCI9PT1lLnR5cGU/YERhdGUgbXVzdCBiZSAke2UuZXhhY3Q/XCJleGFjdGx5XCI6ZS5pbmNsdXNpdmU/XCJzbWFsbGVyIHRoYW4gb3IgZXF1YWwgdG9cIjpcInNtYWxsZXIgdGhhblwifSAke25ldyBEYXRlKE51bWJlcihlLm1heGltdW0pKX1gOlwiSW52YWxpZCBpbnB1dFwiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUuY3VzdG9tOm49XCJJbnZhbGlkIGlucHV0XCI7YnJlYWs7Y2FzZSByLlpvZElzc3VlQ29kZS5pbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlczpuPVwiSW50ZXJzZWN0aW9uIHJlc3VsdHMgY291bGQgbm90IGJlIG1lcmdlZFwiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUubm90X211bHRpcGxlX29mOm49YE51bWJlciBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgJHtlLm11bHRpcGxlT2Z9YDticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLm5vdF9maW5pdGU6bj1cIk51bWJlciBtdXN0IGJlIGZpbml0ZVwiO2JyZWFrO2RlZmF1bHQ6bj10LmRlZmF1bHRFcnJvcixvLnV0aWwuYXNzZXJ0TmV2ZXIoZSl9cmV0dXJue21lc3NhZ2U6bn19fSwxNTU6KGUsdCxuKT0+e3ZhciByLG87bGV0IGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kaXNjcmltaW5hdGVkVW5pb249dC5kYXRlPXQuYm9vbGVhbj10LmJpZ2ludD10LmFycmF5PXQuYW55PXQuY29lcmNlPXQuWm9kRmlyc3RQYXJ0eVR5cGVLaW5kPXQubGF0ZT10LlpvZFNjaGVtYT10LlNjaGVtYT10LlpvZFJlYWRvbmx5PXQuWm9kUGlwZWxpbmU9dC5ab2RCcmFuZGVkPXQuQlJBTkQ9dC5ab2ROYU49dC5ab2RDYXRjaD10LlpvZERlZmF1bHQ9dC5ab2ROdWxsYWJsZT10LlpvZE9wdGlvbmFsPXQuWm9kVHJhbnNmb3JtZXI9dC5ab2RFZmZlY3RzPXQuWm9kUHJvbWlzZT10LlpvZE5hdGl2ZUVudW09dC5ab2RFbnVtPXQuWm9kTGl0ZXJhbD10LlpvZExhenk9dC5ab2RGdW5jdGlvbj10LlpvZFNldD10LlpvZE1hcD10LlpvZFJlY29yZD10LlpvZFR1cGxlPXQuWm9kSW50ZXJzZWN0aW9uPXQuWm9kRGlzY3JpbWluYXRlZFVuaW9uPXQuWm9kVW5pb249dC5ab2RPYmplY3Q9dC5ab2RBcnJheT10LlpvZFZvaWQ9dC5ab2ROZXZlcj10LlpvZFVua25vd249dC5ab2RBbnk9dC5ab2ROdWxsPXQuWm9kVW5kZWZpbmVkPXQuWm9kU3ltYm9sPXQuWm9kRGF0ZT10LlpvZEJvb2xlYW49dC5ab2RCaWdJbnQ9dC5ab2ROdW1iZXI9dC5ab2RTdHJpbmc9dC5ab2RUeXBlPXZvaWQgMCx0Lk5FVkVSPXQudm9pZD10LnVua25vd249dC51bmlvbj10LnVuZGVmaW5lZD10LnR1cGxlPXQudHJhbnNmb3JtZXI9dC5zeW1ib2w9dC5zdHJpbmc9dC5zdHJpY3RPYmplY3Q9dC5zZXQ9dC5yZWNvcmQ9dC5wcm9taXNlPXQucHJlcHJvY2Vzcz10LnBpcGVsaW5lPXQub3N0cmluZz10Lm9wdGlvbmFsPXQub251bWJlcj10Lm9ib29sZWFuPXQub2JqZWN0PXQubnVtYmVyPXQubnVsbGFibGU9dC5udWxsPXQubmV2ZXI9dC5uYXRpdmVFbnVtPXQubmFuPXQubWFwPXQubGl0ZXJhbD10Lmxhenk9dC5pbnRlcnNlY3Rpb249dC5pbnN0YW5jZW9mPXQuZnVuY3Rpb249dC5lbnVtPXQuZWZmZWN0PXZvaWQgMCx0LmRhdGV0aW1lUmVnZXg9SSx0LmN1c3RvbT1ldjtsZXQgaT1uKDM0OCksbD1uKDYxKSxzPW4oNTM4KSxjPW4oODE4KSx1PW4oNzA5KTtjbGFzcyBke2NvbnN0cnVjdG9yKGUsdCxuLHIpe3RoaXMuX2NhY2hlZFBhdGg9W10sdGhpcy5wYXJlbnQ9ZSx0aGlzLmRhdGE9dCx0aGlzLl9wYXRoPW4sdGhpcy5fa2V5PXJ9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fY2FjaGVkUGF0aC5sZW5ndGh8fChBcnJheS5pc0FycmF5KHRoaXMuX2tleSk/dGhpcy5fY2FjaGVkUGF0aC5wdXNoKC4uLnRoaXMuX3BhdGgsLi4udGhpcy5fa2V5KTp0aGlzLl9jYWNoZWRQYXRoLnB1c2goLi4udGhpcy5fcGF0aCx0aGlzLl9rZXkpKSx0aGlzLl9jYWNoZWRQYXRofX1sZXQgZj0oZSx0KT0+e2lmKCgwLGMuaXNWYWxpZCkodCkpcmV0dXJue3N1Y2Nlc3M6ITAsZGF0YTp0LnZhbHVlfTtpZighZS5jb21tb24uaXNzdWVzLmxlbmd0aCl0aHJvdyBFcnJvcihcIlZhbGlkYXRpb24gZmFpbGVkIGJ1dCBubyBpc3N1ZXMgZGV0ZWN0ZWQuXCIpO3JldHVybntzdWNjZXNzOiExLGdldCBlcnJvcigpe2lmKHRoaXMuX2Vycm9yKXJldHVybiB0aGlzLl9lcnJvcjtsZXQgdD1uZXcgaS5ab2RFcnJvcihlLmNvbW1vbi5pc3N1ZXMpO3JldHVybiB0aGlzLl9lcnJvcj10LHRoaXMuX2Vycm9yfX19O2Z1bmN0aW9uIHAoZSl7aWYoIWUpcmV0dXJue307bGV0e2Vycm9yTWFwOnQsaW52YWxpZF90eXBlX2Vycm9yOm4scmVxdWlyZWRfZXJyb3I6cixkZXNjcmlwdGlvbjpvfT1lO2lmKHQmJihufHxyKSl0aHJvdyBFcnJvcignQ2FuXFwndCB1c2UgXCJpbnZhbGlkX3R5cGVfZXJyb3JcIiBvciBcInJlcXVpcmVkX2Vycm9yXCIgaW4gY29uanVuY3Rpb24gd2l0aCBjdXN0b20gZXJyb3IgbWFwLicpO3JldHVybiB0P3tlcnJvck1hcDp0LGRlc2NyaXB0aW9uOm99OntlcnJvck1hcDoodCxvKT0+e2xldHttZXNzYWdlOmF9PWU7cmV0dXJuXCJpbnZhbGlkX2VudW1fdmFsdWVcIj09PXQuY29kZT97bWVzc2FnZTphPz9vLmRlZmF1bHRFcnJvcn06dm9pZCAwPT09by5kYXRhP3ttZXNzYWdlOmE/P3I/P28uZGVmYXVsdEVycm9yfTpcImludmFsaWRfdHlwZVwiIT09dC5jb2RlP3ttZXNzYWdlOm8uZGVmYXVsdEVycm9yfTp7bWVzc2FnZTphPz9uPz9vLmRlZmF1bHRFcnJvcn19LGRlc2NyaXB0aW9uOm99fWNsYXNzIGh7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZi5kZXNjcmlwdGlvbn1fZ2V0VHlwZShlKXtyZXR1cm4oMCx1LmdldFBhcnNlZFR5cGUpKGUuZGF0YSl9X2dldE9yUmV0dXJuQ3R4KGUsdCl7cmV0dXJuIHR8fHtjb21tb246ZS5wYXJlbnQuY29tbW9uLGRhdGE6ZS5kYXRhLHBhcnNlZFR5cGU6KDAsdS5nZXRQYXJzZWRUeXBlKShlLmRhdGEpLHNjaGVtYUVycm9yTWFwOnRoaXMuX2RlZi5lcnJvck1hcCxwYXRoOmUucGF0aCxwYXJlbnQ6ZS5wYXJlbnR9fV9wcm9jZXNzSW5wdXRQYXJhbXMoZSl7cmV0dXJue3N0YXR1czpuZXcgYy5QYXJzZVN0YXR1cyxjdHg6e2NvbW1vbjplLnBhcmVudC5jb21tb24sZGF0YTplLmRhdGEscGFyc2VkVHlwZTooMCx1LmdldFBhcnNlZFR5cGUpKGUuZGF0YSksc2NoZW1hRXJyb3JNYXA6dGhpcy5fZGVmLmVycm9yTWFwLHBhdGg6ZS5wYXRoLHBhcmVudDplLnBhcmVudH19fV9wYXJzZVN5bmMoZSl7bGV0IHQ9dGhpcy5fcGFyc2UoZSk7aWYoKDAsYy5pc0FzeW5jKSh0KSl0aHJvdyBFcnJvcihcIlN5bmNocm9ub3VzIHBhcnNlIGVuY291bnRlcmVkIHByb21pc2UuXCIpO3JldHVybiB0fV9wYXJzZUFzeW5jKGUpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fcGFyc2UoZSkpfXBhcnNlKGUsdCl7bGV0IG49dGhpcy5zYWZlUGFyc2UoZSx0KTtpZihuLnN1Y2Nlc3MpcmV0dXJuIG4uZGF0YTt0aHJvdyBuLmVycm9yfXNhZmVQYXJzZShlLHQpe2xldCBuPXtjb21tb246e2lzc3VlczpbXSxhc3luYzp0Py5hc3luYz8/ITEsY29udGV4dHVhbEVycm9yTWFwOnQ/LmVycm9yTWFwfSxwYXRoOnQ/LnBhdGh8fFtdLHNjaGVtYUVycm9yTWFwOnRoaXMuX2RlZi5lcnJvck1hcCxwYXJlbnQ6bnVsbCxkYXRhOmUscGFyc2VkVHlwZTooMCx1LmdldFBhcnNlZFR5cGUpKGUpfSxyPXRoaXMuX3BhcnNlU3luYyh7ZGF0YTplLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuIGYobixyKX1cIn52YWxpZGF0ZVwiKGUpe2xldCB0PXtjb21tb246e2lzc3VlczpbXSxhc3luYzohIXRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmN9LHBhdGg6W10sc2NoZW1hRXJyb3JNYXA6dGhpcy5fZGVmLmVycm9yTWFwLHBhcmVudDpudWxsLGRhdGE6ZSxwYXJzZWRUeXBlOigwLHUuZ2V0UGFyc2VkVHlwZSkoZSl9O2lmKCF0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jKXRyeXtsZXQgbj10aGlzLl9wYXJzZVN5bmMoe2RhdGE6ZSxwYXRoOltdLHBhcmVudDp0fSk7cmV0dXJuKDAsYy5pc1ZhbGlkKShuKT97dmFsdWU6bi52YWx1ZX06e2lzc3Vlczp0LmNvbW1vbi5pc3N1ZXN9fWNhdGNoKGUpe2U/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKFwiZW5jb3VudGVyZWRcIikmJih0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jPSEwKSx0LmNvbW1vbj17aXNzdWVzOltdLGFzeW5jOiEwfX1yZXR1cm4gdGhpcy5fcGFyc2VBc3luYyh7ZGF0YTplLHBhdGg6W10scGFyZW50OnR9KS50aGVuKGU9PigwLGMuaXNWYWxpZCkoZSk/e3ZhbHVlOmUudmFsdWV9Ontpc3N1ZXM6dC5jb21tb24uaXNzdWVzfSl9YXN5bmMgcGFyc2VBc3luYyhlLHQpe2xldCBuPWF3YWl0IHRoaXMuc2FmZVBhcnNlQXN5bmMoZSx0KTtpZihuLnN1Y2Nlc3MpcmV0dXJuIG4uZGF0YTt0aHJvdyBuLmVycm9yfWFzeW5jIHNhZmVQYXJzZUFzeW5jKGUsdCl7bGV0IG49e2NvbW1vbjp7aXNzdWVzOltdLGNvbnRleHR1YWxFcnJvck1hcDp0Py5lcnJvck1hcCxhc3luYzohMH0scGF0aDp0Py5wYXRofHxbXSxzY2hlbWFFcnJvck1hcDp0aGlzLl9kZWYuZXJyb3JNYXAscGFyZW50Om51bGwsZGF0YTplLHBhcnNlZFR5cGU6KDAsdS5nZXRQYXJzZWRUeXBlKShlKX0scj10aGlzLl9wYXJzZSh7ZGF0YTplLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuIGYobixhd2FpdCAoKDAsYy5pc0FzeW5jKShyKT9yOlByb21pc2UucmVzb2x2ZShyKSkpfXJlZmluZShlLHQpe3JldHVybiB0aGlzLl9yZWZpbmVtZW50KChuLHIpPT57bGV0IG89ZShuKSxhPSgpPT5yLmFkZElzc3VlKHtjb2RlOmkuWm9kSXNzdWVDb2RlLmN1c3RvbSwuLi5cInN0cmluZ1wiPT10eXBlb2YgdHx8dm9pZCAwPT09dD97bWVzc2FnZTp0fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qobik6dH0pO3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm9taXNlJiZvIGluc3RhbmNlb2YgUHJvbWlzZT9vLnRoZW4oZT0+ISFlfHwoYSgpLCExKSk6ISFvfHwoYSgpLCExKX0pfXJlZmluZW1lbnQoZSx0KXtyZXR1cm4gdGhpcy5fcmVmaW5lbWVudCgobixyKT0+ISFlKG4pfHwoci5hZGRJc3N1ZShcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QobixyKTp0KSwhMSkpfV9yZWZpbmVtZW50KGUpe3JldHVybiBuZXcgZXMoe3NjaGVtYTp0aGlzLHR5cGVOYW1lOnIuWm9kRWZmZWN0cyxlZmZlY3Q6e3R5cGU6XCJyZWZpbmVtZW50XCIscmVmaW5lbWVudDplfX0pfXN1cGVyUmVmaW5lKGUpe3JldHVybiB0aGlzLl9yZWZpbmVtZW50KGUpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3BhPXRoaXMuc2FmZVBhcnNlQXN5bmMsdGhpcy5fZGVmPWUsdGhpcy5wYXJzZT10aGlzLnBhcnNlLmJpbmQodGhpcyksdGhpcy5zYWZlUGFyc2U9dGhpcy5zYWZlUGFyc2UuYmluZCh0aGlzKSx0aGlzLnBhcnNlQXN5bmM9dGhpcy5wYXJzZUFzeW5jLmJpbmQodGhpcyksdGhpcy5zYWZlUGFyc2VBc3luYz10aGlzLnNhZmVQYXJzZUFzeW5jLmJpbmQodGhpcyksdGhpcy5zcGE9dGhpcy5zcGEuYmluZCh0aGlzKSx0aGlzLnJlZmluZT10aGlzLnJlZmluZS5iaW5kKHRoaXMpLHRoaXMucmVmaW5lbWVudD10aGlzLnJlZmluZW1lbnQuYmluZCh0aGlzKSx0aGlzLnN1cGVyUmVmaW5lPXRoaXMuc3VwZXJSZWZpbmUuYmluZCh0aGlzKSx0aGlzLm9wdGlvbmFsPXRoaXMub3B0aW9uYWwuYmluZCh0aGlzKSx0aGlzLm51bGxhYmxlPXRoaXMubnVsbGFibGUuYmluZCh0aGlzKSx0aGlzLm51bGxpc2g9dGhpcy5udWxsaXNoLmJpbmQodGhpcyksdGhpcy5hcnJheT10aGlzLmFycmF5LmJpbmQodGhpcyksdGhpcy5wcm9taXNlPXRoaXMucHJvbWlzZS5iaW5kKHRoaXMpLHRoaXMub3I9dGhpcy5vci5iaW5kKHRoaXMpLHRoaXMuYW5kPXRoaXMuYW5kLmJpbmQodGhpcyksdGhpcy50cmFuc2Zvcm09dGhpcy50cmFuc2Zvcm0uYmluZCh0aGlzKSx0aGlzLmJyYW5kPXRoaXMuYnJhbmQuYmluZCh0aGlzKSx0aGlzLmRlZmF1bHQ9dGhpcy5kZWZhdWx0LmJpbmQodGhpcyksdGhpcy5jYXRjaD10aGlzLmNhdGNoLmJpbmQodGhpcyksdGhpcy5kZXNjcmliZT10aGlzLmRlc2NyaWJlLmJpbmQodGhpcyksdGhpcy5waXBlPXRoaXMucGlwZS5iaW5kKHRoaXMpLHRoaXMucmVhZG9ubHk9dGhpcy5yZWFkb25seS5iaW5kKHRoaXMpLHRoaXMuaXNOdWxsYWJsZT10aGlzLmlzTnVsbGFibGUuYmluZCh0aGlzKSx0aGlzLmlzT3B0aW9uYWw9dGhpcy5pc09wdGlvbmFsLmJpbmQodGhpcyksdGhpc1tcIn5zdGFuZGFyZFwiXT17dmVyc2lvbjoxLHZlbmRvcjpcInpvZFwiLHZhbGlkYXRlOmU9PnRoaXNbXCJ+dmFsaWRhdGVcIl0oZSl9fW9wdGlvbmFsKCl7cmV0dXJuIGVjLmNyZWF0ZSh0aGlzLHRoaXMuX2RlZil9bnVsbGFibGUoKXtyZXR1cm4gZXUuY3JlYXRlKHRoaXMsdGhpcy5fZGVmKX1udWxsaXNoKCl7cmV0dXJuIHRoaXMubnVsbGFibGUoKS5vcHRpb25hbCgpfWFycmF5KCl7cmV0dXJuIFYuY3JlYXRlKHRoaXMpfXByb21pc2UoKXtyZXR1cm4gZWwuY3JlYXRlKHRoaXMsdGhpcy5fZGVmKX1vcihlKXtyZXR1cm4gVy5jcmVhdGUoW3RoaXMsZV0sdGhpcy5fZGVmKX1hbmQoZSl7cmV0dXJuIFguY3JlYXRlKHRoaXMsZSx0aGlzLl9kZWYpfXRyYW5zZm9ybShlKXtyZXR1cm4gbmV3IGVzKHsuLi5wKHRoaXMuX2RlZiksc2NoZW1hOnRoaXMsdHlwZU5hbWU6ci5ab2RFZmZlY3RzLGVmZmVjdDp7dHlwZTpcInRyYW5zZm9ybVwiLHRyYW5zZm9ybTplfX0pfWRlZmF1bHQoZSl7cmV0dXJuIG5ldyBlZCh7Li4ucCh0aGlzLl9kZWYpLGlubmVyVHlwZTp0aGlzLGRlZmF1bHRWYWx1ZTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6KCk9PmUsdHlwZU5hbWU6ci5ab2REZWZhdWx0fSl9YnJhbmQoKXtyZXR1cm4gbmV3IGVoKHt0eXBlTmFtZTpyLlpvZEJyYW5kZWQsdHlwZTp0aGlzLC4uLnAodGhpcy5fZGVmKX0pfWNhdGNoKGUpe3JldHVybiBuZXcgZWYoey4uLnAodGhpcy5fZGVmKSxpbm5lclR5cGU6dGhpcyxjYXRjaFZhbHVlOlwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTooKT0+ZSx0eXBlTmFtZTpyLlpvZENhdGNofSl9ZGVzY3JpYmUoZSl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHsuLi50aGlzLl9kZWYsZGVzY3JpcHRpb246ZX0pfXBpcGUoZSl7cmV0dXJuIGVtLmNyZWF0ZSh0aGlzLGUpfXJlYWRvbmx5KCl7cmV0dXJuIGVnLmNyZWF0ZSh0aGlzKX1pc09wdGlvbmFsKCl7cmV0dXJuIHRoaXMuc2FmZVBhcnNlKHZvaWQgMCkuc3VjY2Vzc31pc051bGxhYmxlKCl7cmV0dXJuIHRoaXMuc2FmZVBhcnNlKG51bGwpLnN1Y2Nlc3N9fXQuWm9kVHlwZT1oLHQuU2NoZW1hPWgsdC5ab2RTY2hlbWE9aDtsZXQgbT0vXmNbXlxccy1dezgsfSQvaSxnPS9eWzAtOWEtel0rJC8seT0vXlswLTlBLUhKS01OUC1UVi1aXXsyNn0kL2ksdj0vXlswLTlhLWZBLUZdezh9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezEyfSQvaSxiPS9eW2EtejAtOV8tXXsyMX0kL2ksQT0vXltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXStcXC5bQS1aYS16MC05LV9dKiQvLHg9L15bLStdP1AoPyEkKSg/Oig/OlstK10/XFxkK1kpfCg/OlstK10/XFxkK1suLF1cXGQrWSQpKT8oPzooPzpbLStdP1xcZCtNKXwoPzpbLStdP1xcZCtbLixdXFxkK00kKSk/KD86KD86Wy0rXT9cXGQrVyl8KD86Wy0rXT9cXGQrWy4sXVxcZCtXJCkpPyg/Oig/OlstK10/XFxkK0QpfCg/OlstK10/XFxkK1suLF1cXGQrRCQpKT8oPzpUKD89W1xcZCstXSkoPzooPzpbLStdP1xcZCtIKXwoPzpbLStdP1xcZCtbLixdXFxkK0gkKSk/KD86KD86Wy0rXT9cXGQrTSl8KD86Wy0rXT9cXGQrWy4sXVxcZCtNJCkpPyg/OlstK10/XFxkKyg/OlsuLF1cXGQrKT9TKT8pPz8kLyx3PS9eKD8hXFwuKSg/IS4qXFwuXFwuKShbQS1aMC05XycrXFwtXFwuXSopW0EtWjAtOV8rLV1AKFtBLVowLTldW0EtWjAtOVxcLV0qXFwuKStbQS1aXXsyLH0kL2ksQz0vXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKSQvLF89L14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC8oM1swLTJdfFsxMl0/WzAtOV0pJC8saz0vXigoWzAtOWEtZkEtRl17MSw0fTopezcsN31bMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw3fTp8KFswLTlhLWZBLUZdezEsNH06KXsxLDZ9OlswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDV9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDJ9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwzfXwoWzAtOWEtZkEtRl17MSw0fTopezEsM30oOlswLTlhLWZBLUZdezEsNH0pezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDJ9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDV9fFswLTlhLWZBLUZdezEsNH06KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw2fSl8OigoOlswLTlhLWZBLUZdezEsNH0pezEsN318Oil8ZmU4MDooOlswLTlhLWZBLUZdezAsNH0pezAsNH0lWzAtOWEtekEtWl17MSx9fDo6KGZmZmYoOjB7MSw0fSl7MCwxfTopezAsMX0oKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKSkkLyxFPS9eKChbMC05YS1mQS1GXXsxLDR9Oil7Nyw3fVswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDd9OnwoWzAtOWEtZkEtRl17MSw0fTopezEsNn06WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsNX0oOlswLTlhLWZBLUZdezEsNH0pezEsMn18KFswLTlhLWZBLUZdezEsNH06KXsxLDR9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDN9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwzfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsMn0oOlswLTlhLWZBLUZdezEsNH0pezEsNX18WzAtOWEtZkEtRl17MSw0fTooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDZ9KXw6KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw3fXw6KXxmZTgwOig6WzAtOWEtZkEtRl17MCw0fSl7MCw0fSVbMC05YS16QS1aXXsxLH18OjooZmZmZig6MHsxLDR9KXswLDF9Oil7MCwxfSgoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH06KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pKVxcLygxMlswLThdfDFbMDFdWzAtOV18WzEtOV0/WzAtOV0pJC8saj0vXihbMC05YS16QS1aKy9dezR9KSooKFswLTlhLXpBLVorL117Mn09PSl8KFswLTlhLXpBLVorL117M309KSk/JC8sUz0vXihbMC05YS16QS1aLV9dezR9KSooKFswLTlhLXpBLVotX117Mn0oPT0pPyl8KFswLTlhLXpBLVotX117M30oPSk/KSk/JC8sTz1cIigoXFxcXGRcXFxcZFsyNDY4XVswNDhdfFxcXFxkXFxcXGRbMTM1NzldWzI2XXxcXFxcZFxcXFxkMFs0OF18WzAyNDY4XVswNDhdMDB8WzEzNTc5XVsyNl0wMCktMDItMjl8XFxcXGR7NH0tKCgwWzEzNTc4XXwxWzAyXSktKDBbMS05XXxbMTJdXFxcXGR8M1swMV0pfCgwWzQ2OV18MTEpLSgwWzEtOV18WzEyXVxcXFxkfDMwKXwoMDIpLSgwWzEtOV18MVxcXFxkfDJbMC04XSkpKVwiLEI9UmVnRXhwKGBeJHtPfSRgKTtmdW5jdGlvbiBQKGUpe2xldCB0PVwiWzAtNV1cXFxcZFwiO2UucHJlY2lzaW9uP3Q9YCR7dH1cXFxcLlxcXFxkeyR7ZS5wcmVjaXNpb259fWA6bnVsbD09ZS5wcmVjaXNpb24mJih0PWAke3R9KFxcXFwuXFxcXGQrKT9gKTtsZXQgbj1lLnByZWNpc2lvbj9cIitcIjpcIj9cIjtyZXR1cm5gKFswMV1cXFxcZHwyWzAtM10pOlswLTVdXFxcXGQoOiR7dH0pJHtufWB9ZnVuY3Rpb24gSShlKXtsZXQgdD1gJHtPfVQke1AoZSl9YCxuPVtdO3JldHVybiBuLnB1c2goZS5sb2NhbD9cIlo/XCI6XCJaXCIpLGUub2Zmc2V0JiZuLnB1c2goXCIoWystXVxcXFxkezJ9Oj9cXFxcZHsyfSlcIiksdD1gJHt0fSgke24uam9pbihcInxcIil9KWAsUmVnRXhwKGBeJHt0fSRgKX1jbGFzcyBUIGV4dGVuZHMgaHtfcGFyc2UoZSl7dmFyIHQsbixyLG87bGV0IGw7aWYodGhpcy5fZGVmLmNvZXJjZSYmKGUuZGF0YT1TdHJpbmcoZS5kYXRhKSksdGhpcy5fZ2V0VHlwZShlKSE9PXUuWm9kUGFyc2VkVHlwZS5zdHJpbmcpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5zdHJpbmcscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfWxldCBzPW5ldyBjLlBhcnNlU3RhdHVzO2ZvcihsZXQgZCBvZiB0aGlzLl9kZWYuY2hlY2tzKWlmKFwibWluXCI9PT1kLmtpbmQpZS5kYXRhLmxlbmd0aDxkLnZhbHVlJiYobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX3NtYWxsLG1pbmltdW06ZC52YWx1ZSx0eXBlOlwic3RyaW5nXCIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKFwibWF4XCI9PT1kLmtpbmQpZS5kYXRhLmxlbmd0aD5kLnZhbHVlJiYobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtYXhpbXVtOmQudmFsdWUsdHlwZTpcInN0cmluZ1wiLGluY2x1c2l2ZTohMCxleGFjdDohMSxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZihcImxlbmd0aFwiPT09ZC5raW5kKXtsZXQgdD1lLmRhdGEubGVuZ3RoPmQudmFsdWUsbj1lLmRhdGEubGVuZ3RoPGQudmFsdWU7KHR8fG4pJiYobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLHQ/KDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fYmlnLG1heGltdW06ZC52YWx1ZSx0eXBlOlwic3RyaW5nXCIsaW5jbHVzaXZlOiEwLGV4YWN0OiEwLG1lc3NhZ2U6ZC5tZXNzYWdlfSk6biYmKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fc21hbGwsbWluaW11bTpkLnZhbHVlLHR5cGU6XCJzdHJpbmdcIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITAsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpfWVsc2UgaWYoXCJlbWFpbFwiPT09ZC5raW5kKXcudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJlbWFpbFwiLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpO2Vsc2UgaWYoXCJlbW9qaVwiPT09ZC5raW5kKWF8fChhPVJlZ0V4cChcIl4oXFxcXHB7RXh0ZW5kZWRfUGljdG9ncmFwaGljfXxcXFxccHtFbW9qaV9Db21wb25lbnR9KSskXCIsXCJ1XCIpKSxhLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwiZW1vamlcIixjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKFwidXVpZFwiPT09ZC5raW5kKXYudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJ1dWlkXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZihcIm5hbm9pZFwiPT09ZC5raW5kKWIudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJuYW5vaWRcIixjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKFwiY3VpZFwiPT09ZC5raW5kKW0udGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJjdWlkXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZihcImN1aWQyXCI9PT1kLmtpbmQpZy50ZXN0KGUuZGF0YSl8fChsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7dmFsaWRhdGlvbjpcImN1aWQyXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZihcInVsaWRcIj09PWQua2luZCl5LnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwidWxpZFwiLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpO2Vsc2UgaWYoXCJ1cmxcIj09PWQua2luZCl0cnl7bmV3IFVSTChlLmRhdGEpfWNhdGNoe2w9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwidXJsXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKX1lbHNlXCJyZWdleFwiPT09ZC5raW5kPyhkLnJlZ2V4Lmxhc3RJbmRleD0wLGQucmVnZXgudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJyZWdleFwiLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpKTpcInRyaW1cIj09PWQua2luZD9lLmRhdGE9ZS5kYXRhLnRyaW0oKTpcImluY2x1ZGVzXCI9PT1kLmtpbmQ/ZS5kYXRhLmluY2x1ZGVzKGQudmFsdWUsZC5wb3NpdGlvbil8fChsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOntpbmNsdWRlczpkLnZhbHVlLHBvc2l0aW9uOmQucG9zaXRpb259LG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTpcInRvTG93ZXJDYXNlXCI9PT1kLmtpbmQ/ZS5kYXRhPWUuZGF0YS50b0xvd2VyQ2FzZSgpOlwidG9VcHBlckNhc2VcIj09PWQua2luZD9lLmRhdGE9ZS5kYXRhLnRvVXBwZXJDYXNlKCk6XCJzdGFydHNXaXRoXCI9PT1kLmtpbmQ/ZS5kYXRhLnN0YXJ0c1dpdGgoZC52YWx1ZSl8fChsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOntzdGFydHNXaXRoOmQudmFsdWV9LG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTpcImVuZHNXaXRoXCI9PT1kLmtpbmQ/ZS5kYXRhLmVuZHNXaXRoKGQudmFsdWUpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsdmFsaWRhdGlvbjp7ZW5kc1dpdGg6ZC52YWx1ZX0sbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpOlwiZGF0ZXRpbWVcIj09PWQua2luZD9JKGQpLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLHZhbGlkYXRpb246XCJkYXRldGltZVwiLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTpcImRhdGVcIj09PWQua2luZD9CLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLHZhbGlkYXRpb246XCJkYXRlXCIsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpOlwidGltZVwiPT09ZC5raW5kP1JlZ0V4cChgXiR7UChkKX0kYCkudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsdmFsaWRhdGlvbjpcInRpbWVcIixtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk6XCJkdXJhdGlvblwiPT09ZC5raW5kP3gudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJkdXJhdGlvblwiLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpOlwiaXBcIj09PWQua2luZD8odD1lLmRhdGEsISgoXCJ2NFwiPT09KG49ZC52ZXJzaW9uKXx8IW4pJiZDLnRlc3QodCl8fChcInY2XCI9PT1ufHwhbikmJmsudGVzdCh0KSkmJjEmJihsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7dmFsaWRhdGlvbjpcImlwXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSkpOlwiand0XCI9PT1kLmtpbmQ/IWZ1bmN0aW9uKGUsdCl7aWYoIUEudGVzdChlKSlyZXR1cm4hMTt0cnl7bGV0W25dPWUuc3BsaXQoXCIuXCIpO2lmKCFuKXJldHVybiExO2xldCByPW4ucmVwbGFjZSgvLS9nLFwiK1wiKS5yZXBsYWNlKC9fL2csXCIvXCIpLnBhZEVuZChuLmxlbmd0aCsoNC1uLmxlbmd0aCU0KSU0LFwiPVwiKSxvPUpTT04ucGFyc2UoYXRvYihyKSk7aWYoXCJvYmplY3RcIiE9dHlwZW9mIG98fG51bGw9PT1vfHxcInR5cFwiaW4gbyYmbz8udHlwIT09XCJKV1RcInx8IW8uYWxnfHx0JiZvLmFsZyE9PXQpcmV0dXJuITE7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fShlLmRhdGEsZC5hbGcpJiYobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJqd3RcIixjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTpcImNpZHJcIj09PWQua2luZD8ocj1lLmRhdGEsISgoXCJ2NFwiPT09KG89ZC52ZXJzaW9uKXx8IW8pJiZfLnRlc3Qocil8fChcInY2XCI9PT1vfHwhbykmJkUudGVzdChyKSkmJjEmJihsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7dmFsaWRhdGlvbjpcImNpZHJcIixjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKSk6XCJiYXNlNjRcIj09PWQua2luZD9qLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwiYmFzZTY0XCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk6XCJiYXNlNjR1cmxcIj09PWQua2luZD9TLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwiYmFzZTY0dXJsXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk6dS51dGlsLmFzc2VydE5ldmVyKGQpO3JldHVybntzdGF0dXM6cy52YWx1ZSx2YWx1ZTplLmRhdGF9fV9yZWdleChlLHQsbil7cmV0dXJuIHRoaXMucmVmaW5lbWVudCh0PT5lLnRlc3QodCkse3ZhbGlkYXRpb246dCxjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKG4pfSl9X2FkZENoZWNrKGUpe3JldHVybiBuZXcgVCh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyxlXX0pfWVtYWlsKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImVtYWlsXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX11cmwoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwidXJsXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX1lbW9qaShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJlbW9qaVwiLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKGUpfSl9dXVpZChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJ1dWlkXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX1uYW5vaWQoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibmFub2lkXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX1jdWlkKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImN1aWRcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWN1aWQyKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImN1aWQyXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX11bGlkKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcInVsaWRcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWJhc2U2NChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJiYXNlNjRcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWJhc2U2NHVybChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJiYXNlNjR1cmxcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWp3dChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJqd3RcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWlwKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImlwXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX1jaWRyKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImNpZHJcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWRhdGV0aW1lKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP3RoaXMuX2FkZENoZWNrKHtraW5kOlwiZGF0ZXRpbWVcIixwcmVjaXNpb246bnVsbCxvZmZzZXQ6ITEsbG9jYWw6ITEsbWVzc2FnZTplfSk6dGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJkYXRldGltZVwiLHByZWNpc2lvbjp2b2lkIDA9PT1lPy5wcmVjaXNpb24/bnVsbDplPy5wcmVjaXNpb24sb2Zmc2V0OmU/Lm9mZnNldD8/ITEsbG9jYWw6ZT8ubG9jYWw/PyExLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKGU/Lm1lc3NhZ2UpfSl9ZGF0ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJkYXRlXCIsbWVzc2FnZTplfSl9dGltZShlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT90aGlzLl9hZGRDaGVjayh7a2luZDpcInRpbWVcIixwcmVjaXNpb246bnVsbCxtZXNzYWdlOmV9KTp0aGlzLl9hZGRDaGVjayh7a2luZDpcInRpbWVcIixwcmVjaXNpb246dm9pZCAwPT09ZT8ucHJlY2lzaW9uP251bGw6ZT8ucHJlY2lzaW9uLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKGU/Lm1lc3NhZ2UpfSl9ZHVyYXRpb24oZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwiZHVyYXRpb25cIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfXJlZ2V4KGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwicmVnZXhcIixyZWdleDplLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKHQpfSl9aW5jbHVkZXMoZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJpbmNsdWRlc1wiLHZhbHVlOmUscG9zaXRpb246dD8ucG9zaXRpb24sLi4ucy5lcnJvclV0aWwuZXJyVG9PYmoodD8ubWVzc2FnZSl9KX1zdGFydHNXaXRoKGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwic3RhcnRzV2l0aFwiLHZhbHVlOmUsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmoodCl9KX1lbmRzV2l0aChlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImVuZHNXaXRoXCIsdmFsdWU6ZSwuLi5zLmVycm9yVXRpbC5lcnJUb09iaih0KX0pfW1pbihlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1pblwiLHZhbHVlOmUsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmoodCl9KX1tYXgoZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtYXhcIix2YWx1ZTplLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKHQpfSl9bGVuZ3RoKGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibGVuZ3RoXCIsdmFsdWU6ZSwuLi5zLmVycm9yVXRpbC5lcnJUb09iaih0KX0pfW5vbmVtcHR5KGUpe3JldHVybiB0aGlzLm1pbigxLHMuZXJyb3JVdGlsLmVyclRvT2JqKGUpKX10cmltKCl7cmV0dXJuIG5ldyBUKHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOlwidHJpbVwifV19KX10b0xvd2VyQ2FzZSgpe3JldHVybiBuZXcgVCh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx7a2luZDpcInRvTG93ZXJDYXNlXCJ9XX0pfXRvVXBwZXJDYXNlKCl7cmV0dXJuIG5ldyBUKHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOlwidG9VcHBlckNhc2VcIn1dfSl9Z2V0IGlzRGF0ZXRpbWUoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImRhdGV0aW1lXCI9PT1lLmtpbmQpfWdldCBpc0RhdGUoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImRhdGVcIj09PWUua2luZCl9Z2V0IGlzVGltZSgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PlwidGltZVwiPT09ZS5raW5kKX1nZXQgaXNEdXJhdGlvbigpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PlwiZHVyYXRpb25cIj09PWUua2luZCl9Z2V0IGlzRW1haWwoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImVtYWlsXCI9PT1lLmtpbmQpfWdldCBpc1VSTCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PlwidXJsXCI9PT1lLmtpbmQpfWdldCBpc0Vtb2ppKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJlbW9qaVwiPT09ZS5raW5kKX1nZXQgaXNVVUlEKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJ1dWlkXCI9PT1lLmtpbmQpfWdldCBpc05BTk9JRCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PlwibmFub2lkXCI9PT1lLmtpbmQpfWdldCBpc0NVSUQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImN1aWRcIj09PWUua2luZCl9Z2V0IGlzQ1VJRDIoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImN1aWQyXCI9PT1lLmtpbmQpfWdldCBpc1VMSUQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cInVsaWRcIj09PWUua2luZCl9Z2V0IGlzSVAoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImlwXCI9PT1lLmtpbmQpfWdldCBpc0NJRFIoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImNpZHJcIj09PWUua2luZCl9Z2V0IGlzQmFzZTY0KCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJiYXNlNjRcIj09PWUua2luZCl9Z2V0IGlzQmFzZTY0dXJsKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJiYXNlNjR1cmxcIj09PWUua2luZCl9Z2V0IG1pbkxlbmd0aCgpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi5jaGVja3MpXCJtaW5cIj09PXQua2luZCYmKG51bGw9PT1lfHx0LnZhbHVlPmUpJiYoZT10LnZhbHVlKTtyZXR1cm4gZX1nZXQgbWF4TGVuZ3RoKCl7bGV0IGU9bnVsbDtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLmNoZWNrcylcIm1heFwiPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU8ZSkmJihlPXQudmFsdWUpO3JldHVybiBlfX10LlpvZFN0cmluZz1ULFQuY3JlYXRlPWU9Pm5ldyBUKHtjaGVja3M6W10sdHlwZU5hbWU6ci5ab2RTdHJpbmcsY29lcmNlOmU/LmNvZXJjZT8/ITEsLi4ucChlKX0pO2NsYXNzIHogZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm1pbj10aGlzLmd0ZSx0aGlzLm1heD10aGlzLmx0ZSx0aGlzLnN0ZXA9dGhpcy5tdWx0aXBsZU9mfV9wYXJzZShlKXtsZXQgdDtpZih0aGlzLl9kZWYuY29lcmNlJiYoZS5kYXRhPU51bWJlcihlLmRhdGEpKSx0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLm51bWJlcil7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLm51bWJlcixyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9bGV0IG49bmV3IGMuUGFyc2VTdGF0dXM7Zm9yKGxldCByIG9mIHRoaXMuX2RlZi5jaGVja3MpXCJpbnRcIj09PXIua2luZD91LnV0aWwuaXNJbnRlZ2VyKGUuZGF0YSl8fCh0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6XCJpbnRlZ2VyXCIscmVjZWl2ZWQ6XCJmbG9hdFwiLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKTpcIm1pblwiPT09ci5raW5kPyhyLmluY2x1c2l2ZT9lLmRhdGE8ci52YWx1ZTplLmRhdGE8PXIudmFsdWUpJiYodD10aGlzLl9nZXRPclJldHVybkN0eChlLHQpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX3NtYWxsLG1pbmltdW06ci52YWx1ZSx0eXBlOlwibnVtYmVyXCIsaW5jbHVzaXZlOnIuaW5jbHVzaXZlLGV4YWN0OiExLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKTpcIm1heFwiPT09ci5raW5kPyhyLmluY2x1c2l2ZT9lLmRhdGE+ci52YWx1ZTplLmRhdGE+PXIudmFsdWUpJiYodD10aGlzLl9nZXRPclJldHVybkN0eChlLHQpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtYXhpbXVtOnIudmFsdWUsdHlwZTpcIm51bWJlclwiLGluY2x1c2l2ZTpyLmluY2x1c2l2ZSxleGFjdDohMSxtZXNzYWdlOnIubWVzc2FnZX0pLG4uZGlydHkoKSk6XCJtdWx0aXBsZU9mXCI9PT1yLmtpbmQ/MCE9PWZ1bmN0aW9uKGUsdCl7bGV0IG49KGUudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV18fFwiXCIpLmxlbmd0aCxyPSh0LnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdfHxcIlwiKS5sZW5ndGgsbz1uPnI/bjpyO3JldHVybiBOdW1iZXIucGFyc2VJbnQoZS50b0ZpeGVkKG8pLnJlcGxhY2UoXCIuXCIsXCJcIikpJU51bWJlci5wYXJzZUludCh0LnRvRml4ZWQobykucmVwbGFjZShcIi5cIixcIlwiKSkvMTAqKm99KGUuZGF0YSxyLnZhbHVlKSYmKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLm5vdF9tdWx0aXBsZV9vZixtdWx0aXBsZU9mOnIudmFsdWUsbWVzc2FnZTpyLm1lc3NhZ2V9KSxuLmRpcnR5KCkpOlwiZmluaXRlXCI9PT1yLmtpbmQ/TnVtYmVyLmlzRmluaXRlKGUuZGF0YSl8fCh0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5ub3RfZmluaXRlLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKTp1LnV0aWwuYXNzZXJ0TmV2ZXIocik7cmV0dXJue3N0YXR1czpuLnZhbHVlLHZhbHVlOmUuZGF0YX19Z3RlKGUsdCl7cmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIixlLCEwLHMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpKX1ndChlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsZSwhMSxzLmVycm9yVXRpbC50b1N0cmluZyh0KSl9bHRlKGUsdCl7cmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtYXhcIixlLCEwLHMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpKX1sdChlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsZSwhMSxzLmVycm9yVXRpbC50b1N0cmluZyh0KSl9c2V0TGltaXQoZSx0LG4scil7cmV0dXJuIG5ldyB6KHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOmUsdmFsdWU6dCxpbmNsdXNpdmU6bixtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKHIpfV19KX1fYWRkQ2hlY2soZSl7cmV0dXJuIG5ldyB6KHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLGVdfSl9aW50KGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImludFwiLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcoZSl9KX1wb3NpdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtaW5cIix2YWx1ZTowLGluY2x1c2l2ZTohMSxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKGUpfSl9bmVnYXRpdmUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibWF4XCIsdmFsdWU6MCxpbmNsdXNpdmU6ITEsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW5vbnBvc2l0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1heFwiLHZhbHVlOjAsaW5jbHVzaXZlOiEwLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcoZSl9KX1ub25uZWdhdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtaW5cIix2YWx1ZTowLGluY2x1c2l2ZTohMCxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKGUpfSl9bXVsdGlwbGVPZihlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm11bHRpcGxlT2ZcIix2YWx1ZTplLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcodCl9KX1maW5pdGUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwiZmluaXRlXCIsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfXNhZmUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibWluXCIsaW5jbHVzaXZlOiEwLHZhbHVlOk51bWJlci5NSU5fU0FGRV9JTlRFR0VSLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcoZSl9KS5fYWRkQ2hlY2soe2tpbmQ6XCJtYXhcIixpbmNsdXNpdmU6ITAsdmFsdWU6TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfWdldCBtaW5WYWx1ZSgpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi5jaGVja3MpXCJtaW5cIj09PXQua2luZCYmKG51bGw9PT1lfHx0LnZhbHVlPmUpJiYoZT10LnZhbHVlKTtyZXR1cm4gZX1nZXQgbWF4VmFsdWUoKXtsZXQgZT1udWxsO2ZvcihsZXQgdCBvZiB0aGlzLl9kZWYuY2hlY2tzKVwibWF4XCI9PT10LmtpbmQmJihudWxsPT09ZXx8dC52YWx1ZTxlKSYmKGU9dC52YWx1ZSk7cmV0dXJuIGV9Z2V0IGlzSW50KCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJpbnRcIj09PWUua2luZHx8XCJtdWx0aXBsZU9mXCI9PT1lLmtpbmQmJnUudXRpbC5pc0ludGVnZXIoZS52YWx1ZSkpfWdldCBpc0Zpbml0ZSgpe2xldCBlPW51bGwsdD1udWxsO2ZvcihsZXQgbiBvZiB0aGlzLl9kZWYuY2hlY2tzKWlmKFwiZmluaXRlXCI9PT1uLmtpbmR8fFwiaW50XCI9PT1uLmtpbmR8fFwibXVsdGlwbGVPZlwiPT09bi5raW5kKXJldHVybiEwO2Vsc2VcIm1pblwiPT09bi5raW5kPyhudWxsPT09dHx8bi52YWx1ZT50KSYmKHQ9bi52YWx1ZSk6XCJtYXhcIj09PW4ua2luZCYmKG51bGw9PT1lfHxuLnZhbHVlPGUpJiYoZT1uLnZhbHVlKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpJiZOdW1iZXIuaXNGaW5pdGUoZSl9fXQuWm9kTnVtYmVyPXosei5jcmVhdGU9ZT0+bmV3IHooe2NoZWNrczpbXSx0eXBlTmFtZTpyLlpvZE51bWJlcixjb2VyY2U6ZT8uY29lcmNlfHwhMSwuLi5wKGUpfSk7Y2xhc3MgRCBleHRlbmRzIGh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMubWluPXRoaXMuZ3RlLHRoaXMubWF4PXRoaXMubHRlfV9wYXJzZShlKXtsZXQgdDtpZih0aGlzLl9kZWYuY29lcmNlKXRyeXtlLmRhdGE9QmlnSW50KGUuZGF0YSl9Y2F0Y2h7cmV0dXJuIHRoaXMuX2dldEludmFsaWRJbnB1dChlKX1pZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLmJpZ2ludClyZXR1cm4gdGhpcy5fZ2V0SW52YWxpZElucHV0KGUpO2xldCBuPW5ldyBjLlBhcnNlU3RhdHVzO2ZvcihsZXQgciBvZiB0aGlzLl9kZWYuY2hlY2tzKVwibWluXCI9PT1yLmtpbmQ/KHIuaW5jbHVzaXZlP2UuZGF0YTxyLnZhbHVlOmUuZGF0YTw9ci52YWx1ZSkmJih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fc21hbGwsdHlwZTpcImJpZ2ludFwiLG1pbmltdW06ci52YWx1ZSxpbmNsdXNpdmU6ci5pbmNsdXNpdmUsbWVzc2FnZTpyLm1lc3NhZ2V9KSxuLmRpcnR5KCkpOlwibWF4XCI9PT1yLmtpbmQ/KHIuaW5jbHVzaXZlP2UuZGF0YT5yLnZhbHVlOmUuZGF0YT49ci52YWx1ZSkmJih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fYmlnLHR5cGU6XCJiaWdpbnRcIixtYXhpbXVtOnIudmFsdWUsaW5jbHVzaXZlOnIuaW5jbHVzaXZlLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKTpcIm11bHRpcGxlT2ZcIj09PXIua2luZD9lLmRhdGElci52YWx1ZSE9PUJpZ0ludCgwKSYmKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLm5vdF9tdWx0aXBsZV9vZixtdWx0aXBsZU9mOnIudmFsdWUsbWVzc2FnZTpyLm1lc3NhZ2V9KSxuLmRpcnR5KCkpOnUudXRpbC5hc3NlcnROZXZlcihyKTtyZXR1cm57c3RhdHVzOm4udmFsdWUsdmFsdWU6ZS5kYXRhfX1fZ2V0SW52YWxpZElucHV0KGUpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5iaWdpbnQscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfWd0ZShlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsZSwhMCxzLmVycm9yVXRpbC50b1N0cmluZyh0KSl9Z3QoZSx0KXtyZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLGUsITEscy5lcnJvclV0aWwudG9TdHJpbmcodCkpfWx0ZShlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsZSwhMCxzLmVycm9yVXRpbC50b1N0cmluZyh0KSl9bHQoZSx0KXtyZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1heFwiLGUsITEscy5lcnJvclV0aWwudG9TdHJpbmcodCkpfXNldExpbWl0KGUsdCxuLHIpe3JldHVybiBuZXcgRCh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx7a2luZDplLHZhbHVlOnQsaW5jbHVzaXZlOm4sbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhyKX1dfSl9X2FkZENoZWNrKGUpe3JldHVybiBuZXcgRCh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyxlXX0pfXBvc2l0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1pblwiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITEsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW5lZ2F0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1heFwiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITEsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW5vbnBvc2l0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1heFwiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITAsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW5vbm5lZ2F0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1pblwiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITAsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW11bHRpcGxlT2YoZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtdWx0aXBsZU9mXCIsdmFsdWU6ZSxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpfSl9Z2V0IG1pblZhbHVlKCl7bGV0IGU9bnVsbDtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLmNoZWNrcylcIm1pblwiPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU+ZSkmJihlPXQudmFsdWUpO3JldHVybiBlfWdldCBtYXhWYWx1ZSgpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi5jaGVja3MpXCJtYXhcIj09PXQua2luZCYmKG51bGw9PT1lfHx0LnZhbHVlPGUpJiYoZT10LnZhbHVlKTtyZXR1cm4gZX19dC5ab2RCaWdJbnQ9RCxELmNyZWF0ZT1lPT5uZXcgRCh7Y2hlY2tzOltdLHR5cGVOYW1lOnIuWm9kQmlnSW50LGNvZXJjZTplPy5jb2VyY2U/PyExLC4uLnAoZSl9KTtjbGFzcyBMIGV4dGVuZHMgaHtfcGFyc2UoZSl7aWYodGhpcy5fZGVmLmNvZXJjZSYmKGUuZGF0YT0hIWUuZGF0YSksdGhpcy5fZ2V0VHlwZShlKSE9PXUuWm9kUGFyc2VkVHlwZS5ib29sZWFuKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUuYm9vbGVhbixyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX19dC5ab2RCb29sZWFuPUwsTC5jcmVhdGU9ZT0+bmV3IEwoe3R5cGVOYW1lOnIuWm9kQm9vbGVhbixjb2VyY2U6ZT8uY29lcmNlfHwhMSwuLi5wKGUpfSk7Y2xhc3MgTiBleHRlbmRzIGh7X3BhcnNlKGUpe2xldCB0O2lmKHRoaXMuX2RlZi5jb2VyY2UmJihlLmRhdGE9bmV3IERhdGUoZS5kYXRhKSksdGhpcy5fZ2V0VHlwZShlKSE9PXUuWm9kUGFyc2VkVHlwZS5kYXRlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUuZGF0ZSxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9aWYoTnVtYmVyLmlzTmFOKGUuZGF0YS5nZXRUaW1lKCkpKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfZGF0ZX0pLGMuSU5WQUxJRH1sZXQgbj1uZXcgYy5QYXJzZVN0YXR1cztmb3IobGV0IHIgb2YgdGhpcy5fZGVmLmNoZWNrcylcIm1pblwiPT09ci5raW5kP2UuZGF0YS5nZXRUaW1lKCk8ci52YWx1ZSYmKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxtZXNzYWdlOnIubWVzc2FnZSxpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWluaW11bTpyLnZhbHVlLHR5cGU6XCJkYXRlXCJ9KSxuLmRpcnR5KCkpOlwibWF4XCI9PT1yLmtpbmQ/ZS5kYXRhLmdldFRpbWUoKT5yLnZhbHVlJiYodD10aGlzLl9nZXRPclJldHVybkN0eChlLHQpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtZXNzYWdlOnIubWVzc2FnZSxpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWF4aW11bTpyLnZhbHVlLHR5cGU6XCJkYXRlXCJ9KSxuLmRpcnR5KCkpOnUudXRpbC5hc3NlcnROZXZlcihyKTtyZXR1cm57c3RhdHVzOm4udmFsdWUsdmFsdWU6bmV3IERhdGUoZS5kYXRhLmdldFRpbWUoKSl9fV9hZGRDaGVjayhlKXtyZXR1cm4gbmV3IE4oey4uLnRoaXMuX2RlZixjaGVja3M6Wy4uLnRoaXMuX2RlZi5jaGVja3MsZV19KX1taW4oZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtaW5cIix2YWx1ZTplLmdldFRpbWUoKSxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpfSl9bWF4KGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibWF4XCIsdmFsdWU6ZS5nZXRUaW1lKCksbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyh0KX0pfWdldCBtaW5EYXRlKCl7bGV0IGU9bnVsbDtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLmNoZWNrcylcIm1pblwiPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU+ZSkmJihlPXQudmFsdWUpO3JldHVybiBudWxsIT1lP25ldyBEYXRlKGUpOm51bGx9Z2V0IG1heERhdGUoKXtsZXQgZT1udWxsO2ZvcihsZXQgdCBvZiB0aGlzLl9kZWYuY2hlY2tzKVwibWF4XCI9PT10LmtpbmQmJihudWxsPT09ZXx8dC52YWx1ZTxlKSYmKGU9dC52YWx1ZSk7cmV0dXJuIG51bGwhPWU/bmV3IERhdGUoZSk6bnVsbH19dC5ab2REYXRlPU4sTi5jcmVhdGU9ZT0+bmV3IE4oe2NoZWNrczpbXSxjb2VyY2U6ZT8uY29lcmNlfHwhMSx0eXBlTmFtZTpyLlpvZERhdGUsLi4ucChlKX0pO2NsYXNzIFIgZXh0ZW5kcyBoe19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLnN5bWJvbCl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLnN5bWJvbCxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX19dC5ab2RTeW1ib2w9UixSLmNyZWF0ZT1lPT5uZXcgUih7dHlwZU5hbWU6ci5ab2RTeW1ib2wsLi4ucChlKX0pO2NsYXNzIE0gZXh0ZW5kcyBoe19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX19dC5ab2RVbmRlZmluZWQ9TSxNLmNyZWF0ZT1lPT5uZXcgTSh7dHlwZU5hbWU6ci5ab2RVbmRlZmluZWQsLi4ucChlKX0pO2NsYXNzIFogZXh0ZW5kcyBoe19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLm51bGwpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5udWxsLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLGMuSU5WQUxJRH1yZXR1cm4oMCxjLk9LKShlLmRhdGEpfX10LlpvZE51bGw9WixaLmNyZWF0ZT1lPT5uZXcgWih7dHlwZU5hbWU6ci5ab2ROdWxsLC4uLnAoZSl9KTtjbGFzcyBVIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fYW55PSEwfV9wYXJzZShlKXtyZXR1cm4oMCxjLk9LKShlLmRhdGEpfX10LlpvZEFueT1VLFUuY3JlYXRlPWU9Pm5ldyBVKHt0eXBlTmFtZTpyLlpvZEFueSwuLi5wKGUpfSk7Y2xhc3MgRiBleHRlbmRzIGh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3Vua25vd249ITB9X3BhcnNlKGUpe3JldHVybigwLGMuT0spKGUuZGF0YSl9fXQuWm9kVW5rbm93bj1GLEYuY3JlYXRlPWU9Pm5ldyBGKHt0eXBlTmFtZTpyLlpvZFVua25vd24sLi4ucChlKX0pO2NsYXNzIHEgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUubmV2ZXIscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfX10LlpvZE5ldmVyPXEscS5jcmVhdGU9ZT0+bmV3IHEoe3R5cGVOYW1lOnIuWm9kTmV2ZXIsLi4ucChlKX0pO2NsYXNzIEggZXh0ZW5kcyBoe19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLnZvaWQscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfXJldHVybigwLGMuT0spKGUuZGF0YSl9fXQuWm9kVm9pZD1ILEguY3JlYXRlPWU9Pm5ldyBIKHt0eXBlTmFtZTpyLlpvZFZvaWQsLi4ucChlKX0pO2NsYXNzIFYgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXR7Y3R4OnQsc3RhdHVzOm59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKSxyPXRoaXMuX2RlZjtpZih0LnBhcnNlZFR5cGUhPT11LlpvZFBhcnNlZFR5cGUuYXJyYXkpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLmFycmF5LHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtpZihudWxsIT09ci5leGFjdExlbmd0aCl7bGV0IGU9dC5kYXRhLmxlbmd0aD5yLmV4YWN0TGVuZ3RoLnZhbHVlLG89dC5kYXRhLmxlbmd0aDxyLmV4YWN0TGVuZ3RoLnZhbHVlOyhlfHxvKSYmKCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6ZT9pLlpvZElzc3VlQ29kZS50b29fYmlnOmkuWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxtaW5pbXVtOm8/ci5leGFjdExlbmd0aC52YWx1ZTp2b2lkIDAsbWF4aW11bTplP3IuZXhhY3RMZW5ndGgudmFsdWU6dm9pZCAwLHR5cGU6XCJhcnJheVwiLGluY2x1c2l2ZTohMCxleGFjdDohMCxtZXNzYWdlOnIuZXhhY3RMZW5ndGgubWVzc2FnZX0pLG4uZGlydHkoKSl9aWYobnVsbCE9PXIubWluTGVuZ3RoJiZ0LmRhdGEubGVuZ3RoPHIubWluTGVuZ3RoLnZhbHVlJiYoKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fc21hbGwsbWluaW11bTpyLm1pbkxlbmd0aC52YWx1ZSx0eXBlOlwiYXJyYXlcIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWVzc2FnZTpyLm1pbkxlbmd0aC5tZXNzYWdlfSksbi5kaXJ0eSgpKSxudWxsIT09ci5tYXhMZW5ndGgmJnQuZGF0YS5sZW5ndGg+ci5tYXhMZW5ndGgudmFsdWUmJigoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLnRvb19iaWcsbWF4aW11bTpyLm1heExlbmd0aC52YWx1ZSx0eXBlOlwiYXJyYXlcIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWVzc2FnZTpyLm1heExlbmd0aC5tZXNzYWdlfSksbi5kaXJ0eSgpKSx0LmNvbW1vbi5hc3luYylyZXR1cm4gUHJvbWlzZS5hbGwoWy4uLnQuZGF0YV0ubWFwKChlLG4pPT5yLnR5cGUuX3BhcnNlQXN5bmMobmV3IGQodCxlLHQucGF0aCxuKSkpKS50aGVuKGU9PmMuUGFyc2VTdGF0dXMubWVyZ2VBcnJheShuLGUpKTtsZXQgbz1bLi4udC5kYXRhXS5tYXAoKGUsbik9PnIudHlwZS5fcGFyc2VTeW5jKG5ldyBkKHQsZSx0LnBhdGgsbikpKTtyZXR1cm4gYy5QYXJzZVN0YXR1cy5tZXJnZUFycmF5KG4sbyl9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZGVmLnR5cGV9bWluKGUsdCl7cmV0dXJuIG5ldyBWKHsuLi50aGlzLl9kZWYsbWluTGVuZ3RoOnt2YWx1ZTplLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcodCl9fSl9bWF4KGUsdCl7cmV0dXJuIG5ldyBWKHsuLi50aGlzLl9kZWYsbWF4TGVuZ3RoOnt2YWx1ZTplLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcodCl9fSl9bGVuZ3RoKGUsdCl7cmV0dXJuIG5ldyBWKHsuLi50aGlzLl9kZWYsZXhhY3RMZW5ndGg6e3ZhbHVlOmUsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyh0KX19KX1ub25lbXB0eShlKXtyZXR1cm4gdGhpcy5taW4oMSxlKX19dC5ab2RBcnJheT1WLFYuY3JlYXRlPShlLHQpPT5uZXcgVih7dHlwZTplLG1pbkxlbmd0aDpudWxsLG1heExlbmd0aDpudWxsLGV4YWN0TGVuZ3RoOm51bGwsdHlwZU5hbWU6ci5ab2RBcnJheSwuLi5wKHQpfSk7Y2xhc3MgJCBleHRlbmRzIGh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2NhY2hlZD1udWxsLHRoaXMubm9uc3RyaWN0PXRoaXMucGFzc3Rocm91Z2gsdGhpcy5hdWdtZW50PXRoaXMuZXh0ZW5kfV9nZXRDYWNoZWQoKXtpZihudWxsIT09dGhpcy5fY2FjaGVkKXJldHVybiB0aGlzLl9jYWNoZWQ7bGV0IGU9dGhpcy5fZGVmLnNoYXBlKCksdD11LnV0aWwub2JqZWN0S2V5cyhlKTtyZXR1cm4gdGhpcy5fY2FjaGVkPXtzaGFwZTplLGtleXM6dH0sdGhpcy5fY2FjaGVkfV9wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLm9iamVjdCl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLm9iamVjdCxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9bGV0e3N0YXR1czp0LGN0eDpufT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSkse3NoYXBlOnIsa2V5czpvfT10aGlzLl9nZXRDYWNoZWQoKSxhPVtdO2lmKCEodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgcSYmXCJzdHJpcFwiPT09dGhpcy5fZGVmLnVua25vd25LZXlzKSlmb3IobGV0IGUgaW4gbi5kYXRhKW8uaW5jbHVkZXMoZSl8fGEucHVzaChlKTtsZXQgbD1bXTtmb3IobGV0IGUgb2Ygbyl7bGV0IHQ9cltlXSxvPW4uZGF0YVtlXTtsLnB1c2goe2tleTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTplfSx2YWx1ZTp0Ll9wYXJzZShuZXcgZChuLG8sbi5wYXRoLGUpKSxhbHdheXNTZXQ6ZSBpbiBuLmRhdGF9KX1pZih0aGlzLl9kZWYuY2F0Y2hhbGwgaW5zdGFuY2VvZiBxKXtsZXQgZT10aGlzLl9kZWYudW5rbm93bktleXM7aWYoXCJwYXNzdGhyb3VnaFwiPT09ZSlmb3IobGV0IGUgb2YgYSlsLnB1c2goe2tleTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTplfSx2YWx1ZTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTpuLmRhdGFbZV19fSk7ZWxzZSBpZihcInN0cmljdFwiPT09ZSlhLmxlbmd0aD4wJiYoKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7Y29kZTppLlpvZElzc3VlQ29kZS51bnJlY29nbml6ZWRfa2V5cyxrZXlzOmF9KSx0LmRpcnR5KCkpO2Vsc2UgaWYoXCJzdHJpcFwiPT09ZSk7ZWxzZSB0aHJvdyBFcnJvcihcIkludGVybmFsIFpvZE9iamVjdCBlcnJvcjogaW52YWxpZCB1bmtub3duS2V5cyB2YWx1ZS5cIil9ZWxzZXtsZXQgZT10aGlzLl9kZWYuY2F0Y2hhbGw7Zm9yKGxldCB0IG9mIGEpe2xldCByPW4uZGF0YVt0XTtsLnB1c2goe2tleTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTp0fSx2YWx1ZTplLl9wYXJzZShuZXcgZChuLHIsbi5wYXRoLHQpKSxhbHdheXNTZXQ6dCBpbiBuLmRhdGF9KX19cmV0dXJuIG4uY29tbW9uLmFzeW5jP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMoKT0+e2xldCBlPVtdO2ZvcihsZXQgdCBvZiBsKXtsZXQgbj1hd2FpdCB0LmtleSxyPWF3YWl0IHQudmFsdWU7ZS5wdXNoKHtrZXk6bix2YWx1ZTpyLGFsd2F5c1NldDp0LmFsd2F5c1NldH0pfXJldHVybiBlfSkudGhlbihlPT5jLlBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyh0LGUpKTpjLlBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyh0LGwpfWdldCBzaGFwZSgpe3JldHVybiB0aGlzLl9kZWYuc2hhcGUoKX1zdHJpY3QoZSl7cmV0dXJuIHMuZXJyb3JVdGlsLmVyclRvT2JqLG5ldyAkKHsuLi50aGlzLl9kZWYsdW5rbm93bktleXM6XCJzdHJpY3RcIiwuLi52b2lkIDAhPT1lP3tlcnJvck1hcDoodCxuKT0+e2xldCByPXRoaXMuX2RlZi5lcnJvck1hcD8uKHQsbikubWVzc2FnZT8/bi5kZWZhdWx0RXJyb3I7cmV0dXJuXCJ1bnJlY29nbml6ZWRfa2V5c1wiPT09dC5jb2RlP3ttZXNzYWdlOnMuZXJyb3JVdGlsLmVyclRvT2JqKGUpLm1lc3NhZ2U/P3J9OnttZXNzYWdlOnJ9fX06e319KX1zdHJpcCgpe3JldHVybiBuZXcgJCh7Li4udGhpcy5fZGVmLHVua25vd25LZXlzOlwic3RyaXBcIn0pfXBhc3N0aHJvdWdoKCl7cmV0dXJuIG5ldyAkKHsuLi50aGlzLl9kZWYsdW5rbm93bktleXM6XCJwYXNzdGhyb3VnaFwifSl9ZXh0ZW5kKGUpe3JldHVybiBuZXcgJCh7Li4udGhpcy5fZGVmLHNoYXBlOigpPT4oey4uLnRoaXMuX2RlZi5zaGFwZSgpLC4uLmV9KX0pfW1lcmdlKGUpe3JldHVybiBuZXcgJCh7dW5rbm93bktleXM6ZS5fZGVmLnVua25vd25LZXlzLGNhdGNoYWxsOmUuX2RlZi5jYXRjaGFsbCxzaGFwZTooKT0+KHsuLi50aGlzLl9kZWYuc2hhcGUoKSwuLi5lLl9kZWYuc2hhcGUoKX0pLHR5cGVOYW1lOnIuWm9kT2JqZWN0fSl9c2V0S2V5KGUsdCl7cmV0dXJuIHRoaXMuYXVnbWVudCh7W2VdOnR9KX1jYXRjaGFsbChlKXtyZXR1cm4gbmV3ICQoey4uLnRoaXMuX2RlZixjYXRjaGFsbDplfSl9cGljayhlKXtsZXQgdD17fTtmb3IobGV0IG4gb2YgdS51dGlsLm9iamVjdEtleXMoZSkpZVtuXSYmdGhpcy5zaGFwZVtuXSYmKHRbbl09dGhpcy5zaGFwZVtuXSk7cmV0dXJuIG5ldyAkKHsuLi50aGlzLl9kZWYsc2hhcGU6KCk9PnR9KX1vbWl0KGUpe2xldCB0PXt9O2ZvcihsZXQgbiBvZiB1LnV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSllW25dfHwodFtuXT10aGlzLnNoYXBlW25dKTtyZXR1cm4gbmV3ICQoey4uLnRoaXMuX2RlZixzaGFwZTooKT0+dH0pfWRlZXBQYXJ0aWFsKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCl7aWYodCBpbnN0YW5jZW9mICQpe2xldCBuPXt9O2ZvcihsZXQgciBpbiB0LnNoYXBlKXtsZXQgbz10LnNoYXBlW3JdO25bcl09ZWMuY3JlYXRlKGUobykpfXJldHVybiBuZXcgJCh7Li4udC5fZGVmLHNoYXBlOigpPT5ufSl9aWYodCBpbnN0YW5jZW9mIFYpcmV0dXJuIG5ldyBWKHsuLi50Ll9kZWYsdHlwZTplKHQuZWxlbWVudCl9KTtpZih0IGluc3RhbmNlb2YgZWMpcmV0dXJuIGVjLmNyZWF0ZShlKHQudW53cmFwKCkpKTtpZih0IGluc3RhbmNlb2YgZXUpcmV0dXJuIGV1LmNyZWF0ZShlKHQudW53cmFwKCkpKTtpZih0IGluc3RhbmNlb2YgRylyZXR1cm4gRy5jcmVhdGUodC5pdGVtcy5tYXAodD0+ZSh0KSkpO2Vsc2UgcmV0dXJuIHR9KHRoaXMpfXBhcnRpYWwoZSl7bGV0IHQ9e307Zm9yKGxldCBuIG9mIHUudXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpKXtsZXQgcj10aGlzLnNoYXBlW25dO2UmJiFlW25dP3Rbbl09cjp0W25dPXIub3B0aW9uYWwoKX1yZXR1cm4gbmV3ICQoey4uLnRoaXMuX2RlZixzaGFwZTooKT0+dH0pfXJlcXVpcmVkKGUpe2xldCB0PXt9O2ZvcihsZXQgbiBvZiB1LnV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSlpZihlJiYhZVtuXSl0W25dPXRoaXMuc2hhcGVbbl07ZWxzZXtsZXQgZT10aGlzLnNoYXBlW25dO2Zvcig7ZSBpbnN0YW5jZW9mIGVjOyllPWUuX2RlZi5pbm5lclR5cGU7dFtuXT1lfXJldHVybiBuZXcgJCh7Li4udGhpcy5fZGVmLHNoYXBlOigpPT50fSl9a2V5b2YoKXtyZXR1cm4gZW8odS51dGlsLm9iamVjdEtleXModGhpcy5zaGFwZSkpfX10LlpvZE9iamVjdD0kLCQuY3JlYXRlPShlLHQpPT5uZXcgJCh7c2hhcGU6KCk9PmUsdW5rbm93bktleXM6XCJzdHJpcFwiLGNhdGNoYWxsOnEuY3JlYXRlKCksdHlwZU5hbWU6ci5ab2RPYmplY3QsLi4ucCh0KX0pLCQuc3RyaWN0Q3JlYXRlPShlLHQpPT5uZXcgJCh7c2hhcGU6KCk9PmUsdW5rbm93bktleXM6XCJzdHJpY3RcIixjYXRjaGFsbDpxLmNyZWF0ZSgpLHR5cGVOYW1lOnIuWm9kT2JqZWN0LC4uLnAodCl9KSwkLmxhenljcmVhdGU9KGUsdCk9Pm5ldyAkKHtzaGFwZTplLHVua25vd25LZXlzOlwic3RyaXBcIixjYXRjaGFsbDpxLmNyZWF0ZSgpLHR5cGVOYW1lOnIuWm9kT2JqZWN0LC4uLnAodCl9KTtjbGFzcyBXIGV4dGVuZHMgaHtfcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSksbj10aGlzLl9kZWYub3B0aW9ucztpZih0LmNvbW1vbi5hc3luYylyZXR1cm4gUHJvbWlzZS5hbGwobi5tYXAoYXN5bmMgZT0+e2xldCBuPXsuLi50LGNvbW1vbjp7Li4udC5jb21tb24saXNzdWVzOltdfSxwYXJlbnQ6bnVsbH07cmV0dXJue3Jlc3VsdDphd2FpdCBlLl9wYXJzZUFzeW5jKHtkYXRhOnQuZGF0YSxwYXRoOnQucGF0aCxwYXJlbnQ6bn0pLGN0eDpufX0pKS50aGVuKGZ1bmN0aW9uKGUpe2ZvcihsZXQgdCBvZiBlKWlmKFwidmFsaWRcIj09PXQucmVzdWx0LnN0YXR1cylyZXR1cm4gdC5yZXN1bHQ7Zm9yKGxldCBuIG9mIGUpaWYoXCJkaXJ0eVwiPT09bi5yZXN1bHQuc3RhdHVzKXJldHVybiB0LmNvbW1vbi5pc3N1ZXMucHVzaCguLi5uLmN0eC5jb21tb24uaXNzdWVzKSxuLnJlc3VsdDtsZXQgbj1lLm1hcChlPT5uZXcgaS5ab2RFcnJvcihlLmN0eC5jb21tb24uaXNzdWVzKSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uLHVuaW9uRXJyb3JzOm59KSxjLklOVkFMSUR9KTt7bGV0IGUscj1bXTtmb3IobGV0IG8gb2Ygbil7bGV0IG49ey4uLnQsY29tbW9uOnsuLi50LmNvbW1vbixpc3N1ZXM6W119LHBhcmVudDpudWxsfSxhPW8uX3BhcnNlU3luYyh7ZGF0YTp0LmRhdGEscGF0aDp0LnBhdGgscGFyZW50Om59KTtpZihcInZhbGlkXCI9PT1hLnN0YXR1cylyZXR1cm4gYTtcImRpcnR5XCIhPT1hLnN0YXR1c3x8ZXx8KGU9e3Jlc3VsdDphLGN0eDpufSksbi5jb21tb24uaXNzdWVzLmxlbmd0aCYmci5wdXNoKG4uY29tbW9uLmlzc3Vlcyl9aWYoZSlyZXR1cm4gdC5jb21tb24uaXNzdWVzLnB1c2goLi4uZS5jdHguY29tbW9uLmlzc3VlcyksZS5yZXN1bHQ7bGV0IG89ci5tYXAoZT0+bmV3IGkuWm9kRXJyb3IoZSkpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbix1bmlvbkVycm9yczpvfSksYy5JTlZBTElEfX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLl9kZWYub3B0aW9uc319dC5ab2RVbmlvbj1XLFcuY3JlYXRlPShlLHQpPT5uZXcgVyh7b3B0aW9uczplLHR5cGVOYW1lOnIuWm9kVW5pb24sLi4ucCh0KX0pO2xldCBZPWU9PntpZihlIGluc3RhbmNlb2YgZW4pcmV0dXJuIFkoZS5zY2hlbWEpO2lmKGUgaW5zdGFuY2VvZiBlcylyZXR1cm4gWShlLmlubmVyVHlwZSgpKTtpZihlIGluc3RhbmNlb2YgZXIpcmV0dXJuW2UudmFsdWVdO2lmKGUgaW5zdGFuY2VvZiBlYSlyZXR1cm4gZS5vcHRpb25zO2lmKGUgaW5zdGFuY2VvZiBlaSlyZXR1cm4gdS51dGlsLm9iamVjdFZhbHVlcyhlLmVudW0pO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIGVkKXJldHVybiBZKGUuX2RlZi5pbm5lclR5cGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIE0pcmV0dXJuW3ZvaWQgMF07ZWxzZSBpZihlIGluc3RhbmNlb2YgWilyZXR1cm5bbnVsbF07ZWxzZSBpZihlIGluc3RhbmNlb2YgZWMpcmV0dXJuW3ZvaWQgMCwuLi5ZKGUudW53cmFwKCkpXTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBldSlyZXR1cm5bbnVsbCwuLi5ZKGUudW53cmFwKCkpXTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBlaClyZXR1cm4gWShlLnVud3JhcCgpKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBlZylyZXR1cm4gWShlLnVud3JhcCgpKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBlZilyZXR1cm4gWShlLl9kZWYuaW5uZXJUeXBlKTtlbHNlIHJldHVybltdfTtjbGFzcyBLIGV4dGVuZHMgaHtfcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYodC5wYXJzZWRUeXBlIT09dS5ab2RQYXJzZWRUeXBlLm9iamVjdClyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUub2JqZWN0LHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtsZXQgbj10aGlzLmRpc2NyaW1pbmF0b3Iscj10LmRhdGFbbl0sbz10aGlzLm9wdGlvbnNNYXAuZ2V0KHIpO3JldHVybiBvP3QuY29tbW9uLmFzeW5jP28uX3BhcnNlQXN5bmMoe2RhdGE6dC5kYXRhLHBhdGg6dC5wYXRoLHBhcmVudDp0fSk6by5fcGFyc2VTeW5jKHtkYXRhOnQuZGF0YSxwYXRoOnQucGF0aCxwYXJlbnQ6dH0pOigoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb25fZGlzY3JpbWluYXRvcixvcHRpb25zOkFycmF5LmZyb20odGhpcy5vcHRpb25zTWFwLmtleXMoKSkscGF0aDpbbl19KSxjLklOVkFMSUQpfWdldCBkaXNjcmltaW5hdG9yKCl7cmV0dXJuIHRoaXMuX2RlZi5kaXNjcmltaW5hdG9yfWdldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zfWdldCBvcHRpb25zTWFwKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zTWFwfXN0YXRpYyBjcmVhdGUoZSx0LG4pe2xldCBvPW5ldyBNYXA7Zm9yKGxldCBuIG9mIHQpe2xldCB0PVkobi5zaGFwZVtlXSk7aWYoIXQubGVuZ3RoKXRocm93IEVycm9yKGBBIGRpc2NyaW1pbmF0b3IgdmFsdWUgZm9yIGtleSBcXGAke2V9XFxgIGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQgZnJvbSBhbGwgc2NoZW1hIG9wdGlvbnNgKTtmb3IobGV0IHIgb2YgdCl7aWYoby5oYXMocikpdGhyb3cgRXJyb3IoYERpc2NyaW1pbmF0b3IgcHJvcGVydHkgJHtTdHJpbmcoZSl9IGhhcyBkdXBsaWNhdGUgdmFsdWUgJHtTdHJpbmcocil9YCk7by5zZXQocixuKX19cmV0dXJuIG5ldyBLKHt0eXBlTmFtZTpyLlpvZERpc2NyaW1pbmF0ZWRVbmlvbixkaXNjcmltaW5hdG9yOmUsb3B0aW9uczp0LG9wdGlvbnNNYXA6bywuLi5wKG4pfSl9fXQuWm9kRGlzY3JpbWluYXRlZFVuaW9uPUs7Y2xhc3MgWCBleHRlbmRzIGh7X3BhcnNlKGUpe2xldHtzdGF0dXM6dCxjdHg6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpLHI9KGUscik9PntpZigoMCxjLmlzQWJvcnRlZCkoZSl8fCgwLGMuaXNBYm9ydGVkKShyKSlyZXR1cm4gYy5JTlZBTElEO2xldCBvPWZ1bmN0aW9uIGUodCxuKXtsZXQgcj0oMCx1LmdldFBhcnNlZFR5cGUpKHQpLG89KDAsdS5nZXRQYXJzZWRUeXBlKShuKTtpZih0PT09bilyZXR1cm57dmFsaWQ6ITAsZGF0YTp0fTtpZihyPT09dS5ab2RQYXJzZWRUeXBlLm9iamVjdCYmbz09PXUuWm9kUGFyc2VkVHlwZS5vYmplY3Qpe2xldCByPXUudXRpbC5vYmplY3RLZXlzKG4pLG89dS51dGlsLm9iamVjdEtleXModCkuZmlsdGVyKGU9Pi0xIT09ci5pbmRleE9mKGUpKSxhPXsuLi50LC4uLm59O2ZvcihsZXQgciBvZiBvKXtsZXQgbz1lKHRbcl0sbltyXSk7aWYoIW8udmFsaWQpcmV0dXJue3ZhbGlkOiExfTthW3JdPW8uZGF0YX1yZXR1cm57dmFsaWQ6ITAsZGF0YTphfX1pZihyPT09dS5ab2RQYXJzZWRUeXBlLmFycmF5JiZvPT09dS5ab2RQYXJzZWRUeXBlLmFycmF5KXtpZih0Lmxlbmd0aCE9PW4ubGVuZ3RoKXJldHVybnt2YWxpZDohMX07bGV0IHI9W107Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2xldCBhPWUodFtvXSxuW29dKTtpZighYS52YWxpZClyZXR1cm57dmFsaWQ6ITF9O3IucHVzaChhLmRhdGEpfXJldHVybnt2YWxpZDohMCxkYXRhOnJ9fWlmKHI9PT11LlpvZFBhcnNlZFR5cGUuZGF0ZSYmbz09PXUuWm9kUGFyc2VkVHlwZS5kYXRlJiYrdD09K24pcmV0dXJue3ZhbGlkOiEwLGRhdGE6dH07cmV0dXJue3ZhbGlkOiExfX0oZS52YWx1ZSxyLnZhbHVlKTtyZXR1cm4gby52YWxpZD8oKCgwLGMuaXNEaXJ0eSkoZSl8fCgwLGMuaXNEaXJ0eSkocikpJiZ0LmRpcnR5KCkse3N0YXR1czp0LnZhbHVlLHZhbHVlOm8uZGF0YX0pOigoMCxjLmFkZElzc3VlVG9Db250ZXh0KShuLHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzfSksYy5JTlZBTElEKX07cmV0dXJuIG4uY29tbW9uLmFzeW5jP1Byb21pc2UuYWxsKFt0aGlzLl9kZWYubGVmdC5fcGFyc2VBc3luYyh7ZGF0YTpuLmRhdGEscGF0aDpuLnBhdGgscGFyZW50Om59KSx0aGlzLl9kZWYucmlnaHQuX3BhcnNlQXN5bmMoe2RhdGE6bi5kYXRhLHBhdGg6bi5wYXRoLHBhcmVudDpufSldKS50aGVuKChbZSx0XSk9PnIoZSx0KSk6cih0aGlzLl9kZWYubGVmdC5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pLHRoaXMuX2RlZi5yaWdodC5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pKX19dC5ab2RJbnRlcnNlY3Rpb249WCxYLmNyZWF0ZT0oZSx0LG4pPT5uZXcgWCh7bGVmdDplLHJpZ2h0OnQsdHlwZU5hbWU6ci5ab2RJbnRlcnNlY3Rpb24sLi4ucChuKX0pO2NsYXNzIEcgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXR7c3RhdHVzOnQsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtpZihuLnBhcnNlZFR5cGUhPT11LlpvZFBhcnNlZFR5cGUuYXJyYXkpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLmFycmF5LHJlY2VpdmVkOm4ucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtpZihuLmRhdGEubGVuZ3RoPHRoaXMuX2RlZi5pdGVtcy5sZW5ndGgpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7Y29kZTppLlpvZElzc3VlQ29kZS50b29fc21hbGwsbWluaW11bTp0aGlzLl9kZWYuaXRlbXMubGVuZ3RoLGluY2x1c2l2ZTohMCxleGFjdDohMSx0eXBlOlwiYXJyYXlcIn0pLGMuSU5WQUxJRDshdGhpcy5fZGVmLnJlc3QmJm4uZGF0YS5sZW5ndGg+dGhpcy5fZGVmLml0ZW1zLmxlbmd0aCYmKCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4se2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtYXhpbXVtOnRoaXMuX2RlZi5pdGVtcy5sZW5ndGgsaW5jbHVzaXZlOiEwLGV4YWN0OiExLHR5cGU6XCJhcnJheVwifSksdC5kaXJ0eSgpKTtsZXQgcj1bLi4ubi5kYXRhXS5tYXAoKGUsdCk9PntsZXQgcj10aGlzLl9kZWYuaXRlbXNbdF18fHRoaXMuX2RlZi5yZXN0O3JldHVybiByP3IuX3BhcnNlKG5ldyBkKG4sZSxuLnBhdGgsdCkpOm51bGx9KS5maWx0ZXIoZT0+ISFlKTtyZXR1cm4gbi5jb21tb24uYXN5bmM/UHJvbWlzZS5hbGwocikudGhlbihlPT5jLlBhcnNlU3RhdHVzLm1lcmdlQXJyYXkodCxlKSk6Yy5QYXJzZVN0YXR1cy5tZXJnZUFycmF5KHQscil9Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuX2RlZi5pdGVtc31yZXN0KGUpe3JldHVybiBuZXcgRyh7Li4udGhpcy5fZGVmLHJlc3Q6ZX0pfX10LlpvZFR1cGxlPUcsRy5jcmVhdGU9KGUsdCk9PntpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBFcnJvcihcIllvdSBtdXN0IHBhc3MgYW4gYXJyYXkgb2Ygc2NoZW1hcyB0byB6LnR1cGxlKFsgLi4uIF0pXCIpO3JldHVybiBuZXcgRyh7aXRlbXM6ZSx0eXBlTmFtZTpyLlpvZFR1cGxlLHJlc3Q6bnVsbCwuLi5wKHQpfSl9O2NsYXNzIFEgZXh0ZW5kcyBoe2dldCBrZXlTY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLmtleVR5cGV9Z2V0IHZhbHVlU2NoZW1hKCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGV9X3BhcnNlKGUpe2xldHtzdGF0dXM6dCxjdHg6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpO2lmKG4ucGFyc2VkVHlwZSE9PXUuWm9kUGFyc2VkVHlwZS5vYmplY3QpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLm9iamVjdCxyZWNlaXZlZDpuLnBhcnNlZFR5cGV9KSxjLklOVkFMSUQ7bGV0IHI9W10sbz10aGlzLl9kZWYua2V5VHlwZSxhPXRoaXMuX2RlZi52YWx1ZVR5cGU7Zm9yKGxldCBlIGluIG4uZGF0YSlyLnB1c2goe2tleTpvLl9wYXJzZShuZXcgZChuLGUsbi5wYXRoLGUpKSx2YWx1ZTphLl9wYXJzZShuZXcgZChuLG4uZGF0YVtlXSxuLnBhdGgsZSkpLGFsd2F5c1NldDplIGluIG4uZGF0YX0pO3JldHVybiBuLmNvbW1vbi5hc3luYz9jLlBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0QXN5bmModCxyKTpjLlBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyh0LHIpfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGV9c3RhdGljIGNyZWF0ZShlLHQsbil7cmV0dXJuIG5ldyBRKHQgaW5zdGFuY2VvZiBoP3trZXlUeXBlOmUsdmFsdWVUeXBlOnQsdHlwZU5hbWU6ci5ab2RSZWNvcmQsLi4ucChuKX06e2tleVR5cGU6VC5jcmVhdGUoKSx2YWx1ZVR5cGU6ZSx0eXBlTmFtZTpyLlpvZFJlY29yZCwuLi5wKHQpfSl9fXQuWm9kUmVjb3JkPVE7Y2xhc3MgSiBleHRlbmRzIGh7Z2V0IGtleVNjaGVtYSgpe3JldHVybiB0aGlzLl9kZWYua2V5VHlwZX1nZXQgdmFsdWVTY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZX1fcGFyc2UoZSl7bGV0e3N0YXR1czp0LGN0eDpufT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYobi5wYXJzZWRUeXBlIT09dS5ab2RQYXJzZWRUeXBlLm1hcClyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KShuLHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUubWFwLHJlY2VpdmVkOm4ucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtsZXQgcj10aGlzLl9kZWYua2V5VHlwZSxvPXRoaXMuX2RlZi52YWx1ZVR5cGUsYT1bLi4ubi5kYXRhLmVudHJpZXMoKV0ubWFwKChbZSx0XSxhKT0+KHtrZXk6ci5fcGFyc2UobmV3IGQobixlLG4ucGF0aCxbYSxcImtleVwiXSkpLHZhbHVlOm8uX3BhcnNlKG5ldyBkKG4sdCxuLnBhdGgsW2EsXCJ2YWx1ZVwiXSkpfSkpO2lmKG4uY29tbW9uLmFzeW5jKXtsZXQgZT1uZXcgTWFwO3JldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGFzeW5jKCk9Pntmb3IobGV0IG4gb2YgYSl7bGV0IHI9YXdhaXQgbi5rZXksbz1hd2FpdCBuLnZhbHVlO2lmKFwiYWJvcnRlZFwiPT09ci5zdGF0dXN8fFwiYWJvcnRlZFwiPT09by5zdGF0dXMpcmV0dXJuIGMuSU5WQUxJRDsoXCJkaXJ0eVwiPT09ci5zdGF0dXN8fFwiZGlydHlcIj09PW8uc3RhdHVzKSYmdC5kaXJ0eSgpLGUuc2V0KHIudmFsdWUsby52YWx1ZSl9cmV0dXJue3N0YXR1czp0LnZhbHVlLHZhbHVlOmV9fSl9e2xldCBlPW5ldyBNYXA7Zm9yKGxldCBuIG9mIGEpe2xldCByPW4ua2V5LG89bi52YWx1ZTtpZihcImFib3J0ZWRcIj09PXIuc3RhdHVzfHxcImFib3J0ZWRcIj09PW8uc3RhdHVzKXJldHVybiBjLklOVkFMSUQ7KFwiZGlydHlcIj09PXIuc3RhdHVzfHxcImRpcnR5XCI9PT1vLnN0YXR1cykmJnQuZGlydHkoKSxlLnNldChyLnZhbHVlLG8udmFsdWUpfXJldHVybntzdGF0dXM6dC52YWx1ZSx2YWx1ZTplfX19fXQuWm9kTWFwPUosSi5jcmVhdGU9KGUsdCxuKT0+bmV3IEooe3ZhbHVlVHlwZTp0LGtleVR5cGU6ZSx0eXBlTmFtZTpyLlpvZE1hcCwuLi5wKG4pfSk7Y2xhc3MgZWUgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXR7c3RhdHVzOnQsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtpZihuLnBhcnNlZFR5cGUhPT11LlpvZFBhcnNlZFR5cGUuc2V0KXJldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4se2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5zZXQscmVjZWl2ZWQ6bi5wYXJzZWRUeXBlfSksYy5JTlZBTElEO2xldCByPXRoaXMuX2RlZjtudWxsIT09ci5taW5TaXplJiZuLmRhdGEuc2l6ZTxyLm1pblNpemUudmFsdWUmJigoMCxjLmFkZElzc3VlVG9Db250ZXh0KShuLHtjb2RlOmkuWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxtaW5pbXVtOnIubWluU2l6ZS52YWx1ZSx0eXBlOlwic2V0XCIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6ci5taW5TaXplLm1lc3NhZ2V9KSx0LmRpcnR5KCkpLG51bGwhPT1yLm1heFNpemUmJm4uZGF0YS5zaXplPnIubWF4U2l6ZS52YWx1ZSYmKCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4se2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtYXhpbXVtOnIubWF4U2l6ZS52YWx1ZSx0eXBlOlwic2V0XCIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6ci5tYXhTaXplLm1lc3NhZ2V9KSx0LmRpcnR5KCkpO2xldCBvPXRoaXMuX2RlZi52YWx1ZVR5cGU7ZnVuY3Rpb24gYShlKXtsZXQgbj1uZXcgU2V0O2ZvcihsZXQgciBvZiBlKXtpZihcImFib3J0ZWRcIj09PXIuc3RhdHVzKXJldHVybiBjLklOVkFMSUQ7XCJkaXJ0eVwiPT09ci5zdGF0dXMmJnQuZGlydHkoKSxuLmFkZChyLnZhbHVlKX1yZXR1cm57c3RhdHVzOnQudmFsdWUsdmFsdWU6bn19bGV0IGw9Wy4uLm4uZGF0YS52YWx1ZXMoKV0ubWFwKChlLHQpPT5vLl9wYXJzZShuZXcgZChuLGUsbi5wYXRoLHQpKSk7cmV0dXJuIG4uY29tbW9uLmFzeW5jP1Byb21pc2UuYWxsKGwpLnRoZW4oZT0+YShlKSk6YShsKX1taW4oZSx0KXtyZXR1cm4gbmV3IGVlKHsuLi50aGlzLl9kZWYsbWluU2l6ZTp7dmFsdWU6ZSxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpfX0pfW1heChlLHQpe3JldHVybiBuZXcgZWUoey4uLnRoaXMuX2RlZixtYXhTaXplOnt2YWx1ZTplLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcodCl9fSl9c2l6ZShlLHQpe3JldHVybiB0aGlzLm1pbihlLHQpLm1heChlLHQpfW5vbmVtcHR5KGUpe3JldHVybiB0aGlzLm1pbigxLGUpfX10LlpvZFNldD1lZSxlZS5jcmVhdGU9KGUsdCk9Pm5ldyBlZSh7dmFsdWVUeXBlOmUsbWluU2l6ZTpudWxsLG1heFNpemU6bnVsbCx0eXBlTmFtZTpyLlpvZFNldCwuLi5wKHQpfSk7Y2xhc3MgZXQgZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnZhbGlkYXRlPXRoaXMuaW1wbGVtZW50fV9wYXJzZShlKXtsZXR7Y3R4OnR9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtpZih0LnBhcnNlZFR5cGUhPT11LlpvZFBhcnNlZFR5cGUuZnVuY3Rpb24pcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLmZ1bmN0aW9uLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtmdW5jdGlvbiBuKGUsbil7cmV0dXJuKDAsYy5tYWtlSXNzdWUpKHtkYXRhOmUscGF0aDp0LnBhdGgsZXJyb3JNYXBzOlt0LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsdC5zY2hlbWFFcnJvck1hcCwoMCxsLmdldEVycm9yTWFwKSgpLGwuZGVmYXVsdEVycm9yTWFwXS5maWx0ZXIoZT0+ISFlKSxpc3N1ZURhdGE6e2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9hcmd1bWVudHMsYXJndW1lbnRzRXJyb3I6bn19KX1mdW5jdGlvbiByKGUsbil7cmV0dXJuKDAsYy5tYWtlSXNzdWUpKHtkYXRhOmUscGF0aDp0LnBhdGgsZXJyb3JNYXBzOlt0LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsdC5zY2hlbWFFcnJvck1hcCwoMCxsLmdldEVycm9yTWFwKSgpLGwuZGVmYXVsdEVycm9yTWFwXS5maWx0ZXIoZT0+ISFlKSxpc3N1ZURhdGE6e2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9yZXR1cm5fdHlwZSxyZXR1cm5UeXBlRXJyb3I6bn19KX1sZXQgbz17ZXJyb3JNYXA6dC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwfSxhPXQuZGF0YTtpZih0aGlzLl9kZWYucmV0dXJucyBpbnN0YW5jZW9mIGVsKXtsZXQgZT10aGlzO3JldHVybigwLGMuT0spKGFzeW5jIGZ1bmN0aW9uKC4uLnQpe2xldCBsPW5ldyBpLlpvZEVycm9yKFtdKSxzPWF3YWl0IGUuX2RlZi5hcmdzLnBhcnNlQXN5bmModCxvKS5jYXRjaChlPT57dGhyb3cgbC5hZGRJc3N1ZShuKHQsZSkpLGx9KSxjPWF3YWl0IFJlZmxlY3QuYXBwbHkoYSx0aGlzLHMpO3JldHVybiBhd2FpdCBlLl9kZWYucmV0dXJucy5fZGVmLnR5cGUucGFyc2VBc3luYyhjLG8pLmNhdGNoKGU9Pnt0aHJvdyBsLmFkZElzc3VlKHIoYyxlKSksbH0pfSl9e2xldCBlPXRoaXM7cmV0dXJuKDAsYy5PSykoZnVuY3Rpb24oLi4udCl7bGV0IGw9ZS5fZGVmLmFyZ3Muc2FmZVBhcnNlKHQsbyk7aWYoIWwuc3VjY2Vzcyl0aHJvdyBuZXcgaS5ab2RFcnJvcihbbih0LGwuZXJyb3IpXSk7bGV0IHM9UmVmbGVjdC5hcHBseShhLHRoaXMsbC5kYXRhKSxjPWUuX2RlZi5yZXR1cm5zLnNhZmVQYXJzZShzLG8pO2lmKCFjLnN1Y2Nlc3MpdGhyb3cgbmV3IGkuWm9kRXJyb3IoW3IocyxjLmVycm9yKV0pO3JldHVybiBjLmRhdGF9KX19cGFyYW1ldGVycygpe3JldHVybiB0aGlzLl9kZWYuYXJnc31yZXR1cm5UeXBlKCl7cmV0dXJuIHRoaXMuX2RlZi5yZXR1cm5zfWFyZ3MoLi4uZSl7cmV0dXJuIG5ldyBldCh7Li4udGhpcy5fZGVmLGFyZ3M6Ry5jcmVhdGUoZSkucmVzdChGLmNyZWF0ZSgpKX0pfXJldHVybnMoZSl7cmV0dXJuIG5ldyBldCh7Li4udGhpcy5fZGVmLHJldHVybnM6ZX0pfWltcGxlbWVudChlKXtyZXR1cm4gdGhpcy5wYXJzZShlKX1zdHJpY3RJbXBsZW1lbnQoZSl7cmV0dXJuIHRoaXMucGFyc2UoZSl9c3RhdGljIGNyZWF0ZShlLHQsbil7cmV0dXJuIG5ldyBldCh7YXJnczplfHxHLmNyZWF0ZShbXSkucmVzdChGLmNyZWF0ZSgpKSxyZXR1cm5zOnR8fEYuY3JlYXRlKCksdHlwZU5hbWU6ci5ab2RGdW5jdGlvbiwuLi5wKG4pfSl9fXQuWm9kRnVuY3Rpb249ZXQ7Y2xhc3MgZW4gZXh0ZW5kcyBoe2dldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLmdldHRlcigpfV9wYXJzZShlKXtsZXR7Y3R4OnR9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtyZXR1cm4gdGhpcy5fZGVmLmdldHRlcigpLl9wYXJzZSh7ZGF0YTp0LmRhdGEscGF0aDp0LnBhdGgscGFyZW50OnR9KX19dC5ab2RMYXp5PWVuLGVuLmNyZWF0ZT0oZSx0KT0+bmV3IGVuKHtnZXR0ZXI6ZSx0eXBlTmFtZTpyLlpvZExhenksLi4ucCh0KX0pO2NsYXNzIGVyIGV4dGVuZHMgaHtfcGFyc2UoZSl7aWYoZS5kYXRhIT09dGhpcy5fZGVmLnZhbHVlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtyZWNlaXZlZDp0LmRhdGEsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX2xpdGVyYWwsZXhwZWN0ZWQ6dGhpcy5fZGVmLnZhbHVlfSksYy5JTlZBTElEfXJldHVybntzdGF0dXM6XCJ2YWxpZFwiLHZhbHVlOmUuZGF0YX19Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZX19ZnVuY3Rpb24gZW8oZSx0KXtyZXR1cm4gbmV3IGVhKHt2YWx1ZXM6ZSx0eXBlTmFtZTpyLlpvZEVudW0sLi4ucCh0KX0pfXQuWm9kTGl0ZXJhbD1lcixlci5jcmVhdGU9KGUsdCk9Pm5ldyBlcih7dmFsdWU6ZSx0eXBlTmFtZTpyLlpvZExpdGVyYWwsLi4ucCh0KX0pO2NsYXNzIGVhIGV4dGVuZHMgaHtfcGFyc2UoZSl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUuZGF0YSl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSksbj10aGlzLl9kZWYudmFsdWVzO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2V4cGVjdGVkOnUudXRpbC5qb2luVmFsdWVzKG4pLHJlY2VpdmVkOnQucGFyc2VkVHlwZSxjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZX0pLGMuSU5WQUxJRH1pZih0aGlzLl9jYWNoZXx8KHRoaXMuX2NhY2hlPW5ldyBTZXQodGhpcy5fZGVmLnZhbHVlcykpLCF0aGlzLl9jYWNoZS5oYXMoZS5kYXRhKSl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSksbj10aGlzLl9kZWYudmFsdWVzO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse3JlY2VpdmVkOnQuZGF0YSxjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfZW51bV92YWx1ZSxvcHRpb25zOm59KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLl9kZWYudmFsdWVzfWdldCBlbnVtKCl7bGV0IGU9e307Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi52YWx1ZXMpZVt0XT10O3JldHVybiBlfWdldCBWYWx1ZXMoKXtsZXQgZT17fTtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLnZhbHVlcyllW3RdPXQ7cmV0dXJuIGV9Z2V0IEVudW0oKXtsZXQgZT17fTtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLnZhbHVlcyllW3RdPXQ7cmV0dXJuIGV9ZXh0cmFjdChlLHQ9dGhpcy5fZGVmKXtyZXR1cm4gZWEuY3JlYXRlKGUsey4uLnRoaXMuX2RlZiwuLi50fSl9ZXhjbHVkZShlLHQ9dGhpcy5fZGVmKXtyZXR1cm4gZWEuY3JlYXRlKHRoaXMub3B0aW9ucy5maWx0ZXIodD0+IWUuaW5jbHVkZXModCkpLHsuLi50aGlzLl9kZWYsLi4udH0pfX10LlpvZEVudW09ZWEsZWEuY3JlYXRlPWVvO2NsYXNzIGVpIGV4dGVuZHMgaHtfcGFyc2UoZSl7bGV0IHQ9dS51dGlsLmdldFZhbGlkRW51bVZhbHVlcyh0aGlzLl9kZWYudmFsdWVzKSxuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO2lmKG4ucGFyc2VkVHlwZSE9PXUuWm9kUGFyc2VkVHlwZS5zdHJpbmcmJm4ucGFyc2VkVHlwZSE9PXUuWm9kUGFyc2VkVHlwZS5udW1iZXIpe2xldCBlPXUudXRpbC5vYmplY3RWYWx1ZXModCk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7ZXhwZWN0ZWQ6dS51dGlsLmpvaW5WYWx1ZXMoZSkscmVjZWl2ZWQ6bi5wYXJzZWRUeXBlLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlfSksYy5JTlZBTElEfWlmKHRoaXMuX2NhY2hlfHwodGhpcy5fY2FjaGU9bmV3IFNldCh1LnV0aWwuZ2V0VmFsaWRFbnVtVmFsdWVzKHRoaXMuX2RlZi52YWx1ZXMpKSksIXRoaXMuX2NhY2hlLmhhcyhlLmRhdGEpKXtsZXQgZT11LnV0aWwub2JqZWN0VmFsdWVzKHQpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4se3JlY2VpdmVkOm4uZGF0YSxjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfZW51bV92YWx1ZSxvcHRpb25zOmV9KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX1nZXQgZW51bSgpe3JldHVybiB0aGlzLl9kZWYudmFsdWVzfX10LlpvZE5hdGl2ZUVudW09ZWksZWkuY3JlYXRlPShlLHQpPT5uZXcgZWkoe3ZhbHVlczplLHR5cGVOYW1lOnIuWm9kTmF0aXZlRW51bSwuLi5wKHQpfSk7Y2xhc3MgZWwgZXh0ZW5kcyBoe3Vud3JhcCgpe3JldHVybiB0aGlzLl9kZWYudHlwZX1fcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYodC5wYXJzZWRUeXBlIT09dS5ab2RQYXJzZWRUeXBlLnByb21pc2UmJiExPT09dC5jb21tb24uYXN5bmMpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLnByb21pc2UscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEO2xldCBuPXQucGFyc2VkVHlwZT09PXUuWm9kUGFyc2VkVHlwZS5wcm9taXNlP3QuZGF0YTpQcm9taXNlLnJlc29sdmUodC5kYXRhKTtyZXR1cm4oMCxjLk9LKShuLnRoZW4oZT0+dGhpcy5fZGVmLnR5cGUucGFyc2VBc3luYyhlLHtwYXRoOnQucGF0aCxlcnJvck1hcDp0LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXB9KSkpfX10LlpvZFByb21pc2U9ZWwsZWwuY3JlYXRlPShlLHQpPT5uZXcgZWwoe3R5cGU6ZSx0eXBlTmFtZTpyLlpvZFByb21pc2UsLi4ucCh0KX0pO2NsYXNzIGVzIGV4dGVuZHMgaHtpbm5lclR5cGUoKXtyZXR1cm4gdGhpcy5fZGVmLnNjaGVtYX1zb3VyY2VUeXBlKCl7cmV0dXJuIHRoaXMuX2RlZi5zY2hlbWEuX2RlZi50eXBlTmFtZT09PXIuWm9kRWZmZWN0cz90aGlzLl9kZWYuc2NoZW1hLnNvdXJjZVR5cGUoKTp0aGlzLl9kZWYuc2NoZW1hfV9wYXJzZShlKXtsZXR7c3RhdHVzOnQsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKSxyPXRoaXMuX2RlZi5lZmZlY3R8fG51bGwsbz17YWRkSXNzdWU6ZT0+eygwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4sZSksZS5mYXRhbD90LmFib3J0KCk6dC5kaXJ0eSgpfSxnZXQgcGF0aCgpe3JldHVybiBuLnBhdGh9fTtpZihvLmFkZElzc3VlPW8uYWRkSXNzdWUuYmluZChvKSxcInByZXByb2Nlc3NcIj09PXIudHlwZSl7bGV0IGU9ci50cmFuc2Zvcm0obi5kYXRhLG8pO2lmKG4uY29tbW9uLmFzeW5jKXJldHVybiBQcm9taXNlLnJlc29sdmUoZSkudGhlbihhc3luYyBlPT57aWYoXCJhYm9ydGVkXCI9PT10LnZhbHVlKXJldHVybiBjLklOVkFMSUQ7bGV0IHI9YXdhaXQgdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VBc3luYyh7ZGF0YTplLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuXCJhYm9ydGVkXCI9PT1yLnN0YXR1cz9jLklOVkFMSUQ6XCJkaXJ0eVwiPT09ci5zdGF0dXN8fFwiZGlydHlcIj09PXQudmFsdWU/KDAsYy5ESVJUWSkoci52YWx1ZSk6cn0pO3tpZihcImFib3J0ZWRcIj09PXQudmFsdWUpcmV0dXJuIGMuSU5WQUxJRDtsZXQgcj10aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe2RhdGE6ZSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pO3JldHVyblwiYWJvcnRlZFwiPT09ci5zdGF0dXM/Yy5JTlZBTElEOlwiZGlydHlcIj09PXIuc3RhdHVzfHxcImRpcnR5XCI9PT10LnZhbHVlPygwLGMuRElSVFkpKHIudmFsdWUpOnJ9fWlmKFwicmVmaW5lbWVudFwiPT09ci50eXBlKXtsZXQgZT1lPT57bGV0IHQ9ci5yZWZpbmVtZW50KGUsbyk7aWYobi5jb21tb24uYXN5bmMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KTtpZih0IGluc3RhbmNlb2YgUHJvbWlzZSl0aHJvdyBFcnJvcihcIkFzeW5jIHJlZmluZW1lbnQgZW5jb3VudGVyZWQgZHVyaW5nIHN5bmNocm9ub3VzIHBhcnNlIG9wZXJhdGlvbi4gVXNlIC5wYXJzZUFzeW5jIGluc3RlYWQuXCIpO3JldHVybiBlfTtpZighMSE9PW4uY29tbW9uLmFzeW5jKXJldHVybiB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pLnRoZW4obj0+XCJhYm9ydGVkXCI9PT1uLnN0YXR1cz9jLklOVkFMSUQ6KFwiZGlydHlcIj09PW4uc3RhdHVzJiZ0LmRpcnR5KCksZShuLnZhbHVlKS50aGVuKCgpPT4oe3N0YXR1czp0LnZhbHVlLHZhbHVlOm4udmFsdWV9KSkpKTt7bGV0IHI9dGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pO3JldHVyblwiYWJvcnRlZFwiPT09ci5zdGF0dXM/Yy5JTlZBTElEOihcImRpcnR5XCI9PT1yLnN0YXR1cyYmdC5kaXJ0eSgpLGUoci52YWx1ZSkse3N0YXR1czp0LnZhbHVlLHZhbHVlOnIudmFsdWV9KX19aWYoXCJ0cmFuc2Zvcm1cIj09PXIudHlwZSlpZighMSE9PW4uY29tbW9uLmFzeW5jKXJldHVybiB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pLnRoZW4oZT0+KDAsYy5pc1ZhbGlkKShlKT9Qcm9taXNlLnJlc29sdmUoci50cmFuc2Zvcm0oZS52YWx1ZSxvKSkudGhlbihlPT4oe3N0YXR1czp0LnZhbHVlLHZhbHVlOmV9KSk6Yy5JTlZBTElEKTtlbHNle2xldCBlPXRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7ZGF0YTpuLmRhdGEscGF0aDpuLnBhdGgscGFyZW50Om59KTtpZighKDAsYy5pc1ZhbGlkKShlKSlyZXR1cm4gYy5JTlZBTElEO2xldCBhPXIudHJhbnNmb3JtKGUudmFsdWUsbyk7aWYoYSBpbnN0YW5jZW9mIFByb21pc2UpdGhyb3cgRXJyb3IoXCJBc3luY2hyb25vdXMgdHJhbnNmb3JtIGVuY291bnRlcmVkIGR1cmluZyBzeW5jaHJvbm91cyBwYXJzZSBvcGVyYXRpb24uIFVzZSAucGFyc2VBc3luYyBpbnN0ZWFkLlwiKTtyZXR1cm57c3RhdHVzOnQudmFsdWUsdmFsdWU6YX19dS51dGlsLmFzc2VydE5ldmVyKHIpfX10LlpvZEVmZmVjdHM9ZXMsdC5ab2RUcmFuc2Zvcm1lcj1lcyxlcy5jcmVhdGU9KGUsdCxuKT0+bmV3IGVzKHtzY2hlbWE6ZSx0eXBlTmFtZTpyLlpvZEVmZmVjdHMsZWZmZWN0OnQsLi4ucChuKX0pLGVzLmNyZWF0ZVdpdGhQcmVwcm9jZXNzPShlLHQsbik9Pm5ldyBlcyh7c2NoZW1hOnQsZWZmZWN0Ont0eXBlOlwicHJlcHJvY2Vzc1wiLHRyYW5zZm9ybTplfSx0eXBlTmFtZTpyLlpvZEVmZmVjdHMsLi4ucChuKX0pO2NsYXNzIGVjIGV4dGVuZHMgaHtfcGFyc2UoZSl7cmV0dXJuIHRoaXMuX2dldFR5cGUoZSk9PT11LlpvZFBhcnNlZFR5cGUudW5kZWZpbmVkPygwLGMuT0spKHZvaWQgMCk6dGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoZSl9dW53cmFwKCl7cmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGV9fXQuWm9kT3B0aW9uYWw9ZWMsZWMuY3JlYXRlPShlLHQpPT5uZXcgZWMoe2lubmVyVHlwZTplLHR5cGVOYW1lOnIuWm9kT3B0aW9uYWwsLi4ucCh0KX0pO2NsYXNzIGV1IGV4dGVuZHMgaHtfcGFyc2UoZSl7cmV0dXJuIHRoaXMuX2dldFR5cGUoZSk9PT11LlpvZFBhcnNlZFR5cGUubnVsbD8oMCxjLk9LKShudWxsKTp0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZShlKX11bndyYXAoKXtyZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZX19dC5ab2ROdWxsYWJsZT1ldSxldS5jcmVhdGU9KGUsdCk9Pm5ldyBldSh7aW5uZXJUeXBlOmUsdHlwZU5hbWU6ci5ab2ROdWxsYWJsZSwuLi5wKHQpfSk7Y2xhc3MgZWQgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXR7Y3R4OnR9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKSxuPXQuZGF0YTtyZXR1cm4gdC5wYXJzZWRUeXBlPT09dS5ab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCYmKG49dGhpcy5fZGVmLmRlZmF1bHRWYWx1ZSgpKSx0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZSh7ZGF0YTpuLHBhdGg6dC5wYXRoLHBhcmVudDp0fSl9cmVtb3ZlRGVmYXVsdCgpe3JldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlfX10LlpvZERlZmF1bHQ9ZWQsZWQuY3JlYXRlPShlLHQpPT5uZXcgZWQoe2lubmVyVHlwZTplLHR5cGVOYW1lOnIuWm9kRGVmYXVsdCxkZWZhdWx0VmFsdWU6XCJmdW5jdGlvblwiPT10eXBlb2YgdC5kZWZhdWx0P3QuZGVmYXVsdDooKT0+dC5kZWZhdWx0LC4uLnAodCl9KTtjbGFzcyBlZiBleHRlbmRzIGh7X3BhcnNlKGUpe2xldHtjdHg6dH09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpLG49ey4uLnQsY29tbW9uOnsuLi50LmNvbW1vbixpc3N1ZXM6W119fSxyPXRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6ey4uLm59fSk7cmV0dXJuKDAsYy5pc0FzeW5jKShyKT9yLnRoZW4oZT0+KHtzdGF0dXM6XCJ2YWxpZFwiLHZhbHVlOlwidmFsaWRcIj09PWUuc3RhdHVzP2UudmFsdWU6dGhpcy5fZGVmLmNhdGNoVmFsdWUoe2dldCBlcnJvcigpe3JldHVybiBuZXcgaS5ab2RFcnJvcihuLmNvbW1vbi5pc3N1ZXMpfSxpbnB1dDpuLmRhdGF9KX0pKTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTpcInZhbGlkXCI9PT1yLnN0YXR1cz9yLnZhbHVlOnRoaXMuX2RlZi5jYXRjaFZhbHVlKHtnZXQgZXJyb3IoKXtyZXR1cm4gbmV3IGkuWm9kRXJyb3Iobi5jb21tb24uaXNzdWVzKX0saW5wdXQ6bi5kYXRhfSl9fXJlbW92ZUNhdGNoKCl7cmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGV9fXQuWm9kQ2F0Y2g9ZWYsZWYuY3JlYXRlPShlLHQpPT5uZXcgZWYoe2lubmVyVHlwZTplLHR5cGVOYW1lOnIuWm9kQ2F0Y2gsY2F0Y2hWYWx1ZTpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmNhdGNoP3QuY2F0Y2g6KCk9PnQuY2F0Y2gsLi4ucCh0KX0pO2NsYXNzIGVwIGV4dGVuZHMgaHtfcGFyc2UoZSl7aWYodGhpcy5fZ2V0VHlwZShlKSE9PXUuWm9kUGFyc2VkVHlwZS5uYW4pe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5uYW4scmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfXJldHVybntzdGF0dXM6XCJ2YWxpZFwiLHZhbHVlOmUuZGF0YX19fXQuWm9kTmFOPWVwLGVwLmNyZWF0ZT1lPT5uZXcgZXAoe3R5cGVOYW1lOnIuWm9kTmFOLC4uLnAoZSl9KSx0LkJSQU5EPVN5bWJvbChcInpvZF9icmFuZFwiKTtjbGFzcyBlaCBleHRlbmRzIGh7X3BhcnNlKGUpe2xldHtjdHg6dH09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpLG49dC5kYXRhO3JldHVybiB0aGlzLl9kZWYudHlwZS5fcGFyc2Uoe2RhdGE6bixwYXRoOnQucGF0aCxwYXJlbnQ6dH0pfXVud3JhcCgpe3JldHVybiB0aGlzLl9kZWYudHlwZX19dC5ab2RCcmFuZGVkPWVoO2NsYXNzIGVtIGV4dGVuZHMgaHtfcGFyc2UoZSl7bGV0e3N0YXR1czp0LGN0eDpufT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYobi5jb21tb24uYXN5bmMpcmV0dXJuKGFzeW5jKCk9PntsZXQgZT1hd2FpdCB0aGlzLl9kZWYuaW4uX3BhcnNlQXN5bmMoe2RhdGE6bi5kYXRhLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuXCJhYm9ydGVkXCI9PT1lLnN0YXR1cz9jLklOVkFMSUQ6XCJkaXJ0eVwiPT09ZS5zdGF0dXM/KHQuZGlydHkoKSwoMCxjLkRJUlRZKShlLnZhbHVlKSk6dGhpcy5fZGVmLm91dC5fcGFyc2VBc3luYyh7ZGF0YTplLnZhbHVlLHBhdGg6bi5wYXRoLHBhcmVudDpufSl9KSgpO3tsZXQgZT10aGlzLl9kZWYuaW4uX3BhcnNlU3luYyh7ZGF0YTpuLmRhdGEscGF0aDpuLnBhdGgscGFyZW50Om59KTtyZXR1cm5cImFib3J0ZWRcIj09PWUuc3RhdHVzP2MuSU5WQUxJRDpcImRpcnR5XCI9PT1lLnN0YXR1cz8odC5kaXJ0eSgpLHtzdGF0dXM6XCJkaXJ0eVwiLHZhbHVlOmUudmFsdWV9KTp0aGlzLl9kZWYub3V0Ll9wYXJzZVN5bmMoe2RhdGE6ZS52YWx1ZSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pfX1zdGF0aWMgY3JlYXRlKGUsdCl7cmV0dXJuIG5ldyBlbSh7aW46ZSxvdXQ6dCx0eXBlTmFtZTpyLlpvZFBpcGVsaW5lfSl9fXQuWm9kUGlwZWxpbmU9ZW07Y2xhc3MgZWcgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXQgdD10aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZShlKSxuPWU9PigoMCxjLmlzVmFsaWQpKGUpJiYoZS52YWx1ZT1PYmplY3QuZnJlZXplKGUudmFsdWUpKSxlKTtyZXR1cm4oMCxjLmlzQXN5bmMpKHQpP3QudGhlbihlPT5uKGUpKTpuKHQpfXVud3JhcCgpe3JldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlfX1mdW5jdGlvbiBleShlLHQpe2xldCBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSh0KTpcInN0cmluZ1wiPT10eXBlb2YgZT97bWVzc2FnZTplfTplO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBuP3ttZXNzYWdlOm59Om59ZnVuY3Rpb24gZXYoZSx0PXt9LG4pe3JldHVybiBlP1UuY3JlYXRlKCkuc3VwZXJSZWZpbmUoKHIsbyk9PntsZXQgYT1lKHIpO2lmKGEgaW5zdGFuY2VvZiBQcm9taXNlKXJldHVybiBhLnRoZW4oZT0+e2lmKCFlKXtsZXQgZT1leSh0LHIpLGE9ZS5mYXRhbD8/bj8/ITA7by5hZGRJc3N1ZSh7Y29kZTpcImN1c3RvbVwiLC4uLmUsZmF0YWw6YX0pfX0pO2lmKCFhKXtsZXQgZT1leSh0LHIpLGE9ZS5mYXRhbD8/bj8/ITA7by5hZGRJc3N1ZSh7Y29kZTpcImN1c3RvbVwiLC4uLmUsZmF0YWw6YX0pfX0pOlUuY3JlYXRlKCl9dC5ab2RSZWFkb25seT1lZyxlZy5jcmVhdGU9KGUsdCk9Pm5ldyBlZyh7aW5uZXJUeXBlOmUsdHlwZU5hbWU6ci5ab2RSZWFkb25seSwuLi5wKHQpfSksdC5sYXRlPXtvYmplY3Q6JC5sYXp5Y3JlYXRlfSwobz1yfHwodC5ab2RGaXJzdFBhcnR5VHlwZUtpbmQ9cj17fSkpLlpvZFN0cmluZz1cIlpvZFN0cmluZ1wiLG8uWm9kTnVtYmVyPVwiWm9kTnVtYmVyXCIsby5ab2ROYU49XCJab2ROYU5cIixvLlpvZEJpZ0ludD1cIlpvZEJpZ0ludFwiLG8uWm9kQm9vbGVhbj1cIlpvZEJvb2xlYW5cIixvLlpvZERhdGU9XCJab2REYXRlXCIsby5ab2RTeW1ib2w9XCJab2RTeW1ib2xcIixvLlpvZFVuZGVmaW5lZD1cIlpvZFVuZGVmaW5lZFwiLG8uWm9kTnVsbD1cIlpvZE51bGxcIixvLlpvZEFueT1cIlpvZEFueVwiLG8uWm9kVW5rbm93bj1cIlpvZFVua25vd25cIixvLlpvZE5ldmVyPVwiWm9kTmV2ZXJcIixvLlpvZFZvaWQ9XCJab2RWb2lkXCIsby5ab2RBcnJheT1cIlpvZEFycmF5XCIsby5ab2RPYmplY3Q9XCJab2RPYmplY3RcIixvLlpvZFVuaW9uPVwiWm9kVW5pb25cIixvLlpvZERpc2NyaW1pbmF0ZWRVbmlvbj1cIlpvZERpc2NyaW1pbmF0ZWRVbmlvblwiLG8uWm9kSW50ZXJzZWN0aW9uPVwiWm9kSW50ZXJzZWN0aW9uXCIsby5ab2RUdXBsZT1cIlpvZFR1cGxlXCIsby5ab2RSZWNvcmQ9XCJab2RSZWNvcmRcIixvLlpvZE1hcD1cIlpvZE1hcFwiLG8uWm9kU2V0PVwiWm9kU2V0XCIsby5ab2RGdW5jdGlvbj1cIlpvZEZ1bmN0aW9uXCIsby5ab2RMYXp5PVwiWm9kTGF6eVwiLG8uWm9kTGl0ZXJhbD1cIlpvZExpdGVyYWxcIixvLlpvZEVudW09XCJab2RFbnVtXCIsby5ab2RFZmZlY3RzPVwiWm9kRWZmZWN0c1wiLG8uWm9kTmF0aXZlRW51bT1cIlpvZE5hdGl2ZUVudW1cIixvLlpvZE9wdGlvbmFsPVwiWm9kT3B0aW9uYWxcIixvLlpvZE51bGxhYmxlPVwiWm9kTnVsbGFibGVcIixvLlpvZERlZmF1bHQ9XCJab2REZWZhdWx0XCIsby5ab2RDYXRjaD1cIlpvZENhdGNoXCIsby5ab2RQcm9taXNlPVwiWm9kUHJvbWlzZVwiLG8uWm9kQnJhbmRlZD1cIlpvZEJyYW5kZWRcIixvLlpvZFBpcGVsaW5lPVwiWm9kUGlwZWxpbmVcIixvLlpvZFJlYWRvbmx5PVwiWm9kUmVhZG9ubHlcIix0Lmluc3RhbmNlb2Y9KGUsdD17bWVzc2FnZTpgSW5wdXQgbm90IGluc3RhbmNlIG9mICR7ZS5uYW1lfWB9KT0+ZXYodD0+dCBpbnN0YW5jZW9mIGUsdCk7bGV0IGViPVQuY3JlYXRlO3Quc3RyaW5nPWViO2xldCBlQT16LmNyZWF0ZTt0Lm51bWJlcj1lQSx0Lm5hbj1lcC5jcmVhdGUsdC5iaWdpbnQ9RC5jcmVhdGU7bGV0IGV4PUwuY3JlYXRlO3QuYm9vbGVhbj1leCx0LmRhdGU9Ti5jcmVhdGUsdC5zeW1ib2w9Ui5jcmVhdGUsdC51bmRlZmluZWQ9TS5jcmVhdGUsdC5udWxsPVouY3JlYXRlLHQuYW55PVUuY3JlYXRlLHQudW5rbm93bj1GLmNyZWF0ZSx0Lm5ldmVyPXEuY3JlYXRlLHQudm9pZD1ILmNyZWF0ZSx0LmFycmF5PVYuY3JlYXRlLHQub2JqZWN0PSQuY3JlYXRlLHQuc3RyaWN0T2JqZWN0PSQuc3RyaWN0Q3JlYXRlLHQudW5pb249Vy5jcmVhdGUsdC5kaXNjcmltaW5hdGVkVW5pb249Sy5jcmVhdGUsdC5pbnRlcnNlY3Rpb249WC5jcmVhdGUsdC50dXBsZT1HLmNyZWF0ZSx0LnJlY29yZD1RLmNyZWF0ZSx0Lm1hcD1KLmNyZWF0ZSx0LnNldD1lZS5jcmVhdGUsdC5mdW5jdGlvbj1ldC5jcmVhdGUsdC5sYXp5PWVuLmNyZWF0ZSx0LmxpdGVyYWw9ZXIuY3JlYXRlLHQuZW51bT1lYS5jcmVhdGUsdC5uYXRpdmVFbnVtPWVpLmNyZWF0ZSx0LnByb21pc2U9ZWwuY3JlYXRlO2xldCBldz1lcy5jcmVhdGU7dC5lZmZlY3Q9ZXcsdC50cmFuc2Zvcm1lcj1ldyx0Lm9wdGlvbmFsPWVjLmNyZWF0ZSx0Lm51bGxhYmxlPWV1LmNyZWF0ZSx0LnByZXByb2Nlc3M9ZXMuY3JlYXRlV2l0aFByZXByb2Nlc3MsdC5waXBlbGluZT1lbS5jcmVhdGUsdC5vc3RyaW5nPSgpPT5lYigpLm9wdGlvbmFsKCksdC5vbnVtYmVyPSgpPT5lQSgpLm9wdGlvbmFsKCksdC5vYm9vbGVhbj0oKT0+ZXgoKS5vcHRpb25hbCgpLHQuY29lcmNlPXtzdHJpbmc6ZT0+VC5jcmVhdGUoey4uLmUsY29lcmNlOiEwfSksbnVtYmVyOmU9PnouY3JlYXRlKHsuLi5lLGNvZXJjZTohMH0pLGJvb2xlYW46ZT0+TC5jcmVhdGUoey4uLmUsY29lcmNlOiEwfSksYmlnaW50OmU9PkQuY3JlYXRlKHsuLi5lLGNvZXJjZTohMH0pLGRhdGU6ZT0+Ti5jcmVhdGUoey4uLmUsY29lcmNlOiEwfSl9LHQuTkVWRVI9Yy5JTlZBTElEfX0sbj17fTtmdW5jdGlvbiByKGUpe3ZhciBvPW5bZV07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBhPW5bZV09e2V4cG9ydHM6e319LGk9ITA7dHJ5e3RbZV0uY2FsbChhLmV4cG9ydHMsYSxhLmV4cG9ydHMsciksaT0hMX1maW5hbGx5e2kmJmRlbGV0ZSBuW2VdfXJldHVybiBhLmV4cG9ydHN9ci5hYj1cIi8vXCIsZS5leHBvcnRzPXIoNjI5KX0pKCl9fSxfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX189e307ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhlKXt2YXIgdD1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bZV07aWYodm9pZCAwIT09dClyZXR1cm4gdC5leHBvcnRzO3ZhciBuPV9fd2VicGFja19tb2R1bGVfY2FjaGVfX1tlXT17aWQ6ZSxleHBvcnRzOnt9fTtyZXR1cm4gX193ZWJwYWNrX21vZHVsZXNfX1tlXShuLG4uZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKSxuLmV4cG9ydHN9X193ZWJwYWNrX3JlcXVpcmVfXy5uPWU9Pnt2YXIgdD1lJiZlLl9fZXNNb2R1bGU/KCk9PmUuZGVmYXVsdDooKT0+ZTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQse2E6dH0pLHR9LCgoKT0+e3ZhciBlLHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mP2U9Pk9iamVjdC5nZXRQcm90b3R5cGVPZihlKTplPT5lLl9fcHJvdG9fXztfX3dlYnBhY2tfcmVxdWlyZV9fLnQ9ZnVuY3Rpb24obixyKXtpZigxJnImJihuPXRoaXMobikpLDgmcnx8XCJvYmplY3RcIj09dHlwZW9mIG4mJm4mJig0JnImJm4uX19lc01vZHVsZXx8MTYmciYmXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50aGVuKSlyZXR1cm4gbjt2YXIgbz1PYmplY3QuY3JlYXRlKG51bGwpO19fd2VicGFja19yZXF1aXJlX18ucihvKTt2YXIgYT17fTtlPWV8fFtudWxsLHQoe30pLHQoW10pLHQodCldO2Zvcih2YXIgaT0yJnImJm47XCJvYmplY3RcIj09dHlwZW9mIGkmJiF+ZS5pbmRleE9mKGkpO2k9dChpKSlPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpKS5mb3JFYWNoKGU9PnthW2VdPSgpPT5uW2VdfSk7cmV0dXJuIGEuZGVmYXVsdD0oKT0+bixfX3dlYnBhY2tfcmVxdWlyZV9fLmQobyxhKSxvfX0pKCksX193ZWJwYWNrX3JlcXVpcmVfXy5kPShlLHQpPT57Zm9yKHZhciBuIGluIHQpX193ZWJwYWNrX3JlcXVpcmVfXy5vKHQsbikmJiFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZSxuKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7ZW51bWVyYWJsZTohMCxnZXQ6dFtuXX0pfSxfX3dlYnBhY2tfcmVxdWlyZV9fLm89KGUsdCk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpLF9fd2VicGFja19yZXF1aXJlX18ucj1lPT57XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5uYz12b2lkIDA7dmFyIF9fd2VicGFja19leHBvcnRzX189e307Zm9yKHZhciBfX3dlYnBhY2tfaV9fIGluKCgpPT57XCJ1c2Ugc3RyaWN0XCI7X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pLF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtkaXNwYXRjaGVyOigpPT5kcixyZW5kZXJBcHBEZXZPdmVybGF5OigpPT5kZCxEZXZPdmVybGF5Q29udGV4dDooKT0+ZGkscmVuZGVyUGFnZXNEZXZPdmVybGF5OigpPT5kZix1c2VEZXZPdmVybGF5Q29udGV4dDooKT0+ZGx9KTt2YXIgZSx0LG4scixvPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIiksYT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obyksaT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIiksbD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oaSkscz1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9zcmMvYnVpbGQvd2VicGFjay9sb2FkZXJzL2RldnRvb2wvZGV2dG9vbC1zdHlsZS1pbmplY3QuanNcIiksYz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocyksdT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCIpLGQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHUpLGY9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiKSxwPV9fd2VicGFja19yZXF1aXJlX18ubihmKSxoPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiKSxtPV9fd2VicGFja19yZXF1aXJlX18ubihoKSxnPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvZ2xvYmFsLmNzc1wiKSx5PXt9O3kuc3R5bGVUYWdUcmFuc2Zvcm09bSgpLHkuc2V0QXR0cmlidXRlcz1kKCkseS5pbnNlcnQ9YygpLHkuZG9tQVBJPWwoKSx5Lmluc2VydFN0eWxlRWxlbWVudD1wKCksYSgpKGcuWix5KSxnLlomJmcuWi5sb2NhbHMmJmcuWi5sb2NhbHM7dmFyIHY9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3RvYXN0L3N0eWxlLmNzc1wiKSxiPXt9O2Iuc3R5bGVUYWdUcmFuc2Zvcm09bSgpLGIuc2V0QXR0cmlidXRlcz1kKCksYi5pbnNlcnQ9YygpLGIuZG9tQVBJPWwoKSxiLmluc2VydFN0eWxlRWxlbWVudD1wKCksYSgpKHYuWixiKSx2LlomJnYuWi5sb2NhbHMmJnYuWi5sb2NhbHM7dmFyIEE9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtcnVudGltZS5qc1wiKSx4PV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY29tcGlsZXItcnVudGltZS5qc1wiKSx3PV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIiksQz1fX3dlYnBhY2tfcmVxdWlyZV9fLnQodywyKSxfPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvc3RhY2t0cmFjZS1wYXJzZXIvc3RhY2stdHJhY2UtcGFyc2VyLmNqcy5qc1wiKSxrPS9cXC9fbmV4dChcXC9zdGF0aWNcXC8uKykvLEU9U3ltYm9sLmZvcihcIm5leHQuY29uc29sZS5lcnJvci5kaWdlc3RcIik7ZnVuY3Rpb24gaihlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gUyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7aihlLHQsblt0XSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBPKGUsdCl7cmV0dXJuIHQ9bnVsbCE9dD90Ont9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbikpfSksZX12YXIgQj17U21hbGw6MTYvMTQsTWVkaXVtOjEsTGFyZ2U6MTYvMTh9LFA9XCJzdGF0aWMtaW5kaWNhdG9yXCIsST1cImJ1aWxkLW9rXCIsVD1cImJ1aWxkLWVycm9yXCIsej1cImJlZm9yZS1mYXN0LXJlZnJlc2hcIixEPVwiZmFzdC1yZWZyZXNoXCIsTD1cInZlcnNpb24taW5mb1wiLE49XCJ1bmhhbmRsZWQtZXJyb3JcIixSPVwidW5oYW5kbGVkLXJlamVjdGlvblwiLE09XCJkZWJ1Zy1pbmZvXCIsWj1cImRldi1pbmRpY2F0b3JcIixVPVwiZGV2LWluZGljYXRvci1kaXNhYmxlXCIsRj1cImVycm9yLW92ZXJsYXktb3BlblwiLHE9XCJlcnJvci1vdmVybGF5LWNsb3NlXCIsSD1cImVycm9yLW92ZXJsYXktdG9nZ2xlXCIsVj1cImJ1aWxkaW5nLWluZGljYXRvci1zaG93XCIsJD1cImJ1aWxkaW5nLWluZGljYXRvci1oaWRlXCIsVz1cInJlbmRlcmluZy1pbmRpY2F0b3Itc2hvd1wiLFk9XCJyZW5kZXJpbmctaW5kaWNhdG9yLWhpZGVcIixLPVwiZGV2dG9vbHMtcG9zaXRpb25cIixYPVwiZGV2dG9vbHMtcGFuZWwtcG9zaXRpb25cIixHPVwiZGV2dG9vbHMtc2NhbGVcIixRPVwiZGV2dG9vbHMtY29uZmlnXCIsSj1cIl9fbmV4dGpzLWRldi10b29scy1wYW5lbC1wb3NpdGlvblwiLGVlPVwiX19uZXh0anMtZGV2LXRvb2xzLXBhbmVsLXNpemVcIixldD1cIl9fbmV4dGpzLWRldi10b29scy1zaGFyZWQtcGFuZWwtc2l6ZVwiLGVuPVwiX19uZXh0anMtZGV2LXRvb2xzLXNoYXJlZC1wYW5lbC1sb2NhdGlvblwiLGVyPVwic2VnbWVudC1leHBsb3Jlci11cGRhdGUtcm91dGUtc3RhdGVcIixlbz0vXFxzKyhhdCBPYmplY3RcXC5yZWFjdF9zdGFja19ib3R0b21fZnJhbWUuKil8KHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZUAuKil8KGF0IHJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZS4qKXwocmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lQC4qKS87ZnVuY3Rpb24gZWEoZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmUuc3BsaXQoZW8pWzBdfXZhciBlaT0obnVsbD09KGU9cHJvY2Vzcy5lbnYuX19ORVhUX0RFVl9JTkRJQ0FUT1IpP3ZvaWQgMDplLnRvU3RyaW5nKCkpPT09XCJmYWxzZVwiLGVsPW51bGwhPSh0PXByb2Nlc3MuZW52Ll9fTkVYVF9ERVZfSU5ESUNBVE9SX1BPU0lUSU9OKT90OlwiYm90dG9tLWxlZnRcIixlcz17bmV4dElkOjEsYnVpbGRFcnJvcjpudWxsLGVycm9yczpbXSxub3RGb3VuZDohMSxyZW5kZXJpbmdJbmRpY2F0b3I6ITEsc3RhdGljSW5kaWNhdG9yOiExLHNob3dJbmRpY2F0b3I6ITEsZGlzYWJsZURldkluZGljYXRvcjohMSxidWlsZGluZ0luZGljYXRvcjohMSxyZWZyZXNoU3RhdGU6e3R5cGU6XCJpZGxlXCJ9LHZlcnNpb25JbmZvOntpbnN0YWxsZWQ6XCIwLjAuMFwiLHN0YWxlbmVzczpcInVua25vd25cIn0sZGVidWdJbmZvOntkZXZ0b29sc0Zyb250ZW5kVXJsOnZvaWQgMH0sZGV2VG9vbHNQb3NpdGlvbjplbCxkZXZUb29sc1BhbmVsUG9zaXRpb246aih7fSxlbixlbCksZGV2VG9vbHNQYW5lbFNpemU6e30sc2NhbGU6Qi5NZWRpdW0scGFnZTpcIlwiLHRoZW1lOlwic3lzdGVtXCIsaGlkZVNob3J0Y3V0Om51bGx9LGVjPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2NsaWVudC5qc1wiKTtmdW5jdGlvbiBldShlKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxuPUFycmF5KHQ+MT90LTE6MCkscj0xO3I8dDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTt2YXIgbz1lLmxlbmd0aC0xO3JldHVybihlLnNsaWNlKDAsbykucmVkdWNlKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZSt0K25bcl19LFwiXCIpK2Vbb10pLnJlcGxhY2UoL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vZyxcIlwiKS5yZXBsYWNlKC9cXHMrL2csXCIgXCIpLnJlcGxhY2UoL1xccyooWzo7LHt9XSlcXHMqL2csXCIkMVwiKS5yZXBsYWNlKC87K30vZyxcIn1cIikudHJpbSgpfWZ1bmN0aW9uIGVkKCl7dmFyIGUsdCxuPShlPVtcIlxcbiAgICAgIC8qIGxhdGluLWV4dCAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LWxhdGluLWV4dC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xcbiAgICAgICAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsXFxuICAgICAgICAgIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsXFxuICAgICAgICAgIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RixcXG4gICAgICAgICAgVStBNzIwLUE3RkY7XFxuICAgICAgfVxcbiAgICAgIC8qIGxhdGluLWV4dCAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCBNb25vJztcXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgNjAwO1xcbiAgICAgICAgZm9udC1kaXNwbGF5OiBzd2FwO1xcbiAgICAgICAgc3JjOiB1cmwoL19fbmV4dGpzX2ZvbnQvZ2Vpc3QtbW9uby1sYXRpbi1leHQud29mZjIpIGZvcm1hdCgnd29mZjInKTtcXG4gICAgICAgIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LFxcbiAgICAgICAgICBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLFxcbiAgICAgICAgICBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsXFxuICAgICAgICAgIFUrQTcyMC1BN0ZGO1xcbiAgICAgIH1cXG4gICAgICAvKiBsYXRpbiAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LWxhdGluLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgICAgICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNixcXG4gICAgICAgICAgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMixcXG4gICAgICAgICAgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDtcXG4gICAgICB9XFxuICAgICAgLyogbGF0aW4gKi9cXG4gICAgICBAZm9udC1mYWNlIHtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnX19uZXh0anMtR2Vpc3QgTW9ubyc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LW1vbm8tbGF0aW4ud29mZjIpIGZvcm1hdCgnd29mZjInKTtcXG4gICAgICAgIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LFxcbiAgICAgICAgICBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLFxcbiAgICAgICAgICBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEO1xcbiAgICAgIH1cXG4gICAgXCJdLHR8fCh0PWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKHQpfX0pKSk7cmV0dXJuIGVkPWZ1bmN0aW9uKCl7cmV0dXJuIG59LG59dmFyIGVmPWZ1bmN0aW9uKCl7dmFyIGUsdD0oMCx4LmMpKDEpO3JldHVybiB0WzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9W10sdFswXT1lKTplPXRbMF0sKDAsdy51c2VJbnNlcnRpb25FZmZlY3QpKGVwLGUpLG51bGx9O2Z1bmN0aW9uIGVwKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO3JldHVybiBlLnRleHRDb250ZW50PWV1KGVkKCkpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSksZnVuY3Rpb24oKXtkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGUpfX12YXIgZWg9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9yZWFjdC1kb20vaW5kZXguanNcIik7ZnVuY3Rpb24gZW0oZSl7dmFyIHQsbj0oMCx4LmMpKDMpLHI9ZS5jaGlsZHJlbixvPWRsKCkuc2hhZG93Um9vdDtyZXR1cm4gblswXSE9PXJ8fG5bMV0hPT1vPyh0PSgwLGVoLmNyZWF0ZVBvcnRhbCkocixvKSxuWzBdPXIsblsxXT1vLG5bMl09dCk6dD1uWzJdLHR9ZnVuY3Rpb24gZWcoZSl7aWYoXCJcIj09PWUudHJpbSgpKXRocm93IEVycm9yKFwiY2FuJ3QgZGVjb2RlIGVtcHR5IGhleFwiKTt2YXIgdD1wYXJzZUludChlLDE2KTtpZihpc05hTih0KSl0aHJvdyBFcnJvcihcImludmFsaWQgaGV4OiBgXCIuY29uY2F0KGUsXCJgXCIpKTtyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQodCl9dmFyIGV5PS9eX19UVVJCT1BBQ0tfXyhbYS16QS1aMC05XyRdKylfXyQvLGV2PS9odHRwcz86XFwvXFwvW15cXHMvJC4/I10uW15cXHMpJ1wiXSovaSxlYj1uZXcgUmVnRXhwKFwiKFwiLmNvbmNhdCgvX19UVVJCT1BBQ0tfX1thLXpBLVowLTlfJF0rX18vZy5zb3VyY2UsXCJ8XFxcXHMrKVwiKSksZUE9ZnVuY3Rpb24oZSl7dmFyIHQsbj0oMCx4LmMpKDcpLHI9ZS50ZXh0LG89ZS5tYXRjaGVyO2lmKG5bMF0hPT1vfHxuWzFdIT09cil7dmFyIGEsaSxsPXIuc3BsaXQoZWIpO25bM10hPT1vPyhpPWZ1bmN0aW9uKGUsdCl7aWYoZXYudGVzdChlKSl7dmFyIG49ZXYuZXhlYyhlKVswXTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiBvfHxvKG4pPygwLEEuanN4KSh3LkZyYWdtZW50LHtjaGlsZHJlbjooMCxBLmpzeCkoXCJhXCIse2hyZWY6bix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub3JlZmVycmVyIG5vb3BlbmVyXCIsY2hpbGRyZW46ZX0pfSxcImxpbmstXCIuY29uY2F0KHQpKTplfXRyeXt2YXIgcj1mdW5jdGlvbihlKXt2YXIgdD1lLm1hdGNoKGV5KTtpZighdClyZXR1cm4gZTtmb3IodmFyIG49dFsxXSxyPVwiXCIsbz0wLGE9XCJcIixpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBsPW5baV07aWYoMD09PW8pXCJfXCI9PT1sP289MTpcIiRcIj09PWw/bz0yOnIrPWw7ZWxzZSBpZigxPT09bylcIl9cIj09PWw/KHIrPVwiIFwiLG89MCk6XCIkXCI9PT1sPyhyKz1cIl9cIixvPTIpOihyKz1sLG89MCk7ZWxzZSBpZigyPT09bylpZigyPT09YS5sZW5ndGgmJihyKz1lZyhhKSxhPVwiXCIpLFwiX1wiPT09bCl7aWYoXCJcIiE9PWEpdGhyb3cgRXJyb3IoXCJpbnZhbGlkIGhleDogYFwiLmNvbmNhdChhLFwiYFwiKSk7bz0zfWVsc2UgaWYoXCIkXCI9PT1sKXtpZihcIlwiIT09YSl0aHJvdyBFcnJvcihcImludmFsaWQgaGV4OiBgXCIuY29uY2F0KGEsXCJgXCIpKTtvPTB9ZWxzZSBhKz1sO2Vsc2UgaWYoMz09PW8paWYoXCJfXCI9PT1sKXRocm93IEVycm9yKFwiaW52YWxpZCBoZXg6IGBcIi5jb25jYXQoYStsLFwiYFwiKSk7ZWxzZVwiJFwiPT09bD8ocis9ZWcoYSksYT1cIlwiLG89MCk6YSs9bH1yZXR1cm4gcn0oZSk7aWYociE9PWUpcmV0dXJuKDAsQS5qc3hzKShcImlcIix7Y2hpbGRyZW46W1wie1wiLHIsXCJ9XCJdfSxcImlkZW50LVwiLmNvbmNhdCh0KSl9Y2F0Y2gobil7cmV0dXJuKDAsQS5qc3hzKShcImlcIix7Y2hpbGRyZW46W1wie1wiLGUsXCIgKGRlY29kaW5nIGZhaWxlZDogXCIsXCJcIituLFwiKVwiLFwifVwiXX0sXCJpZGVudC1cIi5jb25jYXQodCkpfXJldHVybigwLEEuanN4KSh3LkZyYWdtZW50LHtjaGlsZHJlbjplfSxcInRleHQtXCIuY29uY2F0KHQpKX0sblszXT1vLG5bNF09aSk6aT1uWzRdLGE9bC5tYXAoaSksblswXT1vLG5bMV09cixuWzJdPWF9ZWxzZSBhPW5bMl07cmV0dXJuIG5bNV0hPT1hPyh0PSgwLEEuanN4KShBLkZyYWdtZW50LHtjaGlsZHJlbjphfSksbls1XT1hLG5bNl09dCk6dD1uWzZdLHR9LGV4PVsvXndlYnBhY2staW50ZXJuYWw6XFwvXFwvXFwvKFxcKFtcXHctXStcXClcXC8pPy8sL14od2VicGFjazpcXC9cXC9cXC98d2VicGFjazpcXC9cXC8oX05fRVxcLyk/KShcXChbXFx3LV0rXFwpXFwvKT8vXTtmdW5jdGlvbiBldyhlKXt2YXIgdD0hMCxuPSExLHI9dm9pZCAwO3RyeXtmb3IodmFyIG8sYT1leFtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShvPWEubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgaT1vLnZhbHVlO2lmKGkudGVzdChlKSlyZXR1cm4hMDtlPWUucmVwbGFjZShpLFwiXCIpfX1jYXRjaChlKXtuPSEwLHI9ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgcn19cmV0dXJuITF9ZnVuY3Rpb24gZUMoZSl7dmFyIHQ9ITAsbj0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGE9ZXhbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0obz1hLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIGk9by52YWx1ZTtlPWUucmVwbGFjZShpLFwiXCIpfX1jYXRjaChlKXtuPSEwLHI9ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgcn19cmV0dXJuIGV9ZnVuY3Rpb24gZV8oZSx0LG4scixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe24oZSk7cmV0dXJufWwuZG9uZT90KHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gZWsoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1lLmFwcGx5KHQsbik7ZnVuY3Rpb24gaShlKXtlXyhhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtlXyhhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfX1mdW5jdGlvbiBlRShlLHQpe3ZhciBuLHIsbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119LGk9T2JqZWN0LmNyZWF0ZSgoXCJmdW5jdGlvblwiPT10eXBlb2YgSXRlcmF0b3I/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBpLm5leHQ9bCgwKSxpLnRocm93PWwoMSksaS5yZXR1cm49bCgyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gbChsKXtyZXR1cm4gZnVuY3Rpb24ocyl7dmFyIGM9W2wsc107aWYobil0aHJvdyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7aSYmKGk9MCxjWzBdJiYoYT0wKSksYTspdHJ5e2lmKG49MSxyJiYobz0yJmNbMF0/ci5yZXR1cm46Y1swXT9yLnRocm93fHwoKG89ci5yZXR1cm4pJiZvLmNhbGwociksMCk6ci5uZXh0KSYmIShvPW8uY2FsbChyLGNbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChyPTAsbyYmKGM9WzImY1swXSxvLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpvPWM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPShvPWEudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoNj09PWNbMF18fDI9PT1jWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1jWzBdJiYoIW98fGNbMV0+b1swXSYmY1sxXTxvWzNdKSl7YS5sYWJlbD1jWzFdO2JyZWFrfWlmKDY9PT1jWzBdJiZhLmxhYmVsPG9bMV0pe2EubGFiZWw9b1sxXSxvPWM7YnJlYWt9aWYobyYmYS5sYWJlbDxvWzJdKXthLmxhYmVsPW9bMl0sYS5vcHMucHVzaChjKTticmVha31vWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9Yz10LmNhbGwoZSxhKX1jYXRjaChlKXtjPVs2LGVdLHI9MH1maW5hbGx5e249bz0wfWlmKDUmY1swXSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX19ZnVuY3Rpb24gZWooZSx0KXt2YXIgbjtyZXR1cm5cImZpbGU6Ly9cIj09PWUuZmlsZXx8KG51bGw9PShuPWUuZmlsZSk/dm9pZCAwOm4ubWF0Y2goL2h0dHBzPzpcXC9cXC8vKSk/UHJvbWlzZS5yZXNvbHZlKHtlcnJvcjohMSxyZWFzb246bnVsbCxleHRlcm5hbDohMCxzb3VyY2VTdGFja0ZyYW1lOmUsb3JpZ2luYWxTdGFja0ZyYW1lOm51bGwsb3JpZ2luYWxDb2RlRnJhbWU6bnVsbCxpZ25vcmVkOiEwfSk6ZWsoZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBlRSh0aGlzLGZ1bmN0aW9uKG8pe2lmKFwicmVqZWN0ZWRcIj09PXQuc3RhdHVzKXRocm93IEVycm9yKHQucmVhc29uKTtyZXR1cm5bMix7ZXJyb3I6ITEscmVhc29uOm51bGwsZXh0ZXJuYWw6ITEsc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZToocj10LnZhbHVlKS5vcmlnaW5hbFN0YWNrRnJhbWUsb3JpZ2luYWxDb2RlRnJhbWU6ci5vcmlnaW5hbENvZGVGcmFtZXx8bnVsbCxpZ25vcmVkOihudWxsPT0obj1yLm9yaWdpbmFsU3RhY2tGcmFtZSk/dm9pZCAwOm4uaWdub3JlZCl8fCExfV19KX0pKCkuY2F0Y2goZnVuY3Rpb24odCl7dmFyIG4scjtyZXR1cm57ZXJyb3I6ITAscmVhc29uOm51bGwhPShyPW51bGwhPShuPW51bGw9PXQ/dm9pZCAwOnQubWVzc2FnZSk/bjpudWxsPT10P3ZvaWQgMDp0LnRvU3RyaW5nKCkpP3I6XCJVbmtub3duIEVycm9yXCIsZXh0ZXJuYWw6ITEsc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZTpudWxsLG9yaWdpbmFsQ29kZUZyYW1lOm51bGwsaWdub3JlZDohMX19KX1mdW5jdGlvbiBlUyhlLHQsbil7cmV0dXJuIGVrKGZ1bmN0aW9uKCl7dmFyIHIsbyxhLGk7cmV0dXJuIGVFKHRoaXMsZnVuY3Rpb24obCl7c3dpdGNoKGwubGFiZWwpe2Nhc2UgMDpyPXtmcmFtZXM6ZSxpc1NlcnZlcjpcInNlcnZlclwiPT09dCxpc0VkZ2VTZXJ2ZXI6XCJlZGdlLXNlcnZlclwiPT09dCxpc0FwcERpcmVjdG9yeTpufSxvPXZvaWQgMCxhPXZvaWQgMCxsLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBsLnRyeXMucHVzaChbMSwzLCw0XSksWzQsZmV0Y2goXCIvX19uZXh0anNfb3JpZ2luYWwtc3RhY2stZnJhbWVzXCIse21ldGhvZDpcIlBPU1RcIixib2R5OkpTT04uc3RyaW5naWZ5KHIpfSldO2Nhc2UgMjpyZXR1cm4gbz1sLnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGE9bC5zZW50KCkrXCJcIixbMyw0XTtjYXNlIDQ6aWYoIShvJiZvLm9rJiYyMDQhPT1vLnN0YXR1cykpcmV0dXJuWzMsNl07cmV0dXJuWzQsby5qc29uKCldO2Nhc2UgNTpyZXR1cm4gaT1sLnNlbnQoKSxbMixQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihlLHQpe3JldHVybiBlaihlLGlbdF0pfSkpXTtjYXNlIDY6aWYoIW8pcmV0dXJuWzMsOF07cmV0dXJuWzQsby50ZXh0KCldO2Nhc2UgNzphPWwuc2VudCgpLGwubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzIsUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVqKGUse3N0YXR1czpcInJlamVjdGVkXCIscmVhc29uOlwiRmFpbGVkIHRvIGZldGNoIHRoZSBvcmlnaW5hbCBzdGFjayBmcmFtZXMgXCIuY29uY2F0KGE/XCI6IFwiLmNvbmNhdChhKTpcIlwiKX0pfSkpXX19KX0pKCl9ZnVuY3Rpb24gZU8oZSl7aWYoIWUuZmlsZSlyZXR1cm5cIlwiO3ZhciB0PWV3KGUuZmlsZSksbj1cIlwiO2lmKHQpbj1lQyhlLmZpbGUpO2Vsc2UgdHJ5e3ZhciByLG89bmV3IFVSTChlLmZpbGUpLGE9XCJcIjsobnVsbD09KHI9Z2xvYmFsVGhpcy5sb2NhdGlvbik/dm9pZCAwOnIub3JpZ2luKSE9PW8ub3JpZ2luJiYoXCJudWxsXCI9PT1vLm9yaWdpbj9hKz1vLnByb3RvY29sOmErPW8ub3JpZ2luKSxhKz1vLnBhdGhuYW1lLG49ZUMoYSl9Y2F0Y2godCl7bj1lQyhlLmZpbGUpfXJldHVybiFldyhlLmZpbGUpJiZudWxsIT1lLmxpbmUxJiZuJiZcIjxhbm9ueW1vdXM+XCIhPT1lLmZpbGUmJihudWxsIT1lLmNvbHVtbjE/bis9XCIgKFwiLmNvbmNhdChlLmxpbmUxLFwiOlwiKS5jb25jYXQoZS5jb2x1bW4xLFwiKVwiKTpuKz1cIiAoXCIuY29uY2F0KGUubGluZTEsXCIpXCIpKSxufWZ1bmN0aW9uIGVCKGUpe3ZhciB0LG4scj0oMCx4LmMpKDYpO3JbMF0hPT1lPyh0PXZvaWQgMD09PWU/e306ZSxyWzBdPWUsclsxXT10KTp0PXJbMV07dmFyIG89dC5maWxlLGE9dC5saW5lMSxpPXQuY29sdW1uMTtyZXR1cm4gclsyXSE9PWl8fHJbM10hPT1vfHxyWzRdIT09YT8obj1mdW5jdGlvbigpe2lmKG51bGwhPW8mJm51bGwhPWEmJm51bGwhPWkpe3ZhciBlPW5ldyBVUkxTZWFyY2hQYXJhbXM7ZS5hcHBlbmQoXCJmaWxlXCIsbyksZS5hcHBlbmQoXCJsaW5lMVwiLFN0cmluZyhhKSksZS5hcHBlbmQoXCJjb2x1bW4xXCIsU3RyaW5nKGkpKSxzZWxmLmZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfbGF1bmNoLWVkaXRvcj9cIikuY29uY2F0KGUudG9TdHJpbmcoKSkpLnRoZW4oZVAsZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcignRmFpbGVkIHRvIG9wZW4gZmlsZSBcIicuY29uY2F0KG8sXCIgKFwiKS5jb25jYXQoYSxcIjpcIikuY29uY2F0KGksJylcIiBpbiB5b3VyIGVkaXRvci4gQ2F1c2U6JyksZSl9KX19LHJbMl09aSxyWzNdPW8scls0XT1hLHJbNV09bik6bj1yWzVdLG59ZnVuY3Rpb24gZVAoKXt9ZnVuY3Rpb24gZUkoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIGVUKGUsdCl7cmV0dXJuIHQ9bnVsbCE9dD90Ont9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbikpfSksZX1mdW5jdGlvbiBleihlKXt2YXIgdCxuLHI9KDAseC5jKSgzKTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLGQ6XCJNMTEuNSA5Ljc1VjExLjI1QzExLjUgMTEuMzg4MSAxMS4zODgxIDExLjUgMTEuMjUgMTEuNUg0Ljc1QzQuNjExOTMgMTEuNSA0LjUgMTEuMzg4MSA0LjUgMTEuMjVMNC41IDQuNzVDNC41IDQuNjExOTMgNC42MTE5MyA0LjUgNC43NSA0LjVINi4yNUg3VjNINi4yNUg0Ljc1QzMuNzgzNSAzIDMgMy43ODM1IDMgNC43NVYxMS4yNUMzIDEyLjIxNjUgMy43ODM1IDEzIDQuNzUgMTNIMTEuMjVDMTIuMjE2NSAxMyAxMyAxMi4yMTY1IDEzIDExLjI1VjkuNzVWOUgxMS41VjkuNzVaTTguNSAzSDkuMjVIMTIuMjQ5NUMxMi42NjM3IDMgMTIuOTk5NSAzLjMzNTc5IDEyLjk5OTUgMy43NVY2Ljc1VjcuNUgxMS40OTk1VjYuNzVWNS41NjA2Nkw4LjUzMDMzIDguNTI5NzhMOCA5LjA2MDExTDYuOTM5MzQgNy45OTk0NUw3LjQ2OTY3IDcuNDY5MTJMMTAuNDM4OCA0LjVIOS4yNUg4LjVWM1pcIn0pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1lPyhuPSgwLEEuanN4KShcInN2Z1wiLGVUKGVJKHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCJ9LGUpLHtjaGlsZHJlbjp0fSkpLHJbMV09ZSxyWzJdPW4pOm49clsyXSxufWZ1bmN0aW9uIGVEKGUpe3ZhciB0LG4scj0oMCx4LmMpKDMpO3JldHVybiByWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsQS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTguNTU4NDYgMkg3LjQ0MTQ4TDEuODg5NzUgMTMuNUgxNC4xMTAyTDguNTU4NDYgMlpNOS45MDkyOSAxLjM0Nzg4QzkuNjU5MDIgMC44Mjk0NTYgOS4xMzQxMyAwLjUgOC41NTg0NiAwLjVINy40NDE0OEM2Ljg2NTgxIDAuNSA2LjM0MDkyIDAuODI5NDU0IDYuMDkwNjUgMS4zNDc4N0wwLjE5MjYwOCAxMy41NjUzQy0wLjEyNzk0MyAxNC4yMjkzIDAuMzU1ODM1IDE1IDEuMDkzMTYgMTVIMTQuOTA2OEMxNS42NDQxIDE1IDE2LjEyNzkgMTQuMjI5MyAxNS44MDczIDEzLjU2NTNMOS45MDkyOSAxLjM0Nzg4Wk04Ljc0OTk3IDQuNzVWNS41VjhWOC43NUg3LjI0OTk3VjhWNS41VjQuNzVIOC43NDk5N1pNNy45OTk5NyAxMkM4LjU1MjI2IDEyIDguOTk5OTcgMTEuNTUyMyA4Ljk5OTk3IDExQzguOTk5OTcgMTAuNDQ3NyA4LjU1MjI2IDEwIDcuOTk5OTcgMTBDNy40NDc2OSAxMCA2Ljk5OTk3IDEwLjQ0NzcgNi45OTk5NyAxMUM2Ljk5OTk3IDExLjU1MjMgNy40NDc2OSAxMiA3Ljk5OTk3IDEyWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1lPyhuPSgwLEEuanN4KShcInN2Z1wiLGVUKGVJKHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsaGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIi00IC00IDI0IDI0XCIsd2lkdGg6XCIxNlwifSxlKSx7Y2hpbGRyZW46dH0pKSxyWzFdPWUsclsyXT1uKTpuPXJbMl0sbn1mdW5jdGlvbiBlTChlKXt2YXIgdCxuLHIsbyxhLGksbD0oMCx4LmMpKDYpLHM9ZS5sYW5nO2lmKCFzKXJldHVybiBsWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsQS5qc3gpKGVaLHt9KSxsWzBdPXQpOnQ9bFswXSx0O3N3aXRjaChzLnRvTG93ZXJDYXNlKCkpe2Nhc2VcImpzeFwiOmNhc2VcInRzeFwiOnJldHVybiBsWzFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG49KDAsQS5qc3gpKGVVLHt9KSxsWzFdPW4pOm49bFsxXSxuO2Nhc2VcInRzXCI6Y2FzZVwidHlwZXNjcmlwdFwiOnJldHVybiBsWzJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9KDAsQS5qc3gpKGVNLHt9KSxsWzJdPXIpOnI9bFsyXSxyO2Nhc2VcImphdmFzY3JpcHRcIjpjYXNlXCJqc1wiOmNhc2VcIm1qc1wiOnJldHVybiBsWzNdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG89KDAsQS5qc3gpKGVSLHt9KSxsWzNdPW8pOm89bFszXSxvO2Nhc2VcImpzb25cIjpyZXR1cm4gbFs0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhhPSgwLEEuanN4KShlTix7fSksbFs0XT1hKTphPWxbNF0sYTtkZWZhdWx0OnJldHVybiBsWzVdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGk9KDAsQS5qc3gpKGVaLHt9KSxsWzVdPWkpOmk9bFs1XSxpfX1mdW5jdGlvbiBlTigpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcInN2Z1wiLHtjbGlwUnVsZTpcImV2ZW5vZGRcIixmaWxsUnVsZTpcImV2ZW5vZGRcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTMyMS40NSAxMzMzLjMzXCIsd2lkdGg6XCIxNlwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZDpcIk0yMjEuMzcgNjE4LjQ0aDc1Ny45NFY0MDUuMTVINzU1LjE0Yy0yMy41IDAtNTYuMzItMTIuNzQtNzEuODItMjguMjQtMTUuNS0xNS41LTI1LTQzLjQ3LTI1LTY2Ljk3VjgyLjg5SDg4LjM5Yy0xLjk5IDAtMy40OSAxLTQuNDkgMi0xLjUgMS0yIDIuNS0yIDQuNXYxMTU1LjA0YzAgMS41IDEgMy41IDIgNC41IDEgMS40OSAzIDEuOTkgNC40OSAxLjk5SDk3Mi44YzIgMCAxLjg5LS45OSAyLjg5LTEuOTkgMS41LTEgMy42MS0zIDMuNjEtNC41di0xMjEuMDlIMjIxLjM2Yy00NC45NiAwLTgyLTM2LjktODItODEuOTlWNzAwLjQ0YzAtNDUuMSAzNi45LTgyIDgyLTgyem0xMjYuNTEgMTE3LjQ3aDc1LjI0djE0Ni42MWMwIDMwLjc5LTIuNDQgNTQuMjMtNy4zMyA3MC4zMS00LjkyIDE2LjAzLTE0LjggMjkuNjctMjkuNjUgNDAuODUtMTQuODYgMTEuMTItMzMuOTEgMTYuNzItNTcuMDUgMTYuNzItMjQuNTMgMC00My41MS0zLjcxLTU2Ljk0LTExLjA2LTEzLjUtNy4zNi0yMy44OS0xOC4xLTMxLjIzLTMyLjMtNy4zNS0xNC4xNC0xMS42OS0zMS42Ny0xMi45OS01Mi41M2w3MS41LTEwLjgxYy4xMSAxMS44MSAxLjA3IDIwLjYxIDIuODEgMjYuMzMgMS43NiA1Ljc4IDQuNzUgMTAuMzcgOSAxMy45NSAyLjg3IDIuMzMgNi45NCAzLjQ2IDEyLjI1IDMuNDYgOC40IDAgMTQuNTgtMy40NiAxOC41My0xMC4zNyAzLjktNi45MiA1Ljg3LTE4LjYgNS44Ny0zNVY3MzUuOTJ6bTExMi43NyAxODAuNjdsNzEuMTctNC45N2MxLjU0IDEyLjgxIDQuNjkgMjIuNjIgOS40NCAyOS4yOCA3Ljc0IDEwLjg4IDE4Ljc0IDE2LjM0IDMzLjA5IDE2LjM0IDEwLjY4IDAgMTguOTMtMi43NiAyNC42OC04LjM2IDUuODEtNS41OCA4LjctMTIuMDcgOC43LTE5LjQxIDAtNi45Ny0yLjcxLTEzLjI2LTguMi0xOC43OS01LjQ3LTUuNTMtMTguMjMtMTAuNjgtMzguMjgtMTUuNjUtMzIuODktOC4xNy01Ni4yNy0xOS4xLTcwLjI2LTMyLjc0LTE0LjEyLTEzLjU3LTIxLjE4LTMwLjkyLTIxLjE4LTUyLjAzIDAtMTMuODMgMy42MS0yNi44OSAxMC44NS0zOS4yMSA3LjIyLTEyLjM4IDE4LjA3LTIyLjA2IDMyLjU5LTI5LjA5IDE0LjUyLTcuMDQgMzQuNC0xMC41NiA1OS42NS0xMC41NiAzMSAwIDU0LjYyIDYuNDEgNzAuODggMTkuMjkgMTYuMjggMTIuODEgMjUuOTIgMzMuMjQgMjkuMDQgNjEuMjdsLTcwLjUgNC42NWMtMS44Ny0xMi4yNS01LjgxLTIxLjE3LTExLjgxLTI2LjctNi4wNS01LjYtMTQuMzUtOC4zNi0yNC45LTguMzYtOC43MSAwLTE1LjMxIDIuMDctMTkuNzMgNi4xNi00LjQgNC4wOS02LjU5IDkuMTItNi41OSAxNS4wMiAwIDQuMjcgMS44MSA4LjExIDUuMzcgMTEuNTcgMy40NSAzLjU5IDExLjggNi44NSAyNS4wMiA5LjkzIDMyLjc1IDcuODYgNTYuMiAxNS44NCA3MC4zMSAyMy44NyAxNC4xOCA4LjA1IDI0LjUyIDE3Ljk4IDMwLjk2IDI5LjkyIDYuNDQgMTEuODggOS42NiAyNS4yIDkuNjYgMzkuOTYgMCAxNy4yOS00LjMgMzMuMjQtMTIuODggNDcuODktOC42MyAxNC41OC0yMC42MSAyNS43LTM2LjA4IDMzLjI0LTE1LjQxIDcuNTQtMzQuODUgMTEuMzEtNTguMzMgMTEuMzEtNDEuMjQgMC02OS44MS04Ljg2LTg1LjY4LTI2LjUyLTE1Ljg4LTE3LjY1LTI0Ljg1LTQwLjA5LTI2Ljk2LTY3LjN6bTI0OC43NC00NS41YzAtNDQuMDUgMTEuMDItNzguMzYgMzMuMDktMTAyLjg3IDIyLjA5LTI0LjU3IDUyLjgyLTM2LjgyIDkyLjI0LTM2LjgyIDQwLjM4IDAgNzEuNSAxMi4wNyA5My4zNCAzNi4xMyAyMS44NiAyNC4xMyAzMi43NyA1Ny45NCAzMi43NyAxMDEuMzcgMCAzMS41NC00Ljc1IDU3LjM2LTE0LjMgNzcuNTQtOS41NCAyMC4xOC0yMy4zNyAzNS44OS00MS40IDQ3LjEzLTE4LjA3IDExLjI0LTQwLjU1IDE2Ljg0LTY3LjQ4IDE2Ljg0LTI3LjMzIDAtNDkuOTktNC44My02Ny45NC0xNC41Mi0xNy45Mi05Ljc0LTMyLjQ5LTI1LjA3LTQzLjYyLTQ2LjA2LTExLjEzLTIwLjkyLTE2LjcyLTQ3LjE5LTE2LjcyLTc4Ljc0em03NC44OS4xOWMwIDI3LjIxIDQuNTcgNDYuODEgMTMuNjggNTguNjggOS4xMyAxMS44OCAyMS41NyAxNy44NSAzNy4yNiAxNy44NSAxNi4xIDAgMjguNjUtNS44NCAzNy40NS0xNy40NyA4Ljg3LTExLjY4IDEzLjI4LTMyLjU0IDEzLjI4LTYyLjc3IDAtMjUuMzktNC42My00My45Mi0xMy44NC01NS42MS05LjI2LTExLjc2LTIxLjc1LTE3LjYtMzcuNTYtMTcuNi0xNS4xMyAwLTI3LjM0IDUuOTctMzYuNDkgMTcuODUtOS4yMSAxMS44OC0xMy43OCAzMS42MS0xMy43OCA1OS4wN3ptMjA5LjA4LTEzNS4zNmg2OS45OWw5MC45OCAxNDkuMDVWNzM1LjkxaDcwLjgzdjI2OS45NmgtNzAuODNsLTkwLjQ4LTE0OC4yNHYxNDguMjRoLTcwLjQ5VjczNS45MXptNjcuNzEtMTE3LjQ3aDE3OC4zN2M0NS4xIDAgODIgMzcuMDQgODIgODJ2MzQwLjkxYzAgNDQuOTYtMzcuMDMgODEuOTktODIgODEuOTloLTE3OC4zN3YxNDdjMCAxNy41LTYuOTkgMzIuOTktMTguNSA0NC41LTExLjUgMTEuNDktMjcgMTguNS00NC41IDE4LjVINjIuOTdjLTE3LjUgMC0zMi45OS03LTQ0LjUtMTguNS0xMS40OS0xMS41LTE4LjUtMjctMTguNS00NC41VjYzLjQ5YzAtMTcuNSA3LTMzIDE4LjUtNDQuNVM0NS45Ny40OSA2Mi45Ny40OUg3MDAuMWMxLjUtLjUgMy0uNSA0LjUtLjUgNyAwIDE0IDMgMTkgNy40OWgxYzEgLjUgMS41IDEgMi41IDJsMzI1LjQ2IDMyOS40N2M1LjUgNS41IDkuNSAxMyA5LjUgMjEuNSAwIDIuNS0uNSA0LjUtMSA3djI1MC45OHpNNzMyLjYxIDMwMy40N1Y5Ni45OWwyMzIuNDggMjM1LjQ3SDc2MS42Yy03Ljk5IDAtMTQuOTktMy41LTIwLjUtOC40OS00Ljk5LTUtOC40OS0xMi41LTguNDktMjAuNXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gZVIoKXt2YXIgZSx0PSgwLHguYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDUwIDUwXCIsd2lkdGg6XCIxNlwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNIDQzLjMzNTkzOCA0IEwgNi42Njc5NjkgNCBDIDUuMTk1MzEzIDQgNCA1LjE5NTMxMyA0IDYuNjY3OTY5IEwgNCA0My4zMzIwMzEgQyA0IDQ0LjgwNDY4OCA1LjE5NTMxMyA0NiA2LjY2Nzk2OSA0NiBMIDQzLjMzMjAzMSA0NiBDIDQ0LjgwNDY4OCA0NiA0NiA0NC44MDQ2ODggNDYgNDMuMzM1OTM4IEwgNDYgNi42Njc5NjkgQyA0NiA1LjE5NTMxMyA0NC44MDQ2ODggNCA0My4zMzU5MzggNCBaIE0gMjcgMzYuMTgzNTk0IEMgMjcgNDAuMTc5Njg4IDI0LjY1NjI1IDQyIDIxLjIzNDM3NSA0MiBDIDE4LjE0MDYyNSA0MiAxNS45MTAxNTYgMzkuOTI1NzgxIDE1IDM4IEwgMTguMTQ0NTMxIDM2LjA5NzY1NiBDIDE4Ljc1IDM3LjE3MTg3NSAxOS42NzE4NzUgMzggMjEgMzggQyAyMi4yNjk1MzEgMzggMjMgMzcuNTAzOTA2IDIzIDM1LjU3NDIxOSBMIDIzIDIzIEwgMjcgMjMgWiBNIDM1LjY3NTc4MSA0MiBDIDMyLjEzMjgxMyA0MiAzMC4xMjEwOTQgNDAuMjE0ODQ0IDI5IDM4IEwgMzIgMzYgQyAzMi44MTY0MDYgMzcuMzM1OTM4IDMzLjcwNzAzMSAzOC42MTMyODEgMzUuNTg5ODQ0IDM4LjYxMzI4MSBDIDM3LjE3MTg3NSAzOC42MTMyODEgMzggMzcuODI0MjE5IDM4IDM2LjczMDQ2OSBDIDM4IDM1LjQyNTc4MSAzNy4xNDA2MjUgMzQuOTYwOTM4IDM1LjQwMjM0NCAzNC4xOTkyMTkgTCAzNC40NDkyMTkgMzMuNzg5MDYzIEMgMzEuNjk1MzEzIDMyLjYxNzE4OCAyOS44NjMyODEgMzEuMTQ4NDM4IDI5Ljg2MzI4MSAyOC4wMzkwNjMgQyAyOS44NjMyODEgMjUuMTc5Njg4IDMyLjA0Njg3NSAyMyAzNS40NTMxMjUgMjMgQyAzNy44Nzg5MDYgMjMgMzkuNjIxMDk0IDIzLjg0Mzc1IDQwLjg3ODkwNiAyNi4wNTQ2ODggTCAzNy45MTAxNTYgMjcuOTY0ODQ0IEMgMzcuMjUzOTA2IDI2Ljc4OTA2MyAzNi41NTA3ODEgMjYuMzI4MTI1IDM1LjQ1MzEyNSAyNi4zMjgxMjUgQyAzNC4zMzU5MzggMjYuMzI4MTI1IDMzLjYyODkwNiAyNy4wMzkwNjMgMzMuNjI4OTA2IDI3Ljk2NDg0NCBDIDMzLjYyODkwNiAyOS4xMDkzNzUgMzQuMzM1OTM4IDI5LjU3MDMxMyAzNS45NzI2NTYgMzAuMjgxMjUgTCAzNi45MjU3ODEgMzAuNjkxNDA2IEMgNDAuMTcxODc1IDMyLjA3ODEyNSA0MiAzMy40OTYwOTQgNDIgMzYuNjgzNTk0IEMgNDIgNDAuMTE3MTg4IDM5LjMwMDc4MSA0MiAzNS42NzU3ODEgNDIgWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiBlTSgpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4cykoXCJzdmdcIix7ZmlsbDpcIm5vbmVcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgNTEyIDUxMlwiLHdpZHRoOlwiMTRcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46WygwLEEuanN4KShcInJlY3RcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGhlaWdodDpcIjUxMlwiLHJ4OlwiNTBcIix3aWR0aDpcIjUxMlwifSksKDAsQS5qc3gpKFwicmVjdFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsaGVpZ2h0OlwiNTEyXCIscng6XCI1MFwiLHdpZHRoOlwiNTEyXCJ9KSwoMCxBLmpzeCkoXCJwYXRoXCIse2NsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJtMzE2LjkzOSA0MDcuNDI0djUwLjA2MWM4LjEzOCA0LjE3MiAxNy43NjMgNy4zIDI4Ljg3NSA5LjM4NnMyMi44MjMgMy4xMjkgMzUuMTM1IDMuMTI5YzExLjk5OSAwIDIzLjM5Ny0xLjE0NyAzNC4xOTYtMy40NDIgMTAuNzk5LTIuMjk0IDIwLjI2OC02LjA3NSAyOC40MDYtMTEuMzQyIDguMTM4LTUuMjY2IDE0LjU4MS0xMi4xNSAxOS4zMjgtMjAuNjVzNy4xMjEtMTkuMDA3IDcuMTIxLTMxLjUyMmMwLTkuMDc0LTEuMzU2LTE3LjAyNi00LjA2OS0yMy44NTdzLTYuNjI1LTEyLjkwNi0xMS43MzgtMTguMjI1Yy01LjExMi01LjMxOS0xMS4yNDItMTAuMDkxLTE4LjM4OS0xNC4zMTVzLTE1LjIwNy04LjIxMy0yNC4xOC0xMS45NjdjLTYuNTczLTIuNzEyLTEyLjQ2OC01LjM0NS0xNy42ODUtNy45LTUuMjE3LTIuNTU2LTkuNjUxLTUuMTYzLTEzLjMwMy03LjgyMi0zLjY1Mi0yLjY2LTYuNDY5LTUuNDc2LTguNDUxLTguNDQ4LTEuOTgyLTIuOTczLTIuOTc0LTYuMzM2LTIuOTc0LTEwLjA5MSAwLTMuNDQxLjg4Ny02LjU0NCAyLjY2MS05LjMwOHM0LjI3OC01LjEzNiA3LjUxMi03LjExOGMzLjIzNS0xLjk4MSA3LjE5OS0zLjUyIDExLjg5NC00LjYxNSA0LjY5Ni0xLjA5NSA5LjkxMi0xLjY0MiAxNS42NTEtMS42NDIgNC4xNzMgMCA4LjU4MS4zMTMgMTMuMjI0LjkzOCA0LjY0My42MjYgOS4zMTIgMS41OTEgMTQuMDA4IDIuODk0IDQuNjk1IDEuMzA0IDkuMjU5IDIuOTQ3IDEzLjY5NCA0LjkyOCA0LjQzNCAxLjk4MiA4LjUyOSA0LjI3NiAxMi4yODUgNi44ODR2LTQ2Ljc3NmMtNy42MTYtMi45Mi0xNS45MzctNS4wODQtMjQuOTYyLTYuNDkycy0xOS4zODEtMi4xMTItMzEuMDY2LTIuMTEyYy0xMS44OTUgMC0yMy4xNjMgMS4yNzgtMzMuODA1IDMuODMzcy0yMC4wMDYgNi41NDQtMjguMDkzIDExLjk2N2MtOC4wODYgNS40MjQtMTQuNDc2IDEyLjMzMy0xOS4xNzEgMjAuNzI5LTQuNjk1IDguMzk1LTcuMDQzIDE4LjQzMy03LjA0MyAzMC4xMTQgMCAxNC45MTQgNC4zMDQgMjcuNjM4IDEyLjkxMiAzOC4xNzIgOC42MDcgMTAuNTMzIDIxLjY3NSAxOS40NSAzOS4yMDQgMjYuNzUxIDYuODg2IDIuODE2IDEzLjMwMyA1LjU3OSAxOS4yNSA4LjI5MXMxMS4wODYgNS41MjggMTUuNDE1IDguNDQ4YzQuMzMgMi45MiA3Ljc0NyA2LjEwMSAxMC4yNTIgOS41NDMgMi41MDQgMy40NDEgMy43NTYgNy4zNTIgMy43NTYgMTEuNzMzIDAgMy4yMzMtLjc4MyA2LjIzMS0yLjM0OCA4Ljk5NXMtMy45MzkgNS4xNjItNy4xMjEgNy4xOTYtNy4xNDcgMy42MjQtMTEuODk0IDQuNzcxYy00Ljc0OCAxLjE0OC0xMC4zMDMgMS43MjEtMTYuNjY4IDEuNzIxLTEwLjg1MSAwLTIxLjU5Ny0xLjkwMy0zMi4yNC01LjcxLTEwLjY0Mi0zLjgwNi0yMC41MDItOS41MTYtMjkuNTc5LTE3LjEzem0tODQuMTU5LTEyMy4zNDJoNjQuMjJ2LTQxLjA4MmgtMTc5djQxLjA4Mmg2My45MDZ2MTgyLjkxOGg1MC44NzR6XCIsZmlsbDpcInZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKVwiLGZpbGxSdWxlOlwiZXZlbm9kZFwifSldfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiBlWigpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTdcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTQuNSA3djdhMi41IDIuNSAwIDAgMS0yLjUgMi41SDRBMi41IDIuNSAwIDAgMSAxLjUgMTRWLjVoNy41ODZhMSAxIDAgMCAxIC43MDcuMjkzbDQuNDE0IDQuNDE0YTEgMSAwIDAgMSAuMjkzLjcwN1Y3ek0xMyA3djdhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmg1djVoNXpNOS41IDIuNjIxVjUuNWgyLjg3OUw5LjUgMi42MjF6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSx0WzBdPWUpOmU9dFswXSxlfWZ1bmN0aW9uIGVVKCl7dmFyIGUsdCxuPSgwLHguYykoMik7cmV0dXJuIG5bMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJnXCIse2NsaXBQYXRoOlwidXJsKCNmaWxlX3JlYWN0X2NsaXAwXzg3Ml8zMTgzKVwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk00LjUgMS45Mzc4MkM0LjcwMTI5IDEuODIxNjEgNC45OTQ3MiAxLjc4NTggNS40MTMxNSAxLjkxMDUzQzUuODMyOTggMi4wMzU2NyA2LjMzMTM5IDIuMzEwNzMgNi44NzYyNyAyLjczOTQ4QzcuMDExMzYgMi44NDU3OCA3LjE0ODAzIDIuOTYwNTIgNy4yODU3MyAzLjA4MzMxQzYuODYyMTcgMy41MzQ0NiA2LjQ0MjM5IDQuMDQzNTggNi4wMzc1MiA0LjYwMDkyQzUuMzUyNDMgNC42NzI4OCA0LjcwMTY0IDQuNzgxODYgNC4wOTkxNiA0LjkyMzA5QzQuMDYxNjcgNC43NDI0NCA0LjAzMDY0IDQuNTY2NzEgNC4wMDYxMiA0LjM5NjU2QzMuOTA3MjUgMy43MTAzMSAzLjkxODI1IDMuMTQxMTQgNC4wMTk3OSAyLjcxNDk5QzQuMTIwOTkgMi4yOTAyNSA0LjI5ODcxIDIuMDU0MDQgNC41IDEuOTM3ODJaTTcuNDk0NjYgMS45NTM2MUM3LjY2MjI1IDIuMDg1NDggNy44MzA5MiAyLjIyODA0IDcuOTk5OTkgMi4zODA2N0M4LjE2OTA2IDIuMjI4MDQgOC4zMzc3MyAyLjA4NTQ4IDguNTA1MzIgMS45NTM2MUM5LjEwOTIxIDEuNDc4NDIgOS43MTk4MiAxLjEyNTQ5IDEwLjMwMTIgMC45NTIyMDJDMTAuODgzOSAwLjc3ODQ5NiAxMS40ODM4IDAuNzczOCAxMiAxLjA3MThDMTIuNTE2MSAxLjM2OTggMTIuODEyIDEuODkxNjkgMTIuOTUzIDIuNDgzMjJDMTMuMDkzNiAzLjA3MzMzIDEzLjA5MzIgMy43Nzg1OCAxMi45ODM2IDQuNTM5MTdDMTIuOTUzMiA0Ljc1MDI0IDEyLjkxNDEgNC45Njc2IDEyLjg2NjUgNS4xOTAzNEMxMy4wODMyIDUuMjYwNDQgMTMuMjkxIDUuMzM1MjQgMTMuNDg5IDUuNDE0NDRDMTQuMjAyNSA1LjY5OTgzIDE0LjgxMzQgNi4wNTIxNyAxNS4yNTQyIDYuNDY4OTlDMTUuNjk2IDYuODg2OCAxNiA3LjQwNCAxNiA4QzE2IDguNTk2IDE1LjY5NiA5LjExMzE5IDE1LjI1NDIgOS41MzEwMUMxNC44MTM0IDkuOTQ3ODMgMTQuMjAyNSAxMC4zMDAyIDEzLjQ4OSAxMC41ODU2QzEzLjI5MSAxMC42NjQ4IDEzLjA4MzIgMTAuNzM5NiAxMi44NjY1IDEwLjgwOTdDMTIuOTE0MSAxMS4wMzI0IDEyLjk1MzIgMTEuMjQ5OCAxMi45ODM3IDExLjQ2MDhDMTMuMDkzMiAxMi4yMjE0IDEzLjA5MzYgMTIuOTI2NyAxMi45NTMgMTMuNTE2OEMxMi44MTIgMTQuMTA4MyAxMi41MTYxIDE0LjYzMDIgMTIgMTQuOTI4MkMxMS40ODM5IDE1LjIyNjIgMTAuODgzOSAxNS4yMjE1IDEwLjMwMTIgMTUuMDQ3OEM5LjcxOTg0IDE0Ljg3NDUgOS4xMDkyMyAxNC41MjE2IDguNTA1MzQgMTQuMDQ2NEM4LjMzNzc1IDEzLjkxNDUgOC4xNjkwNiAxMy43NzE5IDcuOTk5OTkgMTMuNjE5M0M3LjgzMDkxIDEzLjc3MTkgNy42NjIyMyAxMy45MTQ1IDcuNDk0NjQgMTQuMDQ2NEM2Ljg5MDc1IDE0LjUyMTYgNi4yODAxNCAxNC44NzQ1IDUuNjk4NzkgMTUuMDQ3OEM1LjExNjA1IDE1LjIyMTUgNC41MTYxMyAxNS4yMjYyIDMuOTk5OTggMTQuOTI4MkMzLjQ4MzgzIDE0LjYzMDIgMy4xODc5NCAxNC4xMDgzIDMuMDQ3IDEzLjUxNjhDMi45MDY0IDEyLjkyNjcgMi45MDY3NCAxMi4yMjE0IDMuMDE2MzIgMTEuNDYwOEMzLjA0NjczIDExLjI0OTggMy4wODU4NiAxMS4wMzI0IDMuMTMzNTEgMTAuODA5N0MyLjkxNjc5IDEwLjczOTUgMi43MDkgMTAuNjY0OCAyLjUxMSAxMC41ODU2QzEuNzk3NTIgMTAuMzAwMiAxLjE4NjU4IDkuOTQ3ODMgMC43NDU4MzMgOS41MzEwMUMwLjMwNDAyOCA5LjExMzE5IDAgOC41OTYgMCA4QzAgNy40MDQgMC4zMDQwMjggNi44ODY4IDAuNzQ1ODMzIDYuNDY4OTlDMS4xODY1OCA2LjA1MjE3IDEuNzk3NTIgNS42OTk4MyAyLjUxMSA1LjQxNDQ0QzIuNzA5IDUuMzM1MjQgMi45MTY4IDUuMjYwNDQgMy4xMzM1MiA1LjE5MDM0QzMuMDg1ODcgNC45Njc2IDMuMDQ2NzUgNC43NTAyNCAzLjAxNjM0IDQuNTM5MTdDMi45MDY3NiAzLjc3ODU4IDIuOTA2NDIgMy4wNzMzMiAzLjA0NzAyIDIuNDgzMjFDMy4xODc5NiAxLjg5MTY5IDMuNDgzODUgMS4zNjk4IDQgMS4wNzE4QzQuNTE2MTUgMC43NzM3OTggNS4xMTYwNyAwLjc3ODQ5NSA1LjY5ODgxIDAuOTUyMjAxQzYuMjgwMTYgMS4xMjU0OSA2Ljg5MDc3IDEuNDc4NDEgNy40OTQ2NiAxLjk1MzYxWk03LjM2NzQ3IDQuNTEwMjVDNy41NzczNSA0LjI1MTk0IDcuNzg4ODEgNC4wMDkyNyA3Ljk5OTk5IDMuNzgzNTZDOC4yMTExNyA0LjAwOTI3IDguNDIyNjMgNC4yNTE5NCA4LjYzMjUxIDQuNTEwMjVDOC40MjM2OSA0LjUwMzQ2IDguMjEyNzQgNC41IDggNC41QzcuNzg3MjUgNC41IDcuNTc2MyA0LjUwMzQ1IDcuMzY3NDcgNC41MTAyNVpNOC43MTQyNSAzLjA4MzMxQzkuMTM3ODEgMy41MzQ0NyA5LjU1NzU5IDQuMDQzNTggOS45NjI0NiA0LjYwMDkyQzEwLjY0NzUgNC42NzI4OCAxMS4yOTgzIDQuNzgxODYgMTEuOTAwOCA0LjkyMzA5QzExLjkzODMgNC43NDI0NCAxMS45NjkzIDQuNTY2NzEgMTEuOTkzOSA0LjM5NjU3QzEyLjA5MjcgMy43MTAzMSAxMi4wODE3IDMuMTQxMTQgMTEuOTgwMiAyLjcxNDk5QzExLjg3OSAyLjI5MDI1IDExLjcwMTMgMi4wNTQwNCAxMS41IDEuOTM3ODJDMTEuMjk4NyAxLjgyMTYxIDExLjAwNTMgMS43ODU4IDEwLjU4NjggMS45MTA1M0MxMC4xNjcgMi4wMzU2OCA5LjY2ODU5IDIuMzEwNzMgOS4xMjM3MSAyLjczOTQ4QzguOTg4NjIgMi44NDU3OCA4Ljg1MTk2IDIuOTYwNTIgOC43MTQyNSAzLjA4MzMxWk04IDUuNUM4LjQ4NDMzIDUuNSA4Ljk1NjM4IDUuNTE4ODUgOS40MTE4OCA1LjU1NDU2QzkuNjcwNTYgNS45MzExOCA5LjkyMjkgNi4zMzA1NiAxMC4xNjUxIDYuNzVDMTAuNDA3MiA3LjE2OTQ0IDEwLjYyNjkgNy41ODc2NiAxMC44MjM3IDcuOTk5OThDMTAuNjI2OSA4LjQxMjMyIDEwLjQwNzIgOC44MzA1NSAxMC4xNjUgOS4yNUM5LjkyMjg4IDkuNjY5NDQgOS42NzA1MyAxMC4wNjg4IDkuNDExODUgMTAuNDQ1NEM4Ljk1NjM2IDEwLjQ4MTIgOC40ODQzMiAxMC41IDggMTAuNUM3LjUxNTY3IDEwLjUgNy4wNDM2MyAxMC40ODEyIDYuNTg4MTMgMTAuNDQ1NEM2LjMyOTQ1IDEwLjA2ODggNi4wNzcxIDkuNjY5NDQgNS44MzQ5NCA5LjI1QzUuNTkyNzcgOC44MzA1NSA1LjM3MzA2IDguNDEyMzIgNS4xNzYyNCA3Ljk5OTk4QzUuMzczMDYgNy41ODc2NSA1LjU5Mjc1IDcuMTY5NDQgNS44MzQ5MiA2Ljc1QzYuMDc3MDggNi4zMzA1NiA2LjMyOTQyIDUuOTMxMTggNi41ODgxIDUuNTU0NTZDNy4wNDM2MSA1LjUxODg0IDcuNTE1NjYgNS41IDggNS41Wk0xMS4wMzExIDYuMjVDMTEuMTM3NSA2LjQzNDIzIDExLjIzOTkgNi42MTg2NCAxMS4zMzg1IDYuODAyODdDMTEuNDU3MiA2LjQ5MTk3IDExLjU2MTYgNi4xODc1MiAxMS42NTE1IDUuODkxNzhDMTEuMzUwNSA1LjgyMTc1IDExLjAzNDYgNS43NTk5NiAxMC43MDYgNS43MDczNkMxMC44MTYzIDUuODg0OCAxMC45MjQ3IDYuMDY1NzYgMTEuMDMxMSA2LjI1Wk0xMS4wMzExIDkuNzVDMTEuMTM3NCA5LjU2NTc2IDExLjIzOTkgOS4zODEzMyAxMS4zMzg1IDkuMTk3MDlDMTEuNDU3MiA5LjUwODAxIDExLjU2MTcgOS44MTI0NiAxMS42NTE1IDEwLjEwODJDMTEuMzUwNSAxMC4xNzgyIDExLjAzNDYgMTAuMjQgMTAuNzA1OSAxMC4yOTI2QzEwLjgxNjIgMTAuMTE1MiAxMC45MjQ3IDkuOTM0MjQgMTEuMDMxMSA5Ljc1Wk0xMS45MjQ5IDcuOTk5OThDMTIuMjA1MSA4LjYyOTI3IDEyLjQzNjIgOS4yNDczOCAxMi42MTUxIDkuODM5NzdDMTIuNzkwMyA5Ljc4MTkxIDEyLjk1OCA5LjcyMDkyIDEzLjExNzYgOS42NTcwOEMxMy43NjE0IDkuMzk5NTggMTQuMjQ4OCA5LjEwNTQ3IDE0LjU2NzEgOC44MDQ0NkMxNC44ODQzIDguNTA0NDUgMTUgOC4yMzI0MyAxNSA4QzE1IDcuNzY3NTcgMTQuODg0MyA3LjQ5NTU1IDE0LjU2NzEgNy4xOTU1NEMxNC4yNDg4IDYuODk0NTMgMTMuNzYxNCA2LjYwMDQyIDEzLjExNzYgNi4zNDI5MkMxMi45NTggNi4yNzkwNyAxMi43OTAzIDYuMjE4MDggMTIuNjE1MSA2LjE2MDIyQzEyLjQzNjIgNi43NTI2IDEyLjIwNTEgNy4zNzA2OSAxMS45MjQ5IDcuOTk5OThaTTkuOTYyNDQgMTEuMzk5MUMxMC42NDc1IDExLjMyNzEgMTEuMjk4MyAxMS4yMTgxIDExLjkwMDggMTEuMDc2OUMxMS45MzgzIDExLjI1NzYgMTEuOTY5NCAxMS40MzMzIDExLjk5MzkgMTEuNjAzNEMxMi4wOTI4IDEyLjI4OTcgMTIuMDgxNyAxMi44NTg5IDExLjk4MDIgMTMuMjg1QzExLjg3OSAxMy43MDk4IDExLjcwMTMgMTMuOTQ2IDExLjUgMTQuMDYyMkMxMS4yOTg3IDE0LjE3ODQgMTEuMDA1MyAxNC4yMTQyIDEwLjU4NjggMTQuMDg5NUMxMC4xNjcgMTMuOTY0MyA5LjY2ODYxIDEzLjY4OTMgOS4xMjM3MyAxMy4yNjA1QzguOTg4NjMgMTMuMTU0MiA4Ljg1MTk2IDEzLjAzOTUgOC43MTQyNCAxMi45MTY3QzkuMTM3OCAxMi40NjU1IDkuNTU3NTggMTEuOTU2NCA5Ljk2MjQ0IDExLjM5OTFaTTguNjMyNDkgMTEuNDg5OEM4LjQyMjYyIDExLjc0ODEgOC4yMTExNiAxMS45OTA3IDcuOTk5OTkgMTIuMjE2NEM3Ljc4ODgxIDExLjk5MDcgNy41NzczNyAxMS43NDgxIDcuMzY3NDkgMTEuNDg5N0M3LjU3NjMxIDExLjQ5NjUgNy43ODcyNiAxMS41IDggMTEuNUM4LjIxMjczIDExLjUgOC40MjM2NyAxMS40OTY1IDguNjMyNDkgMTEuNDg5OFpNNC45Njg5MSA5Ljc1QzUuMDc1MjggOS45MzQyNCA1LjE4Mzc1IDEwLjExNTIgNS4yOTQwNCAxMC4yOTI2QzQuOTY1NCAxMC4yNCA0LjY0OTUxIDEwLjE3ODIgNC4zNDg0NCAxMC4xMDgyQzQuNDM4MzMgOS44MTI0NiA0LjU0Mjc2IDkuNTA4IDQuNjYxNTIgOS4xOTcwOEM0Ljc2MDA1IDkuMzgxMzMgNC44NjI1NCA5LjU2NTc1IDQuOTY4OTEgOS43NVpNNi4wMzc1NCAxMS4zOTkxQzUuMzUyNDQgMTEuMzI3MSA0LjcwMTYzIDExLjIxODEgNC4wOTkxNCAxMS4wNzY5QzQuMDYxNjUgMTEuMjU3NiA0LjAzMDYyIDExLjQzMzMgNC4wMDYxIDExLjYwMzRDMy45MDcyMyAxMi4yODk3IDMuOTE4MjMgMTIuODU4OSA0LjAxOTc3IDEzLjI4NUM0LjEyMDk3IDEzLjcwOTggNC4yOTg2OSAxMy45NDYgNC40OTk5OCAxNC4wNjIyQzQuNzAxMjcgMTQuMTc4NCA0Ljk5NDcgMTQuMjE0MiA1LjQxMzEzIDE0LjA4OTVDNS44MzI5NiAxMy45NjQzIDYuMzMxMzcgMTMuNjg5MyA2Ljg3NjI1IDEzLjI2MDVDNy4wMTEzNSAxMy4xNTQyIDcuMTQ4MDIgMTMuMDM5NSA3LjI4NTczIDEyLjkxNjdDNi44NjIxNyAxMi40NjU1IDYuNDQyNCAxMS45NTY0IDYuMDM3NTQgMTEuMzk5MVpNNC4wNzUwNyA3Ljk5OTk4QzMuNzk0ODQgOC42MjkyNyAzLjU2MzgxIDkuMjQ3MzcgMy4zODQ4OSA5LjgzOTc3QzMuMjA5NjkgOS43ODE5MSAzLjA0MiA5LjcyMDkyIDIuODgyMzkgOS42NTcwOEMyLjIzODY0IDkuMzk5NTggMS43NTEyMyA5LjEwNTQ3IDEuNDMyOTQgOC44MDQ0NkMxLjExNTcxIDguNTA0NDUgMSA4LjIzMjQzIDEgOEMxIDcuNzY3NTcgMS4xMTU3MSA3LjQ5NTU1IDEuNDMyOTQgNy4xOTU1NEMxLjc1MTIzIDYuODk0NTMgMi4yMzg2NCA2LjYwMDQyIDIuODgyMzkgNi4zNDI5MkMzLjA0MiA2LjI3OTA3IDMuMjA5NyA2LjIxODA4IDMuMzg0OSA2LjE2MDIyQzMuNTYzODMgNi43NTI2MSAzLjc5NDg0IDcuMzcwNjkgNC4wNzUwNyA3Ljk5OTk4Wk00LjY2MTUyIDYuODAyODdDNC41NDI3NyA2LjQ5MTk3IDQuNDM4MzUgNi4xODc1MiA0LjM0ODQ2IDUuODkxNzhDNC42NDk1MiA1LjgyMTc1IDQuOTY1MzkgNS43NTk5NiA1LjI5NDAyIDUuNzA3MzZDNS4xODM3MyA1Ljg4NDggNS4wNzUyNiA2LjA2NTc2IDQuOTY4ODkgNi4yNUM0Ljg2MjUzIDYuNDM0MjMgNC43NjAwNSA2LjYxODY0IDQuNjYxNTIgNi44MDI4N1pNOS4yNSA4QzkuMjUgOC42OTAzNiA4LjY5MDM2IDkuMjUgOCA5LjI1QzcuMzA5NjQgOS4yNSA2Ljc1IDguNjkwMzYgNi43NSA4QzYuNzUgNy4zMDk2NSA3LjMwOTY0IDYuNzUgOCA2Ljc1QzguNjkwMzYgNi43NSA5LjI1IDcuMzA5NjUgOS4yNSA4WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksblswXT1lKTplPW5bMF0sblsxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4cykoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjpbZSwoMCxBLmpzeCkoXCJkZWZzXCIse2NoaWxkcmVuOigwLEEuanN4KShcImNsaXBQYXRoXCIse2lkOlwiZmlsZV9yZWFjdF9jbGlwMF84NzJfMzE4M1wiLGNoaWxkcmVuOigwLEEuanN4KShcInJlY3RcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsZmlsbDpcIndoaXRlXCJ9KX0pfSldfSksblsxXT10KTp0PW5bMV0sdH12YXIgZUY9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9hbnNlci9pbmRleC5qc1wiKSxlcT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oZUYpLGVIPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qc1wiKSxlVj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oZUgpO2Z1bmN0aW9uIGUkKGUpe3ZhciB0PWUuc3BsaXQoL1xccj9cXG4vZyksbj10Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PS9ePj8gK1xcZCsgK1xcfCBbIF0rLy5leGVjKGVWKCkoZSkpP251bGw6L14+PyArXFxkKyArXFx8ICggKikvLmV4ZWMoZVYoKShlKSl9KS5maWx0ZXIoQm9vbGVhbikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnBvcCgpfSkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGlzTmFOKGUpP3QubGVuZ3RoOk1hdGgubWluKGUsdC5sZW5ndGgpfSxOYU4pO3JldHVybiBuPjE/dC5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm5+KHQ9ZS5pbmRleE9mKFwifFwiKSk/ZS5zdWJzdHJpbmcoMCx0KStlLnN1YnN0cmluZyh0KS5yZXBsYWNlKFwiXlxcXFwge1wiLmNvbmNhdChuLFwifVwiKSxcIlwiKTplfSkuam9pbihcIlxcblwiKTp0LmpvaW4oXCJcXG5cIil9ZnVuY3Rpb24gZVcoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIGVZKGUpe3ZhciB0LG4scixvPWUuc3RhY2tGcmFtZSxhPWUuY29kZUZyYW1lLGk9KDAsdy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybihmdW5jdGlvbihlKXt2YXIgdD1lcSgpLmFuc2lUb0pzb24oZSx7anNvbjohMCx1c2VfY2xhc3NlczohMCxyZW1vdmVfZW1wdHk6ITB9KSxuPVtdLHI9W10sbz0hMCxhPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIGwscz10W1N5bWJvbC5pdGVyYXRvcl0oKTshKG89KGw9cy5uZXh0KCkpLmRvbmUpO289ITApe3ZhciBjPWwudmFsdWU7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGMuY29udGVudCYmYy5jb250ZW50LmluY2x1ZGVzKFwiXFxuXCIpKWZvcih2YXIgdT1jLmNvbnRlbnQuc3BsaXQoXCJcXG5cIiksZD0wO2Q8dS5sZW5ndGg7ZCsrKXt2YXIgZj11W2RdO2YmJnIucHVzaChmdW5jdGlvbihlLHQpe3JldHVybiB0PW51bGwhPXQ/dDp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKX0pLGV9KGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sYykse2NvbnRlbnQ6Zn0pKSxkPHUubGVuZ3RoLTEmJihuLnB1c2gocikscj1bXSl9ZWxzZSByLnB1c2goYyl9fWNhdGNoKGUpe2E9ITAsaT1lfWZpbmFsbHl7dHJ5e298fG51bGw9PXMucmV0dXJufHxzLnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBpfX1yZXR1cm4gci5sZW5ndGg+MCYmbi5wdXNoKHIpLG59KShlJChhKSkubWFwKGZ1bmN0aW9uKGUpe3ZhciB0LG4scixhLGksbCxzLGMsdTtyZXR1cm57bGluZTplLHBhcnNlZExpbmU6KHQ9ZSxuPW8sKChudWxsPT0ocj10WzBdKT92b2lkIDA6ci5jb250ZW50KT09PVwiPlwifHwobnVsbD09KGE9dFswXSk/dm9pZCAwOmEuY29udGVudCk9PT1cIiBcIikmJihzPW51bGw9PShsPXRbMV0pfHxudWxsPT0odT1sLmNvbnRlbnQpfHxudWxsPT0oYz11LnJlcGxhY2UoXCJ8XCIsXCJcIikpP3ZvaWQgMDpjLnRyaW0oKSkse2xpbmVOdW1iZXI6cyxpc0Vycm9yZWRMaW5lOnM9PT0obnVsbD09KGk9bi5saW5lMSk/dm9pZCAwOmkudG9TdHJpbmcoKSl9KX19KX0sW2Esb10pLGw9ZUIoe2ZpbGU6by5maWxlLGxpbmUxOm51bGwhPShuPW8ubGluZTEpP246MSxjb2x1bW4xOm51bGwhPShyPW8uY29sdW1uMSk/cjoxfSkscz1udWxsPT1vfHxudWxsPT0odD1vLmZpbGUpP3ZvaWQgMDp0LnNwbGl0KFwiLlwiKS5wb3AoKTtyZXR1cm4oMCxBLmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lXCI6ITAsY2hpbGRyZW46WygwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWhlYWRlclwiLGNoaWxkcmVuOigwLEEuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtbGlua1wiLGNoaWxkcmVuOlsoMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtaWNvblwiLGNoaWxkcmVuOigwLEEuanN4KShlTCx7bGFuZzpzfSl9KSwoMCxBLmpzeHMpKFwic3BhblwiLHtcImRhdGEtdGV4dFwiOiEwLGNoaWxkcmVuOltlTyhvKSxcIiBAXCIsXCIgXCIsKDAsQS5qc3gpKGVBLHt0ZXh0Om8ubWV0aG9kTmFtZX0pXX0pLCgwLEEuanN4KShcImJ1dHRvblwiLHtcImFyaWEtbGFiZWxcIjpcIk9wZW4gaW4gZWRpdG9yXCIsXCJkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1zb3VyY2UtZmlsZVwiOiEwLG9uQ2xpY2s6bCxjaGlsZHJlbjooMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtaWNvblwiLFwiZGF0YS1pY29uXCI6XCJyaWdodFwiLGNoaWxkcmVuOigwLEEuanN4KShleix7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KX0pXX0pfSksKDAsQS5qc3gpKFwicHJlXCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtcHJlXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtbGluZXNcIixjaGlsZHJlbjppLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1lLmxpbmUsYT1lLnBhcnNlZExpbmUsaT1hLmxpbmVOdW1iZXIsbD1hLmlzRXJyb3JlZExpbmUscz17fTtyZXR1cm4gaSYmKHNbXCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtbGluZVwiXT1pKSxsJiYoc1tcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1saW5lLS1lcnJvcmVkXCJdPSEwKSwoMCxBLmpzeCkoXCJkaXZcIiwobj1lVyh7fSxzKSxyPXI9e2NoaWxkcmVuOm8ubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsQS5qc3gpKFwic3BhblwiLHtzdHlsZTplVyh7Y29sb3I6ZS5mZz9cInZhcigtLWNvbG9yLVwiLmNvbmNhdChlLmZnLFwiKVwiKTp2b2lkIDB9LFwiYm9sZFwiPT09ZS5kZWNvcmF0aW9uP3tmb250V2VpZ2h0OjUwMH06XCJpdGFsaWNcIj09PWUuZGVjb3JhdGlvbj97Zm9udFN0eWxlOlwiaXRhbGljXCJ9OnZvaWQgMCksY2hpbGRyZW46ZS5jb250ZW50fSxcImZyYW1lLVwiLmNvbmNhdCh0KSl9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChyKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKSl9KSxuKSxcImxpbmUtXCIuY29uY2F0KHQpKX0pfSl9KV19KX12YXIgZUs9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpLGw9KDAseC5jKSg4KTtyZXR1cm4obFswXSE9PWU/KGE9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLCEodC5pbmRleE9mKG4pPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCIsXCJjbGFzc05hbWVcIl0pLHI9ZS5jaGlsZHJlbixvPWUuY2xhc3NOYW1lLGxbMF09ZSxsWzFdPXIsbFsyXT1vLGxbM109YSk6KHI9bFsxXSxvPWxbMl0sYT1sWzNdKSxsWzRdIT09cnx8bFs1XSE9PW98fGxbNl0hPT1hKT8oaT0oMCxBLmpzeCkoXCJkaXZcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImRhdGEtbmV4dGpzLWRpYWxvZy1ib2R5XCI6ITAsY2xhc3NOYW1lOm99LGEpLG49bj17Y2hpbGRyZW46cn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksbFs0XT1yLGxbNV09byxsWzZdPWEsbFs3XT1pKTppPWxbN10saX0sZVg9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpLGw9KDAseC5jKSg4KTtyZXR1cm4obFswXSE9PWU/KGE9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLCEodC5pbmRleE9mKG4pPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCIsXCJjbGFzc05hbWVcIl0pLHI9ZS5jaGlsZHJlbixvPWUuY2xhc3NOYW1lLGxbMF09ZSxsWzFdPXIsbFsyXT1vLGxbM109YSk6KHI9bFsxXSxvPWxbMl0sYT1sWzNdKSxsWzRdIT09cnx8bFs1XSE9PW98fGxbNl0hPT1hKT8oaT0oMCxBLmpzeCkoXCJkaXZcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImRhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XCI6ITAsY2xhc3NOYW1lOm99LGEpLG49bj17Y2hpbGRyZW46cn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksbFs0XT1yLGxbNV09byxsWzZdPWEsbFs3XT1pKTppPWxbN10saX07ZnVuY3Rpb24gZUcoKXt2YXIgZSx0LG49KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLXJvb3RdIHtcXG4gICAgLS1uZXh0LWRpYWxvZy1yYWRpdXM6IHZhcigtLXJvdW5kZWQteGwpO1xcbiAgICAtLW5leHQtZGlhbG9nLW1heC13aWR0aDogOTYwcHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctcm93LXBhZGRpbmc6IDE2cHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctcGFkZGluZzogMTJweDtcXG4gICAgLS1uZXh0LWRpYWxvZy1ub3RjaC1oZWlnaHQ6IDQycHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoOiAxcHg7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NnB4KTtcXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGgpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBzY2FsZTogMC45NztcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogc2NhbGUsIG9wYWNpdHk7XFxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdGltaW5nLW92ZXJsYXkpO1xcblxcbiAgICAmW2RhdGEtcmVuZGVyZWQ9J3RydWUnXSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBzY2FsZTogMTtcXG4gICAgfVxcblxcbiAgICBbZGF0YS1uZXh0anMtc2Nyb2xsLWZhZGVyXVtkYXRhLXNpZGU9J3RvcCddIHtcXG4gICAgICBsZWZ0OiAxcHg7XFxuICAgICAgdG9wOiBjYWxjKFxcbiAgICAgICAgdmFyKC0tbmV4dC1kaWFsb2ctbm90Y2gtaGVpZ2h0KSArIHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aClcXG4gICAgICApO1xcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1uZXh0LWRpYWxvZy1wYWRkaW5nKSk7XFxuICAgICAgb3BhY2l0eTogMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICBvdXRsaW5lOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcF0ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRpbWluZy1vdmVybGF5KTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICBtYXJnaW46IDhweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV1bZGF0YS1yZW5kZXJlZD0ndHJ1ZSddXFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BdIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0ge1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBwYWRkaW5nOiB2YXIoLS1uZXh0LWRpYWxvZy1wYWRkaW5nKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlcl0ge1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSA+IFtkYXRhLW5leHRqcy1kaWFsb2ctYm9keV0ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgfVxcblxcbiAgQG1lZGlhIChtYXgtaGVpZ2h0OiA4MTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNXB4KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctcm9vdF0ge1xcbiAgICAgIC0tbmV4dC1kaWFsb2ctbWF4LXdpZHRoOiA1NDBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctcm9vdF0ge1xcbiAgICAgIC0tbmV4dC1kaWFsb2ctbWF4LXdpZHRoOiA3MjBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctcm9vdF0ge1xcbiAgICAgIC0tbmV4dC1kaWFsb2ctbWF4LXdpZHRoOiA5NjBweDtcXG4gICAgfVxcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiBlRz1mdW5jdGlvbigpe3JldHVybiBufSxufXZhciBlUT1ldShlRygpKTtmdW5jdGlvbiBlSigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9QXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHQuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpfWZ1bmN0aW9uIGUwKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBlMShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gZTIoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIGU0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBlMChlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBlMChlLHQpfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiBlNShlLHQpe3JldHVyblwicmVzZXRcIj09PXQudHlwZT97c3RhdGU6XCJpbml0aWFsXCJ9OlwiY29waWVkXCI9PT10LnR5cGU/e3N0YXRlOlwic3VjY2Vzc1wifTpcImNvcHlpbmdcIj09PXQudHlwZT97c3RhdGU6XCJwZW5kaW5nXCJ9OlwiZXJyb3JcIj09PXQudHlwZT97c3RhdGU6XCJlcnJvclwiLGVycm9yOnQuZXJyb3J9OmV9ZnVuY3Rpb24gZTMoZSl7cmV0dXJue3N0YXRlOlwiZXJyb3JcIixlcnJvcjplfX1mdW5jdGlvbiBlNigpe3JldHVybntzdGF0ZTpcInN1Y2Nlc3NcIn19dmFyIGU5PVwiZnVuY3Rpb25cIj09dHlwZW9mIHcudXNlQWN0aW9uU3RhdGU/ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpPSgwLHguYykoOCk7aVswXSE9PWU/KHQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5cInJlc2V0XCI9PT1uP3tzdGF0ZTpcImluaXRpYWxcIn06XCJjb3B5XCI9PT1uP25hdmlnYXRvci5jbGlwYm9hcmQ/bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZSkudGhlbihlNixlMyk6e3N0YXRlOlwiZXJyb3JcIixlcnJvcjpcIkNvcHkgdG8gY2xpcGJvYXJkIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCJ9OnR9LGlbMF09ZSxpWzFdPXQpOnQ9aVsxXSxpWzJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG49e3N0YXRlOlwiaW5pdGlhbFwifSxpWzJdPW4pOm49aVsyXTt2YXIgbD1lNCh3LnVzZUFjdGlvblN0YXRlKHQsbiksMykscz1sWzBdLGM9bFsxXSx1PWxbMl07aVszXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPWZ1bmN0aW9uKCl7dy5zdGFydFRyYW5zaXRpb24oZnVuY3Rpb24oKXtjKFwiY29weVwiKX0pfSxpWzNdPXIpOnI9aVszXTt2YXIgZD1yO2lbNF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obz1mdW5jdGlvbigpe2MoXCJyZXNldFwiKX0saVs0XT1vKTpvPWlbNF07dmFyIGY9bztyZXR1cm4gaVs1XSE9PXN8fGlbNl0hPT11PyhhPVtzLGQsZix1XSxpWzVdPXMsaVs2XT11LGlbN109YSk6YT1pWzddLGF9OmZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaSxsPSgwLHguYykoMTIpO2xbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD17c3RhdGU6XCJpbml0aWFsXCJ9LGxbMF09dCk6dD1sWzBdO3ZhciBzPWU0KHcudXNlUmVkdWNlcihlNSx0KSwyKSxjPXNbMF0sdT1zWzFdO3JldHVybiBsWzFdIT09ZXx8bFsyXSE9PWMuc3RhdGU/KG49ZnVuY3Rpb24oKXtyfHwobmF2aWdhdG9yLmNsaXBib2FyZD8odSh7dHlwZTpcImNvcHlpbmdcIn0pLG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oZnVuY3Rpb24oKXt1KHt0eXBlOlwiY29waWVkXCJ9KX0sZnVuY3Rpb24oZSl7dSh7dHlwZTpcImVycm9yXCIsZXJyb3I6ZX0pfSkpOnUoe3R5cGU6XCJlcnJvclwiLGVycm9yOlwiQ29weSB0byBjbGlwYm9hcmQgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXJcIn0pKX0sbFs2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhhPWZ1bmN0aW9uKCl7dSh7dHlwZTpcInJlc2V0XCJ9KX0sbFs2XT1hKTphPWxbNl0sbz1hLHI9XCJwZW5kaW5nXCI9PT1jLnN0YXRlLGxbMV09ZSxsWzJdPWMuc3RhdGUsbFszXT1uLGxbNF09cixsWzVdPW8pOihuPWxbM10scj1sWzRdLG89bFs1XSksbFs3XSE9PW58fGxbOF0hPT1jfHxsWzldIT09cnx8bFsxMF0hPT1vPyhpPVtjLG4sbyxyXSxsWzddPW4sbFs4XT1jLGxbOV09cixsWzEwXT1vLGxbMTFdPWkpOmk9bFsxMV0saX07ZnVuY3Rpb24gZTgoZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaCxtLGcseSx2PSgwLHguYykoNDApO3ZbMF0hPT1lPyhpPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJjb250ZW50XCIsXCJnZXRDb250ZW50XCIsXCJhY3Rpb25MYWJlbFwiLFwic3VjY2Vzc0xhYmVsXCIsXCJpY29uXCIsXCJkaXNhYmxlZFwiXSksbj1lLmNvbnRlbnQsbz1lLmdldENvbnRlbnQsdD1lLmFjdGlvbkxhYmVsLGw9ZS5zdWNjZXNzTGFiZWwsYT1lLmljb24scj1lLmRpc2FibGVkLHZbMF09ZSx2WzFdPXQsdlsyXT1uLHZbM109cix2WzRdPW8sdls1XT1hLHZbNl09aSx2WzddPWwpOih0PXZbMV0sbj12WzJdLHI9dlszXSxvPXZbNF0sYT12WzVdLGk9dls2XSxsPXZbN10pLHZbOF0hPT1ufHx2WzldIT09bz8ocz1mdW5jdGlvbigpe3JldHVybiBufHwobz9vKCk6XCJcIil9LHZbOF09bix2WzldPW8sdlsxMF09cyk6cz12WzEwXTt2YXIgYj1zO3ZbMTFdIT09Yj8oYz1iKCksdlsxMV09Yix2WzEyXT1jKTpjPXZbMTJdO3ZhciBDPWU0KGU5KGMpLDQpLF89Q1swXSxrPUNbMV0sRT1DWzJdLGo9Q1szXSxTPVwiZXJyb3JcIj09PV8uc3RhdGU/Xy5lcnJvcjpudWxsO3ZbMTNdIT09Uz8odT1mdW5jdGlvbigpe251bGwhPT1TJiZjb25zb2xlLndhcm4oUyl9LGQ9W1NdLHZbMTNdPVMsdlsxNF09dSx2WzE1XT1kKToodT12WzE0XSxkPXZbMTVdKSx3LnVzZUVmZmVjdCh1LGQpLHZbMTZdIT09Xy5zdGF0ZXx8dlsxN10hPT1FPyhmPWZ1bmN0aW9uKCl7aWYoXCJzdWNjZXNzXCI9PT1fLnN0YXRlKXt2YXIgZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7RSgpfSwyZTMpO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChlKX19fSx2WzE2XT1fLnN0YXRlLHZbMTddPUUsdlsxOF09Zik6Zj12WzE4XSx2WzE5XSE9PV8uc3RhdGV8fHZbMjBdIT09anx8dlsyMV0hPT1FPyhwPVtqLF8uc3RhdGUsRV0sdlsxOV09Xy5zdGF0ZSx2WzIwXT1qLHZbMjFdPUUsdlsyMl09cCk6cD12WzIyXSx3LnVzZUVmZmVjdChmLHApO3ZhciBPPSFuYXZpZ2F0b3IuY2xpcGJvYXJkfHxqfHxyfHwhIVMsQj1cInN1Y2Nlc3NcIj09PV8uc3RhdGU/bDp0O3ZbMjNdIT09Xy5zdGF0ZXx8dlsyNF0hPT1hPyhoPVwic3VjY2Vzc1wiPT09Xy5zdGF0ZT8oMCxBLmpzeCkodGUse30pOmF8fCgwLEEuanN4KShlNyx7d2lkdGg6MTQsaGVpZ2h0OjE0LGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwifSksdlsyM109Xy5zdGF0ZSx2WzI0XT1hLHZbMjVdPWgpOmg9dlsyNV07dmFyIFA9aCxJPVwibmV4dGpzLWRhdGEtY29weS1idXR0b24tLVwiLmNvbmNhdChfLnN0YXRlKTt2WzI2XSE9PWUuY2xhc3NOYW1lfHx2WzI3XSE9PUk/KG09ZUooZS5jbGFzc05hbWUsXCJuZXh0anMtZGF0YS1jb3B5LWJ1dHRvblwiLEkpLHZbMjZdPWUuY2xhc3NOYW1lLHZbMjddPUksdlsyOF09bSk6bT12WzI4XSx2WzI5XSE9PWt8fHZbMzBdIT09Tz8oZz1mdW5jdGlvbigpe098fGsoKX0sdlsyOV09ayx2WzMwXT1PLHZbMzFdPWcpOmc9dlszMV07dmFyIFQ9XCJlcnJvclwiPT09Xy5zdGF0ZT9cIiBcIi5jb25jYXQoXy5lcnJvcik6bnVsbDtyZXR1cm4gdlszMl0hPT1PfHx2WzMzXSE9PUJ8fHZbMzRdIT09UHx8dlszNV0hPT1pfHx2WzM2XSE9PVR8fHZbMzddIT09bXx8dlszOF0hPT1nPyh5PSgwLEEuanN4cykoXCJidXR0b25cIixlMihlMSh7fSxpKSx7dHlwZTpcImJ1dHRvblwiLHRpdGxlOkIsXCJhcmlhLWxhYmVsXCI6QixcImFyaWEtZGlzYWJsZWRcIjpPLGRpc2FibGVkOk8sXCJkYXRhLW5leHRqcy1jb3B5LWJ1dHRvblwiOiEwLGNsYXNzTmFtZTptLG9uQ2xpY2s6ZyxjaGlsZHJlbjpbUCxUXX0pKSx2WzMyXT1PLHZbMzNdPUIsdlszNF09UCx2WzM1XT1pLHZbMzZdPVQsdlszN109bSx2WzM4XT1nLHZbMzldPXkpOnk9dlszOV0seX1mdW5jdGlvbiBlNyhlKXt2YXIgdCxuLHI9KDAseC5jKSgzKTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0yLjQwNi40MzhjLS44NDUgMC0xLjUzMS42ODUtMS41MzEgMS41M3Y2LjU2M2MwIC44NDYuNjg2IDEuNTMxIDEuNTMxIDEuNTMxSDMuOTM3VjguNzVIMi40MDZhLjIxOS4yMTkgMCAwIDEtLjIxOS0uMjE5VjEuOTdjMC0uMTIxLjA5OC0uMjE5LjIyLS4yMTloNC44MTJjLjEyIDAgLjIxOC4wOTguMjE4LjIxOXYuNjU2SDguNzV2LS42NTZjMC0uODQ2LS42ODYtMS41MzItMS41MzEtMS41MzJIMi40MDZ6bTQuMzc1IDMuNWMtLjg0NSAwLTEuNTMxLjY4NS0xLjUzMSAxLjUzdjYuNTYzYzAgLjg0Ni42ODYgMS41MzEgMS41MzEgMS41MzFoNC44MTNjLjg0NSAwIDEuNTMxLS42ODUgMS41MzEtMS41M1Y1LjQ2OGMwLS44NDYtLjY4Ni0xLjUzMi0xLjUzMS0xLjUzMkg2Ljc4em0tLjIxOCAxLjUzYzAtLjEyLjA5Ny0uMjE4LjIxOC0uMjE4aDQuODEzYy4xMiAwIC4yMTkuMDk4LjIxOS4yMTl2Ni41NjJjMCAuMTIxLS4wOTguMjE5LS4yMi4yMTlINi43ODJhLjIxOS4yMTkgMCAwIDEtLjIxOC0uMjE5VjUuNDd6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSksclswXT10KTp0PXJbMF0sclsxXSE9PWU/KG49KDAsQS5qc3gpKFwic3ZnXCIsZTIoZTEoe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkse2NoaWxkcmVuOnR9KSksclsxXT1lLHJbMl09bik6bj1yWzJdLG59ZnVuY3Rpb24gdGUoKXt2YXIgZSx0PSgwLHguYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIix4bGlua1RpdGxlOlwiY29waWVkXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixmaWxsOlwiY3VycmVudENvbG9yXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtkOlwiTTEzLjc4IDQuMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNmwtNy4yNSA3LjI1YS43NS43NSAwIDAgMS0xLjA2IDBMMi4yMiA5LjI4YS43NTEuNzUxIDAgMCAxIC4wMTgtMS4wNDIuNzUxLjc1MSAwIDAgMSAxLjA0Mi0uMDE4TDYgMTAuOTRsNi43Mi02LjcyYS43NS43NSAwIDAgMSAxLjA2IDBaXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gdHQoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIHRuKGUsdCl7cmV0dXJuIHQ9bnVsbCE9dD90Ont9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbikpfSksZX12YXIgdHI9ZnVuY3Rpb24oKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2Ygd2luZG93KXJldHVybiExO3ZhciBlPVwiY2hyb21lXCJpbiB3aW5kb3cmJndpbmRvdy5jaHJvbWUsdD13aW5kb3cubmF2aWdhdG9yLnZlbmRvcjtyZXR1cm4gbnVsbCE9ZSYmXCJHb29nbGUgSW5jLlwiPT09dH0oKTtmdW5jdGlvbiB0byhlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoPSgwLHguYykoMTQpO3JldHVybiBoWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LGhbMF09dCk6dD1oWzBdLGhbMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obj0oMCxBLmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19hXCIsc3R5bGU6dCxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIwXCIseTpcIjBcIix3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNNi42Ny4wODkgMS4yMDUgMy4yNTZhLjY2My42NjMgMCAwIDAtLjMzLjU3M3Y2LjMzOWMwIC4yMzcuMTI2LjQ1NS4zMy41NzRsNS40NjYgMy4xN2EuNjYuNjYgMCAwIDAgLjY2IDBsNS40NjUtMy4xN2EuNjY0LjY2NCAwIDAgMCAuMzI5LS41NzRWMy44MjlhLjY2My42NjMgMCAwIDAtLjMzLS41NzNMNy4zMy4wODlhLjY2My42NjMgMCAwIDAtLjY2MSAwXCIsZmlsbDpcIiNmZmZcIn0pfSksaFsxXT1uKTpuPWhbMV0saFsyXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLEEuanN4KShcImdcIix7bWFzazpcInVybCgjbm9kZWpzX2ljb25fbWFza19hKVwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZDpcIk0xOC42NDggMi43MTcgMy4yNDgtNC44Ni00LjY0OCAxMS4zMWwxNS40IDcuNTggNy44OTYtMTYuMTc0elwiLGZpbGw6XCJ1cmwoI25vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9iKVwifSl9KSxoWzJdPXIpOnI9aFsyXSxoWzNdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG89e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LGhbM109byk6bz1oWzNdLGhbNF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT0oMCxBLmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19jXCIsc3R5bGU6byxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIxXCIseTpcIjBcIix3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTRcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4wMSAxMC41N2EuNjYzLjY2MyAwIDAgMCAuMTk1LjE3bDQuNjg4IDIuNzIuNzgxLjQ1YS42Ni42NiAwIDAgMCAuNTEuMDYzbDUuNzY0LTEwLjU5N2EuNjUzLjY1MyAwIDAgMC0uMTUzLS4xMjJMOS4yMTYgMS4xOCA3LjMyNS4wODdhLjY4OC42ODggMCAwIDAtLjE3MS0uMDdMMS4wMSAxMC41N3pcIixmaWxsOlwiI2ZmZlwifSl9KSxoWzRdPWEpOmE9aFs0XSxoWzVdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGk9KDAsQS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2MpXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtkOlwiTS01LjY0NyA0Ljk1OCA1LjIyNiAxOS43MzRsMTQuMzgtMTAuNjY3TDguNzM0LTUuNzEtNS42NDcgNC45NTh6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2QpXCJ9KX0pLGhbNV09aSk6aT1oWzVdLGhbNl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obD17bWFza1R5cGU6XCJsdW1pbmFuY2VcIn0saFs2XT1sKTpsPWhbNl0saFs3XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhzPSgwLEEuanN4KShcIm1hc2tcIix7aWQ6XCJub2RlanNfaWNvbl9tYXNrX2VcIixzdHlsZTpsLG1hc2tVbml0czpcInVzZXJTcGFjZU9uVXNlXCIseDpcIjFcIix5OlwiMFwiLHdpZHRoOlwiMTNcIixoZWlnaHQ6XCIxNFwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZDpcIk02LjkzNC4wMDRBLjY2NS42NjUgMCAwIDAgNi42Ny4wOUwxLjIyIDMuMjQ3bDUuODc3IDEwLjc0NmEuNjU1LjY1NSAwIDAgMCAuMjM1LS4wOGw1LjQ2NS0zLjE3YS42NjUuNjY1IDAgMCAwIC4zMTktLjQ1M0w3LjEyNi4wMTVhLjY4NC42ODQgMCAwIDAtLjE4OS0uMDFcIixmaWxsOlwiI2ZmZlwifSl9KSxoWzddPXMpOnM9aFs3XSxoWzhdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGM9KDAsQS5qc3hzKShcImdcIix7Y2hpbGRyZW46W3MsKDAsQS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2UpXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtkOlwiTTEuMjIuMDAydjEzLjk5MmgxMS44OTRWLjAwMkgxLjIyelwiLGZpbGw6XCJ1cmwoI25vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9mKVwifSl9KV19KSxoWzhdPWMpOmM9aFs4XSxoWzldPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHU9KDAsQS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2JcIix4MTpcIjEwLjk0M1wiLHkxOlwiLTEuMDg0XCIseDI6XCIyLjk5N1wiLHkyOlwiMTUuMDYyXCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLEEuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjNcIixzdG9wQ29sb3I6XCIjM0U4NjNEXCJ9KSwoMCxBLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi41XCIsc3RvcENvbG9yOlwiIzU1OTM0RlwifSksKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuOFwiLHN0b3BDb2xvcjpcIiM1QUFENDVcIn0pXX0pLGhbOV09dSk6dT1oWzldLGhbMTBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGQ9KDAsQS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2RcIix4MTpcIi0uMTQ1XCIseTE6XCIxMi40MzFcIix4MjpcIjE0LjI3N1wiLHkyOlwiMS44MThcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNTdcIixzdG9wQ29sb3I6XCIjM0U4NjNEXCJ9KSwoMCxBLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi43MlwiLHN0b3BDb2xvcjpcIiM2MTk4NTdcIn0pLCgwLEEuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMVwiLHN0b3BDb2xvcjpcIiM3NkFDNjRcIn0pXX0pLGhbMTBdPWQpOmQ9aFsxMF0saFsxMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZj0oMCxBLmpzeHMpKFwiZGVmc1wiLHtjaGlsZHJlbjpbdSxkLCgwLEEuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9mXCIseDE6XCIxLjIyNVwiLHkxOlwiNi45OThcIix4MjpcIjEzLjExNlwiLHkyOlwiNi45OThcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuMTZcIixzdG9wQ29sb3I6XCIjNkJCRjQ3XCJ9KSwoMCxBLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4zOFwiLHN0b3BDb2xvcjpcIiM3OUI0NjFcIn0pLCgwLEEuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjQ3XCIsc3RvcENvbG9yOlwiIzc1QUM2NFwifSksKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuN1wiLHN0b3BDb2xvcjpcIiM2NTlFNUFcIn0pLCgwLEEuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjlcIixzdG9wQ29sb3I6XCIjM0U4NjNEXCJ9KV19KV19KSxoWzExXT1mKTpmPWhbMTFdLGhbMTJdIT09ZT8ocD0oMCxBLmpzeHMpKFwic3ZnXCIsdG4odHQoe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkse2NoaWxkcmVuOltuLHIsYSxpLGMsZl19KSksaFsxMl09ZSxoWzEzXT1wKTpwPWhbMTNdLHB9ZnVuY3Rpb24gdGEoZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaD0oMCx4LmMpKDE0KTtyZXR1cm4gaFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PXttYXNrVHlwZTpcImx1bWluYW5jZVwifSxoWzBdPXQpOnQ9aFswXSxoWzFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG49KDAsQS5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfYVwiLHN0eWxlOnQsbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMFwiLHk6XCIwXCIsd2lkdGg6XCIxNFwiLGhlaWdodDpcIjE0XCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtkOlwiTTYuNjcuMDg5IDEuMjA1IDMuMjU2YS42NjMuNjYzIDAgMCAwLS4zMy41NzN2Ni4zMzljMCAuMjM3LjEyNi40NTUuMzMuNTc0bDUuNDY2IDMuMTdhLjY2LjY2IDAgMCAwIC42NiAwbDUuNDY1LTMuMTdhLjY2NC42NjQgMCAwIDAgLjMyOS0uNTc0VjMuODI5YS42NjMuNjYzIDAgMCAwLS4zMy0uNTczTDcuMzMuMDg5YS42NjMuNjYzIDAgMCAwLS42NjEgMFwiLGZpbGw6XCIjZmZmXCJ9KX0pLGhbMV09bik6bj1oWzFdLGhbMl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj0oMCxBLmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfYSlcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNMTguNjQ4IDIuNzE3IDMuMjQ4LTQuODYtNC42NDYgMTEuMzFsMTUuMzk5IDcuNTggNy44OTYtMTYuMTc0elwiLGZpbGw6XCJ1cmwoI25vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9iKVwifSl9KSxoWzJdPXIpOnI9aFsyXSxoWzNdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG89e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LGhbM109byk6bz1oWzNdLGhbNF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT0oMCxBLmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19jXCIsc3R5bGU6byxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIxXCIseTpcIjBcIix3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTVcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4wMSAxMC41NzFhLjY2LjY2IDAgMCAwIC4xOTUuMTcybDQuNjg4IDIuNzE4Ljc4MS40NTFhLjY2LjY2IDAgMCAwIC41MS4wNjNsNS43NjQtMTAuNTk3YS42NTMuNjUzIDAgMCAwLS4xNTMtLjEyMkw5LjIxNiAxLjE4MSA3LjMyNS4wOWEuNjg4LjY4OCAwIDAgMC0uMTcxLS4wN0wxLjAxIDEwLjU3MnpcIixmaWxsOlwiI2ZmZlwifSl9KSxoWzRdPWEpOmE9aFs0XSxoWzVdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGk9KDAsQS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2MpXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtkOlwiTS01LjY0NyA0Ljk2IDUuMjI2IDE5LjczNiAxOS42MDYgOS4wNyA4LjczNC01LjcwNy01LjY0NyA0Ljk2elwiLGZpbGw6XCJ1cmwoI25vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9kKVwifSl9KSxoWzVdPWkpOmk9aFs1XSxoWzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGw9e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LGhbNl09bCk6bD1oWzZdLGhbN109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocz0oMCxBLmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19lXCIsc3R5bGU6bCxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIxXCIseTpcIjBcIix3aWR0aDpcIjEzXCIsaGVpZ2h0OlwiMTRcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNNi45MzUuMDAzYS42NjUuNjY1IDAgMCAwLS4yNjQuMDg1bC01LjQ1IDMuMTU4IDUuODc3IDEwLjc0N2EuNjUzLjY1MyAwIDAgMCAuMjM1LS4wODJsNS40NjUtMy4xN2EuNjY1LjY2NSAwIDAgMCAuMzE5LS40NTJMNy4xMjcuMDE0YS42ODQuNjg0IDAgMCAwLS4xODktLjAxXCIsZmlsbDpcIiNmZmZcIn0pfSksaFs3XT1zKTpzPWhbN10saFs4XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhjPSgwLEEuanN4cykoXCJnXCIse2NoaWxkcmVuOltzLCgwLEEuanN4KShcImdcIix7bWFzazpcInVybCgjbm9kZWpzX2ljb25fbWFza19lKVwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZDpcIk0xLjIyMi4wMDF2MTMuOTkyaDExLjg5M1YwSDEuMjIyelwiLGZpbGw6XCJ1cmwoI25vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9mKVwifSl9KV19KSxoWzhdPWMpOmM9aFs4XSxoWzldPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHU9KDAsQS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2JcIix4MTpcIjEwLjk0NFwiLHkxOlwiLTEuMDg0XCIseDI6XCIyLjk5N1wiLHkyOlwiMTUuMDYyXCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLEEuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjNcIixzdG9wQ29sb3I6XCIjNjc2NzY3XCJ9KSwoMCxBLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi41XCIsc3RvcENvbG9yOlwiIzg1ODU4NVwifSksKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuOFwiLHN0b3BDb2xvcjpcIiM5ODlBOThcIn0pXX0pLGhbOV09dSk6dT1oWzldLGhbMTBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGQ9KDAsQS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2RcIix4MTpcIi0uMTQ1XCIseTE6XCIxMi40MzNcIix4MjpcIjE0LjI3N1wiLHkyOlwiMS44MTlcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNTdcIixzdG9wQ29sb3I6XCIjNzQ3NDc0XCJ9KSwoMCxBLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi43MlwiLHN0b3BDb2xvcjpcIiM3MDcwNzBcIn0pLCgwLEEuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMVwiLHN0b3BDb2xvcjpcIiM5MjkyOTJcIn0pXX0pLGhbMTBdPWQpOmQ9aFsxMF0saFsxMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZj0oMCxBLmpzeHMpKFwiZGVmc1wiLHtjaGlsZHJlbjpbdSxkLCgwLEEuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9mXCIseDE6XCIxLjIyNlwiLHkxOlwiNi45OTdcIix4MjpcIjEzLjExN1wiLHkyOlwiNi45OTdcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuMTZcIixzdG9wQ29sb3I6XCIjODc4Nzg3XCJ9KSwoMCxBLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4zOFwiLHN0b3BDb2xvcjpcIiNBOUE5QTlcIn0pLCgwLEEuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjQ3XCIsc3RvcENvbG9yOlwiI0E1QTVBNVwifSksKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuN1wiLHN0b3BDb2xvcjpcIiM4RjhGOEZcIn0pLCgwLEEuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjlcIixzdG9wQ29sb3I6XCIjNjI2MjYyXCJ9KV19KV19KSxoWzExXT1mKTpmPWhbMTFdLGhbMTJdIT09ZT8ocD0oMCxBLmpzeHMpKFwic3ZnXCIsdG4odHQoe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkse2NoaWxkcmVuOltuLHIsYSxpLGMsZl19KSksaFsxMl09ZSxoWzEzXT1wKTpwPWhbMTNdLHB9dmFyIHRpPVwiTGVhcm4gbW9yZSBhYm91dCBlbmFibGluZyBOb2RlLmpzIGluc3BlY3RvciBmb3Igc2VydmVyIGNvZGUgd2l0aCBDaHJvbWUgRGV2VG9vbHNcIjtmdW5jdGlvbiB0bChlKXt2YXIgdCxuLHIsbz0oMCx4LmMpKDQpLGE9ZS5kZXZ0b29sc0Zyb250ZW5kVXJsfHxcIlwiO3JldHVybiBhJiZ0cj8ob1sxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhuPSgwLEEuanN4KSh0byx7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS10b29sYmFyLWJ1dHRvbi1pY29uXCIsd2lkdGg6MTQsaGVpZ2h0OjE0fSksb1sxXT1uKTpuPW9bMV0sb1syXSE9PWE/KHI9KDAsQS5qc3gpKGU4LHtcImRhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWRldnRvb2xzLXVybFwiOiEwLGNsYXNzTmFtZTpcIm5vZGVqcy1pbnNwZWN0b3ItYnV0dG9uXCIsYWN0aW9uTGFiZWw6XCJDb3B5IENocm9tZSBEZXZUb29scyBVUkxcIixzdWNjZXNzTGFiZWw6XCJDb3BpZWRcIixjb250ZW50OmEsaWNvbjpufSksb1syXT1hLG9bM109cik6cj1vWzNdLHIpOihvWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsQS5qc3gpKFwiYVwiLHt0aXRsZTp0aSxcImFyaWEtbGFiZWxcIjp0aSxjbGFzc05hbWU6XCJub2RlanMtaW5zcGVjdG9yLWJ1dHRvblwiLGhyZWY6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9jb25maWd1cmluZy9kZWJ1Z2dpbmcjc2VydmVyLXNpZGUtY29kZVwiLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjooMCxBLmpzeCkodGEse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwiLHdpZHRoOjE0LGhlaWdodDoxNH0pfSksb1swXT10KTp0PW9bMF0sdCl9ZnVuY3Rpb24gdHMoZSl7dmFyIHQsbj0oMCx4LmMpKDMpLHI9ZS5lcnJvcixvPWUuZ2VuZXJhdGVFcnJvckluZm8sYT0hcjtyZXR1cm4gblswXSE9PW98fG5bMV0hPT1hPyh0PSgwLEEuanN4KShlOCx7XCJkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1zdGFja1wiOiEwLGNsYXNzTmFtZTpcImNvcHktZXJyb3ItYnV0dG9uXCIsYWN0aW9uTGFiZWw6XCJDb3B5IEVycm9yIEluZm9cIixzdWNjZXNzTGFiZWw6XCJFcnJvciBJbmZvIENvcGllZFwiLGdldENvbnRlbnQ6byxkaXNhYmxlZDphfSksblswXT1vLG5bMV09YSxuWzJdPXQpOnQ9blsyXSx0fWZ1bmN0aW9uIHRjKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiB0dShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIHRkKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9ZnVuY3Rpb24gdGYoZSx0KXtyZXR1cm4gdHUoZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fHRoKGUsdCl8fHRkKCl9ZnVuY3Rpb24gdHAoZSl7cmV0dXJuIHR1KGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8dGgoZSl8fHRkKCl9ZnVuY3Rpb24gdGgoZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdGMoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gdGMoZSx0KX19dmFyIHRtPVwiaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9oeWRyYXRpb24tbWlzbWF0Y2hcIix0Zz1cImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3JlYWN0LWh5ZHJhdGlvbi1lcnJvclwiLHR5PVsvXkluIEhUTUwsICguKz8pIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwoLis/KT5cXC4oLiopXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yXFwuKC4qKS8sL15JbiBIVE1MLCAoLis/KSBjYW5ub3QgYmUgYSBkZXNjZW5kYW50IG9mIDwoLis/KT5cXC5cXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3JcXC4oLiopLywvXkluIEhUTUwsIHRleHQgbm9kZXMgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCguKz8pPlxcLlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvclxcLi8sL15JbiBIVE1MLCB3aGl0ZXNwYWNlIHRleHQgbm9kZXMgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCguKz8pPlxcLiBNYWtlIHN1cmUgeW91IGRvbid0IGhhdmUgYW55IGV4dHJhIHdoaXRlc3BhY2UgYmV0d2VlbiB0YWdzIG9uIGVhY2ggbGluZSBvZiB5b3VyIHNvdXJjZSBjb2RlXFwuXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yXFwuL107ZnVuY3Rpb24gdHYoZSl7cmV0dXJuIHR5LnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIHQudGVzdChlKX0pfXZhciB0Yj1bXCJodHRwczovL25leHRqcy5vcmdcIixcImh0dHBzOi8vcmVhY3QuZGV2XCJdO2Z1bmN0aW9uIHRBKGUpe3JldHVybiB0Yi5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBlLnN0YXJ0c1dpdGgodCl9KX1mdW5jdGlvbiB0eChlKXt2YXIgdCxuLHIsbyxhPSgwLHguYykoNiksaT1lLmVycm9yTWVzc2FnZTthWzBdIT09aT8odD1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbz0odD1lLG49dEEscj1BcnJheS5mcm9tKHQubWF0Y2hBbGwoL2h0dHBzPzpcXC9cXC9bXlxccy8kLj8jXS5bXlxccyknXCJdKi9naSksZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF19KSxuP3IuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBuKGUpfSk6cik7aWYoMD09PW8ubGVuZ3RoKXJldHVybiBudWxsO3ZhciBhPW9bMF07cmV0dXJuIGE9PT10bT90ZzphfShpKSxhWzBdPWksYVsxXT10KTp0PWFbMV07dmFyIGw9dDtyZXR1cm4gbD8oYVszXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLEEuanN4KSh0dyx7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS10b29sYmFyLWJ1dHRvbi1pY29uXCIsd2lkdGg6MTQsaGVpZ2h0OjE0fSksYVszXT1yKTpyPWFbM10sYVs0XSE9PWw/KG89KDAsQS5qc3gpKFwiYVwiLHt0aXRsZTpcIkdvIHRvIHJlbGF0ZWQgZG9jdW1lbnRhdGlvblwiLFwiYXJpYS1sYWJlbFwiOlwiR28gdG8gcmVsYXRlZCBkb2N1bWVudGF0aW9uXCIsY2xhc3NOYW1lOlwiZG9jcy1saW5rLWJ1dHRvblwiLGhyZWY6bCx0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46cn0pLGFbNF09bCxhWzVdPW8pOm89YVs1XSxvKTooYVsyXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhuPSgwLEEuanN4KShcImJ1dHRvblwiLHt0aXRsZTpcIk5vIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBmb3VuZFwiLFwiYXJpYS1sYWJlbFwiOlwiTm8gcmVsYXRlZCBkb2N1bWVudGF0aW9uIGZvdW5kXCIsY2xhc3NOYW1lOlwiZG9jcy1saW5rLWJ1dHRvblwiLGRpc2FibGVkOiEwLGNoaWxkcmVuOigwLEEuanN4KSh0dyx7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS10b29sYmFyLWJ1dHRvbi1pY29uXCIsd2lkdGg6MTQsaGVpZ2h0OjE0fSl9KSxhWzJdPW4pOm49YVsyXSxuKX1mdW5jdGlvbiB0dyhlKXt2YXIgdCxuLHIsbyxhPSgwLHguYykoMyk7cmV0dXJuKGFbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj0oMCxBLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMCAuODc1aDQuMzc1QzUuNDQ4Ljg3NSA2LjQwMSAxLjM5IDcgMi4xODdBMy4yNzYgMy4yNzYgMCAwIDEgOS42MjUuODc1SDE0djExLjE1Nkg5LjRjLS41MjIgMC0xLjAyMy4yMDgtMS4zOTIuNTc3bC0uNTQ0LjU0M2gtLjkyOGwtLjU0NC0uNTQzYy0uMzY5LS4zNy0uODctLjU3Ny0xLjM5Mi0uNTc3SDBWLjg3NXptNi4zNDQgMy4yODFhMS45NjkgMS45NjkgMCAwIDAtMS45NjktMS45NjhIMS4zMTJ2OC41M0g0LjZjLjYyMiAwIDEuMjI1LjE3NyAxLjc0NC41MDJWNC4xNTZ6bTEuMzEyIDcuMDY0VjQuMTU2YzAtMS4wODcuODgyLTEuOTY4IDEuOTY5LTEuOTY4aDMuMDYzdjguNTNIOS40Yy0uNjIyIDAtMS4yMjUuMTc3LTEuNzQ0LjUwMnpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxhWzBdPXIpOnI9YVswXSxhWzFdIT09ZSk/KG89KDAsQS5qc3gpKFwic3ZnXCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7d2lkdGg6XCIxNFwiLGhlaWdodDpcIjE0XCIsdmlld0JveDpcIjAgMCAxNCAxNFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLGFbMV09ZSxhWzJdPW8pOm89YVsyXSxvfWZ1bmN0aW9uIHRDKGUpe3ZhciB0LG4scixvLGE9KDAseC5jKSgxMiksaT1lLmVycm9yLGw9ZS5kZWJ1Z0luZm8scz1lLmZlZWRiYWNrQnV0dG9uLGM9ZS5nZW5lcmF0ZUVycm9ySW5mbzthWzBdIT09aXx8YVsxXSE9PWM/KHQ9KDAsQS5qc3gpKHRzLHtlcnJvcjppLGdlbmVyYXRlRXJyb3JJbmZvOmN9KSxhWzBdPWksYVsxXT1jLGFbMl09dCk6dD1hWzJdLGFbM10hPT1pLm1lc3NhZ2U/KG49KDAsQS5qc3gpKHR4LHtlcnJvck1lc3NhZ2U6aS5tZXNzYWdlfSksYVszXT1pLm1lc3NhZ2UsYVs0XT1uKTpuPWFbNF07dmFyIHU9bnVsbD09bD92b2lkIDA6bC5kZXZ0b29sc0Zyb250ZW5kVXJsO3JldHVybiBhWzVdIT09dT8ocj0oMCxBLmpzeCkodGwse2RldnRvb2xzRnJvbnRlbmRVcmw6dX0pLGFbNV09dSxhWzZdPXIpOnI9YVs2XSxhWzddIT09c3x8YVs4XSE9PXR8fGFbOV0hPT1ufHxhWzEwXSE9PXI/KG89KDAsQS5qc3hzKShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS10b29sYmFyXCIsY2hpbGRyZW46W3MsdCxuLHJdfSksYVs3XT1zLGFbOF09dCxhWzldPW4sYVsxMF09cixhWzExXT1vKTpvPWFbMTFdLG99ZnVuY3Rpb24gdF8oZSl7dmFyIHQsbixyLG8sYT0oMCx4LmMpKDMpO3JldHVybihhWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9KDAsQS5qc3gpKFwiZ1wiLHtpZDpcInRodW1iLXVwLTE2XCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtpZDpcIlVuaW9uXCIsZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk02Ljg5NTMxIDIuMjM5NTlDNi43Mjk4NCAyLjEyMTQgNi41IDIuMjM5NjggNi41IDIuNDQzMDNWNS4yNDk4OUM2LjUgNi4yMTYzOSA1LjcxNjUgNi45OTk4OSA0Ljc1IDYuOTk5ODlIMi41VjEzLjQ5OTlIMTIuMTg4NEMxMi43NjIgMTMuNDk5OSAxMy4yNjIgMTMuMTA5NSAxMy40MDExIDEyLjU1MzFMMTQuNDAxMSA4LjU1MzA2QzE0LjU5ODQgNy43NjQxMiAxNC4wMDE3IDYuOTk5ODkgMTMuMTg4NCA2Ljk5OTg5SDkuMjVIOC41VjYuMjQ5ODlWMy41MTQ0NkM4LjUgMy40MzM3MiA4LjQ2MTAxIDMuMzU3OTUgOC4zOTUzMSAzLjMxMTAyTDYuODk1MzEgMi4yMzk1OVpNNSAyLjQ0MzAzQzUgMS4wMTk2MyA2LjYwODkgMC4xOTE2NTYgNy43NjcxNyAxLjAxODk5TDkuMjY3MTcgMi4wOTA0MkM5LjcyNzA2IDIuNDE4OTIgMTAgMi45NDkyOSAxMCAzLjUxNDQ2VjUuNDk5ODlIMTMuMTg4NEMxNC45Nzc1IDUuNDk5ODkgMTYuMjkwMyA3LjE4MTIxIDE1Ljg1NjMgOC45MTY4NkwxNC44NTYzIDEyLjkxNjlDMTQuNTUwMyAxNC4xNDExIDEzLjQ1MDMgMTQuOTk5OSAxMi4xODg0IDE0Ljk5OTlIMS43NUgxVjE0LjI0OTlWNi4yNDk4OVY1LjQ5OTg5SDEuNzVINC43NUM0Ljg4ODA3IDUuNDk5ODkgNSA1LjM4Nzk2IDUgNS4yNDk4OVYyLjQ0MzAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksYVswXT1yKTpyPWFbMF0sYVsxXSE9PWUpPyhvPSgwLEEuanN4KShcInN2Z1wiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjbGFzc05hbWU6XCJ0aHVtYnMtdXAtaWNvblwifSxlKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLGFbMV09ZSxhWzJdPW8pOm89YVsyXSxvfWZ1bmN0aW9uIHRrKGUpe3ZhciB0LG4scixvLGE9KDAseC5jKSgzKTtyZXR1cm4oYVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk01Ljg5NTMxIDEyLjc2MDNDNS43Mjk4NCAxMi44Nzg1IDUuNSAxMi43NjAyIDUuNSAxMi41NTY5VjkuNzVDNS41IDguNzgzNSA0LjcxNjUgOCAzLjc1IDhIMS41VjEuNUgxMS4xODg0QzExLjc2MiAxLjUgMTIuMjYyIDEuODkwMzcgMTIuNDAxMSAyLjQ0NjgzTDEzLjQwMTEgNi40NDY4M0MxMy41OTg0IDcuMjM1NzYgMTMuMDAxNyA4IDEyLjE4ODQgOEg4LjI1SDcuNVY4Ljc1VjExLjQ4NTRDNy41IDExLjU2NjIgNy40NjEwMSAxMS42NDE5IDcuMzk1MzEgMTEuNjg4OUw1Ljg5NTMxIDEyLjc2MDNaTTQgMTIuNTU2OUM0IDEzLjk4MDMgNS42MDg5IDE0LjgwODIgNi43NjcxNyAxMy45ODA5TDguMjY3MTcgMTIuOTA5NUM4LjcyNzA2IDEyLjU4MSA5IDEyLjA1MDYgOSAxMS40ODU0VjkuNUgxMi4xODg0QzEzLjk3NzUgOS41IDE1LjI5MDMgNy44MTg2OCAxNC44NTYzIDYuMDgzMDNMMTMuODU2MyAyLjA4MzAzQzEzLjU1MDMgMC44NTg4MTYgMTIuNDUwMyAwIDExLjE4ODQgMEgwLjc1SDBWMC43NVY4Ljc1VjkuNUgwLjc1SDMuNzVDMy44ODgwNyA5LjUgNCA5LjYxMTkzIDQgOS43NVYxMi41NTY5WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pLGFbMF09cik6cj1hWzBdLGFbMV0hPT1lKT8obz0oMCxBLmpzeCkoXCJzdmdcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2xhc3NOYW1lOlwidGh1bWJzLWRvd24taWNvblwifSxlKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLGFbMV09ZSxhWzJdPW8pOm89YVsyXSxvfWZ1bmN0aW9uIHRFKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiB0aihlLHQsbixyLG8sYSxpKXt0cnl7dmFyIGw9ZVthXShpKSxzPWwudmFsdWV9Y2F0Y2goZSl7bihlKTtyZXR1cm59bC5kb25lP3Qocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiB0UyhlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gdE8oZSl7dmFyIHQsbixyPWUuZXJyb3JDb2RlLG89ZS5jbGFzc05hbWUsYT0odD0oMCx3LnVzZVN0YXRlKSh7fSksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRFKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHRFKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxpPWFbMF0sbD1hWzFdLHM9aVtyXSxjPXByb2Nlc3MuZW52Ll9fTkVYVF9URUxFTUVUUllfRElTQUJMRUQsdT0oMCx3LnVzZUNhbGxiYWNrKShmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4odD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuLHIsbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119LGk9T2JqZWN0LmNyZWF0ZSgoXCJmdW5jdGlvblwiPT10eXBlb2YgSXRlcmF0b3I/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBpLm5leHQ9bCgwKSxpLnRocm93PWwoMSksaS5yZXR1cm49bCgyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gbChsKXtyZXR1cm4gZnVuY3Rpb24ocyl7dmFyIGM9W2wsc107aWYobil0aHJvdyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7aSYmKGk9MCxjWzBdJiYoYT0wKSksYTspdHJ5e2lmKG49MSxyJiYobz0yJmNbMF0/ci5yZXR1cm46Y1swXT9yLnRocm93fHwoKG89ci5yZXR1cm4pJiZvLmNhbGwociksMCk6ci5uZXh0KSYmIShvPW8uY2FsbChyLGNbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChyPTAsbyYmKGM9WzImY1swXSxvLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpvPWM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPShvPWEudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoNj09PWNbMF18fDI9PT1jWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1jWzBdJiYoIW98fGNbMV0+b1swXSYmY1sxXTxvWzNdKSl7YS5sYWJlbD1jWzFdO2JyZWFrfWlmKDY9PT1jWzBdJiZhLmxhYmVsPG9bMV0pe2EubGFiZWw9b1sxXSxvPWM7YnJlYWt9aWYobyYmYS5sYWJlbDxvWzJdKXthLmxhYmVsPW9bMl0sYS5vcHMucHVzaChjKTticmVha31vWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9Yz10LmNhbGwoZSxhKX1jYXRjaChlKXtjPVs2LGVdLHI9MH1maW5hbGx5e249bz0wfWlmKDUmY1swXSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX19KHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpsKGZ1bmN0aW9uKHQpe3ZhciBuLG87cmV0dXJuIG49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RTKGUsdCxuW3RdKX0pfXJldHVybiBlfSh7fSx0KSxvPW51bGwhPShvPXRTKHt9LHIsZSkpP286e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChvKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxlKSl9KSxufSksdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsMywsNF0pLFs0LGZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfZXJyb3JfZmVlZGJhY2s/XCIpLmNvbmNhdChuZXcgVVJMU2VhcmNoUGFyYW1zKHtlcnJvckNvZGU6cix3YXNIZWxwZnVsOmUudG9TdHJpbmcoKX0pKSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCkub2t8fGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcmVjb3JkIGZlZWRiYWNrIG9uIHRoZSBzZXJ2ZXIuXCIpLFszLDRdO2Nhc2UgMzpyZXR1cm4gY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byByZWNvcmQgZmVlZGJhY2s6XCIsdC5zZW50KCkpLFszLDRdO2Nhc2UgNDpyZXR1cm5bMl19fSl9LGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gaShlKXt0aihhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXt0aihhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfSkoKX0sW3JdKTtyZXR1cm4oMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOmVKKFwiZXJyb3ItZmVlZGJhY2tcIixvKSxyb2xlOlwicmVnaW9uXCIsXCJhcmlhLWxhYmVsXCI6XCJFcnJvciBmZWVkYmFja1wiLGNoaWxkcmVuOnZvaWQgMCE9PXM/KDAsQS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJlcnJvci1mZWVkYmFjay10aGFua3NcIixyb2xlOlwic3RhdHVzXCIsXCJhcmlhLWxpdmVcIjpcInBvbGl0ZVwiLGNoaWxkcmVuOlwiVGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrIVwifSk6KDAsQS5qc3hzKShBLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsQS5qc3gpKFwicFwiLHtjaGlsZHJlbjooMCxBLmpzeCkoXCJhXCIse2hyZWY6XCJodHRwczovL25leHRqcy5vcmcvdGVsZW1ldHJ5I2Vycm9yLWZlZWRiYWNrXCIscmVsOlwibm9vcGVuZXIgbm9yZWZlcnJlclwiLHRhcmdldDpcIl9ibGFua1wiLGNoaWxkcmVuOlwiV2FzIHRoaXMgaGVscGZ1bD9cIn0pfSksKDAsQS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1kaXNhYmxlZFwiOmM/XCJ0cnVlXCI6dm9pZCAwLFwiYXJpYS1sYWJlbFwiOlwiTWFyayBhcyBoZWxwZnVsXCIsb25DbGljazpjP3ZvaWQgMDpmdW5jdGlvbigpe3JldHVybiB1KCEwKX0sY2xhc3NOYW1lOmVKKFwiZmVlZGJhY2stYnV0dG9uXCIsITA9PT1zJiZcInZvdGVkXCIpLHRpdGxlOmM/XCJGZWVkYmFjayBkaXNhYmxlZCBkdWUgdG8gc2V0dGluZyBORVhUX1RFTEVNRVRSWV9ESVNBQkxFRFwiOnZvaWQgMCx0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46KDAsQS5qc3gpKHRfLHtcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9KX0pLCgwLEEuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGlzYWJsZWRcIjpjP1widHJ1ZVwiOnZvaWQgMCxcImFyaWEtbGFiZWxcIjpcIk1hcmsgYXMgbm90IGhlbHBmdWxcIixvbkNsaWNrOmM/dm9pZCAwOmZ1bmN0aW9uKCl7cmV0dXJuIHUoITEpfSxjbGFzc05hbWU6ZUooXCJmZWVkYmFjay1idXR0b25cIiwhMT09PXMmJlwidm90ZWRcIiksdGl0bGU6Yz9cIkZlZWRiYWNrIGRpc2FibGVkIGR1ZSB0byBzZXR0aW5nIE5FWFRfVEVMRU1FVFJZX0RJU0FCTEVEXCI6dm9pZCAwLHR5cGU6XCJidXR0b25cIixjaGlsZHJlbjooMCxBLmpzeCkodGsse1wiYXJpYS1oaWRkZW5cIjpcInRydWVcIixzdHlsZTp7dHJhbnNsYXRlOlwiMXB4IDFweFwifX0pfSldfSl9KX1mdW5jdGlvbiB0QihlKXt2YXIgdCxuLHI9KDAseC5jKSg0KSxvPWUuZXJyb3JDb2RlO3JldHVybiByWzBdIT09bz8odD1vPygwLEEuanN4KSh0Tyx7Y2xhc3NOYW1lOlwiZXJyb3ItZmVlZGJhY2tcIixlcnJvckNvZGU6b30pOm51bGwsclswXT1vLHJbMV09dCk6dD1yWzFdLHJbMl0hPT10PyhuPSgwLEEuanN4KShcImZvb3RlclwiLHtcImRhdGEtbmV4dGpzLWVycm9yLW92ZXJsYXktZm9vdGVyXCI6ITAsY2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1mb290ZXJcIixjaGlsZHJlbjp0fSksclsyXT10LHJbM109bik6bj1yWzNdLG59dmFyIHRQPVwiXFxuICAuZXJyb3Itb3ZlcmxheS1mb290ZXIge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuXFxuICAgIGdhcDogOHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICB9XFxuXFxuICAuZXJyb3ItZmVlZGJhY2sge1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG5cXG4gICAgcCB7XFxuICAgICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICAgIG1hcmdpbjogMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgXCIuY29uY2F0KFwiXFxuICAuZXJyb3ItZmVlZGJhY2sge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIH1cXG5cXG4gIC5lcnJvci1mZWVkYmFjay10aGFua3Mge1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjQpO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7IC8qIFRvIG1hdGNoIHRoZSA0cHggaW5uZXIgcGFkZGluZyBvZiB0aGUgdGh1bWJzIHVwIGFuZCBkb3duIGljb25zICovXFxuICB9XFxuXFxuICAuZmVlZGJhY2stYnV0dG9uIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kKTtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjQpO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjQpO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcblxcbiAgICAmOmZvY3VzIHtcXG4gICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgfVxcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMjAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmZlZWRiYWNrLWJ1dHRvblthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xcbiAgICBvcGFjaXR5OiAwLjc7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICB9XFxuXFxuICAuZmVlZGJhY2stYnV0dG9uLnZvdGVkIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0yMDApO1xcbiAgfVxcblxcbiAgLnRodW1icy11cC1pY29uLFxcbiAgLnRodW1icy1kb3duLWljb24ge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICB9XFxuXCIsXCJcXG5cIik7ZnVuY3Rpb24gdEkoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHRUKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiB0SShlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiB0SShlLHQpfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiB0eihlKXt2YXIgdCxuLHIsbyxhLGk9KDAseC5jKSgxMiksbD1lLmVycm9yTWVzc2FnZSxzPXRUKCgwLHcudXNlU3RhdGUpKCExKSwyKSxjPXNbMF0sdT1zWzFdLGQ9dFQoKDAsdy51c2VTdGF0ZSkoITEpLDIpLGY9ZFswXSxwPWRbMV0saD0oMCx3LnVzZVJlZikobnVsbCk7aVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PWZ1bmN0aW9uKCl7aC5jdXJyZW50JiZwKGguY3VycmVudC5zY3JvbGxIZWlnaHQ+MjAwKX0saVswXT10KTp0PWlbMF0saVsxXSE9PWw/KG49W2xdLGlbMV09bCxpWzJdPW4pOm49aVsyXSwoMCx3LnVzZUxheW91dEVmZmVjdCkodCxuKTt2YXIgbT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjIFwiLmNvbmNhdChmJiYhYz9cInRydW5jYXRlZFwiOlwiXCIpO3JldHVybiBpWzNdIT09bHx8aVs0XSE9PW0/KHI9KDAsQS5qc3gpKFwicFwiLHtyZWY6aCxpZDpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCIsY2xhc3NOYW1lOm0sY2hpbGRyZW46bH0pLGlbM109bCxpWzRdPW0saVs1XT1yKTpyPWlbNV0saVs2XSE9PWN8fGlbN10hPT1mPyhvPWYmJiFjJiYoMCxBLmpzeHMpKEEuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2dyYWRpZW50X292ZXJsYXlcIn0pLCgwLEEuanN4KShcImJ1dHRvblwiLHtvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHUoITApfSxjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZXhwYW5kX2J1dHRvblwiLFwiYXJpYS1leHBhbmRlZFwiOmMsXCJhcmlhLWNvbnRyb2xzXCI6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiLGNoaWxkcmVuOlwiU2hvdyBNb3JlXCJ9KV19KSxpWzZdPWMsaVs3XT1mLGlbOF09byk6bz1pWzhdLGlbOV0hPT1yfHxpWzEwXSE9PW8/KGE9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfd3JhcHBlclwiLGNoaWxkcmVuOltyLG9dfSksaVs5XT1yLGlbMTBdPW8saVsxMV09YSk6YT1pWzExXSxhfWZ1bmN0aW9uIHREKGUpe3ZhciB0LG49KDAseC5jKSgyKSxyPWUuZXJyb3JUeXBlO3JldHVybiBuWzBdIT09cj8odD0oMCxBLmpzeCkoXCJzcGFuXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCIsY2xhc3NOYW1lOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCIsY2hpbGRyZW46cn0pLG5bMF09cixuWzFdPXQpOnQ9blsxXSx0fWZ1bmN0aW9uIHRMKGUpe3ZhciB0LG4scj0oMCx4LmMpKDQpLG89ZS50aXRsZSxhPWUuY2xhc3NOYW1lO3JldHVybiByWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsQS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTkuMjQ5OTYgMTIuMDYwOEw4LjcxOTYzIDExLjUzMDRMNS44OTY0MSA4LjcwNzIyQzUuNTA1ODggOC4zMTY3IDUuNTA1ODggNy42ODM1MyA1Ljg5NjQxIDcuMjkzMDFMOC43MTk2MyA0LjQ2OTc4TDkuMjQ5OTYgMy45Mzk0NUwxMC4zMTA2IDUuMDAwMTFMOS43ODAyOSA1LjUzMDQ0TDcuMzEwNjIgOC4wMDAxMUw5Ljc4MDI5IDEwLjQ2OThMMTAuMzEwNiAxMS4wMDAxTDkuMjQ5OTYgMTIuMDYwOFpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09YXx8clsyXSE9PW8/KG49KDAsQS5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImFyaWEtbGFiZWxcIjpvLGNsYXNzTmFtZTphLGNoaWxkcmVuOnR9KSxyWzFdPWEsclsyXT1vLHJbM109bik6bj1yWzNdLG59ZnVuY3Rpb24gdE4oZSl7dmFyIHQsbixyPSgwLHguYykoNCksbz1lLnRpdGxlLGE9ZS5jbGFzc05hbWU7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxBLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNi43NTAxMSAzLjkzOTQ1TDcuMjgwNDQgNC40Njk3OEwxMC4xMDM3IDcuMjkzMDFDMTAuNDk0MiA3LjY4MzUzIDEwLjQ5NDIgOC4zMTY3IDEwLjEwMzcgOC43MDcyMkw3LjI4MDQ0IDExLjUzMDRMNi43NTAxMSAxMi4wNjA4TDUuNjg5NDUgMTEuMDAwMUw2LjIxOTc4IDEwLjQ2OThMOC42ODk0NSA4LjAwMDExTDYuMjE5NzggNS41MzA0NEw1LjY4OTQ1IDUuMDAwMTFMNi43NTAxMSAzLjkzOTQ1WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1hfHxyWzJdIT09bz8obj0oMCxBLmpzeCkoXCJzdmdcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNsYXNzTmFtZTphLFwiYXJpYS1sYWJlbFwiOm8sY2hpbGRyZW46dH0pLHJbMV09YSxyWzJdPW8sclszXT1uKTpuPXJbM10sbn1mdW5jdGlvbiB0UihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdE0oZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaCxtLGcseSx2PSgwLHguYykoNDApLGI9ZS5ydW50aW1lRXJyb3JzLEM9ZS5hY3RpdmVJZHgsXz1lLm9uQWN0aXZlSW5kZXhDaGFuZ2U7dlswXSE9PUN8fHZbMV0hPT1fPyhyPWZ1bmN0aW9uKCl7cmV0dXJuKDAsdy5zdGFydFRyYW5zaXRpb24pKGZ1bmN0aW9uKCl7Qz4wJiZfKE1hdGgubWF4KDAsQy0xKSl9KX0sdlswXT1DLHZbMV09Xyx2WzJdPXIpOnI9dlsyXTt2YXIgaz1yO3ZbM10hPT1DfHx2WzRdIT09X3x8dls1XSE9PWIubGVuZ3RoPyhvPWZ1bmN0aW9uKCl7cmV0dXJuKDAsdy5zdGFydFRyYW5zaXRpb24pKGZ1bmN0aW9uKCl7QzxiLmxlbmd0aC0xJiZfKE1hdGgubWF4KDAsTWF0aC5taW4oYi5sZW5ndGgtMSxDKzEpKSl9KX0sdlszXT1DLHZbNF09Xyx2WzVdPWIubGVuZ3RoLHZbNl09byk6bz12WzZdO3ZhciBFPW8saj0oMCx3LnVzZVJlZikobnVsbCksUz0oMCx3LnVzZVJlZikobnVsbCksTz0odD0oMCx3LnVzZVN0YXRlKShudWxsKSxuPTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0odCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksYS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0odCwyKXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdFIoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gdFIoZSx0KX19KHQsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLEI9T1swXSxQPU9bMV07dls3XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhhPWZ1bmN0aW9uKGUpe1AoZSl9LHZbN109YSk6YT12WzddO3ZhciBJPWE7dls4XSE9PUV8fHZbOV0hPT1rfHx2WzEwXSE9PUI/KGk9ZnVuY3Rpb24oKXtpZihudWxsIT1CKXt2YXIgZT1CLmdldFJvb3ROb2RlKCksdD1zZWxmLmRvY3VtZW50LG49ZnVuY3Rpb24oZSl7XCJBcnJvd0xlZnRcIj09PWUua2V5PyhlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxrJiZrKCkpOlwiQXJyb3dSaWdodFwiPT09ZS5rZXkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxFJiZFKCkpfTtyZXR1cm4gZS5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLG4pLGUhPT10JiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsbiksZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsbiksZSE9PXQmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixuKX19fSxsPVtCLEUsa10sdls4XT1FLHZbOV09ayx2WzEwXT1CLHZbMTFdPWksdlsxMl09bCk6KGk9dlsxMV0sbD12WzEyXSksKDAsdy51c2VFZmZlY3QpKGksbCksdlsxM10hPT1DfHx2WzE0XSE9PUJ8fHZbMTVdIT09Yi5sZW5ndGg/KHM9ZnVuY3Rpb24oKXtpZihudWxsIT1CKXt2YXIgZSx0LG49Qi5nZXRSb290Tm9kZSgpO2lmKGU9bixudWxsIT0odD1TaGFkb3dSb290KSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaGFzSW5zdGFuY2VdPyEhdFtTeW1ib2wuaGFzSW5zdGFuY2VdKGUpOmUgaW5zdGFuY2VvZiB0KXt2YXIgcj1uLmFjdGl2ZUVsZW1lbnQ7MD09PUM/ai5jdXJyZW50JiZyPT09ai5jdXJyZW50JiZqLmN1cnJlbnQuYmx1cigpOkM9PT1iLmxlbmd0aC0xJiZTLmN1cnJlbnQmJnI9PT1TLmN1cnJlbnQmJlMuY3VycmVudC5ibHVyKCl9fX0sYz1bQixDLGIubGVuZ3RoXSx2WzEzXT1DLHZbMTRdPUIsdlsxNV09Yi5sZW5ndGgsdlsxNl09cyx2WzE3XT1jKToocz12WzE2XSxjPXZbMTddKSwoMCx3LnVzZUVmZmVjdCkocyxjKTt2YXIgVD0wPT09Qyx6PTA9PT1DO3ZbMThdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHU9KDAsQS5qc3gpKHRMLHt0aXRsZTpcInByZXZpb3VzXCIsY2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1wYWdpbmF0aW9uLWJ1dHRvbi1pY29uXCJ9KSx2WzE4XT11KTp1PXZbMThdLHZbMTldIT09a3x8dlsyMF0hPT1UfHx2WzIxXSE9PXo/KGQ9KDAsQS5qc3gpKFwiYnV0dG9uXCIse3JlZjpqLHR5cGU6XCJidXR0b25cIixkaXNhYmxlZDpULFwiYXJpYS1kaXNhYmxlZFwiOnosb25DbGljazprLFwiZGF0YS1uZXh0anMtZGlhbG9nLWVycm9yLXByZXZpb3VzXCI6ITAsY2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1wYWdpbmF0aW9uLWJ1dHRvblwiLGNoaWxkcmVuOnV9KSx2WzE5XT1rLHZbMjBdPVQsdlsyMV09eix2WzIyXT1kKTpkPXZbMjJdO3ZhciBEPUMrMTt2WzIzXSE9PUN8fHZbMjRdIT09RD8oZj0oMCxBLmpzeHMpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWRpYWxvZy1lcnJvci1pbmRleFwiOkMsY2hpbGRyZW46W0QsXCIvXCJdfSksdlsyM109Qyx2WzI0XT1ELHZbMjVdPWYpOmY9dlsyNV07dmFyIEw9Yi5sZW5ndGh8fDE7dlsyNl0hPT1MPyhwPSgwLEEuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyLXRvdGFsLWNvdW50XCI6ITAsY2hpbGRyZW46TH0pLHZbMjZdPUwsdlsyN109cCk6cD12WzI3XSx2WzI4XSE9PWZ8fHZbMjldIT09cD8oaD0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1jb3VudFwiLGNoaWxkcmVuOltmLHBdfSksdlsyOF09Zix2WzI5XT1wLHZbMzBdPWgpOmg9dlszMF07dmFyIE49Qz49Yi5sZW5ndGgtMSxSPUM+PWIubGVuZ3RoLTE7cmV0dXJuIHZbMzFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG09KDAsQS5qc3gpKHROLHt0aXRsZTpcIm5leHRcIixjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXBhZ2luYXRpb24tYnV0dG9uLWljb25cIn0pLHZbMzFdPW0pOm09dlszMV0sdlszMl0hPT1FfHx2WzMzXSE9PU58fHZbMzRdIT09Uj8oZz0oMCxBLmpzeCkoXCJidXR0b25cIix7cmVmOlMsdHlwZTpcImJ1dHRvblwiLGRpc2FibGVkOk4sXCJhcmlhLWRpc2FibGVkXCI6UixvbkNsaWNrOkUsXCJkYXRhLW5leHRqcy1kaWFsb2ctZXJyb3ItbmV4dFwiOiEwLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b25cIixjaGlsZHJlbjptfSksdlszMl09RSx2WzMzXT1OLHZbMzRdPVIsdlszNV09Zyk6Zz12WzM1XSx2WzM2XSE9PWR8fHZbMzddIT09aHx8dlszOF0hPT1nPyh5PSgwLEEuanN4cykoXCJuYXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1wYWdpbmF0aW9uIGRpYWxvZy1leGNsdWRlLWNsb3NpbmctZnJvbS1vdXRzaWRlLWNsaWNrXCIscmVmOkksY2hpbGRyZW46W2QsaCxnXX0pLHZbMzZdPWQsdlszN109aCx2WzM4XT1nLHZbMzldPXkpOnk9dlszOV0seX1mdW5jdGlvbiB0WihlKXt2YXIgdCxuLHIsbyxhPSgwLHguYykoMyk7cmV0dXJuKGFbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj0oMCxBLmpzeCkoXCJjaXJjbGVcIix7Y3g6XCI3XCIsY3k6XCI3XCIscjpcIjUuNVwiLHN0cm9rZVdpZHRoOlwiM1wifSksYVswXT1yKTpyPWFbMF0sYVsxXSE9PWUpPyhvPSgwLEEuanN4KShcInN2Z1wiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxhWzFdPWUsYVsyXT1vKTpvPWFbMl0sb31mdW5jdGlvbiB0VShlKXt2YXIgdCxuLHIsbyxhLGk9KDAseC5jKSgzMSksbD1lLnZlcnNpb25JbmZvLHM9ZS5idW5kbGVyTmFtZSxjPWwuc3RhbGVuZXNzO2lmKGlbMF0hPT1zfHxpWzFdIT09Y3x8aVsyXSE9PWwpe3Y9U3ltYm9sLmZvcihcInJlYWN0LmVhcmx5X3JldHVybl9zZW50aW5lbFwiKTtuOnt2YXIgdT1mdW5jdGlvbihlKXt2YXIgdD1lLmluc3RhbGxlZCxuPWUuc3RhbGVuZXNzLHI9ZS5leHBlY3RlZCxvPVwiXCIsYT1cIlwiLGk9XCJcIixsPVwiTmV4dC5qcyBcIi5jb25jYXQodCk7c3dpdGNoKG4pe2Nhc2VcIm5ld2VyLXRoYW4tbnBtXCI6Y2FzZVwiZnJlc2hcIjpvPWwsYT1cIkxhdGVzdCBhdmFpbGFibGUgdmVyc2lvbiBpcyBkZXRlY3RlZCAoXCIuY29uY2F0KHQsXCIpLlwiKSxpPVwiZnJlc2hcIjticmVhaztjYXNlXCJzdGFsZS1wYXRjaFwiOmNhc2VcInN0YWxlLW1pbm9yXCI6bz1cIlwiLmNvbmNhdChsLFwiIChzdGFsZSlcIiksYT1cIlRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiAoXCIuY29uY2F0KHIsXCIpIGF2YWlsYWJsZSwgdXBncmFkZSByZWNvbW1lbmRlZCEgXCIpLGk9XCJzdGFsZVwiO2JyZWFrO2Nhc2VcInN0YWxlLW1ham9yXCI6bz1cIlwiLmNvbmNhdChsLFwiIChvdXRkYXRlZClcIiksYT1cIkFuIG91dGRhdGVkIHZlcnNpb24gZGV0ZWN0ZWQgKGxhdGVzdCBpcyBcIi5jb25jYXQocixcIiksIHVwZ3JhZGUgaXMgaGlnaGx5IHJlY29tbWVuZGVkIVwiKSxpPVwib3V0ZGF0ZWRcIjticmVhaztjYXNlXCJzdGFsZS1wcmVyZWxlYXNlXCI6bz1cIlwiLmNvbmNhdChsLFwiIChzdGFsZSlcIiksYT1cIlRoZXJlIGlzIGEgbmV3ZXIgY2FuYXJ5IHZlcnNpb24gKFwiLmNvbmNhdChyLFwiKSBhdmFpbGFibGUsIHBsZWFzZSB1cGdyYWRlISBcIiksaT1cInN0YWxlXCI7YnJlYWs7Y2FzZVwidW5rbm93blwiOm89XCJcIi5jb25jYXQobCxcIiAodW5rbm93bilcIiksYT1cIk5vIE5leHQuanMgdmVyc2lvbiBkYXRhIHdhcyBmb3VuZC5cIixpPVwidW5rbm93blwifXJldHVybnt0ZXh0Om8saW5kaWNhdG9yQ2xhc3M6aSx0aXRsZTphfX0obCksZD11LnRleHQsZj11LmluZGljYXRvckNsYXNzLHA9dS50aXRsZTtpZihiPWQsdz1wLG09XCJUdXJib3BhY2tcIj09PXMsYy5zdGFydHNXaXRoKFwic3RhbGVcIikpe3ZhciBoLG0sZyx5LHYsYix3LEMsXyxrPW0mJlwidHVyYm9wYWNrLXRleHRcIjtpWzEwXSE9PWs/KEM9ZUooayksaVsxMF09ayxpWzExXT1DKTpDPWlbMTFdLGlbMTJdIT09c3x8aVsxM10hPT1DPyhfPSgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOkMsY2hpbGRyZW46c30pLGlbMTJdPXMsaVsxM109QyxpWzE0XT1fKTpfPWlbMTRdLHY9KDAsQS5qc3hzKShcImFcIix7Y2xhc3NOYW1lOlwibmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyBkaWFsb2ctZXhjbHVkZS1jbG9zaW5nLWZyb20tb3V0c2lkZS1jbGlja1wiLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdmVyc2lvbi1zdGFsZW5lc3NcIixjaGlsZHJlbjpbKDAsQS5qc3gpKHRaLHtjbGFzc05hbWU6ZUooXCJ2ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3JcIixmKX0pLCgwLEEuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy12ZXJzaW9uLWNoZWNrZXJcIjohMCx0aXRsZTp3LGNoaWxkcmVuOmJ9KSxfXX0pO2JyZWFrIG59eT1cIm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgZGlhbG9nLWV4Y2x1ZGUtY2xvc2luZy1mcm9tLW91dHNpZGUtY2xpY2tcIixoPXRaLGc9ZUooXCJ2ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3JcIixmKX1pWzBdPXMsaVsxXT1jLGlbMl09bCxpWzNdPWgsaVs0XT1tLGlbNV09ZyxpWzZdPXksaVs3XT12LGlbOF09YixpWzldPXd9ZWxzZSBoPWlbM10sbT1pWzRdLGc9aVs1XSx5PWlbNl0sdj1pWzddLGI9aVs4XSx3PWlbOV07aWYodiE9PVN5bWJvbC5mb3IoXCJyZWFjdC5lYXJseV9yZXR1cm5fc2VudGluZWxcIikpcmV0dXJuIHY7aVsxNV0hPT1ofHxpWzE2XSE9PWc/KHQ9KDAsQS5qc3gpKGgse2NsYXNzTmFtZTpnfSksaVsxNV09aCxpWzE2XT1nLGlbMTddPXQpOnQ9aVsxN10saVsxOF0hPT1ifHxpWzE5XSE9PXc/KG49KDAsQS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLXZlcnNpb24tY2hlY2tlclwiOiEwLHRpdGxlOncsY2hpbGRyZW46Yn0pLGlbMThdPWIsaVsxOV09dyxpWzIwXT1uKTpuPWlbMjBdO3ZhciBFPW0mJlwidHVyYm9wYWNrLXRleHRcIjtyZXR1cm4gaVsyMV0hPT1FPyhyPWVKKEUpLGlbMjFdPUUsaVsyMl09cik6cj1pWzIyXSxpWzIzXSE9PXN8fGlbMjRdIT09cj8obz0oMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpyLGNoaWxkcmVuOnN9KSxpWzIzXT1zLGlbMjRdPXIsaVsyNV09byk6bz1pWzI1XSxpWzI2XSE9PXl8fGlbMjddIT09dHx8aVsyOF0hPT1ufHxpWzI5XSE9PW8/KGE9KDAsQS5qc3hzKShcInNwYW5cIix7Y2xhc3NOYW1lOnksY2hpbGRyZW46W3QsbixvXX0pLGlbMjZdPXksaVsyN109dCxpWzI4XT1uLGlbMjldPW8saVszMF09YSk6YT1pWzMwXSxhfWZ1bmN0aW9uIHRGKGUpe3ZhciB0LG4scixvLGE9KDAseC5jKSgxMSksaT1lLnJ1bnRpbWVFcnJvcnMsbD1lLmFjdGl2ZUlkeCxzPWUuc2V0QWN0aXZlSW5kZXgsYz1lLnZlcnNpb25JbmZvLHU9cHJvY2Vzcy5lbnYuX19ORVhUX0JVTkRMRVJ8fFwiV2VicGFja1wiO2FbMF0hPT1pPyh0PW51bGwhPWk/aTpbXSxhWzBdPWksYVsxXT10KTp0PWFbMV07dmFyIGQ9bnVsbCE9bD9sOjAsZj1udWxsIT1zP3M6dHE7cmV0dXJuIGFbMl0hPT10fHxhWzNdIT09ZHx8YVs0XSE9PWY/KG49KDAsQS5qc3gpKHRILHtzaWRlOlwibGVmdFwiLGNoaWxkcmVuOigwLEEuanN4KSh0TSx7cnVudGltZUVycm9yczp0LGFjdGl2ZUlkeDpkLG9uQWN0aXZlSW5kZXhDaGFuZ2U6Zn0pfSksYVsyXT10LGFbM109ZCxhWzRdPWYsYVs1XT1uKTpuPWFbNV0sYVs2XSE9PWM/KHI9YyYmKDAsQS5qc3gpKHRILHtzaWRlOlwicmlnaHRcIixjaGlsZHJlbjooMCxBLmpzeCkodFUse3ZlcnNpb25JbmZvOmMsYnVuZGxlck5hbWU6dX0pfSksYVs2XT1jLGFbN109cik6cj1hWzddLGFbOF0hPT1ufHxhWzldIT09cj8obz0oMCxBLmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1uYXZcIjohMCxjaGlsZHJlbjpbbixyXX0pLGFbOF09bixhWzldPXIsYVsxMF09byk6bz1hWzEwXSxvfWZ1bmN0aW9uIHRxKCl7fWZ1bmN0aW9uIHRIKGUpe3ZhciB0LG4scj0oMCx4LmMpKDQpLG89ZS5jaGlsZHJlbixhPWUuc2lkZSxpPXZvaWQgMD09PWE/XCJsZWZ0XCI6YTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4KSh0Vix7fSksclswXT10KTp0PXJbMF0sclsxXSE9PW98fHJbMl0hPT1pPyhuPSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1ub3RjaFwiLFwiZGF0YS1zaWRlXCI6aSxjaGlsZHJlbjpbbyx0XX0pLHJbMV09byxyWzJdPWksclszXT1uKTpuPXJbM10sbn1mdW5jdGlvbiB0Vigpe3ZhciBlLHQsbixyPSgwLHguYykoMyk7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT17bWFza1R5cGU6XCJhbHBoYVwifSxyWzBdPWUpOmU9clswXSxyWzFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsQS5qc3hzKShcIm1hc2tcIix7aWQ6XCJlcnJvcl9vdmVybGF5X25hdl9tYXNrMF8yNjY3XzE0Njg3XCIsc3R5bGU6ZSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIwXCIseTpcIi0xXCIsd2lkdGg6XCI2MFwiLGhlaWdodDpcIjQzXCIsY2hpbGRyZW46WygwLEEuanN4cykoXCJtYXNrXCIse2lkOlwiZXJyb3Jfb3ZlcmxheV9uYXZfcGF0aF8xX291dHNpZGVfMV8yNjY3XzE0Njg3XCIsbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMFwiLHk6XCItMVwiLHdpZHRoOlwiNjBcIixoZWlnaHQ6XCI0M1wiLGZpbGw6XCJibGFja1wiLGNoaWxkcmVuOlsoMCxBLmpzeCkoXCJyZWN0XCIse2ZpbGw6XCJ3aGl0ZVwiLHk6XCItMVwiLHdpZHRoOlwiNjBcIixoZWlnaHQ6XCI0M1wifSksKDAsQS5qc3gpKFwicGF0aFwiLHtkOlwiTTEgMEw4LjA3ODMgMEMxNS43NzIgMCAyMi43ODM2IDQuNDEzMjQgMjYuMTExIDExLjM1MDFMMzQuODg4OSAyOS42NDk4QzM4LjIxNjQgMzYuNTg2OCA0NS4yMjggNDEgNTIuOTIxNyA0MUg2MEgxTDEgMFpcIn0pXX0pLCgwLEEuanN4KShcInBhdGhcIix7ZDpcIk0xIDBMOC4wNzgzIDBDMTUuNzcyIDAgMjIuNzgzNiA0LjQxMzI0IDI2LjExMSAxMS4zNTAxTDM0Ljg4ODkgMjkuNjQ5OEMzOC4yMTY0IDM2LjU4NjggNDUuMjI4IDQxIDUyLjkyMTcgNDFINjBIMUwxIDBaXCIsZmlsbDpcIndoaXRlXCJ9KSwoMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNMSAwVi0xSDBWMEwxIDBaTTEgNDFIMFY0MkgxVjQxWk0zNC44ODg5IDI5LjY0OThMMzMuOTg3MyAzMC4wODIzTDM0Ljg4ODkgMjkuNjQ5OFpNMjYuMTExIDExLjM1MDFMMjcuMDEyNyAxMC45MTc3TDI2LjExMSAxMS4zNTAxWk0xIDFIOC4wNzgzVi0xSDFWMVpNNjAgNDBIMVY0Mkg2MFY0MFpNMiA0MVYwTDAgMEwwIDQxSDJaTTI1LjIwOTQgMTEuNzgyNkwzMy45ODczIDMwLjA4MjNMMzUuNzkwNiAyOS4yMTc0TDI3LjAxMjcgMTAuOTE3N0wyNS4yMDk0IDExLjc4MjZaTTUyLjkyMTcgNDJINjBWNDBINTIuOTIxN1Y0MlpNMzMuOTg3MyAzMC4wODIzQzM3LjQ4MTEgMzcuMzY2MSA0NC44NDMzIDQyIDUyLjkyMTcgNDJWNDBDNDUuNjEyNyA0MCAzOC45NTE3IDM1LjgwNzQgMzUuNzkwNiAyOS4yMTc0TDMzLjk4NzMgMzAuMDgyM1pNOC4wNzgzIDFDMTUuMzg3MyAxIDIyLjA0ODMgNS4xOTI1NyAyNS4yMDk0IDExLjc4MjZMMjcuMDEyNyAxMC45MTc3QzIzLjUxODggMy42MzM5IDE2LjE1NjcgLTEgOC4wNzgzIC0xVjFaXCIsZmlsbDpcImJsYWNrXCIsbWFzazpcInVybCgjZXJyb3Jfb3ZlcmxheV9uYXZfcGF0aF8xX291dHNpZGVfMV8yNjY3XzE0Njg3KVwifSldfSksclsxXT10KTp0PXJbMV0sclsyXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhuPSgwLEEuanN4cykoXCJzdmdcIix7d2lkdGg6XCI2MFwiLGhlaWdodDpcIjQyXCIsdmlld0JveDpcIjAgMCA2MCA0MlwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktbm90Y2gtdGFpbFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJub25lXCIsY2hpbGRyZW46W3QsKDAsQS5qc3hzKShcImdcIix7bWFzazpcInVybCgjZXJyb3Jfb3ZlcmxheV9uYXZfbWFzazBfMjY2N18xNDY4NylcIixjaGlsZHJlbjpbKDAsQS5qc3hzKShcIm1hc2tcIix7aWQ6XCJlcnJvcl9vdmVybGF5X25hdl9wYXRoXzNfb3V0c2lkZV8yXzI2NjdfMTQ2ODdcIixtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCItMVwiLHk6XCIwLjAyNDQxNDFcIix3aWR0aDpcIjYwXCIsaGVpZ2h0OlwiNDNcIixmaWxsOlwiYmxhY2tcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwicmVjdFwiLHtmaWxsOlwid2hpdGVcIix4OlwiLTFcIix5OlwiMC4wMjQ0MTQxXCIsd2lkdGg6XCI2MFwiLGhlaWdodDpcIjQzXCJ9KSwoMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxSDcuMDc4M0MxNC43NzIgMS4wMjQ0MSAyMS43ODM2IDUuNDM3NjUgMjUuMTExIDEyLjM3NDZMMzMuODg4OSAzMC42NzQzQzM3LjIxNjQgMzcuNjExMiA0NC4yMjggNDIuMDI0NCA1MS45MjE3IDQyLjAyNDRINTlIMEwwIDEuMDI0NDFaXCJ9KV19KSwoMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxSDcuMDc4M0MxNC43NzIgMS4wMjQ0MSAyMS43ODM2IDUuNDM3NjUgMjUuMTExIDEyLjM3NDZMMzMuODg4OSAzMC42NzQzQzM3LjIxNjQgMzcuNjExMiA0NC4yMjggNDIuMDI0NCA1MS45MjE3IDQyLjAyNDRINTlIMEwwIDEuMDI0NDFaXCIsZmlsbDpcInZhcigtLWJhY2tncm91bmQtY29sb3IpXCJ9KSwoMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxTDAgMC4wMjQ0MTQxSC0xVjEuMDI0NDFIMFpNMCA0Mi4wMjQ0SC0xVjQzLjAyNDRIMEwwIDQyLjAyNDRaTTMzLjg4ODkgMzAuNjc0M0wzMi45ODczIDMxLjEwNjhMMzMuODg4OSAzMC42NzQzWk0yNS4xMTEgMTIuMzc0NkwyNi4wMTI3IDExLjk0MjFMMjUuMTExIDEyLjM3NDZaTTAgMi4wMjQ0MUg3LjA3ODNWMC4wMjQ0MTQxSDBMMCAyLjAyNDQxWk01OSA0MS4wMjQ0SDBMMCA0My4wMjQ0SDU5VjQxLjAyNDRaTTEgNDIuMDI0NEwxIDEuMDI0NDFILTFMLTEgNDIuMDI0NEgxWk0yNC4yMDk0IDEyLjgwNzFMMzIuOTg3MyAzMS4xMDY4TDM0Ljc5MDYgMzAuMjQxOEwyNi4wMTI3IDExLjk0MjFMMjQuMjA5NCAxMi44MDcxWk01MS45MjE3IDQzLjAyNDRINTlWNDEuMDI0NEg1MS45MjE3VjQzLjAyNDRaTTMyLjk4NzMgMzEuMTA2OEMzNi40ODExIDM4LjM5MDUgNDMuODQzMyA0My4wMjQ0IDUxLjkyMTcgNDMuMDI0NFY0MS4wMjQ0QzQ0LjYxMjcgNDEuMDI0NCAzNy45NTE3IDM2LjgzMTggMzQuNzkwNiAzMC4yNDE4TDMyLjk4NzMgMzEuMTA2OFpNNy4wNzgzIDIuMDI0NDFDMTQuMzg3MyAyLjAyNDQxIDIxLjA0ODMgNi4yMTY5OSAyNC4yMDk0IDEyLjgwNzFMMjYuMDEyNyAxMS45NDIxQzIyLjUxODggNC42NTgzMSAxNS4xNTY3IDAuMDI0NDE0MSA3LjA3ODMgMC4wMjQ0MTQxVjIuMDI0NDFaXCIsZmlsbDpcInZhcigtLXN0cm9rZS1jb2xvcilcIixtYXNrOlwidXJsKCNlcnJvcl9vdmVybGF5X25hdl9wYXRoXzNfb3V0c2lkZV8yXzI2NjdfMTQ2ODcpXCJ9KV19KV19KSxyWzJdPW4pOm49clsyXSxufWZ1bmN0aW9uIHQkKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgdFc9W1wiW2RhdGEtbmV4dC1tYXJrXVwiLFwiW2RhdGEtaXNzdWVzLW9wZW5dXCIsXCIjbmV4dGpzLWRldi10b29scy1tZW51XCIsXCJbZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1uYXZdXCIsXCJbZGF0YS1pbmZvLXBvcG92ZXJdXCIsXCJbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtb3ZlcmxheV1cIixcIltkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1mb290ZXJdXCIsXCJbZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1mb290ZXJdXCJdLHRZPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdixiLEMsXyxrLEUsaj0oMCx4LmMpKDIzKTtqWzBdIT09ZT8oZz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiY2hpbGRyZW5cIixcImNsYXNzTmFtZVwiLFwib25DbG9zZVwiLFwiYXJpYS1sYWJlbGxlZGJ5XCIsXCJhcmlhLWRlc2NyaWJlZGJ5XCJdKSxwPWUuY2hpbGRyZW4saD1lLmNsYXNzTmFtZSxtPWUub25DbG9zZSxmPWVbXCJhcmlhLWxhYmVsbGVkYnlcIl0sZD1lW1wiYXJpYS1kZXNjcmliZWRieVwiXSxqWzBdPWUsalsxXT1kLGpbMl09ZixqWzNdPXAsals0XT1oLGpbNV09bSxqWzZdPWcpOihkPWpbMV0sZj1qWzJdLHA9alszXSxoPWpbNF0sbT1qWzVdLGc9als2XSk7dmFyIFM9dy51c2VSZWYobnVsbCksTz0odD13LnVzZVN0YXRlKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuaGFzRm9jdXMoKT9cImRpYWxvZ1wiOnZvaWQgMCksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHQkKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHQkKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxCPU9bMF0sUD1PWzFdO3JldHVybihqWzddIT09bT8oeT1mdW5jdGlvbihlKXtyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLG51bGw9PW0/dm9pZCAwOm0oKX0sals3XT1tLGpbOF09eSk6eT1qWzhdLHI9UyxvPXRXLGE9eSwocz0oMCx4LmMpKDUpKVswXSE9PW98fHNbMV0hPT1yfHxzWzJdIT09YT8oaT1mdW5jdGlvbigpe3ZhciBlPXImJlwiY3VycmVudFwiaW4gcj9yLmN1cnJlbnQ6cjtpZihudWxsIT1lJiZudWxsIT1hKXt2YXIgdD1mdW5jdGlvbih0KXshKCFlfHxlLmNvbnRhaW5zKHQudGFyZ2V0KSkmJihvLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQudGFyZ2V0LmNsb3Nlc3QoZSl9KXx8YSh0KSl9LG49ZS5nZXRSb290Tm9kZSgpO3JldHVybiBuLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsdCksbi5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIix0LHtwYXNzaXZlOiExfSksZnVuY3Rpb24oKXtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsdCksbi5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIix0KX19fSxsPVthLHIsb10sc1swXT1vLHNbMV09cixzWzJdPWEsc1szXT1pLHNbNF09bCk6KGk9c1szXSxsPXNbNF0pLHcudXNlRWZmZWN0KGksbCksals5XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh2PWZ1bmN0aW9uKCl7aWYobnVsbCE9Uy5jdXJyZW50KXt2YXIgZT1mdW5jdGlvbigpe1AoZG9jdW1lbnQuaGFzRm9jdXMoKT9cImRpYWxvZ1wiOnZvaWQgMCl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsZSksZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsZSl9fX0sYj1bXSxqWzldPXYsalsxMF09Yik6KHY9als5XSxiPWpbMTBdKSx3LnVzZUVmZmVjdCh2LGIpLGpbMTFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KEM9ZnVuY3Rpb24oKXt2YXIgZSx0LG49Uy5jdXJyZW50LHI9bnVsbD09bj92b2lkIDA6bi5nZXRSb290Tm9kZSgpLG89KGU9cixudWxsIT0odD1TaGFkb3dSb290KSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaGFzSW5zdGFuY2VdPyEhdFtTeW1ib2wuaGFzSW5zdGFuY2VdKGUpOmUgaW5zdGFuY2VvZiB0KT9udWxsPT1yP3ZvaWQgMDpyLmFjdGl2ZUVsZW1lbnQ6bnVsbDtyZXR1cm4gbnVsbD09bnx8bi5mb2N1cygpLGZ1bmN0aW9uKCl7bnVsbD09bnx8bi5ibHVyKCksbnVsbD09b3x8by5mb2N1cygpfX0sXz1bXSxqWzExXT1DLGpbMTJdPV8pOihDPWpbMTFdLF89alsxMl0pLHcudXNlRWZmZWN0KEMsXyksalsxM10hPT1tPyhrPWZ1bmN0aW9uKGUpe1wiRXNjYXBlXCI9PT1lLmtleSYmKG51bGw9PW18fG0oKSl9LGpbMTNdPW0salsxNF09ayk6az1qWzE0XSxqWzE1XSE9PWR8fGpbMTZdIT09Znx8alsxN10hPT1wfHxqWzE4XSE9PWh8fGpbMTldIT09Z3x8alsyMF0hPT1CfHxqWzIxXSE9PWspPyhFPSgwLEEuanN4KShcImRpdlwiLChjPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3JlZjpTLHRhYkluZGV4Oi0xLFwiZGF0YS1uZXh0anMtZGlhbG9nXCI6ITAsXCJkYXRhLW5leHRqcy1zY3JvbGxhYmxlLWNvbnRlbnRcIjohMCxyb2xlOkIsXCJhcmlhLWxhYmVsbGVkYnlcIjpmLFwiYXJpYS1kZXNjcmliZWRieVwiOmQsXCJhcmlhLW1vZGFsXCI6XCJ0cnVlXCIsY2xhc3NOYW1lOmgsb25LZXlEb3duOmt9LGcpLHU9dT17Y2hpbGRyZW46cH0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh1KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh1KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSxlKSl9KSxjKSksalsxNV09ZCxqWzE2XT1mLGpbMTddPXAsalsxOF09aCxqWzE5XT1nLGpbMjBdPUIsalsyMV09ayxqWzIyXT1FKTpFPWpbMjJdLEV9O2Z1bmN0aW9uIHRLKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYz0oMCx4LmMpKDEyKTtyZXR1cm4oY1swXSE9PWU/KGk9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLCEodC5pbmRleE9mKG4pPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCIsXCJvbkNsb3NlXCIsXCJmb290ZXJcIl0pLHI9ZS5jaGlsZHJlbixhPWUub25DbG9zZSxvPWUuZm9vdGVyLGNbMF09ZSxjWzFdPXIsY1syXT1vLGNbM109YSxjWzRdPWkpOihyPWNbMV0sbz1jWzJdLGE9Y1szXSxpPWNbNF0pLGNbNV0hPT1yfHxjWzZdIT09YXx8Y1s3XSE9PWkpPyhsPSgwLEEuanN4KSh0WSwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImFyaWEtbGFiZWxsZWRieVwiOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCIsXCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktZGlhbG9nLXNjcm9sbFwiLG9uQ2xvc2U6YX0saSksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxjWzVdPXIsY1s2XT1hLGNbN109aSxjWzhdPWwpOmw9Y1s4XSxjWzldIT09b3x8Y1sxMF0hPT1sPyhzPSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1kaWFsb2ctY29udGFpbmVyXCIsY2hpbGRyZW46W2wsb119KSxjWzldPW8sY1sxMF09bCxjWzExXT1zKTpzPWNbMTFdLHN9ZnVuY3Rpb24gdFgoZSl7dmFyIHQsbixyLG89KDAseC5jKSgyKTtyZXR1cm4gb1swXSE9PWU/KHI9KDAsQS5qc3gpKFwiZGl2XCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXCI6ITB9LGUpLG49bj17Y2hpbGRyZW46ZS5jaGlsZHJlbn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksb1swXT1lLG9bMV09cik6cj1vWzFdLHJ9ZnVuY3Rpb24gdEcoZSl7dmFyIHQsbj0oMCx4LmMpKDIpLHI9ZS5jaGlsZHJlbjtyZXR1cm4gblswXSE9PXI/KHQ9KDAsQS5qc3gpKHRYLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIixjaGlsZHJlbjpyfSksblswXT1yLG5bMV09dCk6dD1uWzFdLHR9ZnVuY3Rpb24gdFEoZSl7dmFyIHQsbj0oMCx4LmMpKDIpLHI9ZS5jaGlsZHJlbjtyZXR1cm4gblswXSE9PXI/KHQ9KDAsQS5qc3gpKGVLLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5XCIsY2hpbGRyZW46cn0pLG5bMF09cixuWzFdPXQpOnQ9blsxXSx0fXZhciB0Sj0wLHQwPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaSxsLHM9KDAseC5jKSg5KTtyZXR1cm4oc1swXSE9PWU/KGE9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLCEodC5pbmRleE9mKG4pPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLFtcImNsYXNzTmFtZVwiLFwiY2hpbGRyZW5cIl0pLG89ZS5jbGFzc05hbWUscj1lLmNoaWxkcmVuLHNbMF09ZSxzWzFdPXIsc1syXT1vLHNbM109YSk6KHI9c1sxXSxvPXNbMl0sYT1zWzNdKSxzWzRdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGk9W10sc1s0XT1pKTppPXNbNF0sdy51c2VFZmZlY3QodDIsaSksc1s1XSE9PXJ8fHNbNl0hPT1vfHxzWzddIT09YSk/KGw9KDAsQS5qc3gpKFwiZGl2XCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheVwiOiEwLGNsYXNzTmFtZTpvfSxhKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLHNbNV09cixzWzZdPW8sc1s3XT1hLHNbOF09bCk6bD1zWzhdLGx9O2Z1bmN0aW9uIHQxKCl7c2V0VGltZW91dChmdW5jdGlvbigpezAhPT10SiYmMD09LS10SiYmKHZvaWQgMCE9PW4mJihkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD1uLG49dm9pZCAwKSx2b2lkIDAhPT1yJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz1yLHI9dm9pZCAwKSl9KX1mdW5jdGlvbiB0Migpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoISh0SisrPjApKXt2YXIgZT13aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7ZT4wJiYobj1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD1cIlwiLmNvbmNhdChlLFwicHhcIikpLHI9ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyxkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PVwiaGlkZGVuXCJ9fSksdDF9ZnVuY3Rpb24gdDQoKXt2YXIgZSx0LG49KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgcGFkZGluZzogaW5pdGlhbDtcXG4gICAgdG9wOiAxMHZoO1xcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiB0ND1mdW5jdGlvbigpe3JldHVybiBufSxufWZ1bmN0aW9uIHQ1KGUpe3ZhciB0LG4scixvLGEsaT0oMCx4LmMpKDYpO3JldHVybihpWzBdIT09ZT8obz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiY2hpbGRyZW5cIl0pLHI9ZS5jaGlsZHJlbixpWzBdPWUsaVsxXT1yLGlbMl09byk6KHI9aVsxXSxvPWlbMl0pLGlbM10hPT1yfHxpWzRdIT09byk/KGE9KDAsQS5qc3gpKHQwLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sbyksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxpWzNdPXIsaVs0XT1vLGlbNV09YSk6YT1pWzVdLGF9dmFyIHQzPWV1KHQ0KCkpO2Z1bmN0aW9uIHQ2KGUpe3ZhciB0LG4scixvPSgwLHguYykoNCksYT1NYXRoLm1pbihlLmVycm9yQ291bnQtZS5hY3RpdmVJZHgtMSwyKTtyZXR1cm4gb1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciBlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0xXCIsY2hpbGRyZW46XCIxXCJ9KSxuPSgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciBlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0yXCIsY2hpbGRyZW46XCIyXCJ9KSxvWzBdPXQsb1sxXT1uKToodD1vWzBdLG49b1sxXSksb1syXSE9PWE/KHI9KDAsQS5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFja1wiLGNoaWxkcmVuOigwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stc3RhY2tcIixcImRhdGEtc3RhY2stY291bnRcIjphLGNoaWxkcmVuOlt0LG5dfSl9KSxvWzJdPWEsb1szXT1yKTpyPW9bM10scn1mdW5jdGlvbiB0OShlKXt2YXIgdCxuPSgwLHguYykoMikscj1lLmVudmlyb25tZW50TmFtZTtyZXR1cm4gblswXSE9PXI/KHQ9KDAsQS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWVudmlyb25tZW50LW5hbWUtbGFiZWxcIjohMCxjaGlsZHJlbjpyfSksblswXT1yLG5bMV09dCk6dD1uWzFdLHR9ZnVuY3Rpb24gdDgoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHQ3KGUpe3ZhciB0LG4scj1udWxsPT1lP3ZvaWQgMDplLmdldFJvb3ROb2RlKCk7cmV0dXJuKHQ9cixudWxsIT0obj1TaGFkb3dSb290KSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbltTeW1ib2wuaGFzSW5zdGFuY2VdPyEhbltTeW1ib2wuaGFzSW5zdGFuY2VdKHQpOnQgaW5zdGFuY2VvZiBuKT9udWxsPT1yP3ZvaWQgMDpyLmFjdGl2ZUVsZW1lbnQ6bnVsbH1mdW5jdGlvbiBuZShlLHQsbixyLG8pe3ZhciBhLGksbD0oMCx4LmMpKDcpO2xbMF0hPT1ufHxsWzFdIT09cnx8bFsyXSE9PW98fGxbM10hPT1lfHxsWzRdIT09dD8oYT1mdW5jdGlvbigpe2lmKG4pe3ZhciBhLGk9b3x8KG51bGw9PShhPWUuY3VycmVudCk/dm9pZCAwOmEub3duZXJEb2N1bWVudCksbD1mdW5jdGlvbihuKXt2YXIgbyxhLGk9bi50YXJnZXQ7IShlLmN1cnJlbnQmJmUuY3VycmVudC5jb250YWlucyhpKSkmJihudWxsIT0obz1lLmN1cnJlbnQpJiZvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpJiZuLmNsaWVudFg+PWUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LTEwJiZuLmNsaWVudFg8PWUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCsxMCYmbi5jbGllbnRZPj1lLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLTEwJiZuLmNsaWVudFk8PWUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20rMTB8fG51bGwhPShhPXQuY3VycmVudCkmJmEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkmJm4uY2xpZW50WD49dC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtMTAmJm4uY2xpZW50WDw9dC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KzEwJiZuLmNsaWVudFk+PXQuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtMTAmJm4uY2xpZW50WTw9dC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSsxMHx8cihcIm91dHNpZGVcIikpfSxzPWZ1bmN0aW9uKGUpe1wiRXNjYXBlXCI9PT1lLmtleSYmcihcImVzY2FwZVwiKX07cmV0dXJuIG51bGw9PWl8fGkuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGwpLG51bGw9PWl8fGkuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixzKSxmdW5jdGlvbigpe251bGw9PWl8fGkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGwpLG51bGw9PWl8fGkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixzKX19fSxpPVtuLHIsbyxlLHRdLGxbMF09bixsWzFdPXIsbFsyXT1vLGxbM109ZSxsWzRdPXQsbFs1XT1hLGxbNl09aSk6KGE9bFs1XSxpPWxbNl0pLCgwLHcudXNlRWZmZWN0KShhLGkpfXZhciBudD1cImN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMSlcIixubj0oMCx3LmZvcndhcmRSZWYpKGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPSgwLHguYykoOSksYT1lLnN0b3AsaT1lLmJsdXIsbD1lLnNpZGUscz1lLnN0eWxlLGM9ZS5oZWlnaHQsdT1cIlwiLmNvbmNhdChjLFwicHhcIik7b1swXSE9PWl8fG9bMV0hPT1hfHxvWzJdIT09c3x8b1szXSE9PXU/KG49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCItLXN0b3BcIjphLFwiLS1ibHVyXCI6aSxcIi0taGVpZ2h0XCI6dX0scyksb1swXT1pLG9bMV09YSxvWzJdPXMsb1szXT11LG9bNF09bik6bj1vWzRdO3ZhciBkPW47cmV0dXJuIG9bNV0hPT10fHxvWzZdIT09bHx8b1s3XSE9PWQ/KHI9KDAsQS5qc3gpKFwiZGl2XCIse3JlZjp0LFwiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtbmV4dGpzLXNjcm9sbC1mYWRlclwiOiEwLGNsYXNzTmFtZTpcIm5leHRqcy1zY3JvbGwtZmFkZXJcIixcImRhdGEtc2lkZVwiOmwsc3R5bGU6ZH0pLG9bNV09dCxvWzZdPWwsb1s3XT1kLG9bOF09cik6cj1vWzhdLHJ9KTtmdW5jdGlvbiBucihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbm8oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG5yKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG5yKGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBuYT0oMCx3LmZvcndhcmRSZWYpKGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdixiLEMsXyxrPSgwLHguYykoMTMpO2tbMF0hPT1lPyh2PWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwibWVhc3VyZVwiXSksZz1lLmNoaWxkcmVuLHk9ZS5tZWFzdXJlLGtbMF09ZSxrWzFdPWcsa1syXT15LGtbM109dik6KGc9a1sxXSx5PWtbMl0sdj1rWzNdKTt2YXIgRT1ubygoMCx3LnVzZVN0YXRlKShudWxsKSwyKSxqPUVbMF0sUz1FWzFdLE89bm8oKG49aixyPXksbD0oMCx4LmMpKDcpLGM9KHM9bm8oKDAsdy51c2VTdGF0ZSkoMCksMikpWzBdLHU9c1sxXSxmPShkPW5vKCgwLHcudXNlU3RhdGUpKCEwKSwyKSlbMF0scD1kWzFdLGxbMF0hPT1ufHxsWzFdIT09cj8obz1mdW5jdGlvbigpe2lmKHImJm4pe3ZhciBlLHQ9bmV3IFJlc2l6ZU9ic2VydmVyKGZ1bmN0aW9uKHQpe3ZhciBuPW5vKHQsMSlbMF0uY29udGVudFJlY3Q7Y2xlYXJUaW1lb3V0KGUpLGU9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtwKCExKX0sMTAwKSx1KG4uaGVpZ2h0KX0pO3JldHVybiB0Lm9ic2VydmUobiksZnVuY3Rpb24oKXtyZXR1cm4gdC5kaXNjb25uZWN0KCl9fX0sYT1bcixuXSxsWzBdPW4sbFsxXT1yLGxbMl09byxsWzNdPWEpOihvPWxbMl0sYT1sWzNdKSwoMCx3LnVzZUVmZmVjdCkobyxhKSxsWzRdIT09Y3x8bFs1XSE9PWY/KGk9W2MsZl0sbFs0XT1jLGxbNV09ZixsWzZdPWkpOmk9bFs2XSxpKSwyKSxCPU9bMF0sUD1PWzFdP1wiYXV0b1wiOkI7cmV0dXJuKGtbNF0hPT1QPyhiPXtoZWlnaHQ6UCx0cmFuc2l0aW9uOlwiaGVpZ2h0IDI1MG1zIHZhcigtLXRpbWluZy1zd2lmdClcIn0sa1s0XT1QLGtbNV09Yik6Yj1rWzVdLGtbNl0hPT1nPyhDPSgwLEEuanN4KShcImRpdlwiLHtyZWY6UyxjaGlsZHJlbjpnfSksa1s2XT1nLGtbN109Qyk6Qz1rWzddLGtbOF0hPT12fHxrWzldIT09dHx8a1sxMF0hPT1ifHxrWzExXSE9PUMpPyhfPSgwLEEuanN4KShcImRpdlwiLChoPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sdiksbT1tPXtyZWY6dCxzdHlsZTpiLGNoaWxkcmVuOkN9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGgsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobSkpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobSkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGgsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sZSkpfSksaCkpLGtbOF09dixrWzldPXQsa1sxMF09YixrWzExXT1DLGtbMTJdPV8pOl89a1sxMl0sX30pO2Z1bmN0aW9uIG5pKGUpe3ZhciB0LG4scixvPSgwLHguYykoNik7b1swXSE9PWU/KG49ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLCEodC5pbmRleE9mKG4pPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLFtcImZpeGVkXCJdKSx0PWUuZml4ZWQsb1swXT1lLG9bMV09dCxvWzJdPW4pOih0PW9bMV0sbj1vWzJdKTt2YXIgYT0hIXR8fHZvaWQgMDtyZXR1cm4gb1szXSE9PW58fG9bNF0hPT1hPyhyPSgwLEEuanN4KShcImRpdlwiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe1wiZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXCI6ITAsXCJkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3AtZml4ZWRcIjphfSxuKSksb1szXT1uLG9bNF09YSxvWzVdPXIpOnI9b1s1XSxyfWZ1bmN0aW9uIG5sKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBucyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbmMoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIG51KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBubChlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBubChlLHQpfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiBuZChlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLG0sZyx5LHYsYixDLF8sayxFLGosUz0oMCx4LmMpKDY1KSxPPWUuZXJyb3JNZXNzYWdlLEI9ZS5lcnJvclR5cGUsUD1lLmNoaWxkcmVuLEk9ZS5lcnJvckNvZGUsVD1lLmVycm9yQ291bnQsej1lLmVycm9yLEQ9ZS5kZWJ1Z0luZm8sTD1lLmlzQnVpbGRFcnJvcixOPWUub25DbG9zZSxSPWUudmVyc2lvbkluZm8sTT1lLnJ1bnRpbWVFcnJvcnMsWj1lLmFjdGl2ZUlkeCxVPWUuc2V0QWN0aXZlSW5kZXgsRj1lLmlzVHVyYm9wYWNrLHE9ZS5kaWFsb2dSZXNpemVyUmVmLEg9ZS5nZW5lcmF0ZUVycm9ySW5mbyxWPWUucmVuZGVyZWQsJD1lLnRyYW5zaXRpb25EdXJhdGlvbk1zLFc9dm9pZCAwPT09Vnx8VixZPVwiXCIuY29uY2F0KCQsXCJtc1wiKTtTWzBdIT09WT8ocj17XCItLXRyYW5zaXRpb24tZHVyYXRpb25cIjpZfSxTWzBdPVksU1sxXT1yKTpyPVNbMV07dmFyIEs9cjtTWzJdIT09V3x8U1szXSE9PUs/KG89e1wiZGF0YS1yZW5kZXJlZFwiOlcsc3R5bGU6S30sU1syXT1XLFNbM109SyxTWzRdPW8pOm89U1s0XTt2YXIgWD1vLEc9bnUody51c2VTdGF0ZSghISQpLDIpLFE9R1swXSxKPUdbMV0sZWU9dy51c2VSZWYobnVsbCksZXQ9ISFJLGVuPXcudXNlUmVmKG51bGwpO3Q9ZW4sbj1XLCgwLHcudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKGUpe2lmKFwiVGFiXCI9PT1lLmtleSYmbnVsbCE9PXIpe3ZhciB0LG4sbyxhPShuPSh0PXIucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknKSk/W3RbMF0sdFt0Lmxlbmd0aC0xXV06W10sbz0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHQ4KGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHQ4KGUsdCl9fShuLG8pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxpPWFbMF0sbD1hWzFdLHM9dDcocik7ZS5zaGlmdEtleT9zPT09aSYmKG51bGw9PWx8fGwuZm9jdXMoKSxlLnByZXZlbnREZWZhdWx0KCkpOnM9PT1sJiYobnVsbD09aXx8aS5mb2N1cygpLGUucHJldmVudERlZmF1bHQoKSl9fSxyPW51bGwsbz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYocj10LmN1cnJlbnQsbiludWxsPT1yfHxyLmZvY3VzKCksbnVsbD09cnx8ci5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpO2Vsc2UgdDcocil9KTtyZXR1cm4gZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQobyksbnVsbD09cnx8ci5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpfX0sW25dKSxTWzVdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGE9ZnVuY3Rpb24oZSl7aWYoZWUuY3VycmVudCl7dmFyIHQsbixyPSh0PWUuY3VycmVudFRhcmdldC5zY3JvbGxUb3AvMTcsTWF0aC5taW4oTWF0aC5tYXgodCwobj1udShbMCwxXSwyKSlbMF0pLG5bMV0pKTtlZS5jdXJyZW50LnN0eWxlLm9wYWNpdHk9U3RyaW5nKHIpfX0sU1s1XT1hKTphPVNbNV07dmFyIGVyPWE7U1s2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhpPWZ1bmN0aW9uKGUpe3ZhciB0PWUucHJvcGVydHlOYW1lLG49ZS50YXJnZXQ7XCJzY2FsZVwiPT09dCYmbj09PWVuLmN1cnJlbnQmJkooITEpfSxTWzZdPWkpOmk9U1s2XTt2YXIgZW89aTtTWzddIT09TD8obD0oMCxBLmpzeCkobmkse2ZpeGVkOkx9KSxTWzddPUwsU1s4XT1sKTpsPVNbOF0sU1s5XSE9PVp8fFNbMTBdIT09Rnx8U1sxMV0hPT1NfHxTWzEyXSE9PVV8fFNbMTNdIT09Uj8ocz0oMCxBLmpzeCkodEYse3J1bnRpbWVFcnJvcnM6TSxhY3RpdmVJZHg6WixzZXRBY3RpdmVJbmRleDpVLHZlcnNpb25JbmZvOlIsaXNUdXJib3BhY2s6Rn0pLFNbOV09WixTWzEwXT1GLFNbMTFdPU0sU1sxMl09VSxTWzEzXT1SLFNbMTRdPXMpOnM9U1sxNF0sU1sxNV0hPT1JfHxTWzE2XSE9PWV0PyhjPWV0JiYoMCxBLmpzeCkodEIse2Vycm9yQ29kZTpJfSksU1sxNV09SSxTWzE2XT1ldCxTWzE3XT1jKTpjPVNbMTddO3ZhciBlYT0hUTtTWzE4XSE9PUI/KHU9KDAsQS5qc3gpKHRELHtlcnJvclR5cGU6Qn0pLFNbMThdPUIsU1sxOV09dSk6dT1TWzE5XSxTWzIwXSE9PXouZW52aXJvbm1lbnROYW1lPyhkPXouZW52aXJvbm1lbnROYW1lJiYoMCxBLmpzeCkodDkse2Vudmlyb25tZW50TmFtZTp6LmVudmlyb25tZW50TmFtZX0pLFNbMjBdPXouZW52aXJvbm1lbnROYW1lLFNbMjFdPWQpOmQ9U1syMV0sU1syMl0hPT11fHxTWzIzXSE9PWQ/KGY9KDAsQS5qc3hzKShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1lcnJvci1sYWJlbC1ncm91cFwiOiEwLGNoaWxkcmVuOlt1LGRdfSksU1syMl09dSxTWzIzXT1kLFNbMjRdPWYpOmY9U1syNF0sU1syNV0hPT1EfHxTWzI2XSE9PXp8fFNbMjddIT09SD8ocD0oMCxBLmpzeCkodEMse2Vycm9yOnosZGVidWdJbmZvOkQsZ2VuZXJhdGVFcnJvckluZm86SH0pLFNbMjVdPUQsU1syNl09eixTWzI3XT1ILFNbMjhdPXApOnA9U1syOF0sU1syOV0hPT1JfHxTWzMwXSE9PWZ8fFNbMzFdIT09cD8oaD0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fZXJyb3JfdGl0bGVcIixcImRhdGEtbmV4dGpzLWVycm9yLWNvZGVcIjpJLGNoaWxkcmVuOltmLHBdfSksU1syOV09SSxTWzMwXT1mLFNbMzFdPXAsU1szMl09aCk6aD1TWzMyXSxTWzMzXSE9PU8/KG09KDAsQS5qc3gpKHR6LHtlcnJvck1lc3NhZ2U6T30pLFNbMzNdPU8sU1szNF09bSk6bT1TWzM0XSxTWzM1XSE9PWh8fFNbMzZdIT09bT8oZz0oMCxBLmpzeHMpKHRHLHtjaGlsZHJlbjpbaCxtXX0pLFNbMzVdPWgsU1szNl09bSxTWzM3XT1nKTpnPVNbMzddLFNbMzhdIT09UD8oeT0oMCxBLmpzeCkodFEse2NoaWxkcmVuOlB9KSxTWzM4XT1QLFNbMzldPXkpOnk9U1szOV0sU1s0MF0hPT1nfHxTWzQxXSE9PXk/KHY9KDAsQS5qc3hzKShlWCx7Y2hpbGRyZW46W2cseV19KSxTWzQwXT1nLFNbNDFdPXksU1s0Ml09dik6dj1TWzQyXSxTWzQzXSE9PXF8fFNbNDRdIT09ZWF8fFNbNDVdIT09dj8oYj0oMCxBLmpzeCkobmEse3JlZjpxLG1lYXN1cmU6ZWEsXCJkYXRhLW5leHRqcy1kaWFsb2ctc2l6ZXJcIjohMCxjaGlsZHJlbjp2fSksU1s0M109cSxTWzQ0XT1lYSxTWzQ1XT12LFNbNDZdPWIpOmI9U1s0Nl07dmFyIGVpPW51bGwhPVo/WjowO3JldHVybiBTWzQ3XSE9PVR8fFNbNDhdIT09ZWk/KEM9KDAsQS5qc3gpKHQ2LHtlcnJvckNvdW50OlQsYWN0aXZlSWR4OmVpfSksU1s0N109VCxTWzQ4XT1laSxTWzQ5XT1DKTpDPVNbNDldLFNbNTBdIT09ZXR8fFNbNTFdIT09Tnx8U1s1Ml0hPT1jfHxTWzUzXSE9PWJ8fFNbNTRdIT09Qz8oXz0oMCxBLmpzeHMpKHRLLHtvbkNsb3NlOk4sXCJkYXRhLWhhcy1mb290ZXJcIjpldCxvblNjcm9sbDplcixmb290ZXI6YyxjaGlsZHJlbjpbYixDXX0pLFNbNTBdPWV0LFNbNTFdPU4sU1s1Ml09YyxTWzUzXT1iLFNbNTRdPUMsU1s1NV09Xyk6Xz1TWzU1XSxTWzU2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhrPSgwLEEuanN4KShubix7cmVmOmVlLHNpZGU6XCJ0b3BcIixzdG9wOlwiNTAlXCIsYmx1cjpcIjRweFwiLGhlaWdodDo0OH0pLFNbNTZdPWspOms9U1s1Nl0sU1s1N10hPT1YfHxTWzU4XSE9PV98fFNbNTldIT09cz8oRT0oMCxBLmpzeHMpKFwiZGl2XCIsbmMobnMoe1wiZGF0YS1uZXh0anMtZGlhbG9nLXJvb3RcIjohMCxvblRyYW5zaXRpb25FbmQ6ZW8scmVmOmVufSxYKSx7Y2hpbGRyZW46W3MsXyxrXX0pKSxTWzU3XT1YLFNbNThdPV8sU1s1OV09cyxTWzYwXT1FKTpFPVNbNjBdLFNbNjFdIT09WHx8U1s2Ml0hPT1FfHxTWzYzXSE9PWw/KGo9KDAsQS5qc3hzKSh0NSxuYyhucyh7fSxYKSx7Y2hpbGRyZW46W2wsRV19KSksU1s2MV09WCxTWzYyXT1FLFNbNjNdPWwsU1s2NF09aik6aj1TWzY0XSxqfXZhciBuZj1cIlxcbiAgXCIuY29uY2F0KHQzLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAuZXJyb3Itb3ZlcmxheS1kaWFsb2ctY29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tbmV4dC1kaWFsb2ctcmFkaXVzKSB2YXIoLS1uZXh0LWRpYWxvZy1yYWRpdXMpO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbWVudSk7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LWRpYWxvZy1zY3JvbGwge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICB9XFxuXCIsXCJcXG4gIFwiKS5jb25jYXQoXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gaDEge1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMjApO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgICBtYXJnaW46IGNhbGMoMTZweCAqIDEuNSkgMDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRpdGxlLWgxKTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgc21hbGwge1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50cy0xKTtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsID4gc3BhbiB7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gZGl2ID4gc21hbGwge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG1hcmdpbi10b3A6IDRweDtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBwID4gYSB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcXG4gICAgPiAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAxNnB4O1xcbiAgICByaWdodDogMTZweDtcXG4gIH1cXG5cIixcIlxcbiAgXCIpLmNvbmNhdChcIlwiLFwiXFxuXFxuICBcIikuY29uY2F0KFwiXFxuICBbZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1uYXZdIHtcXG4gICAgLS1zdHJva2UtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgd2lkdGg6IDEwMCU7XFxuXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgei1pbmRleDogMjtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgdHJhbnNsYXRlOiB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpIHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCk7XFxuICAgIG1heC13aWR0aDogdmFyKC0tbmV4dC1kaWFsb2ctbWF4LXdpZHRoKTtcXG5cXG4gICAgLmVycm9yLW92ZXJsYXktbm90Y2gge1xcbiAgICAgIHRyYW5zbGF0ZTogY2FsYyh2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpICogLTEpO1xcbiAgICAgIHdpZHRoOiBhdXRvO1xcbiAgICAgIGhlaWdodDogdmFyKC0tbmV4dC1kaWFsb2ctbm90Y2gtaGVpZ2h0KTtcXG4gICAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3IpO1xcbiAgICAgIGJvcmRlcjogdmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1zdHJva2UtY29sb3IpO1xcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICAgICZbZGF0YS1zaWRlPSdsZWZ0J10ge1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgMCAwIDA7XFxuXFxuICAgICAgICAuZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsIHtcXG4gICAgICAgICAgcmlnaHQ6IC01NHB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgPiAqOm5vdCguZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsKSB7XFxuICAgICAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgICZbZGF0YS1zaWRlPSdyaWdodCddIHtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tbmV4dC1kaWFsb2ctcmFkaXVzKSAwIDA7XFxuXFxuICAgICAgICAuZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsIHtcXG4gICAgICAgICAgbGVmdDogLTU0cHg7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgPiAqOm5vdCguZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsKSB7XFxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweDtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IGNhbGModmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSAqIC0xKTtcXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgICAgei1pbmRleDogLTE7XFxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCkpO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LW5hdl0ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3IpO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgdmFyKC0tbmV4dC1kaWFsb2ctcmFkaXVzKSAwIDA7XFxuICAgICAgYm9yZGVyOiB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXN0cm9rZS1jb2xvcik7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpO1xcbiAgICAgIFxcbiAgICAgIC5lcnJvci1vdmVybGF5LW5vdGNoIHtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgICAgICBib3JkZXI6IDA7XFxuXFxuICAgICAgICAmW2RhdGEtc2lkZT1cXFwibGVmdFxcXCJdLCAmW2RhdGEtc2lkZT1cXFwicmlnaHRcXFwiXSB7XFxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsIHtcXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cIixcIlxcbiAgXCIpLmNvbmNhdChcIlxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbCB7XFxuICAgIHBhZGRpbmc6IDJweCA2cHg7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcmVkLTEwMCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtOTAwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgfVxcblwiLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX3dyYXBwZXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB9XFxuXFxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2Mge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtOTAwKTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjMycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjLnRydW5jYXRlZCB7XFxuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19ncmFkaWVudF9vdmVybGF5IHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBoZWlnaHQ6IDg1cHg7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICAxODBkZWcsXFxuICAgICAgcmdiYSgyNTAsIDI1MCwgMjUwLCAwKSAwJSxcXG4gICAgICB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCkgMTAwJVxcbiAgICApO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19leHBhbmRfYnV0dG9uIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IDEwcHg7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XFxuICAgIGJveC1zaGFkb3c6XFxuICAgICAgMHB4IDJweCAycHggdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0xMDApLFxcbiAgICAgIDBweCA4cHggOHB4IC04cHggdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0xMDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTMpO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19leHBhbmRfYnV0dG9uOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgfVxcblwiLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAuZXJyb3Itb3ZlcmxheS10b29sYmFyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZ2FwOiA2cHg7XFxuICB9XFxuXFxuICAubm9kZWpzLWluc3BlY3Rvci1idXR0b24sXFxuICAuY29weS1lcnJvci1idXR0b24sXFxuICAuZG9jcy1saW5rLWJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcblxcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0yOCk7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yOCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc21hbGwpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTQpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICB9XFxuXFxuICAgICY6bm90KDpkaXNhYmxlZCk6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMTAwKTtcXG4gICAgfVxcblxcbiAgICAmOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0yMDApO1xcbiAgICB9XFxuXFxuICAgICY6ZGlzYWJsZWQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS10b29sYmFyLWJ1dHRvbi1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIH1cXG5cIixcIlxcblxcbiAgW2RhdGEtbmV4dGpzLWVycm9yLWxhYmVsLWdyb3VwXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogOHB4O1xcbiAgfVxcblwiKTtmdW5jdGlvbiBucCgpe3ZhciBlLHQsbj0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgLyogc2Vjb25kYXJ5IHotaW5kZXgsIC0xIHRoYW4gdG9hc3Qgei1pbmRleCAqL1xcbiAgICB6LWluZGV4OiAyMTQ3NDgzNjQ2O1xcblxcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHBhZGRpbmc6IDEwdmggMTVweCAwO1xcbiAgfVxcblxcbiAgQG1lZGlhIChtYXgtaGVpZ2h0OiA4MTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgICBwYWRkaW5nOiAxNXB4IDE1cHggMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcF0ge1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2Ryb3ApO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZF0ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcXG4gIH1cXG5cIl0sdHx8KHQ9ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9fSkpKTtyZXR1cm4gbnA9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sbn12YXIgbmg9ZXUobnAoKSk7ZnVuY3Rpb24gbm0oZSl7dmFyIHQsbixyLG8sYSxpPSgwLHguYykoOSksbD1lLmZpbGUscz1lLmxvY2F0aW9uLGM9bnVsbCE9KHQ9bnVsbD09cz92b2lkIDA6cy5saW5lKT90OjEsdT1udWxsIT0obj1udWxsPT1zP3ZvaWQgMDpzLmNvbHVtbik/bjoxO2lbMF0hPT1sfHxpWzFdIT09Y3x8aVsyXSE9PXU/KHI9e2ZpbGU6bCxsaW5lMTpjLGNvbHVtbjE6dX0saVswXT1sLGlbMV09YyxpWzJdPXUsaVszXT1yKTpyPWlbM107dmFyIGQ9ZUIociksZj1zP1wiOlwiLmNvbmNhdChzLmxpbmUsXCI6XCIpLmNvbmNhdChzLmNvbHVtbik6bnVsbDtyZXR1cm4gaVs0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhvPSgwLEEuanN4cykoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMjQgMjRcIixmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLHN0cm9rZVdpZHRoOlwiMlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwicGF0aFwiLHtkOlwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIn0pLCgwLEEuanN4KShcInBvbHlsaW5lXCIse3BvaW50czpcIjE1IDMgMjEgMyAyMSA5XCJ9KSwoMCxBLmpzeCkoXCJsaW5lXCIse3gxOlwiMTBcIix5MTpcIjE0XCIseDI6XCIyMVwiLHkyOlwiM1wifSldfSksaVs0XT1vKTpvPWlbNF0saVs1XSE9PWx8fGlbNl0hPT1kfHxpWzddIT09Zj8oYT0oMCxBLmpzeHMpKFwiZGl2XCIse1wiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtcIjohMCxcImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLWltcG9ydC10cmFjZVwiOiEwLHJvbGU6XCJsaW5rXCIsb25DbGljazpkLHRpdGxlOlwiQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvclwiLGNoaWxkcmVuOltsLGYsb119KSxpWzVdPWwsaVs2XT1kLGlbN109ZixpWzhdPWEpOmE9aVs4XSxhfWZ1bmN0aW9uIG5nKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgbnk9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZD1lLmNvbnRlbnQsZj13LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgZSx0LG47cmV0dXJuIHQ9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWUuc2hpZnQoKTtpZighcilyZXR1cm4gbnVsbDt2YXIgbz0odD1yLnNwbGl0KFwiOlwiLDMpLG49MyxmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfSh0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh0LDMpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuZyhlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBuZyhlLHQpfX0odCxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksYT1vWzBdLGk9b1sxXSxsPW9bMl0scz1OdW1iZXIoaSksYz1OdW1iZXIobCksdT0hTnVtYmVyLmlzTmFOKHMpJiYhTnVtYmVyLmlzTmFOKGMpO3JldHVybntmaWxlTmFtZTp1P2E6cixsb2NhdGlvbjp1P3tsaW5lMTpzLGNvbHVtbjE6Y306dm9pZCAwfX0oZT1kLnNwbGl0KFwiXFxuXCIpKSxuPWZ1bmN0aW9uKGUpe2lmKGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4vUmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3I6Ly50ZXN0KGUpfSl8fGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4vSW1wb3J0IHRyYWNlIGZvciByZXF1ZXN0ZWQgbW9kdWxlOi8udGVzdChlKX0pKXtmb3IodmFyIHQ9W107Ly4rXFwuLisvLnRlc3QoZVtlLmxlbmd0aC0xXSkmJiFlW2UubGVuZ3RoLTFdLmluY2x1ZGVzKFwiOlwiKTspe3ZhciBuPWUucG9wKCkudHJpbSgpO3QudW5zaGlmdChuKX1yZXR1cm4gdH1yZXR1cm5bXX0oZSkse2ZpbGU6dCxzb3VyY2U6ZS5qb2luKFwiXFxuXCIpLGltcG9ydFRyYWNlRmlsZXM6bn19LFtkXSkscD1mLmZpbGUsaD1mLnNvdXJjZSxtPWYuaW1wb3J0VHJhY2VGaWxlcyxnPXcudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBlcSgpLmFuc2lUb0pzb24oaCx7anNvbjohMCx1c2VfY2xhc3NlczohMCxyZW1vdmVfZW1wdHk6ITB9KX0sW2hdKTtjb25zb2xlLmxvZyh7ZmlsZTpwfSk7dmFyIHk9ZUIoe2ZpbGU6bnVsbD09cD92b2lkIDA6cC5maWxlTmFtZSxsaW5lMTpudWxsIT0oaT1udWxsPT1wfHxudWxsPT0odD1wLmxvY2F0aW9uKT92b2lkIDA6dC5saW5lMSk/aToxLGNvbHVtbjE6bnVsbCE9KGw9bnVsbD09cHx8bnVsbD09KG49cC5sb2NhdGlvbik/dm9pZCAwOm4uY29sdW1uMSk/bDoxfSksdj17ZmlsZTpudWxsIT0ocz1udWxsPT1wP3ZvaWQgMDpwLmZpbGVOYW1lKT9zOm51bGwsbWV0aG9kTmFtZTpcIlwiLGFyZ3VtZW50czpbXSxsaW5lMTpudWxsIT0oYz1udWxsPT1wfHxudWxsPT0ocj1wLmxvY2F0aW9uKT92b2lkIDA6ci5saW5lMSk/YzpudWxsLGNvbHVtbjE6bnVsbCE9KHU9bnVsbD09cHx8bnVsbD09KG89cC5sb2NhdGlvbik/dm9pZCAwOm8uY29sdW1uMSk/dTpudWxsfSxiPW51bGw9PXZ8fG51bGw9PShhPXYuZmlsZSk/dm9pZCAwOmEuc3BsaXQoXCIuXCIpLnBvcCgpO3JldHVybigwLEEuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb2RlZnJhbWVcIjohMCxjaGlsZHJlbjpbKDAsQS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtaGVhZGVyXCIsY2hpbGRyZW46KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWxpbmtcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixjaGlsZHJlbjooMCxBLmpzeCkoZUwse2xhbmc6Yn0pfSksKDAsQS5qc3gpKFwic3BhblwiLHtcImRhdGEtdGV4dFwiOiEwLGNoaWxkcmVuOmVPKHYpfSksKDAsQS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1sYWJlbFwiOlwiT3BlbiBpbiBlZGl0b3JcIixcImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLXNvdXJjZS1maWxlXCI6ITAsb25DbGljazp5LGNoaWxkcmVuOigwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1pY29uXCIsXCJkYXRhLWljb25cIjpcInJpZ2h0XCIsY2hpbGRyZW46KDAsQS5qc3gpKGV6LHt3aWR0aDoxNixoZWlnaHQ6MTZ9KX0pfSldfSl9KSwoMCxBLmpzeCkoXCJwcmVcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1wcmVcIixjaGlsZHJlbjooMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtbGluZXNcIixjaGlsZHJlbjpbZy5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxBLmpzeCkoXCJzcGFuXCIse3N0eWxlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe2NvbG9yOmUuZmc/XCJ2YXIoLS1jb2xvci1cIi5jb25jYXQoZS5mZyxcIilcIik6dm9pZCAwfSxcImJvbGRcIj09PWUuZGVjb3JhdGlvbj97Zm9udFdlaWdodDo1MDB9OlwiaXRhbGljXCI9PT1lLmRlY29yYXRpb24/e2ZvbnRTdHlsZTpcIml0YWxpY1wifTp2b2lkIDApLGNoaWxkcmVuOigwLEEuanN4KShlQSx7dGV4dDplLmNvbnRlbnR9KX0sXCJ0ZXJtaW5hbC1lbnRyeS1cIi5jb25jYXQodCkpfSksbS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuKDAsQS5qc3gpKG5tLHtpc1NvdXJjZUZpbGU6ITEsZmlsZTplfSxlKX0pXX0pfSldfSl9LG52PWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoXCJcXG5cIik7cmV0dXJuIGVWKCkodFsxXXx8XCJcIikucmVwbGFjZSgvXkVycm9yOiAvLFwiXCIpfSxuYj1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkPSgwLHguYykoMTkpO2RbMF0hPT1lPyhvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJtZXNzYWdlXCJdKSxyPWUubWVzc2FnZSxkWzBdPWUsZFsxXT1yLGRbMl09byk6KHI9ZFsxXSxvPWRbMl0pLGRbM10hPT1yPyhhPUVycm9yKHIpLGRbM109cixkWzRdPWEpOmE9ZFs0XTt2YXIgZj1hO2RbNV0hPT1yPyhsPW52KHIpfHxcIkZhaWxlZCB0byBjb21waWxlXCIsZFs1XT1yLGRbNl09bCk6bD1kWzZdLGk9bCxkWzddIT09aXx8ZFs4XSE9PXJ8fGRbOV0hPT1vLnZlcnNpb25JbmZvLmluc3RhbGxlZD8ocz1mdW5jdGlvbigpe3ZhciBlPVtdO2lmKGUucHVzaChcIiMjIEVycm9yIFR5cGVcXG5CdWlsZCBFcnJvclwiKSxpJiZlLnB1c2goXCIjIyBFcnJvciBNZXNzYWdlXFxuXCIuY29uY2F0KGkpKSxyKXt2YXIgdD1lVigpKHIpO2UucHVzaChcIiMjIEJ1aWxkIE91dHB1dFxcblwiLmNvbmNhdCh0KSl9cmV0dXJuXCJcIi5jb25jYXQoZS5qb2luKFwiXFxuXFxuXCIpLFwiXFxuXFxuTmV4dC5qcyB2ZXJzaW9uOiBcIikuY29uY2F0KG8udmVyc2lvbkluZm8uaW5zdGFsbGVkLFwiIChcIikuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSLFwiKVxcblwiKX0sZFs3XT1pLGRbOF09cixkWzldPW8udmVyc2lvbkluZm8uaW5zdGFsbGVkLGRbMTBdPXMpOnM9ZFsxMF07dmFyIHA9cztyZXR1cm4oZFsxMV0hPT1yPyhjPSgwLEEuanN4KShueSx7Y29udGVudDpyfSksZFsxMV09cixkWzEyXT1jKTpjPWRbMTJdLGRbMTNdIT09Znx8ZFsxNF0hPT1pfHxkWzE1XSE9PXB8fGRbMTZdIT09b3x8ZFsxN10hPT1jKT8odT0oMCxBLmpzeCkobmQsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7ZXJyb3JUeXBlOlwiQnVpbGQgRXJyb3JcIixlcnJvck1lc3NhZ2U6aSxvbkNsb3NlOm5BLGVycm9yOmYsZ2VuZXJhdGVFcnJvckluZm86cH0sbyksbj1uPXtjaGlsZHJlbjpjfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxkWzEzXT1mLGRbMTRdPWksZFsxNV09cCxkWzE2XT1vLGRbMTddPWMsZFsxOF09dSk6dT1kWzE4XSx1fTtmdW5jdGlvbiBuQSgpe312YXIgbng9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmPSgwLHguYykoMjYpLHA9ZS5mcmFtZSxoPW51bGwhPSh0PXAub3JpZ2luYWxTdGFja0ZyYW1lKT90OnAuc291cmNlU3RhY2tGcmFtZSxtPSEhcC5vcmlnaW5hbENvZGVGcmFtZTtmWzBdIT09aHx8ZlsxXSE9PW0/KG49bT97ZmlsZTpoLmZpbGUsbGluZTE6bnVsbCE9KHI9aC5saW5lMSk/cjoxLGNvbHVtbjE6bnVsbCE9KG89aC5jb2x1bW4xKT9vOjF9OnZvaWQgMCxmWzBdPWgsZlsxXT1tLGZbMl09bik6bj1mWzJdO3ZhciBnPWVCKG4pO2ZbM10hPT1oPyhhPWVPKGgpLGZbM109aCxmWzRdPWEpOmE9Zls0XTt2YXIgeT1hO2lmKCF5KXJldHVybiBudWxsO3ZhciB2PSFtO3JldHVybiBmWzVdIT09aC5tZXRob2ROYW1lPyhpPSgwLEEuanN4KShlQSx7dGV4dDpoLm1ldGhvZE5hbWV9KSxmWzVdPWgubWV0aG9kTmFtZSxmWzZdPWkpOmk9Zls2XSxmWzddIT09aC5tZXRob2ROYW1lfHxmWzhdIT09bXx8Zls5XSE9PWc/KGw9bSYmKDAsQS5qc3gpKFwiYnV0dG9uXCIse29uQ2xpY2s6ZyxjbGFzc05hbWU6XCJvcGVuLWluLWVkaXRvci1idXR0b25cIixcImFyaWEtbGFiZWxcIjpcIk9wZW4gXCIuY29uY2F0KGgubWV0aG9kTmFtZSxcIiBpbiBlZGl0b3JcIiksY2hpbGRyZW46KDAsQS5qc3gpKGV6LHt3aWR0aDoxNixoZWlnaHQ6MTZ9KX0pLGZbN109aC5tZXRob2ROYW1lLGZbOF09bSxmWzldPWcsZlsxMF09bCk6bD1mWzEwXSxmWzExXSE9PXAuZXJyb3J8fGZbMTJdIT09cC5yZWFzb24/KHM9cC5lcnJvcj8oMCxBLmpzeCkoXCJidXR0b25cIix7Y2xhc3NOYW1lOlwic291cmNlLW1hcHBpbmctZXJyb3ItYnV0dG9uXCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLmVycm9yKHAucmVhc29uKX0sdGl0bGU6XCJTb3VyY2VtYXBwaW5nIGZhaWxlZC4gQ2xpY2sgdG8gbG9nIGNhdXNlIG9mIGVycm9yLlwiLGNoaWxkcmVuOigwLEEuanN4KShlRCx7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KTpudWxsLGZbMTFdPXAuZXJyb3IsZlsxMl09cC5yZWFzb24sZlsxM109cyk6cz1mWzEzXSxmWzE0XSE9PWl8fGZbMTVdIT09bHx8ZlsxNl0hPT1zPyhjPSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY2FsbC1zdGFjay1mcmFtZS1tZXRob2QtbmFtZVwiLGNoaWxkcmVuOltpLGwsc119KSxmWzE0XT1pLGZbMTVdPWwsZlsxNl09cyxmWzE3XT1jKTpjPWZbMTddLGZbMThdIT09eXx8ZlsxOV0hPT1tPyh1PSgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiY2FsbC1zdGFjay1mcmFtZS1maWxlLXNvdXJjZVwiLFwiZGF0YS1oYXMtc291cmNlXCI6bSxjaGlsZHJlbjp5fSksZlsxOF09eSxmWzE5XT1tLGZbMjBdPXUpOnU9ZlsyMF0sZlsyMV0hPT1wLmlnbm9yZWR8fGZbMjJdIT09dnx8ZlsyM10hPT1jfHxmWzI0XSE9PXU/KGQ9KDAsQS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVcIjohMCxcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUtbm8tc291cmNlXCI6dixcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUtaWdub3JlZFwiOnAuaWdub3JlZCxjaGlsZHJlbjpbYyx1XX0pLGZbMjFdPXAuaWdub3JlZCxmWzIyXT12LGZbMjNdPWMsZlsyNF09dSxmWzI1XT1kKTpkPWZbMjVdLGR9O2Z1bmN0aW9uIG53KCl7dmFyIGUsdD0oMCx4LmMpKDEpO3JldHVybiB0WzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9KDAsQS5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOC43MDcyMiAyLjM5NjQxQzguMzE2NyAyLjAwNTg4IDcuNjgzNTMgMi4wMDU4OCA3LjI5MzAxIDIuMzk2NDFMNC40Njk3OCA1LjIxOTYzTDMuOTM5NDUgNS43NDk5Nkw1LjAwMDExIDYuODEwNjJMNS41MzA0NCA2LjI4MDI5TDguMDAwMTEgMy44MTA2MkwxMC40Njk4IDYuMjgwMjlMMTEuMDAwMSA2LjgxMDYyTDEyLjA2MDggNS43NDk5NkwxMS41MzA0IDUuMjE5NjNMOC43MDcyMiAyLjM5NjQxWk01LjUzMDQ0IDkuNzE5NjNMNS4wMDAxMSA5LjE4OTNMMy45Mzk0NSAxMC4yNUw0LjQ2OTc4IDEwLjc4MDNMNy4yOTMwMSAxMy42MDM1QzcuNjgzNTMgMTMuOTk0IDguMzE2NyAxMy45OTQgOC43MDcyMiAxMy42MDM1TDExLjUzMDQgMTAuNzgwM0wxMi4wNjA4IDEwLjI1TDExLjAwMDEgOS4xODkzTDEwLjQ2OTggOS43MTk2M0w4LjAwMDExIDEyLjE4OTNMNS41MzA0NCA5LjcxOTYzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiBuQygpe3ZhciBlLHQsbj0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvbnRhaW5lcl0ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG1hcmdpbi10b3A6IDhweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWhlYWRlcl0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtMjgpO1xcbiAgICBwYWRkaW5nOiA4cHggOHB4IDEycHggNHB4O1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLXRpdGxlXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuXFxuICAgIG1hcmdpbjogMDtcXG5cXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb3VudF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjApO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBnYXA6IDRweDtcXG5cXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTExKTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcblxcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1pZ25vcmVkLWxpc3QtdG9nZ2xlLWJ1dHRvbl0ge1xcbiAgICBhbGw6IHVuc2V0O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDZweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICAgIHBhZGRpbmc6IDRweCA2cHg7XFxuICAgIG1hcmdpbi1yaWdodDogLTZweDtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBlYXNlO1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNik7XFxuICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgfVxcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiBuQz1mdW5jdGlvbigpe3JldHVybiBufSxufWZ1bmN0aW9uIG5fKGUpe3ZhciB0LG4scixvLGEsaSxsPSgwLHguYykoMTcpLHM9ZS5mcmFtZXMsYz1lLmlzSWdub3JlTGlzdE9wZW4sdT1lLmlnbm9yZWRGcmFtZXNUYWxseSxkPWUub25Ub2dnbGVJZ25vcmVMaXN0O3JldHVybiBsWzBdIT09cy5sZW5ndGg/KHQ9KDAsQS5qc3hzKShcInBcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLXRpdGxlXCI6ITAsY2hpbGRyZW46W1wiQ2FsbCBTdGFjayBcIiwoMCxBLmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb3VudFwiOiEwLGNoaWxkcmVuOnMubGVuZ3RofSldfSksbFswXT1zLmxlbmd0aCxsWzFdPXQpOnQ9bFsxXSxsWzJdIT09dXx8bFszXSE9PWN8fGxbNF0hPT1kPyhuPXU+MCYmKDAsQS5qc3hzKShcImJ1dHRvblwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2staWdub3JlZC1saXN0LXRvZ2dsZS1idXR0b25cIjpjLG9uQ2xpY2s6ZCxjaGlsZHJlbjpbXCJcIi5jb25jYXQoYz9cIkhpZGVcIjpcIlNob3dcIixcIiBcIikuY29uY2F0KHUsXCIgaWdub3JlLWxpc3RlZCBmcmFtZShzKVwiKSwoMCxBLmpzeCkobncse30pXX0pLGxbMl09dSxsWzNdPWMsbFs0XT1kLGxbNV09bik6bj1sWzVdLGxbNl0hPT10fHxsWzddIT09bj8ocj0oMCxBLmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1oZWFkZXJcIjohMCxjaGlsZHJlbjpbdCxuXX0pLGxbNl09dCxsWzddPW4sbFs4XT1yKTpyPWxbOF0sbFs5XSE9PXN8fGxbMTBdIT09Yz8obFsxMl0hPT1jPyhhPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIWUuaWdub3JlZHx8Yz8oMCxBLmpzeCkobngse2ZyYW1lOmV9LHQpOm51bGx9LGxbMTJdPWMsbFsxM109YSk6YT1sWzEzXSxvPXMubWFwKGEpLGxbOV09cyxsWzEwXT1jLGxbMTFdPW8pOm89bFsxMV0sbFsxNF0hPT1yfHxsWzE1XSE9PW8/KGk9KDAsQS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stY29udGFpbmVyXCI6ITAsY2hpbGRyZW46W3Isb119KSxsWzE0XT1yLGxbMTVdPW8sbFsxNl09aSk6aT1sWzE2XSxpfXZhciBuaz1ldShuQygpKTtmdW5jdGlvbiBuRShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbmooZSl7dmFyIHQsbixyPWUuZnJhbWVzLG89ZS5kaWFsb2dSZXNpemVyUmVmLGE9KDAsdy51c2VSZWYpKE5hTiksaT0odD0oMCx3LnVzZVN0YXRlKSghMSksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG5FKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG5FKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxsPWlbMF0scz1pWzFdLGM9KDAsdy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiByLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlKyArISF0Lmlnbm9yZWR9LDApfSxbcl0pO3JldHVybigwLEEuanN4KShuXyx7ZnJhbWVzOnIsaXNJZ25vcmVMaXN0T3BlbjpsLG9uVG9nZ2xlSWdub3JlTGlzdDpmdW5jdGlvbigpe3ZhciBlPW51bGw9PW8/dm9pZCAwOm8uY3VycmVudDtpZihlKXt2YXIgdD0obnVsbD09ZT92b2lkIDA6ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkuaGVpZ2h0O2EuY3VycmVudHx8KGEuY3VycmVudD10KSxsPyhlLnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChhLmN1cnJlbnQsXCJweFwiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZnVuY3Rpb24gdCgpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIix0KSxzKCExKX0pKTpzKCEwKX19LGlnbm9yZWRGcmFtZXNUYWxseTpjfSl9ZnVuY3Rpb24gblMoZSl7dmFyIHQsbixyLG8sYSxpLGw9KDAseC5jKSg4KTtsWzBdIT09ZT8ocj12b2lkIDA9PT1lP3t9OmUsbFswXT1lLGxbMV09cik6cj1sWzFdO3ZhciBzPXIuY29sbGFwc2VkO3JldHVybihsWzJdIT09cz8obz1cImJvb2xlYW5cIj09dHlwZW9mIHM/e3N0eWxlOnt0cmFuc2Zvcm06cz92b2lkIDA6XCJyb3RhdGUoOTBkZWcpXCJ9fTp7fSxsWzJdPXMsbFszXT1vKTpvPWxbM10sbFs0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhhPSgwLEEuanN4KShcInBhdGhcIix7c3R5bGU6e2ZpbGw6XCJ2YXIoLS1jb2xvci1mb250KVwifSxmaWxsUnVsZTpcImV2ZW5vZGRcIixkOlwibTYuNzUgMy45NC41My41MyAyLjgyNCAyLjgyM2ExIDEgMCAwIDEgMCAxLjQxNEw3LjI4IDExLjUzbC0uNTMuNTNMNS42OSAxMWwuNTMtLjUzTDguNjkgOCA2LjIyIDUuNTMgNS42OSA1bDEuMDYtMS4wNlpcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0pLGxbNF09YSk6YT1sWzRdLGxbNV0hPT1zfHxsWzZdIT09byk/KGk9KDAsQS5qc3gpKFwic3ZnXCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNoZXZyb24taWNvblwiOiEwLFwiZGF0YS1jb2xsYXBzZWRcIjpzLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJub25lXCJ9LG8pLG49bj17Y2hpbGRyZW46YX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksbFs1XT1zLGxbNl09byxsWzddPWkpOmk9bFs3XSxpfWZ1bmN0aW9uIG5PKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBuQihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhdHx8YS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbk8oZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gbk8oZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gblAoZSl7dmFyIHQsbixyLG8sYSxpLGwscz0oMCx4LmMpKDE1KSxjPWUucmVhY3RPdXRwdXRDb21wb25lbnREaWZmLHU9bkIoKDAsdy51c2VTdGF0ZSkoITApLDIpLGQ9dVswXSxmPXVbMV07c1swXSE9PWM/KG49W10sYy5zcGxpdChcIlxcblwiKS5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7dmFyIHIsbyxhPVwiK1wiPT09ZVswXXx8XCItXCI9PT1lWzBdLGk9XCI+XCI9PT1lWzBdLGw9YXx8aSxzPWw/ZVswXTpcIlwiLGM9bD9lLmluZGV4T2Yocyk6LTEsdT1uQihsP1tlLnNsaWNlKDAsYyksZS5zbGljZShjKzEpXTpbZSxcIlwiXSwyKSxkPXVbMF0sZj11WzFdO2E/bi5wdXNoKCgwLEEuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmVcIjohMCxcImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmZcIjpcIitcIj09PXM/XCJhZGRcIjpcInJlbW92ZVwiLGNoaWxkcmVuOigwLEEuanN4cykoXCJzcGFuXCIse2NoaWxkcmVuOltkLCgwLEEuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmUtc2lnblwiOiEwLGNoaWxkcmVuOnN9KSxmLFwiXFxuXCJdfSl9LFwiY29tcC1kaWZmXCIrdCkpOm4ucHVzaCgoMCxBLmpzeHMpKFwic3BhblwiLChyPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe1wiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1saW5lXCI6ITB9LGk/e1wiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZlwiOlwiZXJyb3JcIn06dm9pZCAwKSxvPW89e2NoaWxkcmVuOltkLCgwLEEuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmUtc2lnblwiOiEwLGNoaWxkcmVuOnN9KSxmLFwiXFxuXCJdfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG8pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG8pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLGUpKX0pLHIpLFwiY29tcC1kaWZmXCIrdCkpfSksc1swXT1jLHNbMV09bik6bj1zWzFdLHQ9bjt2YXIgcD0hZDtyZXR1cm4gc1syXSE9PWQ/KHI9ZnVuY3Rpb24oKXtyZXR1cm4gZighZCl9LG89KDAsQS5qc3gpKG5TLHtjb2xsYXBzZWQ6ZH0pLHNbMl09ZCxzWzNdPXIsc1s0XT1vKToocj1zWzNdLG89c1s0XSksc1s1XSE9PXB8fHNbNl0hPT1yfHxzWzddIT09bz8oYT0oMCxBLmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWV4cGFuZGVkXCI6cCxcImFyaWEtbGFiZWxcIjpcImNvbXBsZXRlIENvbXBvbmVudCBTdGFja1wiLFwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZS1idXR0b25cIjohMCxvbkNsaWNrOnIsY2hpbGRyZW46b30pLHNbNV09cCxzWzZdPXIsc1s3XT1vLHNbOF09YSk6YT1zWzhdLHNbOV0hPT10PyhpPSgwLEEuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFja1wiLGNoaWxkcmVuOigwLEEuanN4KShcImNvZGVcIix7Y2hpbGRyZW46dH0pfSksc1s5XT10LHNbMTBdPWkpOmk9c1sxMF0sc1sxMV0hPT1kfHxzWzEyXSE9PWF8fHNbMTNdIT09aT8obD0oMCxBLmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbFwiOiEwLFwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZVwiOmQsY2hpbGRyZW46W2EsaV19KSxzWzExXT1kLHNbMTJdPWEsc1sxM109aSxzWzE0XT1sKTpsPXNbMTRdLGx9dmFyIG5JPVN5bWJvbC5mb3IoXCJOZXh0anNFcnJvclwiKTtmdW5jdGlvbiBuVChlKXtyZXR1cm4gZVtuSV18fG51bGx9ZnVuY3Rpb24gbnooZSx0LG4scixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe24oZSk7cmV0dXJufWwuZG9uZT90KHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gbkQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1lLmFwcGx5KHQsbik7ZnVuY3Rpb24gaShlKXtueihhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtueihhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfX1mdW5jdGlvbiBuTChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbk4oZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIG5SKGUsdCl7dmFyIG4scixvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX0saT1PYmplY3QuY3JlYXRlKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBJdGVyYXRvcj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIGkubmV4dD1sKDApLGkudGhyb3c9bCgxKSxpLnJldHVybj1sKDIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBsKGwpe3JldHVybiBmdW5jdGlvbihzKXt2YXIgYz1bbCxzXTtpZihuKXRocm93IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtpJiYoaT0wLGNbMF0mJihhPTApKSxhOyl0cnl7aWYobj0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSkmJig2PT09Y1swXXx8Mj09PWNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXthLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmEubGFiZWw8b1sxXSl7YS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZhLmxhYmVsPG9bMl0pe2EubGFiZWw9b1syXSxhLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1jPXQuY2FsbChlLGEpfWNhdGNoKGUpe2M9WzYsZV0scj0wfWZpbmFsbHl7bj1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fX12YXIgbk09ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107aWYoXCJ1c2VcImluIHcpe3ZhciB0PWUuZnJhbWVzO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgRXJyb3IoXCJJbnZhcmlhbnQ6IGZyYW1lcyBtdXN0IGJlIGEgZnVuY3Rpb24gd2hlbiB0aGUgUmVhY3QgdmVyc2lvbiBoYXMgUmVhY3QudXNlLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuXCIpO3JldHVybiB3LnVzZSh0KCkpfWlmKCFBcnJheS5pc0FycmF5KGUuZnJhbWVzKSl0aHJvdyBFcnJvcihcIkludmFyaWFudDogZnJhbWVzIG11c3QgYmUgYW4gYXJyYXkgd2hlbiB0aGUgUmVhY3QgdmVyc2lvbiBkb2VzIG5vdCBoYXZlIFJlYWN0LnVzZS4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLlwiKTtyZXR1cm4gZS5mcmFtZXN9O2Z1bmN0aW9uIG5aKGUpe3ZhciB0LG4scixvLGEsaT0oMCx4LmMpKDgpLGw9ZS5lcnJvcixzPWUuZGlhbG9nUmVzaXplclJlZixjPW5NKGwpLHU9Yy5maW5kSW5kZXgoblUpO3JldHVybiB0PW51bGwhPShuPWNbdV0pP246bnVsbCxpWzBdIT09dD8ocj10JiYoMCxBLmpzeCkoZVkse3N0YWNrRnJhbWU6dC5vcmlnaW5hbFN0YWNrRnJhbWUsY29kZUZyYW1lOnQub3JpZ2luYWxDb2RlRnJhbWV9KSxpWzBdPXQsaVsxXT1yKTpyPWlbMV0saVsyXSE9PXN8fGlbM10hPT1jPyhvPWMubGVuZ3RoPjAmJigwLEEuanN4KShuaix7ZGlhbG9nUmVzaXplclJlZjpzLGZyYW1lczpjfSksaVsyXT1zLGlbM109YyxpWzRdPW8pOm89aVs0XSxpWzVdIT09cnx8aVs2XSE9PW8/KGE9KDAsQS5qc3hzKShBLkZyYWdtZW50LHtjaGlsZHJlbjpbcixvXX0pLGlbNV09cixpWzZdPW8saVs3XT1hKTphPWlbN10sYX1mdW5jdGlvbiBuVShlKXtyZXR1cm4hZS5pZ25vcmVkJiYhIWUub3JpZ2luYWxDb2RlRnJhbWUmJiEhZS5vcmlnaW5hbFN0YWNrRnJhbWV9dmFyIG5GPVwiXFxuICBcIi5jb25jYXQoXCJcXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sXSB7XFxuICAgIHBhZGRpbmc6IDhweCAwO1xcbiAgICBtYXJnaW46IDhweCAwO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN5bnRheC1jb25zdGFudCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjMzZW07IC8qIDE2cHggaW4gMTJweCBmb250IHNpemUgKi9cXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmVdIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xcbiAgICBsaW5lLWhlaWdodDogY2FsYyg1IC8gMyk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nZXJyb3InXSB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFtYmVyLTEwMCk7XFxuICAgIGJveC1zaGFkb3c6IDJweCAwIDAgMCB2YXIoLS1jb2xvci1hbWJlci05MDApIGluc2V0O1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWNvbGxhcHNlLWJ1dHRvbl0ge1xcbiAgICBhbGw6IHVuc2V0O1xcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogbm9uZTtcXG4gICAgfVxcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9J2FkZCddIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JlZW4tMzAwKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmUtc2lnbl0ge1xcbiAgICBtYXJnaW4tbGVmdDogY2FsYygyNHB4ICogLTEpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nYWRkJ11cXG4gICAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmVlbi05MDApO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9J3JlbW92ZSddIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcmVkLTMwMCk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0ncmVtb3ZlJ11cXG4gICAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtOTAwKTtcXG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjRweCAqIC0xKTtcXG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9J2Vycm9yJ11cXG4gICAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci05MDApO1xcbiAgfVxcbiAgXFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0taGludF0ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgaGVpZ2h0OiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLXRhZy1hZGphY2VudD0nZmFsc2UnXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTEpO1xcbiAgfVxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fY29tcG9uZW50LXN0YWNrIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtY29sbGFwc2U9J3RydWUnXVxcbiAgICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19jb21wb25lbnQtc3RhY2tcXG4gICAgY29kZSB7XFxuICAgIG1heC1oZWlnaHQ6IDEyMHB4O1xcbiAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHJnYmEoMCwwLDAsMCkgMCUsYmxhY2sgMTAlKTtcXG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XFxuICB9XFxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19jb21wb25lbnQtc3RhY2sgY29kZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgICBzY3JvbGwtc25hcC10eXBlOiB5IG1hbmRhdG9yeTtcXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmZdIHtcXG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IGNlbnRlcjtcXG4gIH1cXG4gIC5lcnJvci1vdmVybGF5LWh5ZHJhdGlvbi1lcnJvci1kaWZmLXBsdXMtaWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmVlbi05MDApO1xcbiAgfVxcbiAgLmVycm9yLW92ZXJsYXktaHlkcmF0aW9uLWVycm9yLWRpZmYtbWludXMtaWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtOTAwKTtcXG4gIH1cXG5cIixcIlxcblwiKTtmdW5jdGlvbiBucShlKXtyZXR1cm4gZSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbD9cInN5bWJvbFwiOnR5cGVvZiBlfWZ1bmN0aW9uIG5IKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBuVihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKFwiaHR0cHM6Ly9uZXh0anMub3JnXCIpfWZ1bmN0aW9uIG4kKGUpe3ZhciB0LG49KDAseC5jKSgyKSxyPWUubWVzc2FnZTtyZXR1cm4gblswXSE9PXI/KHQ9KDAsQS5qc3gpKGVBLHt0ZXh0OnIsbWF0Y2hlcjpuVn0pLG5bMF09cixuWzFdPXQpOnQ9blsxXSx0fWZ1bmN0aW9uIG5XKGUpe3ZhciB0LG4scj0oMCx4LmMpKDUpLG89ZS5lcnJvcixhPVwiZW52aXJvbm1lbnROYW1lXCJpbiBvP28uZW52aXJvbm1lbnROYW1lOlwiXCIsaT1hP1wiWyBcIi5jb25jYXQoYSxcIiBdIFwiKTpcIlwiLGw9by5tZXNzYWdlO3JldHVybiBsLnN0YXJ0c1dpdGgoaSkmJihyWzBdIT09aS5sZW5ndGh8fHJbMV0hPT1sPyh0PWwuc2xpY2UoaS5sZW5ndGgpLHJbMF09aS5sZW5ndGgsclsxXT1sLHJbMl09dCk6dD1yWzJdLGw9dCksclszXSE9PWw/KG49KDAsQS5qc3gpKEEuRnJhZ21lbnQse2NoaWxkcmVuOigwLEEuanN4KShlQSx7dGV4dDpsLG1hdGNoZXI6blZ9KX0pLHJbM109bCxyWzRdPW4pOm49cls0XSxufXZhciBuWT17aHlkcmF0aW9uV2FybmluZzpudWxsLG5vdGVzOm51bGwscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOm51bGx9O2Z1bmN0aW9uIG5LKGUpe3ZhciB0LG4scj1lLmdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLG89ZS5ydW50aW1lRXJyb3JzLGE9ZS5kZWJ1Z0luZm8saT1lLm9uQ2xvc2UsbD1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHNcIixcInJ1bnRpbWVFcnJvcnNcIixcImRlYnVnSW5mb1wiLFwib25DbG9zZVwiXSkscz0oMCx3LnVzZVJlZikobnVsbCksYz1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLG09KDAseC5jKSgxNyksZz1lLnJ1bnRpbWVFcnJvcnMseT1lLmdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLHY9KGE9KDAsdy51c2VTdGF0ZSkoMCksaT0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGEpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGEsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG5IKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG5IKGUsdCl9fShhLGkpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxiPXZbMF0sQT12WzFdO3M9MD09PWcubGVuZ3RoO3ZhciBDPSh0PW51bGw9PShjPW51bGwhPSh1PWdbYl0pP3U6bnVsbCk/dm9pZCAwOmMuZXJyb3Isbj15LCgwLHcudXNlTWVtbykoZnVuY3Rpb24oKXtpZih2b2lkIDA9PT10KXJldHVybiBuWTt2YXIgZSxyLG8sYT1uKHQpO2lmKG51bGwhPT1hKXJldHVybntoeWRyYXRpb25XYXJuaW5nOm51bGwhPShyPWEud2FybmluZyk/cjpudWxsLG5vdGVzOm51bGwscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOm51bGwhPShvPWEucmVhY3RPdXRwdXRDb21wb25lbnREaWZmKT9vOm51bGx9O2lmKCEodHYoKGU9dCkubWVzc2FnZSl8fC9IeWRyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHNlcnZlciByZW5kZXJlZCAodGV4dHxIVE1MKSBkaWRuJ3QgbWF0Y2ggdGhlIGNsaWVudFxcLi8udGVzdChlLm1lc3NhZ2UpfHwvQSB0cmVlIGh5ZHJhdGVkIGJ1dCBzb21lIGF0dHJpYnV0ZXMgb2YgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50IHByb3BlcnRpZXMuLy50ZXN0KGUubWVzc2FnZSkpKXJldHVybiBuWTt2YXIgaT1mdW5jdGlvbihlKXt2YXIgdD1lLm1lc3NhZ2U7aWYodHYodCkpe3ZhciBuPXRmKHQuc3BsaXQoXCJcXG5cXG5cIiksMikscj1uWzBdLG89blsxXSxhPSh2b2lkIDA9PT1vP1wiXCI6bykudHJpbSgpO3JldHVybnttZXNzYWdlOlwiXCI9PT1hP3QudHJpbSgpOnIudHJpbSgpLGRpZmY6YSxub3RlczpudWxsfX12YXIgaT10Zih0LnNwbGl0KFwiXCIuY29uY2F0KHRtKSksMiksbD1pWzBdLHM9aVsxXSxjPWwudHJpbSgpO2lmKHZvaWQgMCE9PXMmJnMubGVuZ3RoPjEpe3ZhciB1PVtdO3Muc3BsaXQoXCJcXG5cIikuZm9yRWFjaChmdW5jdGlvbihlKXtcIlwiIT09ZS50cmltKCkmJihlLnRyaW0oKS5zdGFydHNXaXRoKFwiYXQgXCIpfHx1LnB1c2goZSkpfSk7dmFyIGQ9dHAoYy5zcGxpdChcIlxcblxcblwiKSksZj1kWzBdLHA9ZC5zbGljZSgxKTtyZXR1cm57bWVzc2FnZTpmLGRpZmY6dS5qb2luKFwiXFxuXCIpLG5vdGVzOnAuam9pbihcIlxcblxcblwiKXx8bnVsbH19dmFyIGg9dHAoYy5zcGxpdChcIlxcblxcblwiKSk7cmV0dXJue21lc3NhZ2U6aFswXSxkaWZmOm51bGwsbm90ZXM6aC5zbGljZSgxKS5qb2luKFwiXFxuXFxuXCIpfX0odCksbD1pLm1lc3NhZ2Uscz1pLm5vdGVzLGM9aS5kaWZmO3JldHVybiBudWxsPT09bD9uWTp7aHlkcmF0aW9uV2FybmluZzpsLG5vdGVzOnMscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOmN9fSxbdCxuXSkpO2lmKHN8fCFjKXJldHVybiBtWzBdIT09Ynx8bVsxXSE9PXM/KGQ9e2lzTG9hZGluZzpzLGFjdGl2ZUlkeDpiLHNldEFjdGl2ZUluZGV4OkEsYWN0aXZlRXJyb3I6bnVsbCxlcnJvckRldGFpbHM6bnVsbCxlcnJvckNvZGU6bnVsbCxlcnJvclR5cGU6bnVsbCxub3RlczpudWxsLGh5ZHJhdGlvbldhcm5pbmc6bnVsbH0sbVswXT1iLG1bMV09cyxtWzJdPWQpOmQ9bVsyXSxkO3ZhciBfPWMuZXJyb3I7bVszXSE9PV8/KGY9KHZvaWQgMD09PShsPV8pP1widW5kZWZpbmVkXCI6bnEobCkpPT09XCJvYmplY3RcIiYmbnVsbCE9PWwmJlwiX19ORVhUX0VSUk9SX0NPREVcImluIGwmJlwic3RyaW5nXCI9PXR5cGVvZiBsLl9fTkVYVF9FUlJPUl9DT0RFP2wuX19ORVhUX0VSUk9SX0NPREU6KHZvaWQgMD09PWw/XCJ1bmRlZmluZWRcIjpucShsKSk9PT1cIm9iamVjdFwiJiZudWxsIT09bCYmXCJkaWdlc3RcImluIGwmJlwic3RyaW5nXCI9PXR5cGVvZiBsLmRpZ2VzdD9sLmRpZ2VzdC5zcGxpdChcIkBcIikuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKFwiRVwiKX0pOnZvaWQgMCxtWzNdPV8sbVs0XT1mKTpmPW1bNF07dmFyIGs9ZjttWzVdIT09Yy50eXBlfHxtWzZdIT09Xz8ocj1fLHA9XCJyZWNvdmVyYWJsZVwiPT09KG89Yy50eXBlKT9cIlJlY292ZXJhYmxlIFwiLmNvbmNhdChyLm5hbWUpOlwiY29uc29sZVwiPT09bz9cIkNvbnNvbGUgXCIuY29uY2F0KHIubmFtZSk6XCJSdW50aW1lIFwiLmNvbmNhdChyLm5hbWUpLG1bNV09Yy50eXBlLG1bNl09XyxtWzddPXApOnA9bVs3XTt2YXIgRT1wLGo9Qy5ub3RlcyxTPUMuaHlkcmF0aW9uV2FybmluZztyZXR1cm4gbVs4XSE9PWN8fG1bOV0hPT1ifHxtWzEwXSE9PWt8fG1bMTFdIT09Q3x8bVsxMl0hPT1FfHxtWzEzXSE9PVN8fG1bMTRdIT09c3x8bVsxNV0hPT1qPyhoPXtpc0xvYWRpbmc6cyxhY3RpdmVJZHg6YixzZXRBY3RpdmVJbmRleDpBLGFjdGl2ZUVycm9yOmMsZXJyb3JEZXRhaWxzOkMsZXJyb3JDb2RlOmssZXJyb3JUeXBlOkUsbm90ZXM6aixoeWRyYXRpb25XYXJuaW5nOlN9LG1bOF09YyxtWzldPWIsbVsxMF09ayxtWzExXT1DLG1bMTJdPUUsbVsxM109UyxtWzE0XT1zLG1bMTVdPWosbVsxNl09aCk6aD1tWzE2XSxofSh7cnVudGltZUVycm9yczpvLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOnJ9KSx1PWMuaXNMb2FkaW5nLGQ9Yy5lcnJvckNvZGUsZj1jLmVycm9yVHlwZSxwPWMubm90ZXMsaD1jLmh5ZHJhdGlvbldhcm5pbmcsbT1jLmFjdGl2ZUlkeCxnPWMuZXJyb3JEZXRhaWxzLHk9Yy5hY3RpdmVFcnJvcix2PWMuc2V0QWN0aXZlSW5kZXgsYj1uTSh5KSxDPSgwLHcudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgZSx0PWIuZmluZEluZGV4KGZ1bmN0aW9uKGUpe3JldHVybiFlLmlnbm9yZWQmJiEhZS5vcmlnaW5hbENvZGVGcmFtZSYmISFlLm9yaWdpbmFsU3RhY2tGcmFtZX0pO3JldHVybiBudWxsIT0oZT1iW3RdKT9lOm51bGx9LFtiXSksXz0oMCx3LnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe2lmKCF5KXJldHVyblwiXCI7dmFyIGU9W107ZiYmZS5wdXNoKFwiIyMgRXJyb3IgVHlwZVxcblwiLmNvbmNhdChmKSk7dmFyIHQ9eS5lcnJvcixuPXQubWVzc2FnZTtpZihcImVudmlyb25tZW50TmFtZVwiaW4gdCYmdC5lbnZpcm9ubWVudE5hbWUpe3ZhciByPVwiWyBcIi5jb25jYXQodC5lbnZpcm9ubWVudE5hbWUsXCIgXSBcIik7bi5zdGFydHNXaXRoKHIpJiYobj1uLnNsaWNlKHIubGVuZ3RoKSl9aWYobiYmZS5wdXNoKFwiIyMgRXJyb3IgTWVzc2FnZVxcblwiLmNvbmNhdChuKSksYi5sZW5ndGg+MCl7dmFyIG89Yi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWUuaWdub3JlZH0pO2lmKG8ubGVuZ3RoPjApe3ZhciBhPW8ubWFwKGZ1bmN0aW9uKGUpe2lmKGUub3JpZ2luYWxTdGFja0ZyYW1lKXt2YXIgdD1lLm9yaWdpbmFsU3RhY2tGcmFtZSxuPXQubWV0aG9kTmFtZSxyPXQuZmlsZSxvPXQubGluZTEsYT10LmNvbHVtbjE7cmV0dXJuXCIgICAgYXQgXCIuY29uY2F0KG4sXCIgKFwiKS5jb25jYXQocixcIjpcIikuY29uY2F0KG8sXCI6XCIpLmNvbmNhdChhLFwiKVwiKX1pZihlLnNvdXJjZVN0YWNrRnJhbWUpe3ZhciBpPWUuc291cmNlU3RhY2tGcmFtZSxsPWkubWV0aG9kTmFtZSxzPWkuZmlsZSxjPWkubGluZTEsdT1pLmNvbHVtbjE7cmV0dXJuXCIgICAgYXQgXCIuY29uY2F0KGwsXCIgKFwiKS5jb25jYXQocyxcIjpcIikuY29uY2F0KGMsXCI6XCIpLmNvbmNhdCh1LFwiKVwiKX1yZXR1cm5cIlwifSkuZmlsdGVyKEJvb2xlYW4pO2EubGVuZ3RoPjAmJmUucHVzaChcIlxcblwiLmNvbmNhdChhLmpvaW4oXCJcXG5cIikpKX19aWYobnVsbD09Qz92b2lkIDA6Qy5vcmlnaW5hbENvZGVGcmFtZSl7dmFyIGk9ZVYoKShlJChDLm9yaWdpbmFsQ29kZUZyYW1lKSk7ZS5wdXNoKFwiIyMgQ29kZSBGcmFtZVxcblwiLmNvbmNhdChpKSl9cmV0dXJuXCJcIi5jb25jYXQoZS5qb2luKFwiXFxuXFxuXCIpLFwiXFxuXFxuTmV4dC5qcyB2ZXJzaW9uOiBcIikuY29uY2F0KGwudmVyc2lvbkluZm8uaW5zdGFsbGVkLFwiIChcIikuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSLFwiKVxcblwiKX0sW3ksZixDLGIsbC52ZXJzaW9uSW5mb10pO2lmKHUpcmV0dXJuKDAsQS5qc3gpKHQwLHtjaGlsZHJlbjooMCxBLmpzeCkobmkse30pfSk7aWYoIXkpcmV0dXJuIG51bGw7dmFyIGs9eS5lcnJvcixFPVtcInNlcnZlclwiLFwiZWRnZS1zZXJ2ZXJcIl0uaW5jbHVkZXMoblQoayl8fFwiXCIpO3JldHVybigwLEEuanN4cykobmQsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7ZXJyb3JDb2RlOmQsZXJyb3JUeXBlOmYsZXJyb3JNZXNzYWdlOmg/KDAsQS5qc3gpKG4kLHttZXNzYWdlOmh9KTooMCxBLmpzeCkoblcse2Vycm9yOmt9KSxvbkNsb3NlOkU/dm9pZCAwOmksZGVidWdJbmZvOmEsZXJyb3I6ayxydW50aW1lRXJyb3JzOm8sYWN0aXZlSWR4Om0sc2V0QWN0aXZlSW5kZXg6dixkaWFsb2dSZXNpemVyUmVmOnMsZ2VuZXJhdGVFcnJvckluZm86X30sbCksbj1uPXtjaGlsZHJlbjpbKDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LW5vdGVzLWNvbnRhaW5lclwiLGNoaWxkcmVuOltwPygwLEEuanN4KShBLkZyYWdtZW50LHtjaGlsZHJlbjooMCxBLmpzeCkoXCJwXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3Rlc1wiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbm90ZXNcIixjaGlsZHJlbjpwfSl9KTpudWxsLGg/KDAsQS5qc3gpKFwicFwiLHtpZDpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiLGNoaWxkcmVuOigwLEEuanN4KShlQSx7dGV4dDpcIlNlZSBtb3JlIGluZm8gaGVyZTogXCIuY29uY2F0KHRnKX0pfSk6bnVsbF19KSxnLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZj8oMCxBLmpzeCkoblAse3JlYWN0T3V0cHV0Q29tcG9uZW50RGlmZjpnLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZnx8XCJcIn0pOm51bGwsKDAsQS5qc3gpKHcuU3VzcGVuc2Use2ZhbGxiYWNrOigwLEEuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWVycm9yLXN1c3BlbmRlZFwiOiEwfSksY2hpbGRyZW46KDAsQS5qc3gpKG5aLHtlcnJvcjp5LGRpYWxvZ1Jlc2l6ZXJSZWY6c30seS5pZC50b1N0cmluZygpKX0pXX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSl9ZnVuY3Rpb24gblgoZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaCxtLGcseSx2LGIsdz0oMCx4LmMpKDE5KTtyZXR1cm4od1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLEEuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwicGFnZXNcIn0pLHdbMF09cik6cj13WzBdLHdbMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obz0oMCxBLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUdXJib3BhY2sgaXMgYW4gaW5jcmVtZW50YWwgYnVuZGxlciBvcHRpbWl6ZWQgZm9yIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQsIHdyaXR0ZW4gaW4gUnVzdCwgYW5kIGJ1aWx0IGludG8gTmV4dC5qcy4gVHVyYm9wYWNrIGNhbiBiZSB1c2VkIGluIE5leHQuanMgaW4gYm90aCB0aGVcIixcIiBcIixyLFwiIGFuZFwiLFwiIFwiLCgwLEEuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwiYXBwXCJ9KSxcIiBkaXJlY3RvcmllcyBmb3IgZmFzdGVyIGxvY2FsIGRldmVsb3BtZW50LlwiXX0pLHdbMV09byk6bz13WzFdLHdbMl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT0oMCxBLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUbyBlbmFibGUgVHVyYm9wYWNrLCB1c2UgdGhlXCIsXCIgXCIsKDAsQS5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46XCItLXR1cmJvcGFja1wifSksXCIgZmxhZyB3aGVuIHJ1bm5pbmcgdGhlIE5leHQuanMgZGV2ZWxvcG1lbnQgc2VydmVyLlwiXX0pLHdbMl09YSk6YT13WzJdLHdbM10hPT1lKT8oaT0oMCxBLmpzeHMpKFwiYXJ0aWNsZVwiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWFydGljbGVcIn0sZSksbj1uPXtjaGlsZHJlbjpbbyxhXX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksd1szXT1lLHdbNF09aSk6aT13WzRdLHdbNV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obD0oMCxBLmpzeCkoZTgse2FjdGlvbkxhYmVsOlwiQ29weSBOZXh0LmpzIFR1cmJvcGFjayBDb21tYW5kXCIsc3VjY2Vzc0xhYmVsOlwiTmV4dC5qcyBUdXJib3BhY2sgQ29tbWFuZCBDb3BpZWRcIixjb250ZW50OlwiLS10dXJib3BhY2tcIixjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb3B5LWJ1dHRvblwifSksd1s1XT1sKTpsPXdbNV0sd1s2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhzPSgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIiAgXCJ9KSxjPSgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIntcIn0pLHdbNl09cyx3WzddPWMpOihzPXdbNl0sYz13WzddKSx3WzhdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHU9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpbXCIgIFwiLCgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLWtleVwiLGNoaWxkcmVuOidcInNjcmlwdHNcIid9KSxcIjogXCIsXCJ7XCJdfSksd1s4XT11KTp1PXdbOF0sd1s5XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhkPSgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLWtleVwiLGNoaWxkcmVuOidcImRldlwiJ30pLHdbOV09ZCk6ZD13WzldLHdbMTBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGY9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmUgZGV2LXRvb2xzLWluZm8taGlnaGxpZ2h0XCIsY2hpbGRyZW46W1wiICAgIFwiLGQsXCI6XCIsXCIgXCIsKDAsQS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWVcIixjaGlsZHJlbjonXCJuZXh0IGRldiAtLXR1cmJvcGFja1wiJ30pLFwiLFwiXX0pLHdbMTBdPWYpOmY9d1sxMF0sd1sxMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocD0oMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXlcIixjaGlsZHJlbjonXCJidWlsZFwiJ30pLHdbMTFdPXApOnA9d1sxMV0sd1sxMl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oaD0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgICBcIixwLFwiOlwiLFwiIFwiLCgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLXZhbHVlXCIsY2hpbGRyZW46J1wibmV4dCBidWlsZFwiJ30pLFwiLFwiXX0pLHdbMTJdPWgpOmg9d1sxMl0sd1sxM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obT0oMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXlcIixjaGlsZHJlbjonXCJzdGFydFwiJ30pLHdbMTNdPW0pOm09d1sxM10sd1sxNF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZz0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgICBcIixtLFwiOlwiLFwiIFwiLCgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLXZhbHVlXCIsY2hpbGRyZW46J1wibmV4dCBzdGFydFwiJ30pLFwiLFwiXX0pLHdbMTRdPWcpOmc9d1sxNF0sd1sxNV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oeT0oMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXlcIixjaGlsZHJlbjonXCJsaW50XCInfSksd1sxNV09eSk6eT13WzE1XSx3WzE2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh2PSgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWNvbnRhaW5lclwiLGNoaWxkcmVuOigwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9ja1wiLGNoaWxkcmVuOltsLCgwLEEuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLXByZVwiLGNoaWxkcmVuOigwLEEuanN4cykoXCJjb2RlXCIse2NoaWxkcmVuOltzLGMsdSxmLGgsZywoMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgICBcIix5LFwiOlwiLFwiIFwiLCgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLXZhbHVlXCIsY2hpbGRyZW46J1wibmV4dCBsaW50XCInfSldfSksKDAsQS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOlwiICB9XCJ9KSwoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46XCJ9XCJ9KSwoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46XCIgIFwifSldfSl9KV19KX0pLHdbMTZdPXYpOnY9d1sxNl0sd1sxN10hPT1pPyhiPSgwLEEuanN4cykoQS5GcmFnbWVudCx7Y2hpbGRyZW46W2ksdl19KSx3WzE3XT1pLHdbMThdPWIpOmI9d1sxOF0sYn1mdW5jdGlvbiBuRyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gblEoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIG5KKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb31mdW5jdGlvbiBuMChlKXt2YXIgdCxuLHIsbyxhLGksbD0oMCx4LmMpKDEwKTtsWzBdIT09ZT8odD1uSihlLFtcInJvdXRlclR5cGVcIl0pLG49ZS5yb3V0ZXJUeXBlLGxbMF09ZSxsWzFdPXQsbFsyXT1uKToodD1sWzFdLG49bFsyXSksbFszXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLEEuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhcmFncmFwaFwiLGNoaWxkcmVuOltcIlRoZSBwYXRoXCIsXCIgXCIsKDAsQS5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSksXCIgXCIsJ2lzIG1hcmtlZCBhcyBcInN0YXRpY1wiIHNpbmNlIGl0IHdpbGwgYmUgcHJlcmVuZGVyZWQgZHVyaW5nIHRoZSBidWlsZCB0aW1lLiddfSksbFszXT1yKTpyPWxbM107dmFyIHM9XCJwYWdlc1wiPT09bj9cImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9pbmNyZW1lbnRhbC1zdGF0aWMtcmVnZW5lcmF0aW9uXCI6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb25cIjtyZXR1cm4gbFs0XSE9PXM/KG89KDAsQS5qc3hzKShcInBcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tcGFyYWdyYXBoXCIsY2hpbGRyZW46W1wiV2l0aCBTdGF0aWMgUmVuZGVyaW5nLCByb3V0ZXMgYXJlIHJlbmRlcmVkIGF0IGJ1aWxkIHRpbWUsIG9yIGluIHRoZSBiYWNrZ3JvdW5kIGFmdGVyXCIsXCIgXCIsKDAsQS5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1saW5rXCIsaHJlZjpzLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjpcImRhdGEgcmV2YWxpZGF0aW9uXCJ9KSxcIi5cIl19KSxsWzRdPXMsbFs1XT1vKTpvPWxbNV0sbFs2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhhPSgwLEEuanN4KShcInBcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tcGFyYWdyYXBoXCIsY2hpbGRyZW46XCJTdGF0aWMgcmVuZGVyaW5nIGlzIHVzZWZ1bCB3aGVuIGEgcm91dGUgaGFzIGRhdGEgdGhhdCBpcyBub3QgcGVyc29uYWxpemVkIHRvIHRoZSB1c2VyIGFuZCBjYW4gYmUga25vd24gYXQgYnVpbGQgdGltZSwgc3VjaCBhcyBhIHN0YXRpYyBibG9nIHBvc3Qgb3IgYSBwcm9kdWN0IHBhZ2UuXCJ9KSxsWzZdPWEpOmE9bFs2XSxsWzddIT09dHx8bFs4XSE9PW8/KGk9KDAsQS5qc3hzKShcImFydGljbGVcIixuUShuRyh7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tYXJ0aWNsZVwifSx0KSx7Y2hpbGRyZW46W3IsbyxhXX0pKSxsWzddPXQsbFs4XT1vLGxbOV09aSk6aT1sWzldLGl9ZnVuY3Rpb24gbjEoZSl7dmFyIHQsbixyLG8sYSxpLGwscz0oMCx4LmMpKDExKTtyZXR1cm4gc1swXSE9PWU/KHQ9bkooZSxbXCJyb3V0ZXJUeXBlXCJdKSxuPWUucm91dGVyVHlwZSxzWzBdPWUsc1sxXT10LHNbMl09bik6KHQ9c1sxXSxuPXNbMl0pLHNbM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj0oMCxBLmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9KSxzWzNdPXIpOnI9c1szXSxzWzRdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG89KDAsQS5qc3hzKShcInBcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tcGFyYWdyYXBoXCIsY2hpbGRyZW46W1wiVGhlIHBhdGhcIixcIiBcIixyLFwiIFwiLCdpcyBtYXJrZWQgYXMgXCJkeW5hbWljXCIgc2luY2UgaXQgd2lsbCBiZSByZW5kZXJlZCBmb3IgZWFjaCB1c2VyIGF0JyxcIiBcIiwoMCxBLmpzeCkoXCJzdHJvbmdcIix7Y2hpbGRyZW46XCJyZXF1ZXN0IHRpbWVcIn0pLFwiLlwiXX0pLGE9KDAsQS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpcIkR5bmFtaWMgcmVuZGVyaW5nIGlzIHVzZWZ1bCB3aGVuIGEgcm91dGUgaGFzIGRhdGEgdGhhdCBpcyBwZXJzb25hbGl6ZWQgdG8gdGhlIHVzZXIgb3IgaGFzIGluZm9ybWF0aW9uIHRoYXQgY2FuIG9ubHkgYmUga25vd24gYXQgcmVxdWVzdCB0aW1lLCBzdWNoIGFzIGNvb2tpZXMgb3IgdGhlIFVSTCdzIHNlYXJjaCBwYXJhbXMuXCJ9KSxzWzRdPW8sc1s1XT1hKToobz1zWzRdLGE9c1s1XSksc1s2XSE9PW4/KGk9XCJwYWdlc1wiPT09bj8oMCxBLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYWdyYXBoXCIsY2hpbGRyZW46W1wiRXhwb3J0aW5nIHRoZVwiLFwiIFwiLCgwLEEuanN4KShcImFcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tbGlua1wiLGhyZWY6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvZ2V0LXNlcnZlci1zaWRlLXByb3BzXCIsdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9vcGVuZXIgbm9yZWZlcnJlclwiLGNoaWxkcmVuOlwiZ2V0U2VydmVyU2lkZVByb3BzXCJ9KSxcIiBcIixcImZ1bmN0aW9uIHdpbGwgb3B0IHRoZSByb3V0ZSBpbnRvIGR5bmFtaWMgcmVuZGVyaW5nLiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBzZXJ2ZXIgb24gZXZlcnkgcmVxdWVzdC5cIl19KTooMCxBLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJEdXJpbmcgcmVuZGVyaW5nLCBpZiBhXCIsXCIgXCIsKDAsQS5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1saW5rXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyNkeW5hbWljLWFwaXNcIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46XCJEeW5hbWljIEFQSVwifSksXCIgXCIsXCJvciBhXCIsXCIgXCIsKDAsQS5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1saW5rXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9mZXRjaFwiLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjpcImZldGNoXCJ9KSxcIiBcIixcIm9wdGlvbiBvZlwiLFwiIFwiLCgwLEEuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwieyBjYWNoZTogJ25vLXN0b3JlJyB9XCJ9KSxcIiBcIixcImlzIGRpc2NvdmVyZWQsIE5leHQuanMgd2lsbCBzd2l0Y2ggdG8gZHluYW1pY2FsbHkgcmVuZGVyaW5nIHRoZSB3aG9sZSByb3V0ZS5cIl19KSxzWzZdPW4sc1s3XT1pKTppPXNbN10sc1s4XSE9PXR8fHNbOV0hPT1pPyhsPSgwLEEuanN4cykoXCJhcnRpY2xlXCIsblEobkcoe2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWFydGljbGVcIn0sdCkse2NoaWxkcmVuOltvLGEsaV19KSksc1s4XT10LHNbOV09aSxzWzEwXT1sKTpsPXNbMTBdLGx9dmFyIG4yPXtwYWdlczp7c3RhdGljOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLXNpdGUtZ2VuZXJhdGlvblwiLGR5bmFtaWM6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItc2lkZS1yZW5kZXJpbmdcIn0sYXBwOntzdGF0aWM6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMjc3RhdGljLXJlbmRlcmluZy1kZWZhdWx0XCIsZHluYW1pYzpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyNkeW5hbWljLXJlbmRlcmluZ1wifX07ZnVuY3Rpb24gbjQoZSl7dmFyIHQsbixyLG8sYT0oMCx4LmMpKDgpO3JldHVybiBhWzBdIT09ZT8obj1uSihlLFtcInJvdXRlclR5cGVcIixcImlzU3RhdGljUm91dGVcIl0pLHI9ZS5yb3V0ZXJUeXBlLHQ9ZS5pc1N0YXRpY1JvdXRlLGFbMF09ZSxhWzFdPXQsYVsyXT1uLGFbM109cik6KHQ9YVsxXSxuPWFbMl0scj1hWzNdKSxhWzRdIT09dHx8YVs1XSE9PW58fGFbNl0hPT1yPyhvPXQ/KDAsQS5qc3gpKG4wLG5HKHtyb3V0ZXJUeXBlOnJ9LG4pKTooMCxBLmpzeCkobjEsbkcoe3JvdXRlclR5cGU6cn0sbikpLGFbNF09dCxhWzVdPW4sYVs2XT1yLGFbN109byk6bz1hWzddLG99ZnVuY3Rpb24gbjUoKXt2YXIgZSx0PSgwLHguYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsZmlsbFJ1bGU6XCJldmVub2RkXCIsZDpcIm0uMTkxIDIuMDYzLjU2LjQ5OCAxMy41IDEyIC41NjEuNDk4Ljk5Ny0xLjEyMS0uNTYtLjQ5OC0xLjgxLTEuNjA4IDIuODgtMy4zNDJ2LS45OGwtMy4yMDQtMy43MkMxMC42NDUuOTIzIDYuMzY1LjY4NiAzLjU5NCAzLjA4TDEuNzQ4IDEuNDQgMS4xODguOTQuMTkgMi4wNjNaTTE0Ljc2MSA4bC0yLjQ0MiAyLjgzNi0xLjY1LTEuNDY2YTMuMDAxIDMuMDAxIDAgMCAwLTQuMzQyLTMuODZsLTEuNi0xLjQyMmE1LjI1MyA1LjI1MyAwIDAgMSA3LjI1MS42ODJMMTQuNzYgOFpNNy41MjYgNi41NzZsMS45NDIgMS43MjdhMS40OTkgMS40OTkgMCAwIDAtMS45NDItMS43MjdabS03Ljg0NS45MzUgMS43MjItMiAxLjEzNy45NzlMMS4yNCA4bDIuNzgyIDMuMjNBNS4yNSA1LjI1IDAgMCAwIDkuOSAxMi43MDNsLjU0IDEuNGE2Ljc1MSA2Ljc1MSAwIDAgMS03LjU1NS0xLjg5MkwtLjMxOCA4LjQ5di0uOThaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gbjMoKXt2YXIgZSx0LG49KDAseC5jKSgyKTtyZXR1cm4gblswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI2xpZ2h0X2ljb25fY2xpcF9wYXRoKVwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOC43NS43NVYwaC0xLjV2MmgxLjVWLjc1Wk0zLjI2IDQuMzJsLS41My0uNTMtLjM1NC0uMzUzLS41My0uNTMgMS4wNi0xLjA2MS41My41My4zNTQuMzU0LjUzLjUzLTEuMDYgMS4wNlptOC40Mi0xLjA2LjUzLS41My4zNTMtLjM1NC41My0uNTMgMS4wNjEgMS4wNi0uNTMuNTMtLjM1NC4zNTQtLjUzLjUzLTEuMDYtMS4wNlpNOCAxMS4yNWEzLjI1IDMuMjUgMCAxIDAgMC02LjUgMy4yNSAzLjI1IDAgMCAwIDAgNi41Wm0wIDEuNWE0Ljc1IDQuNzUgMCAxIDAgMC05LjUgNC43NSA0Ljc1IDAgMCAwIDAgOS41Wm02LTUuNWgydjEuNWgtMnYtMS41Wm0tMTMuMjUgMEgwdjEuNWgydi0xLjVILjc1Wm0xLjYyIDUuMzItLjUzLjUzIDEuMDYgMS4wNi41My0uNTMuMzU0LS4zNTMuNTMtLjUzLTEuMDYtMS4wNjEtLjUzLjUzLS4zNTQuMzU0Wm0xMC4yIDEuMDYuNTMuNTMgMS4wNi0xLjA2LS41My0uNTMtLjM1NC0uMzU0LS41My0uNTMtMS4wNiAxLjA2LjUzLjUzLjM1My4zNTRaTTguNzUgMTR2MmgtMS41di0yaDEuNVpcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0pfSksblswXT1lKTplPW5bMF0sblsxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4cykoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMjBcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLGNoaWxkcmVuOltlLCgwLEEuanN4KShcImRlZnNcIix7Y2hpbGRyZW46KDAsQS5qc3gpKFwiY2xpcFBhdGhcIix7aWQ6XCJsaWdodF9pY29uX2NsaXBfcGF0aFwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGQ6XCJNMCAwaDE2djE2SDB6XCJ9KX0pfSldfSksblsxXT10KTp0PW5bMV0sdH1mdW5jdGlvbiBuNigpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcInN2Z1wiLHtcImRhdGEtdGVzdGlkXCI6XCJnZWlzdC1pY29uXCIsaGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMS41IDguMDAwMDVDMS41IDUuNTMwODkgMi45OTE5OCAzLjQwOTMyIDUuMTIzNDkgMi40ODg4OUM0Ljg4MTM2IDMuMTk4NTggNC43NSAzLjk1OTM2IDQuNzUgNC43NTAxQzQuNzUgOC42MTYwOSA3Ljg4NDAxIDExLjc1MDEgMTEuNzUgMTEuNzUwMUMxMS44OTk1IDExLjc1MDEgMTIuMDQ4IDExLjc0NTQgMTIuMTk1MyAxMS43MzYxQzExLjA5NTUgMTMuMTE2NCA5LjQwMDQ3IDE0LjAwMDEgNy41IDE0LjAwMDFDNC4xODYyOSAxNC4wMDAxIDEuNSAxMS4zMTM4IDEuNSA4LjAwMDA1Wk02LjQxNzA2IDAuNTc3NzU5QzIuNzg3ODQgMS4xMDMxIDAgNC4yMjUzNiAwIDguMDAwMDVDMCAxMi4xNDIyIDMuMzU3ODYgMTUuNTAwMSA3LjUgMTUuNTAwMUMxMC41Nzk4IDE1LjUwMDEgMTMuMjI0NCAxMy42NDM4IDE0LjM3OTIgMTAuOTkyMUwxMy40NTg4IDkuOTc5N0MxMi45MjE4IDEwLjE1NSAxMi4zNDc4IDEwLjI1MDEgMTEuNzUgMTAuMjUwMUM4LjcxMjQzIDEwLjI1MDEgNi4yNSA3Ljc4NzY3IDYuMjUgNC43NTAxQzYuMjUgMy42MzQzMSA2LjU4MTQ2IDIuNTk4MjMgNy4xNTExMSAxLjczMjE3TDYuNDE3MDYgMC41Nzc3NTlaTTEzLjI1IDFWMS43NVYyLjc1TDE0LjI1IDIuNzVIMTVWNC4yNUgxNC4yNUgxMy4yNVY1LjI1VjZIMTEuNzVWNS4yNVY0LjI1SDEwLjc1TDEwIDQuMjVWMi43NUgxMC43NUwxMS43NSAyLjc1VjEuNzVWMUgxMy4yNVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gbjkoKXt2YXIgZSx0PSgwLHguYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJzdmdcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMCAyYTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMCAxIDEgMXY4LjVhMSAxIDAgMCAxLTEgMUg4Ljc1djNoMS43NVYxNmgtNXYtMS41aDEuNzV2LTNIMWExIDEgMCAwIDEtMS0xVjJabTEuNS41VjEwaDEzVjIuNWgtMTNaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gbjgoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIG43KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxydChlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHJlKGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBuOChlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVtcIkBAaXRlcmF0b3JcIl0pcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHxydChlKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gcnQoZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbjgoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gbjgoZSx0KX19ZnVuY3Rpb24gcm4oKXt2YXIgZSx0LG49KGU9W1wiXFxuICAuc2hvcnRjdXQtcmVjb3JkZXIge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stc2Fucyk7XFxuXFxuICAgIC5zaG9ydGN1dC1yZWNvcmRlci1idXR0b24ge1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBnYXA6IDRweDtcXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tY29sb3ItZ3JheS01MDApO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbGcpO1xcbiAgICAgIHBhZGRpbmc6IDZweCA4cHg7XFxuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxNTBtcyB2YXIoLS10aW1pbmctc3dpZnQpO1xcblxcbiAgICAgICZbZGF0YS1oYXMtc2hvcnRjdXQ9J3RydWUnXSB7XFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuXFxuICAgICAgICAmOmhvdmVyIHtcXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgICY6aG92ZXIge1xcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XFxuICAgICAgfVxcblxcbiAgICAgICY6OnBsYWNlaG9sZGVyIHtcXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgICAgfVxcblxcbiAgICAgICZbZGF0YS1wcmlzdGluZT0nZmFsc2UnXTo6cGxhY2Vob2xkZXIge1xcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgIH1cXG5cXG4gICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAga2JkIHtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLXNhbnMpO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG4gICAgICBtaW4td2lkdGg6IDIwcHg7XFxuICAgICAgaGVpZ2h0OiAyMHB4O1xcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuXFxuICAgICAgJltkYXRhLXN5bWJvbD0nZmFsc2UnXSB7XFxuICAgICAgICBwYWRkaW5nOiAwIDRweDtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnNob3J0Y3V0LXJlY29yZGVyLWNsZWFyLWJ1dHRvbiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgIHdpZHRoOiAyMHB4O1xcbiAgICAgIGhlaWdodDogMjBweDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KTtcXG5cXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gICAgICB9XFxuXFxuICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgIH1cXG5cXG4gICAgICBzdmcge1xcbiAgICAgICAgd2lkdGg6IDE0cHg7XFxuICAgICAgICBoZWlnaHQ6IDE0cHg7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuc2hvcnRjdXQtcmVjb3JkZXIta2V5cyB7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiAycHg7XFxuICB9XFxuXFxuICAuc2hvcnRjdXQtcmVjb3JkZXItdG9vbHRpcCB7XFxuICAgIC0tZ2FwOiA4cHg7XFxuICAgIC0tYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIHBhZGRpbmc6IDRweCA4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IGNhbGMoMTAwJSArIHZhcigtLWdhcCkpO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHNjYWxlOiAwLjk2O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgdHJhbnNpdGlvbjpcXG4gICAgICBvcGFjaXR5IDE1MG1zIHZhcigtLXRpbWluZy1zd2lmdCksXFxuICAgICAgc2NhbGUgMTUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KTtcXG5cXG4gICAgJltkYXRhLXNob3c9J3RydWUnXSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBzY2FsZTogMTtcXG4gICAgfVxcblxcbiAgICBzdmcge1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XFxuICAgICAgYm90dG9tOiAtNnB4O1xcbiAgICAgIGxlZnQ6IDUwJTtcXG4gICAgfVxcblxcbiAgICAuc2hvcnRjdXQtcmVjb3JkZXItc3RhdHVzIHtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgZ2FwOiA2cHg7XFxuICAgIH1cXG5cXG4gICAgLnNob3J0Y3V0LXJlY29yZGVyLXN0YXR1cy1pY29uIHtcXG4gICAgICB3aWR0aDogN3B4O1xcbiAgICAgIGhlaWdodDogN3B4O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgICBmbGV4LXNocmluazogMDtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1yZWQtNzAwKTtcXG5cXG4gICAgICAmW2RhdGEtc3VjY2Vzcz0ndHJ1ZSddIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyZWVuLTcwMCk7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXCJdLHR8fCh0PWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKHQpfX0pKSk7cmV0dXJuIHJuPWZ1bmN0aW9uKCl7cmV0dXJuIG59LG59dmFyIHJyPVtcIk1ldGFcIixcIkNvbnRyb2xcIixcIkN0cmxcIixcIkFsdFwiLFwiT3B0aW9uXCIsXCJTaGlmdFwiXTtmdW5jdGlvbiBybyhlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoPSgwLHguYykoMzMpLG09ZS52YWx1ZSxnPWUub25DaGFuZ2UseT1uNygoMCx3LnVzZVN0YXRlKSghMCksMiksdj15WzBdLGI9eVsxXSxDPW43KCgwLHcudXNlU3RhdGUpKCExKSwyKSxfPUNbMF0saz1DWzFdO2hbMF0hPT1tPyh0PW51bGwhPW0/bTpbXSxoWzBdPW0saFsxXT10KTp0PWhbMV07dmFyIEU9bjcoKDAsdy51c2VTdGF0ZSkodCksMiksaj1FWzBdLFM9RVsxXSxPPW43KCgwLHcudXNlU3RhdGUpKCExKSwyKSxCPU9bMF0sUD1PWzFdLEk9KDAsdy51c2VSZWYpKG51bGwpLFQ9KDAsdy51c2VSZWYpKG51bGwpLHo9ISFtfHxqLmxlbmd0aD4wO2hbMl0hPT1nfHxoWzNdIT09dnx8aFs0XSE9PV8/KG49ZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQ9PT1ULmN1cnJlbnQmJlwiVGFiXCIhPT1lLmtleSl7SS5jdXJyZW50JiZjbGVhclRpbWVvdXQoSS5jdXJyZW50KSxffHxrKCEwKSx2JiYoUyhbXSksYighMSkpO3ZhciB0PWZ1bmN0aW9uKGUpe0kuY3VycmVudD13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe1AoITApLGcoZS5qb2luKFwiK1wiKSksSS5jdXJyZW50PXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ayghMSl9LDFlMyl9LDE4MCl9O2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLFMoZnVuY3Rpb24obil7aWYobi5pbmNsdWRlcyhlLmNvZGUpfHxuLmluY2x1ZGVzKGUua2V5KSlyZXR1cm4gbjtpZighcnIuaW5jbHVkZXMoZS5rZXkpKXt2YXIgcj1uLmZpbmRJbmRleChybCk7aWYoLTEhPT1yKXt2YXIgbz1yZShuKTtyZXR1cm4gb1tyXT1lLmNvZGUsdChvKSxvfXZhciBhPXJlKG4pLmNvbmNhdChbZS5jb2RlXSk7cmV0dXJuIHQoYSksYX1mb3IodmFyIGk9cmUobiksbD1yci5pbmRleE9mKGUua2V5KSxzPTAsYz0wO2M8aS5sZW5ndGg7YysrKWlmKHJyLmluY2x1ZGVzKGlbY10pKXtpZihsPHJyLmluZGV4T2YoaVtjXSkpe3M9YzticmVha31zPWMrMX1lbHNlIGJyZWFrO3JldHVybiBpLnNwbGljZShzLDAsZS5rZXkpLHQoaSksaX0pfX0saFsyXT1nLGhbM109dixoWzRdPV8saFs1XT1uKTpuPWhbNV07dmFyIEQ9bjtoWzZdIT09Zz8ocj1mdW5jdGlvbigpe3ZhciBlO251bGw9PShlPVQuY3VycmVudCl8fGUuZm9jdXMoKSxTKFtdKSxQKCExKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ayghMCl9KSxnKG51bGwpfSxoWzZdPWcsaFs3XT1yKTpyPWhbN107dmFyIEw9cjtoWzhdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG89ZnVuY3Rpb24oKXtQKCExKSxrKCExKSxiKCEwKX0saFs4XT1vKTpvPWhbOF07dmFyIE49bztoWzldPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGE9ZnVuY3Rpb24oKXt2YXIgZTtJLmN1cnJlbnQmJmNsZWFyVGltZW91dChJLmN1cnJlbnQpLGsoITApLG51bGw9PShlPVQuY3VycmVudCl8fGUuZm9jdXMoKX0saFs5XT1hKTphPWhbOV07dmFyIFI9YTtoWzEwXSE9PXp8fGhbMTFdIT09aj8oaT16PygwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlci1rZXlzXCIsY2hpbGRyZW46ai5tYXAocmkpfSk6XCJSZWNvcmQgU2hvcnRjdXRcIixoWzEwXT16LGhbMTFdPWosaFsxMl09aSk6aT1oWzEyXSxoWzEzXSE9PUx8fGhbMTRdIT09ej8obD16JiYoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2hvcnRjdXQtcmVjb3JkZXItY2xlYXItYnV0dG9uXCIscm9sZTpcImJ1dHRvblwiLG9uQ2xpY2s6TCxvbkZvY3VzOnJhLG9uS2V5RG93bjpmdW5jdGlvbihlKXsoXCJFbnRlclwiPT09ZS5rZXl8fFwiIFwiPT09ZS5rZXkpJiYoTCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpfSxcImFyaWEtbGFiZWxcIjpcIkNsZWFyIHNob3J0Y3V0XCIsdGFiSW5kZXg6MCxjaGlsZHJlbjooMCxBLmpzeCkocmQse30pfSksaFsxM109TCxoWzE0XT16LGhbMTVdPWwpOmw9aFsxNV0saFsxNl0hPT1EfHxoWzE3XSE9PXp8fGhbMThdIT09aXx8aFsxOV0hPT1sPyhzPSgwLEEuanN4cykoXCJidXR0b25cIix7Y2xhc3NOYW1lOlwic2hvcnRjdXQtcmVjb3JkZXItYnV0dG9uXCIscmVmOlQsb25DbGljazpSLG9uRm9jdXM6UixvbkJsdXI6TixvbktleURvd246RCxcImRhdGEtaGFzLXNob3J0Y3V0XCI6eixcImRhdGEtc2hvcnRjdXQtcmVjb3JkZXJcIjpcInRydWVcIixjaGlsZHJlbjpbaSxsXX0pLGhbMTZdPUQsaFsxN109eixoWzE4XT1pLGhbMTldPWwsaFsyMF09cyk6cz1oWzIwXSxoWzIxXSE9PUI/KGM9KDAsQS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLXN0YXR1cy1pY29uXCIsXCJkYXRhLXN1Y2Nlc3NcIjpCfSksaFsyMV09QixoWzIyXT1jKTpjPWhbMjJdO3ZhciBNPUI/XCJTaG9ydGN1dCBzZXRcIjpcIlJlY29yZGluZ1wiO3JldHVybiBoWzIzXSE9PU18fGhbMjRdIT09Yz8odT0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLXN0YXR1c1wiLGNoaWxkcmVuOltjLE1dfSksaFsyM109TSxoWzI0XT1jLGhbMjVdPXUpOnU9aFsyNV0saFsyNl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZD0oMCxBLmpzeCkocnMse30pLGhbMjZdPWQpOmQ9aFsyNl0saFsyN10hPT1ffHxoWzI4XSE9PXU/KGY9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlci10b29sdGlwXCIsXCJkYXRhLXNob3dcIjpfLGNoaWxkcmVuOlt1LGRdfSksaFsyN109XyxoWzI4XT11LGhbMjldPWYpOmY9aFsyOV0saFszMF0hPT1mfHxoWzMxXSE9PXM/KHA9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlclwiLGNoaWxkcmVuOltzLGZdfSksaFszMF09ZixoWzMxXT1zLGhbMzJdPXApOnA9aFszMl0scH1mdW5jdGlvbiByYShlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiByaShlKXtyZXR1cm4oMCxBLmpzeCkocmMse2NoaWxkcmVuOmV9LGUpfWZ1bmN0aW9uIHJsKGUpe3JldHVybiFyci5pbmNsdWRlcyhlKX1mdW5jdGlvbiBycygpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcInN2Z1wiLHtmaWxsOlwibm9uZVwiLGhlaWdodDpcIjZcIix2aWV3Qm94OlwiMCAwIDE0IDZcIix3aWR0aDpcIjE0XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZDpcIk0xMy44Mjg0IDBIMC4xNzE1N0MwLjcwMjAwMyAwIDEuMjEwNzEgMC4yMTA3MTQgMS41ODU3OCAwLjU4NTc4N0w1LjU4NTc4IDQuNTg1NzlDNi4zNjY4MyA1LjM2Njg0IDcuNjMzMTYgNS4zNjY4MyA4LjQxNDIxIDQuNTg1NzlMMTIuNDE0MiAwLjU4NTc4NkMxMi43ODkzIDAuMjEwNzE0IDEzLjI5OCAwIDEzLjgyODQgMFpcIixmaWxsOlwidmFyKC0tYmFja2dyb3VuZClcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiByYyhlKXt2YXIgdCxuLHIsbyxhPSgwLHguYykoOSksaT1lLmNoaWxkcmVuO2FbMF0hPT1pPyh0PWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlXCJNZXRhXCI6cmV0dXJuKDAsQS5qc3gpKHJ1LHt9KTtjYXNlXCJBbHRcIjpjYXNlXCJPcHRpb25cIjpyZXR1cm5cIuKMpVwiO2Nhc2VcIkNvbnRyb2xcIjpjYXNlXCJDdHJsXCI6cmV0dXJuXCJDdHJsXCI7Y2FzZVwiU2hpZnRcIjpyZXR1cm5cIuKHp1wiO2Nhc2VcIkVudGVyXCI6cmV0dXJuXCLij45cIjtjYXNlXCJFc2NhcGVcIjpjYXNlXCJFc2NcIjpyZXR1cm5cIkVzY1wiO2Nhc2VcIiBcIjpjYXNlXCJTcGFjZVwiOmNhc2VcIlNwYWNlYmFyXCI6cmV0dXJuXCJTcGFjZVwiO2Nhc2VcIkFycm93VXBcIjpyZXR1cm5cIuKGkVwiO2Nhc2VcIkFycm93RG93blwiOnJldHVyblwi4oaTXCI7Y2FzZVwiQXJyb3dMZWZ0XCI6cmV0dXJuXCLihpBcIjtjYXNlXCJBcnJvd1JpZ2h0XCI6cmV0dXJuXCLihpJcIjtjYXNlXCJUYWJcIjpyZXR1cm5cIlRhYlwiO2Nhc2VcIkJhY2tzcGFjZVwiOnJldHVyblwi4oyrXCI7Y2FzZVwiRGVsZXRlXCI6cmV0dXJuXCLijKZcIjtkZWZhdWx0OmlmKDE9PT1pLmxlbmd0aClyZXR1cm4gaS50b1VwcGVyQ2FzZSgpO3JldHVybiBpfX0sYVswXT1pLGFbMV09dCk6dD1hWzFdO3ZhciBsPXQ7aWYoYVsyXSE9PWl8fGFbM10hPT1sKXt2YXIgcz1sKGkpO249XCJzdHJpbmdcIj09dHlwZW9mIHMmJjE9PT1zLmxlbmd0aCxyPWZ1bmN0aW9uKGUpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlKXJldHVybiBlO3ZhciB0PXtNaW51czpcIi1cIixFcXVhbDpcIj1cIixCcmFja2V0TGVmdDpcIltcIixCcmFja2V0UmlnaHQ6XCJdXCIsQmFja3NsYXNoOlwiXFxcXFwiLFNlbWljb2xvbjpcIjtcIixRdW90ZTpcIidcIixDb21tYTpcIixcIixQZXJpb2Q6XCIuXCIsQmFja3F1b3RlOlwiYFwiLFNwYWNlOlwiIFwiLFNsYXNoOlwiL1wiLEludGxCYWNrc2xhc2g6XCJcXFxcXCJ9O3JldHVybiB0W2VdP3RbZV06L15LZXkoW0EtWl0pJC8udGVzdChlKT9lLnJlcGxhY2UoL15LZXkvLFwiXCIpOi9eRGlnaXQoWzAtOV0pJC8udGVzdChlKT9lLnJlcGxhY2UoL15EaWdpdC8sXCJcIik6L15OdW1wYWQoWzAtOV0pJC8udGVzdChlKT9lLnJlcGxhY2UoL15OdW1wYWQvLFwiXCIpOlwiTnVtcGFkQWRkXCI9PT1lP1wiK1wiOlwiTnVtcGFkU3VidHJhY3RcIj09PWU/XCItXCI6XCJOdW1wYWRNdWx0aXBseVwiPT09ZT9cIipcIjpcIk51bXBhZERpdmlkZVwiPT09ZT9cIi9cIjpcIk51bXBhZERlY2ltYWxcIj09PWU/XCIuXCI6XCJOdW1wYWRFbnRlclwiPT09ZT9cIkVudGVyXCI6ZX0ocyksYVsyXT1pLGFbM109bCxhWzRdPW4sYVs1XT1yfWVsc2Ugbj1hWzRdLHI9YVs1XTtyZXR1cm4gYVs2XSE9PW58fGFbN10hPT1yPyhvPSgwLEEuanN4KShcImtiZFwiLHtcImRhdGEtc3ltYm9sXCI6bixjaGlsZHJlbjpyfSksYVs2XT1uLGFbN109cixhWzhdPW8pOm89YVs4XSxvfWZ1bmN0aW9uIHJ1KCl7dmFyIGUsdCxuLHIsbyxhPSgwLHguYykoNiksaT1uNygoMCx3LnVzZVN0YXRlKShcIlxceGEwXCIpLDIpLGw9aVswXSxzPWlbMV07YVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPXJwKC9eTWFjLyl8fHJwKC9eaVBob25lLyl8fHJwKC9eaVBhZC8pfHxycCgvXk1hYy8pJiZuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MSxhWzBdPWUpOmU9YVswXTt2YXIgYz1lO3JldHVybiBhWzFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9ZnVuY3Rpb24oKXshMD09PWMmJnMoXCLijJhcIiksITE9PT1jJiZzKFwiQ3RybFwiKX0sbj1bY10sYVsxXT10LGFbMl09bik6KHQ9YVsxXSxuPWFbMl0pLCgwLHcudXNlRWZmZWN0KSh0LG4pLGFbM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj17bWluV2lkdGg6XCIxZW1cIixkaXNwbGF5OlwiaW5saW5lLWJsb2NrXCJ9LGFbM109cik6cj1hWzNdLGFbNF0hPT1sPyhvPSgwLEEuanN4KShcInNwYW5cIix7c3R5bGU6cixjaGlsZHJlbjpsfSksYVs0XT1sLGFbNV09byk6bz1hWzVdLG99ZnVuY3Rpb24gcmQoKXt2YXIgZSx0PSgwLHguYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTIuNDY5NyAxMy41MzAzTDEzIDE0LjA2MDdMMTQuMDYwNyAxM0wxMy41MzAzIDEyLjQ2OTdMOS4wNjA2NSA3Ljk5OTk5TDEzLjUzMDMgMy41MzAzMkwxNC4wNjA3IDIuOTk5OTlMMTMgMS45MzkzM0wxMi40Njk3IDIuNDY5NjZMNy45OTk5OSA2LjkzOTMzTDMuNTMwMzIgMi40Njk2NkwyLjk5OTk5IDEuOTM5MzNMMS45MzkzMyAyLjk5OTk5TDIuNDY5NjYgMy41MzAzMkw2LjkzOTMzIDcuOTk5OTlMMi40Njk2NiAxMi40Njk3TDEuOTM5MzMgMTNMMi45OTk5OSAxNC4wNjA3TDMuNTMwMzIgMTMuNTMwM0w3Ljk5OTk5IDkuMDYwNjVMMTIuNDY5NyAxMy41MzAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX12YXIgcmY9ZXUocm4oKSk7ZnVuY3Rpb24gcnAoZSl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmbnVsbCE9d2luZG93Lm5hdmlnYXRvcj9lLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSk6dm9pZCAwfWZ1bmN0aW9uIHJoKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBybShlLHQsbixyLG8sYSxpKXt0cnl7dmFyIGw9ZVthXShpKSxzPWwudmFsdWV9Y2F0Y2goZSl7bihlKTtyZXR1cm59bC5kb25lP3Qocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX12YXIgcmc9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC96b2QvaW5kZXguY2pzXCIpLHJ5PXJnLnoub2JqZWN0KHt0aGVtZTpyZy56LmVudW0oW1wibGlnaHRcIixcImRhcmtcIixcInN5c3RlbVwiXSkub3B0aW9uYWwoKSxkaXNhYmxlRGV2SW5kaWNhdG9yOnJnLnouYm9vbGVhbigpLm9wdGlvbmFsKCksZGV2VG9vbHNQb3NpdGlvbjpyZy56LmVudW0oW1widG9wLWxlZnRcIixcInRvcC1yaWdodFwiLFwiYm90dG9tLWxlZnRcIixcImJvdHRvbS1yaWdodFwiXSkub3B0aW9uYWwoKSxkZXZUb29sc1BhbmVsUG9zaXRpb246cmcuei5yZWNvcmQocmcuei5zdHJpbmcoKSxyZy56LmVudW0oW1widG9wLWxlZnRcIixcInRvcC1yaWdodFwiLFwiYm90dG9tLWxlZnRcIixcImJvdHRvbS1yaWdodFwiXSkpLm9wdGlvbmFsKCksZGV2VG9vbHNQYW5lbFNpemU6cmcuei5yZWNvcmQocmcuei5zdHJpbmcoKSxyZy56Lm9iamVjdCh7d2lkdGg6cmcuei5udW1iZXIoKSxoZWlnaHQ6cmcuei5udW1iZXIoKX0pKS5vcHRpb25hbCgpLHNjYWxlOnJnLnoubnVtYmVyKCkub3B0aW9uYWwoKSxoaWRlU2hvcnRjdXQ6cmcuei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCl9KTtmdW5jdGlvbiBydihlKXtyZXR1cm4gZSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbD9cInN5bWJvbFwiOnR5cGVvZiBlfXZhciByYj17fSxyQT1udWxsO2Z1bmN0aW9uIHJ4KCl7aWYoMCE9PU9iamVjdC5rZXlzKHJiKS5sZW5ndGgpe3ZhciBlPUpTT04uc3RyaW5naWZ5KHJiKTtyYj17fSxmZXRjaChcIi9fX25leHRqc19kZXZ0b29sc19jb25maWdcIix7bWV0aG9kOlwiUE9TVFwiLGhlYWRlcnM6e1wiQ29udGVudC1UeXBlXCI6XCJhcHBsaWNhdGlvbi9qc29uXCJ9LGJvZHk6ZSxrZWVwYWxpdmU6ITB9KS5jYXRjaChmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oXCJbTmV4dC5qcyBEZXZUb29sc10gRmFpbGVkIHRvIHNhdmUgY29uZmlnOlwiLHtkYXRhOmUsZXJyb3I6dH0pfSl9fWZ1bmN0aW9uIHJ3KGUpe3ZhciB0PXJ5LnNhZmVQYXJzZShlKTtpZighdC5zdWNjZXNzKXJldHVybiB2b2lkIGNvbnNvbGUud2FybihcIltOZXh0LmpzIERldlRvb2xzXSBJbnZhbGlkIGNvbmZpZyBwYXRjaDpcIix0LmVycm9yLm1lc3NhZ2UpO3JiPWZ1bmN0aW9uIGUodCxuKXtpZighbnx8KHZvaWQgMD09PW4/XCJ1bmRlZmluZWRcIjpydihuKSkhPT1cIm9iamVjdFwifHxBcnJheS5pc0FycmF5KG4pfHwhdHx8KHZvaWQgMD09PXQ/XCJ1bmRlZmluZWRcIjpydih0KSkhPT1cIm9iamVjdFwifHxBcnJheS5pc0FycmF5KHQpKXJldHVybiBuO3ZhciByPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sdCk7Zm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb10saT10W29dO3ZvaWQgMCE9PWEmJihhJiYodm9pZCAwPT09YT9cInVuZGVmaW5lZFwiOnJ2KGEpKT09PVwib2JqZWN0XCImJiFBcnJheS5pc0FycmF5KGEpJiZpJiYodm9pZCAwPT09aT9cInVuZGVmaW5lZFwiOnJ2KGkpKT09PVwib2JqZWN0XCImJiFBcnJheS5pc0FycmF5KGkpP3Jbb109ZShpLGEpOnJbb109YSl9cmV0dXJuIHJ9KHJiLGUpLHJBJiZjbGVhclRpbWVvdXQockEpLHJBPXNldFRpbWVvdXQocngsMTIwKX1mdW5jdGlvbiByQyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gcl8oKXt2YXIgZSx0LG49KGU9W1wiXFxuICAucHJlZmVyZW5jZXMtY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLnByZWZlcmVuY2VzLWNvbnRhaW5lciB7XFxuICAgICAgd2lkdGg6IDQ4MHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcXG4gICAgcGFkZGluZy10b3A6IDA7XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1zZWN0aW9uIHtcXG4gICAgcGFkZGluZzogMTJweCAwO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogMjRweDtcXG4gIH1cXG5cXG4gIC5wcmVmZXJlbmNlLXNlY3Rpb246bGFzdC1jaGlsZCB7XFxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1oZWFkZXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICBmbGV4OiAxO1xcbiAgfVxcblxcbiAgLnByZWZlcmVuY2UtaGVhZGVyIGxhYmVsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5wcmVmZXJlbmNlLWRlc2NyaXB0aW9uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLnNlbGVjdC1idXR0b24sXFxuICAuYWN0aW9uLWJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogOHB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KTtcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XFxuICAgIH1cXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogMTRweDtcXG4gICAgICBoZWlnaHQ6IDE0cHg7XFxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5zZWxlY3QtYnV0dG9uIHtcXG4gICAgJjpmb2N1cy13aXRoaW4ge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xcbiAgICB9XFxuXFxuICAgIHNlbGVjdCB7XFxuICAgICAgYWxsOiB1bnNldDtcXG4gICAgfVxcblxcbiAgICBvcHRpb24ge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnByZWZlcmVuY2Utc2VjdGlvbiBidXR0b246ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAwLjY7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICB9XFxuXFxuICA6Z2xvYmFsKC5pY29uKSB7XFxuICAgIHdpZHRoOiAxOHB4O1xcbiAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiByXz1mdW5jdGlvbigpe3JldHVybiBufSxufWZ1bmN0aW9uIHJrKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdixiLEMsXyxrLEUsaixTLE8sUCxJLFQseixELEwsTixSLE0sWixVLEYscSxILFYsJCxXLFk9KDAseC5jKSg2NSksSz1lLnRoZW1lLFg9ZS5oaWRlLEc9ZS5oaWRlU2hvcnRjdXQsUT1lLnNldEhpZGVTaG9ydGN1dCxKPWUuc2NhbGUsZWU9ZS5zZXRQb3NpdGlvbixldD1lLnNldFNjYWxlLGVuPWUucG9zaXRpb24sZXI9KG89KHQ9KDAsdy51c2VTdGF0ZSkoITEpLG49MixyPWZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJoKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHJoKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKVswXSxhPXJbMV0se3Jlc3RhcnRTZXJ2ZXI6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmludmFsaWRhdGVQZXJzaXN0ZW50Q2FjaGU7cmV0dXJuKHQ9ZnVuY3Rpb24oKXt2YXIgZSx0LHIsbyxpLGw7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX0saT1PYmplY3QuY3JlYXRlKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBJdGVyYXRvcj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIGkubmV4dD1sKDApLGkudGhyb3c9bCgxKSxpLnJldHVybj1sKDIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBsKGwpe3JldHVybiBmdW5jdGlvbihzKXt2YXIgYz1bbCxzXTtpZihuKXRocm93IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtpJiYoaT0wLGNbMF0mJihhPTApKSxhOyl0cnl7aWYobj0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSkmJig2PT09Y1swXXx8Mj09PWNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXthLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmEubGFiZWw8b1sxXSl7YS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZhLmxhYmVsPG9bMl0pe2EubGFiZWw9b1syXSxhLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1jPXQuY2FsbChlLGEpfWNhdGNoKGUpe2M9WzYsZV0scj0wfWZpbmFsbHl7bj1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fX0odGhpcyxmdW5jdGlvbihzKXtzd2l0Y2gocy5sYWJlbCl7Y2FzZSAwOmEoITApLGU9bj9cIi9fX25leHRqc19yZXN0YXJ0X2Rldj9pbnZhbGlkYXRlUGVyc2lzdGVudENhY2hlPTFcIjpcIi9fX25leHRqc19yZXN0YXJ0X2RldlwiLHQ9ITEscy5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gcy50cnlzLnB1c2goWzEsMTEsMTIsMTNdKSxbNCxmZXRjaChcIi9fX25leHRqc19zZXJ2ZXJfc3RhdHVzXCIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5leGVjdXRpb25JZH0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLmxvZyhcIltOZXh0LmpzIERldlRvb2xzXSBGYWlsZWQgdG8gZmV0Y2ggc2VydmVyIHN0YXR1cyB3aGlsZSByZXN0YXJ0aW5nIGRldiBzZXJ2ZXIuXCIsZSksbnVsbH0pXTtjYXNlIDI6aWYoIShyPXMuc2VudCgpKSlyZXR1cm4gY29uc29sZS5sb2coXCJbTmV4dC5qcyBEZXZUb29sc10gRmFpbGVkIHRvIGdldCB0aGUgY3VycmVudCBzZXJ2ZXIgZXhlY3V0aW9uIElEIHdoaWxlIHJlc3RhcnRpbmcgZGV2IHNlcnZlci5cIiksWzJdO3JldHVybls0LGZldGNoKGUse21ldGhvZDpcIlBPU1RcIn0pXTtjYXNlIDM6aWYoIShvPXMuc2VudCgpKS5vaylyZXR1cm4gY29uc29sZS5sb2coXCJbTmV4dC5qcyBEZXZUb29sc10gRmFpbGVkIHRvIGZldGNoIHJlc3RhcnQgc2VydmVyIGVuZHBvaW50LiBTdGF0dXM6XCIsby5zdGF0dXMpLFsyXTtpPTAscy5sYWJlbD00O2Nhc2UgNDppZighKGk8MTApKXJldHVyblszLDEwXTtyZXR1cm5bNCxuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtyZXR1cm4gc2V0VGltZW91dChlLDFlMyl9KV07Y2FzZSA1OnMuc2VudCgpLHMubGFiZWw9NjtjYXNlIDY6cmV0dXJuIHMudHJ5cy5wdXNoKFs2LDgsLDldKSxbNCxmZXRjaChcIi9fX25leHRqc19zZXJ2ZXJfc3RhdHVzXCIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5leGVjdXRpb25JZH0pXTtjYXNlIDc6aWYobD1zLnNlbnQoKSxyIT09bClyZXR1cm4gdD0hMCx3aW5kb3cubG9jYXRpb24ucmVsb2FkKCksWzJdO3JldHVyblszLDldO2Nhc2UgODpyZXR1cm4gcy5zZW50KCksWzMsOV07Y2FzZSA5OnJldHVybiBpKyssWzMsNF07Y2FzZSAxMDpyZXR1cm4gY29uc29sZS5sb2coXCJbTmV4dC5qcyBEZXZUb29sc10gRmFpbGVkIHRvIHJlc3RhcnQgc2VydmVyLiBFeGhhdXN0ZWQgYWxsIHBvbGxpbmcgYXR0ZW1wdHMuXCIpLFsyXTtjYXNlIDExOnJldHVybiBjb25zb2xlLmxvZyhcIltOZXh0LmpzIERldlRvb2xzXSBGYWlsZWQgdG8gcmVzdGFydCBzZXJ2ZXIuXCIscy5zZW50KCkpLFsyXTtjYXNlIDEyOnJldHVybiB0fHxhKCExKSxbN107Y2FzZSAxMzpyZXR1cm5bMl19fSl9LGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gaShlKXtybShhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtybShhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfSkoKX0saXNQZW5kaW5nOm99KSxlbz1lci5yZXN0YXJ0U2VydmVyLGVhPWVyLmlzUGVuZGluZyxlaT1kbCgpLnNoYWRvd1Jvb3Q7WVswXSE9PWVpLmhvc3Q/KGk9ZnVuY3Rpb24oZSl7dmFyIHQ9ZWkuaG9zdDtpZihcInN5c3RlbVwiPT09ZS50YXJnZXQudmFsdWUpe3QuY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIiksdC5jbGFzc0xpc3QucmVtb3ZlKFwibGlnaHRcIikscncoe3RoZW1lOlwic3lzdGVtXCJ9KTtyZXR1cm59XCJkYXJrXCI9PT1lLnRhcmdldC52YWx1ZT8odC5jbGFzc0xpc3QuYWRkKFwiZGFya1wiKSx0LmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSxydyh7dGhlbWU6XCJkYXJrXCJ9KSk6KHQuY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIiksdC5jbGFzc0xpc3QuYWRkKFwibGlnaHRcIikscncoe3RoZW1lOlwibGlnaHRcIn0pKX0sWVswXT1laS5ob3N0LFlbMV09aSk6aT1ZWzFdO3ZhciBlbD1pO1lbMl0hPT1lZT8obD1mdW5jdGlvbihlKXtlZShlLnRhcmdldC52YWx1ZSkscncoe2RldlRvb2xzUG9zaXRpb246ZS50YXJnZXQudmFsdWV9KX0sWVsyXT1lZSxZWzNdPWwpOmw9WVszXTt2YXIgZXM9bDtZWzRdIT09ZXQ/KHM9ZnVuY3Rpb24oZSl7dmFyIHQ9TnVtYmVyKGUudGFyZ2V0LnZhbHVlKTtldCh0KSxydyh7c2NhbGU6dH0pfSxZWzRdPWV0LFlbNV09cyk6cz1ZWzVdO3ZhciBlYz1zO3JldHVybiBZWzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGM9KDAsQS5qc3gpKFwiaDJcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tc2VjdGlvbi10aXRsZVwiLGNoaWxkcmVuOlwiR2VuZXJhbFwifSksWVs2XT1jKTpjPVlbNl0sWVs3XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh1PSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwibGFiZWxcIix7aHRtbEZvcjpcInRoZW1lXCIsY2hpbGRyZW46XCJUaGVtZVwifSksKDAsQS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46XCJTZWxlY3QgeW91ciB0aGVtZSBwcmVmZXJlbmNlLlwifSldfSksWVs3XT11KTp1PVlbN10sWVs4XSE9PUs/KGQ9KDAsQS5qc3gpKHJTLHt0aGVtZTpLfSksWVs4XT1LLFlbOV09ZCk6ZD1ZWzldLFlbMTBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHA9KDAsQS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwic3lzdGVtXCIsY2hpbGRyZW46XCJTeXN0ZW1cIn0pLGg9KDAsQS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwibGlnaHRcIixjaGlsZHJlbjpcIkxpZ2h0XCJ9KSxmPSgwLEEuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImRhcmtcIixjaGlsZHJlbjpcIkRhcmtcIn0pLFlbMTBdPWYsWVsxMV09cCxZWzEyXT1oKTooZj1ZWzEwXSxwPVlbMTFdLGg9WVsxMl0pLFlbMTNdIT09ZWx8fFlbMTRdIT09ZHx8WVsxNV0hPT1LPyhtPSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46W3UsKDAsQS5qc3hzKShyaix7aWQ6XCJ0aGVtZVwiLG5hbWU6XCJ0aGVtZVwiLHByZWZpeDpkLHZhbHVlOkssb25DaGFuZ2U6ZWwsY2hpbGRyZW46W3AsaCxmXX0pXX0pLFlbMTNdPWVsLFlbMTRdPWQsWVsxNV09SyxZWzE2XT1tKTptPVlbMTZdLFlbMTddPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGc9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWhlYWRlclwiLGNoaWxkcmVuOlsoMCxBLmpzeCkoXCJsYWJlbFwiLHtodG1sRm9yOlwicG9zaXRpb25cIixjaGlsZHJlbjpcIlBvc2l0aW9uXCJ9KSwoMCxBLmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIkFkanVzdCB0aGUgcGxhY2VtZW50IG9mIHlvdXIgZGV2IHRvb2xzLlwifSldfSksWVsxN109Zyk6Zz1ZWzE3XSxZWzE4XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh5PSgwLEEuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImJvdHRvbS1sZWZ0XCIsY2hpbGRyZW46XCJCb3R0b20gTGVmdFwifSksdj0oMCxBLmpzeCkoXCJvcHRpb25cIix7dmFsdWU6XCJib3R0b20tcmlnaHRcIixjaGlsZHJlbjpcIkJvdHRvbSBSaWdodFwifSksYj0oMCxBLmpzeCkoXCJvcHRpb25cIix7dmFsdWU6XCJ0b3AtbGVmdFwiLGNoaWxkcmVuOlwiVG9wIExlZnRcIn0pLEM9KDAsQS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwidG9wLXJpZ2h0XCIsY2hpbGRyZW46XCJUb3AgUmlnaHRcIn0pLFlbMThdPXksWVsxOV09dixZWzIwXT1iLFlbMjFdPUMpOih5PVlbMThdLHY9WVsxOV0sYj1ZWzIwXSxDPVlbMjFdKSxZWzIyXSE9PWVzfHxZWzIzXSE9PWVuPyhfPSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46W2csKDAsQS5qc3hzKShyaix7aWQ6XCJwb3NpdGlvblwiLG5hbWU6XCJwb3NpdGlvblwiLHZhbHVlOmVuLG9uQ2hhbmdlOmVzLGNoaWxkcmVuOlt5LHYsYixDXX0pXX0pLFlbMjJdPWVzLFlbMjNdPWVuLFlbMjRdPV8pOl89WVsyNF0sWVsyNV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oaz0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLEEuanN4KShcImxhYmVsXCIse2h0bWxGb3I6XCJzaXplXCIsY2hpbGRyZW46XCJTaXplXCJ9KSwoMCxBLmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIkFkanVzdCB0aGUgc2l6ZSBvZiB5b3VyIGRldiB0b29scy5cIn0pXX0pLFlbMjVdPWspOms9WVsyNV0sWVsyNl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oRT1PYmplY3QuZW50cmllcyhCKS5tYXAockUpLFlbMjZdPUUpOkU9WVsyNl0sWVsyN10hPT1lY3x8WVsyOF0hPT1KPyhqPSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46W2ssKDAsQS5qc3gpKHJqLHtpZDpcInNpemVcIixuYW1lOlwic2l6ZVwiLHZhbHVlOkosb25DaGFuZ2U6ZWMsY2hpbGRyZW46RX0pXX0pLFlbMjddPWVjLFlbMjhdPUosWVsyOV09aik6aj1ZWzI5XSxZWzMwXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhTPSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwibGFiZWxcIix7aWQ6XCJoaWRlLWRldi10b29sc1wiLGNoaWxkcmVuOlwiSGlkZSBEZXYgVG9vbHMgZm9yIHRoaXMgc2Vzc2lvblwifSksKDAsQS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46XCJIaWRlIERldiBUb29scyB1bnRpbCB5b3UgcmVzdGFydCB5b3VyIGRldiBzZXJ2ZXIsIG9yIDEgZGF5LlwifSldfSksWVszMF09Uyk6Uz1ZWzMwXSxZWzMxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhPPSgwLEEuanN4KShuNSx7fSksUD0oMCxBLmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOlwiSGlkZVwifSksWVszMV09TyxZWzMyXT1QKTooTz1ZWzMxXSxQPVlbMzJdKSxZWzMzXSE9PVg/KEk9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLXNlY3Rpb25cIixjaGlsZHJlbjpbUywoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAsQS5qc3hzKShcImJ1dHRvblwiLHtcImFyaWEtZGVzY3JpYmVkYnlcIjpcImhpZGUtZGV2LXRvb2xzXCIsbmFtZTpcImhpZGUtZGV2LXRvb2xzXCIsXCJkYXRhLWhpZGUtZGV2LXRvb2xzXCI6ITAsY2xhc3NOYW1lOlwiYWN0aW9uLWJ1dHRvblwiLG9uQ2xpY2s6WCxjaGlsZHJlbjpbTyxQXX0pfSldfSksWVszM109WCxZWzM0XT1JKTpJPVlbMzRdLFlbMzVdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KFQ9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWhlYWRlclwiLGNoaWxkcmVuOlsoMCxBLmpzeCkoXCJsYWJlbFwiLHtpZDpcImhpZGUtZGV2LXRvb2xzXCIsY2hpbGRyZW46XCJIaWRlIERldiBUb29scyBzaG9ydGN1dFwifSksKDAsQS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46XCJTZXQgYSBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXQgdG8gdG9nZ2xlIHZpc2liaWxpdHkuXCJ9KV19KSxZWzM1XT1UKTpUPVlbMzVdLFlbMzZdIT09Rz8oej1udWxsIT0oRD1udWxsPT1HP3ZvaWQgMDpHLnNwbGl0KFwiK1wiKSk/RDpudWxsLFlbMzZdPUcsWVszN109eik6ej1ZWzM3XSxZWzM4XSE9PVF8fFlbMzldIT09ej8oTD0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOltULCgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWNvbnRyb2xcIixjaGlsZHJlbjooMCxBLmpzeCkocm8se3ZhbHVlOnosb25DaGFuZ2U6UX0pfSldfSksWVszOF09USxZWzM5XT16LFlbNDBdPUwpOkw9WVs0MF0sWVs0MV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oTj0oMCxBLmpzeCkoXCJsYWJlbFwiLHtjaGlsZHJlbjpcIkRpc2FibGUgRGV2IFRvb2xzIGZvciB0aGlzIHByb2plY3RcIn0pLFlbNDFdPU4pOk49WVs0MV0sWVs0Ml09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oUj0oMCxBLmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcImRldkluZGljYXRvcnM6IGZhbHNlXCJ9KSxZWzQyXT1SKTpSPVlbNDJdLFlbNDNdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KE09KDAsQS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOigwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbTiwoMCxBLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46W1wiVG8gZGlzYWJsZSB0aGlzIFVJIGNvbXBsZXRlbHksIHNldFwiLFwiIFwiLFIsXCIgXCIsXCJpbiB5b3VyIFwiLCgwLEEuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwibmV4dC5jb25maWdcIn0pLFwiIFwiLFwiZmlsZS5cIl19KV19KX0pLFlbNDNdPU0pOk09WVs0M10sWVs0NF0hPT1tfHxZWzQ1XSE9PV98fFlbNDZdIT09anx8WVs0N10hPT1JfHxZWzQ4XSE9PUw/KFo9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlcy1jb250YWluZXJcIixjaGlsZHJlbjpbbSxfLGosSSxMLE1dfSksWVs0NF09bSxZWzQ1XT1fLFlbNDZdPWosWVs0N109SSxZWzQ4XT1MLFlbNDldPVopOlo9WVs0OV0sWVs1MF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oVT0oMCxBLmpzeCkoXCJoMlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1zZWN0aW9uLXRpdGxlXCIsY2hpbGRyZW46XCJEZXZlbG9wbWVudCBTZXJ2ZXJcIn0pLFlbNTBdPVUpOlU9WVs1MF0sWVs1MV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oRj0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLEEuanN4KShcImxhYmVsXCIse2lkOlwicmVzdGFydC1kZXYtc2VydmVyXCIsY2hpbGRyZW46XCJSZXN0YXJ0IERldiBTZXJ2ZXJcIn0pLCgwLEEuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiUmVzdGFydHMgdGhlIGRldmVsb3BtZW50IHNlcnZlciB3aXRob3V0IG5lZWRpbmcgdG8gbGVhdmUgdGhlIGJyb3dzZXIuXCJ9KV19KSxZWzUxXT1GKTpGPVlbNTFdLFlbNTJdIT09ZW8/KHE9ZnVuY3Rpb24oKXtyZXR1cm4gZW8oe2ludmFsaWRhdGVQZXJzaXN0ZW50Q2FjaGU6ITF9KX0sWVs1Ml09ZW8sWVs1M109cSk6cT1ZWzUzXSxZWzU0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhIPSgwLEEuanN4KShcInNwYW5cIix7Y2hpbGRyZW46XCJSZXN0YXJ0XCJ9KSxZWzU0XT1IKTpIPVlbNTRdLFlbNTVdIT09ZWF8fFlbNTZdIT09cT8oVj0oMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZXMtY29udGFpbmVyXCIsY2hpbGRyZW46KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLXNlY3Rpb25cIixjaGlsZHJlbjpbRiwoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1kZXNjcmliZWRieVwiOlwicmVzdGFydC1kZXYtc2VydmVyXCIsdGl0bGU6XCJSZXN0YXJ0cyB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyIHdpdGhvdXQgbmVlZGluZyB0byBsZWF2ZSB0aGUgYnJvd3Nlci5cIixuYW1lOlwicmVzdGFydC1kZXYtc2VydmVyXCIsXCJkYXRhLXJlc3RhcnQtZGV2LXNlcnZlclwiOiEwLGNsYXNzTmFtZTpcImFjdGlvbi1idXR0b25cIixvbkNsaWNrOnEsZGlzYWJsZWQ6ZWEsY2hpbGRyZW46SH0pfSldfSl9KSxZWzU1XT1lYSxZWzU2XT1xLFlbNTddPVYpOlY9WVs1N10sWVs1OF0hPT1lYXx8WVs1OV0hPT1lbz8oJD1wcm9jZXNzLmVudi5fX05FWFRfQlVORExFUl9IQVNfUEVSU0lTVEVOVF9DQUNIRT8oMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZXMtY29udGFpbmVyXCIsY2hpbGRyZW46KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLXNlY3Rpb25cIixjaGlsZHJlbjpbKDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWhlYWRlclwiLGNoaWxkcmVuOlsoMCxBLmpzeCkoXCJsYWJlbFwiLHtpZDpcInJlc2V0LWJ1bmRsZXItY2FjaGVcIixjaGlsZHJlbjpcIlJlc2V0IEJ1bmRsZXIgQ2FjaGVcIn0pLCgwLEEuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiQ2xlYXJzIHRoZSBidW5kbGVyIGNhY2hlIGFuZCByZXN0YXJ0cyB0aGUgZGV2IHNlcnZlci4gSGVscGZ1bCBpZiB5b3UgYXJlIHNlZWluZyBzdGFsZSBlcnJvcnMgb3IgY2hhbmdlcyBhcmUgbm90IGFwcGVhcmluZy5cIn0pXX0pLCgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWNvbnRyb2xcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJyZXNldC1idW5kbGVyLWNhY2hlXCIsdGl0bGU6XCJDbGVhcnMgdGhlIGJ1bmRsZXIgY2FjaGUgYW5kIHJlc3RhcnRzIHRoZSBkZXYgc2VydmVyLiBIZWxwZnVsIGlmIHlvdSBhcmUgc2VlaW5nIHN0YWxlIGVycm9ycyBvciBjaGFuZ2VzIGFyZSBub3QgYXBwZWFyaW5nLlwiLG5hbWU6XCJyZXNldC1idW5kbGVyLWNhY2hlXCIsXCJkYXRhLXJlc2V0LWJ1bmRsZXItY2FjaGVcIjohMCxjbGFzc05hbWU6XCJhY3Rpb24tYnV0dG9uXCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBlbyh7aW52YWxpZGF0ZVBlcnNpc3RlbnRDYWNoZTohMH0pfSxkaXNhYmxlZDplYSxjaGlsZHJlbjooMCxBLmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOlwiUmVzZXQgQ2FjaGVcIn0pfSl9KV19KX0pOm51bGwsWVs1OF09ZWEsWVs1OV09ZW8sWVs2MF09JCk6JD1ZWzYwXSxZWzYxXSE9PVp8fFlbNjJdIT09Vnx8WVs2M10hPT0kPyhXPSgwLEEuanN4cykoQS5GcmFnbWVudCx7Y2hpbGRyZW46W2MsWixVLFYsJF19KSxZWzYxXT1aLFlbNjJdPVYsWVs2M109JCxZWzY0XT1XKTpXPVlbNjRdLFd9ZnVuY3Rpb24gckUoZSl7dmFyIHQsbixyPShuPTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0odD1lKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh0LDIpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiByQyhlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiByQyhlLHQpfX0odCxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksbz1yWzBdLGE9clsxXTtyZXR1cm4oMCxBLmpzeCkoXCJvcHRpb25cIix7dmFsdWU6YSxjaGlsZHJlbjpvfSxvKX1mdW5jdGlvbiByaihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGM9KDAseC5jKSgxMSk7cmV0dXJuKGNbMF0hPT1lPyhhPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwicHJlZml4XCJdKSxyPWUuY2hpbGRyZW4sbz1lLnByZWZpeCxjWzBdPWUsY1sxXT1yLGNbMl09byxjWzNdPWEpOihyPWNbMV0sbz1jWzJdLGE9Y1szXSksY1s0XSE9PXJ8fGNbNV0hPT1hKT8oaT0oMCxBLmpzeCkoXCJzZWxlY3RcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGEpLG49bj17Y2hpbGRyZW46cn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksY1s0XT1yLGNbNV09YSxjWzZdPWkpOmk9Y1s2XSxjWzddPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGw9KDAsQS5qc3gpKHJCLHt9KSxjWzddPWwpOmw9Y1s3XSxjWzhdIT09b3x8Y1s5XSE9PWk/KHM9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWxlY3QtYnV0dG9uXCIsY2hpbGRyZW46W28saSxsXX0pLGNbOF09byxjWzldPWksY1sxMF09cyk6cz1jWzEwXSxzfWZ1bmN0aW9uIHJTKGUpe3ZhciB0LG4scixvPSgwLHguYykoMyk7c3dpdGNoKGUudGhlbWUpe2Nhc2VcInN5c3RlbVwiOnJldHVybiBvWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsQS5qc3gpKG45LHt9KSxvWzBdPXQpOnQ9b1swXSx0O2Nhc2VcImRhcmtcIjpyZXR1cm4gb1sxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhuPSgwLEEuanN4KShuNix7fSksb1sxXT1uKTpuPW9bMV0sbjtjYXNlXCJsaWdodFwiOnJldHVybiBvWzJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9KDAsQS5qc3gpKG4zLHt9KSxvWzJdPXIpOnI9b1syXSxyO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciByTz1ldShyXygpKTtmdW5jdGlvbiByQigpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsXCJhcmlhLWhpZGRlblwiOiEwLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xNC4wNjA3IDUuNDk5OTlMMTMuNTMwMyA2LjAzMDMyTDguNzA3MSAxMC44NTM1QzguMzE2NTggMTEuMjQ0MSA3LjY4MzQxIDExLjI0NDEgNy4yOTI4OSAxMC44NTM1TDIuNDY5NjYgNi4wMzAzMkwxLjkzOTMzIDUuNDk5OTlMMi45OTk5OSA0LjQzOTMzTDMuNTMwMzIgNC45Njk2Nkw3Ljk5OTk5IDkuNDM5MzNMMTIuNDY5NyA0Ljk2OTY2TDEzIDQuNDM5MzNMMTQuMDYwNyA1LjQ5OTk5WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiByUCgpe3ZhciBlLHQsbj0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy1pc3N1ZS1mZWVkYmFjay1idXR0b24tZ3JvdXBdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbWFsbCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stYnV0dG9uLWdyb3VwXSBidXR0b24ge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWlzc3VlLWZlZWRiYWNrLWJ1dHRvbi1ncm91cF0gYnV0dG9uOmZpcnN0LWNoaWxkIHtcXG4gICAgcGFkZGluZzogNHB4IDNweCA0cHggNXB4O1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpIDAgMCB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWlzc3VlLWZlZWRiYWNrLWJ1dHRvbi1ncm91cF0gYnV0dG9uOmxhc3QtY2hpbGQge1xcbiAgICBwYWRkaW5nOiA0cHggNXB4IDRweCAzcHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcm91bmRlZC1mdWxsKSB2YXIoLS1yb3VuZGVkLWZ1bGwpIDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stc2VwYXJhdG9yXSB7XFxuICAgIHdpZHRoOiAxcHg7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiByUD1mdW5jdGlvbigpe3JldHVybiBufSxufXZhciByST1ldShyUCgpKTtmdW5jdGlvbiByVCgpe3ZhciBlLHQsbj0oZT1bXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgIFwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiByVD1mdW5jdGlvbigpe3JldHVybiBufSxufWZ1bmN0aW9uIHJ6KCl7cmV0dXJuKDAsQS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZXUoclQoKSxcIlxcbiAgLm5leHRqcy1kYXRhLWNvcHktYnV0dG9uIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgd2lkdGg6IHZhcigtLXNpemUtMTYpO1xcbiAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIH1cXG4gIH1cXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbjpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gIH1cXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbi0taW5pdGlhbDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gIH1cXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbi0tZXJyb3I6bm90KDpkaXNhYmxlZCksXFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b24tLWVycm9yOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gIH1cXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbi0tc3VjY2Vzczpub3QoOmRpc2FibGVkKSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWdyZWVuKTtcXG4gIH1cXG5cIiwnXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZS1uby1zb3VyY2VdIHtcXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcblxcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lLW5vLXNvdXJjZV06bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZS1pZ25vcmVkPVwidHJ1ZVwiXSB7XFxuICAgIG9wYWNpdHk6IDAuNjtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSB7XFxuICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG5cXG4gICAgdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgIC1tb3otdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgIC1tcy11c2VyLXNlbGVjdDogdGV4dDtcXG5cXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG5cXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZyk7XFxuICB9XFxuXFxuICAuY2FsbC1zdGFjay1mcmFtZS1tZXRob2QtbmFtZSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogNHB4O1xcblxcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuXFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgd2lkdGg6IHZhcigtLXNpemUtMTZweCk7XFxuICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2cHgpO1xcbiAgICB9XFxuICB9XFxuXFxuICAub3Blbi1pbi1lZGl0b3ItYnV0dG9uLCAuc291cmNlLW1hcHBpbmctZXJyb3ItYnV0dG9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAgIH1cXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY2FsbC1zdGFjay1mcmFtZS1maWxlLXNvdXJjZSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG4nLG5rLFwiXFxuICBbZGF0YS1uZXh0anMtZW52aXJvbm1lbnQtbmFtZS1sYWJlbF0ge1xcbiAgICBwYWRkaW5nOiAycHggNnB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQtMik7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgfVxcblwiLG5oLGVRLG5mLHRQLFwiXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXIge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zdGFjay1sYXllci1oZWlnaHQpO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgdHJhbnNpdGlvbjpcXG4gICAgICB0cmFuc2xhdGUgMzUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KSxcXG4gICAgICBib3gtc2hhZG93IDM1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMSB7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLTI0KSk7XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMiB7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLTQ4KSk7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAtMXB4O1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLXN0YWNrIHtcXG4gICAgLS1zdGFjay1sYXllci1oZWlnaHQ6IDQ0cHg7XFxuICAgIC0tc3RhY2stbGF5ZXItaGVpZ2h0LWhhbGY6IGNhbGModmFyKC0tc3RhY2stbGF5ZXItaGVpZ2h0KSAvIDIpO1xcbiAgICAtLXN0YWNrLWxheWVyLXRyaW06IDEzcHg7XFxuICAgIC0tc2hhZG93OiAwcHggMC45MjVweCAwLjkyNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDIpLFxcbiAgICAgIDBweCAzLjdweCA3LjRweCAtMy43cHggcmdiYSgwLCAwLCAwLCAwLjA0KSxcXG4gICAgICAwcHggMTQuOHB4IDIyLjJweCAtNy40cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcXG5cXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgICBtYXgtd2lkdGg6IHZhcigtLW5leHQtZGlhbG9nLW1heC13aWR0aCk7XFxuXFxuICAgIC5lcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciB7XFxuICAgICAgZ3JpZC1hcmVhOiAxIC8gMTtcXG4gICAgICAvKiBIaWRlICovXFxuICAgICAgdHJhbnNsYXRlOiAwIGNhbGModmFyKC0tc3RhY2stbGF5ZXItaGVpZ2h0KSAqIC0xKTtcXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzEnXSxcXG4gICAgJltkYXRhLXN0YWNrLWNvdW50PScyJ10ge1xcbiAgICAgIC5lcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0xIHtcXG4gICAgICAgIHRyYW5zbGF0ZTogMFxcbiAgICAgICAgICBjYWxjKHZhcigtLXN0YWNrLWxheWVyLWhlaWdodC1oYWxmKSAqIC0xIC0gdmFyKC0tc3RhY2stbGF5ZXItdHJpbSkpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzInXSB7XFxuICAgICAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTIge1xcbiAgICAgICAgdHJhbnNsYXRlOiAwIGNhbGModmFyKC0tc3RhY2stbGF5ZXItdHJpbSkgKiAtMSAqIDIpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvKiBPbmx5IHRoZSBib3R0b20gc3RhY2sgc2hvdWxkIGhhdmUgdGhlIHNoYWRvdyAqL1xcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzEnXSAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMSB7XFxuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTtcXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzInXSB7XFxuICAgICAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTIge1xcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cIixcIlxcbiAgLmVycm9yLW92ZXJsYXktcGFnaW5hdGlvbiB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHdpZHRoOiBmaXQtY29udGVudDtcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LXBhZ2luYXRpb24tY291bnQge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LXBhZ2luYXRpb24tYnV0dG9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xcbiAgICBmbGV4LXNocmluazogMDtcXG5cXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcXG4gICAgfVxcblxcbiAgICAmOmRpc2FibGVkIHtcXG4gICAgICBvcGFjaXR5OiAwLjU7XFxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b24taWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgfVxcblwiLCdcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIHtcXG4gICAgLS1jb2RlLWZyYW1lLXBhZGRpbmc6IDEycHg7XFxuICAgIC0tY29kZS1mcmFtZS1saW5lLWhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWNvZGUtZnJhbWUtbGluZS1oZWlnaHQpO1xcbiAgICBtYXJnaW46IDhweCAwO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rLFxcbiAgLmNvZGUtZnJhbWUtcHJlIHtcXG4gICAgcGFkZGluZzogdmFyKC0tY29kZS1mcmFtZS1wYWRkaW5nKTtcXG4gIH1cXG5cXG4gIC5jb2RlLWZyYW1lLWxpbmsgc3ZnIHtcXG4gICAgZmxleC1zaHJpbms6IDA7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5lcyB7XFxuICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rIFtkYXRhLXRleHRdIHtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgbWFyZ2luOiBhdXRvIDZweDtcXG4gIH1cXG5cXG4gIC5jb2RlLWZyYW1lLWhlYWRlciB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEwMG1zIGVhc2Utb3V0O1xcbiAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIH1cXG5cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1zb3VyY2UtZmlsZV0ge1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIG1hcmdpbjogLTRweCAwIC00cHggYXV0bztcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAgIH1cXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXTo6c2VsZWN0aW9uLFxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKjpub3QoYSkge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLWxpbmVdW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1saW5lLS1lcnJvcmVkPVwidHJ1ZVwiXSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xcblxcbiAgICA+IHNwYW4geyBcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgei1pbmRleDogMTtcXG4gICAgfVxcblxcbiAgICAmOjphZnRlciB7XFxuICAgICAgY29udGVudDogXCJcIjtcXG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tY29kZS1mcmFtZS1wYWRkaW5nKSAqIDIpO1xcbiAgICAgIGhlaWdodDogdmFyKC0tY29kZS1mcmFtZS1saW5lLWhlaWdodCk7XFxuICAgICAgbGVmdDogY2FsYygtMSAqIHZhcigtLWNvZGUtZnJhbWUtcGFkZGluZykpO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXJlZC0yMDApO1xcbiAgICAgIGJveC1zaGFkb3c6IDJweCAwIDAgMCB2YXIoLS1jb2xvci1yZWQtOTAwKSBpbnNldDtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIH1cXG4gIH1cXG5cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gKiB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5jb2RlLWZyYW1lLWxpbmsge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG91dGxpbmU6IDA7XFxuICB9XFxuICAuY29kZS1mcmFtZS1saW5rIFtkYXRhLWljb249XFwncmlnaHRcXCddIHtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBkaXYgPiBwcmUge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBzdmcge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgfVxcbicsXCJcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+IGRpdiA+IHAge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+IGRpdiA+IHA6aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdIGRpdiA+IHByZSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG5cIixcIlxcbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rXSBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gIH1cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGlua10ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICB9XFxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtdOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLWltcG9ydC10cmFjZV0ge1xcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcXG4gIH1cXG5cIixcIlwiLFwiXFxuICAubmV4dGpzLWVycm9yLXdpdGgtc3RhdGljIHtcXG4gICAgYm90dG9tOiBjYWxjKDE2cHggKiA0LjUpO1xcbiAgfVxcbiAgcC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2xpbmsge1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgfVxcbiAgcC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX25vdGVzIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YWNrLW5vdGVzKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5ID4gaDI6bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDE2cHggKyA4cHgpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgPiBoMiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1jb2xvcik7XFxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudCB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudDpob3ZlciB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMgPiBzdmcge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtaGlkZS1idXR0b24ge1xcbiAgICBtYXJnaW4tbGVmdDogMjRweDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XFxuICAgIG9wYWNpdHk6IDAuNztcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtaGlkZS1idXR0b246aG92ZXIge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fZXJyb3JfdGl0bGUge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XFxuICB9XFxuICAuZXJyb3Itb3ZlcmxheS1ub3Rlcy1jb250YWluZXIge1xcbiAgICBtYXJnaW46IDhweCAycHg7XFxuICB9XFxuICAuZXJyb3Itb3ZlcmxheS1ub3Rlcy1jb250YWluZXIgcCB7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gIH1cXG5cIixuRixcIlxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA0cHg7XFxuXFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yNik7XFxuICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDZweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbWFsbCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuXFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gIH1cXG5cXG4gIGEubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICB9XFxuICB9XFxuXFxuICAudmVyc2lvbi1zdGFsZW5lc3MtaW5kaWNhdG9yLmZyZXNoIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItZ3JlZW4tODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1ncmVlbi0zMDApO1xcbiAgfVxcbiAgLnZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvci5zdGFsZSB7XFxuICAgIGZpbGw6IHZhcigtLWNvbG9yLWFtYmVyLTgwMCk7XFxuICAgIHN0cm9rZTogdmFyKC0tY29sb3ItYW1iZXItMzAwKTtcXG4gIH1cXG4gIC52ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3Iub3V0ZGF0ZWQge1xcbiAgICBmaWxsOiB2YXIoLS1jb2xvci1yZWQtODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1yZWQtMzAwKTtcXG4gIH1cXG4gIC52ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3IudW5rbm93biB7XFxuICAgIGZpbGw6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XFxuICB9XFxuXFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyA+IC50dXJib3BhY2stdGV4dCB7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICB0byByaWdodCxcXG4gICAgICB2YXIoLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQpIDAlLFxcbiAgICAgIHZhcigtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWUpIDEwMCVcXG4gICAgKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgfVxcblwiLFwiXFxuICAuZGV2LXRvb2xzLWluZm8tY29kZSB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIHBhZGRpbmc6IDJweCA0cHg7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWNvbnRhaW5lciB7XFxuICAgIHBhZGRpbmc6IDZweDtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgbWluLXdpZHRoOiAzMjZweDtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLXByZSB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb3B5LWJ1dHRvbiB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG5cXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIHJpZ2h0OiA4cHg7XFxuICAgIHRvcDogOHB4O1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgIHBhZGRpbmc6IDAgMTZweDtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmUuZGV2LXRvb2xzLWluZm8taGlnaGxpZ2h0IHtcXG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1ibHVlLTkwMCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsdWUtNDAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24ta2V5IHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN5bnRheC1rZXl3b3JkKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWUge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3ludGF4LWxpbmspO1xcbiAgfVxcblwiLFwiXCIsck8sJ1xcbiAgLm5leHRqcy1zY3JvbGwtZmFkZXIge1xcbiAgICAtLWJsdXI6IDFweDtcXG4gICAgLS1zdG9wOiAyNSU7XFxuICAgIC0taGVpZ2h0OiAxNTBweDtcXG4gICAgLS1jb2xvci1iZzogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogdmFyKC0taGVpZ2h0KTtcXG4gICAgbGVmdDogMDtcXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKHZhcigtLWJsdXIpKTtcXG5cXG4gICAgJltkYXRhLXNpZGU9XCJ0b3BcIl0ge1xcbiAgICAgIHRvcDogMDtcXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCB0cmFuc3BhcmVudCwgdmFyKC0tY29sb3ItYmcpKTtcXG4gICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1jb2xvci1iZykgdmFyKC0tc3RvcCksIHRyYW5zcGFyZW50KTtcXG4gICAgfVxcbiAgfVxcbicsckkscmYpfSl9ZnVuY3Rpb24gckQoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHJMKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiByRChlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiByRChlLHQpfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiByTihlLHQpe3ZhciBuLHIsbyxhLGk9KDAseC5jKSgxMCksbD12b2lkIDAhPT1lJiZlO2lbMF0hPT10PyhuPXZvaWQgMD09PXQ/e306dCxpWzBdPXQsaVsxXT1uKTpuPWlbMV07dmFyIHM9bixjPXJMKCgwLHcudXNlU3RhdGUpKGwpLDIpLHU9Y1swXSxkPWNbMV0sZj1yTCgoMCx3LnVzZVN0YXRlKSghMSksMikscD1mWzBdLGg9ZlsxXSxtPXMuZW50ZXJEZWxheSxnPXMuZXhpdERlbGF5LHk9dm9pZCAwPT09bT8xOm0sdj12b2lkIDA9PT1nPzA6ZztyZXR1cm4gaVsyXSE9PWx8fGlbM10hPT15fHxpWzRdIT09dj8ocj1mdW5jdGlvbigpe3ZhciBlLHQ7cmV0dXJuIGw/KGQoITApLHk8PTA/aCghMCk6ZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aCghMCl9LHkpKTooaCghMSksdjw9MD9kKCExKTp0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkKCExKX0sdikpLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGUpLGNsZWFyVGltZW91dCh0KX19LG89W2wseSx2XSxpWzJdPWwsaVszXT15LGlbNF09dixpWzVdPXIsaVs2XT1vKToocj1pWzVdLG89aVs2XSksKDAsdy51c2VFZmZlY3QpKHIsbyksaVs3XSE9PXV8fGlbOF0hPT1wPyhhPXttb3VudGVkOnUscmVuZGVyZWQ6cH0saVs3XT11LGlbOF09cCxpWzldPWEpOmE9aVs5XSxhfWZ1bmN0aW9uIHJSKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiByTShlLHQpe3JldHVybiB0PW51bGwhPXQ/dDp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKX0pLGV9ZnVuY3Rpb24gclooZSl7dmFyIHQsbixyLG8sYSxpLGwscz0oMCx4LmMpKDE4KSxjPWUuc3RhdGUsdT1lLmRpc3BhdGNoLGQ9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyxmPWUucnVudGltZUVycm9ycyxwPWUuZXJyb3JDb3VudCxoPSEhcHJvY2Vzcy5lbnYuVFVSQk9QQUNLO3NbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD17ZXhpdERlbGF5OjIwMH0sc1swXT10KTp0PXNbMF07dmFyIG09ck4oYy5pc0Vycm9yT3ZlcmxheU9wZW4sdCksZz1tLm1vdW50ZWQseT1tLnJlbmRlcmVkO3NbMV0hPT1wfHxzWzJdIT09eXx8c1szXSE9PWMudmVyc2lvbkluZm8/KG49e3JlbmRlcmVkOnksdHJhbnNpdGlvbkR1cmF0aW9uTXM6MjAwLGlzVHVyYm9wYWNrOmgsdmVyc2lvbkluZm86Yy52ZXJzaW9uSW5mbyxlcnJvckNvdW50OnB9LHNbMV09cCxzWzJdPXksc1szXT1jLnZlcnNpb25JbmZvLHNbNF09bik6bj1zWzRdO3ZhciB2PW47cmV0dXJuIG51bGwhPT1jLmJ1aWxkRXJyb3I/KHNbNV0hPT12fHxzWzZdIT09Yy5idWlsZEVycm9yPyhyPSgwLEEuanN4KShuYixyTShyUih7fSx2KSx7bWVzc2FnZTpjLmJ1aWxkRXJyb3IscmVuZGVyZWQ6ITB9KSksc1s1XT12LHNbNl09Yy5idWlsZEVycm9yLHNbN109cik6cj1zWzddLHIpOmYubGVuZ3RoP2c/KHNbMTBdIT09dT8oaT1mdW5jdGlvbigpe3Uoe3R5cGU6cX0pfSxzWzEwXT11LHNbMTFdPWkpOmk9c1sxMV0sc1sxMl0hPT12fHxzWzEzXSE9PWR8fHNbMTRdIT09Znx8c1sxNV0hPT1jLmRlYnVnSW5mb3x8c1sxNl0hPT1pPyhsPSgwLEEuanN4KShuSyxyTShyUih7fSx2KSx7ZGVidWdJbmZvOmMuZGVidWdJbmZvLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOmQscnVudGltZUVycm9yczpmLG9uQ2xvc2U6aX0pKSxzWzEyXT12LHNbMTNdPWQsc1sxNF09ZixzWzE1XT1jLmRlYnVnSW5mbyxzWzE2XT1pLHNbMTddPWwpOmw9c1sxN10sbCk6KHNbOV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT0oMCxBLmpzeCkody5TdXNwZW5zZSx7fSksc1s5XT1hKTphPXNbOV0sYSk6KHNbOF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obz0oMCxBLmpzeCkody5TdXNwZW5zZSx7fSksc1s4XT1vKTpvPXNbOF0sbyl9ZnVuY3Rpb24gclUoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHJGKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBycShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7ckYoZSx0LG5bdF0pfSl9cmV0dXJuIGV9ZnVuY3Rpb24gckgoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJVKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHJVKGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciByVj1mdW5jdGlvbihlKXt2YXIgdCxuLHI9KDAseC5jKSg0KTtyZXR1cm4gZS5zdGF0ZS5idWlsZEVycm9yPyhyWzBdIT09ZT8odD0oMCxBLmpzeCkoclcscnEoe30sZSkpLHJbMF09ZSxyWzFdPXQpOnQ9clsxXSx0KTooclsyXSE9PWU/KG49KDAsQS5qc3gpKHIkLHJxKHt9LGUpKSxyWzJdPWUsclszXT1uKTpuPXJbM10sbil9LHIkPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaT0oMCx4LmMpKDEyKSxsPWUuY2hpbGRyZW4scz1lLnN0YXRlLGM9ZS5pc0FwcERpcix1PXMuZXJyb3JzO2lbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD17fSxpWzBdPXQpOnQ9aVswXTt2YXIgZD1ySCgoMCx3LnVzZVN0YXRlKSh0KSwyKSxmPWRbMF0scD1kWzFdO2lmKGlbMV0hPT11fHxpWzJdIT09Zil7Zm9yKHZhciBoPVtdLG09bnVsbCxnPTA7Zzx1Lmxlbmd0aDsrK2cpe3ZhciB5PXVbZ10sdj15LmlkO2lmKHYgaW4gZil7aC5wdXNoKGZbdl0pO2NvbnRpbnVlfW09eTticmVha31uPVtoLG1dLGlbMV09dSxpWzJdPWYsaVszXT1ufWVsc2Ugbj1pWzNdO3ZhciBiPXJIKG4sMiksQT1iWzBdLEM9YlsxXTtpWzRdIT09Y3x8aVs1XSE9PUM/KHI9ZnVuY3Rpb24oKXtpZihudWxsIT1DKXt2YXIgZSx0LG49ITA7cmV0dXJuKGU9Qyx0PWMsbkQoZnVuY3Rpb24oKXt2YXIgbixyLG87cmV0dXJuIG5SKHRoaXMsZnVuY3Rpb24oYSl7c3dpdGNoKGEubGFiZWwpe2Nhc2UgMDp2YXIgaSxsO2lmKG49e2lkOmUuaWQscnVudGltZTohMCxlcnJvcjplLmVycm9yLHR5cGU6ZS50eXBlfSwhKFwidXNlXCJpbiB3KSlyZXR1cm5bMywxXTtyZXR1cm5bMixuTihuTCh7fSxuKSx7ZnJhbWVzOihsPShpPWZ1bmN0aW9uKCl7cmV0dXJuIG5EKGZ1bmN0aW9uKCl7cmV0dXJuIG5SKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxlUyhlLmZyYW1lcyxuVChlLmVycm9yKSx0KV07Y2FzZSAxOnJldHVyblsyLG4uc2VudCgpXX19KX0pKCl9KSgpLGZ1bmN0aW9uKCl7cmV0dXJuIGx9KX0pXTtjYXNlIDE6cmV0dXJuIHI9W25MKHt9LG4pXSxvPXt9LFs0LGVTKGUuZnJhbWVzLG5UKGUuZXJyb3IpLHQpXTtjYXNlIDI6cmV0dXJuWzIsbk4uYXBwbHkodm9pZCAwLHIuY29uY2F0KFsoby5mcmFtZXM9YS5zZW50KCksbyldKSldO2Nhc2UgMzpyZXR1cm5bMl19fSl9KSgpKS50aGVuKGZ1bmN0aW9uKGUpe24mJnAoZnVuY3Rpb24odCl7dmFyIG4scjtyZXR1cm4gbj1ycSh7fSx0KSxyPW51bGwhPShyPXJGKHt9LGUuaWQsZSkpP3I6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChyKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKSl9KSxufSl9KSxmdW5jdGlvbigpe249ITF9fX0sbz1bQyxjXSxpWzRdPWMsaVs1XT1DLGlbNl09cixpWzddPW8pOihyPWlbNl0sbz1pWzddKSwoMCx3LnVzZUVmZmVjdCkocixvKTt2YXIgXz11Lmxlbmd0aDtyZXR1cm4gaVs4XSE9PWx8fGlbOV0hPT1BfHxpWzEwXSE9PV8/KGE9bCh7cnVudGltZUVycm9yczpBLHRvdGFsRXJyb3JDb3VudDpffSksaVs4XT1sLGlbOV09QSxpWzEwXT1fLGlbMTFdPWEpOmE9aVsxMV0sYX0sclc9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsZS5jaGlsZHJlbikoe3J1bnRpbWVFcnJvcnM6W10sdG90YWxFcnJvckNvdW50OjF9KX07ZnVuY3Rpb24gclkoKXt2YXIgZSx0LG49KDAseC5jKSg0KSxyPWRsKCksbz1yLnNoYWRvd1Jvb3QsYT1yLnN0YXRlO3JldHVybiBuWzBdIT09b3x8blsxXSE9PWEuc2NhbGU/KGU9ZnVuY3Rpb24oKXsobnVsbD09bz92b2lkIDA6by5ob3N0KSYmby5ob3N0LnN0eWxlLnNldFByb3BlcnR5KFwiLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlXCIsU3RyaW5nKGEuc2NhbGV8fDEpKX0sdD1bbyxhLnNjYWxlXSxuWzBdPW8sblsxXT1hLnNjYWxlLG5bMl09ZSxuWzNdPXQpOihlPW5bMl0sdD1uWzNdKSwoMCx3LnVzZUxheW91dEVmZmVjdCkoZSx0KSxudWxsfXZhciBySz1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZGV2dG9vbHMtaW5kaWNhdG9yL2RldnRvb2xzLWluZGljYXRvci5jc3NcIiksclg9e307ZnVuY3Rpb24gckcoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHJRKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBySihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhdHx8YS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gclEoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gclEoZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gcjAoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHIxKGUpe3ZhciB0LG4scixvLGE9KDAseC5jKSgzKTtyZXR1cm4oYVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zLjA4ODg5IDExLjgzODRMMi42MjQ4NiAxMi4zMDI0TDEuNjk2NzggMTEuMzc0NEwyLjE2MDgyIDEwLjkxMDNMNi4wNzE3OCA2Ljk5OTM3TDIuMTYwODIgMy4wODg0MUwxLjY5Njc4IDIuNjI0MzdMMi42MjQ4NiAxLjY5NjI5TDMuMDg4ODkgMi4xNjAzM0w2Ljk5OTg2IDYuMDcxMjlMMTAuOTEwOCAyLjE2MDMzTDExLjM3NDkgMS42OTYyOUwxMi4zMDI5IDIuNjI0MzdMMTEuODM4OSAzLjA4ODQxTDcuOTI3OTMgNi45OTkzN0wxMS44Mzg5IDEwLjkxMDNMMTIuMzAyOSAxMS4zNzQ0TDExLjM3NDkgMTIuMzAyNEwxMC45MTA4IDExLjgzODRMNi45OTk4NiA3LjkyNzQ0TDMuMDg4ODkgMTEuODM4NFpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxhWzBdPXIpOnI9YVswXSxhWzFdIT09ZSk/KG89KDAsQS5qc3gpKFwic3ZnXCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7d2lkdGg6XCIxMlwiLGhlaWdodDpcIjEyXCIsdmlld0JveDpcIjAgMCAxNCAxNFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLGFbMV09ZSxhWzJdPW8pOm89YVsyXSxvfWZ1bmN0aW9uIHIyKGUpe3ZhciB0LG4scixvLGE9KDAseC5jKSgzKTtyZXR1cm4oYVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zLjk4MDcxIDEuMTI1TDEuMTI1IDMuOTgwNzFMMS4xMjUgOC4wMTkyOUwzLjk4MDcxIDEwLjg3NUg4LjAxOTI5TDEwLjg3NSA4LjAxOTI5VjMuOTgwNzFMOC4wMTkyOSAxLjEyNUgzLjk4MDcxWk0zLjgyNTM4IDBDMy42MjY0NyAwIDMuNDM1NyAwLjA3OTAxNzYgMy4yOTUwNSAwLjIxOTY3TDAuMjE5NjcgMy4yOTUwNUMwLjA3OTAxNzYgMy40MzU3IDAgMy42MjY0NyAwIDMuODI1MzhWOC4xNzQ2MkMwIDguMzczNTMgMC4wNzkwMTc4IDguNTY0MyAwLjIxOTY3IDguNzA0OTVMMy4yOTUwNSAxMS43ODAzQzMuNDM1NyAxMS45MjEgMy42MjY0NyAxMiAzLjgyNTM4IDEySDguMTc0NjJDOC4zNzM1MyAxMiA4LjU2NDMgMTEuOTIxIDguNzA0OTUgMTEuNzgwM0wxMS43ODAzIDguNzA0OTVDMTEuOTIxIDguNTY0MyAxMiA4LjM3MzUzIDEyIDguMTc0NjJWMy44MjUzOEMxMiAzLjYyNjQ3IDExLjkyMSAzLjQzNTcgMTEuNzgwMyAzLjI5NTA1TDguNzA0OTUgMC4yMTk2N0M4LjU2NDMgMC4wNzkwMTc3IDguMzczNTMgMCA4LjE3NDYyIDBIMy44MjUzOFpNNi41NjI1IDIuODEyNVYzLjM3NVY2VjYuNTYyNUg1LjQzNzVWNlYzLjM3NVYyLjgxMjVINi41NjI1Wk02IDlDNi40MTQyMSA5IDYuNzUgOC42NjQyMSA2Ljc1IDguMjVDNi43NSA3LjgzNTc5IDYuNDE0MjEgNy41IDYgNy41QzUuNTg1NzkgNy41IDUuMjUgNy44MzU3OSA1LjI1IDguMjVDNS4yNSA4LjY2NDIxIDUuNTg1NzkgOSA2IDlaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSksYVswXT1yKTpyPWFbMF0sYVsxXSE9PWUpPyhvPSgwLEEuanN4KShcInN2Z1wiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTJcIixoZWlnaHQ6XCIxMlwiLHZpZXdCb3g6XCIwIDAgMTIgMTJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxhWzFdPWUsYVsyXT1vKTpvPWFbMl0sb31yWC5zdHlsZVRhZ1RyYW5zZm9ybT1tKCksclguc2V0QXR0cmlidXRlcz1kKCksclguaW5zZXJ0PWMoKSxyWC5kb21BUEk9bCgpLHJYLmluc2VydFN0eWxlRWxlbWVudD1wKCksYSgpKHJLLlosclgpLHJLLlomJnJLLloubG9jYWxzJiZySy5aLmxvY2Fsczt2YXIgcjQ9KDAsdy5jcmVhdGVDb250ZXh0KShudWxsKSxyNT1mdW5jdGlvbigpe3JldHVybigwLHcudXNlQ29udGV4dCkocjQpfTtmdW5jdGlvbiByMyhlKXtyZXR1cm4gb3crMzYvZS5zY2FsZSs5fWZ1bmN0aW9uIHI2KGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiByOShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gcjgoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIHI3KGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb31mdW5jdGlvbiBvZShlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhdHx8YS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gcjYoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gcjYoZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gb3QoKXt2YXIgZSx0LG49KGU9W1wiXFxuICAgICAgICAgIFtkYXRhLW5leHQtYmFkZ2Utcm9vdF0ge1xcbiAgICAgICAgICAgIC0tdGltaW5nOiBjdWJpYy1iZXppZXIoMC4yMywgMC44OCwgMC4yNiwgMC45Mik7XFxuICAgICAgICAgICAgLS1kdXJhdGlvbi1sb25nOiAyNTBtcztcXG4gICAgICAgICAgICAtLWNvbG9yLW91dGVyLWJvcmRlcjogIzE3MTcxNztcXG4gICAgICAgICAgICAtLWNvbG9yLWlubmVyLWJvcmRlcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4xNCk7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1zdWJ0bGU6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTMpO1xcbiAgICAgICAgICAgIC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3I6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMik7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1lcnJvci0yOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjI1KTtcXG4gICAgICAgICAgICAtLW1hcmstc2l6ZTogY2FsYyh2YXIoLS1zaXplKSAtIHZhcigtLXNpemUtMikgKiAyKTtcXG5cXG4gICAgICAgICAgICAtLWZvY3VzLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAgICAgICAgICAgLS1mb2N1cy1yaW5nOiAycHggc29saWQgdmFyKC0tZm9jdXMtY29sb3IpO1xcblxcbiAgICAgICAgICAgICY6aGFzKFtkYXRhLW5leHQtYmFkZ2VdW2RhdGEtZXJyb3I9J3RydWUnXSkge1xcbiAgICAgICAgICAgICAgLS1mb2N1cy1jb2xvcjogI2ZmZjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtZGlzYWJsZWQtaWNvbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtbmV4dC1iYWRnZV0ge1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6XFxuICAgICAgICAgICAgICAwIDAgMCAxcHggdmFyKC0tY29sb3Itb3V0ZXItYm9yZGVyKSxcXG4gICAgICAgICAgICAgIGluc2V0IDAgMCAwIDFweCB2YXIoLS1jb2xvci1pbm5lci1ib3JkZXIpLFxcbiAgICAgICAgICAgICAgMHB4IDE2cHggMzJweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XFxuICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQ4cHgpO1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgICAgIHNjYWxlOiAxO1xcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IHNjYWxlLCBib3gtc2hhZG93LCB3aWR0aCwgYmFja2dyb3VuZDtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxcbiAgICAgICAgICAgICAgc2NhbGUgdmFyKC0tZHVyYXRpb24tc2hvcnQpIHZhcigtLXRpbWluZyksXFxuICAgICAgICAgICAgICB3aWR0aCB2YXIoLS1kdXJhdGlvbi1sb25nKSB2YXIoLS10aW1pbmcpLFxcbiAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1kdXJhdGlvbi1sb25nKSB2YXIoLS10aW1pbmcpLFxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmFjdGl2ZVtkYXRhLWVycm9yPSdmYWxzZSddIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAwLjk1O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0ndHJ1ZSddOm5vdCg6aG92ZXIpIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAxLjAyO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtZXJyb3I9J2ZhbHNlJ106aGFzKFtkYXRhLW5leHQtbWFya106Zm9jdXMtdmlzaWJsZSkge1xcbiAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogM3B4O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtZXJyb3I9J3RydWUnXSB7XFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjY2EyYTMwO1xcbiAgICAgICAgICAgICAgLS1jb2xvci1pbm5lci1ib3JkZXI6ICNlNTQ4NGQ7XFxuXFxuICAgICAgICAgICAgICBbZGF0YS1uZXh0LW1hcmtdIHtcXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3IpO1xcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMHB4O1xcblxcbiAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yLTIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1lcnJvci1leHBhbmRlZD0nZmFsc2UnXVtkYXRhLWVycm9yPSd0cnVlJ10gfiBbZGF0YS1kb3RdIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAxO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICA+IGRpdiB7XFxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtY29sbGFwc2VdOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlc106aGFzKFtkYXRhLWlzc3Vlcy1vcGVuXTpmb2N1cy12aXNpYmxlKSB7XFxuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtZG90XSB7XFxuICAgICAgICAgICAgY29udGVudDogJyc7XFxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtOCk7XFxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTgpO1xcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLW91dGVyLWJvcmRlcik7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgICAgICB0b3A6IDJweDtcXG4gICAgICAgICAgICByaWdodDogMHB4O1xcbiAgICAgICAgICAgIHNjYWxlOiAwO1xcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHNjYWxlIDIwMG1zIHZhcigtLXRpbWluZyk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tZHVyYXRpb24tc2hvcnQpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlc10ge1xcbiAgICAgICAgICAgIC0tcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBnYXA6IDJweDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMzIpO1xcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmhhcyhbZGF0YS1pc3N1ZXMtb3Blbl06aG92ZXIpIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgJjpoYXMoW2RhdGEtaXNzdWVzLWNvbGxhcHNlXSkge1xcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1wYWRkaW5nLWxlZnQpIC8gMik7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWNyb3NzXSB7XFxuICAgICAgICAgICAgICB0cmFuc2xhdGU6IDBweCAtMXB4O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtb3Blbl0ge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMyk7XFxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBnYXA6IDJweDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0zNik7XFxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICAgICAgICB6LWluZGV4OiAyO1xcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuXFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb2xsYXBzZV0ge1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjQpO1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmhvdmVyIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtY3Jvc3NdIHtcXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xMik7XFxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTEyKTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1uZXh0LW1hcmtdIHtcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tbWFyay1zaXplKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLW1hcmstc2l6ZSk7XFxuICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLWxvbmcpIHZhcigtLXRpbWluZyk7XFxuXFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtc3VidGxlKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtNDApO1xcbiAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTQwKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LWFuaW1hdGlvbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XFxuICAgICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcXG5cXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0nZmFsc2UnXSB7XFxuICAgICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZXhpdF0sXFxuICAgICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJdIHtcXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwbXM7XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgID4gKiB7XFxuICAgICAgICAgICAgICBncmlkLWFyZWE6IDEgLyAxO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZXhpdF0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlT3V0IDMwMG1zIHZhcigtLXRpbWluZykgZm9yd2FyZHM7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1lbnRlcl0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMzAwbXMgdmFyKC0tdGltaW5nKSBmb3J3YXJkcztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LXBsdXJhbF0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0ndHJ1ZSddIHtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDMwMG1zIHZhcigtLXRpbWluZykgZm9yd2FyZHM7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXRoMCB7XFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmF3MCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXRoMSB7XFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmF3MSAxLjVzIGVhc2Utb3V0IGluZmluaXRlO1xcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcztcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICAucGF1c2VkIHtcXG4gICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XFxuICAgICAgICAgICAgMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigycHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigwcHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xcbiAgICAgICAgICAgIDAlIHtcXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgICAgICAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigycHgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGRyYXcwIHtcXG4gICAgICAgICAgICAwJSxcXG4gICAgICAgICAgICAyNSUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0yOS42O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAyNSUsXFxuICAgICAgICAgICAgNTAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA1MCUsXFxuICAgICAgICAgICAgNzUlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA3NSUsXFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMjkuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgQGtleWZyYW1lcyBkcmF3MSB7XFxuICAgICAgICAgICAgMCUsXFxuICAgICAgICAgICAgMjAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTEuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMjAlLFxcbiAgICAgICAgICAgIDUwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgNTAlLFxcbiAgICAgICAgICAgIDc1JSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgNzUlLFxcbiAgICAgICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDExLjY7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1leGl0XSxcXG4gICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJdLFxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1wbHVyYWxdIHtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMG1zICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuICAgICAgICBcIl0sdHx8KHQ9ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9fSkpKTtyZXR1cm4gb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sbn1mdW5jdGlvbiBvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLG0sZyx5LHYsYixDLF8sayxFLGosUyxPLEIsUCxJLFQseixELEwsTixSLE0sWixVLEgsViwkLFcsWT0oMCx4LmMpKDQwKTtZWzBdIT09ZT8oRD1yNyhlLFtcIm9uVHJpZ2dlckNsaWNrXCJdKSxMPWUub25UcmlnZ2VyQ2xpY2ssWVswXT1lLFlbMV09RCxZWzJdPUwpOihEPVlbMV0sTD1ZWzJdKTt2YXIgSz1kbCgpLFg9Sy5zdGF0ZSxHPUsuZGlzcGF0Y2gsUT11MygpLnRvdGFsRXJyb3JDb3VudCxKPTM2L1guc2NhbGUsZWU9cjUoKSxldD1lZS5wYW5lbCxlbj1lZS50cmlnZ2VyUmVmLGVyPWVlLnNldFBhbmVsLGVvPVwicGFuZWwtc2VsZWN0b3JcIj09PWV0LGVhPVE+MCxlaT1vZSgoMCx3LnVzZVN0YXRlKShlYSksMiksZWw9ZWlbMF0sZXM9ZWlbMV0sZWM9b2UoKDAsdy51c2VTdGF0ZSkoZWEpLDIpLGVkPWVjWzBdLGVmPWVjWzFdO2VkIT09ZWEmJihlZihlYSksZXMoZWEpKTt2YXIgZXA9b2UoKDAsdy51c2VTdGF0ZSkoITEpLDIpLGVoPWVwWzBdLGVtPWVwWzFdLGVnPSh0PVEsbj0xNTAsYT0oMCx4LmMpKDQpLGk9bixsPSgwLHcudXNlUmVmKShudWxsKSxkPShzPSgwLHcudXNlU3RhdGUpKCExKSxjPTIsdT1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShzKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShzLDIpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiByRyhlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiByRyhlLHQpfX0ocyxjKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSlbMF0sZj11WzFdLGFbMF0hPT1pfHxhWzFdIT09dD8ocj1mdW5jdGlvbigpe2lmKHQ+MCl7dmFyIGU9bC5jdXJyZW50P0RhdGUubm93KCktbC5jdXJyZW50Oi0xO2lmKGwuY3VycmVudD1EYXRlLm5vdygpLCEoZTw9aSkpe2YoITApO3ZhciBuPXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZighMSl9LGkpO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChuKX19fX0sbz1bdCxpXSxhWzBdPWksYVsxXT10LGFbMl09cixhWzNdPW8pOihyPWFbMl0sbz1hWzNdKSwoMCx3LnVzZUVmZmVjdCkocixvKSxkKSxleT0oMCx3LnVzZVJlZikobnVsbCksZXY9KHA9ZXksZz0oMCx4LmMpKDQpLHY9KHk9ckooKDAsdy51c2VTdGF0ZSkoMCksMikpWzBdLGI9eVsxXSxnWzBdIT09cC5jdXJyZW50PyhoPWZ1bmN0aW9uKCl7dmFyIGU9cC5jdXJyZW50O2lmKGUpe3ZhciB0PW5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbihlKXtiKHJKKGUsMSlbMF0uY29udGVudFJlY3Qud2lkdGgpfSk7cmV0dXJuIHQub2JzZXJ2ZShlKSxmdW5jdGlvbigpe3JldHVybiB0LmRpc2Nvbm5lY3QoKX19fSxnWzBdPXAuY3VycmVudCxnWzFdPWgpOmg9Z1sxXSxnWzJdIT09cD8obT1bcF0sZ1syXT1wLGdbM109bSk6bT1nWzNdLCgwLHcudXNlRWZmZWN0KShoLG0pLHYpLGViPShDPVguYnVpbGRpbmdJbmRpY2F0b3J8fFgucmVuZGVyaW5nSW5kaWNhdG9yLEU9KDAseC5jKSg0KSxqPTc1MCxQPShTPSgwLHcudXNlU3RhdGUpKCExKSxPPTIsQj1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShTKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShTLDIpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiByMChlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiByMChlLHQpfX0oUyxPKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSlbMF0sST1CWzFdLFQ9KDAsdy51c2VSZWYpKG51bGwpLHo9KDAsdy51c2VSZWYpKG51bGwpLEVbMF0hPT1qfHxFWzFdIT09Qz8oXz1mdW5jdGlvbigpe2lmKHouY3VycmVudCYmKGNsZWFyVGltZW91dCh6LmN1cnJlbnQpLHouY3VycmVudD1udWxsKSxDKW51bGw9PT1ULmN1cnJlbnQmJihULmN1cnJlbnQ9RGF0ZS5ub3coKSksSSghMCk7ZWxzZSBpZihudWxsPT09VC5jdXJyZW50KUkoITEpO2Vsc2V7dmFyIGU9RGF0ZS5ub3coKS1ULmN1cnJlbnQsdD1qKk1hdGguY2VpbChlL2opLWU7dD4wP3ouY3VycmVudD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7SSghMSksVC5jdXJyZW50PW51bGx9LHQpOihJKCExKSxULmN1cnJlbnQ9bnVsbCl9cmV0dXJuIGZ1bmN0aW9uKCl7ei5jdXJyZW50JiZjbGVhclRpbWVvdXQoei5jdXJyZW50KX19LGs9W0Msal0sRVswXT1qLEVbMV09QyxFWzJdPV8sRVszXT1rKTooXz1FWzJdLGs9RVszXSksKDAsdy51c2VFZmZlY3QpKF8sayksUCksZUE9ZWx8fFguZGlzYWJsZURldkluZGljYXRvcixleD0wPT09ZXY/XCJhdXRvXCI6ZXYsZXc9XCJcIi5jb25jYXQoSixcInB4XCIpLGVDPVguZGlzYWJsZURldkluZGljYXRvciYmKCFlYXx8ZWgpP1wibm9uZVwiOlwiYmxvY2tcIjtZWzNdIT09ZXd8fFlbNF0hPT1lQz8oTj17XCItLXNpemVcIjpldyxcIi0tZHVyYXRpb24tc2hvcnRcIjpcIlwiLmNvbmNhdCgxNTAsXCJtc1wiKSxkaXNwbGF5OmVDfSxZWzNdPWV3LFlbNF09ZUMsWVs1XT1OKTpOPVlbNV07dmFyIGVfPU47cmV0dXJuIFlbNl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oUj0oMCxBLmpzeCkoXCJzdHlsZVwiLHtjaGlsZHJlbjpldShvdCgpKX0pLFlbNl09Uik6Uj1ZWzZdLFlbN10hPT1leD8oTT17d2lkdGg6ZXh9LFlbN109ZXgsWVs4XT1NKTpNPVlbOF0sWVs5XSE9PUR8fFlbMTBdIT09ZWJ8fFlbMTFdIT09ZW98fFlbMTJdIT09THx8WVsxM10hPT1YLmJ1aWxkaW5nSW5kaWNhdG9yfHxZWzE0XSE9PVguZGlzYWJsZURldkluZGljYXRvcnx8WVsxNV0hPT1lbj8oWj0hWC5kaXNhYmxlRGV2SW5kaWNhdG9yJiYoMCxBLmpzeCkoXCJidXR0b25cIixyOChyOSh7aWQ6XCJuZXh0LWxvZ29cIixyZWY6ZW4sXCJkYXRhLW5leHQtbWFya1wiOiEwLFwiZGF0YS1uZXh0LW1hcmstbG9hZGluZ1wiOmViLG9uQ2xpY2s6TCxkaXNhYmxlZDpYLmRpc2FibGVEZXZJbmRpY2F0b3IsXCJhcmlhLWhhc3BvcHVwXCI6XCJtZW51XCIsXCJhcmlhLWV4cGFuZGVkXCI6ZW8sXCJhcmlhLWNvbnRyb2xzXCI6XCJuZXh0anMtZGV2LXRvb2xzLW1lbnVcIixcImFyaWEtbGFiZWxcIjpcIlwiLmNvbmNhdChlbz9cIkNsb3NlXCI6XCJPcGVuXCIsXCIgTmV4dC5qcyBEZXYgVG9vbHNcIiksXCJkYXRhLW5leHRqcy1kZXYtdG9vbHMtYnV0dG9uXCI6ITB9LEQpLHtjaGlsZHJlbjooMCxBLmpzeCkob28se2lzTG9hZGluZzplYixpc0RldkJ1aWxkaW5nOlguYnVpbGRpbmdJbmRpY2F0b3J9KX0pKSxZWzldPUQsWVsxMF09ZWIsWVsxMV09ZW8sWVsxMl09TCxZWzEzXT1YLmJ1aWxkaW5nSW5kaWNhdG9yLFlbMTRdPVguZGlzYWJsZURldkluZGljYXRvcixZWzE1XT1lbixZWzE2XT1aKTpaPVlbMTZdLFlbMTddIT09R3x8WVsxOF0hPT1lQXx8WVsxOV0hPT1lZ3x8WVsyMF0hPT1lcnx8WVsyMV0hPT1YLmJ1aWxkRXJyb3J8fFlbMjJdIT09WC5kaXNhYmxlRGV2SW5kaWNhdG9yfHxZWzIzXSE9PVguaXNFcnJvck92ZXJsYXlPcGVufHxZWzI0XSE9PVF8fFlbMjVdIT09ZW4/KFU9ZUEmJigwLEEuanN4cykoXCJkaXZcIix7XCJkYXRhLWlzc3Vlc1wiOiEwLGNoaWxkcmVuOlsoMCxBLmpzeHMpKFwiYnV0dG9uXCIse1wiZGF0YS1pc3N1ZXMtb3BlblwiOiEwLFwiYXJpYS1sYWJlbFwiOlwiT3BlbiBpc3N1ZXMgb3ZlcmxheVwiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtpZihYLmlzRXJyb3JPdmVybGF5T3BlbilyZXR1cm4gdm9pZCBHKHt0eXBlOnF9KTtHKHt0eXBlOkZ9KSxlcihudWxsKX0sY2hpbGRyZW46W1guZGlzYWJsZURldkluZGljYXRvciYmKDAsQS5qc3gpKFwiZGl2XCIse1wiZGF0YS1kaXNhYmxlZC1pY29uXCI6ITAsY2hpbGRyZW46KDAsQS5qc3gpKHIyLHt9KX0pLCgwLEEuanN4KShvcix7YW5pbWF0ZTplZyxcImRhdGEtaXNzdWVzLWNvdW50LWFuaW1hdGlvblwiOiEwLGNoaWxkcmVuOlF9LFEpLFwiIFwiLCgwLEEuanN4cykoXCJkaXZcIix7Y2hpbGRyZW46W1wiSXNzdWVcIixRPjEmJigwLEEuanN4KShcInNwYW5cIix7XCJhcmlhLWhpZGRlblwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtcGx1cmFsXCI6ITAsXCJkYXRhLWFuaW1hdGVcIjplZyYmMj09PVEsY2hpbGRyZW46XCJzXCJ9KV19KV19KSwhWC5idWlsZEVycm9yJiYoMCxBLmpzeCkoXCJidXR0b25cIix7XCJkYXRhLWlzc3Vlcy1jb2xsYXBzZVwiOiEwLFwiYXJpYS1sYWJlbFwiOlwiQ29sbGFwc2UgaXNzdWVzIGJhZGdlXCIsb25DbGljazpmdW5jdGlvbigpe3ZhciBlO1guZGlzYWJsZURldkluZGljYXRvcj9lbSghMCk6ZXMoITEpLG51bGw9PShlPWVuLmN1cnJlbnQpfHxlLmZvY3VzKCl9LGNoaWxkcmVuOigwLEEuanN4KShyMSx7XCJkYXRhLWNyb3NzXCI6ITB9KX0pXX0pLFlbMTddPUcsWVsxOF09ZUEsWVsxOV09ZWcsWVsyMF09ZXIsWVsyMV09WC5idWlsZEVycm9yLFlbMjJdPVguZGlzYWJsZURldkluZGljYXRvcixZWzIzXT1YLmlzRXJyb3JPdmVybGF5T3BlbixZWzI0XT1RLFlbMjVdPWVuLFlbMjZdPVUpOlU9WVsyNl0sWVsyN10hPT1afHxZWzI4XSE9PVU/KEg9KDAsQS5qc3hzKShcImRpdlwiLHtyZWY6ZXksY2hpbGRyZW46W1osVV19KSxZWzI3XT1aLFlbMjhdPVUsWVsyOV09SCk6SD1ZWzI5XSxZWzMwXSE9PWVhfHxZWzMxXSE9PWVBfHxZWzMyXSE9PWVnfHxZWzMzXSE9PU18fFlbMzRdIT09SD8oVj0oMCxBLmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHQtYmFkZ2VcIjohMCxcImRhdGEtZXJyb3JcIjplYSxcImRhdGEtZXJyb3ItZXhwYW5kZWRcIjplQSxcImRhdGEtYW5pbWF0ZVwiOmVnLHN0eWxlOk0sY2hpbGRyZW46SH0pLFlbMzBdPWVhLFlbMzFdPWVBLFlbMzJdPWVnLFlbMzNdPU0sWVszNF09SCxZWzM1XT1WKTpWPVlbMzVdLFlbMzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KCQ9KDAsQS5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtZG90XCI6ITB9KSxZWzM2XT0kKTokPVlbMzZdLFlbMzddIT09Vnx8WVszOF0hPT1lXz8oVz0oMCxBLmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0LWJhZGdlLXJvb3RcIjohMCxzdHlsZTplXyxjaGlsZHJlbjpbUixWLCRdfSksWVszN109VixZWzM4XT1lXyxZWzM5XT1XKTpXPVlbMzldLFd9ZnVuY3Rpb24gb3IoZSl7dmFyIHQsbixyLG8sYSxpLGw9KDAseC5jKSgxMyk7bFswXSE9PWU/KG49cjcoZSxbXCJjaGlsZHJlblwiLFwiYW5pbWF0ZVwiXSksdD1lLmNoaWxkcmVuLHI9ZS5hbmltYXRlLGxbMF09ZSxsWzFdPXQsbFsyXT1uLGxbM109cik6KHQ9bFsxXSxuPWxbMl0scj1sWzNdKTt2YXIgcz12b2lkIDA9PT1yfHxyLGM9dC0xO3JldHVybiBsWzRdIT09Yz8obz0oMCxBLmpzeCkoXCJkaXZcIix7XCJhcmlhLWhpZGRlblwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtZXhpdFwiOiEwLGNoaWxkcmVuOmN9KSxsWzRdPWMsbFs1XT1vKTpvPWxbNV0sbFs2XSE9PXQ/KGE9KDAsQS5qc3gpKFwiZGl2XCIse1wiZGF0YS1pc3N1ZXMtY291bnRcIjohMCxcImRhdGEtaXNzdWVzLWNvdW50LWVudGVyXCI6ITAsY2hpbGRyZW46dH0pLGxbNl09dCxsWzddPWEpOmE9bFs3XSxsWzhdIT09c3x8bFs5XSE9PW58fGxbMTBdIT09b3x8bFsxMV0hPT1hPyhpPSgwLEEuanN4cykoXCJkaXZcIixyOChyOSh7fSxuKSx7XCJkYXRhLWFuaW1hdGVcIjpzLGNoaWxkcmVuOltvLGFdfSkpLGxbOF09cyxsWzldPW4sbFsxMF09byxsWzExXT1hLGxbMTJdPWkpOmk9bFsxMl0saX1mdW5jdGlvbiBvbyhlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGM9KDAseC5jKSgxOSksdT1lLmlzTG9hZGluZyxkPWUuaXNEZXZCdWlsZGluZz9cInJnYmEoMjU1LDI1NSwyNTUsMC43KVwiOlwid2hpdGVcIixmPXU/XCJwYXRoMFwiOlwicGF1c2VkXCI7Y1swXSE9PWY/KHQ9KDAsQS5qc3gpKFwicGF0aFwiLHtjbGFzc05hbWU6ZixkOlwiTTEzLjMgMTUuMiBMMi4zNCAxIFYxMi42XCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJ1cmwoI25leHRfbG9nb19wYWludDBfbGluZWFyXzEzNTdfMTA4NTMpXCIsc3Ryb2tlV2lkdGg6XCIxLjg2XCIsbWFzazpcInVybCgjbmV4dF9sb2dvX21hc2swKVwiLHN0cm9rZURhc2hhcnJheTpcIjI5LjZcIixzdHJva2VEYXNob2Zmc2V0OlwiMjkuNlwifSksY1swXT1mLGNbMV09dCk6dD1jWzFdO3ZhciBwPXU/XCJwYXRoMVwiOlwicGF1c2VkXCI7cmV0dXJuIGNbMl0hPT1wPyhuPSgwLEEuanN4KShcInBhdGhcIix7Y2xhc3NOYW1lOnAsZDpcIk0xMS44MjUgMS41IFYxMy4xXCIsc3Ryb2tlV2lkdGg6XCIxLjg2XCIsc3Ryb2tlOlwidXJsKCNuZXh0X2xvZ29fcGFpbnQxX2xpbmVhcl8xMzU3XzEwODUzKVwiLHN0cm9rZURhc2hhcnJheTpcIjExLjZcIixzdHJva2VEYXNob2Zmc2V0OlwiMTEuNlwifSksY1syXT1wLGNbM109bik6bj1jWzNdLGNbNF0hPT10fHxjWzVdIT09bj8ocj0oMCxBLmpzeHMpKFwiZ1wiLHt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoOC41LCAxMylcIixjaGlsZHJlbjpbdCxuXX0pLGNbNF09dCxjWzVdPW4sY1s2XT1yKTpyPWNbNl0sY1s3XSE9PWQ/KG89KDAsQS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibmV4dF9sb2dvX3BhaW50MF9saW5lYXJfMTM1N18xMDg1M1wiLHgxOlwiOS45NTU1NVwiLHkxOlwiMTEuMTIyNlwiLHgyOlwiMTUuNDc3OFwiLHkyOlwiMTcuOTY3MVwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCxBLmpzeCkoXCJzdG9wXCIse3N0b3BDb2xvcjpkfSksKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIwLjYwNDA3MlwiLHN0b3BDb2xvcjpkLHN0b3BPcGFjaXR5OlwiMFwifSksKDAsQS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIxXCIsc3RvcENvbG9yOmQsc3RvcE9wYWNpdHk6XCIwXCJ9KV19KSxjWzddPWQsY1s4XT1vKTpvPWNbOF0sY1s5XSE9PWQ/KGE9KDAsQS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibmV4dF9sb2dvX3BhaW50MV9saW5lYXJfMTM1N18xMDg1M1wiLHgxOlwiMTEuODIyMlwiLHkxOlwiMS40MDAzOVwiLHgyOlwiMTEuNzkxXCIseTI6XCI5LjYyNTQyXCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLEEuanN4KShcInN0b3BcIix7c3RvcENvbG9yOmR9KSwoMCxBLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIjFcIixzdG9wQ29sb3I6ZCxzdG9wT3BhY2l0eTpcIjBcIn0pXX0pLGNbOV09ZCxjWzEwXT1hKTphPWNbMTBdLGNbMTFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGk9KDAsQS5qc3hzKShcIm1hc2tcIix7aWQ6XCJuZXh0X2xvZ29fbWFzazBcIixjaGlsZHJlbjpbKDAsQS5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjEwMCVcIixoZWlnaHQ6XCIxMDAlXCIsZmlsbDpcIndoaXRlXCJ9KSwoMCxBLmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiNVwiLGhlaWdodDpcIjEuNVwiLGZpbGw6XCJibGFja1wifSldfSksY1sxMV09aSk6aT1jWzExXSxjWzEyXSE9PW98fGNbMTNdIT09YT8obD0oMCxBLmpzeHMpKFwiZGVmc1wiLHtjaGlsZHJlbjpbbyxhLGldfSksY1sxMl09byxjWzEzXT1hLGNbMTRdPWwpOmw9Y1sxNF0sY1sxNV0hPT11fHxjWzE2XSE9PXJ8fGNbMTddIT09bD8ocz0oMCxBLmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiNDBcIixoZWlnaHQ6XCI0MFwiLHZpZXdCb3g6XCIwIDAgNDAgNDBcIixmaWxsOlwibm9uZVwiLFwiZGF0YS1uZXh0LW1hcmstbG9hZGluZ1wiOnUsY2hpbGRyZW46W3IsbF19KSxjWzE1XT11LGNbMTZdPXIsY1sxN109bCxjWzE4XT1zKTpzPWNbMThdLHN9dmFyIG9hPXcuZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuLHIsbyxhLGksbCxzLGMsdSxkPSgwLHguYykoMTUpO3JldHVybihkWzBdIT09ZT8obD1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wib25DbGlja1wiLFwiY2hpbGRyZW5cIixcImNsYXNzTmFtZVwiXSksaT1lLm9uQ2xpY2ssbz1lLmNoaWxkcmVuLGE9ZS5jbGFzc05hbWUsZFswXT1lLGRbMV09byxkWzJdPWEsZFszXT1pLGRbNF09bCk6KG89ZFsxXSxhPWRbMl0saT1kWzNdLGw9ZFs0XSksZFs1XSE9PWk/KHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFyZ2V0LmNsb3Nlc3QoXCJhXCIpfHxlLnByZXZlbnREZWZhdWx0KCksbnVsbD09aT92b2lkIDA6aSgpfSxkWzVdPWksZFs2XT1zKTpzPWRbNl0sZFs3XSE9PWE/KGM9ZUooXCJuZXh0anMtdG9hc3RcIixhKSxkWzddPWEsZFs4XT1jKTpjPWRbOF0sZFs5XSE9PW98fGRbMTBdIT09bHx8ZFsxMV0hPT10fHxkWzEyXSE9PXN8fGRbMTNdIT09Yyk/KHU9KDAsQS5qc3gpKFwiZGl2XCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7fSxsKSxyPXI9e3JlZjp0LG9uQ2xpY2s6cyxjbGFzc05hbWU6YyxjaGlsZHJlbjpvfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHIpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpKX0pLG4pKSxkWzldPW8sZFsxMF09bCxkWzExXT10LGRbMTJdPXMsZFsxM109YyxkWzE0XT11KTp1PWRbMTRdLHV9KTtmdW5jdGlvbiBvaShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9dmFyIG9sPSgwLHcuY3JlYXRlQ29udGV4dCkobnVsbCk7ZnVuY3Rpb24gb3MoZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuZGlzYWJsZWQscj12b2lkIDAhPT1uJiZuLG89KDAsdy51c2VSZWYpKG5ldyBTZXQpLGE9KDAsdy51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7by5jdXJyZW50LmFkZChlKX0sW10pLGk9KDAsdy51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7by5jdXJyZW50LmRlbGV0ZShlKX0sW10pLGw9KDAsdy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybntyZWdpc3RlcjphLHVucmVnaXN0ZXI6aSxoYW5kbGVzOm8uY3VycmVudCxkaXNhYmxlZDpyfX0sW2EsaSxyXSk7cmV0dXJuKDAsQS5qc3gpKG9sLlByb3ZpZGVyLHt2YWx1ZTpsLGNoaWxkcmVuOnR9KX1mdW5jdGlvbiBvYygpe3JldHVybigwLHcudXNlQ29udGV4dCkob2wpfWZ1bmN0aW9uIG91KGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZj0oMCx4LmMpKDE5KTtmWzBdIT09ZT8obz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiY2hpbGRyZW5cIixcInJlZlwiXSkscj1lLmNoaWxkcmVuLGE9ZS5yZWYsZlswXT1lLGZbMV09cixmWzJdPW8sZlszXT1hKToocj1mWzFdLG89ZlsyXSxhPWZbM10pO3ZhciBwPSgwLHcudXNlUmVmKShudWxsKSxoPW9jKCk7Zls0XSE9PWE/KGk9ZnVuY3Rpb24oZSl7aWYocC5jdXJyZW50PW51bGwhPWU/ZTpudWxsLFwiZnVuY3Rpb25cIj09dHlwZW9mIGEpYShlKTtlbHNle3ZhciB0O2EmJih2b2lkIDA9PT1hP1widW5kZWZpbmVkXCI6KHQ9YSkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2w/XCJzeW1ib2xcIjp0eXBlb2YgdCk9PVwib2JqZWN0XCImJihhLmN1cnJlbnQ9ZSl9fSxmWzRdPWEsZls1XT1pKTppPWZbNV07dmFyIG09aTtmWzZdIT09aD8obD1mdW5jdGlvbigpe2lmKGgmJnAuY3VycmVudCYmIWguZGlzYWJsZWQpe3ZhciBlPXAuY3VycmVudDtyZXR1cm4gaC5yZWdpc3RlcihlKSxmdW5jdGlvbigpe3JldHVybiBoLnVucmVnaXN0ZXIoZSl9fX0scz1baF0sZls2XT1oLGZbN109bCxmWzhdPXMpOihsPWZbN10scz1mWzhdKSwoMCx3LnVzZUVmZmVjdCkobCxzKTt2YXIgZz0obnVsbD09aD92b2lkIDA6aC5kaXNhYmxlZCk/XCJkZWZhdWx0XCI6XCJncmFiXCI7cmV0dXJuKGZbOV0hPT1vLnN0eWxlPyhjPW8uc3R5bGV8fHt9LGZbOV09by5zdHlsZSxmWzEwXT1jKTpjPWZbMTBdLGZbMTFdIT09Z3x8ZlsxMl0hPT1jPyh1PW9pKHtjdXJzb3I6Z30sYyksZlsxMV09ZyxmWzEyXT1jLGZbMTNdPXUpOnU9ZlsxM10sZlsxNF0hPT1yfHxmWzE1XSE9PW98fGZbMTZdIT09bXx8ZlsxN10hPT11KT8oZD0oMCxBLmpzeCkoXCJkaXZcIiwodD1vaSh7cmVmOm19LG8pLG49bj17c3R5bGU6dSxjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxmWzE0XT1yLGZbMTVdPW8sZlsxNl09bSxmWzE3XT11LGZbMThdPWQpOmQ9ZlsxOF0sZH1mdW5jdGlvbiBvZChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gb2YoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIG9wKGUsdCl7cmV0dXJuIHQ9bnVsbCE9dD90Ont9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbikpfSksZX1mdW5jdGlvbiBvaChlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99ZnVuY3Rpb24gb20oZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIG9kKGUpfShlKXx8ZnVuY3Rpb24oZSl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1lW1wiQEBpdGVyYXRvclwiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fG9nKGUpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiBvZyhlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvZChlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBvZChlLHQpfX1mdW5jdGlvbiBveShlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscD0oMCx4LmMpKDE4KTtwWzBdIT09ZT8ocz1vaChlLFtcImNoaWxkcmVuXCIsXCJwYWRkaW5nXCIsXCJwb3NpdGlvblwiLFwic2V0UG9zaXRpb25cIixcIm9uRHJhZ1N0YXJ0XCIsXCJkcmFnSGFuZGxlU2VsZWN0b3JcIixcImRpc2FibGVEcmFnXCIsXCJhdm9pZFpvbmVcIl0pLHI9ZS5jaGlsZHJlbixsPWUucGFkZGluZyxvPWUucG9zaXRpb24sYz1lLnNldFBvc2l0aW9uLGk9ZS5vbkRyYWdTdGFydCxhPWUuZHJhZ0hhbmRsZVNlbGVjdG9yLHU9ZS5kaXNhYmxlRHJhZyxuPWUuYXZvaWRab25lLHBbMF09ZSxwWzFdPW4scFsyXT1yLHBbM109byxwWzRdPWEscFs1XT1pLHBbNl09bCxwWzddPXMscFs4XT1jLHBbOV09dSk6KG49cFsxXSxyPXBbMl0sbz1wWzNdLGE9cFs0XSxpPXBbNV0sbD1wWzZdLHM9cFs3XSxjPXBbOF0sdT1wWzldKTt2YXIgaD1mdW5jdGlvbihlKXt2YXIgdD0oMCx3LnVzZVJlZikobnVsbCksbj0oMCx3LnVzZVJlZikoe3N0YXRlOlwiaWRsZVwifSkscj0oMCx3LnVzZVJlZikobnVsbCksbz0oMCx3LnVzZVJlZikoe3g6MCx5OjB9KSxhPSgwLHcudXNlUmVmKSh7eDowLHk6MH0pLGk9KDAsdy51c2VSZWYpKDApLGw9KDAsdy51c2VSZWYpKFtdKSxzPSgwLHcudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7dmFyIGUsbztcImRyYWdcIj09PW4uY3VycmVudC5zdGF0ZSYmKG51bGw9PShvPXQuY3VycmVudCl8fG8ucmVsZWFzZVBvaW50ZXJDYXB0dXJlKG4uY3VycmVudC5wb2ludGVySWQpKSxuLmN1cnJlbnQ9XCJkcmFnXCI9PT1uLmN1cnJlbnQuc3RhdGU/e3N0YXRlOlwiZHJhZy1lbmRcIn06e3N0YXRlOlwiaWRsZVwifSxudWxsIT09ci5jdXJyZW50JiYoci5jdXJyZW50KCksci5jdXJyZW50PW51bGwpLGwuY3VycmVudD1bXSxudWxsPT0oZT10LmN1cnJlbnQpfHxlLmNsYXNzTGlzdC5yZW1vdmUoXCJkZXYtdG9vbHMtZ3JhYmJpbmdcIiksZG9jdW1lbnQuYm9keS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInVzZXItc2VsZWN0XCIpLGRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItd2Via2l0LXVzZXItc2VsZWN0XCIpfSxbXSk7ZnVuY3Rpb24gYyhlKXt0LmN1cnJlbnQmJihhLmN1cnJlbnQ9ZSx0LmN1cnJlbnQuc3R5bGUudHJhbnNsYXRlPVwiXCIuY29uY2F0KGUueCxcInB4IFwiKS5jb25jYXQoZS55LFwicHhcIikpfWZ1bmN0aW9uIHUobil7dmFyIHI9dC5jdXJyZW50O251bGwhPT1yJiYoci5zdHlsZS50cmFuc2l0aW9uPVwidHJhbnNsYXRlIDQ5MS4yMm1zIHZhcigtLXRpbWluZy1ib3VuY2UpXCIsci5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLGZ1bmN0aW9uIHQobyl7aWYoXCJ0cmFuc2xhdGVcIj09PW8ucHJvcGVydHlOYW1lKXt2YXIgaTtudWxsPT0oaT1lLm9uQW5pbWF0aW9uRW5kKXx8aS5jYWxsKGUsbiksYS5jdXJyZW50PXt4OjAseTowfSxyLnN0eWxlLnRyYW5zaXRpb249XCJcIixyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsdCl9fSksYyhuLnRyYW5zbGF0aW9uKSl9ZnVuY3Rpb24gZChlKXtpZihcImRyYWctZW5kXCI9PT1uLmN1cnJlbnQuc3RhdGUpe3ZhciByO2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG4uY3VycmVudD17c3RhdGU6XCJpZGxlXCJ9LG51bGw9PShyPXQuY3VycmVudCl8fHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZCl9fWZ1bmN0aW9uIGYocil7aWYoXCJwcmVzc1wiPT09bi5jdXJyZW50LnN0YXRlKXt2YXIgcyx1LGQsZixwPXIuY2xpZW50WC1vLmN1cnJlbnQueCxoPXIuY2xpZW50WS1vLmN1cnJlbnQueTtNYXRoLnNxcnQocCpwK2gqaCk+PWUudGhyZXNob2xkJiYobi5jdXJyZW50PXtzdGF0ZTpcImRyYWdcIixwb2ludGVySWQ6ci5wb2ludGVySWR9LG51bGw9PSh1PXQuY3VycmVudCl8fHUuc2V0UG9pbnRlckNhcHR1cmUoci5wb2ludGVySWQpLG51bGw9PShkPXQuY3VycmVudCl8fGQuY2xhc3NMaXN0LmFkZChcImRldi10b29scy1ncmFiYmluZ1wiKSxkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9XCJub25lXCIsZG9jdW1lbnQuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PVwibm9uZVwiLG51bGw9PShmPWUub25EcmFnU3RhcnQpfHxmLmNhbGwoZSkpfWlmKFwiZHJhZ1wiPT09bi5jdXJyZW50LnN0YXRlKXt2YXIgbT17eDpyLmNsaWVudFgseTpyLmNsaWVudFl9LGc9bS54LW8uY3VycmVudC54LHk9bS55LW8uY3VycmVudC55O28uY3VycmVudD1tLGMoe3g6YS5jdXJyZW50LngrZyx5OmEuY3VycmVudC55K3l9KTt2YXIgdj1EYXRlLm5vdygpO3YtaS5jdXJyZW50Pj0xMCYmKGwuY3VycmVudD1vbShsLmN1cnJlbnQuc2xpY2UoLTUpKS5jb25jYXQoW3twb3NpdGlvbjptLHRpbWVzdGFtcDp2fV0pKSxpLmN1cnJlbnQ9dixudWxsPT0ocz1lLm9uRHJhZyl8fHMuY2FsbChlLGEuY3VycmVudCl9fWZ1bmN0aW9uIHAoKXt2YXIgdCxuPWZ1bmN0aW9uKGUpe2lmKGUubGVuZ3RoPDIpcmV0dXJue3g6MCx5OjB9O3ZhciB0PWVbMF0sbj1lW2UubGVuZ3RoLTFdLHI9bi50aW1lc3RhbXAtdC50aW1lc3RhbXA7cmV0dXJuIDA9PT1yP3t4OjAseTowfTp7eDoxZTMqKChuLnBvc2l0aW9uLngtdC5wb3NpdGlvbi54KS9yKSx5OjFlMyooKG4ucG9zaXRpb24ueS10LnBvc2l0aW9uLnkpL3IpfX0obC5jdXJyZW50KTtzKCksbnVsbD09KHQ9ZS5vbkRyYWdFbmQpfHx0LmNhbGwoZSxhLmN1cnJlbnQsbil9cmV0dXJuKDAsdy51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7ZS5kaXNhYmxlZCYmcygpfSxbcyxlLmRpc2FibGVkXSksZS5kaXNhYmxlZD97cmVmOnQsYW5pbWF0ZTp1fTp7cmVmOnQsb25Qb2ludGVyRG93bjpmdW5jdGlvbihhKXt2YXIgaTswPT09YS5idXR0b24mJmZ1bmN0aW9uKG4pe2lmKCFufHwhdC5jdXJyZW50KXJldHVybiEwO2lmKGUuaGFuZGxlcyYmZS5oYW5kbGVzLnNpemU+MCl7Zm9yKHZhciByPW47ciYmciE9PXQuY3VycmVudDspe2lmKGUuaGFuZGxlcy5oYXMocikpcmV0dXJuITA7cj1yLnBhcmVudEVsZW1lbnR9cmV0dXJuITF9cmV0dXJuIWUuZHJhZ0hhbmRsZVNlbGVjdG9yfHxudWxsIT09bi5jbG9zZXN0KGUuZHJhZ0hhbmRsZVNlbGVjdG9yKX0oYS50YXJnZXQpJiYoby5jdXJyZW50PXt4OmEuY2xpZW50WCx5OmEuY2xpZW50WX0sbi5jdXJyZW50PXtzdGF0ZTpcInByZXNzXCJ9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcm1vdmVcIixmKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLHApLG51bGwhPT1yLmN1cnJlbnQmJihyLmN1cnJlbnQoKSxyLmN1cnJlbnQ9bnVsbCksci5jdXJyZW50PWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybW92ZVwiLGYpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIscCl9LG51bGw9PShpPXQuY3VycmVudCl8fGkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZCkpfSxhbmltYXRlOnV9fSh7ZGlzYWJsZWQ6dm9pZCAwIT09dSYmdSxoYW5kbGVzOm51bGw9PSh0PW9jKCkpP3ZvaWQgMDp0LmhhbmRsZXMsdGhyZXNob2xkOjUsb25EcmFnU3RhcnQ6aSxvbkRyYWdFbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgcixhLGkscyxjLHUsZCxmLHAsaCx5LHYsYixBLHgsdyxDLF87aWYoMD09PU1hdGguc3FydChlLngqZS54K2UueSplLnkpKXtudWxsPT0ocj1tLmN1cnJlbnQpfHxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KFwidHJhbnNsYXRlXCIpO3JldHVybn1nKChiPShhPXt4OmUueCtvYih0LngpLHk6ZS55K29iKHQueSl9KS54LEE9YS55LHc9T2JqZWN0LmVudHJpZXMoeD0oYz0yKmwsdT0obnVsbD09KGk9bS5jdXJyZW50KT92b2lkIDA6aS5vZmZzZXRXaWR0aCl8fDAsZD0obnVsbD09KHM9bS5jdXJyZW50KT92b2lkIDA6cy5vZmZzZXRIZWlnaHQpfHwwLGY9d2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLGg9KHA9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pbmNsdWRlcyhcInJpZ2h0XCIpLHI9ZS5pbmNsdWRlcyhcImJvdHRvbVwiKSxvPXQ/d2luZG93LmlubmVyV2lkdGgtZi1jLXU6MCxhPXI/d2luZG93LmlubmVySGVpZ2h0LWMtZDowO2lmKG4mJm4uY29ybmVyPT09ZSl7dmFyIGk9bi5zcXVhcmUrbi5wYWRkaW5nO3I/YS09aTphKz1pfXJldHVybnt4Om8seTphfX0pKG8pLHtcInRvcC1sZWZ0XCI6KHk9ZnVuY3Rpb24oZSl7cmV0dXJue3g6ZS54LWgueCx5OmUueS1oLnl9fSkocChcInRvcC1sZWZ0XCIpKSxcInRvcC1yaWdodFwiOnkocChcInRvcC1yaWdodFwiKSksXCJib3R0b20tbGVmdFwiOnkocChcImJvdHRvbS1sZWZ0XCIpKSxcImJvdHRvbS1yaWdodFwiOnkocChcImJvdHRvbS1yaWdodFwiKSl9KSkubWFwKGZ1bmN0aW9uKGUpe3ZhciB0LG4scj0obj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQ9ZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksYS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0odCwyKXx8b2codCxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksbz1yWzBdLGE9clsxXTtyZXR1cm57a2V5Om8sZGlzdGFuY2U6TWF0aC5zcXJ0KE1hdGgucG93KGItYS54LDIpK01hdGgucG93KEEtYS55LDIpKX19KSxDPSh2PU1hdGgpLm1pbi5hcHBseSh2LG9tKHcubWFwKG92KSkpLChfPXcuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5kaXN0YW5jZT09PUN9KSk/e3RyYW5zbGF0aW9uOnhbXy5rZXldLGNvcm5lcjpfLmtleX06e2Nvcm5lcjpvLHRyYW5zbGF0aW9uOnhbb119KSl9LG9uQW5pbWF0aW9uRW5kOmZ1bmN0aW9uKGUpe3ZhciB0PWUuY29ybmVyO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZTtudWxsPT0oZT1tLmN1cnJlbnQpfHxlLnN0eWxlLnJlbW92ZVByb3BlcnR5KFwidHJhbnNsYXRlXCIpLGModCl9KX0sZHJhZ0hhbmRsZVNlbGVjdG9yOmF9KSxtPWgucmVmLGc9aC5hbmltYXRlLHk9b2goaCxbXCJyZWZcIixcImFuaW1hdGVcIl0pO3JldHVybiBwWzEwXSE9PXMuc3R5bGU/KGQ9b2Yoe3RvdWNoQWN0aW9uOlwibm9uZVwiLHVzZXJTZWxlY3Q6XCJub25lXCIsV2Via2l0VXNlclNlbGVjdDpcIm5vbmVcIn0scy5zdHlsZSkscFsxMF09cy5zdHlsZSxwWzExXT1kKTpkPXBbMTFdLHBbMTJdIT09cnx8cFsxM10hPT15fHxwWzE0XSE9PXN8fHBbMTVdIT09bXx8cFsxNl0hPT1kPyhmPSgwLEEuanN4KShcImRpdlwiLG9wKG9mKG9wKG9mKHt9LHMpLHtyZWY6bX0pLHkpLHtzdHlsZTpkLGNoaWxkcmVuOnJ9KSkscFsxMl09cixwWzEzXT15LHBbMTRdPXMscFsxNV09bSxwWzE2XT1kLHBbMTddPWYpOmY9cFsxN10sZn1mdW5jdGlvbiBvdihlKXtyZXR1cm4gZS5kaXN0YW5jZX1mdW5jdGlvbiBvYihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06Ljk5OTtyZXR1cm4gZS8xZTMqdC8oMS10KX1mdW5jdGlvbiBvQShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gb3goZSx0LG4pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfXZhciBvdz0yMDtmdW5jdGlvbiBvQygpe3ZhciBlLHQsbixyLG8sYSxpLGwscyxjPSgwLHguYykoMjApLHU9ZGwoKSxkPXUuc3RhdGUsZj11LmRpc3BhdGNoLHA9cjUoKSxoPXAucGFuZWwsbT1wLnNldFBhbmVsLGc9cC5zZXRTZWxlY3RlZEluZGV4LHk9b18oKTtjWzBdIT09ZC5kZXZUb29sc1Bvc2l0aW9uPyhuPWQuZGV2VG9vbHNQb3NpdGlvbi5zcGxpdChcIi1cIiwyKSxjWzBdPWQuZGV2VG9vbHNQb3NpdGlvbixjWzFdPW4pOm49Y1sxXTt2YXIgdj0odD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGU9bil8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksYS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSwyKXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gb0EoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gb0EoZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGI9dlswXSx3PXZbMV07Y1syXSE9PXd8fGNbM10hPT1iPyhveChvPXtcIi0tYW5pbWF0ZS1vdXQtZHVyYXRpb24tbXNcIjpcIlwiLmNvbmNhdCgyMDAsXCJtc1wiKSxcIi0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uXCI6bnQsYm94U2hhZG93Olwibm9uZVwifSxiLFwiXCIuY29uY2F0KG93LFwicHhcIikpLG94KG8sdyxcIlwiLmNvbmNhdChvdyxcInB4XCIpKSxyPW8sY1syXT13LGNbM109YixjWzRdPXIpOnI9Y1s0XTt2YXIgQz1yLF89bnVsbCE9PWg7cmV0dXJuIGNbNV0hPT1mfHxjWzZdIT09eT8oYT1mdW5jdGlvbihlKXtmKHt0eXBlOkssZGV2VG9vbHNQb3NpdGlvbjplfSkscncoe2RldlRvb2xzUG9zaXRpb246ZX0pLHkoZSl9LGNbNV09ZixjWzZdPXksY1s3XT1hKTphPWNbN10sY1s4XSE9PWh8fGNbOV0hPT1tfHxjWzEwXSE9PWc/KGk9KDAsQS5qc3gpKG9uLHtvblRyaWdnZXJDbGljazpmdW5jdGlvbigpe3ZhciBlPVwicGFuZWwtc2VsZWN0b3JcIj09PWg/bnVsbDpcInBhbmVsLXNlbGVjdG9yXCI7aWYobShlKSwhZSlyZXR1cm4gdm9pZCBnKC0xKX19KSxjWzhdPWgsY1s5XT1tLGNbMTBdPWcsY1sxMV09aSk6aT1jWzExXSxjWzEyXSE9PWQuZGV2VG9vbHNQb3NpdGlvbnx8Y1sxM10hPT1ffHxjWzE0XSE9PWF8fGNbMTVdIT09aT8obD0oMCxBLmpzeCkob3kse2Rpc2FibGVEcmFnOl8scGFkZGluZzpvdyxwb3NpdGlvbjpkLmRldlRvb2xzUG9zaXRpb24sc2V0UG9zaXRpb246YSxjaGlsZHJlbjppfSksY1sxMl09ZC5kZXZUb29sc1Bvc2l0aW9uLGNbMTNdPV8sY1sxNF09YSxjWzE1XT1pLGNbMTZdPWwpOmw9Y1sxNl0sY1sxN10hPT1DfHxjWzE4XSE9PWw/KHM9KDAsQS5qc3gpKG9hLHtpZDpcImRldnRvb2xzLWluZGljYXRvclwiLFwiZGF0YS1uZXh0anMtdG9hc3RcIjohMCxzdHlsZTpDLGNoaWxkcmVuOmx9KSxjWzE3XT1DLGNbMThdPWwsY1sxOV09cyk6cz1jWzE5XSxzfXZhciBvXz1mdW5jdGlvbigpe3ZhciBlLHQ9KDAseC5jKSgzKSxuPWRsKCkscj1uLnN0YXRlLG89bi5kaXNwYXRjaDtyZXR1cm4gdFswXSE9PW98fHRbMV0hPT1yLmRldlRvb2xzUGFuZWxQb3NpdGlvbj8oZT1mdW5jdGlvbihlKXtvKHt0eXBlOlgsZGV2VG9vbHNQYW5lbFBvc2l0aW9uOmUsa2V5OmVufSk7dmFyIHQ9T2JqZWN0LmtleXMoci5kZXZUb29sc1BhbmVsUG9zaXRpb24pLmZpbHRlcihvayksbj1veCh7fSxlbixlKTt0LmZvckVhY2goZnVuY3Rpb24odCl7byh7dHlwZTpYLGRldlRvb2xzUGFuZWxQb3NpdGlvbjplLGtleTp0fSksblt0XT1lfSkscncoe2RldlRvb2xzUGFuZWxQb3NpdGlvbjpufSl9LHRbMF09byx0WzFdPXIuZGV2VG9vbHNQYW5lbFBvc2l0aW9uLHRbMl09ZSk6ZT10WzJdLGV9O2Z1bmN0aW9uIG9rKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoSil9ZnVuY3Rpb24gb0UoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIG9qKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBvUyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7b2ooZSx0LG5bdF0pfSl9cmV0dXJuIGV9ZnVuY3Rpb24gb08oZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIG9CKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvRShlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBvRShlLHQpfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX12YXIgb1A9KDAsdy5jcmVhdGVDb250ZXh0KSh7fSk7ZnVuY3Rpb24gb0koZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaD0oMCx4LmMpKDM3KTtoWzBdIT09ZT8oYT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiaW5kZXhcIixcImxhYmVsXCIsXCJ2YWx1ZVwiLFwib25DbGlja1wiLFwiaHJlZlwiXSksbj1lLmluZGV4LHI9ZS5sYWJlbCxpPWUudmFsdWUsbz1lLm9uQ2xpY2ssdD1lLmhyZWYsaFswXT1lLGhbMV09dCxoWzJdPW4saFszXT1yLGhbNF09byxoWzVdPWEsaFs2XT1pKToodD1oWzFdLG49aFsyXSxyPWhbM10sbz1oWzRdLGE9aFs1XSxpPWhbNl0pO3ZhciBtPVwiZnVuY3Rpb25cIj09dHlwZW9mIG98fFwic3RyaW5nXCI9PXR5cGVvZiB0LGc9KDAsdy51c2VDb250ZXh0KShvUCkseT1nLmNsb3NlTWVudSx2PWcuc2VsZWN0ZWRJbmRleCxiPWcuc2V0U2VsZWN0ZWRJbmRleCxDPXY9PT1uO2hbN10hPT15fHxoWzhdIT09dHx8aFs5XSE9PW18fGhbMTBdIT09bz8obD1mdW5jdGlvbigpe20mJihudWxsPT1vfHxvKCksbnVsbD09eXx8eSgpLHQmJndpbmRvdy5vcGVuKHQsXCJfYmxhbmtcIixcIm5vb3BlbmVyLCBub3JlZmVycmVyXCIpKX0saFs3XT15LGhbOF09dCxoWzldPW0saFsxMF09byxoWzExXT1sKTpsPWhbMTFdO3ZhciBfPWw7aFsxMl0hPT1ufHxoWzEzXSE9PW18fGhbMTRdIT09dnx8aFsxNV0hPT1iPyhzPWZ1bmN0aW9uKCl7bSYmdm9pZCAwIT09biYmdiE9PW4mJmIobil9LGhbMTJdPW4saFsxM109bSxoWzE0XT12LGhbMTVdPWIsaFsxNl09cyk6cz1oWzE2XSxoWzE3XSE9PWI/KGM9ZnVuY3Rpb24oKXtyZXR1cm4gYigtMSl9LGhbMTddPWIsaFsxOF09Yyk6Yz1oWzE4XSxoWzE5XSE9PV8/KHU9ZnVuY3Rpb24oZSl7KFwiRW50ZXJcIj09PWUua2V5fHxcIiBcIj09PWUua2V5KSYmXygpfSxoWzE5XT1fLGhbMjBdPXUpOnU9aFsyMF07dmFyIGs9bT9cIm1lbnVpdGVtXCI6dm9pZCAwLEU9Qz8wOi0xO3JldHVybiBoWzIxXSE9PXI/KGQ9KDAsQS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5kaWNhdG9yLWxhYmVsXCIsY2hpbGRyZW46cn0pLGhbMjFdPXIsaFsyMl09ZCk6ZD1oWzIyXSxoWzIzXSE9PWk/KGY9KDAsQS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5kaWNhdG9yLXZhbHVlXCIsY2hpbGRyZW46aX0pLGhbMjNdPWksaFsyNF09Zik6Zj1oWzI0XSxoWzI1XSE9PV98fGhbMjZdIT09bnx8aFsyN10hPT1hfHxoWzI4XSE9PUN8fGhbMjldIT09c3x8aFszMF0hPT1jfHxoWzMxXSE9PXV8fGhbMzJdIT09a3x8aFszM10hPT1FfHxoWzM0XSE9PWR8fGhbMzVdIT09Zj8ocD0oMCxBLmpzeHMpKFwiZGl2XCIsb08ob1Moe2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItaXRlbVwiLFwiZGF0YS1pbmRleFwiOm4sXCJkYXRhLXNlbGVjdGVkXCI6QyxvbkNsaWNrOl8sb25Nb3VzZU1vdmU6cyxvbk1vdXNlTGVhdmU6YyxvbktleURvd246dSxyb2xlOmssdGFiSW5kZXg6RX0sYSkse2NoaWxkcmVuOltkLGZdfSkpLGhbMjVdPV8saFsyNl09bixoWzI3XT1hLGhbMjhdPUMsaFsyOV09cyxoWzMwXT1jLGhbMzFdPXUsaFszMl09ayxoWzMzXT1FLGhbMzRdPWQsaFszNV09ZixoWzM2XT1wKTpwPWhbMzZdLHB9dmFyIG9UPWZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5jbG9zZU9uQ2xpY2tPdXRzaWRlLHI9dm9pZCAwPT09bnx8bixvPWUuaXRlbXMsYT1kbCgpLnN0YXRlLGk9cjUoKSxsPWkuc2V0UGFuZWwscz1pLnRyaWdnZXJSZWYsYz1pLnNldFNlbGVjdGVkSW5kZXgsdT1pLnNlbGVjdGVkSW5kZXgsZD11USgpLm1vdW50ZWQsZj1vQihhLmRldlRvb2xzUG9zaXRpb24uc3BsaXQoXCItXCIsMiksMikscD1mWzBdLGg9ZlsxXSxtPSgwLHcudXNlUmVmKShudWxsKTtuZShtLHMsciYmZCxmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwiZXNjYXBlXCI6bChudWxsKSxjKC0xKTtyZXR1cm47Y2FzZVwib3V0c2lkZVwiOmlmKCFyKXJldHVybjtsKG51bGwpLGMoLTEpO3JldHVybjtkZWZhdWx0OnJldHVybiBudWxsfX0pLCgwLHcudXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe3ZhciBlO251bGw9PShlPW0uY3VycmVudCl8fGUuZm9jdXMoKSxvTih7aW5kZXg6LTE9PT11P1wiZmlyc3RcIjp1LG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KX0sW10pO3ZhciBnPXIzKGEpLHk9b0IoYS5kZXZUb29sc1Bvc2l0aW9uLnNwbGl0KFwiLVwiLDIpLDIpLHY9eVswXSxiPXlbMV0seD1wPT09diYmaD09PWI/ZzpvdyxDPShvaih0PXt9LHAsXCJcIi5jb25jYXQoeCxcInB4XCIpKSxvaih0LGgsXCJcIi5jb25jYXQob3csXCJweFwiKSksb2oodCxcInRvcFwiPT09cD9cImJvdHRvbVwiOlwidG9wXCIsXCJhdXRvXCIpLG9qKHQsXCJsZWZ0XCI9PT1oP1wicmlnaHRcIjpcImxlZnRcIixcImF1dG9cIiksdCksXz1vLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hIWV9KSxrPV8uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLmZvb3Rlcn0pLEU9Xy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZm9vdGVyfSk7cmV0dXJuKDAsQS5qc3gpKFwiZGl2XCIse3JlZjptLG9uS2V5RG93bjpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9Xy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUub25DbGlja30pLmxlbmd0aDtzd2l0Y2goZS5rZXkpe2Nhc2VcIkFycm93RG93blwiOm9OKHtpbmRleDp1Pj10LTE/MDp1KzEsbWVudVJlZjptLHNldFNlbGVjdGVkSW5kZXg6Y30pO2JyZWFrO2Nhc2VcIkFycm93VXBcIjpvTih7aW5kZXg6dTw9MD90LTE6dS0xLG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KTticmVhaztjYXNlXCJIb21lXCI6b04oe2luZGV4OlwiZmlyc3RcIixtZW51UmVmOm0sc2V0U2VsZWN0ZWRJbmRleDpjfSk7YnJlYWs7Y2FzZVwiRW5kXCI6b04oe2luZGV4OlwibGFzdFwiLG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KTticmVhaztjYXNlXCJuXCI6ZS5jdHJsS2V5JiZvTih7aW5kZXg6dT49dC0xPzA6dSsxLG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KTticmVhaztjYXNlXCJwXCI6ZS5jdHJsS2V5JiZvTih7aW5kZXg6dTw9MD90LTE6dS0xLG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KX19LGlkOlwibmV4dGpzLWRldi10b29scy1tZW51XCIscm9sZTpcIm1lbnVcIixkaXI6XCJsdHJcIixcImFyaWEtb3JpZW50YXRpb25cIjpcInZlcnRpY2FsXCIsXCJhcmlhLWxhYmVsXCI6XCJOZXh0LmpzIERldiBUb29scyBJdGVtc1wiLHRhYkluZGV4Oi0xLHN0eWxlOm9TKHtvdXRsaW5lOjAsV2Via2l0Rm9udFNtb290aGluZzpcImFudGlhbGlhc2VkXCIsZGlzcGxheTpcImZsZXhcIixmbGV4RGlyZWN0aW9uOlwiY29sdW1uXCIsYWxpZ25JdGVtczpcImZsZXgtc3RhcnRcIixiYWNrZ3JvdW5kOlwidmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApXCIsYmFja2dyb3VuZENsaXA6XCJwYWRkaW5nLWJveFwiLGJveFNoYWRvdzpcInZhcigtLXNoYWRvdy1tZW51KVwiLGJvcmRlclJhZGl1czpcInZhcigtLXJvdW5kZWQteGwpXCIscG9zaXRpb246XCJmaXhlZFwiLGZvbnRGYW1pbHk6XCJ2YXIoLS1mb250LXN0YWNrLXNhbnMpXCIsekluZGV4OlwidmFyKC0tdG9wLXotaW5kZXgpXCIsb3ZlcmZsb3c6XCJoaWRkZW5cIixvcGFjaXR5OjEsbWluV2lkdGg6XCIyNDhweFwiLHRyYW5zaXRpb246XCJvcGFjaXR5IHZhcigtLWFuaW1hdGUtb3V0LWR1cmF0aW9uLW1zKSB2YXIoLS1hbmltYXRlLW91dC10aW1pbmctZnVuY3Rpb24pXCIsYm9yZGVyOlwiMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKVwifSxDKSxjaGlsZHJlbjooMCxBLmpzeHMpKG9QLHt2YWx1ZTp7c2VsZWN0ZWRJbmRleDp1LHNldFNlbGVjdGVkSW5kZXg6Y30sY2hpbGRyZW46WygwLEEuanN4KShcImRpdlwiLHtzdHlsZTp7cGFkZGluZzpcIjZweFwiLHdpZHRoOlwiMTAwJVwifSxjaGlsZHJlbjprLm1hcChmdW5jdGlvbihlLHQpe3JldHVybigwLEEuanN4KShvSSxvUyh7dGl0bGU6ZS50aXRsZSxsYWJlbDplLmxhYmVsLHZhbHVlOmUudmFsdWUsb25DbGljazplLm9uQ2xpY2ssaW5kZXg6ZS5vbkNsaWNrP296KGssdCk6dm9pZCAwfSxlLmF0dHJpYnV0ZXMpLGUubGFiZWwpfSl9KSwoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZGljYXRvci1mb290ZXJcIixjaGlsZHJlbjpFLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuO3JldHVybigwLEEuanN4KShvSSxvTyhvUyh7dGl0bGU6ZS50aXRsZSxsYWJlbDplLmxhYmVsLHZhbHVlOmUudmFsdWUsb25DbGljazplLm9uQ2xpY2t9LGUuYXR0cmlidXRlcykse2luZGV4OmUub25DbGljaz9veihFLHQpKyhuPWspLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5vbkNsaWNrfSkubGVuZ3RoOnZvaWQgMH0pLGUubGFiZWwpfSl9KV19KX0pfTtmdW5jdGlvbiBveihlLHQpe2Zvcih2YXIgbj0wLHI9MDtyPD10JiZyPGUubGVuZ3RoO3IrKylpZihlW3JdLm9uQ2xpY2spe2lmKHI9PT10KXJldHVybiBuO24rK31yZXR1cm4gbn1mdW5jdGlvbiBvRChlKXt2YXIgdCxuLHI9KDAseC5jKSg0KSxvPWUuY2hpbGRyZW4sYT1vPjA7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItaXNzdWUtY291bnQtaW5kaWNhdG9yXCJ9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09b3x8clsyXSE9PWE/KG49KDAsQS5qc3hzKShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZGljYXRvci1pc3N1ZS1jb3VudFwiLFwiZGF0YS1oYXMtaXNzdWVzXCI6YSxjaGlsZHJlbjpbdCxvXX0pLHJbMV09byxyWzJdPWEsclszXT1uKTpuPXJbM10sbn1mdW5jdGlvbiBvTCgpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiIzY2NlwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNS41MDAxMSAxLjkzOTQ1TDYuMDMwNDQgMi40Njk3OEwxMC44NTM3IDcuMjkzQzExLjI0NDIgNy42ODM1MyAxMS4yNDQyIDguMzE2NjkgMTAuODUzNyA4LjcwNzIyTDYuMDMwNDQgMTMuNTMwNEw1LjUwMDExIDE0LjA2MDhMNC40Mzk0NSAxMy4wMDAxTDQuOTY5NzggMTIuNDY5OEw5LjQzOTQ1IDguMDAwMTFMNC45Njk3OCAzLjUzMDQ0TDQuNDM5NDUgMy4wMDAxMUw1LjUwMDExIDEuOTM5NDVaXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gb04oZSl7dmFyIHQsbj1lLmluZGV4LHI9ZS5tZW51UmVmLG89ZS5zZXRTZWxlY3RlZEluZGV4O2lmKFwiZmlyc3RcIj09PW4pcmV0dXJuIHZvaWQgc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLHQ9bnVsbD09KGU9ci5jdXJyZW50KT92b2lkIDA6ZS5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT1cIm1lbnVpdGVtXCJdJyk7dCYmb04oe2luZGV4Ok51bWJlcih0WzBdLmdldEF0dHJpYnV0ZShcImRhdGEtaW5kZXhcIikpLG1lbnVSZWY6cixzZXRTZWxlY3RlZEluZGV4Om99KX0pO2lmKFwibGFzdFwiPT09bilyZXR1cm4gdm9pZCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGUsdD1udWxsPT0oZT1yLmN1cnJlbnQpP3ZvaWQgMDplLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPVwibWVudWl0ZW1cIl0nKTt0JiZvTih7aW5kZXg6dC5sZW5ndGgtMSxtZW51UmVmOnIsc2V0U2VsZWN0ZWRJbmRleDpvfSl9KTt2YXIgYT1udWxsPT0odD1yLmN1cnJlbnQpP3ZvaWQgMDp0LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWluZGV4PVwiJy5jb25jYXQobiwnXCJdJykpO2EmJihvKG4pLG51bGw9PWF8fGEuZm9jdXMoKSl9ZnVuY3Rpb24gb1IoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBvTT0oMCx3LmNyZWF0ZUNvbnRleHQpKG51bGwpLG9aPWZ1bmN0aW9uKGUpe3ZhciB0PS45NSp3aW5kb3cuaW5uZXJXaWR0aCxuPS45NSp3aW5kb3cuaW5uZXJIZWlnaHQ7cmV0dXJue3dpZHRoOk1hdGgubWluKHQsTWF0aC5tYXgoZS5taW5XaWR0aCxlLndpZHRoKSksaGVpZ2h0Ok1hdGgubWluKG4sTWF0aC5tYXgoZS5taW5IZWlnaHQsZS5oZWlnaHQpKX19LG9VPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaSxsLHM9ZS52YWx1ZSxjPWUuY2hpbGRyZW4sdT1udWxsIT0oYT1zLm1pbldpZHRoKT9hOjEwMCxkPW51bGwhPShpPXMubWluSGVpZ2h0KT9pOjgwLGY9cy5tYXhXaWR0aCxwPXMubWF4SGVpZ2h0LGg9KHQ9KDAsdy51c2VTdGF0ZSkobnVsbCksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9SKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG9SKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxtPWhbMF0sZz1oWzFdLHk9bnVsbCE9KGw9cy5zdG9yYWdlS2V5KT9sOmV0LHY9KDAsdy51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtpZihzLnJlc2l6ZVJlZi5jdXJyZW50JiZudWxsPT09bSl7dmFyIGU9cy5kZXZUb29sc1BhbmVsU2l6ZVt5XTtpZihlKXt2YXIgdCxuLHI9b1ooKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7fSxlKSxuPW49e21pbldpZHRoOm51bGwhPXU/dToxMDAsbWluSGVpZ2h0Om51bGwhPWQ/ZDo4MH0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksbz1yLmhlaWdodCxhPXIud2lkdGg7cmV0dXJuIHMucmVzaXplUmVmLmN1cnJlbnQuc3R5bGUud2lkdGg9XCJcIi5jb25jYXQoYSxcInB4XCIpLHMucmVzaXplUmVmLmN1cnJlbnQuc3R5bGUuaGVpZ2h0PVwiXCIuY29uY2F0KG8sXCJweFwiKSwhMH19fSxbcy5yZXNpemVSZWYsbSx5LHUsZCxzLmRldlRvb2xzUGFuZWxTaXplXSk7cmV0dXJuKDAsdy51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU7aWYoIXYoKSYmcy5yZXNpemVSZWYuY3VycmVudCYmKG51bGw9PShlPXMuaW5pdGlhbFNpemUpP3ZvaWQgMDplLmhlaWdodCkmJnMuaW5pdGlhbFNpemUud2lkdGgpe3ZhciB0PW9aKHtoZWlnaHQ6cy5pbml0aWFsU2l6ZS5oZWlnaHQsd2lkdGg6cy5pbml0aWFsU2l6ZS53aWR0aCxtaW5XaWR0aDpudWxsIT11P3U6MTAwLG1pbkhlaWdodDpudWxsIT1kP2Q6ODB9KSxuPXQuaGVpZ2h0LHI9dC53aWR0aDtzLnJlc2l6ZVJlZi5jdXJyZW50LnN0eWxlLndpZHRoPVwiXCIuY29uY2F0KHIsXCJweFwiKSxzLnJlc2l6ZVJlZi5jdXJyZW50LnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChuLFwicHhcIil9fSxbXSksKDAsdy51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdiksZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix2KX19LFt2LG51bGw9PShyPXMuaW5pdGlhbFNpemUpP3ZvaWQgMDpyLmhlaWdodCxudWxsPT0obz1zLmluaXRpYWxTaXplKT92b2lkIDA6by53aWR0aCxzLnJlc2l6ZVJlZl0pLCgwLEEuanN4KShvTS5Qcm92aWRlcix7dmFsdWU6e3Jlc2l6ZVJlZjpzLnJlc2l6ZVJlZixtaW5XaWR0aDp1LG1pbkhlaWdodDpkLG1heFdpZHRoOmYsbWF4SGVpZ2h0OnAsZHJhZ2dpbmdEaXJlY3Rpb246bSxzZXREcmFnZ2luZ0RpcmVjdGlvbjpnLHN0b3JhZ2VLZXk6eX0sY2hpbGRyZW46Y30pfSxvRj1mdW5jdGlvbigpe3ZhciBlPSgwLHcudXNlQ29udGV4dCkob00pO2lmKCFlKXRocm93IEVycm9yKFwidXNlUmVzaXplIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBSZXNpemUgcHJvdmlkZXJcIik7cmV0dXJuIGV9LG9xPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9kZXZ0b29scy1wYW5lbC9yZXNpemUvcmVzaXplLWhhbmRsZS5jc3NcIiksb0g9e307ZnVuY3Rpb24gb1YoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfW9ILnN0eWxlVGFnVHJhbnNmb3JtPW0oKSxvSC5zZXRBdHRyaWJ1dGVzPWQoKSxvSC5pbnNlcnQ9YygpLG9ILmRvbUFQST1sKCksb0guaW5zZXJ0U3R5bGVFbGVtZW50PXAoKSxhKCkob3EuWixvSCksb3EuWiYmb3EuWi5sb2NhbHMmJm9xLloubG9jYWxzO3ZhciBvJD1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkPSgwLHguYykoMzIpLGY9ZS5kaXJlY3Rpb24scD1lLnBvc2l0aW9uLGg9b0YoKSxtPWgucmVzaXplUmVmLGc9aC5taW5XaWR0aCx5PWgubWluSGVpZ2h0LHY9aC5tYXhXaWR0aCxiPWgubWF4SGVpZ2h0LEM9aC5zdG9yYWdlS2V5LF89aC5kcmFnZ2luZ0RpcmVjdGlvbixrPWguc2V0RHJhZ2dpbmdEaXJlY3Rpb247ZFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPXt0b3A6MCxyaWdodDowLGJvdHRvbTowLGxlZnQ6MH0sZFswXT1yKTpyPWRbMF07dmFyIEU9KHQ9KDAsdy51c2VTdGF0ZSkociksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9WKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG9WKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxqPUVbMF0sUz1FWzFdO2RbMV0hPT1tLmN1cnJlbnQ/KG89ZnVuY3Rpb24oKXtpZihtLmN1cnJlbnQpe3ZhciBlPW0uY3VycmVudCx0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpO1Moe3RvcDpwYXJzZUZsb2F0KHQuYm9yZGVyVG9wV2lkdGgpfHwwLHJpZ2h0OnBhcnNlRmxvYXQodC5ib3JkZXJSaWdodFdpZHRoKXx8MCxib3R0b206cGFyc2VGbG9hdCh0LmJvcmRlckJvdHRvbVdpZHRoKXx8MCxsZWZ0OnBhcnNlRmxvYXQodC5ib3JkZXJMZWZ0V2lkdGgpfHwwfSl9fSxkWzFdPW0uY3VycmVudCxkWzJdPW8pOm89ZFsyXSxkWzNdIT09bT8oYT1bbV0sZFszXT1tLGRbNF09YSk6YT1kWzRdLCgwLHcudXNlTGF5b3V0RWZmZWN0KShvLGEpLGRbNV0hPT1mfHxkWzZdIT09Ynx8ZFs3XSE9PXZ8fGRbOF0hPT15fHxkWzldIT09Z3x8ZFsxMF0hPT1tLmN1cnJlbnR8fGRbMTFdIT09a3x8ZFsxMl0hPT1DPyhpPWZ1bmN0aW9uKGUpe2lmKGUucHJldmVudERlZmF1bHQoKSxtLmN1cnJlbnQpe2soZik7dmFyIHQ9bS5jdXJyZW50LG49dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPWUuY2xpZW50WCxvPWUuY2xpZW50WSxhPWZ1bmN0aW9uKGUpe3ZhciBhPW9XKGYsZS5jbGllbnRYLXIsZS5jbGllbnRZLW8sbixnLHksdixiKSxpPWEubmV3V2lkdGgsbD1hLm5ld0hlaWdodDt2b2lkIDAhPT1pJiYodC5zdHlsZS53aWR0aD1cIlwiLmNvbmNhdChpLFwicHhcIikpLHZvaWQgMCE9PWwmJih0LnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChsLFwicHhcIikpfSxpPWZ1bmN0aW9uKCl7aWYoayhudWxsKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsYSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixpKSxtLmN1cnJlbnQpe3ZhciBlLHQsbixyPW0uY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXIud2lkdGgsbD1yLmhlaWdodDtydyh7ZGV2VG9vbHNQYW5lbFNpemU6KGU9e30sdD1DLG49e3dpZHRoOm8saGVpZ2h0Omx9LHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGUpfSl9fTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsYSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixpKX19LGRbNV09ZixkWzZdPWIsZFs3XT12LGRbOF09eSxkWzldPWcsZFsxMF09bS5jdXJyZW50LGRbMTFdPWssZFsxMl09QyxkWzEzXT1pKTppPWRbMTNdO3ZhciBPPWk7aWYoISghcC5zcGxpdChcIi1cIikuaW5jbHVkZXMoZikmJighZi5pbmNsdWRlcyhcIi1cIil8fGY9PT1vWShwKSkpKXJldHVybiBudWxsO3ZhciBCPWoubGVmdCtqLnJpZ2h0LFA9ai50b3Arai5ib3R0b207ZFsxNF0hPT1mPyhsPWYuaW5jbHVkZXMoXCItXCIpLGRbMTRdPWYsZFsxNV09bCk6bD1kWzE1XTt2YXIgST1sLFQ9XCJyZXNpemUtY29udGFpbmVyIFwiLmNvbmNhdChmLFwiIFwiKS5jb25jYXQoXyYmXyE9PWY/XCJuby1ob3ZlclwiOlwiXCIpO3JldHVybiBkWzE2XSE9PU98fGRbMTddIT09VD8ocz0oMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlQsb25Nb3VzZURvd246T30pLGRbMTZdPU8sZFsxN109VCxkWzE4XT1zKTpzPWRbMThdLGRbMTldIT09ai5ib3R0b218fGRbMjBdIT09ai5sZWZ0fHxkWzIxXSE9PWoucmlnaHR8fGRbMjJdIT09ai50b3B8fGRbMjNdIT09Znx8ZFsyNF0hPT1ffHxkWzI1XSE9PUl8fGRbMjZdIT09Qnx8ZFsyN10hPT1QPyhjPSFJJiYoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicmVzaXplLWxpbmUgXCIuY29uY2F0KGYsXCIgXCIpLmNvbmNhdChfPT09Zj9cImRyYWdnaW5nXCI6XCJcIiksc3R5bGU6e1wiLS1ib3JkZXItaG9yaXpvbnRhbFwiOlwiXCIuY29uY2F0KEIsXCJweFwiKSxcIi0tYm9yZGVyLXZlcnRpY2FsXCI6XCJcIi5jb25jYXQoUCxcInB4XCIpLFwiLS1ib3JkZXItdG9wXCI6XCJcIi5jb25jYXQoai50b3AsXCJweFwiKSxcIi0tYm9yZGVyLXJpZ2h0XCI6XCJcIi5jb25jYXQoai5yaWdodCxcInB4XCIpLFwiLS1ib3JkZXItYm90dG9tXCI6XCJcIi5jb25jYXQoai5ib3R0b20sXCJweFwiKSxcIi0tYm9yZGVyLWxlZnRcIjpcIlwiLmNvbmNhdChqLmxlZnQsXCJweFwiKX19KSxkWzE5XT1qLmJvdHRvbSxkWzIwXT1qLmxlZnQsZFsyMV09ai5yaWdodCxkWzIyXT1qLnRvcCxkWzIzXT1mLGRbMjRdPV8sZFsyNV09SSxkWzI2XT1CLGRbMjddPVAsZFsyOF09Yyk6Yz1kWzI4XSxkWzI5XSE9PXN8fGRbMzBdIT09Yz8odT0oMCxBLmpzeHMpKEEuRnJhZ21lbnQse2NoaWxkcmVuOltzLGNdfSksZFsyOV09cyxkWzMwXT1jLGRbMzFdPXUpOnU9ZFszMV0sdX0sb1c9ZnVuY3Rpb24oZSx0LG4scixvLGEsaSxsKXt2YXIgcz1udWxsIT1pP2k6Ljk1KndpbmRvdy5pbm5lcldpZHRoLGM9bnVsbCE9bD9sOi45NSp3aW5kb3cuaW5uZXJIZWlnaHQ7c3dpdGNoKGUpe2Nhc2VcInJpZ2h0XCI6cmV0dXJue25ld1dpZHRoOk1hdGgubWluKHMsTWF0aC5tYXgobyxyLndpZHRoK3QpKSxuZXdIZWlnaHQ6ci5oZWlnaHR9O2Nhc2VcImxlZnRcIjpyZXR1cm57bmV3V2lkdGg6TWF0aC5taW4ocyxNYXRoLm1heChvLHIud2lkdGgtdCkpLG5ld0hlaWdodDpyLmhlaWdodH07Y2FzZVwiYm90dG9tXCI6cmV0dXJue25ld1dpZHRoOnIud2lkdGgsbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgoYSxyLmhlaWdodCtuKSl9O2Nhc2VcInRvcFwiOnJldHVybntuZXdXaWR0aDpyLndpZHRoLG5ld0hlaWdodDpNYXRoLm1pbihjLE1hdGgubWF4KGEsci5oZWlnaHQtbikpfTtjYXNlXCJ0b3AtbGVmdFwiOnJldHVybntuZXdXaWR0aDpNYXRoLm1pbihzLE1hdGgubWF4KG8sci53aWR0aC10KSksbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgoYSxyLmhlaWdodC1uKSl9O2Nhc2VcInRvcC1yaWdodFwiOnJldHVybntuZXdXaWR0aDpNYXRoLm1pbihzLE1hdGgubWF4KG8sci53aWR0aCt0KSksbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgoYSxyLmhlaWdodC1uKSl9O2Nhc2VcImJvdHRvbS1sZWZ0XCI6cmV0dXJue25ld1dpZHRoOk1hdGgubWluKHMsTWF0aC5tYXgobyxyLndpZHRoLXQpKSxuZXdIZWlnaHQ6TWF0aC5taW4oYyxNYXRoLm1heChhLHIuaGVpZ2h0K24pKX07Y2FzZVwiYm90dG9tLXJpZ2h0XCI6cmV0dXJue25ld1dpZHRoOk1hdGgubWluKHMsTWF0aC5tYXgobyxyLndpZHRoK3QpKSxuZXdIZWlnaHQ6TWF0aC5taW4oYyxNYXRoLm1heChhLHIuaGVpZ2h0K24pKX07ZGVmYXVsdDpyZXR1cm4gbnVsbH19O2Z1bmN0aW9uIG9ZKGUpe3N3aXRjaChlKXtjYXNlXCJ0b3AtbGVmdFwiOnJldHVyblwiYm90dG9tLXJpZ2h0XCI7Y2FzZVwidG9wLXJpZ2h0XCI6cmV0dXJuXCJib3R0b20tbGVmdFwiO2Nhc2VcImJvdHRvbS1sZWZ0XCI6cmV0dXJuXCJ0b3AtcmlnaHRcIjtjYXNlXCJib3R0b20tcmlnaHRcIjpyZXR1cm5cInRvcC1sZWZ0XCI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIG9LPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvcGFuZWwvZHluYW1pYy1wYW5lbC5jc3NcIiksb1g9e307ZnVuY3Rpb24gb0coZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIG9RKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBvSihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7b1EoZSx0LG5bdF0pfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbzAoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9HKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG9HKGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG8xKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpcIndpZHRoXCI7aWYoXCJudW1iZXJcIj09dHlwZW9mIGUpcmV0dXJuIGU7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtuLnN0eWxlLnBvc2l0aW9uPVwiYWJzb2x1dGVcIixuLnN0eWxlLnZpc2liaWxpdHk9XCJoaWRkZW5cIixcIndpZHRoXCI9PT10P24uc3R5bGUud2lkdGg9ZTpuLnN0eWxlLmhlaWdodD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobik7dmFyIHI9XCJ3aWR0aFwiPT09dD9uLm9mZnNldFdpZHRoOm4ub2Zmc2V0SGVpZ2h0O3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG4pLHJ9ZnVuY3Rpb24gbzIoZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaCxtLGc9ZS5oZWFkZXIseT1lLmNoaWxkcmVuLHY9ZS5kcmFnZ2FibGUsYj12b2lkIDAhPT12JiZ2LEM9ZS5zaXplQ29uZmlnLF89dm9pZCAwPT09Qz97a2luZDpcInJlc2l6YWJsZVwiLG1pbldpZHRoOjQwMCxtaW5IZWlnaHQ6MzUwLG1heFdpZHRoOjFlMyxtYXhIZWlnaHQ6MWUzLGluaXRpYWxTaXplOntoZWlnaHQ6NDAwLHdpZHRoOjUwMH19OkMsaz1lLmNsb3NlT25DbGlja091dHNpZGUsRT12b2lkIDAhPT1rJiZrLGo9ZS5zaGFyZVBhbmVsU2l6ZUdsb2JhbGx5LFM9ZS5zaGFyZVBhbmVsUG9zaXRpb25HbG9iYWxseSxPPWUuY29udGFpbmVyUHJvcHMsQj1yNSgpLnNldFBhbmVsLFA9dVEoKSxJPVAubmFtZSxUPVAubW91bnRlZCx6PXZvaWQgMD09PWp8fGo/ZXQ6XCJcIi5jb25jYXQoZWUsXCJfXCIpLmNvbmNhdChJKSxEPXZvaWQgMD09PVN8fFM/ZW46XCJcIi5jb25jYXQoSixcIl9cIikuY29uY2F0KEkpLEw9ZGwoKSxOPUwuZGlzcGF0Y2gsUj1MLnN0YXRlLE09bnVsbCE9KGg9Ui5kZXZUb29sc1BhbmVsUG9zaXRpb25bRF0pP2g6Ui5kZXZUb29sc1Bvc2l0aW9uLFo9bzAoTS5zcGxpdChcIi1cIiwyKSwyKSxVPVpbMF0sRj1aWzFdLHE9KDAsdy51c2VSZWYpKG51bGwpO25lKHEscjUoKS50cmlnZ2VyUmVmLFQsZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2VcImVzY2FwZVwiOnJldHVybiB2b2lkIEIoXCJwYW5lbC1zZWxlY3RvclwiKTtjYXNlXCJvdXRzaWRlXCI6RSYmQihcInBhbmVsLXNlbGVjdG9yXCIpO3JldHVybjtkZWZhdWx0OnJldHVybiBudWxsfX0pO3ZhciBIPXIzKFIpLFY9bzAoUi5kZXZUb29sc1Bvc2l0aW9uLnNwbGl0KFwiLVwiLDIpLDIpLCQ9VlswXSxXPVZbMV0sWT1VPT09JCYmRj09PVc/SDpvdyxLPShvUShtPXt9LFUsXCJcIi5jb25jYXQoWSxcInB4XCIpKSxvUShtLEYsXCJcIi5jb25jYXQob3csXCJweFwiKSksb1EobSxcInRvcFwiPT09VT9cImJvdHRvbVwiOlwidG9wXCIsXCJhdXRvXCIpLG9RKG0sXCJsZWZ0XCI9PT1GP1wicmlnaHRcIjpcImxlZnRcIixcImF1dG9cIiksbSksRz1cInJlc2l6YWJsZVwiPT09Xy5raW5kLFE9KHQ9Rz9fLm1pbldpZHRoOnZvaWQgMCxuPUc/Xy5taW5IZWlnaHQ6dm9pZCAwLHI9Rz9fLm1heFdpZHRoOnZvaWQgMCxvPUc/Xy5tYXhIZWlnaHQ6dm9pZCAwLChzPSgwLHguYykoMTEpKVswXSE9PW98fHNbMV0hPT1yfHxzWzJdIT09bnx8c1szXSE9PXQ/KGE9ZnVuY3Rpb24oKXtyZXR1cm57bWluV2lkdGg6dD9vMSh0LFwid2lkdGhcIik6dm9pZCAwLG1pbkhlaWdodDpuP28xKG4sXCJoZWlnaHRcIik6dm9pZCAwLG1heFdpZHRoOnI/bzEocixcIndpZHRoXCIpOnZvaWQgMCxtYXhIZWlnaHQ6bz9vMShvLFwiaGVpZ2h0XCIpOnZvaWQgMH19LHNbMF09byxzWzFdPXIsc1syXT1uLHNbM109dCxzWzRdPWEpOmE9c1s0XSx1PShjPW8wKCgwLHcudXNlU3RhdGUpKGEpLDIpKVswXSxkPWNbMV0sc1s1XSE9PW98fHNbNl0hPT1yfHxzWzddIT09bnx8c1s4XSE9PXQ/KGk9ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbigpe2Qoe21pbldpZHRoOnQ/bzEodCxcIndpZHRoXCIpOnZvaWQgMCxtaW5IZWlnaHQ6bj9vMShuLFwiaGVpZ2h0XCIpOnZvaWQgMCxtYXhXaWR0aDpyP28xKHIsXCJ3aWR0aFwiKTp2b2lkIDAsbWF4SGVpZ2h0Om8/bzEobyxcImhlaWdodFwiKTp2b2lkIDB9KX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZSksZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixlKX19LGw9W3QsbixyLG9dLHNbNV09byxzWzZdPXIsc1s3XT1uLHNbOF09dCxzWzldPWksc1sxMF09bCk6KGk9c1s5XSxsPXNbMTBdKSwoMCx3LnVzZUVmZmVjdCkoaSxsKSx1KSxlcj1RLm1pbldpZHRoLGVvPVEubWluSGVpZ2h0LGVhPVEubWF4V2lkdGgsZWk9US5tYXhIZWlnaHQsZWw9ST9cIlwiLmNvbmNhdChlZSxcIl9cIikuY29uY2F0KEkpOmV0LGVzPVIuZGV2VG9vbHNQYW5lbFNpemVbZWxdO3JldHVybigwLEEuanN4KShvVSx7dmFsdWU6e3Jlc2l6ZVJlZjpxLGluaXRpYWxTaXplOlwicmVzaXphYmxlXCI9PT1fLmtpbmQ/Xy5pbml0aWFsU2l6ZTpfLG1pbldpZHRoOmVyLG1pbkhlaWdodDplbyxtYXhXaWR0aDplYSxtYXhIZWlnaHQ6ZWksZGV2VG9vbHNQb3NpdGlvbjpSLmRldlRvb2xzUG9zaXRpb24sZGV2VG9vbHNQYW5lbFNpemU6Ui5kZXZUb29sc1BhbmVsU2l6ZSxzdG9yYWdlS2V5Onp9LGNoaWxkcmVuOigwLEEuanN4KShcImRpdlwiLHt0YWJJbmRleDotMSxyZWY6cSxjbGFzc05hbWU6XCJkeW5hbWljLXBhbmVsLWNvbnRhaW5lclwiLHN0eWxlOm9KKHtcIi0tcGFuZWwtdG9wXCI6Sy50b3AsXCItLXBhbmVsLWJvdHRvbVwiOksuYm90dG9tLFwiLS1wYW5lbC1sZWZ0XCI6Sy5sZWZ0LFwiLS1wYW5lbC1yaWdodFwiOksucmlnaHR9LEc/e1wiLS1wYW5lbC1taW4td2lkdGhcIjplcj9cIlwiLmNvbmNhdChlcixcInB4XCIpOnZvaWQgMCxcIi0tcGFuZWwtbWluLWhlaWdodFwiOmVvP1wiXCIuY29uY2F0KGVvLFwicHhcIik6dm9pZCAwLFwiLS1wYW5lbC1tYXgtd2lkdGhcIjplYT9cIlwiLmNvbmNhdChlYSxcInB4XCIpOnZvaWQgMCxcIi0tcGFuZWwtbWF4LWhlaWdodFwiOmVpP1wiXCIuY29uY2F0KGVpLFwicHhcIik6dm9pZCAwfTp7XCItLXBhbmVsLWhlaWdodFwiOlwiXCIuY29uY2F0KGVzP2VzLmhlaWdodDpfLmhlaWdodCxcInB4XCIpLFwiLS1wYW5lbC13aWR0aFwiOlwiXCIuY29uY2F0KGVzP2VzLndpZHRoOl8ud2lkdGgsXCJweFwiKX0pLGNoaWxkcmVuOigwLEEuanN4KShvcyx7ZGlzYWJsZWQ6IWIsY2hpbGRyZW46KDAsQS5qc3gpKG95LHtkcmFnSGFuZGxlU2VsZWN0b3I6XCIucmVzaXplLWNvbnRhaW5lclwiLGF2b2lkWm9uZTp7Y29ybmVyOlIuZGV2VG9vbHNQb3NpdGlvbixzcXVhcmU6MjUvUi5zY2FsZSxwYWRkaW5nOm93fSxwYWRkaW5nOm93LHBvc2l0aW9uOk0sc2V0UG9zaXRpb246ZnVuY3Rpb24oZSl7Tih7dHlwZTpYLGRldlRvb2xzUGFuZWxQb3NpdGlvbjplLGtleTpEfSksXCJyZXNpemFibGVcIj09PV8ua2luZCYmcncoe2RldlRvb2xzUGFuZWxQb3NpdGlvbjpvUSh7fSxELGUpfSl9LHN0eWxlOntvdmVyZmxvdzpcImF1dG9cIix3aWR0aDpcIjEwMCVcIixoZWlnaHQ6XCIxMDAlXCJ9LGRpc2FibGVEcmFnOiFiLGNoaWxkcmVuOigwLEEuanN4cykoQS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLEEuanN4cykoXCJkaXZcIiwoZj1vSih7fSxPKSxwPXA9e2NsYXNzTmFtZTpcInBhbmVsLWNvbnRlbnQtY29udGFpbmVyIFwiLmNvbmNhdCgobnVsbD09Tz92b2lkIDA6Ty5jbGFzc05hbWUpfHxcIlwiKSxzdHlsZTpvSih7fSxudWxsPT1PP3ZvaWQgMDpPLnN0eWxlKSxjaGlsZHJlbjpbKDAsQS5qc3gpKG91LHtjaGlsZHJlbjpnfSksKDAsQS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtc2Nyb2xsYWJsZS1jb250ZW50XCI6ITAsY2xhc3NOYW1lOlwiZHJhZ2dhYmxlLWNvbnRlbnRcIixjaGlsZHJlbjp5fSldfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhmLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHApKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHApKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShmLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLGUpKX0pLGYpKSxHJiYoMCxBLmpzeHMpKEEuRnJhZ21lbnQse2NoaWxkcmVuOlsoIV8uc2lkZXN8fF8uc2lkZXMuaW5jbHVkZXMoXCJ2ZXJ0aWNhbFwiKSkmJigwLEEuanN4cykoQS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLEEuanN4KShvJCx7cG9zaXRpb246TSxkaXJlY3Rpb246XCJ0b3BcIn0pLCgwLEEuanN4KShvJCx7cG9zaXRpb246TSxkaXJlY3Rpb246XCJib3R0b21cIn0pXX0pLCghXy5zaWRlc3x8Xy5zaWRlcy5pbmNsdWRlcyhcImhvcml6b250YWxcIikpJiYoMCxBLmpzeHMpKEEuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxBLmpzeCkobyQse3Bvc2l0aW9uOk0sZGlyZWN0aW9uOlwicmlnaHRcIn0pLCgwLEEuanN4KShvJCx7cG9zaXRpb246TSxkaXJlY3Rpb246XCJsZWZ0XCJ9KV19KSwoIV8uc2lkZXN8fF8uc2lkZXMuaW5jbHVkZXMoXCJkaWFnb25hbFwiKSkmJigwLEEuanN4cykoQS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLEEuanN4KShvJCx7cG9zaXRpb246TSxkaXJlY3Rpb246XCJ0b3AtbGVmdFwifSksKDAsQS5qc3gpKG8kLHtwb3NpdGlvbjpNLGRpcmVjdGlvbjpcInRvcC1yaWdodFwifSksKDAsQS5qc3gpKG8kLHtwb3NpdGlvbjpNLGRpcmVjdGlvbjpcImJvdHRvbS1sZWZ0XCJ9KSwoMCxBLmpzeCkobyQse3Bvc2l0aW9uOk0sZGlyZWN0aW9uOlwiYm90dG9tLXJpZ2h0XCJ9KV19KV19KV19KX0pfSl9KX0pfW9YLnN0eWxlVGFnVHJhbnNmb3JtPW0oKSxvWC5zZXRBdHRyaWJ1dGVzPWQoKSxvWC5pbnNlcnQ9YygpLG9YLmRvbUFQST1sKCksb1guaW5zZXJ0U3R5bGVFbGVtZW50PXAoKSxhKCkob0suWixvWCksb0suWiYmb0suWi5sb2NhbHMmJm9LLloubG9jYWxzO3ZhciBvND1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIiksbzU9e307ZnVuY3Rpb24gbzMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfW81LnN0eWxlVGFnVHJhbnNmb3JtPW0oKSxvNS5zZXRBdHRyaWJ1dGVzPWQoKSxvNS5pbnNlcnQ9YygpLG81LmRvbUFQST1sKCksbzUuaW5zZXJ0U3R5bGVFbGVtZW50PXAoKSxhKCkobzQuWixvNSksbzQuWiYmbzQuWi5sb2NhbHMmJm80LloubG9jYWxzO3ZhciBvNj1uZXcgU2V0LG85PXtzdWJzY3JpYmU6ZnVuY3Rpb24oZSl7cmV0dXJuIG82LmFkZChlKSxmdW5jdGlvbigpe3JldHVybiBvNi5kZWxldGUoZSl9fSxnZXRTbmFwc2hvdDpmdW5jdGlvbigpe3JldHVybiBhdC5nZXRSb290KCl9LGdldFNlcnZlclNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIGF0LmdldFJvb3QoKX19LG84PW85LnN1YnNjcmliZSxvNz1vOS5nZXRTbmFwc2hvdCxhZT1vOS5nZXRTZXJ2ZXJTbmFwc2hvdCxhdD1mdW5jdGlvbihlKXt2YXIgdD1lLmdldENoYXJhY3RlcnMsbj12b2lkIDA9PT10P2Z1bmN0aW9uKGUpe3JldHVybltlXX06dCxyPWUuY29tcGFyZSxvPXZvaWQgMD09PXI/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXR9OnIsYT17dmFsdWU6dm9pZCAwLGNoaWxkcmVuOnt9fTtmdW5jdGlvbiBpKCl7dmFyIGU9ITAsdD0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciByLG89bzZbU3ltYm9sLml0ZXJhdG9yXSgpOyEoZT0ocj1vLm5leHQoKSkuZG9uZSk7ZT0hMCkoMCxyLnZhbHVlKSgpfWNhdGNoKGUpe3Q9ITAsbj1lfWZpbmFsbHl7dHJ5e2V8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYodCl0aHJvdyBufX19cmV0dXJue2luc2VydDpmdW5jdGlvbihlKXt2YXIgdD1hLHI9bihlKSxvPSEwLGw9ITEscz12b2lkIDA7dHJ5e2Zvcih2YXIgYyx1PXJbU3ltYm9sLml0ZXJhdG9yXSgpOyEobz0oYz11Lm5leHQoKSkuZG9uZSk7bz0hMCl7dmFyIGQ9Yy52YWx1ZTt0LmNoaWxkcmVuW2RdfHwodC5jaGlsZHJlbltkXT17dmFsdWU6dm9pZCAwLGNoaWxkcmVuOnt9fSksdD10LmNoaWxkcmVuW2RdfX1jYXRjaChlKXtsPSEwLHM9ZX1maW5hbGx5e3RyeXtvfHxudWxsPT11LnJldHVybnx8dS5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgc319dC52YWx1ZT1lLGE9bzMoe30sYSksaSgpfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9YSxyPW4oZSksbD1bXSxzPSEwLGM9ITAsdT0hMSxkPXZvaWQgMDt0cnl7Zm9yKHZhciBmLHA9cltTeW1ib2wuaXRlcmF0b3JdKCk7IShjPShmPXAubmV4dCgpKS5kb25lKTtjPSEwKXt2YXIgaD1mLnZhbHVlO2lmKCF0LmNoaWxkcmVuW2hdKXtzPSExO2JyZWFrfWwucHVzaCh0KSx0PXQuY2hpbGRyZW5baF19fWNhdGNoKGUpe3U9ITAsZD1lfWZpbmFsbHl7dHJ5e2N8fG51bGw9PXAucmV0dXJufHxwLnJldHVybigpfWZpbmFsbHl7aWYodSl0aHJvdyBkfX1pZihzJiZvKHQudmFsdWUsZSkpe3QudmFsdWU9dm9pZCAwO2Zvcih2YXIgbT1sLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgZz1sW21dLHk9clttXTswPT09T2JqZWN0LmtleXMoZy5jaGlsZHJlblt5XS5jaGlsZHJlbikubGVuZ3RoJiZkZWxldGUgZy5jaGlsZHJlblt5XX1hPW8zKHt9LGEpLGkoKX19LGdldFJvb3Q6ZnVuY3Rpb24oKXtyZXR1cm4gYX19fSh7Y29tcGFyZTpmdW5jdGlvbihlLHQpe3JldHVybiEhZSYmISF0JiZlLnBhZ2VQYXRoPT09dC5wYWdlUGF0aCYmZS50eXBlPT09dC50eXBlJiZlLmJvdW5kYXJ5VHlwZT09PXQuYm91bmRhcnlUeXBlfSxnZXRDaGFyYWN0ZXJzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnBhZ2VQYXRoLnNwbGl0KFwiL1wiKX19KSxhbj1hdC5pbnNlcnQsYXI9YXQucmVtb3ZlLGFvPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9vdmVydmlldy9zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIuY3NzXCIpLGFhPXt9O2FhLnN0eWxlVGFnVHJhbnNmb3JtPW0oKSxhYS5zZXRBdHRyaWJ1dGVzPWQoKSxhYS5pbnNlcnQ9YygpLGFhLmRvbUFQST1sKCksYWEuaW5zZXJ0U3R5bGVFbGVtZW50PXAoKSxhKCkoYW8uWixhYSksYW8uWiYmYW8uWi5sb2NhbHMmJmFvLloubG9jYWxzO2xldCBhaT17fTtmdW5jdGlvbiBhbChlLHQpe2xldCBuPXcudXNlUmVmKGFpKTtyZXR1cm4gbi5jdXJyZW50PT09YWkmJihuLmN1cnJlbnQ9ZSh0KSksbn1sZXQgYXM9W107ZnVuY3Rpb24gYWMoZSl7dy51c2VFZmZlY3QoZSxhcyl9Y2xhc3MgYXV7c3RhdGljIGNyZWF0ZSgpe3JldHVybiBuZXcgYXV9Y3VycmVudElkPTA7c3RhcnQoZSx0KXt0aGlzLmNsZWFyKCksdGhpcy5jdXJyZW50SWQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY3VycmVudElkPTAsdCgpfSxlKX1pc1N0YXJ0ZWQoKXtyZXR1cm4gMCE9PXRoaXMuY3VycmVudElkfWNsZWFyPSgpPT57MCE9PXRoaXMuY3VycmVudElkJiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudElkKSx0aGlzLmN1cnJlbnRJZD0wKX07ZGlzcG9zZUVmZmVjdD0oKT0+dGhpcy5jbGVhcn1mdW5jdGlvbiBhZCgpe2xldCBlPWFsKGF1LmNyZWF0ZSkuY3VycmVudDtyZXR1cm4gYWMoZS5kaXNwb3NlRWZmZWN0KSxlfWxldCBhZj1DW2B1c2VJbnNlcnRpb25FZmZlY3Qke01hdGgucmFuZG9tKCkudG9GaXhlZCgxKX1gLnNsaWNlKDAsLTMpXSxhcD1hZiYmYWYhPT13LnVzZUxheW91dEVmZmVjdD9hZjplPT5lKCk7ZnVuY3Rpb24gYWgoZSl7bGV0IHQ9YWwoYW0pLmN1cnJlbnQ7cmV0dXJuIHQubmV4dD1lLGFwKHQuZWZmZWN0KSx0LnRyYW1wb2xpbmV9ZnVuY3Rpb24gYW0oKXtsZXQgZT17bmV4dDp2b2lkIDAsY2FsbGJhY2s6YWcsdHJhbXBvbGluZTooLi4udCk9PmUuY2FsbGJhY2s/LiguLi50KSxlZmZlY3Q6KCk9PntlLmNhbGxiYWNrPWUubmV4dH19O3JldHVybiBlfWZ1bmN0aW9uIGFnKCl7fWZ1bmN0aW9uIGF5KHtjb250cm9sbGVkOmUsZGVmYXVsdDp0LG5hbWU6bixzdGF0ZTpyPVwidmFsdWVcIn0pe2xldHtjdXJyZW50Om99PXcudXNlUmVmKHZvaWQgMCE9PWUpLFthLGldPXcudXNlU3RhdGUodCksbD13LnVzZUNhbGxiYWNrKGU9PntvfHxpKGUpfSxbXSk7cmV0dXJuW28/ZTphLGxdfWxldCBhdj17Li4uQ30sYWI9MCxhQT1hdi51c2VJZDtmdW5jdGlvbiBheChlLHQpe2lmKHZvaWQgMCE9PWFBKXtsZXQgbj1hQSgpO3JldHVybiBlPz8odD9gJHt0fS0ke259YDpuKX1yZXR1cm4gZnVuY3Rpb24oZSx0PVwibXVpXCIpe2xldFtuLHJdPXcudXNlU3RhdGUoZSksbz1lfHxuO3JldHVybiB3LnVzZUVmZmVjdCgoKT0+e251bGw9PW4mJihhYis9MSxyKGAke3R9LSR7YWJ9YCkpfSxbbix0XSksb30oZSx0KX1mdW5jdGlvbiBhdygpe2xldCBlPW5ldyBNYXA7cmV0dXJue2VtaXQodCxuKXtlLmdldCh0KT8uZm9yRWFjaChlPT5lKG4pKX0sb24odCxuKXtlLmhhcyh0KXx8ZS5zZXQodCxuZXcgU2V0KSxlLmdldCh0KS5hZGQobil9LG9mZih0LG4pe2UuZ2V0KHQpPy5kZWxldGUobil9fX1sZXQgYUM9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50P3cudXNlTGF5b3V0RWZmZWN0OigpPT57fSxhXz13LmNyZWF0ZUNvbnRleHQobnVsbCksYWs9dy5jcmVhdGVDb250ZXh0KG51bGwpLGFFPSgpPT53LnVzZUNvbnRleHQoYV8pPy5pZHx8bnVsbCxhaj0oKT0+dy51c2VDb250ZXh0KGFrKTtmdW5jdGlvbiBhUyhlKXtsZXR7Y2hpbGRyZW46dCxpZDpufT1lLHI9YUUoKTtyZXR1cm4oMCxBLmpzeCkoYV8uUHJvdmlkZXIse3ZhbHVlOncudXNlTWVtbygoKT0+KHtpZDpuLHBhcmVudElkOnJ9KSxbbixyXSksY2hpbGRyZW46dH0pfWZ1bmN0aW9uIGFPKGUpe2xldHtjaGlsZHJlbjp0fT1lLG49dy51c2VSZWYoW10pLHI9dy51c2VDYWxsYmFjayhlPT57bi5jdXJyZW50PVsuLi5uLmN1cnJlbnQsZV19LFtdKSxvPXcudXNlQ2FsbGJhY2soZT0+e24uY3VycmVudD1uLmN1cnJlbnQuZmlsdGVyKHQ9PnQhPT1lKX0sW10pLFthXT13LnVzZVN0YXRlKCgpPT5hdygpKTtyZXR1cm4oMCxBLmpzeCkoYWsuUHJvdmlkZXIse3ZhbHVlOncudXNlTWVtbygoKT0+KHtub2Rlc1JlZjpuLGFkZE5vZGU6cixyZW1vdmVOb2RlOm8sZXZlbnRzOmF9KSxbcixvLGFdKSxjaGlsZHJlbjp0fSl9ZnVuY3Rpb24gYUIoZSl7bGV0e29wZW46dD0hMSxvbk9wZW5DaGFuZ2U6bixlbGVtZW50czpyfT1lLG89YXgoKSxhPXcudXNlUmVmKHt9KSxbaV09dy51c2VTdGF0ZSgoKT0+YXcoKSksbD1udWxsIT1hRSgpLFtzLGNdPXcudXNlU3RhdGUoci5yZWZlcmVuY2UpLHU9YWgoKGUsdCxyKT0+e2EuY3VycmVudC5vcGVuRXZlbnQ9ZT90OnZvaWQgMCxpLmVtaXQoXCJvcGVuY2hhbmdlXCIse29wZW46ZSxldmVudDp0LHJlYXNvbjpyLG5lc3RlZDpsfSksbj8uKGUsdCxyKX0pLGQ9dy51c2VNZW1vKCgpPT4oe3NldFBvc2l0aW9uUmVmZXJlbmNlOmN9KSxbXSksZj13LnVzZU1lbW8oKCk9Pih7cmVmZXJlbmNlOnN8fHIucmVmZXJlbmNlfHxudWxsLGZsb2F0aW5nOnIuZmxvYXRpbmd8fG51bGwsZG9tUmVmZXJlbmNlOnIucmVmZXJlbmNlfSksW3Msci5yZWZlcmVuY2Usci5mbG9hdGluZ10pO3JldHVybiB3LnVzZU1lbW8oKCk9Pih7ZGF0YVJlZjphLG9wZW46dCxvbk9wZW5DaGFuZ2U6dSxlbGVtZW50czpmLGV2ZW50czppLGZsb2F0aW5nSWQ6byxyZWZzOmR9KSxbdCx1LGYsaSxvLGRdKX1mdW5jdGlvbiBhUCgpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3d9ZnVuY3Rpb24gYUkoZSl7cmV0dXJuIGFEKGUpPyhlLm5vZGVOYW1lfHxcIlwiKS50b0xvd2VyQ2FzZSgpOlwiI2RvY3VtZW50XCJ9ZnVuY3Rpb24gYVQoZSl7dmFyIHQ7cmV0dXJuKG51bGw9PWV8fG51bGw9PSh0PWUub3duZXJEb2N1bWVudCk/dm9pZCAwOnQuZGVmYXVsdFZpZXcpfHx3aW5kb3d9ZnVuY3Rpb24gYXooZSl7dmFyIHQ7cmV0dXJuIG51bGw9PSh0PShhRChlKT9lLm93bmVyRG9jdW1lbnQ6ZS5kb2N1bWVudCl8fHdpbmRvdy5kb2N1bWVudCk/dm9pZCAwOnQuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIGFEKGUpe3JldHVybiEhYVAoKSYmKGUgaW5zdGFuY2VvZiBOb2RlfHxlIGluc3RhbmNlb2YgYVQoZSkuTm9kZSl9ZnVuY3Rpb24gYUwoZSl7cmV0dXJuISFhUCgpJiYoZSBpbnN0YW5jZW9mIEVsZW1lbnR8fGUgaW5zdGFuY2VvZiBhVChlKS5FbGVtZW50KX1mdW5jdGlvbiBhTihlKXtyZXR1cm4hIWFQKCkmJihlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR8fGUgaW5zdGFuY2VvZiBhVChlKS5IVE1MRWxlbWVudCl9ZnVuY3Rpb24gYVIoZSl7cmV0dXJuISFhUCgpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU2hhZG93Um9vdCYmKGUgaW5zdGFuY2VvZiBTaGFkb3dSb290fHxlIGluc3RhbmNlb2YgYVQoZSkuU2hhZG93Um9vdCl9bGV0IGFNPW5ldyBTZXQoW1wiaW5saW5lXCIsXCJjb250ZW50c1wiXSk7ZnVuY3Rpb24gYVooZSl7bGV0e292ZXJmbG93OnQsb3ZlcmZsb3dYOm4sb3ZlcmZsb3dZOnIsZGlzcGxheTpvfT1hRyhlKTtyZXR1cm4vYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdCh0K3IrbikmJiFhTS5oYXMobyl9bGV0IGFVPW5ldyBTZXQoW1widGFibGVcIixcInRkXCIsXCJ0aFwiXSksYUY9W1wiOnBvcG92ZXItb3BlblwiLFwiOm1vZGFsXCJdO2Z1bmN0aW9uIGFxKGUpe3JldHVybiBhRi5zb21lKHQ9Pnt0cnl7cmV0dXJuIGUubWF0Y2hlcyh0KX1jYXRjaChlKXtyZXR1cm4hMX19KX1sZXQgYUg9W1widHJhbnNmb3JtXCIsXCJ0cmFuc2xhdGVcIixcInNjYWxlXCIsXCJyb3RhdGVcIixcInBlcnNwZWN0aXZlXCJdLGFWPVtcInRyYW5zZm9ybVwiLFwidHJhbnNsYXRlXCIsXCJzY2FsZVwiLFwicm90YXRlXCIsXCJwZXJzcGVjdGl2ZVwiLFwiZmlsdGVyXCJdLGEkPVtcInBhaW50XCIsXCJsYXlvdXRcIixcInN0cmljdFwiLFwiY29udGVudFwiXTtmdW5jdGlvbiBhVyhlKXtsZXQgdD1hWSgpLG49YUwoZSk/YUcoZSk6ZTtyZXR1cm4gYUguc29tZShlPT4hIW5bZV0mJlwibm9uZVwiIT09bltlXSl8fCEhbi5jb250YWluZXJUeXBlJiZcIm5vcm1hbFwiIT09bi5jb250YWluZXJUeXBlfHwhdCYmISFuLmJhY2tkcm9wRmlsdGVyJiZcIm5vbmVcIiE9PW4uYmFja2Ryb3BGaWx0ZXJ8fCF0JiYhIW4uZmlsdGVyJiZcIm5vbmVcIiE9PW4uZmlsdGVyfHxhVi5zb21lKGU9PihuLndpbGxDaGFuZ2V8fFwiXCIpLmluY2x1ZGVzKGUpKXx8YSQuc29tZShlPT4obi5jb250YWlufHxcIlwiKS5pbmNsdWRlcyhlKSl9ZnVuY3Rpb24gYVkoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgQ1NTJiYhIUNTUy5zdXBwb3J0cyYmQ1NTLnN1cHBvcnRzKFwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXJcIixcIm5vbmVcIil9bGV0IGFLPW5ldyBTZXQoW1wiaHRtbFwiLFwiYm9keVwiLFwiI2RvY3VtZW50XCJdKTtmdW5jdGlvbiBhWChlKXtyZXR1cm4gYUsuaGFzKGFJKGUpKX1mdW5jdGlvbiBhRyhlKXtyZXR1cm4gYVQoZSkuZ2V0Q29tcHV0ZWRTdHlsZShlKX1mdW5jdGlvbiBhUShlKXtyZXR1cm4gYUwoZSk/e3Njcm9sbExlZnQ6ZS5zY3JvbGxMZWZ0LHNjcm9sbFRvcDplLnNjcm9sbFRvcH06e3Njcm9sbExlZnQ6ZS5zY3JvbGxYLHNjcm9sbFRvcDplLnNjcm9sbFl9fWZ1bmN0aW9uIGFKKGUpe2lmKFwiaHRtbFwiPT09YUkoZSkpcmV0dXJuIGU7bGV0IHQ9ZS5hc3NpZ25lZFNsb3R8fGUucGFyZW50Tm9kZXx8YVIoZSkmJmUuaG9zdHx8YXooZSk7cmV0dXJuIGFSKHQpP3QuaG9zdDp0fWZ1bmN0aW9uIGEwKGUsdCxuKXt2YXIgcjt2b2lkIDA9PT10JiYodD1bXSksdm9pZCAwPT09biYmKG49ITApO2xldCBvPWZ1bmN0aW9uIGUodCl7bGV0IG49YUoodCk7cmV0dXJuIGFYKG4pP3Qub3duZXJEb2N1bWVudD90Lm93bmVyRG9jdW1lbnQuYm9keTp0LmJvZHk6YU4obikmJmFaKG4pP246ZShuKX0oZSksYT1vPT09KG51bGw9PShyPWUub3duZXJEb2N1bWVudCk/dm9pZCAwOnIuYm9keSksaT1hVChvKTtpZihhKXtsZXQgZT1hMShpKTtyZXR1cm4gdC5jb25jYXQoaSxpLnZpc3VhbFZpZXdwb3J0fHxbXSxhWihvKT9vOltdLGUmJm4/YTAoZSk6W10pfXJldHVybiB0LmNvbmNhdChvLGEwKG8sW10sbikpfWZ1bmN0aW9uIGExKGUpe3JldHVybiBlLnBhcmVudCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKGUucGFyZW50KT9lLmZyYW1lRWxlbWVudDpudWxsfWZ1bmN0aW9uIGEyKGUpe2xldCB0PWFsKGE0LGUpLmN1cnJlbnQ7cmV0dXJuIHQubmV4dD1lLGFDKHQuZWZmZWN0KSx0fWZ1bmN0aW9uIGE0KGUpe2xldCB0PXtjdXJyZW50OmUsbmV4dDplLGVmZmVjdDooKT0+e3QuY3VycmVudD10Lm5leHR9fTtyZXR1cm4gdH1sZXQgYTU9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG5hdmlnYXRvcixhMz1mdW5jdGlvbigpe2lmKCFhNSlyZXR1cm57cGxhdGZvcm06XCJcIixtYXhUb3VjaFBvaW50czotMX07bGV0IGU9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7cmV0dXJuIGU/LnBsYXRmb3JtP3twbGF0Zm9ybTplLnBsYXRmb3JtLG1heFRvdWNoUG9pbnRzOm5hdmlnYXRvci5tYXhUb3VjaFBvaW50c306e3BsYXRmb3JtOm5hdmlnYXRvci5wbGF0Zm9ybT8/XCJcIixtYXhUb3VjaFBvaW50czpuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM/Py0xfX0oKSxhNj1mdW5jdGlvbigpe2lmKCFhNSlyZXR1cm5cIlwiO2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlPy5wbGF0Zm9ybT9lLnBsYXRmb3JtOm5hdmlnYXRvci5wbGF0Zm9ybT8/XCJcIn0oKSxhOT1mdW5jdGlvbigpe2lmKCFhNSlyZXR1cm5cIlwiO2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUuYnJhbmRzKT9lLmJyYW5kcy5tYXAoKHticmFuZDplLHZlcnNpb246dH0pPT5gJHtlfS8ke3R9YCkuam9pbihcIiBcIik6bmF2aWdhdG9yLnVzZXJBZ2VudH0oKSxhOD1cInVuZGVmaW5lZFwiIT10eXBlb2YgQ1NTJiYhIUNTUy5zdXBwb3J0cyYmQ1NTLnN1cHBvcnRzKFwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZVwiKSxhNz1cIk1hY0ludGVsXCI9PT1hMy5wbGF0Zm9ybSYmYTMubWF4VG91Y2hQb2ludHM+MXx8L2lQKGhvbmV8YWR8b2QpfGlPUy8udGVzdChhMy5wbGF0Zm9ybSk7YTUmJi9maXJlZm94L2kudGVzdChhOSk7bGV0IGllPWE1JiYvYXBwbGUvaS50ZXN0KG5hdmlnYXRvci52ZW5kb3IpLGl0PWE1JiYvYW5kcm9pZC9pLnRlc3QoYTYpfHwvYW5kcm9pZC9pLnRlc3QoYTkpLGlyPWE1JiZhNi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJtYWNcIikmJiFuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMsaW89YTkuaW5jbHVkZXMoXCJqc2RvbS9cIik7ZnVuY3Rpb24gaWEoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gaWkoZSl7cmV0dXJuIDA9PT1lLm1veklucHV0U291cmNlJiYhIWUuaXNUcnVzdGVkfHwoaXQmJmUucG9pbnRlclR5cGU/XCJjbGlja1wiPT09ZS50eXBlJiYxPT09ZS5idXR0b25zOjA9PT1lLmRldGFpbCYmIWUucG9pbnRlclR5cGUpfWZ1bmN0aW9uIGlsKGUpe3JldHVybiFpbyYmKCFpdCYmMD09PWUud2lkdGgmJjA9PT1lLmhlaWdodHx8aXQmJjE9PT1lLndpZHRoJiYxPT09ZS5oZWlnaHQmJjA9PT1lLnByZXNzdXJlJiYwPT09ZS5kZXRhaWwmJlwibW91c2VcIj09PWUucG9pbnRlclR5cGV8fGUud2lkdGg8MSYmZS5oZWlnaHQ8MSYmMD09PWUucHJlc3N1cmUmJjA9PT1lLmRldGFpbCYmXCJ0b3VjaFwiPT09ZS5wb2ludGVyVHlwZSl9ZnVuY3Rpb24gaXMoZSx0KXtsZXQgbj1bXCJtb3VzZVwiLFwicGVuXCJdO3JldHVybiB0fHxuLnB1c2goXCJcIix2b2lkIDApLG4uaW5jbHVkZXMoZSl9bGV0IGljPVwiZGF0YS1iYXNlLXVpLWZvY3VzYWJsZVwiLGl1PVwiYWN0aXZlXCIsaWQ9XCJzZWxlY3RlZFwiLGlwPVwiQXJyb3dMZWZ0XCIsaWg9XCJBcnJvd1JpZ2h0XCIsaW09XCJBcnJvd1VwXCIsaWc9XCJBcnJvd0Rvd25cIjtmdW5jdGlvbiBpeShlKXtsZXQgdD1lLmFjdGl2ZUVsZW1lbnQ7Zm9yKDt0Py5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT1udWxsOyl0PXQuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O3JldHVybiB0fWZ1bmN0aW9uIGl2KGUsdCl7aWYoIWV8fCF0KXJldHVybiExO2xldCBuPXQuZ2V0Um9vdE5vZGU/LigpO2lmKGUuY29udGFpbnModCkpcmV0dXJuITA7aWYobiYmYVIobikpe2xldCBuPXQ7Zm9yKDtuOyl7aWYoZT09PW4pcmV0dXJuITA7bj1uLnBhcmVudE5vZGV8fG4uaG9zdH19cmV0dXJuITF9ZnVuY3Rpb24gaWIoZSl7cmV0dXJuXCJjb21wb3NlZFBhdGhcImluIGU/ZS5jb21wb3NlZFBhdGgoKVswXTplLnRhcmdldH1mdW5jdGlvbiBpQShlLHQpe3JldHVybiBudWxsIT10JiYoXCJjb21wb3NlZFBhdGhcImluIGU/ZS5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0KTpudWxsIT1lLnRhcmdldCYmdC5jb250YWlucyhlLnRhcmdldCkpfWZ1bmN0aW9uIGl4KGUpe3JldHVybiBlPy5vd25lckRvY3VtZW50fHxkb2N1bWVudH1mdW5jdGlvbiBpdyhlKXtyZXR1cm4gYU4oZSkmJmUubWF0Y2hlcyhcImlucHV0Om5vdChbdHlwZT0naGlkZGVuJ10pOm5vdChbZGlzYWJsZWRdKSxbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT0nZmFsc2UnXSksdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pXCIpfWZ1bmN0aW9uIGlDKGUpe3JldHVybiEhZSYmXCJjb21ib2JveFwiPT09ZS5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZpdyhlKX1mdW5jdGlvbiBpXyhlKXtyZXR1cm4gZT9lLmhhc0F0dHJpYnV0ZShpYyk/ZTplLnF1ZXJ5U2VsZWN0b3IoYFske2ljfV1gKXx8ZTpudWxsfWZ1bmN0aW9uIGlrKGUpe3JldHVybmBkYXRhLWJhc2UtdWktJHtlfWB9bGV0IGlFPWlrKFwic2FmZS1wb2x5Z29uXCIpO2Z1bmN0aW9uIGlqKGUsdCxuKXtpZihuJiYhaXMobikpcmV0dXJuIDA7aWYoXCJudW1iZXJcIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZSl7bGV0IG49ZSgpO3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBuP246bj8uW3RdfXJldHVybiBlPy5bdF19ZnVuY3Rpb24gaVMoZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKCk6ZX1mdW5jdGlvbiBpTyhlLHQ9e30pe2xldHtvcGVuOm4sb25PcGVuQ2hhbmdlOnIsZGF0YVJlZjpvLGV2ZW50czphLGVsZW1lbnRzOml9PWUse2VuYWJsZWQ6bD0hMCxkZWxheTpzPTAsaGFuZGxlQ2xvc2U6Yz1udWxsLG1vdXNlT25seTp1PSExLHJlc3RNczpkPTAsbW92ZTpmPSEwfT10LHA9YWooKSxoPWFFKCksbT1hMihjKSxnPWEyKHMpLHk9YTIobiksdj1hMihkKSxiPXcudXNlUmVmKHZvaWQgMCksQT1hZCgpLHg9dy51c2VSZWYodm9pZCAwKSxDPWFkKCksXz13LnVzZVJlZighMCksaz13LnVzZVJlZighMSksRT13LnVzZVJlZigoKT0+e30pLGo9dy51c2VSZWYoITEpLFM9YWgoKCk9PntsZXQgZT1vLmN1cnJlbnQub3BlbkV2ZW50Py50eXBlO3JldHVybiBlPy5pbmNsdWRlcyhcIm1vdXNlXCIpJiZcIm1vdXNlZG93blwiIT09ZX0pO3cudXNlRWZmZWN0KCgpPT57aWYobClyZXR1cm4gYS5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e2Eub2ZmKFwib3BlbmNoYW5nZVwiLGUpfTtmdW5jdGlvbiBlKHtvcGVuOmV9KXtlfHwoQS5jbGVhcigpLEMuY2xlYXIoKSxfLmN1cnJlbnQ9ITAsai5jdXJyZW50PSExKX19LFtsLGEsQSxDXSksdy51c2VFZmZlY3QoKCk9PntpZighbHx8IW0uY3VycmVudHx8IW4pcmV0dXJuO2Z1bmN0aW9uIGUoZSl7UygpJiZyKCExLGUsXCJob3ZlclwiKX1sZXQgdD1peChpLmZsb2F0aW5nKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixlKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixlKX19LFtpLmZsb2F0aW5nLG4scixsLG0sU10pO2xldCBPPXcudXNlQ2FsbGJhY2soKGUsdD0hMCxuPVwiaG92ZXJcIik9PntsZXQgbz1paihnLmN1cnJlbnQsXCJjbG9zZVwiLGIuY3VycmVudCk7byYmIXguY3VycmVudD9BLnN0YXJ0KG8sKCk9PnIoITEsZSxuKSk6dCYmKEEuY2xlYXIoKSxyKCExLGUsbikpfSxbZyxyLEFdKSxCPWFoKCgpPT57RS5jdXJyZW50KCkseC5jdXJyZW50PXZvaWQgMH0pLFA9YWgoKCk9PntpZihrLmN1cnJlbnQpe2xldCBlPWl4KGkuZmxvYXRpbmcpLmJvZHk7ZS5zdHlsZS5wb2ludGVyRXZlbnRzPVwiXCIsZS5yZW1vdmVBdHRyaWJ1dGUoaUUpLGsuY3VycmVudD0hMX19KSxJPWFoKCgpPT4hIW8uY3VycmVudC5vcGVuRXZlbnQmJltcImNsaWNrXCIsXCJtb3VzZWRvd25cIl0uaW5jbHVkZXMoby5jdXJyZW50Lm9wZW5FdmVudC50eXBlKSk7dy51c2VFZmZlY3QoKCk9PntpZihsJiZhTChpLmRvbVJlZmVyZW5jZSkpe2xldCByPWkuZG9tUmVmZXJlbmNlLG89aS5mbG9hdGluZztyZXR1cm4gbiYmci5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGEpLGYmJnIuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGUse29uY2U6ITB9KSxyLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsZSksci5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLHQpLG8mJihvLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSksby5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLHMpLG8uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixjKSksKCk9PntuJiZyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSksZiYmci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsZSksci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLGUpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIix0KSxvJiYoby5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGEpLG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIixzKSxvLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYykpfX1mdW5jdGlvbiBlKGUpe2lmKEEuY2xlYXIoKSxfLmN1cnJlbnQ9ITEsdSYmIWlzKGIuY3VycmVudCl8fGlTKHYuY3VycmVudCk+MCYmIWlqKGcuY3VycmVudCxcIm9wZW5cIikpcmV0dXJuO2xldCB0PWlqKGcuY3VycmVudCxcIm9wZW5cIixiLmN1cnJlbnQpO3Q/QS5zdGFydCh0LCgpPT57eS5jdXJyZW50fHxyKCEwLGUsXCJob3ZlclwiKX0pOm58fHIoITAsZSxcImhvdmVyXCIpfWZ1bmN0aW9uIHQoZSl7aWYoSSgpKXJldHVybiB2b2lkIFAoKTtFLmN1cnJlbnQoKTtsZXQgdD1peChpLmZsb2F0aW5nKTtpZihDLmNsZWFyKCksai5jdXJyZW50PSExLG0uY3VycmVudCYmby5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCl7bnx8QS5jbGVhcigpLHguY3VycmVudD1tLmN1cnJlbnQoey4uLm8uY3VycmVudC5mbG9hdGluZ0NvbnRleHQsdHJlZTpwLHg6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLG9uQ2xvc2UoKXtQKCksQigpLEkoKXx8TyhlLCEwLFwic2FmZS1wb2x5Z29uXCIpfX0pO2xldCByPXguY3VycmVudDt0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyKSxFLmN1cnJlbnQ9KCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyKX07cmV0dXJufVwidG91Y2hcIj09PWIuY3VycmVudCYmaXYoaS5mbG9hdGluZyxlLnJlbGF0ZWRUYXJnZXQpfHxPKGUpfWZ1bmN0aW9uIGEoZSl7IUkoKSYmby5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCYmbS5jdXJyZW50Py4oey4uLm8uY3VycmVudC5mbG9hdGluZ0NvbnRleHQsdHJlZTpwLHg6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLG9uQ2xvc2UoKXtQKCksQigpLEkoKXx8TyhlKX19KShlKX1mdW5jdGlvbiBzKCl7QS5jbGVhcigpfWZ1bmN0aW9uIGMoZSl7SSgpfHxPKGUsITEpfX0sW2ksbCxlLHUsZixPLEIsUCxyLG4seSxwLGcsbSxvLEksdixBLENdKSxhQygoKT0+e2lmKGwmJm4mJm0uY3VycmVudD8uX19vcHRpb25zPy5ibG9ja1BvaW50ZXJFdmVudHMmJlMoKSl7ay5jdXJyZW50PSEwO2xldCBlPWkuZmxvYXRpbmc7aWYoYUwoaS5kb21SZWZlcmVuY2UpJiZlKXtsZXQgdD1peChpLmZsb2F0aW5nKS5ib2R5O3Quc2V0QXR0cmlidXRlKGlFLFwiXCIpO2xldCBuPWkuZG9tUmVmZXJlbmNlLHI9cD8ubm9kZXNSZWYuY3VycmVudC5maW5kKGU9PmUuaWQ9PT1oKT8uY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmc7cmV0dXJuIHImJihyLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIiksdC5zdHlsZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiLG4uc3R5bGUucG9pbnRlckV2ZW50cz1cImF1dG9cIixlLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJhdXRvXCIsKCk9Pnt0LnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIixuLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIixlLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIn19fX0sW2wsbixoLGkscCxtLFNdKSxhQygoKT0+e258fChiLmN1cnJlbnQ9dm9pZCAwLGouY3VycmVudD0hMSxCKCksUCgpKX0sW24sQixQXSksdy51c2VFZmZlY3QoKCk9PigpPT57QigpLEEuY2xlYXIoKSxDLmNsZWFyKCksUCgpfSxbbCxpLmRvbVJlZmVyZW5jZSxCLFAsQSxDXSk7bGV0IFQ9dy51c2VNZW1vKCgpPT57ZnVuY3Rpb24gZShlKXtiLmN1cnJlbnQ9ZS5wb2ludGVyVHlwZX1yZXR1cm57b25Qb2ludGVyRG93bjplLG9uUG9pbnRlckVudGVyOmUsb25Nb3VzZU1vdmUoZSl7bGV0e25hdGl2ZUV2ZW50OnR9PWU7ZnVuY3Rpb24gbygpe18uY3VycmVudHx8eS5jdXJyZW50fHxyKCEwLHQsXCJob3ZlclwiKX0oIXV8fGlzKGIuY3VycmVudCkpJiYhbiYmMCE9PWlTKHYuY3VycmVudCkmJihqLmN1cnJlbnQmJmUubW92ZW1lbnRYKioyK2UubW92ZW1lbnRZKioyPDJ8fChDLmNsZWFyKCksXCJ0b3VjaFwiPT09Yi5jdXJyZW50P28oKTooai5jdXJyZW50PSEwLEMuc3RhcnQoaVModi5jdXJyZW50KSxvKSkpKX19fSxbdSxyLG4seSx2LENdKTtyZXR1cm4gdy51c2VNZW1vKCgpPT5sP3tyZWZlcmVuY2U6VH06e30sW2wsVF0pfWZ1bmN0aW9uIGlCKGUsdCxuPSEwKXtyZXR1cm4gZS5maWx0ZXIoZT0+ZS5wYXJlbnRJZD09PXQmJighbnx8ZS5jb250ZXh0Py5vcGVuKSkuZmxhdE1hcCh0PT5bdCwuLi5pQihlLHQuaWQsbildKX1mdW5jdGlvbiBpUChlLHQpe2xldCBuPVtdLHI9ZS5maW5kKGU9PmUuaWQ9PT10KT8ucGFyZW50SWQ7Zm9yKDtyOyl7bGV0IHQ9ZS5maW5kKGU9PmUuaWQ9PT1yKTtyPXQ/LnBhcmVudElkLHQmJihuPW4uY29uY2F0KHQpKX1yZXR1cm4gbn1mdW5jdGlvbiBpSShlLHQpe2xldFtuLHJdPWUsbz0hMSxhPXQubGVuZ3RoO2ZvcihsZXQgZT0wLGk9YS0xO2U8YTtpPWUrKyl7bGV0W2EsbF09dFtlXXx8WzAsMF0sW3MsY109dFtpXXx8WzAsMF07bD49ciE9Yz49ciYmbjw9KHMtYSkqKHItbCkvKGMtbCkrYSYmKG89IW8pfXJldHVybiBvfWZ1bmN0aW9uIGlUKGU9e30pe2xldHtidWZmZXI6dD0uNSxibG9ja1BvaW50ZXJFdmVudHM6bj0hMSxyZXF1aXJlSW50ZW50OnI9ITB9PWUsbz1uZXcgYXUsYT0hMSxpPW51bGwsbD1udWxsLHM9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHBlcmZvcm1hbmNlP3BlcmZvcm1hbmNlLm5vdygpOjAsYz0oe3g6ZSx5Om4scGxhY2VtZW50OmMsZWxlbWVudHM6dSxvbkNsb3NlOmQsbm9kZUlkOmYsdHJlZTpwfSk9PmZ1bmN0aW9uKGgpe3ZhciBtLGc7ZnVuY3Rpb24geSgpe28uY2xlYXIoKSxkKCl9aWYoby5jbGVhcigpLCF1LmRvbVJlZmVyZW5jZXx8IXUuZmxvYXRpbmd8fG51bGw9PWN8fG51bGw9PWV8fG51bGw9PW4pcmV0dXJuO2xldHtjbGllbnRYOnYsY2xpZW50WTpifT1oLEE9W3YsYl0seD1pYihoKSx3PVwibW91c2VsZWF2ZVwiPT09aC50eXBlLEM9aXYodS5mbG9hdGluZyx4KSxfPWl2KHUuZG9tUmVmZXJlbmNlLHgpLGs9dS5kb21SZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRT11LmZsb2F0aW5nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGo9Yy5zcGxpdChcIi1cIilbMF0sUz1lPkUucmlnaHQtRS53aWR0aC8yLE89bj5FLmJvdHRvbS1FLmhlaWdodC8yLEI9KG09QSxnPWssbVswXT49Zy54JiZtWzBdPD1nLngrZy53aWR0aCYmbVsxXT49Zy55JiZtWzFdPD1nLnkrZy5oZWlnaHQpLFA9RS53aWR0aD5rLndpZHRoLEk9RS5oZWlnaHQ+ay5oZWlnaHQsVD0oUD9rOkUpLmxlZnQsej0oUD9rOkUpLnJpZ2h0LEQ9KEk/azpFKS50b3AsTD0oST9rOkUpLmJvdHRvbTtpZihDJiYoYT0hMCwhdykpcmV0dXJuO2lmKF8mJihhPSExKSxfJiYhdyl7YT0hMDtyZXR1cm59aWYodyYmYUwoaC5yZWxhdGVkVGFyZ2V0KSYmaXYodS5mbG9hdGluZyxoLnJlbGF0ZWRUYXJnZXQpfHxwJiZpQihwLm5vZGVzUmVmLmN1cnJlbnQsZikuc29tZSgoe2NvbnRleHQ6ZX0pPT5lPy5vcGVuKSlyZXR1cm47aWYoXCJ0b3BcIj09PWomJm4+PWsuYm90dG9tLTF8fFwiYm90dG9tXCI9PT1qJiZuPD1rLnRvcCsxfHxcImxlZnRcIj09PWomJmU+PWsucmlnaHQtMXx8XCJyaWdodFwiPT09aiYmZTw9ay5sZWZ0KzEpcmV0dXJuIHkoKTtsZXQgTj1bXTtzd2l0Y2goail7Y2FzZVwidG9wXCI6Tj1bW1Qsay50b3ArMV0sW1QsRS5ib3R0b20tMV0sW3osRS5ib3R0b20tMV0sW3osay50b3ArMV1dO2JyZWFrO2Nhc2VcImJvdHRvbVwiOk49W1tULEUudG9wKzFdLFtULGsuYm90dG9tLTFdLFt6LGsuYm90dG9tLTFdLFt6LEUudG9wKzFdXTticmVhaztjYXNlXCJsZWZ0XCI6Tj1bW0UucmlnaHQtMSxMXSxbRS5yaWdodC0xLERdLFtrLmxlZnQrMSxEXSxbay5sZWZ0KzEsTF1dO2JyZWFrO2Nhc2VcInJpZ2h0XCI6Tj1bW2sucmlnaHQtMSxMXSxbay5yaWdodC0xLERdLFtFLmxlZnQrMSxEXSxbRS5sZWZ0KzEsTF1dfWlmKCFpSShbdixiXSxOKSl7aWYoYSYmIUIpcmV0dXJuIHkoKTtpZighdyYmcil7bGV0IGU9ZnVuY3Rpb24oZSx0KXtsZXQgbj1wZXJmb3JtYW5jZS5ub3coKSxyPW4tcztpZihudWxsPT09aXx8bnVsbD09PWx8fDA9PT1yKXJldHVybiBpPWUsbD10LHM9bixudWxsO2xldCBvPWUtaSxhPXQtbCxjPU1hdGguc3FydChvKm8rYSphKTtyZXR1cm4gaT1lLGw9dCxzPW4sYy9yfShoLmNsaWVudFgsaC5jbGllbnRZKTtpZihudWxsIT09ZSYmZTwuMSlyZXR1cm4geSgpfWlJKFt2LGJdLGZ1bmN0aW9uKFtlLG5dKXtzd2l0Y2goail7Y2FzZVwidG9wXCI6e2xldCByPVtbRS5sZWZ0LFN8fFA/RS5ib3R0b20tdDpFLnRvcF0sW0UucmlnaHQsUz9QP0UuYm90dG9tLXQ6RS50b3A6RS5ib3R0b20tdF1dO3JldHVybltbUD9lK3QvMjpTP2UrNCp0OmUtNCp0LG4rdCsxXSxbUD9lLXQvMjpTP2UrNCp0OmUtNCp0LG4rdCsxXSwuLi5yXX1jYXNlXCJib3R0b21cIjp7bGV0IHI9W1tFLmxlZnQsU3x8UD9FLnRvcCt0OkUuYm90dG9tXSxbRS5yaWdodCxTP1A/RS50b3ArdDpFLmJvdHRvbTpFLnRvcCt0XV07cmV0dXJuW1tQP2UrdC8yOlM/ZSs0KnQ6ZS00KnQsbi10XSxbUD9lLXQvMjpTP2UrNCp0OmUtNCp0LG4tdF0sLi4ucl19Y2FzZVwibGVmdFwiOnJldHVybltbT3x8ST9FLnJpZ2h0LXQ6RS5sZWZ0LEUudG9wXSxbTz9JP0UucmlnaHQtdDpFLmxlZnQ6RS5yaWdodC10LEUuYm90dG9tXSxbZSt0KzEsST9uK3QvMjpPP24rNCp0Om4tNCp0XSxbZSt0KzEsST9uLXQvMjpPP24rNCp0Om4tNCp0XV07Y2FzZVwicmlnaHRcIjp7bGV0IHI9W1tPfHxJP0UubGVmdCt0OkUucmlnaHQsRS50b3BdLFtPP0k/RS5sZWZ0K3Q6RS5yaWdodDpFLmxlZnQrdCxFLmJvdHRvbV1dO3JldHVybltbZS10LEk/bit0LzI6Tz9uKzQqdDpuLTQqdF0sW2UtdCxJP24tdC8yOk8/bis0KnQ6bi00KnRdLC4uLnJdfWRlZmF1bHQ6cmV0dXJuW119fShbZSxuXSkpPyFhJiZyJiZvLnN0YXJ0KDQwLHkpOnkoKX19O3JldHVybiBjLl9fb3B0aW9ucz17YmxvY2tQb2ludGVyRXZlbnRzOm59LGN9bGV0IGl6PWlyJiZpZTtmdW5jdGlvbiBpRChlLHQ9e30pe2xldHtvcGVuOm4sb25PcGVuQ2hhbmdlOnIsZXZlbnRzOm8sZGF0YVJlZjphLGVsZW1lbnRzOml9PWUse2VuYWJsZWQ6bD0hMCx2aXNpYmxlT25seTpzPSEwfT10LGM9dy51c2VSZWYoITEpLHU9YWQoKSxkPXcudXNlUmVmKCEwKTt3LnVzZUVmZmVjdCgoKT0+e2lmKCFsKXJldHVybjtsZXQgZT1hVChpLmRvbVJlZmVyZW5jZSk7ZnVuY3Rpb24gdCgpeyFuJiZhTihpLmRvbVJlZmVyZW5jZSkmJmkuZG9tUmVmZXJlbmNlPT09aXkoaXgoaS5kb21SZWZlcmVuY2UpKSYmKGMuY3VycmVudD0hMCl9ZnVuY3Rpb24gcigpe2QuY3VycmVudD0hMH1mdW5jdGlvbiBvKCl7ZC5jdXJyZW50PSExfXJldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdCksaXomJihlLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksZS5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixvLCEwKSksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdCksaXomJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksZS5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixvLCEwKSl9fSxbaS5kb21SZWZlcmVuY2UsbixsXSksdy51c2VFZmZlY3QoKCk9PntpZihsKXJldHVybiBvLm9uKFwib3BlbmNoYW5nZVwiLGUpLCgpPT57by5vZmYoXCJvcGVuY2hhbmdlXCIsZSl9O2Z1bmN0aW9uIGUoe3JlYXNvbjplfSl7KFwicmVmZXJlbmNlLXByZXNzXCI9PT1lfHxcImVzY2FwZS1rZXlcIj09PWUpJiYoYy5jdXJyZW50PSEwKX19LFtvLGxdKTtsZXQgZj13LnVzZU1lbW8oKCk9Pih7b25Nb3VzZUxlYXZlKCl7Yy5jdXJyZW50PSExfSxvbkZvY3VzKGUpe2lmKGMuY3VycmVudClyZXR1cm47bGV0IHQ9aWIoZS5uYXRpdmVFdmVudCk7aWYocyYmYUwodCkpe2lmKGl6JiYhZS5yZWxhdGVkVGFyZ2V0KXtpZighZC5jdXJyZW50JiYhaXcodCkpcmV0dXJufWVsc2UgaWYoIWZ1bmN0aW9uKGUpe2lmKCFlfHxpbylyZXR1cm4hMDt0cnl7cmV0dXJuIGUubWF0Y2hlcyhcIjpmb2N1cy12aXNpYmxlXCIpfWNhdGNoKGUpe3JldHVybiEwfX0odCkpcmV0dXJufXIoITAsZS5uYXRpdmVFdmVudCxcImZvY3VzXCIpfSxvbkJsdXIoZSl7Yy5jdXJyZW50PSExO2xldCB0PWUucmVsYXRlZFRhcmdldCxuPWUubmF0aXZlRXZlbnQsbz1hTCh0KSYmdC5oYXNBdHRyaWJ1dGUoaWsoXCJmb2N1cy1ndWFyZFwiKSkmJlwib3V0c2lkZVwiPT09dC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXR5cGVcIik7dS5zdGFydCgwLCgpPT57bGV0IGU9aXkoaS5kb21SZWZlcmVuY2U/aS5kb21SZWZlcmVuY2Uub3duZXJEb2N1bWVudDpkb2N1bWVudCk7KHR8fGUhPT1pLmRvbVJlZmVyZW5jZSkmJihpdihhLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5yZWZzLmZsb2F0aW5nLmN1cnJlbnQsZSl8fGl2KGkuZG9tUmVmZXJlbmNlLGUpfHxvfHxyKCExLG4sXCJmb2N1c1wiKSl9KX19KSxbYSxpLmRvbVJlZmVyZW5jZSxyLHMsdV0pO3JldHVybiB3LnVzZU1lbW8oKCk9Pmw/e3JlZmVyZW5jZTpmfTp7fSxbbCxmXSl9Z2xvYmFsVGhpcy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7bGV0IGlMPW5ldyBjbGFzc3tjYWxsYmFja3M9W107Y2FsbGJhY2tzQ291bnQ9MDtuZXh0SWQ9MTtzdGFydElkPTE7aXNTY2hlZHVsZWQ9ITE7dGljaz1lPT57dGhpcy5pc1NjaGVkdWxlZD0hMTtsZXQgdD10aGlzLmNhbGxiYWNrcyxuPXRoaXMuY2FsbGJhY2tzQ291bnQ7aWYodGhpcy5jYWxsYmFja3M9W10sdGhpcy5jYWxsYmFja3NDb3VudD0wLHRoaXMuc3RhcnRJZD10aGlzLm5leHRJZCxuPjApZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKz0xKXRbbl0/LihlKX07cmVxdWVzdChlKXtsZXQgdD10aGlzLm5leHRJZDtyZXR1cm4gdGhpcy5uZXh0SWQrPTEsdGhpcy5jYWxsYmFja3MucHVzaChlKSx0aGlzLmNhbGxiYWNrc0NvdW50Kz0xLHRoaXMuaXNTY2hlZHVsZWR8fChyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy50aWNrKSx0aGlzLmlzU2NoZWR1bGVkPSEwKSx0fWNhbmNlbChlKXtsZXQgdD1lLXRoaXMuc3RhcnRJZDt0PDB8fHQ+PXRoaXMuY2FsbGJhY2tzLmxlbmd0aHx8KHRoaXMuY2FsbGJhY2tzW3RdPW51bGwsdGhpcy5jYWxsYmFja3NDb3VudC09MSl9fTtjbGFzcyBpTntzdGF0aWMgY3JlYXRlKCl7cmV0dXJuIG5ldyBpTn1zdGF0aWMgcmVxdWVzdChlKXtyZXR1cm4gaUwucmVxdWVzdChlKX1zdGF0aWMgY2FuY2VsKGUpe3JldHVybiBpTC5jYW5jZWwoZSl9Y3VycmVudElkPW51bGw7cmVxdWVzdChlKXt0aGlzLmNhbmNlbCgpLHRoaXMuY3VycmVudElkPWlMLnJlcXVlc3QoKCk9Pnt0aGlzLmN1cnJlbnRJZD1udWxsLGUoKX0pfWNhbmNlbD0oKT0+e251bGwhPT10aGlzLmN1cnJlbnRJZCYmKGlMLmNhbmNlbCh0aGlzLmN1cnJlbnRJZCksdGhpcy5jdXJyZW50SWQ9bnVsbCl9O2Rpc3Bvc2VFZmZlY3Q9KCk9PnRoaXMuY2FuY2VsfWZ1bmN0aW9uIGlSKCl7bGV0IGU9YWwoaU4uY3JlYXRlKS5jdXJyZW50O3JldHVybiBhYyhlLmRpc3Bvc2VFZmZlY3QpLGV9bGV0IGlNPXtzdHlsZTp7dHJhbnNpdGlvbjpcIm5vbmVcIn19LGlaPXt9LGlVPVtdLGlGPXtmYWxsYmFja0F4aXNTaWRlOlwibm9uZVwifSxpcT17ZmFsbGJhY2tBeGlzU2lkZTpcImVuZFwifSxpSD17aW50ZW50aW9uYWw6XCJvbkNsaWNrXCIsc2xvcHB5Olwib25Qb2ludGVyRG93blwifTtmdW5jdGlvbiBpVihlKXtyZXR1cm57ZXNjYXBlS2V5OlwiYm9vbGVhblwiPT10eXBlb2YgZT9lOmU/LmVzY2FwZUtleT8/ITEsb3V0c2lkZVByZXNzOlwiYm9vbGVhblwiPT10eXBlb2YgZT9lOmU/Lm91dHNpZGVQcmVzcz8/ITB9fWZ1bmN0aW9uIGkkKGUsdD17fSl7bGV0e29wZW46bixvbk9wZW5DaGFuZ2U6cixlbGVtZW50czpvLGRhdGFSZWY6YX09ZSx7ZW5hYmxlZDppPSEwLGVzY2FwZUtleTpsPSEwLG91dHNpZGVQcmVzczpzPSEwLG91dHNpZGVQcmVzc0V2ZW50OmM9XCJzbG9wcHlcIixyZWZlcmVuY2VQcmVzczp1PSExLHJlZmVyZW5jZVByZXNzRXZlbnQ6ZD1cInNsb3BweVwiLGFuY2VzdG9yU2Nyb2xsOmY9ITEsYnViYmxlczpwLGNhcHR1cmU6aH09dCxtPWFqKCksZz1haChcImZ1bmN0aW9uXCI9PXR5cGVvZiBzP3M6KCk9PiExKSx5PVwiZnVuY3Rpb25cIj09dHlwZW9mIHM/ZzpzLHY9dy51c2VSZWYoITEpLHtlc2NhcGVLZXk6YixvdXRzaWRlUHJlc3M6QX09aVYocCkse2VzY2FwZUtleTp4LG91dHNpZGVQcmVzczpDfT1pVihoKSxfPXcudXNlUmVmKG51bGwpLGs9YWQoKSxFPWFkKCksaj13LnVzZVJlZighMSksUz13LnVzZVJlZihcIlwiKSxPPWFoKGU9PntTLmN1cnJlbnQ9ZS5wb2ludGVyVHlwZX0pLEI9YWgoKCk9PntsZXQgZT1TLmN1cnJlbnQ7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGM/YzpjW1wicGVuXCIhPT1lJiZlP2U6XCJtb3VzZVwiXX0pLFA9YWgoZT0+e2lmKCFufHwhaXx8IWx8fFwiRXNjYXBlXCIhPT1lLmtleXx8ai5jdXJyZW50KXJldHVybjtsZXQgdD1hLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQsbz1tP2lCKG0ubm9kZXNSZWYuY3VycmVudCx0KTpbXTtpZighYiYmKGUuc3RvcFByb3BhZ2F0aW9uKCksby5sZW5ndGg+MCkpe2xldCBlPSEwO2lmKG8uZm9yRWFjaCh0PT57dC5jb250ZXh0Py5vcGVuJiYhdC5jb250ZXh0LmRhdGFSZWYuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXMmJihlPSExKX0pLCFlKXJldHVybn1yKCExLFwibmF0aXZlRXZlbnRcImluIGU/ZS5uYXRpdmVFdmVudDplLFwiZXNjYXBlLWtleVwiKX0pLEk9YWgoZT0+e2xldCB0PUIoKTtyZXR1cm5cImludGVudGlvbmFsXCI9PT10JiZcImNsaWNrXCIhPT1lLnR5cGV8fFwic2xvcHB5XCI9PT10JiZcImNsaWNrXCI9PT1lLnR5cGV9KSxUPWFoKGU9PntsZXQgdD0oKT0+e1AoZSksaWIoZSk/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsdCl9O2liKGUpPy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHQpfSksej1haChlPT57aWYoSShlKSlyZXR1cm47bGV0IHQ9YS5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZTthLmN1cnJlbnQuaW5zaWRlUmVhY3RUcmVlPSExO2xldCBuPXYuY3VycmVudDtpZih2LmN1cnJlbnQ9ITEsXCJpbnRlbnRpb25hbFwiPT09QigpJiZufHx0fHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB5JiYheShlKSlyZXR1cm47bGV0IGk9aWIoZSksbD1gWyR7aWsoXCJpbmVydFwiKX1dYCxzPWl4KG8uZmxvYXRpbmcpLnF1ZXJ5U2VsZWN0b3JBbGwobCksYz1hTChpKT9pOm51bGw7Zm9yKDtjJiYhYVgoYyk7KXtsZXQgZT1hSihjKTtpZihhWChlKXx8IWFMKGUpKWJyZWFrO2M9ZX1pZihzLmxlbmd0aCYmYUwoaSkmJiFpLm1hdGNoZXMoXCJodG1sLGJvZHlcIikmJiFpdihpLG8uZmxvYXRpbmcpJiZBcnJheS5mcm9tKHMpLmV2ZXJ5KGU9PiFpdihjLGUpKSlyZXR1cm47aWYoYU4oaSkpe2xldCB0PWFYKGkpLG49YUcoaSkscj0vYXV0b3xzY3JvbGwvLG89dHx8ci50ZXN0KG4ub3ZlcmZsb3dYKSxhPXR8fHIudGVzdChuLm92ZXJmbG93WSksbD1vJiZpLmNsaWVudFdpZHRoPjAmJmkuc2Nyb2xsV2lkdGg+aS5jbGllbnRXaWR0aCxzPWEmJmkuY2xpZW50SGVpZ2h0PjAmJmkuc2Nyb2xsSGVpZ2h0PmkuY2xpZW50SGVpZ2h0LGM9XCJydGxcIj09PW4uZGlyZWN0aW9uLHU9cyYmKGM/ZS5vZmZzZXRYPD1pLm9mZnNldFdpZHRoLWkuY2xpZW50V2lkdGg6ZS5vZmZzZXRYPmkuY2xpZW50V2lkdGgpLGQ9bCYmZS5vZmZzZXRZPmkuY2xpZW50SGVpZ2h0O2lmKHV8fGQpcmV0dXJufWxldCB1PWEuY3VycmVudC5mbG9hdGluZ0NvbnRleHQ/Lm5vZGVJZCxkPW0mJmlCKG0ubm9kZXNSZWYuY3VycmVudCx1KS5zb21lKHQ9PmlBKGUsdC5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZykpO2lmKGlBKGUsby5mbG9hdGluZyl8fGlBKGUsby5kb21SZWZlcmVuY2UpfHxkKXJldHVybjtsZXQgZj1tP2lCKG0ubm9kZXNSZWYuY3VycmVudCx1KTpbXTtpZihmLmxlbmd0aD4wKXtsZXQgZT0hMDtpZihmLmZvckVhY2godD0+e3QuY29udGV4dD8ub3BlbiYmIXQuY29udGV4dC5kYXRhUmVmLmN1cnJlbnQuX19vdXRzaWRlUHJlc3NCdWJibGVzJiYoZT0hMSl9KSwhZSlyZXR1cm59cighMSxlLFwib3V0c2lkZS1wcmVzc1wiKX0pLEQ9YWgoZT0+e2lmKCEoXCJzbG9wcHlcIiE9PUIoKXx8IW58fCFpfHxpQShlLG8uZmxvYXRpbmcpfHxpQShlLG8uZG9tUmVmZXJlbmNlKSkpe2lmKFwidG91Y2hcIj09PWUucG9pbnRlclR5cGUpe18uY3VycmVudD17c3RhcnRUaW1lOkRhdGUubm93KCksc3RhcnRYOmUuY2xpZW50WCxzdGFydFk6ZS5jbGllbnRZLGRpc21pc3NPblBvaW50ZXJVcDohMSxkaXNtaXNzT25Nb3VzZURvd246ITB9LGsuc3RhcnQoMWUzLCgpPT57Xy5jdXJyZW50JiYoXy5jdXJyZW50LmRpc21pc3NPblBvaW50ZXJVcD0hMSxfLmN1cnJlbnQuZGlzbWlzc09uTW91c2VEb3duPSExKX0pO3JldHVybn16KGUpfX0pLEw9YWgoZT0+e2lmKEkoZSl8fChrLmNsZWFyKCksXCJtb3VzZWRvd25cIj09PWUudHlwZSYmXy5jdXJyZW50JiYhXy5jdXJyZW50LmRpc21pc3NPbk1vdXNlRG93bikpcmV0dXJuO2xldCB0PSgpPT57XCJwb2ludGVyZG93blwiPT09ZS50eXBlP0QoZSk6eihlKSxpYihlKT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLnR5cGUsdCl9O2liKGUpPy5hZGRFdmVudExpc3RlbmVyKGUudHlwZSx0KX0pLE49YWgoZT0+e2lmKFwic2xvcHB5XCIhPT1CKCl8fFwidG91Y2hcIiE9PWUucG9pbnRlclR5cGV8fCFfLmN1cnJlbnR8fGlBKGUsby5mbG9hdGluZyl8fGlBKGUsby5kb21SZWZlcmVuY2UpKXJldHVybjtsZXQgdD1NYXRoLmFicyhlLmNsaWVudFgtXy5jdXJyZW50LnN0YXJ0WCksbj1NYXRoLmFicyhlLmNsaWVudFktXy5jdXJyZW50LnN0YXJ0WSkscj1NYXRoLnNxcnQodCp0K24qbik7cj41JiYoXy5jdXJyZW50LmRpc21pc3NPblBvaW50ZXJVcD0hMCkscj4xMCYmKHooZSksay5jbGVhcigpLF8uY3VycmVudD1udWxsKX0pLFI9YWgoZT0+e1wic2xvcHB5XCIhPT1CKCl8fFwidG91Y2hcIiE9PWUucG9pbnRlclR5cGV8fCFfLmN1cnJlbnR8fGlBKGUsby5mbG9hdGluZyl8fGlBKGUsby5kb21SZWZlcmVuY2UpfHwoXy5jdXJyZW50LmRpc21pc3NPblBvaW50ZXJVcCYmeihlKSxrLmNsZWFyKCksXy5jdXJyZW50PW51bGwpfSk7dy51c2VFZmZlY3QoKCk9PntpZighbnx8IWkpcmV0dXJuO2EuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXM9YixhLmN1cnJlbnQuX19vdXRzaWRlUHJlc3NCdWJibGVzPUE7bGV0IGU9bmV3IGF1O2Z1bmN0aW9uIHQoZSl7cighMSxlLFwiYW5jZXN0b3Itc2Nyb2xsXCIpfWZ1bmN0aW9uIHMoKXtlLmNsZWFyKCksai5jdXJyZW50PSEwfWZ1bmN0aW9uIGMoKXtlLnN0YXJ0KDUqISFhWSgpLCgpPT57ai5jdXJyZW50PSExfSl9bGV0IHU9aXgoby5mbG9hdGluZyk7dS5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixPLCEwKSxsJiYodS5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHg/VDpQLHgpLHUuYWRkRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIixzKSx1LmFkZEV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLGMpKSx5JiYodS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixDP0w6eixDKSx1LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLEM/TDp6LEMpLHUuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsTixDKSx1LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIixSLEMpLHUuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLEwsQykpO2xldCBkPVtdO3JldHVybiBmJiYoYUwoby5kb21SZWZlcmVuY2UpJiYoZD1hMChvLmRvbVJlZmVyZW5jZSkpLGFMKG8uZmxvYXRpbmcpJiYoZD1kLmNvbmNhdChhMChvLmZsb2F0aW5nKSkpLCFhTChvLnJlZmVyZW5jZSkmJm8ucmVmZXJlbmNlJiZvLnJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCYmKGQ9ZC5jb25jYXQoYTAoby5yZWZlcmVuY2UuY29udGV4dEVsZW1lbnQpKSkpLChkPWQuZmlsdGVyKGU9PmUhPT11LmRlZmF1bHRWaWV3Py52aXN1YWxWaWV3cG9ydCkpLmZvckVhY2goZT0+e2UuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQse3Bhc3NpdmU6ITB9KX0pLCgpPT57dS5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixPLCEwKSxsJiYodS5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHg/VDpQLHgpLHUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIixzKSx1LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLGMpKSx5JiYodS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixDP0w6eixDKSx1LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLEM/TDp6LEMpLHUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsTixDKSx1LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIixSLEMpLHUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLEwsQykpLGQuZm9yRWFjaChlPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdCl9KSxlLmNsZWFyKCl9fSxbYSxvLGwseSxjLG4scixmLGksYixBLFAseCxULHosQyxMLEQsTixSLE9dKSx3LnVzZUVmZmVjdCgoKT0+e2EuY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITF9LFthLHldKTtsZXQgTT13LnVzZU1lbW8oKCk9Pih7b25LZXlEb3duOlAsLi4udSYme1tpSFtkXV06ZT0+e3IoITEsZS5uYXRpdmVFdmVudCxcInJlZmVyZW5jZS1wcmVzc1wiKX0sLi4uXCJpbnRlbnRpb25hbFwiIT09ZCYme29uQ2xpY2soZSl7cighMSxlLm5hdGl2ZUV2ZW50LFwicmVmZXJlbmNlLXByZXNzXCIpfX19fSksW1Ascix1LGRdKSxaPWFoKGU9PntsZXQgdD1pYihlLm5hdGl2ZUV2ZW50KTtpdihvLmZsb2F0aW5nLHQpJiYodi5jdXJyZW50PSEwKX0pLFU9YWgoKCk9PnthLmN1cnJlbnQuaW5zaWRlUmVhY3RUcmVlPSEwLEUuc3RhcnQoMCwoKT0+e2EuY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITF9KX0pLEY9dy51c2VNZW1vKCgpPT4oe29uS2V5RG93bjpQLG9uTW91c2VEb3duOlosb25Nb3VzZVVwOlosb25Qb2ludGVyRG93bkNhcHR1cmU6VSxvbk1vdXNlRG93bkNhcHR1cmU6VSxvbkNsaWNrQ2FwdHVyZTpVfSksW1AsWixVXSk7cmV0dXJuIHcudXNlTWVtbygoKT0+aT97cmVmZXJlbmNlOk0sZmxvYXRpbmc6Rn06e30sW2ksTSxGXSl9bGV0IGlXPW5ldyBNYXAoW1tcInNlbGVjdFwiLFwibGlzdGJveFwiXSxbXCJjb21ib2JveFwiLFwibGlzdGJveFwiXSxbXCJsYWJlbFwiLCExXV0pLGlZPVtcInRvcFwiLFwicmlnaHRcIixcImJvdHRvbVwiLFwibGVmdFwiXSxpSz1NYXRoLm1pbixpWD1NYXRoLm1heCxpRz1NYXRoLnJvdW5kLGlRPU1hdGguZmxvb3IsaUo9ZT0+KHt4OmUseTplfSksaTA9e2xlZnQ6XCJyaWdodFwiLHJpZ2h0OlwibGVmdFwiLGJvdHRvbTpcInRvcFwiLHRvcDpcImJvdHRvbVwifSxpMT17c3RhcnQ6XCJlbmRcIixlbmQ6XCJzdGFydFwifTtmdW5jdGlvbiBpMihlLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSh0KTplfWZ1bmN0aW9uIGk0KGUpe3JldHVybiBlLnNwbGl0KFwiLVwiKVswXX1mdW5jdGlvbiBpNShlKXtyZXR1cm4gZS5zcGxpdChcIi1cIilbMV19ZnVuY3Rpb24gaTMoZSl7cmV0dXJuXCJ4XCI9PT1lP1wieVwiOlwieFwifWZ1bmN0aW9uIGk2KGUpe3JldHVyblwieVwiPT09ZT9cImhlaWdodFwiOlwid2lkdGhcIn1sZXQgaTk9bmV3IFNldChbXCJ0b3BcIixcImJvdHRvbVwiXSk7ZnVuY3Rpb24gaTgoZSl7cmV0dXJuIGk5LmhhcyhpNChlKSk/XCJ5XCI6XCJ4XCJ9ZnVuY3Rpb24gaTcoZSl7cmV0dXJuIGUucmVwbGFjZSgvc3RhcnR8ZW5kL2csZT0+aTFbZV0pfWxldCBsZT1bXCJsZWZ0XCIsXCJyaWdodFwiXSxsdD1bXCJyaWdodFwiLFwibGVmdFwiXSxsbj1bXCJ0b3BcIixcImJvdHRvbVwiXSxscj1bXCJib3R0b21cIixcInRvcFwiXTtmdW5jdGlvbiBsbyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZyxlPT5pMFtlXSl9ZnVuY3Rpb24gbGEoZSl7cmV0dXJuXCJudW1iZXJcIiE9dHlwZW9mIGU/e3RvcDowLHJpZ2h0OjAsYm90dG9tOjAsbGVmdDowLC4uLmV9Ont0b3A6ZSxyaWdodDplLGJvdHRvbTplLGxlZnQ6ZX19ZnVuY3Rpb24gbGkoZSl7bGV0e3g6dCx5Om4sd2lkdGg6cixoZWlnaHQ6b309ZTtyZXR1cm57d2lkdGg6cixoZWlnaHQ6byx0b3A6bixsZWZ0OnQscmlnaHQ6dCtyLGJvdHRvbTpuK28seDp0LHk6bn19ZnVuY3Rpb24gbGwoZSx0LG4pe3JldHVybiBNYXRoLmZsb29yKGUvdCkhPT1ufWZ1bmN0aW9uIGxzKGUsdCl7cmV0dXJuIHQ8MHx8dD49ZS5jdXJyZW50Lmxlbmd0aH1mdW5jdGlvbiBsYyhlLHQpe3JldHVybiBsZChlLHtkaXNhYmxlZEluZGljZXM6dH0pfWZ1bmN0aW9uIGx1KGUsdCl7cmV0dXJuIGxkKGUse2RlY3JlbWVudDohMCxzdGFydGluZ0luZGV4OmUuY3VycmVudC5sZW5ndGgsZGlzYWJsZWRJbmRpY2VzOnR9KX1mdW5jdGlvbiBsZChlLHtzdGFydGluZ0luZGV4OnQ9LTEsZGVjcmVtZW50Om49ITEsZGlzYWJsZWRJbmRpY2VzOnIsYW1vdW50Om89MX09e30pe2xldCBhPXQ7ZG8gYSs9bj8tbzpvO3doaWxlKGE+PTAmJmE8PWUuY3VycmVudC5sZW5ndGgtMSYmbGYoZSxhLHIpKTtyZXR1cm4gYX1mdW5jdGlvbiBsZihlLHQsbil7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgbilyZXR1cm4gbih0KTtpZihuKXJldHVybiBuLmluY2x1ZGVzKHQpO2xldCByPWUuY3VycmVudFt0XTtyZXR1cm4gbnVsbD09cnx8ci5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8XCJ0cnVlXCI9PT1yLmdldEF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIil9bGV0IGxwPTA7ZnVuY3Rpb24gbGgoZSx0PXt9KXtsZXR7cHJldmVudFNjcm9sbDpuPSExLGNhbmNlbFByZXZpb3VzOnI9ITAsc3luYzpvPSExfT10O3ImJmNhbmNlbEFuaW1hdGlvbkZyYW1lKGxwKTtsZXQgYT0oKT0+ZT8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6bn0pO28/YSgpOmxwPXJlcXVlc3RBbmltYXRpb25GcmFtZShhKX1mdW5jdGlvbiBsbShlLHQsbil7c3dpdGNoKGUpe2Nhc2VcInZlcnRpY2FsXCI6cmV0dXJuIHQ7Y2FzZVwiaG9yaXpvbnRhbFwiOnJldHVybiBuO2RlZmF1bHQ6cmV0dXJuIHR8fG59fWZ1bmN0aW9uIGxnKGUsdCl7cmV0dXJuIGxtKHQsZT09PWltfHxlPT09aWcsZT09PWlwfHxlPT09aWgpfWZ1bmN0aW9uIGx5KGUsdCxuKXtyZXR1cm4gbG0odCxlPT09aWcsbj9lPT09aXA6ZT09PWloKXx8XCJFbnRlclwiPT09ZXx8XCIgXCI9PT1lfHxcIlwiPT09ZX1mdW5jdGlvbiBsdihlPVtdKXtsZXQgdD1lLm1hcChlPT5lPy5yZWZlcmVuY2UpLG49ZS5tYXAoZT0+ZT8uZmxvYXRpbmcpLHI9ZS5tYXAoZT0+ZT8uaXRlbSksbz13LnVzZUNhbGxiYWNrKHQ9PmxiKHQsZSxcInJlZmVyZW5jZVwiKSx0KSxhPXcudXNlQ2FsbGJhY2sodD0+bGIodCxlLFwiZmxvYXRpbmdcIiksbiksaT13LnVzZUNhbGxiYWNrKHQ9PmxiKHQsZSxcIml0ZW1cIikscik7cmV0dXJuIHcudXNlTWVtbygoKT0+KHtnZXRSZWZlcmVuY2VQcm9wczpvLGdldEZsb2F0aW5nUHJvcHM6YSxnZXRJdGVtUHJvcHM6aX0pLFtvLGEsaV0pfWZ1bmN0aW9uIGxiKGUsdCxuKXtsZXQgcj1uZXcgTWFwLG89XCJpdGVtXCI9PT1uLGE9e307Zm9yKGxldCB0IGluXCJmbG9hdGluZ1wiPT09biYmKGEudGFiSW5kZXg9LTEsYVtpY109XCJcIiksZSlvJiZlJiYodD09PWl1fHx0PT09aWQpfHwoYVt0XT1lW3RdKTtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krPTEpe2xldCBsLHM9dFtpXT8uW25dOyhsPVwiZnVuY3Rpb25cIj09dHlwZW9mIHM/ZT9zKGUpOm51bGw6cykmJmxBKGEsbCxvLHIpfXJldHVybiBsQShhLGUsbyxyKSxhfWZ1bmN0aW9uIGxBKGUsdCxuLHIpe2ZvcihsZXQgbyBpbiB0KXtsZXQgYT10W29dO24mJihvPT09aXV8fG89PT1pZCl8fChvLnN0YXJ0c1dpdGgoXCJvblwiKT8oci5oYXMobyl8fHIuc2V0KG8sW10pLFwiZnVuY3Rpb25cIj09dHlwZW9mIGEmJihyLmdldChvKT8ucHVzaChhKSxlW29dPSguLi5lKT0+ci5nZXQobyk/Lm1hcCh0PT50KC4uLmUpKS5maW5kKGU9PnZvaWQgMCE9PWUpKSk6ZVtvXT1hKX19bGV0IGx4PXcuY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIGx3KGUpe2xldCB0PXcudXNlQ29udGV4dChseCk7aWYodm9pZCAwPT09dCYmIWUpdGhyb3cgRXJyb3IoXCJCYXNlIFVJOiBNZW51Um9vdENvbnRleHQgaXMgbWlzc2luZy4gTWVudSBwYXJ0cyBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gPE1lbnUuUm9vdD4uXCIpO3JldHVybiB0fWxldCBsQz13LmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gbF8oZSx0PSExLG49ITEpe2xldFtyLG9dPXcudXNlU3RhdGUoZSYmdD9cImlkbGVcIjp2b2lkIDApLFthLGldPXcudXNlU3RhdGUoZSk7cmV0dXJuIGUmJiFhJiYoaSghMCksbyhcInN0YXJ0aW5nXCIpKSxlfHwhYXx8XCJlbmRpbmdcIj09PXJ8fG58fG8oXCJlbmRpbmdcIiksZXx8YXx8XCJlbmRpbmdcIiE9PXJ8fG8odm9pZCAwKSxhQygoKT0+e2lmKCFlJiZhJiZcImVuZGluZ1wiIT09ciYmbil7bGV0IGU9aU4ucmVxdWVzdCgoKT0+e28oXCJlbmRpbmdcIil9KTtyZXR1cm4oKT0+e2lOLmNhbmNlbChlKX19fSxbZSxhLHIsbl0pLGFDKCgpPT57aWYoIWV8fHQpcmV0dXJuO2xldCBuPWlOLnJlcXVlc3QoKCk9PntlaC5mbHVzaFN5bmMoKCk9PntvKHZvaWQgMCl9KX0pO3JldHVybigpPT57aU4uY2FuY2VsKG4pfX0sW3QsZV0pLGFDKCgpPT57aWYoIWV8fCF0KXJldHVybjtlJiZhJiZcImlkbGVcIiE9PXImJm8oXCJzdGFydGluZ1wiKTtsZXQgbj1pTi5yZXF1ZXN0KCgpPT57byhcImlkbGVcIil9KTtyZXR1cm4oKT0+e2lOLmNhbmNlbChuKX19LFt0LGUsYSxvLHJdKSx3LnVzZU1lbW8oKCk9Pih7bW91bnRlZDphLHNldE1vdW50ZWQ6aSx0cmFuc2l0aW9uU3RhdHVzOnJ9KSxbYSxyXSl9ZnVuY3Rpb24gbGsoZSl7bGV0e2VuYWJsZWQ6dD0hMCxvcGVuOm4scmVmOnIsb25Db21wbGV0ZTpvfT1lLGE9YTIobiksaT1haChvKSxsPWZ1bmN0aW9uKGUsdD0hMSl7bGV0IG49aVIoKTtyZXR1cm4gYWgoKHIsbz1udWxsKT0+e2xldCBhO2lmKG4uY2FuY2VsKCksbnVsbCE9ZSl7aWYoXCJjdXJyZW50XCJpbiBlKXtpZihudWxsPT1lLmN1cnJlbnQpcmV0dXJuO2E9ZS5jdXJyZW50fWVsc2UgYT1lO1wiZnVuY3Rpb25cIiE9dHlwZW9mIGEuZ2V0QW5pbWF0aW9uc3x8Z2xvYmFsVGhpcy5CQVNFX1VJX0FOSU1BVElPTlNfRElTQUJMRUQ/cigpOm4ucmVxdWVzdCgoKT0+e2Z1bmN0aW9uIGUoKXthJiZQcm9taXNlLmFsbFNldHRsZWQoYS5nZXRBbmltYXRpb25zKCkubWFwKGU9PmUuZmluaXNoZWQpKS50aGVuKCgpPT57bnVsbCE9byYmby5hYm9ydGVkfHxlaC5mbHVzaFN5bmMocil9KX10P24ucmVxdWVzdChlKTplKCl9KX19KX0ocixuKTt3LnVzZUVmZmVjdCgoKT0+e3QmJmwoKCk9PntuPT09YS5jdXJyZW50JiZpKCl9KX0sW3QsbixpLGwsYV0pfWxldCBsRT13LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBsaihlPSEwKXtsZXQgdD13LnVzZUNvbnRleHQobEUpO2lmKHZvaWQgMD09PXQmJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogRGlyZWN0aW9uQ29udGV4dCBpcyBtaXNzaW5nLlwiKTtyZXR1cm4gdD8uZGlyZWN0aW9uPz9cImx0clwifWZ1bmN0aW9uIGxTKGUpe3JldHVybiBlPy5vd25lckRvY3VtZW50fHxkb2N1bWVudH1sZXQgbE89KCk9Pnt9LGxCPXt9LGxQPXt9LGxJPVwiXCI7Y2xhc3MgbFR7bG9ja0NvdW50PTA7cmVzdG9yZT1udWxsO3RpbWVvdXRMb2NrPWF1LmNyZWF0ZSgpO3RpbWVvdXRVbmxvY2s9YXUuY3JlYXRlKCk7YWNxdWlyZShlKXtyZXR1cm4gdGhpcy5sb2NrQ291bnQrPTEsMT09PXRoaXMubG9ja0NvdW50JiZudWxsPT09dGhpcy5yZXN0b3JlJiZ0aGlzLnRpbWVvdXRMb2NrLnN0YXJ0KDAsKCk9PnRoaXMubG9jayhlKSksdGhpcy5yZWxlYXNlfXJlbGVhc2U9KCk9Pnt0aGlzLmxvY2tDb3VudC09MSwwPT09dGhpcy5sb2NrQ291bnQmJnRoaXMucmVzdG9yZSYmdGhpcy50aW1lb3V0VW5sb2NrLnN0YXJ0KDAsdGhpcy51bmxvY2spfTt1bmxvY2s9KCk9PnswPT09dGhpcy5sb2NrQ291bnQmJnRoaXMucmVzdG9yZSYmKHRoaXMucmVzdG9yZT8uKCksdGhpcy5yZXN0b3JlPW51bGwpfTtsb2NrKGUpe2lmKDA9PT10aGlzLmxvY2tDb3VudHx8bnVsbCE9PXRoaXMucmVzdG9yZSlyZXR1cm47bGV0IHQ9bFMoZSkuZG9jdW1lbnRFbGVtZW50LG49YVQodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5vdmVyZmxvd1k7aWYoXCJoaWRkZW5cIj09PW58fFwiY2xpcFwiPT09bil7dGhpcy5yZXN0b3JlPWxPO3JldHVybn1sZXQgcj1hN3x8IWZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBkb2N1bWVudClyZXR1cm4hMTtsZXQgdD1sUyhlKTtyZXR1cm4gYVQodCkuaW5uZXJXaWR0aC10LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aD4wfShlKTt0aGlzLnJlc3RvcmU9cj9mdW5jdGlvbihlKXtsZXQgdD1sUyhlKS5kb2N1bWVudEVsZW1lbnQsbj10LnN0eWxlLm92ZXJmbG93O3JldHVybiB0LnN0eWxlLm92ZXJmbG93PVwiaGlkZGVuXCIsKCk9Pnt0LnN0eWxlLm92ZXJmbG93PW59fShlKTpmdW5jdGlvbihlKXtsZXQgdD1sUyhlKSxuPXQuZG9jdW1lbnRFbGVtZW50LHI9dC5ib2R5LG89YVQobiksYT0wLGk9MCxsPWlOLmNyZWF0ZSgpO2lmKGE4JiYoby52aXN1YWxWaWV3cG9ydD8uc2NhbGU/PzEpIT09MSlyZXR1cm4oKT0+e307ZnVuY3Rpb24gcygpe2xldCBlPW8uZ2V0Q29tcHV0ZWRTdHlsZShuKSx0PW8uZ2V0Q29tcHV0ZWRTdHlsZShyKTthPW4uc2Nyb2xsVG9wLGk9bi5zY3JvbGxMZWZ0LGxCPXtzY3JvbGxiYXJHdXR0ZXI6bi5zdHlsZS5zY3JvbGxiYXJHdXR0ZXIsb3ZlcmZsb3dZOm4uc3R5bGUub3ZlcmZsb3dZLG92ZXJmbG93WDpuLnN0eWxlLm92ZXJmbG93WH0sbEk9bi5zdHlsZS5zY3JvbGxCZWhhdmlvcixsUD17cG9zaXRpb246ci5zdHlsZS5wb3NpdGlvbixoZWlnaHQ6ci5zdHlsZS5oZWlnaHQsd2lkdGg6ci5zdHlsZS53aWR0aCxib3hTaXppbmc6ci5zdHlsZS5ib3hTaXppbmcsb3ZlcmZsb3dZOnIuc3R5bGUub3ZlcmZsb3dZLG92ZXJmbG93WDpyLnN0eWxlLm92ZXJmbG93WCxzY3JvbGxCZWhhdmlvcjpyLnN0eWxlLnNjcm9sbEJlaGF2aW9yfTtsZXQgbD1cInVuZGVmaW5lZFwiIT10eXBlb2YgQ1NTJiZDU1Muc3VwcG9ydHM/LihcInNjcm9sbGJhci1ndXR0ZXJcIixcInN0YWJsZVwiKSxzPW4uc2Nyb2xsSGVpZ2h0Pm4uY2xpZW50SGVpZ2h0LGM9bi5zY3JvbGxXaWR0aD5uLmNsaWVudFdpZHRoLHU9XCJzY3JvbGxcIj09PWUub3ZlcmZsb3dZfHxcInNjcm9sbFwiPT09dC5vdmVyZmxvd1ksZD1cInNjcm9sbFwiPT09ZS5vdmVyZmxvd1h8fFwic2Nyb2xsXCI9PT10Lm92ZXJmbG93WCxmPU1hdGgubWF4KDAsby5pbm5lcldpZHRoLW4uY2xpZW50V2lkdGgpLHA9TWF0aC5tYXgoMCxvLmlubmVySGVpZ2h0LW4uY2xpZW50SGVpZ2h0KSxoPXBhcnNlRmxvYXQodC5tYXJnaW5Ub3ApK3BhcnNlRmxvYXQodC5tYXJnaW5Cb3R0b20pLG09cGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpK3BhcnNlRmxvYXQodC5tYXJnaW5SaWdodCk7T2JqZWN0LmFzc2lnbihuLnN0eWxlLHtzY3JvbGxiYXJHdXR0ZXI6XCJzdGFibGVcIixvdmVyZmxvd1k6IWwmJihzfHx1KT9cInNjcm9sbFwiOlwiaGlkZGVuXCIsb3ZlcmZsb3dYOiFsJiYoY3x8ZCk/XCJzY3JvbGxcIjpcImhpZGRlblwifSksT2JqZWN0LmFzc2lnbihyLnN0eWxlLHtwb3NpdGlvbjpcInJlbGF0aXZlXCIsaGVpZ2h0Omh8fHA/YGNhbGMoMTAwZHZoIC0gJHtoK3B9cHgpYDpcIjEwMGR2aFwiLHdpZHRoOm18fGY/YGNhbGMoMTAwdncgLSAke20rZn1weClgOlwiMTAwdndcIixib3hTaXppbmc6XCJib3JkZXItYm94XCIsb3ZlcmZsb3c6XCJoaWRkZW5cIixzY3JvbGxCZWhhdmlvcjpcInVuc2V0XCJ9KSxyLnNjcm9sbFRvcD1hLHIuc2Nyb2xsTGVmdD1pLG4uc2V0QXR0cmlidXRlKFwiZGF0YS1iYXNlLXVpLXNjcm9sbC1sb2NrZWRcIixcIlwiKSxuLnN0eWxlLnNjcm9sbEJlaGF2aW9yPVwidW5zZXRcIn1mdW5jdGlvbiBjKCl7T2JqZWN0LmFzc2lnbihuLnN0eWxlLGxCKSxPYmplY3QuYXNzaWduKHIuc3R5bGUsbFApLG4uc2Nyb2xsVG9wPWEsbi5zY3JvbGxMZWZ0PWksbi5yZW1vdmVBdHRyaWJ1dGUoXCJkYXRhLWJhc2UtdWktc2Nyb2xsLWxvY2tlZFwiKSxuLnN0eWxlLnNjcm9sbEJlaGF2aW9yPWxJfWZ1bmN0aW9uIHUoKXtjKCksbC5yZXF1ZXN0KHMpfXJldHVybiBzKCksby5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdSksKCk9PntsLmNhbmNlbCgpLGMoKSxvLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix1KX19KGUpfX1sZXQgbHo9bmV3IGxUO2Z1bmN0aW9uIGxEKGUpe2lmKGUpcmV0dXJuKHtcImZvY3VzLW91dFwiOlwiZm9jdXMtb3V0XCIsXCJlc2NhcGUta2V5XCI6XCJlc2NhcGUta2V5XCIsXCJvdXRzaWRlLXByZXNzXCI6XCJvdXRzaWRlLXByZXNzXCIsXCJsaXN0LW5hdmlnYXRpb25cIjpcImxpc3QtbmF2aWdhdGlvblwiLGNsaWNrOlwidHJpZ2dlci1wcmVzc1wiLGhvdmVyOlwidHJpZ2dlci1ob3ZlclwiLGZvY3VzOlwidHJpZ2dlci1mb2N1c1wiLFwicmVmZXJlbmNlLXByZXNzXCI6XCJ0cmlnZ2VyLXByZXNzXCIsXCJzYWZlLXBvbHlnb25cIjpcInRyaWdnZXItaG92ZXJcIixcImFuY2VzdG9yLXNjcm9sbFwiOnZvaWQgMH0pW2VdfWxldCBsTD13LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBsTihlPSEwKXtsZXQgdD13LnVzZUNvbnRleHQobEwpO2lmKHZvaWQgMD09PXQmJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogQ29udGV4dE1lbnVSb290Q29udGV4dCBpcyBtaXNzaW5nLiBDb250ZXh0TWVudSBwYXJ0cyBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gPENvbnRleHRNZW51LlJvb3Q+LlwiKTtyZXR1cm4gdH1sZXQgbFI9dy5jcmVhdGVDb250ZXh0KCExKTtmdW5jdGlvbiBsTShlLHQpe3JldHVybiBlJiYhdD9lOiFlJiZ0P3Q6ZXx8dD97Li4uZSwuLi50fTp2b2lkIDB9bGV0IGxaPXt9O2Z1bmN0aW9uIGxVKGUsdCxuLHIsbyl7bGV0IGE9ey4uLmxIKGUsbFopfTtyZXR1cm4gdCYmKGE9bEYoYSx0KSksbiYmKGE9bEYoYSxuKSksciYmKGE9bEYoYSxyKSksbyYmKGE9bEYoYSxvKSksYX1mdW5jdGlvbiBsRihlLHQpe3JldHVybiBscSh0KT90KGUpOmZ1bmN0aW9uKGUsdCl7aWYoIXQpcmV0dXJuIGU7Zm9yKGxldCBuIGluIHQpe2xldCByPXRbbl07c3dpdGNoKG4pe2Nhc2VcInN0eWxlXCI6ZVtuXT1sTShlLnN0eWxlLHIpO2JyZWFrO2Nhc2VcImNsYXNzTmFtZVwiOmVbbl09bCQoZS5jbGFzc05hbWUscik7YnJlYWs7ZGVmYXVsdDohZnVuY3Rpb24oZSx0KXtsZXQgbj1lLmNoYXJDb2RlQXQoMCkscj1lLmNoYXJDb2RlQXQoMSksbz1lLmNoYXJDb2RlQXQoMik7cmV0dXJuIDExMT09PW4mJjExMD09PXImJm8+PTY1JiZvPD05MCYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHR8fHZvaWQgMD09PXQpfShuLHIpP2Vbbl09cjplW25dPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/ZT9uPT57dmFyIHI7aWYobnVsbCE9KHI9bikmJlwib2JqZWN0XCI9PXR5cGVvZiByJiZcIm5hdGl2ZUV2ZW50XCJpbiByKXtsVihuKTtsZXQgcj10KG4pO3JldHVybiBuLmJhc2VVSUhhbmRsZXJQcmV2ZW50ZWR8fGU/LihuKSxyfWxldCBvPXQobik7cmV0dXJuIGU/LihuKSxvfTp0OmV9KGVbbl0scil9fXJldHVybiBlfShlLHQpfWZ1bmN0aW9uIGxxKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGV9ZnVuY3Rpb24gbEgoZSx0KXtyZXR1cm4gbHEoZSk/ZSh0KTplPz9sWn1mdW5jdGlvbiBsVihlKXtyZXR1cm4gZS5wcmV2ZW50QmFzZVVJSGFuZGxlcj0oKT0+e2UuYmFzZVVJSGFuZGxlclByZXZlbnRlZD0hMH0sZX1mdW5jdGlvbiBsJChlLHQpe3JldHVybiB0P2U/dCtcIiBcIitlOnQ6ZX1sZXQgbFc9W10sbFk9e2N1cnJlbnQ6ITF9LGxLPWZ1bmN0aW9uKGUpe2xldCB0LG4se2NoaWxkcmVuOnIsb3BlbjpvLG9uT3BlbkNoYW5nZTphLG9uT3BlbkNoYW5nZUNvbXBsZXRlOmksZGVmYXVsdE9wZW46bD0hMSxkaXNhYmxlZDpzPSExLG1vZGFsOmMsbG9vcDp1PSEwLG9yaWVudGF0aW9uOmQ9XCJ2ZXJ0aWNhbFwiLGFjdGlvbnNSZWY6ZixvcGVuT25Ib3ZlcjpwLGRlbGF5Omg9MTAwLGNsb3NlRGVsYXk6bT0wLGNsb3NlUGFyZW50T25Fc2M6Zz0hMH09ZSxbeSx2XT13LnVzZVN0YXRlKG51bGwpLFtiLHhdPXcudXNlU3RhdGUobnVsbCksW0MsX109dy51c2VTdGF0ZSgpLFtrLEVdPXcudXNlU3RhdGUoITApLFtqLFNdPXcudXNlU3RhdGUobnVsbCksW08sQl09dy51c2VTdGF0ZShudWxsKSxbUCxJXT13LnVzZVN0YXRlKCEwKSxbVCx6XT13LnVzZVN0YXRlKCExKSxEPXcudXNlUmVmKG51bGwpLEw9dy51c2VSZWYobnVsbCksTj13LnVzZVJlZihudWxsKSxSPXcudXNlUmVmKFtdKSxNPXcudXNlUmVmKFtdKSxaPWFkKCksVT1sTighMCksRj13LnVzZUNvbnRleHQobFIpO3tsZXQgZT1sdyghMCksbj1mdW5jdGlvbihlKXtsZXQgdD13LnVzZUNvbnRleHQobEMpO2lmKG51bGw9PT10JiYhZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IE1lbnViYXJDb250ZXh0IGlzIG1pc3NpbmcuIE1lbnViYXIgcGFydHMgbXVzdCBiZSBwbGFjZWQgd2l0aGluIDxNZW51YmFyPi5cIik7cmV0dXJuIHR9KCEwKTt0PUYmJmU/e3R5cGU6XCJtZW51XCIsY29udGV4dDplfTpuP3t0eXBlOlwibWVudWJhclwiLGNvbnRleHQ6bn06VT97dHlwZTpcImNvbnRleHQtbWVudVwiLGNvbnRleHQ6VX06e3R5cGU6dm9pZCAwfX1sZXQgcT1heCgpO3ZvaWQgMCE9PXQudHlwZSYmKHE9dC5jb250ZXh0LnJvb3RJZCk7bGV0IEg9KHZvaWQgMD09PXQudHlwZXx8XCJjb250ZXh0LW1lbnVcIj09PXQudHlwZSkmJihjPz8hMCksVj1cIm1lbnVcIj09PXQudHlwZT90LmNvbnRleHQuYWxsb3dNb3VzZUVudGVyOlQsJD1cIm1lbnVcIj09PXQudHlwZT90LmNvbnRleHQuc2V0QWxsb3dNb3VzZUVudGVyOnosVz1wPz8oXCJtZW51XCI9PT10LnR5cGV8fFwibWVudWJhclwiPT09dC50eXBlJiZ0LmNvbnRleHQuaGFzU3VibWVudU9wZW4pLFtZLEtdPWF5KHtjb250cm9sbGVkOm8sZGVmYXVsdDpsLG5hbWU6XCJNZW51Um9vdFwiLHN0YXRlOlwib3BlblwifSksWD13LnVzZVJlZihcImNvbnRleHQtbWVudVwiIT09dC50eXBlKSxHPWFkKCk7dy51c2VFZmZlY3QoKCk9PntpZihZfHwoRC5jdXJyZW50PW51bGwpLFwiY29udGV4dC1tZW51XCI9PT10LnR5cGUpe2lmKCFZKXtHLmNsZWFyKCksWC5jdXJyZW50PSExO3JldHVybn1HLnN0YXJ0KDUwMCwoKT0+e1guY3VycmVudD0hMH0pfX0sW0csWSx0LnR5cGVdKTtsZXQgUT13LnVzZUNhbGxiYWNrKGU9PntOLmN1cnJlbnQ9ZSx4KGUpfSxbXSkse21vdW50ZWQ6SixzZXRNb3VudGVkOmVlLHRyYW5zaXRpb25TdGF0dXM6ZXR9PWxfKFkpLHtvcGVuTWV0aG9kOmVuLHRyaWdnZXJQcm9wczplcixyZXNldDplb309ZnVuY3Rpb24oZSl7bGV0W3Qsbl09dy51c2VTdGF0ZShudWxsKSxyPWFoKCh0LHIpPT57ZXx8bihyKX0pLG89YWgoKCk9PntuKG51bGwpfSkse29uQ2xpY2s6YSxvblBvaW50ZXJEb3duOml9PWZ1bmN0aW9uKGUpe2xldCB0PXcudXNlUmVmKFwiXCIpLG49dy51c2VDYWxsYmFjayhuPT57bi5kZWZhdWx0UHJldmVudGVkfHwodC5jdXJyZW50PW4ucG9pbnRlclR5cGUsZShuLG4ucG9pbnRlclR5cGUpKX0sW2VdKTtyZXR1cm57b25DbGljazp3LnVzZUNhbGxiYWNrKG49PntpZigwPT09bi5kZXRhaWwpcmV0dXJuIHZvaWQgZShuLFwia2V5Ym9hcmRcIik7XCJwb2ludGVyVHlwZVwiaW4gbiYmZShuLG4ucG9pbnRlclR5cGUpLGUobix0LmN1cnJlbnQpLHQuY3VycmVudD1cIlwifSxbZV0pLG9uUG9pbnRlckRvd246bn19KHIpO3JldHVybiB3LnVzZU1lbW8oKCk9Pih7b3Blbk1ldGhvZDp0LHJlc2V0Om8sdHJpZ2dlclByb3BzOntvbkNsaWNrOmEsb25Qb2ludGVyRG93bjppfX0pLFt0LG8sYSxpXSl9KFkpO3ZhciBlYT17ZW5hYmxlZDpZJiZIJiZcInRyaWdnZXItaG92ZXJcIiE9PU8mJlwidG91Y2hcIiE9PWVuLG1vdW50ZWQ6SixvcGVuOlkscmVmZXJlbmNlRWxlbWVudDpifTtsZXR7ZW5hYmxlZDplaT0hMCxtb3VudGVkOmVsLG9wZW46ZXMscmVmZXJlbmNlRWxlbWVudDplYz1udWxsfT1lYTthQygoKT0+e2lmKGVpJiZhOCYmZWwmJiFlcyl7bGV0IGU9bFMoZWMpLHQ9ZS5ib2R5LnN0eWxlLnVzZXJTZWxlY3Qsbj1lLmJvZHkuc3R5bGUud2Via2l0VXNlclNlbGVjdDtyZXR1cm4gZS5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9XCJub25lXCIsZS5ib2R5LnN0eWxlLndlYmtpdFVzZXJTZWxlY3Q9XCJub25lXCIsKCk9PntlLmJvZHkuc3R5bGUudXNlclNlbGVjdD10LGUuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PW59fX0sW2VpLGVsLGVzLGVjXSksYUMoKCk9PntpZihlaSlyZXR1cm4gbHouYWNxdWlyZShlYyl9LFtlaSxlY10pLFl8fGt8fEUoITApO2xldCBldT1haCgoKT0+e2VlKCExKSxJKCEwKSwkKCExKSxpPy4oITEpLGVvKCl9KTtsayh7ZW5hYmxlZDohZixvcGVuOlkscmVmOkwsb25Db21wbGV0ZSgpe1l8fGV1KCl9fSk7bGV0IGVkPXcudXNlUmVmKCEwKSxlZj1hZCgpLGVwPWFoKChlLG4scik9PntpZihZPT09ZXx8ITE9PT1lJiZuPy50eXBlPT09XCJjbGlja1wiJiZcInRvdWNoXCI9PT1uLnBvaW50ZXJUeXBlJiYhZWQuY3VycmVudClyZXR1cm47aWYoIWUmJm51bGwhPT1qKXtsZXQgZT1SLmN1cnJlbnRbal07cXVldWVNaWNyb3Rhc2soKCk9PntlPy5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIil9KX1lJiZcInRyaWdnZXItZm9jdXNcIj09PXI/KGVkLmN1cnJlbnQ9ITEsZWYuc3RhcnQoMzAwLCgpPT57ZWQuY3VycmVudD0hMH0pKTooZWQuY3VycmVudD0hMCxlZi5jbGVhcigpKTtsZXQgbz0oXCJ0cmlnZ2VyLXByZXNzXCI9PT1yfHxcIml0ZW0tcHJlc3NcIj09PXIpJiYwPT09bi5kZXRhaWwmJm4/LmlzVHJ1c3RlZCxpPSFlJiYoXCJlc2NhcGUta2V5XCI9PT1yfHxudWxsPT1yKTtmdW5jdGlvbiBsKCl7YT8uKGUsbixyKSxLKGUpLEIocj8/bnVsbCksRC5jdXJyZW50PW4/P251bGx9XCJ0cmlnZ2VyLWhvdmVyXCI9PT1yPyhJKCEwKSxaLnN0YXJ0KDUwMCwoKT0+e0koITEpfSksZWguZmx1c2hTeW5jKGwpKTpsKCksXCJtZW51YmFyXCI9PT10LnR5cGUmJihcInRyaWdnZXItZm9jdXNcIj09PXJ8fFwiZm9jdXMtb3V0XCI9PT1yfHxcInRyaWdnZXItaG92ZXJcIj09PXJ8fFwibGlzdC1uYXZpZ2F0aW9uXCI9PT1yfHxcInNpYmxpbmctb3BlblwiPT09cik/XyhcImdyb3VwXCIpOm98fGk/XyhvP1wiY2xpY2tcIjpcImRpc21pc3NcIik6Xyh2b2lkIDApfSk7dy51c2VJbXBlcmF0aXZlSGFuZGxlKGYsKCk9Pih7dW5tb3VudDpldX0pLFtldV0pLFwiY29udGV4dC1tZW51XCI9PT10LnR5cGUmJihuPXQuY29udGV4dCksdy51c2VJbXBlcmF0aXZlSGFuZGxlKG4/LnBvc2l0aW9uZXJSZWYsKCk9PmIsW2JdKSx3LnVzZUltcGVyYXRpdmVIYW5kbGUobj8uYWN0aW9uc1JlZiwoKT0+KHtzZXRPcGVuOmVwfSksW2VwXSksdy51c2VFZmZlY3QoKCk9PntZfHxaLmNsZWFyKCl9LFtaLFldKTtsZXQgZW09YUIoe2VsZW1lbnRzOntyZWZlcmVuY2U6eSxmbG9hdGluZzpifSxvcGVuOlksb25PcGVuQ2hhbmdlKGUsdCxuKXtlcChlLHQsbEQobikpfX0pLGVnPWlPKGVtLHtlbmFibGVkOmsmJlcmJiFzJiZcImNvbnRleHQtbWVudVwiIT09dC50eXBlJiYoXCJtZW51YmFyXCIhPT10LnR5cGV8fHQuY29udGV4dC5oYXNTdWJtZW51T3BlbiYmIVkpLGhhbmRsZUNsb3NlOmlUKHtibG9ja1BvaW50ZXJFdmVudHM6ITB9KSxtb3VzZU9ubHk6ITAsbW92ZTpcIm1lbnVcIj09PXQudHlwZSxyZXN0TXM6dm9pZCAwPT09dC50eXBlfHxcIm1lbnVcIj09PXQudHlwZSYmVj9oOnZvaWQgMCxkZWxheTpcIm1lbnVcIj09PXQudHlwZT97b3BlbjpWP2g6MWUxMCxjbG9zZTptfTp7Y2xvc2U6bX19KSxleT1pRChlbSx7ZW5hYmxlZDohcyYmIVkmJlwibWVudWJhclwiPT09dC50eXBlJiZ0LmNvbnRleHQuaGFzU3VibWVudU9wZW4mJiFVfSksZXY9ZnVuY3Rpb24oZSx0PXt9KXtsZXR7b3BlbjpuLG9uT3BlbkNoYW5nZTpyLGRhdGFSZWY6b309ZSx7ZW5hYmxlZDphPSEwLGV2ZW50Omk9XCJjbGlja1wiLHRvZ2dsZTpsPSEwLGlnbm9yZU1vdXNlOnM9ITEsc3RpY2tJZk9wZW46Yz0hMH09dCx1PXcudXNlUmVmKHZvaWQgMCksZD1pUigpLGY9dy51c2VNZW1vKCgpPT4oe29uUG9pbnRlckRvd24oZSl7dS5jdXJyZW50PWUucG9pbnRlclR5cGV9LG9uTW91c2VEb3duKGUpe2xldCB0PXUuY3VycmVudCxhPWUubmF0aXZlRXZlbnQ7aWYoMCE9PWUuYnV0dG9ufHxcImNsaWNrXCI9PT1pfHxpcyh0LCEwKSYmcylyZXR1cm47bGV0IGY9by5jdXJyZW50Lm9wZW5FdmVudCxwPWY/LnR5cGUsaD0hKG4mJmwmJighZnx8IWN8fFwiY2xpY2tcIj09PXB8fFwibW91c2Vkb3duXCI9PT1wKSk7ZC5yZXF1ZXN0KCgpPT57cihoLGEsXCJjbGlja1wiKX0pfSxvbkNsaWNrKGUpe2xldCB0PXUuY3VycmVudDtpZihcIm1vdXNlZG93blwiPT09aSYmdCl7dS5jdXJyZW50PXZvaWQgMDtyZXR1cm59aWYoaXModCwhMCkmJnMpcmV0dXJuO2xldCBhPW8uY3VycmVudC5vcGVuRXZlbnQsZD1hPy50eXBlO3IoIShuJiZsJiYoIWF8fCFjfHxcImNsaWNrXCI9PT1kfHxcIm1vdXNlZG93blwiPT09ZHx8XCJrZXlkb3duXCI9PT1kfHxcImtleXVwXCI9PT1kKSksZS5uYXRpdmVFdmVudCxcImNsaWNrXCIpfSxvbktleURvd24oKXt1LmN1cnJlbnQ9dm9pZCAwfX0pLFtvLGkscyxyLG4sYyxsLGRdKTtyZXR1cm4gdy51c2VNZW1vKCgpPT5hP3tyZWZlcmVuY2U6Zn06aVosW2EsZl0pfShlbSx7ZW5hYmxlZDohcyYmXCJjb250ZXh0LW1lbnVcIiE9PXQudHlwZSxldmVudDpZJiZcIm1lbnViYXJcIj09PXQudHlwZT9cImNsaWNrXCI6XCJtb3VzZWRvd25cIix0b2dnbGU6IVd8fFwibWVudVwiIT09dC50eXBlLGlnbm9yZU1vdXNlOlcmJlwibWVudVwiPT09dC50eXBlLHN0aWNrSWZPcGVuOnZvaWQgMD09PXQudHlwZSYmUH0pLGViPWkkKGVtLHtlbmFibGVkOiFzLGJ1YmJsZXM6ZyYmXCJtZW51XCI9PT10LnR5cGUsb3V0c2lkZVByZXNzOigpPT5cImNvbnRleHQtbWVudVwiIT09dC50eXBlfHxELmN1cnJlbnQ/LnR5cGU9PT1cImNvbnRleHRtZW51XCJ8fFguY3VycmVudH0pLGVBPWZ1bmN0aW9uKGUsdD17fSl7bGV0e29wZW46bixlbGVtZW50czpyLGZsb2F0aW5nSWQ6b309ZSx7ZW5hYmxlZDphPSEwLHJvbGU6aT1cImRpYWxvZ1wifT10LGw9YXgoKSxzPXIuZG9tUmVmZXJlbmNlPy5pZHx8bCxjPXcudXNlTWVtbygoKT0+aV8oci5mbG9hdGluZyk/LmlkfHxvLFtyLmZsb2F0aW5nLG9dKSx1PWlXLmdldChpKT8/aSxkPW51bGwhPWFFKCksZj13LnVzZU1lbW8oKCk9PlwidG9vbHRpcFwiPT09dXx8XCJsYWJlbFwiPT09aT97W2BhcmlhLSR7XCJsYWJlbFwiPT09aT9cImxhYmVsbGVkYnlcIjpcImRlc2NyaWJlZGJ5XCJ9YF06bj9jOnZvaWQgMH06e1wiYXJpYS1leHBhbmRlZFwiOm4/XCJ0cnVlXCI6XCJmYWxzZVwiLFwiYXJpYS1oYXNwb3B1cFwiOlwiYWxlcnRkaWFsb2dcIj09PXU/XCJkaWFsb2dcIjp1LFwiYXJpYS1jb250cm9sc1wiOm4/Yzp2b2lkIDAsLi4uXCJsaXN0Ym94XCI9PT11JiZ7cm9sZTpcImNvbWJvYm94XCJ9LC4uLlwibWVudVwiPT09dSYme2lkOnN9LC4uLlwibWVudVwiPT09dSYmZCYme3JvbGU6XCJtZW51aXRlbVwifSwuLi5cInNlbGVjdFwiPT09aSYme1wiYXJpYS1hdXRvY29tcGxldGVcIjpcIm5vbmVcIn0sLi4uXCJjb21ib2JveFwiPT09aSYme1wiYXJpYS1hdXRvY29tcGxldGVcIjpcImxpc3RcIn19LFt1LGMsZCxuLHMsaV0pLHA9dy51c2VNZW1vKCgpPT57bGV0IGU9e2lkOmMsLi4udSYme3JvbGU6dX19O3JldHVyblwidG9vbHRpcFwiPT09dXx8XCJsYWJlbFwiPT09aT9lOnsuLi5lLC4uLlwibWVudVwiPT09dSYme1wiYXJpYS1sYWJlbGxlZGJ5XCI6c319fSxbdSxjLHMsaV0pLGg9dy51c2VDYWxsYmFjaygoe2FjdGl2ZTplLHNlbGVjdGVkOnR9KT0+e2xldCBuPXtyb2xlOlwib3B0aW9uXCIsLi4uZSYme2lkOmAke2N9LWZ1aS1vcHRpb25gfX07c3dpdGNoKGkpe2Nhc2VcInNlbGVjdFwiOmNhc2VcImNvbWJvYm94XCI6cmV0dXJuey4uLm4sXCJhcmlhLXNlbGVjdGVkXCI6dH19cmV0dXJue319LFtjLGldKTtyZXR1cm4gdy51c2VNZW1vKCgpPT5hP3tyZWZlcmVuY2U6ZixmbG9hdGluZzpwLGl0ZW06aH06e30sW2EsZixwLGhdKX0oZW0se3JvbGU6XCJtZW51XCJ9KSxleD1saigpLGV3PWZ1bmN0aW9uKGUsdCl7bGV0e29wZW46bixvbk9wZW5DaGFuZ2U6cixlbGVtZW50czpvLGZsb2F0aW5nSWQ6YX09ZSx7bGlzdFJlZjppLGFjdGl2ZUluZGV4Omwsb25OYXZpZ2F0ZTpzPSgpPT57fSxlbmFibGVkOmM9ITAsc2VsZWN0ZWRJbmRleDp1PW51bGwsYWxsb3dFc2NhcGU6ZD0hMSxsb29wOmY9ITEsbmVzdGVkOnA9ITEscnRsOmg9ITEsdmlydHVhbDptPSExLGZvY3VzSXRlbU9uT3BlbjpnPVwiYXV0b1wiLGZvY3VzSXRlbU9uSG92ZXI6eT0hMCxvcGVuT25BcnJvd0tleURvd246dj0hMCxkaXNhYmxlZEluZGljZXM6YixvcmllbnRhdGlvbjpBPVwidmVydGljYWxcIixwYXJlbnRPcmllbnRhdGlvbjp4LGNvbHM6Qz0xLHNjcm9sbEl0ZW1JbnRvVmlldzpfPSEwLHZpcnR1YWxJdGVtUmVmOmssaXRlbVNpemVzOkUsZGVuc2U6aj0hMX09dCxTPWEyKGlfKG8uZmxvYXRpbmcpKSxPPWFFKCksQj1haigpO2FDKCgpPT57ZS5kYXRhUmVmLmN1cnJlbnQub3JpZW50YXRpb249QX0sW2UsQV0pO2xldCBQPWlDKG8uZG9tUmVmZXJlbmNlKSxJPXcudXNlUmVmKGcpLFQ9dy51c2VSZWYodT8/LTEpLHo9dy51c2VSZWYobnVsbCksRD13LnVzZVJlZighMCksTD1haCgoKT0+e3MoLTE9PT1ULmN1cnJlbnQ/bnVsbDpULmN1cnJlbnQpfSksTj13LnVzZVJlZihMKSxSPXcudXNlUmVmKCEhby5mbG9hdGluZyksTT13LnVzZVJlZihuKSxaPXcudXNlUmVmKCExKSxVPXcudXNlUmVmKCExKSxGPWEyKGIpLHE9YTIobiksSD1hMihfKSxWPWEyKHUpLFskLFddPXcudXNlU3RhdGUoKSxZPWFoKCgpPT57ZnVuY3Rpb24gZShlKXttPyhlLmlkPy5lbmRzV2l0aChcIi1mdWktb3B0aW9uXCIpJiYoZS5pZD1gJHthfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMTYpLnNsaWNlKDIsMTApfWApLFcoZS5pZCksQj8uZXZlbnRzLmVtaXQoXCJ2aXJ0dWFsZm9jdXNcIixlKSxrJiYoay5jdXJyZW50PWUpKTpsaChlLHtzeW5jOlouY3VycmVudCxwcmV2ZW50U2Nyb2xsOiEwfSl9bGV0IHQ9aS5jdXJyZW50W1QuY3VycmVudF0sbj1VLmN1cnJlbnQ7dCYmZSh0KSwoWi5jdXJyZW50P2U9PmUoKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpKCgpPT57bGV0IHI9aS5jdXJyZW50W1QuY3VycmVudF18fHQ7aWYoIXIpcmV0dXJuO3R8fGUocik7bGV0IG89SC5jdXJyZW50O28mJlgmJihufHwhRC5jdXJyZW50KSYmci5zY3JvbGxJbnRvVmlldz8uKFwiYm9vbGVhblwiPT10eXBlb2Ygbz97YmxvY2s6XCJuZWFyZXN0XCIsaW5saW5lOlwibmVhcmVzdFwifTpvKX0pfSk7YUMoKCk9PntjJiYobiYmby5mbG9hdGluZz9JLmN1cnJlbnQmJm51bGwhPXUmJihVLmN1cnJlbnQ9ITAsVC5jdXJyZW50PXUsTCgpKTpSLmN1cnJlbnQmJihULmN1cnJlbnQ9LTEsTi5jdXJyZW50KCkpKX0sW2MsbixvLmZsb2F0aW5nLHUsTF0pLGFDKCgpPT57aWYoYyYmbiYmby5mbG9hdGluZylpZihudWxsPT1sKXtpZihaLmN1cnJlbnQ9ITEsbnVsbCE9Vi5jdXJyZW50KXJldHVybjtpZihSLmN1cnJlbnQmJihULmN1cnJlbnQ9LTEsWSgpKSwoIU0uY3VycmVudHx8IVIuY3VycmVudCkmJkkuY3VycmVudCYmKG51bGwhPXouY3VycmVudHx8ITA9PT1JLmN1cnJlbnQmJm51bGw9PXouY3VycmVudCkpe2xldCBlPTAsdD0oKT0+e251bGw9PWkuY3VycmVudFswXT8oZTwyJiYoZT9yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6cXVldWVNaWNyb3Rhc2spKHQpLGUrPTEpOihULmN1cnJlbnQ9bnVsbD09ei5jdXJyZW50fHxseSh6LmN1cnJlbnQsQSxoKXx8cD9sYyhpLEYuY3VycmVudCk6bHUoaSxGLmN1cnJlbnQpLHouY3VycmVudD1udWxsLEwoKSl9O3QoKX19ZWxzZSBscyhpLGwpfHwoVC5jdXJyZW50PWwsWSgpLFUuY3VycmVudD0hMSl9LFtjLG4sby5mbG9hdGluZyxsLFYscCxpLEEsaCxMLFksRl0pLGFDKCgpPT57aWYoIWN8fG8uZmxvYXRpbmd8fCFCfHxtfHwhUi5jdXJyZW50KXJldHVybjtsZXQgZT1CLm5vZGVzUmVmLmN1cnJlbnQsdD1lLmZpbmQoZT0+ZS5pZD09PU8pPy5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZyxuPWl5KGl4KG8uZmxvYXRpbmcpKSxyPWUuc29tZShlPT5lLmNvbnRleHQmJml2KGUuY29udGV4dC5lbGVtZW50cy5mbG9hdGluZyxuKSk7dCYmIXImJkQuY3VycmVudCYmdC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSxbYyxvLmZsb2F0aW5nLEIsTyxtXSksYUMoKCk9PntOLmN1cnJlbnQ9TCxNLmN1cnJlbnQ9bixSLmN1cnJlbnQ9ISFvLmZsb2F0aW5nfSksYUMoKCk9PntufHwoei5jdXJyZW50PW51bGwsSS5jdXJyZW50PWcpfSxbbixnXSk7bGV0IEs9bnVsbCE9bCxYPXcudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7aWYoIXEuY3VycmVudClyZXR1cm47bGV0IHQ9aS5jdXJyZW50LmluZGV4T2YoZSk7LTEhPT10JiZULmN1cnJlbnQhPT10JiYoVC5jdXJyZW50PXQsTCgpKX1yZXR1cm57b25Gb2N1cyh7Y3VycmVudFRhcmdldDp0fSl7Wi5jdXJyZW50PSEwLGUodCl9LG9uQ2xpY2s6KHtjdXJyZW50VGFyZ2V0OmV9KT0+ZS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLG9uTW91c2VNb3ZlKHtjdXJyZW50VGFyZ2V0OnR9KXtaLmN1cnJlbnQ9ITAsVS5jdXJyZW50PSExLHkmJmUodCl9LG9uUG9pbnRlckxlYXZlKHtwb2ludGVyVHlwZTplfSl7RC5jdXJyZW50JiZcInRvdWNoXCIhPT1lJiYoWi5jdXJyZW50PSEwLHkmJihULmN1cnJlbnQ9LTEsTCgpLG18fFMuY3VycmVudD8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSkpfX19LFtxLFMseSxpLEwsbV0pLEc9dy51c2VDYWxsYmFjaygoKT0+eD8/Qj8ubm9kZXNSZWYuY3VycmVudC5maW5kKGU9PmUuaWQ9PT1PKT8uY29udGV4dD8uZGF0YVJlZj8uY3VycmVudC5vcmllbnRhdGlvbixbTyxCLHhdKSxRPWFoKGU9Pnt2YXIgdCxhLGwscyxjO2lmKEQuY3VycmVudD0hMSxaLmN1cnJlbnQ9ITAsMjI5PT09ZS53aGljaHx8IXEuY3VycmVudCYmZS5jdXJyZW50VGFyZ2V0PT09Uy5jdXJyZW50KXJldHVybjtpZihwJiYodD1lLmtleSxhPUEsbD1oLHM9QyxcImJvdGhcIj09PWF8fFwiaG9yaXpvbnRhbFwiPT09YSYmcyYmcz4xP1wiRXNjYXBlXCI9PT10OmxtKGEsbD90PT09aWg6dD09PWlwLHQ9PT1pbSkpKXtsZyhlLmtleSxHKCkpfHxpYShlKSxyKCExLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIiksYU4oby5kb21SZWZlcmVuY2UpJiYobT9CPy5ldmVudHMuZW1pdChcInZpcnR1YWxmb2N1c1wiLG8uZG9tUmVmZXJlbmNlKTpvLmRvbVJlZmVyZW5jZS5mb2N1cygpKTtyZXR1cm59bGV0IHU9VC5jdXJyZW50LGc9bGMoaSxiKSx5PWx1KGksYik7aWYoUHx8KFwiSG9tZVwiPT09ZS5rZXkmJihpYShlKSxULmN1cnJlbnQ9ZyxMKCkpLFwiRW5kXCI9PT1lLmtleSYmKGlhKGUpLFQuY3VycmVudD15LEwoKSkpLEM+MSl7bGV0IHQ9RXx8QXJyYXkuZnJvbSh7bGVuZ3RoOmkuY3VycmVudC5sZW5ndGh9LCgpPT4oe3dpZHRoOjEsaGVpZ2h0OjF9KSksbj1mdW5jdGlvbihlLHQsbil7bGV0IHI9W10sbz0wO3JldHVybiBlLmZvckVhY2goKHt3aWR0aDplLGhlaWdodDphfSxpKT0+e2xldCBsPSExO2ZvcihuJiYobz0wKTshbDspe2xldCBuPVtdO2ZvcihsZXQgcj0wO3I8ZTtyKz0xKWZvcihsZXQgZT0wO2U8YTtlKz0xKW4ucHVzaChvK3IrZSp0KTtvJXQrZTw9dCYmbi5ldmVyeShlPT5udWxsPT1yW2VdKT8obi5mb3JFYWNoKGU9PntyW2VdPWl9KSxsPSEwKTpvKz0xfX0pLFsuLi5yXX0odCxDLGopLHI9bi5maW5kSW5kZXgoZT0+bnVsbCE9ZSYmIWxmKGksZSxiKSksbz1uLnJlZHVjZSgoZSx0LG4pPT5udWxsPT10fHxsZihpLHQsYik/ZTpuLC0xKSxhPW5bZnVuY3Rpb24oZSx7ZXZlbnQ6dCxvcmllbnRhdGlvbjpuLGxvb3A6cixydGw6byxjb2xzOmEsZGlzYWJsZWRJbmRpY2VzOmksbWluSW5kZXg6bCxtYXhJbmRleDpzLHByZXZJbmRleDpjLHN0b3BFdmVudDp1PSExfSl7bGV0IGQ9YztpZih0LmtleT09PWltKXtpZih1JiZpYSh0KSwtMT09PWMpZD1zO2Vsc2UgaWYoZD1sZChlLHtzdGFydGluZ0luZGV4OmQsYW1vdW50OmEsZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczppfSksciYmKGMtYTxsfHxkPDApKXtsZXQgZT1jJWEsdD1zJWEsbj1zLSh0LWUpO2Q9dD09PWU/czp0PmU/bjpuLWF9bHMoZSxkKSYmKGQ9Yyl9aWYodC5rZXk9PT1pZyYmKHUmJmlhKHQpLC0xPT09Yz9kPWw6KGQ9bGQoZSx7c3RhcnRpbmdJbmRleDpjLGFtb3VudDphLGRpc2FibGVkSW5kaWNlczppfSksciYmYythPnMmJihkPWxkKGUse3N0YXJ0aW5nSW5kZXg6YyVhLWEsYW1vdW50OmEsZGlzYWJsZWRJbmRpY2VzOml9KSkpLGxzKGUsZCkmJihkPWMpKSxcImJvdGhcIj09PW4pe2xldCBuPWlRKGMvYSk7dC5rZXk9PT0obz9pcDppaCkmJih1JiZpYSh0KSxjJWEhPWEtMT8oZD1sZChlLHtzdGFydGluZ0luZGV4OmMsZGlzYWJsZWRJbmRpY2VzOml9KSxyJiZsbChkLGEsbikmJihkPWxkKGUse3N0YXJ0aW5nSW5kZXg6Yy1jJWEtMSxkaXNhYmxlZEluZGljZXM6aX0pKSk6ciYmKGQ9bGQoZSx7c3RhcnRpbmdJbmRleDpjLWMlYS0xLGRpc2FibGVkSW5kaWNlczppfSkpLGxsKGQsYSxuKSYmKGQ9YykpLHQua2V5PT09KG8/aWg6aXApJiYodSYmaWEodCksYyVhIT0wPyhkPWxkKGUse3N0YXJ0aW5nSW5kZXg6YyxkZWNyZW1lbnQ6ITAsZGlzYWJsZWRJbmRpY2VzOml9KSxyJiZsbChkLGEsbikmJihkPWxkKGUse3N0YXJ0aW5nSW5kZXg6YysoYS1jJWEpLGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6aX0pKSk6ciYmKGQ9bGQoZSx7c3RhcnRpbmdJbmRleDpjKyhhLWMlYSksZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczppfSkpLGxsKGQsYSxuKSYmKGQ9YykpO2xldCBsPWlRKHMvYSk9PT1uO2xzKGUsZCkmJihkPXImJmw/dC5rZXk9PT0obz9paDppcCk/czpsZChlLHtzdGFydGluZ0luZGV4OmMtYyVhLTEsZGlzYWJsZWRJbmRpY2VzOml9KTpjKX1yZXR1cm4gZH0oe2N1cnJlbnQ6bi5tYXAoZT0+bnVsbCE9ZT9pLmN1cnJlbnRbZV06bnVsbCl9LHtldmVudDplLG9yaWVudGF0aW9uOkEsbG9vcDpmLHJ0bDpoLGNvbHM6QyxkaXNhYmxlZEluZGljZXM6KGM9Wy4uLihcImZ1bmN0aW9uXCIhPXR5cGVvZiBiP2I6bnVsbCl8fGkuY3VycmVudC5tYXAoKGUsdCk9PmxmKGksdCxiKT90OnZvaWQgMCksdm9pZCAwXSxuLmZsYXRNYXAoKGUsdCk9PmMuaW5jbHVkZXMoZSk/W3RdOltdKSksbWluSW5kZXg6cixtYXhJbmRleDpvLHByZXZJbmRleDpmdW5jdGlvbihlLHQsbixyLG8pe2lmKC0xPT09ZSlyZXR1cm4gLTE7bGV0IGE9bi5pbmRleE9mKGUpLGk9dFtlXTtzd2l0Y2gobyl7Y2FzZVwidGxcIjpyZXR1cm4gYTtjYXNlXCJ0clwiOmlmKCFpKXJldHVybiBhO3JldHVybiBhK2kud2lkdGgtMTtjYXNlXCJibFwiOmlmKCFpKXJldHVybiBhO3JldHVybiBhKyhpLmhlaWdodC0xKSpyO2Nhc2VcImJyXCI6cmV0dXJuIG4ubGFzdEluZGV4T2YoZSk7ZGVmYXVsdDpyZXR1cm4gLTF9fShULmN1cnJlbnQ+eT9nOlQuY3VycmVudCx0LG4sQyxlLmtleT09PWlnP1wiYmxcIjplLmtleT09PShoP2lwOmloKT9cInRyXCI6XCJ0bFwiKSxzdG9wRXZlbnQ6ITB9KV07aWYobnVsbCE9YSYmKFQuY3VycmVudD1hLEwoKSksXCJib3RoXCI9PT1BKXJldHVybn1pZihsZyhlLmtleSxBKSl7aWYoaWEoZSksbiYmIW0mJml5KGUuY3VycmVudFRhcmdldC5vd25lckRvY3VtZW50KT09PWUuY3VycmVudFRhcmdldCl7VC5jdXJyZW50PWx5KGUua2V5LEEsaCk/Zzp5LEwoKTtyZXR1cm59bHkoZS5rZXksQSxoKT9mP1QuY3VycmVudD11Pj15P2QmJnUhPT1pLmN1cnJlbnQubGVuZ3RoPy0xOmc6bGQoaSx7c3RhcnRpbmdJbmRleDp1LGRpc2FibGVkSW5kaWNlczpifSk6VC5jdXJyZW50PU1hdGgubWluKHksbGQoaSx7c3RhcnRpbmdJbmRleDp1LGRpc2FibGVkSW5kaWNlczpifSkpOmY/VC5jdXJyZW50PXU8PWc/ZCYmLTEhPT11P2kuY3VycmVudC5sZW5ndGg6eTpsZChpLHtzdGFydGluZ0luZGV4OnUsZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczpifSk6VC5jdXJyZW50PU1hdGgubWF4KGcsbGQoaSx7c3RhcnRpbmdJbmRleDp1LGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6Yn0pKSxscyhpLFQuY3VycmVudCkmJihULmN1cnJlbnQ9LTEpLEwoKX19KSxKPXcudXNlTWVtbygoKT0+bSYmbiYmSyYme1wiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI6JH0sW20sbixLLCRdKSxlZT13LnVzZU1lbW8oKCk9Pih7XCJhcmlhLW9yaWVudGF0aW9uXCI6XCJib3RoXCI9PT1BP3ZvaWQgMDpBLC4uLiFQP0o6e30sb25LZXlEb3duKGUpe2lmKFwiVGFiXCI9PT1lLmtleSYmZS5zaGlmdEtleSYmbiYmIW0pe2lhKGUpLHIoITEsZS5uYXRpdmVFdmVudCxcImxpc3QtbmF2aWdhdGlvblwiKSxhTihvLmRvbVJlZmVyZW5jZSkmJm8uZG9tUmVmZXJlbmNlLmZvY3VzKCk7cmV0dXJufVEoZSl9LG9uUG9pbnRlck1vdmUoKXtELmN1cnJlbnQ9ITB9fSksW0osUSxBLFAscixuLG0sby5kb21SZWZlcmVuY2VdKSxldD13LnVzZU1lbW8oKCk9PntmdW5jdGlvbiBlKGUpe1wiYXV0b1wiPT09ZyYmaWkoZS5uYXRpdmVFdmVudCkmJihJLmN1cnJlbnQ9ITApfWZ1bmN0aW9uIHQoZSl7SS5jdXJyZW50PWcsXCJhdXRvXCI9PT1nJiZpbChlLm5hdGl2ZUV2ZW50KSYmKEkuY3VycmVudD0hMCl9cmV0dXJuey4uLkosb25LZXlEb3duKGUpe3ZhciB0LG87RC5jdXJyZW50PSExO2xldCBhPWUua2V5LnN0YXJ0c1dpdGgoXCJBcnJvd1wiKSxsPSh0PWUua2V5LG89RygpLGxtKG8saD90PT09aXA6dD09PWloLHQ9PT1pZykpLHM9bGcoZS5rZXksQSksYz0ocD9sOnMpfHxcIkVudGVyXCI9PT1lLmtleXx8XCJcIj09PWUua2V5LnRyaW0oKTtpZihtJiZuKXJldHVybiBRKGUpO2lmKG58fHZ8fCFhKXtpZihjKXtsZXQgdD1sZyhlLmtleSxHKCkpO3ouY3VycmVudD1wJiZ0P251bGw6ZS5rZXl9aWYocCl7bCYmKGlhKGUpLG4/KFQuY3VycmVudD1sYyhpLEYuY3VycmVudCksTCgpKTpyKCEwLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIikpO3JldHVybn1zJiYobnVsbCE9dSYmKFQuY3VycmVudD11KSxpYShlKSwhbiYmdj9yKCEwLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIik6UShlKSxuJiZMKCkpfX0sb25Gb2N1cygpe24mJiFtJiYoVC5jdXJyZW50PS0xLEwoKSl9LG9uUG9pbnRlckRvd246dCxvblBvaW50ZXJFbnRlcjp0LG9uTW91c2VEb3duOmUsb25DbGljazplfX0sW0osUSxGLGcsaSxwLEwscixuLHYsQSxHLGgsdSxtXSk7cmV0dXJuIHcudXNlTWVtbygoKT0+Yz97cmVmZXJlbmNlOmV0LGZsb2F0aW5nOmVlLGl0ZW06WH06e30sW2MsZXQsZWUsWF0pfShlbSx7ZW5hYmxlZDohcyxsaXN0UmVmOlIsYWN0aXZlSW5kZXg6aixuZXN0ZWQ6dm9pZCAwIT09dC50eXBlLGxvb3A6dSxvcmllbnRhdGlvbjpkLHBhcmVudE9yaWVudGF0aW9uOlwibWVudWJhclwiPT09dC50eXBlP3QuY29udGV4dC5vcmllbnRhdGlvbjp2b2lkIDAscnRsOlwicnRsXCI9PT1leCxkaXNhYmxlZEluZGljZXM6bFcsb25OYXZpZ2F0ZTpTLG9wZW5PbkFycm93S2V5RG93bjpcImNvbnRleHQtbWVudVwiIT09dC50eXBlfSksZUM9dy51c2VSZWYoITEpLGVfPWZ1bmN0aW9uKGUsdCl7bGV0e29wZW46bixkYXRhUmVmOnJ9PWUse2xpc3RSZWY6byxhY3RpdmVJbmRleDphLG9uTWF0Y2g6aSxvblR5cGluZ0NoYW5nZTpsLGVuYWJsZWQ6cz0hMCxmaW5kTWF0Y2g6Yz1udWxsLHJlc2V0TXM6dT03NTAsaWdub3JlS2V5czpkPVtdLHNlbGVjdGVkSW5kZXg6Zj1udWxsfT10LHA9YWQoKSxoPXcudXNlUmVmKFwiXCIpLG09dy51c2VSZWYoZj8/YT8/LTEpLGc9dy51c2VSZWYobnVsbCkseT1haChpKSx2PWFoKGwpLGI9YTIoYyksQT1hMihkKTthQygoKT0+e24mJihwLmNsZWFyKCksZy5jdXJyZW50PW51bGwsaC5jdXJyZW50PVwiXCIpfSxbbixwXSksYUMoKCk9PntuJiZcIlwiPT09aC5jdXJyZW50JiYobS5jdXJyZW50PWY/P2E/Py0xKX0sW24sZixhXSk7bGV0IHg9YWgoZT0+e2U/ci5jdXJyZW50LnR5cGluZ3x8KHIuY3VycmVudC50eXBpbmc9ZSx2KGUpKTpyLmN1cnJlbnQudHlwaW5nJiYoci5jdXJyZW50LnR5cGluZz1lLHYoZSkpfSksQz1haChlPT57ZnVuY3Rpb24gdChlLHQsbil7bGV0IHI9Yi5jdXJyZW50P2IuY3VycmVudCh0LG4pOnQuZmluZChlPT5lPy50b0xvY2FsZUxvd2VyQ2FzZSgpLmluZGV4T2Yobi50b0xvY2FsZUxvd2VyQ2FzZSgpKT09PTApO3JldHVybiByP2UuaW5kZXhPZihyKTotMX1sZXQgcj1vLmN1cnJlbnQ7aWYoaC5jdXJyZW50Lmxlbmd0aD4wJiZcIiBcIiE9PWguY3VycmVudFswXSYmKC0xPT09dChyLHIsaC5jdXJyZW50KT94KCExKTpcIiBcIj09PWUua2V5JiZpYShlKSksbnVsbD09cnx8QS5jdXJyZW50LmluY2x1ZGVzKGUua2V5KXx8MSE9PWUua2V5Lmxlbmd0aHx8ZS5jdHJsS2V5fHxlLm1ldGFLZXl8fGUuYWx0S2V5KXJldHVybjtuJiZcIiBcIiE9PWUua2V5JiYoaWEoZSkseCghMCkpLHIuZXZlcnkoZT0+IWV8fGVbMF0/LnRvTG9jYWxlTG93ZXJDYXNlKCkhPT1lWzFdPy50b0xvY2FsZUxvd2VyQ2FzZSgpKSYmaC5jdXJyZW50PT09ZS5rZXkmJihoLmN1cnJlbnQ9XCJcIixtLmN1cnJlbnQ9Zy5jdXJyZW50KSxoLmN1cnJlbnQrPWUua2V5LHAuc3RhcnQodSwoKT0+e2guY3VycmVudD1cIlwiLG0uY3VycmVudD1nLmN1cnJlbnQseCghMSl9KTtsZXQgYT1tLmN1cnJlbnQsaT10KHIsWy4uLnIuc2xpY2UoKGF8fDApKzEpLC4uLnIuc2xpY2UoMCwoYXx8MCkrMSldLGguY3VycmVudCk7LTEhPT1pPyh5KGkpLGcuY3VycmVudD1pKTpcIiBcIiE9PWUua2V5JiYoaC5jdXJyZW50PVwiXCIseCghMSkpfSksXz13LnVzZU1lbW8oKCk9Pih7b25LZXlEb3duOkN9KSxbQ10pLGs9dy51c2VNZW1vKCgpPT4oe29uS2V5RG93bjpDLG9uS2V5VXAoZSl7XCIgXCI9PT1lLmtleSYmeCghMSl9fSksW0MseF0pO3JldHVybiB3LnVzZU1lbW8oKCk9PnM/e3JlZmVyZW5jZTpfLGZsb2F0aW5nOmt9Ont9LFtzLF8sa10pfShlbSx7bGlzdFJlZjpNLGFjdGl2ZUluZGV4OmoscmVzZXRNczo1MDAsb25NYXRjaDplPT57WSYmZSE9PWomJlMoZSl9LG9uVHlwaW5nQ2hhbmdlOncudXNlQ2FsbGJhY2soZT0+e2VDLmN1cnJlbnQ9ZX0sW10pfSkse2dldFJlZmVyZW5jZVByb3BzOmVrLGdldEZsb2F0aW5nUHJvcHM6ZUUsZ2V0SXRlbVByb3BzOmVqfT1sdihbZWcsZXYsZWIsZXksZUEsZXcsZV9dKSxlUz1mdW5jdGlvbihlKXtsZXR7ZW5hYmxlZDp0PSEwLG1vdXNlRG93bkFjdGlvbjpuLG9wZW46cn09ZSxvPXcudXNlUmVmKCExKTtyZXR1cm4gdy51c2VNZW1vKCgpPT50P3tvbk1vdXNlRG93bjplPT57KFwib3BlblwiPT09biYmIXJ8fFwiY2xvc2VcIj09PW4mJnIpJiYoby5jdXJyZW50PSEwLGxTKGUuY3VycmVudFRhcmdldCkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsKCk9PntvLmN1cnJlbnQ9ITF9LHtvbmNlOiEwfSkpfSxvbkNsaWNrOmU9PntvLmN1cnJlbnQmJihvLmN1cnJlbnQ9ITEsZS5wcmV2ZW50QmFzZVVJSGFuZGxlcigpKX19OmlaLFt0LG4scl0pfSh7b3BlbjpZLGVuYWJsZWQ6XCJtZW51YmFyXCI9PT10LnR5cGUsbW91c2VEb3duQWN0aW9uOlwib3BlblwifSksZU89dy51c2VNZW1vKCgpPT57bGV0IGU9bFUoZWsoKSx7b25Nb3VzZUVudGVyKCl7RSghMCl9LG9uTW91c2VNb3ZlKCl7JCghMCl9fSxlcixlUyk7cmV0dXJuIGRlbGV0ZSBlLnJvbGUsZX0sW2VrLGVTLCQsZXJdKSxlQj13LnVzZU1lbW8oKCk9PmVFKHtvbk1vdXNlRW50ZXIoKXtXJiZcIm1lbnVcIiE9PXQudHlwZXx8RSghMSl9LG9uTW91c2VNb3ZlKCl7JCghMCl9LG9uQ2xpY2soKXtXJiZFKCExKX19KSxbZUUsVyx0LnR5cGUsJF0pLGVQPXcudXNlTWVtbygoKT0+ZWooKSxbZWpdKSxlST13LnVzZU1lbW8oKCk9Pih7YWN0aXZlSW5kZXg6aixzZXRBY3RpdmVJbmRleDpTLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6dC50eXBlP3QuY29udGV4dC5hbGxvd01vdXNlVXBUcmlnZ2VyUmVmOmxZLGZsb2F0aW5nUm9vdENvbnRleHQ6ZW0saXRlbVByb3BzOmVQLHBvcHVwUHJvcHM6ZUIsdHJpZ2dlclByb3BzOmVPLGl0ZW1Eb21FbGVtZW50czpSLGl0ZW1MYWJlbHM6TSxtb3VudGVkOkosb3BlbjpZLHBvcHVwUmVmOkwscG9zaXRpb25lclJlZjpOLHNldE9wZW46ZXAsc2V0UG9zaXRpb25lckVsZW1lbnQ6USx0cmlnZ2VyRWxlbWVudDp5LHNldFRyaWdnZXJFbGVtZW50OnYsdHJhbnNpdGlvblN0YXR1czpldCxsYXN0T3BlbkNoYW5nZVJlYXNvbjpPLGluc3RhbnRUeXBlOkMsb25PcGVuQ2hhbmdlQ29tcGxldGU6aSxzZXRIb3ZlckVuYWJsZWQ6RSx0eXBpbmdSZWY6ZUMsbW9kYWw6SCxkaXNhYmxlZDpzLHBhcmVudDp0LHJvb3RJZDpxLGFsbG93TW91c2VFbnRlcjpWLHNldEFsbG93TW91c2VFbnRlcjokfSksW2osZW0sZVAsZUIsZU8sUixNLEosWSxOLGVwLGV0LHksUSxPLEMsaSxILHMsdCxxLFYsJF0pLGVUPSgwLEEuanN4KShseC5Qcm92aWRlcix7dmFsdWU6ZUksY2hpbGRyZW46cn0pO3JldHVybiB2b2lkIDA9PT10LnR5cGV8fFwiY29udGV4dC1tZW51XCI9PT10LnR5cGU/KDAsQS5qc3gpKGFPLHtjaGlsZHJlbjplVH0pOmVUfTtmdW5jdGlvbiBsWChlLHQsbixyKXt2YXIgbyxhLGksbCxzO2xldCBjPWFsKGxHKS5jdXJyZW50O3JldHVybiBvPWMsYT1lLGk9dCxsPW4scz1yLChvLnJlZnNbMF0hPT1hfHxvLnJlZnNbMV0hPT1pfHxvLnJlZnNbMl0hPT1sfHxvLnJlZnNbM10hPT1zKSYmbFEoYyxbZSx0LG4scl0pLGMuY2FsbGJhY2t9ZnVuY3Rpb24gbEcoKXtyZXR1cm57Y2FsbGJhY2s6bnVsbCxjbGVhbnVwOm51bGwscmVmczpbXX19ZnVuY3Rpb24gbFEoZSx0KXtpZihlLnJlZnM9dCx0LmV2ZXJ5KGU9Pm51bGw9PWUpKXtlLmNhbGxiYWNrPW51bGw7cmV0dXJufWUuY2FsbGJhY2s9bj0+e2lmKGUuY2xlYW51cCYmKGUuY2xlYW51cCgpLGUuY2xlYW51cD1udWxsKSxudWxsIT1uKXtsZXQgcj1BcnJheSh0Lmxlbmd0aCkuZmlsbChudWxsKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrPTEpe2xldCBvPXRbZV07aWYobnVsbCE9bylzd2l0Y2godHlwZW9mIG8pe2Nhc2VcImZ1bmN0aW9uXCI6e2xldCB0PW8obik7XCJmdW5jdGlvblwiPT10eXBlb2YgdCYmKHJbZV09dCk7YnJlYWt9Y2FzZVwib2JqZWN0XCI6by5jdXJyZW50PW59fWUuY2xlYW51cD0oKT0+e2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9MSl7bGV0IG49dFtlXTtpZihudWxsIT1uKXN3aXRjaCh0eXBlb2Ygbil7Y2FzZVwiZnVuY3Rpb25cIjp7bGV0IHQ9cltlXTtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QoKTpuKG51bGwpO2JyZWFrfWNhc2VcIm9iamVjdFwiOm4uY3VycmVudD1udWxsfX19fX19bGV0IGxKPWZ1bmN0aW9uKGUpe3JldHVybiBlLnN0YXJ0aW5nU3R5bGU9XCJkYXRhLXN0YXJ0aW5nLXN0eWxlXCIsZS5lbmRpbmdTdHlsZT1cImRhdGEtZW5kaW5nLXN0eWxlXCIsZX0oe30pLGwwPXtbbEouc3RhcnRpbmdTdHlsZV06XCJcIn0sbDE9e1tsSi5lbmRpbmdTdHlsZV06XCJcIn0sbDI9e3RyYW5zaXRpb25TdGF0dXM6ZT0+XCJzdGFydGluZ1wiPT09ZT9sMDpcImVuZGluZ1wiPT09ZT9sMTpudWxsfSxsND1mdW5jdGlvbihlKXtyZXR1cm4gZS5vcGVuPVwiZGF0YS1vcGVuXCIsZS5jbG9zZWQ9XCJkYXRhLWNsb3NlZFwiLGVbZS5zdGFydGluZ1N0eWxlPWxKLnN0YXJ0aW5nU3R5bGVdPVwic3RhcnRpbmdTdHlsZVwiLGVbZS5lbmRpbmdTdHlsZT1sSi5lbmRpbmdTdHlsZV09XCJlbmRpbmdTdHlsZVwiLGUuYW5jaG9ySGlkZGVuPVwiZGF0YS1hbmNob3ItaGlkZGVuXCIsZX0oe30pLGw1PWZ1bmN0aW9uKGUpe3JldHVybiBlLnBvcHVwT3Blbj1cImRhdGEtcG9wdXAtb3BlblwiLGUucHJlc3NlZD1cImRhdGEtcHJlc3NlZFwiLGV9KHt9KSxsMz17W2w1LnBvcHVwT3Blbl06XCJcIn0sbDY9e1tsNS5wb3B1cE9wZW5dOlwiXCIsW2w1LnByZXNzZWRdOlwiXCJ9LGw5PXtbbDQub3Blbl06XCJcIn0sbDg9e1tsNC5jbG9zZWRdOlwiXCJ9LGw3PXtbbDQuYW5jaG9ySGlkZGVuXTpcIlwifSxzZT17b3BlbjplPT5lP2wzOm51bGx9LHN0PXtvcGVuOmU9PmU/bDY6bnVsbH0sc249e29wZW46ZT0+ZT9sOTpsOCxhbmNob3JIaWRkZW46ZT0+ZT9sNzpudWxsfSxzcj1wYXJzZUludCh3LnZlcnNpb24sMTApO2Z1bmN0aW9uIHNvKGUsdCxuPXt9KXtsZXQgcj10LnJlbmRlcixvPWZ1bmN0aW9uKGUsdD17fSl7dmFyIG4scjtsZXQgbyx7Y2xhc3NOYW1lOmEscmVuZGVyOml9PWUse3N0YXRlOmw9aVoscmVmOnMscHJvcHM6YyxkaXNhYmxlU3R5bGVIb29rczp1LGN1c3RvbVN0eWxlSG9va01hcHBpbmc6ZCxlbmFibGVkOmY9ITB9PXQscD1mPyhuPWEscj1sLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bihyKTpuKTp2b2lkIDA7ITAhPT11JiYobz13LnVzZU1lbW8oKCk9PmY/ZnVuY3Rpb24oZSx0KXtsZXQgbj17fTtmb3IobGV0IHIgaW4gZSl7bGV0IG89ZVtyXTtpZih0Py5oYXNPd25Qcm9wZXJ0eShyKSl7bGV0IGU9dFtyXShvKTtudWxsIT1lJiZPYmplY3QuYXNzaWduKG4sZSk7Y29udGludWV9ITA9PT1vP25bYGRhdGEtJHtyLnRvTG93ZXJDYXNlKCl9YF09XCJcIjpvJiYobltgZGF0YS0ke3IudG9Mb3dlckNhc2UoKX1gXT1vLnRvU3RyaW5nKCkpfXJldHVybiBufShsLGQpOmlaLFtsLGQsZl0pKTtsZXQgaD1mP2xNKG8sQXJyYXkuaXNBcnJheShjKT9mdW5jdGlvbihlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIGxaO2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gbEgoZVswXSxsWik7bGV0IHQ9ey4uLmxIKGVbMF0sbFopfTtmb3IobGV0IG49MTtuPGUubGVuZ3RoO24rPTEpdD1sRih0LGVbbl0pO3JldHVybiB0fShjKTpjKT8/aVo6aVo7cmV0dXJuKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCYmKGY/QXJyYXkuaXNBcnJheShzKT9oLnJlZj1mdW5jdGlvbihlKXt2YXIgdCxuO2xldCByPWFsKGxHKS5jdXJyZW50O3JldHVybiB0PXIsbj1lLCh0LnJlZnMubGVuZ3RoIT09bi5sZW5ndGh8fHQucmVmcy5zb21lKChlLHQpPT5lIT09blt0XSkpJiZsUShyLGUpLHIuY2FsbGJhY2t9KFtoLnJlZixzYShpKSwuLi5zXSk6aC5yZWY9bFgoaC5yZWYsc2EoaSkscyk6bFgobnVsbCxudWxsKSksZik/KHZvaWQgMCE9PXAmJihoLmNsYXNzTmFtZT1sJChoLmNsYXNzTmFtZSxwKSksaCk6aVp9KHQsbik7cmV0dXJuITE9PT1uLmVuYWJsZWQ/bnVsbDpmdW5jdGlvbihlLHQsbixyKXtpZih0KXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KXJldHVybiB0KG4scik7bGV0IGU9bFUobix0LnByb3BzKTtyZXR1cm4gZS5yZWY9bi5yZWYsdy5jbG9uZUVsZW1lbnQodCxlKX1pZihlJiZcInN0cmluZ1wiPT10eXBlb2YgZSl7dmFyIG8sYTtyZXR1cm4gbz1lLGE9bixcImJ1dHRvblwiPT09bz8oMCxBLmpzeCkoXCJidXR0b25cIix7dHlwZTpcImJ1dHRvblwiLC4uLmF9KTpcImltZ1wiPT09bz8oMCxBLmpzeCkoXCJpbWdcIix7YWx0OlwiXCIsLi4uYX0pOncuY3JlYXRlRWxlbWVudChvLGEpfXRocm93IEVycm9yKFwiQmFzZSBVSTogUmVuZGVyIGVsZW1lbnQgb3IgZnVuY3Rpb24gYXJlIG5vdCBkZWZpbmVkLlwiKX0oZSxyLG8sbi5zdGF0ZT8/aVopfWZ1bmN0aW9uIHNhKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlP3NyPj0xOT9lLnByb3BzLnJlZjplLnJlZjpudWxsfWxldCBzaT13LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBzbChlPSExKXtsZXQgdD13LnVzZUNvbnRleHQoc2kpO2lmKHZvaWQgMD09PXQmJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogQ29tcG9zaXRlUm9vdENvbnRleHQgaXMgbWlzc2luZy4gQ29tcG9zaXRlIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8Q29tcG9zaXRlLlJvb3Q+LlwiKTtyZXR1cm4gdH1mdW5jdGlvbiBzcyhlPXt9KXtsZXR7ZGlzYWJsZWQ6dD0hMSxmb2N1c2FibGVXaGVuRGlzYWJsZWQ6bix0YWJJbmRleDpyPTAsbmF0aXZlOm89ITB9PWUsYT13LnVzZVJlZihudWxsKSxpPXZvaWQgMCE9PXNsKCEwKSxsPWFoKCgpPT57bGV0IGU9YS5jdXJyZW50O3JldHVybiEhKGU/LnRhZ05hbWU9PT1cIkFcIiYmZT8uaHJlZil9KSx7cHJvcHM6c309ZnVuY3Rpb24oZSl7bGV0e2ZvY3VzYWJsZVdoZW5EaXNhYmxlZDp0LGRpc2FibGVkOm4sY29tcG9zaXRlOnI9ITEsdGFiSW5kZXg6bz0wLGlzTmF0aXZlQnV0dG9uOmF9PWUsaT1yJiYhMSE9PXQsbD1yJiYhMT09PXQ7cmV0dXJue3Byb3BzOncudXNlTWVtbygoKT0+e2xldCBlPXtvbktleURvd24oZSl7biYmdCYmXCJUYWJcIiE9PWUua2V5JiZlLnByZXZlbnREZWZhdWx0KCl9fTtyZXR1cm4gcnx8KGUudGFiSW5kZXg9bywhYSYmbiYmKGUudGFiSW5kZXg9dD9vOi0xKSksKGEmJih0fHxpKXx8IWEmJm4pJiYoZVtcImFyaWEtZGlzYWJsZWRcIl09biksYSYmKCF0fHxsKSYmKGUuZGlzYWJsZWQ9biksZX0sW3Isbix0LGksbCxhLG9dKX19KHtmb2N1c2FibGVXaGVuRGlzYWJsZWQ6bixkaXNhYmxlZDp0LGNvbXBvc2l0ZTppLHRhYkluZGV4OnIsaXNOYXRpdmVCdXR0b246b30pO3JldHVybiBhQygoKT0+e2xldCBlPWEuY3VycmVudDtlIGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQmJmkmJnQmJnZvaWQgMD09PXMuZGlzYWJsZWQmJmUuZGlzYWJsZWQmJihlLmRpc2FibGVkPSExKX0sW3Qscy5kaXNhYmxlZCxpXSkse2dldEJ1dHRvblByb3BzOncudXNlQ2FsbGJhY2soKGU9e30pPT57bGV0e29uQ2xpY2s6bixvbk1vdXNlRG93bjpyLG9uS2V5VXA6YSxvbktleURvd246aSxvblBvaW50ZXJEb3duOmMsLi4udX09ZTtyZXR1cm4gbFUoe3R5cGU6bz9cImJ1dHRvblwiOnZvaWQgMCxvbkNsaWNrKGUpe2lmKHQpcmV0dXJuIHZvaWQgZS5wcmV2ZW50RGVmYXVsdCgpO24/LihlKX0sb25Nb3VzZURvd24oZSl7dHx8cj8uKGUpfSxvbktleURvd24oZSl7aWYodHx8KGxWKGUpLGk/LihlKSksZS5iYXNlVUlIYW5kbGVyUHJldmVudGVkKXJldHVybjtsZXQgcj1lLnRhcmdldD09PWUuY3VycmVudFRhcmdldCYmIW8mJiFsKCkmJiF0LGE9XCJFbnRlclwiPT09ZS5rZXkscz1cIiBcIj09PWUua2V5O3ImJigoc3x8YSkmJmUucHJldmVudERlZmF1bHQoKSxhJiZuPy4oZSkpfSxvbktleVVwKGUpe3R8fChsVihlKSxhPy4oZSkpLCFlLmJhc2VVSUhhbmRsZXJQcmV2ZW50ZWQmJihlLnRhcmdldCE9PWUuY3VycmVudFRhcmdldHx8b3x8dHx8XCIgXCIhPT1lLmtleXx8bj8uKGUpKX0sb25Qb2ludGVyRG93bihlKXtpZih0KXJldHVybiB2b2lkIGUucHJldmVudERlZmF1bHQoKTtjPy4oZSl9fSxvP3ZvaWQgMDp7cm9sZTpcImJ1dHRvblwifSxzLHUpfSxbdCxzLG8sbF0pLGJ1dHRvblJlZjphfX1sZXQgc2M9dy5jcmVhdGVDb250ZXh0KHtyZWdpc3RlcjooKT0+e30sdW5yZWdpc3RlcjooKT0+e30sc3Vic2NyaWJlTWFwQ2hhbmdlOigpPT4oKT0+e30sZWxlbWVudHNSZWY6e2N1cnJlbnQ6W119LG5leHRJbmRleFJlZjp7Y3VycmVudDowfX0pLHN1PWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuR3Vlc3NGcm9tT3JkZXI9MV09XCJHdWVzc0Zyb21PcmRlclwiLGV9KHt9KTtmdW5jdGlvbiBzZChlPXt9KXtsZXR7bGFiZWw6dCxtZXRhZGF0YTpuLHRleHRSZWY6cixpbmRleEd1ZXNzQmVoYXZpb3I6b309ZSx7cmVnaXN0ZXI6YSx1bnJlZ2lzdGVyOmksc3Vic2NyaWJlTWFwQ2hhbmdlOmwsZWxlbWVudHNSZWY6cyxsYWJlbHNSZWY6YyxuZXh0SW5kZXhSZWY6dX09dy51c2VDb250ZXh0KHNjKSxkPXcudXNlUmVmKC0xKSxbZixwXT13LnVzZVN0YXRlKG89PT1zdS5HdWVzc0Zyb21PcmRlcj8oKT0+e2lmKC0xPT09ZC5jdXJyZW50KXtsZXQgZT11LmN1cnJlbnQ7dS5jdXJyZW50Kz0xLGQuY3VycmVudD1lfXJldHVybiBkLmN1cnJlbnR9Oi0xKSxoPXcudXNlUmVmKG51bGwpLG09dy51c2VDYWxsYmFjayhlPT57aWYoaC5jdXJyZW50PWUsLTEhPT1mJiZudWxsIT09ZSYmKHMuY3VycmVudFtmXT1lLGMpKXtsZXQgbj12b2lkIDAhPT10O2MuY3VycmVudFtmXT1uP3Q6cj8uY3VycmVudD8udGV4dENvbnRlbnQ/P2UudGV4dENvbnRlbnR9fSxbZixzLGMsdCxyXSk7cmV0dXJuIGFDKCgpPT57bGV0IGU9aC5jdXJyZW50O2lmKGUpcmV0dXJuIGEoZSxuKSwoKT0+e2koZSl9fSxbYSxpLG5dKSxhQygoKT0+bChlPT57bGV0IHQ9aC5jdXJyZW50P2UuZ2V0KGguY3VycmVudCk/LmluZGV4Om51bGw7bnVsbCE9dCYmcCh0KX0pLFtsLHBdKSx3LnVzZU1lbW8oKCk9Pih7cmVmOm0saW5kZXg6Zn0pLFtmLG1dKX1mdW5jdGlvbiBzZihlKXtsZXR7cmVuZGVyOnQsY2xhc3NOYW1lOm4sc3RhdGU6cj1pWixwcm9wczpvPWlVLHJlZnM6YT1pVSxtZXRhZGF0YTppLGN1c3RvbVN0eWxlSG9va01hcHBpbmc6bCx0YWc6cz1cImRpdlwiLC4uLmN9PWUse2NvbXBvc2l0ZVByb3BzOnUsY29tcG9zaXRlUmVmOmR9PWZ1bmN0aW9uKGU9e30pe2xldHtoaWdobGlnaHRJdGVtT25Ib3Zlcjp0LGhpZ2hsaWdodGVkSW5kZXg6bixvbkhpZ2hsaWdodGVkSW5kZXhDaGFuZ2U6cn09c2woKSx7cmVmOm8saW5kZXg6YX09c2QoZSksaT1uPT09YSxsPXcudXNlUmVmKG51bGwpLHM9bFgobyxsKTtyZXR1cm57Y29tcG9zaXRlUHJvcHM6dy51c2VNZW1vKCgpPT4oe3RhYkluZGV4Omk/MDotMSxvbkZvY3VzKCl7cihhKX0sb25Nb3VzZU1vdmUoKXtsZXQgZT1sLmN1cnJlbnQ7aWYoIXR8fCFlKXJldHVybjtsZXQgbj1lLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxcInRydWVcIj09PWUuYXJpYURpc2FibGVkO2l8fG58fGUuZm9jdXMoKX19KSxbaSxyLGEsdF0pLGNvbXBvc2l0ZVJlZjpzLGluZGV4OmF9fSh7bWV0YWRhdGE6aX0pO3JldHVybiBzbyhzLGUse3N0YXRlOnIscmVmOlsuLi5hLGRdLHByb3BzOlt1LC4uLm8sY10sY3VzdG9tU3R5bGVIb29rTWFwcGluZzpsfSl9bGV0IHNwPXcuZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe2xldHtyZW5kZXI6bixjbGFzc05hbWU6cixkaXNhYmxlZDpvPSExLG5hdGl2ZUJ1dHRvbjphPSEwLC4uLml9PWUse3RyaWdnZXJQcm9wczpsLGRpc2FibGVkOnMsc2V0VHJpZ2dlckVsZW1lbnQ6YyxvcGVuOnUsYWxsb3dNb3VzZVVwVHJpZ2dlclJlZjpkLHBvc2l0aW9uZXJSZWY6ZixwYXJlbnQ6cCxsYXN0T3BlbkNoYW5nZVJlYXNvbjpoLHJvb3RJZDptfT1sdygpLGc9b3x8cyx5PXcudXNlUmVmKG51bGwpLHY9YWQoKSx7Z2V0QnV0dG9uUHJvcHM6YixidXR0b25SZWY6eH09c3Moe2Rpc2FibGVkOmcsbmF0aXZlOmF9KSxDPWxYKHgsYykse2V2ZW50czpffT1haigpO3cudXNlRWZmZWN0KCgpPT57dXx8dm9pZCAwIT09cC50eXBlfHwoZC5jdXJyZW50PSExKX0sW2QsdSxwLnR5cGVdKTtsZXQgaz1haChlPT57aWYoIXkuY3VycmVudClyZXR1cm47di5jbGVhcigpLGQuY3VycmVudD0hMTtsZXQgdD1lLnRhcmdldDtpZihpdih5LmN1cnJlbnQsdCl8fGl2KGYuY3VycmVudCx0KXx8dD09PXkuY3VycmVudHx8bnVsbCE9dCYmZnVuY3Rpb24gZSh0KXtyZXR1cm4gYU4odCkmJnQuaGFzQXR0cmlidXRlKFwiZGF0YS1yb290b3duZXJpZFwiKT90LmdldEF0dHJpYnV0ZShcImRhdGEtcm9vdG93bmVyaWRcIik/P3ZvaWQgMDphWCh0KT92b2lkIDA6ZShhSih0KSl9KHQpPT09bSlyZXR1cm47bGV0IG49ZnVuY3Rpb24oZSl7bGV0IHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsXCI6OmJlZm9yZVwiKSxyPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsXCI6OmFmdGVyXCIpO2lmKFwibm9uZVwiPT09bi5jb250ZW50JiZcIm5vbmVcIj09PXIuY29udGVudClyZXR1cm4gdDtsZXQgbz1wYXJzZUZsb2F0KG4ud2lkdGgpfHwwLGE9cGFyc2VGbG9hdChuLmhlaWdodCl8fDAsaT1wYXJzZUZsb2F0KHIud2lkdGgpfHwwLGw9cGFyc2VGbG9hdChyLmhlaWdodCl8fDAscz1NYXRoLm1heCh0LndpZHRoLG8saSksYz1NYXRoLm1heCh0LmhlaWdodCxhLGwpLHU9cy10LndpZHRoLGQ9Yy10LmhlaWdodDtyZXR1cm57bGVmdDp0LmxlZnQtdS8yLHJpZ2h0OnQucmlnaHQrdS8yLHRvcDp0LnRvcC1kLzIsYm90dG9tOnQuYm90dG9tK2QvMn19KHkuY3VycmVudCk7ZS5jbGllbnRYPj1uLmxlZnQtMiYmZS5jbGllbnRYPD1uLnJpZ2h0KzImJmUuY2xpZW50WT49bi50b3AtMiYmZS5jbGllbnRZPD1uLmJvdHRvbSsyfHxfLmVtaXQoXCJjbG9zZVwiLHtkb21FdmVudDplLHJlYXNvbjpcImNhbmNlbC1vcGVuXCJ9KX0pO3cudXNlRWZmZWN0KCgpPT57dSYmXCJ0cmlnZ2VyLWhvdmVyXCI9PT1oJiZsUyh5LmN1cnJlbnQpLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsayx7b25jZTohMH0pfSxbdSxrLGhdKTtsZXQgRT1cIm1lbnViYXJcIj09PXAudHlwZSxqPXcudXNlQ2FsbGJhY2soZT0+bFUoRT97cm9sZTpcIm1lbnVpdGVtXCJ9Ont9LHtcImFyaWEtaGFzcG9wdXBcIjpcIm1lbnVcIixyZWY6Qyxvbk1vdXNlRG93bjplPT57dXx8KHYuc3RhcnQoMjAwLCgpPT57ZC5jdXJyZW50PSEwfSksbFMoZS5jdXJyZW50VGFyZ2V0KS5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLGsse29uY2U6ITB9KSl9fSxlLGIpLFtiLEMsdSxkLHYsayxFXSksUz13LnVzZU1lbW8oKCk9Pih7ZGlzYWJsZWQ6ZyxvcGVuOnV9KSxbZyx1XSksTz1beSx0LHhdLEI9W2wsaSxqXSxQPXNvKFwiYnV0dG9uXCIsZSx7ZW5hYmxlZDohRSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnN0LHN0YXRlOlMscmVmOk8scHJvcHM6Qn0pO3JldHVybiBFPygwLEEuanN4KShzZix7dGFnOlwiYnV0dG9uXCIscmVuZGVyOm4sY2xhc3NOYW1lOnIsc3RhdGU6UyxyZWZzOk8scHJvcHM6QixjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnN0fSk6UH0pLHNoPXtjbGlwOlwicmVjdCgwIDAgMCAwKVwiLG92ZXJmbG93OlwiaGlkZGVuXCIsd2hpdGVTcGFjZTpcIm5vd3JhcFwiLHBvc2l0aW9uOlwiZml4ZWRcIix0b3A6MCxsZWZ0OjAsYm9yZGVyOjAscGFkZGluZzowLHdpZHRoOjEsaGVpZ2h0OjEsbWFyZ2luOi0xfSxzbT13LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXRbbixyXT13LnVzZVN0YXRlKCk7cmV0dXJuIGFDKCgpPT57aWUmJnIoXCJidXR0b25cIil9LFtdKSwoMCxBLmpzeCkoXCJzcGFuXCIsey4uLmUscmVmOnQsdGFiSW5kZXg6MCxyb2xlOm4sXCJhcmlhLWhpZGRlblwiOiFufHx2b2lkIDAsc3R5bGU6c2gsXCJkYXRhLWJhc2UtdWktZm9jdXMtZ3VhcmRcIjpcIlwifSl9KTt2YXIgc2c9J2lucHV0Om5vdChbaW5lcnRdKSxzZWxlY3Q6bm90KFtpbmVydF0pLHRleHRhcmVhOm5vdChbaW5lcnRdKSxhW2hyZWZdOm5vdChbaW5lcnRdKSxidXR0b246bm90KFtpbmVydF0pLFt0YWJpbmRleF06bm90KHNsb3QpOm5vdChbaW5lcnRdKSxhdWRpb1tjb250cm9sc106bm90KFtpbmVydF0pLHZpZGVvW2NvbnRyb2xzXTpub3QoW2luZXJ0XSksW2NvbnRlbnRlZGl0YWJsZV06bm90KFtjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiXSk6bm90KFtpbmVydF0pLGRldGFpbHM+c3VtbWFyeTpmaXJzdC1vZi10eXBlOm5vdChbaW5lcnRdKSxkZXRhaWxzOm5vdChbaW5lcnRdKScsc3k9XCJ1bmRlZmluZWRcIj09dHlwZW9mIEVsZW1lbnQsc3Y9c3k/ZnVuY3Rpb24oKXt9OkVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXN8fEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3Isc2I9IXN5JiZFbGVtZW50LnByb3RvdHlwZS5nZXRSb290Tm9kZT9mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gbnVsbD09ZXx8bnVsbD09KHQ9ZS5nZXRSb290Tm9kZSk/dm9pZCAwOnQuY2FsbChlKX06ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmUub3duZXJEb2N1bWVudH0sc0E9ZnVuY3Rpb24gZSh0LG4pe3ZvaWQgMD09PW4mJihuPSEwKTt2YXIgcixvPW51bGw9PXR8fG51bGw9PShyPXQuZ2V0QXR0cmlidXRlKT92b2lkIDA6ci5jYWxsKHQsXCJpbmVydFwiKTtyZXR1cm5cIlwiPT09b3x8XCJ0cnVlXCI9PT1vfHxuJiZ0JiZlKHQucGFyZW50Tm9kZSl9LHN4PWZ1bmN0aW9uKGUpe3ZhciB0LG49bnVsbD09ZXx8bnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUpP3ZvaWQgMDp0LmNhbGwoZSxcImNvbnRlbnRlZGl0YWJsZVwiKTtyZXR1cm5cIlwiPT09bnx8XCJ0cnVlXCI9PT1ufSxzdz1mdW5jdGlvbihlLHQsbil7aWYoc0EoZSkpcmV0dXJuW107dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGUucXVlcnlTZWxlY3RvckFsbChzZykpO3JldHVybiB0JiZzdi5jYWxsKGUsc2cpJiZyLnVuc2hpZnQoZSkscj1yLmZpbHRlcihuKX0sc0M9ZnVuY3Rpb24gZSh0LG4scil7Zm9yKHZhciBvPVtdLGE9QXJyYXkuZnJvbSh0KTthLmxlbmd0aDspe3ZhciBpPWEuc2hpZnQoKTtpZighc0EoaSwhMSkpaWYoXCJTTE9UXCI9PT1pLnRhZ05hbWUpe3ZhciBsPWkuYXNzaWduZWRFbGVtZW50cygpLHM9ZShsLmxlbmd0aD9sOmkuY2hpbGRyZW4sITAscik7ci5mbGF0dGVuP28ucHVzaC5hcHBseShvLHMpOm8ucHVzaCh7c2NvcGVQYXJlbnQ6aSxjYW5kaWRhdGVzOnN9KX1lbHNle3N2LmNhbGwoaSxzZykmJnIuZmlsdGVyKGkpJiYobnx8IXQuaW5jbHVkZXMoaSkpJiZvLnB1c2goaSk7dmFyIGM9aS5zaGFkb3dSb290fHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmdldFNoYWRvd1Jvb3QmJnIuZ2V0U2hhZG93Um9vdChpKSx1PSFzQShjLCExKSYmKCFyLnNoYWRvd1Jvb3RGaWx0ZXJ8fHIuc2hhZG93Um9vdEZpbHRlcihpKSk7aWYoYyYmdSl7dmFyIGQ9ZSghMD09PWM/aS5jaGlsZHJlbjpjLmNoaWxkcmVuLCEwLHIpO3IuZmxhdHRlbj9vLnB1c2guYXBwbHkobyxkKTpvLnB1c2goe3Njb3BlUGFyZW50OmksY2FuZGlkYXRlczpkfSl9ZWxzZSBhLnVuc2hpZnQuYXBwbHkoYSxpLmNoaWxkcmVuKX19cmV0dXJuIG99LHNfPWZ1bmN0aW9uKGUpe3JldHVybiFpc05hTihwYXJzZUludChlLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpLDEwKSl9LHNrPWZ1bmN0aW9uKGUpe2lmKCFlKXRocm93IEVycm9yKFwiTm8gbm9kZSBwcm92aWRlZFwiKTtyZXR1cm4gZS50YWJJbmRleDwwJiYoL14oQVVESU98VklERU98REVUQUlMUykkLy50ZXN0KGUudGFnTmFtZSl8fHN4KGUpKSYmIXNfKGUpPzA6ZS50YWJJbmRleH0sc0U9ZnVuY3Rpb24oZSx0KXt2YXIgbj1zayhlKTtyZXR1cm4gbjwwJiZ0JiYhc18oZSk/MDpufSxzaj1mdW5jdGlvbihlLHQpe3JldHVybiBlLnRhYkluZGV4PT09dC50YWJJbmRleD9lLmRvY3VtZW50T3JkZXItdC5kb2N1bWVudE9yZGVyOmUudGFiSW5kZXgtdC50YWJJbmRleH0sc1M9ZnVuY3Rpb24oZSl7cmV0dXJuXCJJTlBVVFwiPT09ZS50YWdOYW1lfSxzTz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKGVbbl0uY2hlY2tlZCYmZVtuXS5mb3JtPT09dClyZXR1cm4gZVtuXX0sc0I9ZnVuY3Rpb24oZSl7aWYoIWUubmFtZSlyZXR1cm4hMDt2YXIgdCxuPWUuZm9ybXx8c2IoZSkscj1mdW5jdGlvbihlKXtyZXR1cm4gbi5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIicrZSsnXCJdJyl9O2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5DU1MmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHdpbmRvdy5DU1MuZXNjYXBlKXQ9cih3aW5kb3cuQ1NTLmVzY2FwZShlLm5hbWUpKTtlbHNlIHRyeXt0PXIoZS5uYW1lKX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5lcnJvcihcIkxvb2tzIGxpa2UgeW91IGhhdmUgYSByYWRpbyBidXR0b24gd2l0aCBhIG5hbWUgYXR0cmlidXRlIGNvbnRhaW5pbmcgaW52YWxpZCBDU1Mgc2VsZWN0b3IgY2hhcmFjdGVycyBhbmQgbmVlZCB0aGUgQ1NTLmVzY2FwZSBwb2x5ZmlsbDogJXNcIixlLm1lc3NhZ2UpLCExfXZhciBvPXNPKHQsZS5mb3JtKTtyZXR1cm4hb3x8bz09PWV9LHNQPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBzUyh0PWUpJiZcInJhZGlvXCI9PT10LnR5cGUmJiFzQihlKX0sc0k9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpLGwscz1lJiZzYihlKSxjPW51bGw9PSh0PXMpP3ZvaWQgMDp0Lmhvc3QsdT0hMTtpZihzJiZzIT09ZSlmb3IodT0hIShudWxsIT0obj1jKSYmbnVsbCE9KHI9bi5vd25lckRvY3VtZW50KSYmci5jb250YWlucyhjKXx8bnVsbCE9ZSYmbnVsbCE9KG89ZS5vd25lckRvY3VtZW50KSYmby5jb250YWlucyhlKSk7IXUmJmM7KXU9ISEobnVsbCE9KGk9Yz1udWxsPT0oYT1zPXNiKGMpKT92b2lkIDA6YS5ob3N0KSYmbnVsbCE9KGw9aS5vd25lckRvY3VtZW50KSYmbC5jb250YWlucyhjKSk7cmV0dXJuIHV9LHNUPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10LndpZHRoLHI9dC5oZWlnaHQ7cmV0dXJuIDA9PT1uJiYwPT09cn0sc3o9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmRpc3BsYXlDaGVjayxyPXQuZ2V0U2hhZG93Um9vdDtpZihcImhpZGRlblwiPT09Z2V0Q29tcHV0ZWRTdHlsZShlKS52aXNpYmlsaXR5KXJldHVybiEwO3ZhciBvPXN2LmNhbGwoZSxcImRldGFpbHM+c3VtbWFyeTpmaXJzdC1vZi10eXBlXCIpP2UucGFyZW50RWxlbWVudDplO2lmKHN2LmNhbGwobyxcImRldGFpbHM6bm90KFtvcGVuXSkgKlwiKSlyZXR1cm4hMDtpZihuJiZcImZ1bGxcIiE9PW4mJlwibGVnYWN5LWZ1bGxcIiE9PW4pe2lmKFwibm9uLXplcm8tYXJlYVwiPT09bilyZXR1cm4gc1QoZSl9ZWxzZXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXtmb3IodmFyIGE9ZTtlOyl7dmFyIGk9ZS5wYXJlbnRFbGVtZW50LGw9c2IoZSk7aWYoaSYmIWkuc2hhZG93Um9vdCYmITA9PT1yKGkpKXJldHVybiBzVChlKTtlPWUuYXNzaWduZWRTbG90P2UuYXNzaWduZWRTbG90Oml8fGw9PT1lLm93bmVyRG9jdW1lbnQ/aTpsLmhvc3R9ZT1hfWlmKHNJKGUpKXJldHVybiFlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoO2lmKFwibGVnYWN5LWZ1bGxcIiE9PW4pcmV0dXJuITB9cmV0dXJuITF9LHNEPWZ1bmN0aW9uKGUpe2lmKC9eKElOUFVUfEJVVFRPTnxTRUxFQ1R8VEVYVEFSRUEpJC8udGVzdChlLnRhZ05hbWUpKWZvcih2YXIgdD1lLnBhcmVudEVsZW1lbnQ7dDspe2lmKFwiRklFTERTRVRcIj09PXQudGFnTmFtZSYmdC5kaXNhYmxlZCl7Zm9yKHZhciBuPTA7bjx0LmNoaWxkcmVuLmxlbmd0aDtuKyspe3ZhciByPXQuY2hpbGRyZW4uaXRlbShuKTtpZihcIkxFR0VORFwiPT09ci50YWdOYW1lKXJldHVybiEhc3YuY2FsbCh0LFwiZmllbGRzZXRbZGlzYWJsZWRdICpcIil8fCFyLmNvbnRhaW5zKGUpfXJldHVybiEwfXQ9dC5wYXJlbnRFbGVtZW50fXJldHVybiExfSxzTD1mdW5jdGlvbihlLHQpe3ZhciBuLHI7cmV0dXJuISh0LmRpc2FibGVkfHxzQSh0KXx8c1Mobj10KSYmXCJoaWRkZW5cIj09PW4udHlwZXx8c3oodCxlKXx8XCJERVRBSUxTXCI9PT0ocj10KS50YWdOYW1lJiZBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoci5jaGlsZHJlbikuc29tZShmdW5jdGlvbihlKXtyZXR1cm5cIlNVTU1BUllcIj09PWUudGFnTmFtZX0pfHxzRCh0KSl9LHNOPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIShzUCh0KXx8MD5zayh0KSkmJiEhc0woZSx0KX0sc1I9ZnVuY3Rpb24oZSl7dmFyIHQ9cGFyc2VJbnQoZS5nZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKSwxMCk7cmV0dXJuISFpc05hTih0KXx8ISEodD49MCl9LHNNPWZ1bmN0aW9uIGUodCl7dmFyIG49W10scj1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsbyl7dmFyIGE9ISF0LnNjb3BlUGFyZW50LGk9YT90LnNjb3BlUGFyZW50OnQsbD1zRShpLGEpLHM9YT9lKHQuY2FuZGlkYXRlcyk6aTswPT09bD9hP24ucHVzaC5hcHBseShuLHMpOm4ucHVzaChpKTpyLnB1c2goe2RvY3VtZW50T3JkZXI6byx0YWJJbmRleDpsLGl0ZW06dCxpc1Njb3BlOmEsY29udGVudDpzfSl9KSxyLnNvcnQoc2opLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0LmlzU2NvcGU/ZS5wdXNoLmFwcGx5KGUsdC5jb250ZW50KTplLnB1c2godC5jb250ZW50KSxlfSxbXSkuY29uY2F0KG4pfSxzWj1mdW5jdGlvbihlLHQpe3JldHVybiBzTSgodD10fHx7fSkuZ2V0U2hhZG93Um9vdD9zQyhbZV0sdC5pbmNsdWRlQ29udGFpbmVyLHtmaWx0ZXI6c04uYmluZChudWxsLHQpLGZsYXR0ZW46ITEsZ2V0U2hhZG93Um9vdDp0LmdldFNoYWRvd1Jvb3Qsc2hhZG93Um9vdEZpbHRlcjpzUn0pOnN3KGUsdC5pbmNsdWRlQ29udGFpbmVyLHNOLmJpbmQobnVsbCx0KSkpfSxzVT1mdW5jdGlvbihlLHQpe3JldHVybih0PXR8fHt9KS5nZXRTaGFkb3dSb290P3NDKFtlXSx0LmluY2x1ZGVDb250YWluZXIse2ZpbHRlcjpzTC5iaW5kKG51bGwsdCksZmxhdHRlbjohMCxnZXRTaGFkb3dSb290OnQuZ2V0U2hhZG93Um9vdH0pOnN3KGUsdC5pbmNsdWRlQ29udGFpbmVyLHNMLmJpbmQobnVsbCx0KSl9LHNGPWZ1bmN0aW9uKGUsdCl7aWYodD10fHx7fSwhZSl0aHJvdyBFcnJvcihcIk5vIG5vZGUgcHJvdmlkZWRcIik7cmV0dXJuITEhPT1zdi5jYWxsKGUsc2cpJiZzTih0LGUpfTtsZXQgc3E9KCk9Pih7Z2V0U2hhZG93Um9vdDohMCxkaXNwbGF5Q2hlY2s6XCJmdW5jdGlvblwiPT10eXBlb2YgUmVzaXplT2JzZXJ2ZXImJlJlc2l6ZU9ic2VydmVyLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCJbbmF0aXZlIGNvZGVdXCIpP1wiZnVsbFwiOlwibm9uZVwifSk7ZnVuY3Rpb24gc0goZSx0KXtsZXQgbj1zWihlLHNxKCkpLHI9bi5sZW5ndGg7aWYoMD09PXIpcmV0dXJuO2xldCBvPWl5KGl4KGUpKSxhPW4uaW5kZXhPZihvKTtyZXR1cm4gblstMT09PWE/MT09PXQ/MDpyLTE6YSt0XX1mdW5jdGlvbiBzVihlKXtyZXR1cm4gc0goaXgoZSkuYm9keSwxKXx8ZX1mdW5jdGlvbiBzJChlKXtyZXR1cm4gc0goaXgoZSkuYm9keSwtMSl8fGV9ZnVuY3Rpb24gc1coZSx0KXtsZXQgbj10fHxlLmN1cnJlbnRUYXJnZXQscj1lLnJlbGF0ZWRUYXJnZXQ7cmV0dXJuIXJ8fCFpdihuLHIpfWZ1bmN0aW9uIHNZKGUpe3NaKGUsc3EoKSkuZm9yRWFjaChlPT57ZS5kYXRhc2V0LnRhYmluZGV4PWUuZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIil8fFwiXCIsZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIil9KX1mdW5jdGlvbiBzSyhlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS10YWJpbmRleF1cIikuZm9yRWFjaChlPT57bGV0IHQ9ZS5kYXRhc2V0LnRhYmluZGV4O2RlbGV0ZSBlLmRhdGFzZXQudGFiaW5kZXgsdD9lLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsdCk6ZS5yZW1vdmVBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKX0pfWxldCBzWD13LmNyZWF0ZUNvbnRleHQobnVsbCksc0c9KCk9PncudXNlQ29udGV4dChzWCksc1E9aWsoXCJwb3J0YWxcIik7ZnVuY3Rpb24gc0ooZT17fSl7bGV0e2lkOnQscm9vdDpufT1lLHI9YXgoKSxvPXNHKCksW2EsaV09dy51c2VTdGF0ZShudWxsKSxsPXcudXNlUmVmKG51bGwpO3JldHVybiBhQygoKT0+KCk9PnthPy5yZW1vdmUoKSxxdWV1ZU1pY3JvdGFzaygoKT0+e2wuY3VycmVudD1udWxsfSl9LFthXSksYUMoKCk9PntpZighcnx8bC5jdXJyZW50KXJldHVybjtsZXQgZT10P2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpOm51bGw7aWYoIWUpcmV0dXJuO2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7bi5pZD1yLG4uc2V0QXR0cmlidXRlKHNRLFwiXCIpLGUuYXBwZW5kQ2hpbGQobiksbC5jdXJyZW50PW4saShuKX0sW3Qscl0pLGFDKCgpPT57aWYobnVsbD09PW58fCFyfHxsLmN1cnJlbnQpcmV0dXJuO2xldCBlPW58fG8/LnBvcnRhbE5vZGU7ZSYmIWFEKGUpJiYoZT1lLmN1cnJlbnQpLGU9ZXx8ZG9jdW1lbnQuYm9keTtsZXQgYT1udWxsO3QmJigoYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5pZD10LGUuYXBwZW5kQ2hpbGQoYSkpO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7cy5pZD1yLHMuc2V0QXR0cmlidXRlKHNRLFwiXCIpLChlPWF8fGUpLmFwcGVuZENoaWxkKHMpLGwuY3VycmVudD1zLGkocyl9LFt0LG4scixvXSksYX1mdW5jdGlvbiBzMChlKXtsZXR7Y2hpbGRyZW46dCxpZDpuLHJvb3Q6cixwcmVzZXJ2ZVRhYk9yZGVyOm89ITB9PWUsYT1zSih7aWQ6bixyb290OnJ9KSxbaSxsXT13LnVzZVN0YXRlKG51bGwpLHM9dy51c2VSZWYobnVsbCksYz13LnVzZVJlZihudWxsKSx1PXcudXNlUmVmKG51bGwpLGQ9dy51c2VSZWYobnVsbCksZj1pPy5tb2RhbCxwPWk/Lm9wZW4saD0hIWkmJiFpLm1vZGFsJiZpLm9wZW4mJm8mJiEhKHJ8fGEpO3JldHVybiB3LnVzZUVmZmVjdCgoKT0+e2lmKGEmJm8mJiFmKXJldHVybiBhLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsZSwhMCksYS5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIixlLCEwKSwoKT0+e2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlLCEwKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLGUsITApfTtmdW5jdGlvbiBlKGUpe2lmKGEmJnNXKGUpKXtsZXQgdD1cImZvY3VzaW5cIj09PWUudHlwZTsodD9zSzpzWSkoYSl9fX0sW2EsbyxmXSksdy51c2VFZmZlY3QoKCk9PnthJiYocHx8c0soYSkpfSxbcCxhXSksKDAsQS5qc3hzKShzWC5Qcm92aWRlcix7dmFsdWU6dy51c2VNZW1vKCgpPT4oe3ByZXNlcnZlVGFiT3JkZXI6byxiZWZvcmVPdXRzaWRlUmVmOnMsYWZ0ZXJPdXRzaWRlUmVmOmMsYmVmb3JlSW5zaWRlUmVmOnUsYWZ0ZXJJbnNpZGVSZWY6ZCxwb3J0YWxOb2RlOmEsc2V0Rm9jdXNNYW5hZ2VyU3RhdGU6bH0pLFtvLGFdKSxjaGlsZHJlbjpbaCYmYSYmKDAsQS5qc3gpKHNtLHtcImRhdGEtdHlwZVwiOlwib3V0c2lkZVwiLHJlZjpzLG9uRm9jdXM6ZT0+e2lmKHNXKGUsYSkpdS5jdXJyZW50Py5mb2N1cygpO2Vsc2V7bGV0IGU9cyQoaT9pLmRvbVJlZmVyZW5jZTpudWxsKTtlPy5mb2N1cygpfX19KSxoJiZhJiYoMCxBLmpzeCkoXCJzcGFuXCIse1wiYXJpYS1vd25zXCI6YS5pZCxzdHlsZTpzaH0pLGEmJmVoLmNyZWF0ZVBvcnRhbCh0LGEpLGgmJmEmJigwLEEuanN4KShzbSx7XCJkYXRhLXR5cGVcIjpcIm91dHNpZGVcIixyZWY6YyxvbkZvY3VzOmU9PntpZihzVyhlLGEpKWQuY3VycmVudD8uZm9jdXMoKTtlbHNle2xldCB0PXNWKGk/aS5kb21SZWZlcmVuY2U6bnVsbCk7dD8uZm9jdXMoKSxpPy5jbG9zZU9uRm9jdXNPdXQmJmk/Lm9uT3BlbkNoYW5nZSghMSxlLm5hdGl2ZUV2ZW50LFwiZm9jdXMtb3V0XCIpfX19KV19KX1sZXQgczE9dy5jcmVhdGVDb250ZXh0KHZvaWQgMCk7ZnVuY3Rpb24gczIoZSl7bGV0e2NoaWxkcmVuOnQsa2VlcE1vdW50ZWQ6bj0hMSxjb250YWluZXI6cn09ZSx7bW91bnRlZDpvfT1sdygpO3JldHVybiBvfHxuPygwLEEuanN4KShzMS5Qcm92aWRlcix7dmFsdWU6bixjaGlsZHJlbjooMCxBLmpzeCkoczAse3Jvb3Q6cixjaGlsZHJlbjp0fSl9KTpudWxsfWxldCBzND13LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBzNShlLHQsbil7bGV0IHIse3JlZmVyZW5jZTpvLGZsb2F0aW5nOmF9PWUsaT1pOCh0KSxsPWkzKGk4KHQpKSxzPWk2KGwpLGM9aTQodCksdT1cInlcIj09PWksZD1vLngrby53aWR0aC8yLWEud2lkdGgvMixmPW8ueStvLmhlaWdodC8yLWEuaGVpZ2h0LzIscD1vW3NdLzItYVtzXS8yO3N3aXRjaChjKXtjYXNlXCJ0b3BcIjpyPXt4OmQseTpvLnktYS5oZWlnaHR9O2JyZWFrO2Nhc2VcImJvdHRvbVwiOnI9e3g6ZCx5Om8ueStvLmhlaWdodH07YnJlYWs7Y2FzZVwicmlnaHRcIjpyPXt4Om8ueCtvLndpZHRoLHk6Zn07YnJlYWs7Y2FzZVwibGVmdFwiOnI9e3g6by54LWEud2lkdGgseTpmfTticmVhaztkZWZhdWx0OnI9e3g6by54LHk6by55fX1zd2l0Y2goaTUodCkpe2Nhc2VcInN0YXJ0XCI6cltsXS09cCoobiYmdT8tMToxKTticmVhaztjYXNlXCJlbmRcIjpyW2xdKz1wKihuJiZ1Py0xOjEpfXJldHVybiByfWxldCBzMz1hc3luYyhlLHQsbik9PntsZXR7cGxhY2VtZW50OnI9XCJib3R0b21cIixzdHJhdGVneTpvPVwiYWJzb2x1dGVcIixtaWRkbGV3YXJlOmE9W10scGxhdGZvcm06aX09bixsPWEuZmlsdGVyKEJvb2xlYW4pLHM9YXdhaXQgKG51bGw9PWkuaXNSVEw/dm9pZCAwOmkuaXNSVEwodCkpLGM9YXdhaXQgaS5nZXRFbGVtZW50UmVjdHMoe3JlZmVyZW5jZTplLGZsb2F0aW5nOnQsc3RyYXRlZ3k6b30pLHt4OnUseTpkfT1zNShjLHIscyksZj1yLHA9e30saD0wO2ZvcihsZXQgbj0wO248bC5sZW5ndGg7bisrKXtsZXR7bmFtZTphLGZuOm19PWxbbl0se3g6Zyx5OnksZGF0YTp2LHJlc2V0OmJ9PWF3YWl0IG0oe3g6dSx5OmQsaW5pdGlhbFBsYWNlbWVudDpyLHBsYWNlbWVudDpmLHN0cmF0ZWd5Om8sbWlkZGxld2FyZURhdGE6cCxyZWN0czpjLHBsYXRmb3JtOmksZWxlbWVudHM6e3JlZmVyZW5jZTplLGZsb2F0aW5nOnR9fSk7dT1udWxsIT1nP2c6dSxkPW51bGwhPXk/eTpkLHA9ey4uLnAsW2FdOnsuLi5wW2FdLC4uLnZ9fSxiJiZoPD01MCYmKGgrKyxcIm9iamVjdFwiPT10eXBlb2YgYiYmKGIucGxhY2VtZW50JiYoZj1iLnBsYWNlbWVudCksYi5yZWN0cyYmKGM9ITA9PT1iLnJlY3RzP2F3YWl0IGkuZ2V0RWxlbWVudFJlY3RzKHtyZWZlcmVuY2U6ZSxmbG9hdGluZzp0LHN0cmF0ZWd5Om99KTpiLnJlY3RzKSx7eDp1LHk6ZH09czUoYyxmLHMpKSxuPS0xKX1yZXR1cm57eDp1LHk6ZCxwbGFjZW1lbnQ6ZixzdHJhdGVneTpvLG1pZGRsZXdhcmVEYXRhOnB9fTthc3luYyBmdW5jdGlvbiBzNihlLHQpe3ZhciBuO3ZvaWQgMD09PXQmJih0PXt9KTtsZXR7eDpyLHk6byxwbGF0Zm9ybTphLHJlY3RzOmksZWxlbWVudHM6bCxzdHJhdGVneTpzfT1lLHtib3VuZGFyeTpjPVwiY2xpcHBpbmdBbmNlc3RvcnNcIixyb290Qm91bmRhcnk6dT1cInZpZXdwb3J0XCIsZWxlbWVudENvbnRleHQ6ZD1cImZsb2F0aW5nXCIsYWx0Qm91bmRhcnk6Zj0hMSxwYWRkaW5nOnA9MH09aTIodCxlKSxoPWxhKHApLG09bFtmP1wiZmxvYXRpbmdcIj09PWQ/XCJyZWZlcmVuY2VcIjpcImZsb2F0aW5nXCI6ZF0sZz1saShhd2FpdCBhLmdldENsaXBwaW5nUmVjdCh7ZWxlbWVudDpudWxsPT0obj1hd2FpdCAobnVsbD09YS5pc0VsZW1lbnQ/dm9pZCAwOmEuaXNFbGVtZW50KG0pKSl8fG4/bTptLmNvbnRleHRFbGVtZW50fHxhd2FpdCAobnVsbD09YS5nZXREb2N1bWVudEVsZW1lbnQ/dm9pZCAwOmEuZ2V0RG9jdW1lbnRFbGVtZW50KGwuZmxvYXRpbmcpKSxib3VuZGFyeTpjLHJvb3RCb3VuZGFyeTp1LHN0cmF0ZWd5OnN9KSkseT1cImZsb2F0aW5nXCI9PT1kP3t4OnIseTpvLHdpZHRoOmkuZmxvYXRpbmcud2lkdGgsaGVpZ2h0OmkuZmxvYXRpbmcuaGVpZ2h0fTppLnJlZmVyZW5jZSx2PWF3YWl0IChudWxsPT1hLmdldE9mZnNldFBhcmVudD92b2lkIDA6YS5nZXRPZmZzZXRQYXJlbnQobC5mbG9hdGluZykpLGI9YXdhaXQgKG51bGw9PWEuaXNFbGVtZW50P3ZvaWQgMDphLmlzRWxlbWVudCh2KSkmJmF3YWl0IChudWxsPT1hLmdldFNjYWxlP3ZvaWQgMDphLmdldFNjYWxlKHYpKXx8e3g6MSx5OjF9LEE9bGkoYS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdD9hd2FpdCBhLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtlbGVtZW50czpsLHJlY3Q6eSxvZmZzZXRQYXJlbnQ6dixzdHJhdGVneTpzfSk6eSk7cmV0dXJue3RvcDooZy50b3AtQS50b3AraC50b3ApL2IueSxib3R0b206KEEuYm90dG9tLWcuYm90dG9tK2guYm90dG9tKS9iLnksbGVmdDooZy5sZWZ0LUEubGVmdCtoLmxlZnQpL2IueCxyaWdodDooQS5yaWdodC1nLnJpZ2h0K2gucmlnaHQpL2IueH19ZnVuY3Rpb24gczkoZSx0KXtyZXR1cm57dG9wOmUudG9wLXQuaGVpZ2h0LHJpZ2h0OmUucmlnaHQtdC53aWR0aCxib3R0b206ZS5ib3R0b20tdC5oZWlnaHQsbGVmdDplLmxlZnQtdC53aWR0aH19ZnVuY3Rpb24gczgoZSl7cmV0dXJuIGlZLnNvbWUodD0+ZVt0XT49MCl9bGV0IHM3PW5ldyBTZXQoW1wibGVmdFwiLFwidG9wXCJdKTthc3luYyBmdW5jdGlvbiBjZShlLHQpe2xldHtwbGFjZW1lbnQ6bixwbGF0Zm9ybTpyLGVsZW1lbnRzOm99PWUsYT1hd2FpdCAobnVsbD09ci5pc1JUTD92b2lkIDA6ci5pc1JUTChvLmZsb2F0aW5nKSksaT1pNChuKSxsPWk1KG4pLHM9XCJ5XCI9PT1pOChuKSxjPXM3LmhhcyhpKT8tMToxLHU9YSYmcz8tMToxLGQ9aTIodCxlKSx7bWFpbkF4aXM6Zixjcm9zc0F4aXM6cCxhbGlnbm1lbnRBeGlzOmh9PVwibnVtYmVyXCI9PXR5cGVvZiBkP3ttYWluQXhpczpkLGNyb3NzQXhpczowLGFsaWdubWVudEF4aXM6bnVsbH06e21haW5BeGlzOmQubWFpbkF4aXN8fDAsY3Jvc3NBeGlzOmQuY3Jvc3NBeGlzfHwwLGFsaWdubWVudEF4aXM6ZC5hbGlnbm1lbnRBeGlzfTtyZXR1cm4gbCYmXCJudW1iZXJcIj09dHlwZW9mIGgmJihwPVwiZW5kXCI9PT1sPy0xKmg6aCkscz97eDpwKnUseTpmKmN9Ont4OmYqYyx5OnAqdX19ZnVuY3Rpb24gY3QoZSl7bGV0IHQ9YUcoZSksbj1wYXJzZUZsb2F0KHQud2lkdGgpfHwwLHI9cGFyc2VGbG9hdCh0LmhlaWdodCl8fDAsbz1hTihlKSxhPW8/ZS5vZmZzZXRXaWR0aDpuLGk9bz9lLm9mZnNldEhlaWdodDpyLGw9aUcobikhPT1hfHxpRyhyKSE9PWk7cmV0dXJuIGwmJihuPWEscj1pKSx7d2lkdGg6bixoZWlnaHQ6ciwkOmx9fWZ1bmN0aW9uIGNuKGUpe3JldHVybiBhTChlKT9lOmUuY29udGV4dEVsZW1lbnR9ZnVuY3Rpb24gY3IoZSl7bGV0IHQ9Y24oZSk7aWYoIWFOKHQpKXJldHVybiBpSigxKTtsZXQgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt3aWR0aDpyLGhlaWdodDpvLCQ6YX09Y3QodCksaT0oYT9pRyhuLndpZHRoKTpuLndpZHRoKS9yLGw9KGE/aUcobi5oZWlnaHQpOm4uaGVpZ2h0KS9vO3JldHVybiBpJiZOdW1iZXIuaXNGaW5pdGUoaSl8fChpPTEpLGwmJk51bWJlci5pc0Zpbml0ZShsKXx8KGw9MSkse3g6aSx5Omx9fWxldCBjbz1pSigwKTtmdW5jdGlvbiBjYShlKXtsZXQgdD1hVChlKTtyZXR1cm4gYVkoKSYmdC52aXN1YWxWaWV3cG9ydD97eDp0LnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQseTp0LnZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcH06Y299ZnVuY3Rpb24gY2koZSx0LG4scil7dmFyIG8sYSxpO3ZvaWQgMD09PXQmJih0PSExKSx2b2lkIDA9PT1uJiYobj0hMSk7bGV0IGw9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWNuKGUpLGM9aUooMSk7dCYmKHI/YUwocikmJihjPWNyKHIpKTpjPWNyKGUpKTtsZXQgdT0obz1zLHZvaWQgMD09PShhPW4pJiYoYT0hMSksKGk9cikmJighYXx8aT09PWFUKG8pKSYmYSk/Y2Eocyk6aUooMCksZD0obC5sZWZ0K3UueCkvYy54LGY9KGwudG9wK3UueSkvYy55LHA9bC53aWR0aC9jLngsaD1sLmhlaWdodC9jLnk7aWYocyl7bGV0IGU9YVQocyksdD1yJiZhTChyKT9hVChyKTpyLG49ZSxvPWExKG4pO2Zvcig7byYmciYmdCE9PW47KXtsZXQgZT1jcihvKSx0PW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1hRyhvKSxhPXQubGVmdCsoby5jbGllbnRMZWZ0K3BhcnNlRmxvYXQoci5wYWRkaW5nTGVmdCkpKmUueCxpPXQudG9wKyhvLmNsaWVudFRvcCtwYXJzZUZsb2F0KHIucGFkZGluZ1RvcCkpKmUueTtkKj1lLngsZio9ZS55LHAqPWUueCxoKj1lLnksZCs9YSxmKz1pLG89YTEobj1hVChvKSl9fXJldHVybiBsaSh7d2lkdGg6cCxoZWlnaHQ6aCx4OmQseTpmfSl9ZnVuY3Rpb24gY2woZSx0KXtsZXQgbj1hUShlKS5zY3JvbGxMZWZ0O3JldHVybiB0P3QubGVmdCtuOmNpKGF6KGUpKS5sZWZ0K259ZnVuY3Rpb24gY3MoZSx0LG4pe3ZvaWQgMD09PW4mJihuPSExKTtsZXQgcj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89ci5sZWZ0K3Quc2Nyb2xsTGVmdC0obj8wOmNsKGUscikpO3JldHVybnt4Om8seTpyLnRvcCt0LnNjcm9sbFRvcH19bGV0IGNjPW5ldyBTZXQoW1wiYWJzb2x1dGVcIixcImZpeGVkXCJdKTtmdW5jdGlvbiBjdShlLHQsbil7bGV0IHI7aWYoXCJ2aWV3cG9ydFwiPT09dClyPWZ1bmN0aW9uKGUsdCl7bGV0IG49YVQoZSkscj1heihlKSxvPW4udmlzdWFsVmlld3BvcnQsYT1yLmNsaWVudFdpZHRoLGk9ci5jbGllbnRIZWlnaHQsbD0wLHM9MDtpZihvKXthPW8ud2lkdGgsaT1vLmhlaWdodDtsZXQgZT1hWSgpOyghZXx8ZSYmXCJmaXhlZFwiPT09dCkmJihsPW8ub2Zmc2V0TGVmdCxzPW8ub2Zmc2V0VG9wKX1yZXR1cm57d2lkdGg6YSxoZWlnaHQ6aSx4OmwseTpzfX0oZSxuKTtlbHNlIGlmKFwiZG9jdW1lbnRcIj09PXQpcj1mdW5jdGlvbihlKXtsZXQgdD1heihlKSxuPWFRKGUpLHI9ZS5vd25lckRvY3VtZW50LmJvZHksbz1pWCh0LnNjcm9sbFdpZHRoLHQuY2xpZW50V2lkdGgsci5zY3JvbGxXaWR0aCxyLmNsaWVudFdpZHRoKSxhPWlYKHQuc2Nyb2xsSGVpZ2h0LHQuY2xpZW50SGVpZ2h0LHIuc2Nyb2xsSGVpZ2h0LHIuY2xpZW50SGVpZ2h0KSxpPS1uLnNjcm9sbExlZnQrY2woZSksbD0tbi5zY3JvbGxUb3A7cmV0dXJuXCJydGxcIj09PWFHKHIpLmRpcmVjdGlvbiYmKGkrPWlYKHQuY2xpZW50V2lkdGgsci5jbGllbnRXaWR0aCktbykse3dpZHRoOm8saGVpZ2h0OmEseDppLHk6bH19KGF6KGUpKTtlbHNlIGlmKGFMKHQpKXI9ZnVuY3Rpb24oZSx0KXtsZXQgbj1jaShlLCEwLFwiZml4ZWRcIj09PXQpLHI9bi50b3ArZS5jbGllbnRUb3Asbz1uLmxlZnQrZS5jbGllbnRMZWZ0LGE9YU4oZSk/Y3IoZSk6aUooMSksaT1lLmNsaWVudFdpZHRoKmEueCxsPWUuY2xpZW50SGVpZ2h0KmEueSxzPW8qYS54O3JldHVybnt3aWR0aDppLGhlaWdodDpsLHg6cyx5OnIqYS55fX0odCxuKTtlbHNle2xldCBuPWNhKGUpO3I9e3g6dC54LW4ueCx5OnQueS1uLnksd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9fXJldHVybiBsaShyKX1mdW5jdGlvbiBjZChlKXtyZXR1cm5cInN0YXRpY1wiPT09YUcoZSkucG9zaXRpb259ZnVuY3Rpb24gY2YoZSx0KXtpZighYU4oZSl8fFwiZml4ZWRcIj09PWFHKGUpLnBvc2l0aW9uKXJldHVybiBudWxsO2lmKHQpcmV0dXJuIHQoZSk7bGV0IG49ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF6KGUpPT09biYmKG49bi5vd25lckRvY3VtZW50LmJvZHkpLG59ZnVuY3Rpb24gY3AoZSx0KXt2YXIgbjtsZXQgcj1hVChlKTtpZihhcShlKSlyZXR1cm4gcjtpZighYU4oZSkpe2xldCB0PWFKKGUpO2Zvcig7dCYmIWFYKHQpOyl7aWYoYUwodCkmJiFjZCh0KSlyZXR1cm4gdDt0PWFKKHQpfXJldHVybiByfWxldCBvPWNmKGUsdCk7Zm9yKDtvJiYobj1vLGFVLmhhcyhhSShuKSkpJiZjZChvKTspbz1jZihvLHQpO3JldHVybiBvJiZhWChvKSYmY2QobykmJiFhVyhvKT9yOm98fGZ1bmN0aW9uKGUpe2xldCB0PWFKKGUpO2Zvcig7YU4odCkmJiFhWCh0KTspe2lmKGFXKHQpKXJldHVybiB0O2lmKGFxKHQpKWJyZWFrO3Q9YUoodCl9cmV0dXJuIG51bGx9KGUpfHxyfWxldCBjaD1hc3luYyBmdW5jdGlvbihlKXtsZXQgdD10aGlzLmdldE9mZnNldFBhcmVudHx8Y3Asbj10aGlzLmdldERpbWVuc2lvbnMscj1hd2FpdCBuKGUuZmxvYXRpbmcpO3JldHVybntyZWZlcmVuY2U6ZnVuY3Rpb24oZSx0LG4pe2xldCByPWFOKHQpLG89YXoodCksYT1cImZpeGVkXCI9PT1uLGk9Y2koZSwhMCxhLHQpLGw9e3Njcm9sbExlZnQ6MCxzY3JvbGxUb3A6MH0scz1pSigwKTtpZihyfHwhciYmIWEpaWYoKFwiYm9keVwiIT09YUkodCl8fGFaKG8pKSYmKGw9YVEodCkpLHIpe2xldCBlPWNpKHQsITAsYSx0KTtzLng9ZS54K3QuY2xpZW50TGVmdCxzLnk9ZS55K3QuY2xpZW50VG9wfWVsc2UgbyYmKHMueD1jbChvKSk7YSYmIXImJm8mJihzLng9Y2wobykpO2xldCBjPSFvfHxyfHxhP2lKKDApOmNzKG8sbCksdT1pLmxlZnQrbC5zY3JvbGxMZWZ0LXMueC1jLng7cmV0dXJue3g6dSx5OmkudG9wK2wuc2Nyb2xsVG9wLXMueS1jLnksd2lkdGg6aS53aWR0aCxoZWlnaHQ6aS5oZWlnaHR9fShlLnJlZmVyZW5jZSxhd2FpdCB0KGUuZmxvYXRpbmcpLGUuc3RyYXRlZ3kpLGZsb2F0aW5nOnt4OjAseTowLHdpZHRoOnIud2lkdGgsaGVpZ2h0OnIuaGVpZ2h0fX19LGNtPXtjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdDpmdW5jdGlvbihlKXtsZXR7ZWxlbWVudHM6dCxyZWN0Om4sb2Zmc2V0UGFyZW50OnIsc3RyYXRlZ3k6b309ZSxhPVwiZml4ZWRcIj09PW8saT1heihyKSxsPSEhdCYmYXEodC5mbG9hdGluZyk7aWYocj09PWl8fGwmJmEpcmV0dXJuIG47bGV0IHM9e3Njcm9sbExlZnQ6MCxzY3JvbGxUb3A6MH0sYz1pSigxKSx1PWlKKDApLGQ9YU4ocik7aWYoKGR8fCFkJiYhYSkmJigoXCJib2R5XCIhPT1hSShyKXx8YVooaSkpJiYocz1hUShyKSksYU4ocikpKXtsZXQgZT1jaShyKTtjPWNyKHIpLHUueD1lLngrci5jbGllbnRMZWZ0LHUueT1lLnkrci5jbGllbnRUb3B9bGV0IGY9IWl8fGR8fGE/aUooMCk6Y3MoaSxzLCEwKTtyZXR1cm57d2lkdGg6bi53aWR0aCpjLngsaGVpZ2h0Om4uaGVpZ2h0KmMueSx4Om4ueCpjLngtcy5zY3JvbGxMZWZ0KmMueCt1LngrZi54LHk6bi55KmMueS1zLnNjcm9sbFRvcCpjLnkrdS55K2YueX19LGdldERvY3VtZW50RWxlbWVudDpheixnZXRDbGlwcGluZ1JlY3Q6ZnVuY3Rpb24oZSl7bGV0e2VsZW1lbnQ6dCxib3VuZGFyeTpuLHJvb3RCb3VuZGFyeTpyLHN0cmF0ZWd5Om99PWUsYT1bLi4uXCJjbGlwcGluZ0FuY2VzdG9yc1wiPT09bj9hcSh0KT9bXTpmdW5jdGlvbihlLHQpe2xldCBuPXQuZ2V0KGUpO2lmKG4pcmV0dXJuIG47bGV0IHI9YTAoZSxbXSwhMSkuZmlsdGVyKGU9PmFMKGUpJiZcImJvZHlcIiE9PWFJKGUpKSxvPW51bGwsYT1cImZpeGVkXCI9PT1hRyhlKS5wb3NpdGlvbixpPWE/YUooZSk6ZTtmb3IoO2FMKGkpJiYhYVgoaSk7KXtsZXQgdD1hRyhpKSxuPWFXKGkpO258fFwiZml4ZWRcIiE9PXQucG9zaXRpb258fChvPW51bGwpLChhPyFuJiYhbzohbiYmXCJzdGF0aWNcIj09PXQucG9zaXRpb24mJiEhbyYmY2MuaGFzKG8ucG9zaXRpb24pfHxhWihpKSYmIW4mJmZ1bmN0aW9uIGUodCxuKXtsZXQgcj1hSih0KTtyZXR1cm4hKHI9PT1ufHwhYUwocil8fGFYKHIpKSYmKFwiZml4ZWRcIj09PWFHKHIpLnBvc2l0aW9ufHxlKHIsbikpfShlLGkpKT9yPXIuZmlsdGVyKGU9PmUhPT1pKTpvPXQsaT1hSihpKX1yZXR1cm4gdC5zZXQoZSxyKSxyfSh0LHRoaXMuX2MpOltdLmNvbmNhdChuKSxyXSxpPWFbMF0sbD1hLnJlZHVjZSgoZSxuKT0+e2xldCByPWN1KHQsbixvKTtyZXR1cm4gZS50b3A9aVgoci50b3AsZS50b3ApLGUucmlnaHQ9aUsoci5yaWdodCxlLnJpZ2h0KSxlLmJvdHRvbT1pSyhyLmJvdHRvbSxlLmJvdHRvbSksZS5sZWZ0PWlYKHIubGVmdCxlLmxlZnQpLGV9LGN1KHQsaSxvKSk7cmV0dXJue3dpZHRoOmwucmlnaHQtbC5sZWZ0LGhlaWdodDpsLmJvdHRvbS1sLnRvcCx4OmwubGVmdCx5OmwudG9wfX0sZ2V0T2Zmc2V0UGFyZW50OmNwLGdldEVsZW1lbnRSZWN0czpjaCxnZXRDbGllbnRSZWN0czpmdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkuZnJvbShlLmdldENsaWVudFJlY3RzKCkpfSxnZXREaW1lbnNpb25zOmZ1bmN0aW9uKGUpe2xldHt3aWR0aDp0LGhlaWdodDpufT1jdChlKTtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6bn19LGdldFNjYWxlOmNyLGlzRWxlbWVudDphTCxpc1JUTDpmdW5jdGlvbihlKXtyZXR1cm5cInJ0bFwiPT09YUcoZSkuZGlyZWN0aW9ufX07ZnVuY3Rpb24gY2coZSx0KXtyZXR1cm4gZS54PT09dC54JiZlLnk9PT10LnkmJmUud2lkdGg9PT10LndpZHRoJiZlLmhlaWdodD09PXQuaGVpZ2h0fWZ1bmN0aW9uIGN5KGUsdCxuLHIpe2xldCBvO3ZvaWQgMD09PXImJihyPXt9KTtsZXR7YW5jZXN0b3JTY3JvbGw6YT0hMCxhbmNlc3RvclJlc2l6ZTppPSEwLGVsZW1lbnRSZXNpemU6bD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBSZXNpemVPYnNlcnZlcixsYXlvdXRTaGlmdDpzPVwiZnVuY3Rpb25cIj09dHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyLGFuaW1hdGlvbkZyYW1lOmM9ITF9PXIsdT1jbihlKSxkPWF8fGk/Wy4uLnU/YTAodSk6W10sLi4uYTAodCldOltdO2QuZm9yRWFjaChlPT57YSYmZS5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsbix7cGFzc2l2ZTohMH0pLGkmJmUuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG4pfSk7bGV0IGY9dSYmcz9mdW5jdGlvbihlLHQpe2xldCBuLHI9bnVsbCxvPWF6KGUpO2Z1bmN0aW9uIGEoKXt2YXIgZTtjbGVhclRpbWVvdXQobiksbnVsbD09KGU9cil8fGUuZGlzY29ubmVjdCgpLHI9bnVsbH1yZXR1cm4hZnVuY3Rpb24gaShsLHMpe3ZvaWQgMD09PWwmJihsPSExKSx2b2lkIDA9PT1zJiYocz0xKSxhKCk7bGV0IGM9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7bGVmdDp1LHRvcDpkLHdpZHRoOmYsaGVpZ2h0OnB9PWM7aWYobHx8dCgpLCFmfHwhcClyZXR1cm47bGV0IGg9aVEoZCksbT1pUShvLmNsaWVudFdpZHRoLSh1K2YpKSxnPWlRKG8uY2xpZW50SGVpZ2h0LShkK3ApKSx5PXtyb290TWFyZ2luOi1oK1wicHggXCIrLW0rXCJweCBcIistZytcInB4IFwiKy1pUSh1KStcInB4XCIsdGhyZXNob2xkOmlYKDAsaUsoMSxzKSl8fDF9LHY9ITA7ZnVuY3Rpb24gYih0KXtsZXQgcj10WzBdLmludGVyc2VjdGlvblJhdGlvO2lmKHIhPT1zKXtpZighdilyZXR1cm4gaSgpO3I/aSghMSxyKTpuPXNldFRpbWVvdXQoKCk9PntpKCExLDFlLTcpfSwxZTMpfTEhPT1yfHxjZyhjLGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpfHxpKCksdj0hMX10cnl7cj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYix7Li4ueSxyb290Om8ub3duZXJEb2N1bWVudH0pfWNhdGNoKGUpe3I9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGIseSl9ci5vYnNlcnZlKGUpfSghMCksYX0odSxuKTpudWxsLHA9LTEsaD1udWxsO2wmJihoPW5ldyBSZXNpemVPYnNlcnZlcihlPT57bGV0W3JdPWU7ciYmci50YXJnZXQ9PT11JiZoJiYoaC51bm9ic2VydmUodCksY2FuY2VsQW5pbWF0aW9uRnJhbWUocCkscD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt2YXIgZTtudWxsPT0oZT1oKXx8ZS5vYnNlcnZlKHQpfSkpLG4oKX0pLHUmJiFjJiZoLm9ic2VydmUodSksaC5vYnNlcnZlKHQpKTtsZXQgbT1jP2NpKGUpOm51bGw7cmV0dXJuIGMmJmZ1bmN0aW9uIHQoKXtsZXQgcj1jaShlKTttJiYhY2cobSxyKSYmbigpLG09cixvPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX0oKSxuKCksKCk9Pnt2YXIgZTtkLmZvckVhY2goZT0+e2EmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLG4pLGkmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG4pfSksbnVsbD09Znx8ZigpLG51bGw9PShlPWgpfHxlLmRpc2Nvbm5lY3QoKSxoPW51bGwsYyYmY2FuY2VsQW5pbWF0aW9uRnJhbWUobyl9fXZhciBjdj1cInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQsY2I9Y3Y/dy51c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIGNBKGUsdCl7bGV0IG4scixvO2lmKGU9PT10KXJldHVybiEwO2lmKHR5cGVvZiBlIT10eXBlb2YgdClyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlLnRvU3RyaW5nKCk9PT10LnRvU3RyaW5nKCkpcmV0dXJuITA7aWYoZSYmdCYmXCJvYmplY3RcIj09dHlwZW9mIGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2lmKChuPWUubGVuZ3RoKSE9PXQubGVuZ3RoKXJldHVybiExO2ZvcihyPW47MCE9ci0tOylpZighY0EoZVtyXSx0W3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1pZigobj0obz1PYmplY3Qua2V5cyhlKSkubGVuZ3RoKSE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aClyZXR1cm4hMTtmb3Iocj1uOzAhPXItLTspaWYoISh7fSkuaGFzT3duUHJvcGVydHkuY2FsbCh0LG9bcl0pKXJldHVybiExO2ZvcihyPW47MCE9ci0tOyl7bGV0IG49b1tyXTtpZigoXCJfb3duZXJcIiE9PW58fCFlLiQkdHlwZW9mKSYmIWNBKGVbbl0sdFtuXSkpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIGUhPWUmJnQhPXR9ZnVuY3Rpb24gY3goZSl7cmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdz8xOihlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZGV2aWNlUGl4ZWxSYXRpb3x8MX1mdW5jdGlvbiBjdyhlLHQpe2xldCBuPWN4KGUpO3JldHVybiBNYXRoLnJvdW5kKHQqbikvbn1mdW5jdGlvbiBjQyhlKXtsZXQgdD13LnVzZVJlZihlKTtyZXR1cm4gY2IoKCk9Pnt0LmN1cnJlbnQ9ZX0pLHR9ZnVuY3Rpb24gY18oZSx0LG4pe2xldCByPVwiaW5saW5lLXN0YXJ0XCI9PT1lfHxcImlubGluZS1lbmRcIj09PWU7cmV0dXJuKHt0b3A6XCJ0b3BcIixyaWdodDpyP24/XCJpbmxpbmUtc3RhcnRcIjpcImlubGluZS1lbmRcIjpcInJpZ2h0XCIsYm90dG9tOlwiYm90dG9tXCIsbGVmdDpyP24/XCJpbmxpbmUtZW5kXCI6XCJpbmxpbmUtc3RhcnRcIjpcImxlZnRcIn0pW3RdfWZ1bmN0aW9uIGNrKGUsdCxuKXtsZXR7cmVjdHM6cixwbGFjZW1lbnQ6b309ZTtyZXR1cm57c2lkZTpjXyh0LGk0KG8pLG4pLGFsaWduOmk1KG8pfHxcImNlbnRlclwiLGFuY2hvcjp7d2lkdGg6ci5yZWZlcmVuY2Uud2lkdGgsaGVpZ2h0OnIucmVmZXJlbmNlLmhlaWdodH0scG9zaXRpb25lcjp7d2lkdGg6ci5mbG9hdGluZy53aWR0aCxoZWlnaHQ6ci5mbG9hdGluZy5oZWlnaHR9fX1mdW5jdGlvbiBjRShlKXt2YXIgdCxuLHIsbyxhO2xldCBpLGwscyxjLHUsZCxmLHAsaCxtLGcseSx2LHthbmNob3I6Yixwb3NpdGlvbk1ldGhvZDpBPVwiYWJzb2x1dGVcIixzaWRlOng9XCJib3R0b21cIixzaWRlT2Zmc2V0OkM9MCxhbGlnbjpfPVwiY2VudGVyXCIsYWxpZ25PZmZzZXQ6az0wLGNvbGxpc2lvbkJvdW5kYXJ5OkUsY29sbGlzaW9uUGFkZGluZzpqPTUsc3RpY2t5OlM9ITEsYXJyb3dQYWRkaW5nOk89NSx0cmFja0FuY2hvcjpCPSEwLGtlZXBNb3VudGVkOlA9ITEsZmxvYXRpbmdSb290Q29udGV4dDpJLG1vdW50ZWQ6VCxjb2xsaXNpb25Bdm9pZGFuY2U6eixzaGlmdENyb3NzQXhpczpEPSExLG5vZGVJZDpMLGFkYXB0aXZlT3JpZ2luOk59PWUsUj16LnNpZGV8fFwiZmxpcFwiLE09ei5hbGlnbnx8XCJmbGlwXCIsWj16LmZhbGxiYWNrQXhpc1NpZGV8fFwiZW5kXCIsVT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBiP2I6dm9pZCAwLEY9YWgoVSkscT1VP0Y6YixIPWEyKGIpLFY9XCJydGxcIj09PWxqKCksJD17dG9wOlwidG9wXCIscmlnaHQ6XCJyaWdodFwiLGJvdHRvbTpcImJvdHRvbVwiLGxlZnQ6XCJsZWZ0XCIsXCJpbmxpbmUtZW5kXCI6Vj9cImxlZnRcIjpcInJpZ2h0XCIsXCJpbmxpbmUtc3RhcnRcIjpWP1wicmlnaHRcIjpcImxlZnRcIn1beF0sVz1cImNlbnRlclwiPT09Xz8kOmAkeyR9LSR7X31gLFk9e2JvdW5kYXJ5OlwiY2xpcHBpbmctYW5jZXN0b3JzXCI9PT1FP1wiY2xpcHBpbmdBbmNlc3RvcnNcIjpFLHBhZGRpbmc6an0sSz13LnVzZVJlZihudWxsKSxYPWEyKEMpLEc9YTIoayksUT1cImZ1bmN0aW9uXCIhPXR5cGVvZiBDP0M6MCxKPVsoaT1lPT57bGV0IHQ9Y2soZSx4LFYpLG49XCJmdW5jdGlvblwiPT10eXBlb2YgWC5jdXJyZW50P1guY3VycmVudCh0KTpYLmN1cnJlbnQscj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBHLmN1cnJlbnQ/Ry5jdXJyZW50KHQpOkcuY3VycmVudDtyZXR1cm57bWFpbkF4aXM6bixjcm9zc0F4aXM6cixhbGlnbm1lbnRBeGlzOnJ9fSxsPVtRLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGs/azowLFYseF0sey4uLih2b2lkIDA9PT0odD1pKSYmKHQ9MCkse25hbWU6XCJvZmZzZXRcIixvcHRpb25zOnQsYXN5bmMgZm4oZSl7dmFyIG4scjtsZXR7eDpvLHk6YSxwbGFjZW1lbnQ6aSxtaWRkbGV3YXJlRGF0YTpsfT1lLHM9YXdhaXQgY2UoZSx0KTtyZXR1cm4gaT09PShudWxsPT0obj1sLm9mZnNldCk/dm9pZCAwOm4ucGxhY2VtZW50KSYmbnVsbCE9KHI9bC5hcnJvdykmJnIuYWxpZ25tZW50T2Zmc2V0P3t9Ont4Om8rcy54LHk6YStzLnksZGF0YTp7Li4ucyxwbGFjZW1lbnQ6aX19fX0pLG9wdGlvbnM6W2ksbF19KV0sZWU9XCJub25lXCI9PT1NJiZcInNoaWZ0XCIhPT1SLGV0PSFlZSYmKFN8fER8fFwic2hpZnRcIj09PVIpLGVuPVwibm9uZVwiPT09Uj9udWxsOnsuLi57bmFtZTpcImZsaXBcIixvcHRpb25zOm49cz17Li4uWSxtYWluQXhpczohRCYmXCJmbGlwXCI9PT1SLGNyb3NzQXhpczpcImZsaXBcIj09PU0mJlwiYWxpZ25tZW50XCIsZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbjpafSxhc3luYyBmbihlKXt2YXIgdCxyLG8sYSxpO2xldHtwbGFjZW1lbnQ6bCxtaWRkbGV3YXJlRGF0YTpzLHJlY3RzOmMsaW5pdGlhbFBsYWNlbWVudDp1LHBsYXRmb3JtOmQsZWxlbWVudHM6Zn09ZSx7bWFpbkF4aXM6cD0hMCxjcm9zc0F4aXM6aD0hMCxmYWxsYmFja1BsYWNlbWVudHM6bSxmYWxsYmFja1N0cmF0ZWd5Omc9XCJiZXN0Rml0XCIsZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbjp5PVwibm9uZVwiLGZsaXBBbGlnbm1lbnQ6dj0hMCwuLi5ifT1pMihuLGUpO2lmKG51bGwhPSh0PXMuYXJyb3cpJiZ0LmFsaWdubWVudE9mZnNldClyZXR1cm57fTtsZXQgQT1pNChsKSx4PWk4KHUpLHc9aTQodSk9PT11LEM9YXdhaXQgKG51bGw9PWQuaXNSVEw/dm9pZCAwOmQuaXNSVEwoZi5mbG9hdGluZykpLF89bXx8KHd8fCF2P1tsbyh1KV06ZnVuY3Rpb24oZSl7bGV0IHQ9bG8oZSk7cmV0dXJuW2k3KGUpLHQsaTcodCldfSh1KSksaz1cIm5vbmVcIiE9PXk7IW0mJmsmJl8ucHVzaCguLi5mdW5jdGlvbihlLHQsbixyKXtsZXQgbz1pNShlKSxhPWZ1bmN0aW9uKGUsdCxuKXtzd2l0Y2goZSl7Y2FzZVwidG9wXCI6Y2FzZVwiYm90dG9tXCI6aWYobilyZXR1cm4gdD9sdDpsZTtyZXR1cm4gdD9sZTpsdDtjYXNlXCJsZWZ0XCI6Y2FzZVwicmlnaHRcIjpyZXR1cm4gdD9sbjpscjtkZWZhdWx0OnJldHVybltdfX0oaTQoZSksXCJzdGFydFwiPT09bixyKTtyZXR1cm4gbyYmKGE9YS5tYXAoZT0+ZStcIi1cIitvKSx0JiYoYT1hLmNvbmNhdChhLm1hcChpNykpKSksYX0odSx2LHksQykpO2xldCBFPVt1LC4uLl9dLGo9YXdhaXQgczYoZSxiKSxTPVtdLE89KG51bGw9PShyPXMuZmxpcCk/dm9pZCAwOnIub3ZlcmZsb3dzKXx8W107aWYocCYmUy5wdXNoKGpbQV0pLGgpe2xldCBlPWZ1bmN0aW9uKGUsdCxuKXt2b2lkIDA9PT1uJiYobj0hMSk7bGV0IHI9aTUoZSksbz1pMyhpOChlKSksYT1pNihvKSxpPVwieFwiPT09bz9yPT09KG4/XCJlbmRcIjpcInN0YXJ0XCIpP1wicmlnaHRcIjpcImxlZnRcIjpcInN0YXJ0XCI9PT1yP1wiYm90dG9tXCI6XCJ0b3BcIjtyZXR1cm4gdC5yZWZlcmVuY2VbYV0+dC5mbG9hdGluZ1thXSYmKGk9bG8oaSkpLFtpLGxvKGkpXX0obCxjLEMpO1MucHVzaChqW2VbMF1dLGpbZVsxXV0pfWlmKE89Wy4uLk8se3BsYWNlbWVudDpsLG92ZXJmbG93czpTfV0sIVMuZXZlcnkoZT0+ZTw9MCkpe2xldCBlPSgobnVsbD09KG89cy5mbGlwKT92b2lkIDA6by5pbmRleCl8fDApKzEsdD1FW2VdO2lmKHQmJihcImFsaWdubWVudFwiIT09aHx8eD09PWk4KHQpfHxPLmV2ZXJ5KGU9Pmk4KGUucGxhY2VtZW50KSE9PXh8fGUub3ZlcmZsb3dzWzBdPjApKSlyZXR1cm57ZGF0YTp7aW5kZXg6ZSxvdmVyZmxvd3M6T30scmVzZXQ6e3BsYWNlbWVudDp0fX07bGV0IG49bnVsbD09KGE9Ty5maWx0ZXIoZT0+ZS5vdmVyZmxvd3NbMF08PTApLnNvcnQoKGUsdCk9PmUub3ZlcmZsb3dzWzFdLXQub3ZlcmZsb3dzWzFdKVswXSk/dm9pZCAwOmEucGxhY2VtZW50O2lmKCFuKXN3aXRjaChnKXtjYXNlXCJiZXN0Rml0XCI6e2xldCBlPW51bGw9PShpPU8uZmlsdGVyKGU9PntpZihrKXtsZXQgdD1pOChlLnBsYWNlbWVudCk7cmV0dXJuIHQ9PT14fHxcInlcIj09PXR9cmV0dXJuITB9KS5tYXAoZT0+W2UucGxhY2VtZW50LGUub3ZlcmZsb3dzLmZpbHRlcihlPT5lPjApLnJlZHVjZSgoZSx0KT0+ZSt0LDApXSkuc29ydCgoZSx0KT0+ZVsxXS10WzFdKVswXSk/dm9pZCAwOmlbMF07ZSYmKG49ZSk7YnJlYWt9Y2FzZVwiaW5pdGlhbFBsYWNlbWVudFwiOm49dX1pZihsIT09bilyZXR1cm57cmVzZXQ6e3BsYWNlbWVudDpufX19cmV0dXJue319fSxvcHRpb25zOltzLGNdfSxlcj1lZT9udWxsOih1PWU9Pnt2YXIgdDtsZXQgbixyLG89bFMoZS5lbGVtZW50cy5mbG9hdGluZykuZG9jdW1lbnRFbGVtZW50O3JldHVybnsuLi5ZLHJvb3RCb3VuZGFyeTpEP3t4OjAseTowLHdpZHRoOm8uY2xpZW50V2lkdGgsaGVpZ2h0Om8uY2xpZW50SGVpZ2h0fTp2b2lkIDAsbWFpbkF4aXM6XCJub25lXCIhPT1NLGNyb3NzQXhpczpldCxsaW1pdGVyOlN8fEQ/dm9pZCAwOnsuLi4odm9pZCAwPT09KHQ9bj0oKT0+e2lmKCFLLmN1cnJlbnQpcmV0dXJue307bGV0e2hlaWdodDplfT1LLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue29mZnNldDplLzIrKFwibnVtYmVyXCI9PXR5cGVvZiBqP2o6MCl9fSkmJih0PXt9KSx7b3B0aW9uczp0LGZuKGUpe2xldHt4Om4seTpyLHBsYWNlbWVudDpvLHJlY3RzOmEsbWlkZGxld2FyZURhdGE6aX09ZSx7b2Zmc2V0Omw9MCxtYWluQXhpczpzPSEwLGNyb3NzQXhpczpjPSEwfT1pMih0LGUpLHU9e3g6bix5OnJ9LGQ9aTgobyksZj1pMyhkKSxwPXVbZl0saD11W2RdLG09aTIobCxlKSxnPVwibnVtYmVyXCI9PXR5cGVvZiBtP3ttYWluQXhpczptLGNyb3NzQXhpczowfTp7bWFpbkF4aXM6MCxjcm9zc0F4aXM6MCwuLi5tfTtpZihzKXtsZXQgZT1cInlcIj09PWY/XCJoZWlnaHRcIjpcIndpZHRoXCIsdD1hLnJlZmVyZW5jZVtmXS1hLmZsb2F0aW5nW2VdK2cubWFpbkF4aXMsbj1hLnJlZmVyZW5jZVtmXSthLnJlZmVyZW5jZVtlXS1nLm1haW5BeGlzO3A8dD9wPXQ6cD5uJiYocD1uKX1pZihjKXt2YXIgeSx2O2xldCBlPVwieVwiPT09Zj9cIndpZHRoXCI6XCJoZWlnaHRcIix0PXM3LmhhcyhpNChvKSksbj1hLnJlZmVyZW5jZVtkXS1hLmZsb2F0aW5nW2VdKyh0JiYobnVsbD09KHk9aS5vZmZzZXQpP3ZvaWQgMDp5W2RdKXx8MCkrKHQ/MDpnLmNyb3NzQXhpcykscj1hLnJlZmVyZW5jZVtkXSthLnJlZmVyZW5jZVtlXSsodD8wOihudWxsPT0odj1pLm9mZnNldCk/dm9pZCAwOnZbZF0pfHwwKS0odD9nLmNyb3NzQXhpczowKTtoPG4/aD1uOmg+ciYmKGg9cil9cmV0dXJue1tmXTpwLFtkXTpofX19KSxvcHRpb25zOltuLHJdfX19LGQ9W1ksUyxELGosTV0sey4uLih2b2lkIDA9PT0ocj11KSYmKHI9e30pLHtuYW1lOlwic2hpZnRcIixvcHRpb25zOnIsYXN5bmMgZm4oZSl7bGV0e3g6dCx5Om4scGxhY2VtZW50Om99PWUse21haW5BeGlzOmE9ITAsY3Jvc3NBeGlzOmk9ITEsbGltaXRlcjpsPXtmbjplPT57bGV0e3g6dCx5Om59PWU7cmV0dXJue3g6dCx5Om59fX0sLi4uc309aTIocixlKSxjPXt4OnQseTpufSx1PWF3YWl0IHM2KGUscyksZD1pOChpNChvKSksZj1pMyhkKSxwPWNbZl0saD1jW2RdO2lmKGEpe2xldCBlPVwieVwiPT09Zj9cInRvcFwiOlwibGVmdFwiLHQ9XCJ5XCI9PT1mP1wiYm90dG9tXCI6XCJyaWdodFwiLG49cCt1W2VdLHI9cC11W3RdO3A9aVgobixpSyhwLHIpKX1pZihpKXtsZXQgZT1cInlcIj09PWQ/XCJ0b3BcIjpcImxlZnRcIix0PVwieVwiPT09ZD9cImJvdHRvbVwiOlwicmlnaHRcIixuPWgrdVtlXSxyPWgtdVt0XTtoPWlYKG4saUsoaCxyKSl9bGV0IG09bC5mbih7Li4uZSxbZl06cCxbZF06aH0pO3JldHVybnsuLi5tLGRhdGE6e3g6bS54LXQseTptLnktbixlbmFibGVkOntbZl06YSxbZF06aX19fX19KSxvcHRpb25zOlt1LGRdfSk7XCJzaGlmdFwiPT09Unx8XCJzaGlmdFwiPT09TXx8XCJjZW50ZXJcIj09PV8/Si5wdXNoKGVyLGVuKTpKLnB1c2goZW4sZXIpLEoucHVzaCh7Li4ue25hbWU6XCJzaXplXCIsb3B0aW9uczpvPWY9ey4uLlksYXBwbHkoe2VsZW1lbnRzOntmbG9hdGluZzplfSxyZWN0czp7cmVmZXJlbmNlOnR9LGF2YWlsYWJsZVdpZHRoOm4sYXZhaWxhYmxlSGVpZ2h0OnJ9KXtPYmplY3QuZW50cmllcyh7XCItLWF2YWlsYWJsZS13aWR0aFwiOmAke259cHhgLFwiLS1hdmFpbGFibGUtaGVpZ2h0XCI6YCR7cn1weGAsXCItLWFuY2hvci13aWR0aFwiOmAke3Qud2lkdGh9cHhgLFwiLS1hbmNob3ItaGVpZ2h0XCI6YCR7dC5oZWlnaHR9cHhgfSkuZm9yRWFjaCgoW3Qsbl0pPT57ZS5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pfSl9fSxhc3luYyBmbihlKXt2YXIgdCxuO2xldCByLGEse3BsYWNlbWVudDppLHJlY3RzOmwscGxhdGZvcm06cyxlbGVtZW50czpjfT1lLHthcHBseTp1PSgpPT57fSwuLi5kfT1pMihvLGUpLGY9YXdhaXQgczYoZSxkKSxwPWk0KGkpLGg9aTUoaSksbT1cInlcIj09PWk4KGkpLHt3aWR0aDpnLGhlaWdodDp5fT1sLmZsb2F0aW5nO1widG9wXCI9PT1wfHxcImJvdHRvbVwiPT09cD8ocj1wLGE9aD09PShhd2FpdCAobnVsbD09cy5pc1JUTD92b2lkIDA6cy5pc1JUTChjLmZsb2F0aW5nKSk/XCJzdGFydFwiOlwiZW5kXCIpP1wibGVmdFwiOlwicmlnaHRcIik6KGE9cCxyPVwiZW5kXCI9PT1oP1widG9wXCI6XCJib3R0b21cIik7bGV0IHY9eS1mLnRvcC1mLmJvdHRvbSxiPWctZi5sZWZ0LWYucmlnaHQsQT1pSyh5LWZbcl0sdikseD1pSyhnLWZbYV0sYiksdz0hZS5taWRkbGV3YXJlRGF0YS5zaGlmdCxDPUEsXz14O2lmKG51bGwhPSh0PWUubWlkZGxld2FyZURhdGEuc2hpZnQpJiZ0LmVuYWJsZWQueCYmKF89YiksbnVsbCE9KG49ZS5taWRkbGV3YXJlRGF0YS5zaGlmdCkmJm4uZW5hYmxlZC55JiYoQz12KSx3JiYhaCl7bGV0IGU9aVgoZi5sZWZ0LDApLHQ9aVgoZi5yaWdodCwwKSxuPWlYKGYudG9wLDApLHI9aVgoZi5ib3R0b20sMCk7bT9fPWctMiooMCE9PWV8fDAhPT10P2UrdDppWChmLmxlZnQsZi5yaWdodCkpOkM9eS0yKigwIT09bnx8MCE9PXI/bityOmlYKGYudG9wLGYuYm90dG9tKSl9YXdhaXQgdSh7Li4uZSxhdmFpbGFibGVXaWR0aDpfLGF2YWlsYWJsZUhlaWdodDpDfSk7bGV0IGs9YXdhaXQgcy5nZXREaW1lbnNpb25zKGMuZmxvYXRpbmcpO3JldHVybiBnIT09ay53aWR0aHx8eSE9PWsuaGVpZ2h0P3tyZXNldDp7cmVjdHM6ITB9fTp7fX19LG9wdGlvbnM6W2YscF19LChoPSgpPT4oe2VsZW1lbnQ6Sy5jdXJyZW50fHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHBhZGRpbmc6TyxvZmZzZXRQYXJlbnQ6XCJmbG9hdGluZ1wifSksbT1bT10sey4uLntuYW1lOlwiYXJyb3dcIixvcHRpb25zOmc9aCxhc3luYyBmbihlKXtsZXR7eDp0LHk6bixwbGFjZW1lbnQ6cixyZWN0czpvLHBsYXRmb3JtOmEsZWxlbWVudHM6aSxtaWRkbGV3YXJlRGF0YTpsfT1lLHtlbGVtZW50OnMscGFkZGluZzpjPTAsb2Zmc2V0UGFyZW50OnU9XCJyZWFsXCJ9PWkyKGcsZSl8fHt9O2lmKG51bGw9PXMpcmV0dXJue307bGV0IGQ9bGEoYyksZj17eDp0LHk6bn0scD1pMyhpOChyKSksaD1pNihwKSxtPWF3YWl0IGEuZ2V0RGltZW5zaW9ucyhzKSx5PVwieVwiPT09cCx2PXk/XCJjbGllbnRIZWlnaHRcIjpcImNsaWVudFdpZHRoXCIsYj1vLnJlZmVyZW5jZVtoXStvLnJlZmVyZW5jZVtwXS1mW3BdLW8uZmxvYXRpbmdbaF0sQT1mW3BdLW8ucmVmZXJlbmNlW3BdLHg9XCJyZWFsXCI9PT11P2F3YWl0IGEuZ2V0T2Zmc2V0UGFyZW50Py4ocyk6aS5mbG9hdGluZyx3PWkuZmxvYXRpbmdbdl18fG8uZmxvYXRpbmdbaF07dyYmYXdhaXQgYS5pc0VsZW1lbnQ/Lih4KXx8KHc9aS5mbG9hdGluZ1t2XXx8by5mbG9hdGluZ1toXSk7bGV0IEM9dy8yLW1baF0vMi0xLF89TWF0aC5taW4oZFt5P1widG9wXCI6XCJsZWZ0XCJdLEMpLGs9TWF0aC5taW4oZFt5P1wiYm90dG9tXCI6XCJyaWdodFwiXSxDKSxFPXctbVtoXS1rLGo9dy8yLW1baF0vMisoYi8yLUEvMiksUz1pWChfLGlLKGosRSkpLE89IWwuYXJyb3cmJm51bGwhPWk1KHIpJiZqIT09UyYmby5yZWZlcmVuY2VbaF0vMi0oajxfP186ayktbVtoXS8yPDAsQj1PP2o8Xz9qLV86ai1FOjA7cmV0dXJue1twXTpmW3BdK0IsZGF0YTp7W3BdOlMsY2VudGVyT2Zmc2V0OmotUy1CLC4uLk8mJnthbGlnbm1lbnRPZmZzZXQ6Qn19LHJlc2V0Ok99fX0sb3B0aW9uczpbaCxtXX0pLHsuLi4odm9pZCAwPT09KGE9eSkmJihhPXt9KSx7bmFtZTpcImhpZGVcIixvcHRpb25zOmEsYXN5bmMgZm4oZSl7bGV0e3JlY3RzOnR9PWUse3N0cmF0ZWd5Om49XCJyZWZlcmVuY2VIaWRkZW5cIiwuLi5yfT1pMihhLGUpO3N3aXRjaChuKXtjYXNlXCJyZWZlcmVuY2VIaWRkZW5cIjp7bGV0IG49czkoYXdhaXQgczYoZSx7Li4ucixlbGVtZW50Q29udGV4dDpcInJlZmVyZW5jZVwifSksdC5yZWZlcmVuY2UpO3JldHVybntkYXRhOntyZWZlcmVuY2VIaWRkZW5PZmZzZXRzOm4scmVmZXJlbmNlSGlkZGVuOnM4KG4pfX19Y2FzZVwiZXNjYXBlZFwiOntsZXQgbj1zOShhd2FpdCBzNihlLHsuLi5yLGFsdEJvdW5kYXJ5OiEwfSksdC5mbG9hdGluZyk7cmV0dXJue2RhdGE6e2VzY2FwZWRPZmZzZXRzOm4sZXNjYXBlZDpzOChuKX19fWRlZmF1bHQ6cmV0dXJue319fX0pLG9wdGlvbnM6W3ksdl19LHtuYW1lOlwidHJhbnNmb3JtT3JpZ2luXCIsZm4oZSl7bGV0e2VsZW1lbnRzOnQsbWlkZGxld2FyZURhdGE6bixwbGFjZW1lbnQ6cixyZWN0czpvLHk6YX09ZSxpPWk0KHIpLGw9aTgoaSkscz1LLmN1cnJlbnQsYz1uLmFycm93Py54fHwwLHU9bi5hcnJvdz8ueXx8MCxkPXM/LmNsaWVudFdpZHRofHwwLGY9cz8uY2xpZW50SGVpZ2h0fHwwLHA9YytkLzIsaD11K2YvMixtPU1hdGguYWJzKG4uc2hpZnQ/Lnl8fDApLGc9by5yZWZlcmVuY2UuaGVpZ2h0LzIseT1tPihcImZ1bmN0aW9uXCI9PXR5cGVvZiBDP0MoY2soZSx4LFYpKTpDKSx2PXt0b3A6YCR7cH1weCBjYWxjKDEwMCUgKyAke0N9cHgpYCxib3R0b206YCR7cH1weCAkey1DfXB4YCxsZWZ0OmBjYWxjKDEwMCUgKyAke0N9cHgpICR7aH1weGAscmlnaHQ6YCR7LUN9cHggJHtofXB4YH1baV0sYj1gJHtwfXB4ICR7by5yZWZlcmVuY2UueStnLWF9cHhgO3JldHVybiB0LmZsb2F0aW5nLnN0eWxlLnNldFByb3BlcnR5KFwiLS10cmFuc2Zvcm0tb3JpZ2luXCIsZXQmJlwieVwiPT09bCYmeT9iOnYpLHt9fX0sTik7bGV0IGVvPUk7IVQmJkkmJihlbz17Li4uSSxlbGVtZW50czp7cmVmZXJlbmNlOm51bGwsZmxvYXRpbmc6bnVsbCxkb21SZWZlcmVuY2U6bnVsbH19KTtsZXQgZWE9dy51c2VNZW1vKCgpPT4oe2VsZW1lbnRSZXNpemU6QiYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFJlc2l6ZU9ic2VydmVyLGxheW91dFNoaWZ0OkImJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcn0pLFtCXSkse3JlZnM6ZWksZWxlbWVudHM6ZWwseDplcyx5OmVjLG1pZGRsZXdhcmVEYXRhOmV1LHVwZGF0ZTplZCxwbGFjZW1lbnQ6ZWYsY29udGV4dDplcCxpc1Bvc2l0aW9uZWQ6ZW0sZmxvYXRpbmdTdHlsZXM6ZWd9PWZ1bmN0aW9uKGU9e30pe2xldHtub2RlSWQ6dH09ZSxuPWFCKHsuLi5lLGVsZW1lbnRzOntyZWZlcmVuY2U6bnVsbCxmbG9hdGluZzpudWxsLC4uLmUuZWxlbWVudHN9fSkscj1lLnJvb3RDb250ZXh0fHxuLG89ci5lbGVtZW50cyxbYSxpXT13LnVzZVN0YXRlKG51bGwpLFtsLHNdPXcudXNlU3RhdGUobnVsbCksYz1vPy5kb21SZWZlcmVuY2V8fGEsdT13LnVzZVJlZihudWxsKSxkPWFqKCk7YUMoKCk9PntjJiYodS5jdXJyZW50PWMpfSxbY10pO2xldCBmPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPXt9KTtsZXR7cGxhY2VtZW50OnQ9XCJib3R0b21cIixzdHJhdGVneTpuPVwiYWJzb2x1dGVcIixtaWRkbGV3YXJlOnI9W10scGxhdGZvcm06byxlbGVtZW50czp7cmVmZXJlbmNlOmEsZmxvYXRpbmc6aX09e30sdHJhbnNmb3JtOmw9ITAsd2hpbGVFbGVtZW50c01vdW50ZWQ6cyxvcGVuOmN9PWUsW3UsZF09dy51c2VTdGF0ZSh7eDowLHk6MCxzdHJhdGVneTpuLHBsYWNlbWVudDp0LG1pZGRsZXdhcmVEYXRhOnt9LGlzUG9zaXRpb25lZDohMX0pLFtmLHBdPXcudXNlU3RhdGUocik7Y0EoZixyKXx8cChyKTtsZXRbaCxtXT13LnVzZVN0YXRlKG51bGwpLFtnLHldPXcudXNlU3RhdGUobnVsbCksdj13LnVzZUNhbGxiYWNrKGU9PntlIT09Qy5jdXJyZW50JiYoQy5jdXJyZW50PWUsbShlKSl9LFtdKSxiPXcudXNlQ2FsbGJhY2soZT0+e2UhPT1fLmN1cnJlbnQmJihfLmN1cnJlbnQ9ZSx5KGUpKX0sW10pLEE9YXx8aCx4PWl8fGcsQz13LnVzZVJlZihudWxsKSxfPXcudXNlUmVmKG51bGwpLGs9dy51c2VSZWYodSksRT1udWxsIT1zLGo9Y0MocyksUz1jQyhvKSxPPWNDKGMpLEI9dy51c2VDYWxsYmFjaygoKT0+e2lmKCFDLmN1cnJlbnR8fCFfLmN1cnJlbnQpcmV0dXJuO2xldCBlPXtwbGFjZW1lbnQ6dCxzdHJhdGVneTpuLG1pZGRsZXdhcmU6Zn07Uy5jdXJyZW50JiYoZS5wbGF0Zm9ybT1TLmN1cnJlbnQpLCgoZSx0LG4pPT57bGV0IHI9bmV3IE1hcCxvPXtwbGF0Zm9ybTpjbSwuLi5ufSxhPXsuLi5vLnBsYXRmb3JtLF9jOnJ9O3JldHVybiBzMyhlLHQsey4uLm8scGxhdGZvcm06YX0pfSkoQy5jdXJyZW50LF8uY3VycmVudCxlKS50aGVuKGU9PntsZXQgdD17Li4uZSxpc1Bvc2l0aW9uZWQ6ITEhPT1PLmN1cnJlbnR9O1AuY3VycmVudCYmIWNBKGsuY3VycmVudCx0KSYmKGsuY3VycmVudD10LGVoLmZsdXNoU3luYygoKT0+e2QodCl9KSl9KX0sW2YsdCxuLFMsT10pO2NiKCgpPT57ITE9PT1jJiZrLmN1cnJlbnQuaXNQb3NpdGlvbmVkJiYoay5jdXJyZW50LmlzUG9zaXRpb25lZD0hMSxkKGU9Pih7Li4uZSxpc1Bvc2l0aW9uZWQ6ITF9KSkpfSxbY10pO2xldCBQPXcudXNlUmVmKCExKTtjYigoKT0+KFAuY3VycmVudD0hMCwoKT0+e1AuY3VycmVudD0hMX0pLFtdKSxjYigoKT0+e2lmKEEmJihDLmN1cnJlbnQ9QSkseCYmKF8uY3VycmVudD14KSxBJiZ4KXtpZihqLmN1cnJlbnQpcmV0dXJuIGouY3VycmVudChBLHgsQik7QigpfX0sW0EseCxCLGosRV0pO2xldCBJPXcudXNlTWVtbygoKT0+KHtyZWZlcmVuY2U6QyxmbG9hdGluZzpfLHNldFJlZmVyZW5jZTp2LHNldEZsb2F0aW5nOmJ9KSxbdixiXSksVD13LnVzZU1lbW8oKCk9Pih7cmVmZXJlbmNlOkEsZmxvYXRpbmc6eH0pLFtBLHhdKSx6PXcudXNlTWVtbygoKT0+e2xldCBlPXtwb3NpdGlvbjpuLGxlZnQ6MCx0b3A6MH07aWYoIVQuZmxvYXRpbmcpcmV0dXJuIGU7bGV0IHQ9Y3coVC5mbG9hdGluZyx1LngpLHI9Y3coVC5mbG9hdGluZyx1LnkpO3JldHVybiBsP3suLi5lLHRyYW5zZm9ybTpcInRyYW5zbGF0ZShcIit0K1wicHgsIFwiK3IrXCJweClcIiwuLi5jeChULmZsb2F0aW5nKT49MS41JiZ7d2lsbENoYW5nZTpcInRyYW5zZm9ybVwifX06e3Bvc2l0aW9uOm4sbGVmdDp0LHRvcDpyfX0sW24sbCxULmZsb2F0aW5nLHUueCx1LnldKTtyZXR1cm4gdy51c2VNZW1vKCgpPT4oey4uLnUsdXBkYXRlOkIscmVmczpJLGVsZW1lbnRzOlQsZmxvYXRpbmdTdHlsZXM6en0pLFt1LEIsSSxULHpdKX0oey4uLmUsZWxlbWVudHM6ey4uLm8sLi4ubCYme3JlZmVyZW5jZTpsfX19KSxwPXcudXNlQ2FsbGJhY2soZT0+e2xldCB0PWFMKGUpP3tnZXRCb3VuZGluZ0NsaWVudFJlY3Q6KCk9PmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZ2V0Q2xpZW50UmVjdHM6KCk9PmUuZ2V0Q2xpZW50UmVjdHMoKSxjb250ZXh0RWxlbWVudDplfTplO3ModCksZi5yZWZzLnNldFJlZmVyZW5jZSh0KX0sW2YucmVmc10pLGg9dy51c2VDYWxsYmFjayhlPT57KGFMKGUpfHxudWxsPT09ZSkmJih1LmN1cnJlbnQ9ZSxpKGUpKSwoYUwoZi5yZWZzLnJlZmVyZW5jZS5jdXJyZW50KXx8bnVsbD09PWYucmVmcy5yZWZlcmVuY2UuY3VycmVudHx8bnVsbCE9PWUmJiFhTChlKSkmJmYucmVmcy5zZXRSZWZlcmVuY2UoZSl9LFtmLnJlZnNdKSxtPXcudXNlTWVtbygoKT0+KHsuLi5mLnJlZnMsc2V0UmVmZXJlbmNlOmgsc2V0UG9zaXRpb25SZWZlcmVuY2U6cCxkb21SZWZlcmVuY2U6dX0pLFtmLnJlZnMsaCxwXSksZz13LnVzZU1lbW8oKCk9Pih7Li4uZi5lbGVtZW50cyxkb21SZWZlcmVuY2U6Y30pLFtmLmVsZW1lbnRzLGNdKSx5PXcudXNlTWVtbygoKT0+KHsuLi5mLC4uLnIscmVmczptLGVsZW1lbnRzOmcsbm9kZUlkOnR9KSxbZixtLGcsdCxyXSk7cmV0dXJuIGFDKCgpPT57ci5kYXRhUmVmLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0PXk7bGV0IGU9ZD8ubm9kZXNSZWYuY3VycmVudC5maW5kKGU9PmUuaWQ9PT10KTtlJiYoZS5jb250ZXh0PXkpfSksdy51c2VNZW1vKCgpPT4oey4uLmYsY29udGV4dDp5LHJlZnM6bSxlbGVtZW50czpnfSksW2YsbSxnLHldKX0oe3Jvb3RDb250ZXh0OmVvLHBsYWNlbWVudDpXLG1pZGRsZXdhcmU6SixzdHJhdGVneTpBLHdoaWxlRWxlbWVudHNNb3VudGVkOlA/dm9pZCAwOiguLi5lKT0+Y3koLi4uZSxlYSksbm9kZUlkOkx9KSx7c2lkZVg6ZXksc2lkZVk6ZXZ9PWV1LmFkYXB0aXZlT3JpZ2lufHx7fSxlYj13LnVzZU1lbW8oKCk9Pk4/e3Bvc2l0aW9uOkEsW2V5XTpgJHtlc31weGAsW2V2XTpgJHtlY31weGB9OmVnLFtOLGV5LGV2LEEsZXMsZWMsZWddKSxlQT13LnVzZVJlZihudWxsKTthQygoKT0+e2lmKCFUKXJldHVybjtsZXQgZT1ILmN1cnJlbnQsdD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UoKTplLG49KGNqKHQpP3QuY3VycmVudDp0KXx8bnVsbDtuIT09ZUEuY3VycmVudCYmKGVpLnNldFBvc2l0aW9uUmVmZXJlbmNlKG4pLGVBLmN1cnJlbnQ9bil9LFtULGVpLHEsSF0pLHcudXNlRWZmZWN0KCgpPT57aWYoIVQpcmV0dXJuO2xldCBlPUguY3VycmVudDtcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZjaihlKSYmZS5jdXJyZW50IT09ZUEuY3VycmVudCYmKGVpLnNldFBvc2l0aW9uUmVmZXJlbmNlKGUuY3VycmVudCksZUEuY3VycmVudD1lLmN1cnJlbnQpfSxbVCxlaSxxLEhdKSx3LnVzZUVmZmVjdCgoKT0+e2lmKFAmJlQmJmVsLmRvbVJlZmVyZW5jZSYmZWwuZmxvYXRpbmcpcmV0dXJuIGN5KGVsLmRvbVJlZmVyZW5jZSxlbC5mbG9hdGluZyxlZCxlYSl9LFtQLFQsZWwsZWQsZWFdKTtsZXQgZXg9Y18oeCxpNChlZiksViksZXc9aTUoZWYpfHxcImNlbnRlclwiLGVDPSEhZXUuaGlkZT8ucmVmZXJlbmNlSGlkZGVuLGVfPXcudXNlTWVtbygoKT0+KHtwb3NpdGlvbjpcImFic29sdXRlXCIsdG9wOmV1LmFycm93Py55LGxlZnQ6ZXUuYXJyb3c/Lnh9KSxbZXUuYXJyb3ddKSxlaz1ldS5hcnJvdz8uY2VudGVyT2Zmc2V0IT09MDtyZXR1cm4gdy51c2VNZW1vKCgpPT4oe3Bvc2l0aW9uZXJTdHlsZXM6ZWIsYXJyb3dTdHlsZXM6ZV8sYXJyb3dSZWY6SyxhcnJvd1VuY2VudGVyZWQ6ZWssc2lkZTpleCxhbGlnbjpldyxhbmNob3JIaWRkZW46ZUMscmVmczplaSxjb250ZXh0OmVwLGlzUG9zaXRpb25lZDplbSx1cGRhdGU6ZWR9KSxbZWIsZV8sSyxlayxleCxldyxlQyxlaSxlcCxlbSxlZF0pfWZ1bmN0aW9uIGNqKGUpe3JldHVybiBudWxsIT1lJiZcImN1cnJlbnRcImluIGV9ZnVuY3Rpb24gY1MoZSl7bGV0e2NoaWxkcmVuOnQsZWxlbWVudHNSZWY6bixsYWJlbHNSZWY6cixvbk1hcENoYW5nZTpvfT1lLGE9dy51c2VSZWYoMCksaT1hbChjQikuY3VycmVudCxsPWFsKGNPKS5jdXJyZW50LFtzLGNdPXcudXNlU3RhdGUoMCksdT13LnVzZVJlZihzKSxkPWFoKChlLHQpPT57bC5zZXQoZSx0Pz9udWxsKSx1LmN1cnJlbnQrPTEsYyh1LmN1cnJlbnQpfSksZj1haChlPT57bC5kZWxldGUoZSksdS5jdXJyZW50Kz0xLGModS5jdXJyZW50KX0pLHA9dy51c2VNZW1vKCgpPT57bGV0IGU9bmV3IE1hcDtyZXR1cm4gQXJyYXkuZnJvbShsLmtleXMoKSkuc29ydChjUCkuZm9yRWFjaCgodCxuKT0+e2xldCByPWwuZ2V0KHQpPz97fTtlLnNldCh0LHsuLi5yLGluZGV4Om59KX0pLGV9LFtsLHNdKTthQygoKT0+e3UuY3VycmVudD09PXMmJihuLmN1cnJlbnQubGVuZ3RoIT09cC5zaXplJiYobi5jdXJyZW50Lmxlbmd0aD1wLnNpemUpLHImJnIuY3VycmVudC5sZW5ndGghPT1wLnNpemUmJihyLmN1cnJlbnQubGVuZ3RoPXAuc2l6ZSkpLG8/LihwKX0sW28scCxuLHIscyx1XSk7bGV0IGg9YWgoZT0+KGkuYWRkKGUpLCgpPT57aS5kZWxldGUoZSl9KSk7YUMoKCk9PntpLmZvckVhY2goZT0+ZShwKSl9LFtpLHBdKTtsZXQgbT13LnVzZU1lbW8oKCk9Pih7cmVnaXN0ZXI6ZCx1bnJlZ2lzdGVyOmYsc3Vic2NyaWJlTWFwQ2hhbmdlOmgsZWxlbWVudHNSZWY6bixsYWJlbHNSZWY6cixuZXh0SW5kZXhSZWY6YX0pLFtkLGYsaCxuLHIsYV0pO3JldHVybigwLEEuanN4KShzYy5Qcm92aWRlcix7dmFsdWU6bSxjaGlsZHJlbjp0fSl9ZnVuY3Rpb24gY08oKXtyZXR1cm4gbmV3IE1hcH1mdW5jdGlvbiBjQigpe3JldHVybiBuZXcgU2V0fWZ1bmN0aW9uIGNQKGUsdCl7bGV0IG49ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KTtyZXR1cm4gbiZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lOR3x8biZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWT8tMTpuJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HfHxuJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM/MTowfWxldCBjST13LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXQgbix7Y3V0b3V0OnIsLi4ub309ZTtpZihyKXtsZXQgZT1yPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtuPWBwb2x5Z29uKFxuICAgICAgMCUgMCUsXG4gICAgICAxMDAlIDAlLFxuICAgICAgMTAwJSAxMDAlLFxuICAgICAgMCUgMTAwJSxcbiAgICAgIDAlIDAlLFxuICAgICAgJHtlLmxlZnR9cHggJHtlLnRvcH1weCxcbiAgICAgICR7ZS5sZWZ0fXB4ICR7ZS5ib3R0b219cHgsXG4gICAgICAke2UucmlnaHR9cHggJHtlLmJvdHRvbX1weCxcbiAgICAgICR7ZS5yaWdodH1weCAke2UudG9wfXB4LFxuICAgICAgJHtlLmxlZnR9cHggJHtlLnRvcH1weFxuICAgIClgfXJldHVybigwLEEuanN4KShcImRpdlwiLHtyZWY6dCxyb2xlOlwicHJlc2VudGF0aW9uXCIsXCJkYXRhLWJhc2UtdWktaW5lcnRcIjpcIlwiLC4uLm8sc3R5bGU6e3Bvc2l0aW9uOlwiZml4ZWRcIixpbnNldDowLHVzZXJTZWxlY3Q6XCJub25lXCIsV2Via2l0VXNlclNlbGVjdDpcIm5vbmVcIixjbGlwUGF0aDpufX0pfSksY1Q9dy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7dmFyIG47bGV0e2FuY2hvcjpyLHBvc2l0aW9uTWV0aG9kOm89XCJhYnNvbHV0ZVwiLGNsYXNzTmFtZTphLHJlbmRlcjppLHNpZGU6bCxhbGlnbjpzLHNpZGVPZmZzZXQ6Yz0wLGFsaWduT2Zmc2V0OnU9MCxjb2xsaXNpb25Cb3VuZGFyeTpkPVwiY2xpcHBpbmctYW5jZXN0b3JzXCIsY29sbGlzaW9uUGFkZGluZzpmPTUsYXJyb3dQYWRkaW5nOnA9NSxzdGlja3k6aD0hMSx0cmFja0FuY2hvcjptPSEwLGNvbGxpc2lvbkF2b2lkYW5jZTpnPWlGLC4uLnl9PWUse29wZW46dixzZXRPcGVuOmIsZmxvYXRpbmdSb290Q29udGV4dDp4LHNldFBvc2l0aW9uZXJFbGVtZW50OkMsaXRlbURvbUVsZW1lbnRzOl8saXRlbUxhYmVsczprLG1vdW50ZWQ6RSxtb2RhbDpqLGxhc3RPcGVuQ2hhbmdlUmVhc29uOlMscGFyZW50Ok8sc2V0SG92ZXJFbmFibGVkOkIsdHJpZ2dlckVsZW1lbnQ6UH09bHcoKSxJPWZ1bmN0aW9uKCl7bGV0IGU9dy51c2VDb250ZXh0KHMxKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogPE1lbnUuUG9ydGFsPiBpcyBtaXNzaW5nLlwiKTtyZXR1cm4gZX0oKSxUPWZ1bmN0aW9uKGUpe2xldCB0PWF4KCksbj1haigpLHI9YUUoKSxvPXI7cmV0dXJuIGFDKCgpPT57aWYoIXQpcmV0dXJuO2xldCBlPXtpZDp0LHBhcmVudElkOm99O3JldHVybiBuPy5hZGROb2RlKGUpLCgpPT57bj8ucmVtb3ZlTm9kZShlKX19LFtuLHQsb10pLHR9KCksej1hRSgpLEQ9bE4oITApLEw9cixOPWMsUj11LE09cztcImNvbnRleHQtbWVudVwiPT09Ty50eXBlJiYoTD1PLmNvbnRleHQ/LmFuY2hvcj8/cixNPWUuYWxpZ24/P1wic3RhcnRcIixSPWUuYWxpZ25PZmZzZXQ/PzIsTj1lLnNpZGVPZmZzZXQ/Py01KTtsZXQgWj1sLFU9TTtcIm1lbnVcIj09PU8udHlwZT8oWj1aPz9cImlubGluZS1lbmRcIixVPVU/P1wic3RhcnRcIik6XCJtZW51YmFyXCI9PT1PLnR5cGUmJihaPVo/P1wiYm90dG9tXCIsVT1VPz9cInN0YXJ0XCIpO2xldCBGPVwiY29udGV4dC1tZW51XCI9PT1PLnR5cGUscT1jRSh7YW5jaG9yOkwsZmxvYXRpbmdSb290Q29udGV4dDp4LHBvc2l0aW9uTWV0aG9kOkQ/XCJmaXhlZFwiOm8sbW91bnRlZDpFLHNpZGU6WixzaWRlT2Zmc2V0Ok4sYWxpZ246VSxhbGlnbk9mZnNldDpSLGFycm93UGFkZGluZzpGPzA6cCxjb2xsaXNpb25Cb3VuZGFyeTpkLGNvbGxpc2lvblBhZGRpbmc6ZixzdGlja3k6aCxub2RlSWQ6VCxrZWVwTW91bnRlZDpJLHRyYWNrQW5jaG9yOm0sY29sbGlzaW9uQXZvaWRhbmNlOmcsc2hpZnRDcm9zc0F4aXM6Rn0pLHtldmVudHM6SH09YWooKSxWPXcudXNlTWVtbygoKT0+e2xldCBlPXt9O3JldHVybiB2fHwoZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiKSx7cm9sZTpcInByZXNlbnRhdGlvblwiLGhpZGRlbjohRSxzdHlsZTp7Li4ucS5wb3NpdGlvbmVyU3R5bGVzLC4uLmV9fX0sW3YsRSxxLnBvc2l0aW9uZXJTdHlsZXNdKTt3LnVzZUVmZmVjdCgoKT0+e2Z1bmN0aW9uIGUoZSl7ZS5vcGVuPyhlLnBhcmVudE5vZGVJZD09PVQmJkIoITEpLGUubm9kZUlkIT09VCYmZS5wYXJlbnROb2RlSWQ9PT16JiZiKCExLHZvaWQgMCxcInNpYmxpbmctb3BlblwiKSk6ZS5wYXJlbnROb2RlSWQ9PT1UJiZCKCEwKX1yZXR1cm4gSC5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e0gub2ZmKFwib3BlbmNoYW5nZVwiLGUpfX0sW0gsVCx6LGIsQl0pLHcudXNlRWZmZWN0KCgpPT57SC5lbWl0KFwib3BlbmNoYW5nZVwiLHtvcGVuOnYsbm9kZUlkOlQscGFyZW50Tm9kZUlkOnp9KX0sW0gsdixULHpdKTtsZXQgJD13LnVzZU1lbW8oKCk9Pih7b3Blbjp2LHNpZGU6cS5zaWRlLGFsaWduOnEuYWxpZ24sYW5jaG9ySGlkZGVuOnEuYW5jaG9ySGlkZGVuLG5lc3RlZDpcIm1lbnVcIj09PU8udHlwZX0pLFt2LHEuc2lkZSxxLmFsaWduLHEuYW5jaG9ySGlkZGVuLE8udHlwZV0pLFc9dy51c2VNZW1vKCgpPT4oe3NpZGU6cS5zaWRlLGFsaWduOnEuYWxpZ24sYXJyb3dSZWY6cS5hcnJvd1JlZixhcnJvd1VuY2VudGVyZWQ6cS5hcnJvd1VuY2VudGVyZWQsYXJyb3dTdHlsZXM6cS5hcnJvd1N0eWxlcyxmbG9hdGluZ0NvbnRleHQ6cS5jb250ZXh0fSksW3Euc2lkZSxxLmFsaWduLHEuYXJyb3dSZWYscS5hcnJvd1VuY2VudGVyZWQscS5hcnJvd1N0eWxlcyxxLmNvbnRleHRdKSxZPXNvKFwiZGl2XCIsZSx7c3RhdGU6JCxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnNuLHJlZjpbdCxDXSxwcm9wczp7Li4uViwuLi55fX0pLEs9RSYmXCJtZW51XCIhPT1PLnR5cGUmJihcIm1lbnViYXJcIiE9PU8udHlwZSYmaiYmXCJ0cmlnZ2VyLWhvdmVyXCIhPT1TfHxcIm1lbnViYXJcIj09PU8udHlwZSYmTy5jb250ZXh0Lm1vZGFsKSxYPW51bGw7cmV0dXJuXCJtZW51YmFyXCI9PT1PLnR5cGU/WD1PLmNvbnRleHQuY29udGVudEVsZW1lbnQ6dm9pZCAwPT09Ty50eXBlJiYoWD1QKSwoMCxBLmpzeHMpKHM0LlByb3ZpZGVyLHt2YWx1ZTpXLGNoaWxkcmVuOltLJiYoMCxBLmpzeCkoY0kse3JlZjpcImNvbnRleHQtbWVudVwiPT09Ty50eXBlfHxcIm5lc3RlZC1jb250ZXh0LW1lbnVcIj09PU8udHlwZT9PLmNvbnRleHQuaW50ZXJuYWxCYWNrZHJvcFJlZjpudWxsLGluZXJ0OihuPSF2LHNyPj0xOT9uOm4/XCJ0cnVlXCI6dm9pZCAwKSxjdXRvdXQ6WH0pLCgwLEEuanN4KShhUyx7aWQ6VCxjaGlsZHJlbjooMCxBLmpzeCkoY1Mse2VsZW1lbnRzUmVmOl8sbGFiZWxzUmVmOmssY2hpbGRyZW46WX0pfSldfSl9KSxjej17aW5lcnQ6bmV3IFdlYWtNYXAsXCJhcmlhLWhpZGRlblwiOm5ldyBXZWFrTWFwLG5vbmU6bmV3IFdlYWtNYXB9O2Z1bmN0aW9uIGNEKGUpe3JldHVyblwiaW5lcnRcIj09PWU/Y3ouaW5lcnQ6XCJhcmlhLWhpZGRlblwiPT09ZT9jeltcImFyaWEtaGlkZGVuXCJdOmN6Lm5vbmV9bGV0IGNMPW5ldyBXZWFrU2V0LGNOPXt9LGNSPTAsY009ZT0+ZSYmKGUuaG9zdHx8Y00oZS5wYXJlbnROb2RlKSksY1o9W107ZnVuY3Rpb24gY1UoKXtjWj1jWi5maWx0ZXIoZT0+ZS5pc0Nvbm5lY3RlZCl9ZnVuY3Rpb24gY0YoKXtyZXR1cm4gY1UoKSxjWltjWi5sZW5ndGgtMV19ZnVuY3Rpb24gY3EoZSx0KXtpZighdC5jdXJyZW50LmluY2x1ZGVzKFwiZmxvYXRpbmdcIikmJiFlLmdldEF0dHJpYnV0ZShcInJvbGVcIik/LmluY2x1ZGVzKFwiZGlhbG9nXCIpKXJldHVybjtsZXQgbj1zcSgpLHI9c1UoZSxuKS5maWx0ZXIoZT0+e2xldCB0PWUuZ2V0QXR0cmlidXRlKFwiZGF0YS10YWJpbmRleFwiKXx8XCJcIjtyZXR1cm4gc0YoZSxuKXx8ZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXRhYmluZGV4XCIpJiYhdC5zdGFydHNXaXRoKFwiLVwiKX0pLG89ZS5nZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKTt0LmN1cnJlbnQuaW5jbHVkZXMoXCJmbG9hdGluZ1wiKXx8MD09PXIubGVuZ3RoP1wiMFwiIT09byYmZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiMFwiKTooXCItMVwiIT09b3x8ZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXRhYmluZGV4XCIpJiZcIi0xXCIhPT1lLmdldEF0dHJpYnV0ZShcImRhdGEtdGFiaW5kZXhcIikpJiYoZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIiksZS5zZXRBdHRyaWJ1dGUoXCJkYXRhLXRhYmluZGV4XCIsXCItMVwiKSl9ZnVuY3Rpb24gY0goZSl7bGV0e2NvbnRleHQ6dCxjaGlsZHJlbjpuLGRpc2FibGVkOnI9ITEsb3JkZXI6bz1bXCJjb250ZW50XCJdLGluaXRpYWxGb2N1czphPTAscmV0dXJuRm9jdXM6aT0hMCxyZXN0b3JlRm9jdXM6bD0hMSxtb2RhbDpzPSEwLGNsb3NlT25Gb2N1c091dDpjPSEwLGdldEluc2lkZUVsZW1lbnRzOnU9KCk9PltdfT1lLHtvcGVuOmQsb25PcGVuQ2hhbmdlOmYsZXZlbnRzOnAsZGF0YVJlZjpoLGVsZW1lbnRzOntkb21SZWZlcmVuY2U6bSxmbG9hdGluZzpnfX09dCx5PWFoKCgpPT5oLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQpLHY9YWgodSksYj1cIm51bWJlclwiPT10eXBlb2YgYSYmYTwwLHg9aUMobSkmJmIsQz1hMihvKSxfPWEyKGEpLGs9YTIoaSksRT1haigpLGo9c0coKSxTPXcudXNlUmVmKG51bGwpLE89dy51c2VSZWYobnVsbCksQj13LnVzZVJlZighMSksUD13LnVzZVJlZighMSksST13LnVzZVJlZigtMSksVD1hZCgpLHo9bnVsbCE9aixEPWlfKGcpLEw9YWgoKGU9RCk9PmU/c1ooZSxzcSgpKTpbXSksTj1haChlPT57bGV0IHQ9TChlKTtyZXR1cm4gQy5jdXJyZW50Lm1hcCgoKT0+dCkuZmlsdGVyKEJvb2xlYW4pLmZsYXQoKX0pO3cudXNlRWZmZWN0KCgpPT57aWYocnx8IXMpcmV0dXJuO2Z1bmN0aW9uIGUoZSl7XCJUYWJcIj09PWUua2V5JiZpdihELGl5KGl4KEQpKSkmJjA9PT1MKCkubGVuZ3RoJiYheCYmaWEoZSl9bGV0IHQ9aXgoRCk7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKX19LFtyLG0sRCxzLEMseCxMLE5dKSx3LnVzZUVmZmVjdCgoKT0+e2lmKCFyJiZnKXJldHVybiBnLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsZSksKCk9PntnLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsZSl9O2Z1bmN0aW9uIGUoZSl7bGV0IHQ9aWIoZSksbj1MKCkuaW5kZXhPZih0KTstMSE9PW4mJihJLmN1cnJlbnQ9bil9fSxbcixnLExdKSx3LnVzZUVmZmVjdCgoKT0+e2lmKHJ8fCFjKXJldHVybjtmdW5jdGlvbiBlKCl7UC5jdXJyZW50PSEwfWZ1bmN0aW9uIHQoZSl7bGV0IHQ9ZS5yZWxhdGVkVGFyZ2V0LG49ZS5jdXJyZW50VGFyZ2V0LHI9aWIoZSk7cXVldWVNaWNyb3Rhc2soKCk9PntsZXQgbz15KCksYT0hKGl2KG0sdCl8fGl2KGcsdCl8fGl2KHQsZyl8fGl2KGo/LnBvcnRhbE5vZGUsdCl8fHQ/Lmhhc0F0dHJpYnV0ZShpayhcImZvY3VzLWd1YXJkXCIpKXx8RSYmKGlCKEUubm9kZXNSZWYuY3VycmVudCxvKS5maW5kKGU9Pml2KGUuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcsdCl8fGl2KGUuY29udGV4dD8uZWxlbWVudHMuZG9tUmVmZXJlbmNlLHQpKXx8aVAoRS5ub2Rlc1JlZi5jdXJyZW50LG8pLmZpbmQoZT0+W2UuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcsaV8oZS5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZyldLmluY2x1ZGVzKHQpfHxlLmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZT09PXQpKSk7aWYobj09PW0mJkQmJmNxKEQsQyksbCYmbiE9PW0mJiFyPy5pc0Nvbm5lY3RlZCYmaXkoaXgoRCkpPT09aXgoRCkuYm9keSl7YU4oRCkmJkQuZm9jdXMoKTtsZXQgZT1JLmN1cnJlbnQsdD1MKCksbj10W2VdfHx0W3QubGVuZ3RoLTFdfHxEO2FOKG4pJiZuLmZvY3VzKCl9aWYoaC5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZSl7aC5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZT0hMTtyZXR1cm59aWYoUC5jdXJyZW50KXtQLmN1cnJlbnQ9ITE7cmV0dXJufSh4fHwhcykmJnQmJmEmJnQhPT1jRigpJiYoQi5jdXJyZW50PSEwLGYoITEsZSxcImZvY3VzLW91dFwiKSl9KX1sZXQgbj0hISghRSYmaik7ZnVuY3Rpb24gbygpe2guY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITAsVC5zdGFydCgwLCgpPT57aC5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZT0hMX0pfWlmKGcmJmFOKG0pKXJldHVybiBtLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLHQpLG0uYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsZSksZy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIix0KSxuJiZnLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLG8sITApLCgpPT57bS5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIix0KSxtLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLGUpLGcucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsdCksbiYmZy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIixvLCEwKX19LFtyLG0sZyxELHMsRSxqLGYsYyxsLEwseCx5LEMsaCxUXSk7bGV0IFI9dy51c2VSZWYobnVsbCksTT13LnVzZVJlZihudWxsKSxaPWxYKFIsaj8uYmVmb3JlSW5zaWRlUmVmKSxVPWxYKE0saj8uYWZ0ZXJJbnNpZGVSZWYpO3cudXNlRWZmZWN0KCgpPT57aWYocnx8IWcpcmV0dXJuO2xldCBlPUFycmF5LmZyb20oaj8ucG9ydGFsTm9kZT8ucXVlcnlTZWxlY3RvckFsbChgWyR7aWsoXCJwb3J0YWxcIil9XWApfHxbXSksdD1FP2lQKEUubm9kZXNSZWYuY3VycmVudCx5KCkpOltdLG49ZnVuY3Rpb24oZSx0PSExLG49ITEpe2xldCByPWl4KGVbMF0pLmJvZHk7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuLHIpe2xldCBvLGE9XCJkYXRhLWJhc2UtdWktaW5lcnRcIixpPXI/XCJpbmVydFwiOm4/XCJhcmlhLWhpZGRlblwiOm51bGwsbD0obz10LGUubWFwKGU9PntpZihvLmNvbnRhaW5zKGUpKXJldHVybiBlO2xldCB0PWNNKGUpO3JldHVybiBvLmNvbnRhaW5zKHQpP3Q6bnVsbH0pLmZpbHRlcihlPT5udWxsIT1lKSkscz1uZXcgU2V0LGM9bmV3IFNldChsKSx1PVtdO2NOW2FdfHwoY05bYV09bmV3IFdlYWtNYXApO2xldCBkPWNOW2FdO3JldHVybiBsLmZvckVhY2goZnVuY3Rpb24gZSh0KXshKCF0fHxzLmhhcyh0KSkmJihzLmFkZCh0KSx0LnBhcmVudE5vZGUmJmUodC5wYXJlbnROb2RlKSl9KSxmdW5jdGlvbiBlKHQpeyF0fHxjLmhhcyh0KXx8W10uZm9yRWFjaC5jYWxsKHQuY2hpbGRyZW4sdD0+e2lmKFwic2NyaXB0XCIhPT1hSSh0KSlpZihzLmhhcyh0KSllKHQpO2Vsc2V7bGV0IGU9aT90LmdldEF0dHJpYnV0ZShpKTpudWxsLG49bnVsbCE9PWUmJlwiZmFsc2VcIiE9PWUscj1jRChpKSxvPShyLmdldCh0KXx8MCkrMSxsPShkLmdldCh0KXx8MCkrMTtyLnNldCh0LG8pLGQuc2V0KHQsbCksdS5wdXNoKHQpLDE9PT1vJiZuJiZjTC5hZGQodCksMT09PWwmJnQuc2V0QXR0cmlidXRlKGEsXCJcIiksIW4mJmkmJnQuc2V0QXR0cmlidXRlKGksXCJpbmVydFwiPT09aT9cIlwiOlwidHJ1ZVwiKX19KX0odCkscy5jbGVhcigpLGNSKz0xLCgpPT57dS5mb3JFYWNoKGU9PntsZXQgdD1jRChpKSxuPSh0LmdldChlKXx8MCktMSxyPShkLmdldChlKXx8MCktMTt0LnNldChlLG4pLGQuc2V0KGUsciksbnx8KCFjTC5oYXMoZSkmJmkmJmUucmVtb3ZlQXR0cmlidXRlKGkpLGNMLmRlbGV0ZShlKSkscnx8ZS5yZW1vdmVBdHRyaWJ1dGUoYSl9KSwoY1ItPTEpfHwoY3ouaW5lcnQ9bmV3IFdlYWtNYXAsY3pbXCJhcmlhLWhpZGRlblwiXT1uZXcgV2Vha01hcCxjei5ub25lPW5ldyBXZWFrTWFwLGNMPW5ldyBXZWFrU2V0LGNOPXt9KX19KGUuY29uY2F0KEFycmF5LmZyb20oci5xdWVyeVNlbGVjdG9yQWxsKFwiW2FyaWEtbGl2ZV1cIikpKSxyLHQsbil9KFtnLHQuZmluZChlPT5pQyhlLmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZXx8bnVsbCkpPy5jb250ZXh0Py5lbGVtZW50cy5kb21SZWZlcmVuY2UsLi4uZSwuLi52KCksUy5jdXJyZW50LE8uY3VycmVudCxSLmN1cnJlbnQsTS5jdXJyZW50LGo/LmJlZm9yZU91dHNpZGVSZWYuY3VycmVudCxqPy5hZnRlck91dHNpZGVSZWYuY3VycmVudCx4P206bnVsbF0uZmlsdGVyKGU9Pm51bGwhPWUpLHN8fHgpO3JldHVybigpPT57bigpfX0sW3IsbSxnLHMsQyxqLHgsRSx5LHZdKSxhQygoKT0+e2lmKHJ8fCFhTihEKSlyZXR1cm47bGV0IGU9aXkoaXgoRCkpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IHQ9TihEKSxuPV8uY3VycmVudCxyPShcIm51bWJlclwiPT10eXBlb2Ygbj90W25dOm4uY3VycmVudCl8fEQsbz1pdihELGUpO2J8fG98fCFkfHxsaChyLHtwcmV2ZW50U2Nyb2xsOnI9PT1EfSl9KX0sW3IsZCxELGIsTixfXSksYUMoKCk9Pnt2YXIgZTtpZihyfHwhRClyZXR1cm47bGV0IHQ9aXgoRCk7ZnVuY3Rpb24gbih7cmVhc29uOmUsZXZlbnQ6dCxuZXN0ZWQ6bn0pe2lmKFtcImhvdmVyXCIsXCJzYWZlLXBvbHlnb25cIl0uaW5jbHVkZXMoZSkmJlwibW91c2VsZWF2ZVwiPT09dC50eXBlJiYoQi5jdXJyZW50PSEwKSxcIm91dHNpZGUtcHJlc3NcIj09PWUpaWYobilCLmN1cnJlbnQ9ITE7ZWxzZSBpZihpaSh0KXx8aWwodCkpQi5jdXJyZW50PSExO2Vsc2V7bGV0IGU9ITE7ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5mb2N1cyh7Z2V0IHByZXZlbnRTY3JvbGwoKXtyZXR1cm4gZT0hMCwhMX19KSxlP0IuY3VycmVudD0hMTpCLmN1cnJlbnQ9ITB9fWU9aXkodCksY1UoKSxlJiZcImJvZHlcIiE9PWFJKGUpJiYoY1oucHVzaChlKSxjWi5sZW5ndGg+MjAmJihjWj1jWi5zbGljZSgtMjApKSkscC5vbihcIm9wZW5jaGFuZ2VcIixuKTtsZXQgbz10LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO3JldHVybiBvLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCItMVwiKSxvLnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsXCJ0cnVlXCIpLE9iamVjdC5hc3NpZ24oby5zdHlsZSxzaCkseiYmbSYmbS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJhZnRlcmVuZFwiLG8pLCgpPT57cC5vZmYoXCJvcGVuY2hhbmdlXCIsbik7bGV0IGU9aXkodCkscj1pdihnLGUpfHxFJiZpQihFLm5vZGVzUmVmLmN1cnJlbnQseSgpLCExKS5zb21lKHQ9Pml2KHQuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcsZSkpLGE9ZnVuY3Rpb24oKXtpZihcImJvb2xlYW5cIj09dHlwZW9mIGsuY3VycmVudCl7bGV0IGU9bXx8Y0YoKTtyZXR1cm4gZSYmZS5pc0Nvbm5lY3RlZD9lOm99cmV0dXJuIGsuY3VycmVudC5jdXJyZW50fHxvfSgpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IG49ZnVuY3Rpb24oZSl7bGV0IHQ9c3EoKTtyZXR1cm4gc0YoZSx0KT9lOnNaKGUsdClbMF18fGV9KGEpO2suY3VycmVudCYmIUIuY3VycmVudCYmYU4obikmJihuPT09ZXx8ZT09PXQuYm9keXx8cikmJm4uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxvLnJlbW92ZSgpfSl9fSxbcixnLEQsayxoLHAsRSx6LG0seV0pLHcudXNlRWZmZWN0KCgpPT57cXVldWVNaWNyb3Rhc2soKCk9PntCLmN1cnJlbnQ9ITF9KX0sW3JdKSx3LnVzZUVmZmVjdCgoKT0+e2lmKHJ8fCFkKXJldHVybjtmdW5jdGlvbiBlKGUpe2xldCB0PWliKGUpO3Q/LmNsb3Nlc3QoXCJbZGF0YS1iYXNlLXVpLWNsaWNrLXRyaWdnZXJdXCIpJiYoUC5jdXJyZW50PSEwKX1sZXQgdD1peChEKTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixlLCEwKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsZSwhMCl9fSxbcixkLERdKSxhQygoKT0+e2lmKCFyJiZqKXJldHVybiBqLnNldEZvY3VzTWFuYWdlclN0YXRlKHttb2RhbDpzLGNsb3NlT25Gb2N1c091dDpjLG9wZW46ZCxvbk9wZW5DaGFuZ2U6Zixkb21SZWZlcmVuY2U6bX0pLCgpPT57ai5zZXRGb2N1c01hbmFnZXJTdGF0ZShudWxsKX19LFtyLGoscyxkLGYsYyxtXSksYUMoKCk9PntpZighciYmRClyZXR1cm4gY3EoRCxDKSwoKT0+e3F1ZXVlTWljcm90YXNrKGNVKX19LFtyLEQsQ10pO2xldCBGPSFyJiYoIXN8fCF4KSYmKHp8fHMpO3JldHVybigwLEEuanN4cykody5GcmFnbWVudCx7Y2hpbGRyZW46W0YmJigwLEEuanN4KShzbSx7XCJkYXRhLXR5cGVcIjpcImluc2lkZVwiLHJlZjpaLG9uRm9jdXM6ZT0+e2lmKHMpe2xldCBlPU4oKTtsaChlW2UubGVuZ3RoLTFdKX1lbHNlIGlmKGo/LnByZXNlcnZlVGFiT3JkZXImJmoucG9ydGFsTm9kZSlpZihCLmN1cnJlbnQ9ITEsc1coZSxqLnBvcnRhbE5vZGUpKXtsZXQgZT1zVihtKTtlPy5mb2N1cygpfWVsc2Ugai5iZWZvcmVPdXRzaWRlUmVmLmN1cnJlbnQ/LmZvY3VzKCl9fSksbixGJiYoMCxBLmpzeCkoc20se1wiZGF0YS10eXBlXCI6XCJpbnNpZGVcIixyZWY6VSxvbkZvY3VzOmU9PntpZihzKWxoKE4oKVswXSk7ZWxzZSBpZihqPy5wcmVzZXJ2ZVRhYk9yZGVyJiZqLnBvcnRhbE5vZGUpaWYoYyYmKEIuY3VycmVudD0hMCksc1coZSxqLnBvcnRhbE5vZGUpKXtsZXQgZT1zJChtKTtlPy5mb2N1cygpfWVsc2Ugai5hZnRlck91dHNpZGVSZWYuY3VycmVudD8uZm9jdXMoKX19KV19KX1sZXQgY1Y9ey4uLnNuLC4uLmwyfSxjJD13LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7cmVuZGVyOm4sY2xhc3NOYW1lOnIsZmluYWxGb2N1czpvLC4uLmF9PWUse29wZW46aSxzZXRPcGVuOmwscG9wdXBSZWY6cyx0cmFuc2l0aW9uU3RhdHVzOmMscG9wdXBQcm9wczp1LG1vdW50ZWQ6ZCxpbnN0YW50VHlwZTpmLG9uT3BlbkNoYW5nZUNvbXBsZXRlOnAscGFyZW50OmgsbGFzdE9wZW5DaGFuZ2VSZWFzb246bSxyb290SWQ6Z309bHcoKSx7c2lkZTp5LGFsaWduOnYsZmxvYXRpbmdDb250ZXh0OmJ9PWZ1bmN0aW9uKCl7bGV0IGU9dy51c2VDb250ZXh0KHM0KTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudVBvc2l0aW9uZXJDb250ZXh0IGlzIG1pc3NpbmcuIE1lbnVQb3NpdGlvbmVyIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8TWVudS5Qb3NpdGlvbmVyPi5cIik7cmV0dXJuIGV9KCk7bGsoe29wZW46aSxyZWY6cyxvbkNvbXBsZXRlKCl7aSYmcD8uKCEwKX19KTtsZXR7ZXZlbnRzOnh9PWFqKCk7dy51c2VFZmZlY3QoKCk9PntmdW5jdGlvbiBlKGUpe2woITEsZS5kb21FdmVudCxlLnJlYXNvbil9cmV0dXJuIHgub24oXCJjbG9zZVwiLGUpLCgpPT57eC5vZmYoXCJjbG9zZVwiLGUpfX0sW3gsbF0pO2xldCBDPXNvKFwiZGl2XCIsZSx7c3RhdGU6dy51c2VNZW1vKCgpPT4oe3RyYW5zaXRpb25TdGF0dXM6YyxzaWRlOnksYWxpZ246dixvcGVuOmksbmVzdGVkOlwibWVudVwiPT09aC50eXBlLGluc3RhbnQ6Zn0pLFtjLHksdixpLGgudHlwZSxmXSkscmVmOlt0LHNdLGN1c3RvbVN0eWxlSG9va01hcHBpbmc6Y1YscHJvcHM6W3UsXCJzdGFydGluZ1wiPT09Yz9pTTppWixhLHtcImRhdGEtcm9vdG93bmVyaWRcIjpnfV19KSxfPXZvaWQgMD09PWgudHlwZXx8XCJjb250ZXh0LW1lbnVcIj09PWgudHlwZTtyZXR1cm5cIm1lbnViYXJcIj09PWgudHlwZSYmXCJvdXRzaWRlLXByZXNzXCIhPT1tJiYoXz0hMCksKDAsQS5qc3gpKGNILHtjb250ZXh0OmIsbW9kYWw6ITEsZGlzYWJsZWQ6IWQscmV0dXJuRm9jdXM6b3x8Xyxpbml0aWFsRm9jdXM6XCJtZW51XCI9PT1oLnR5cGU/LTE6MCxyZXN0b3JlRm9jdXM6ITAsY2hpbGRyZW46Q30pfSksY1c9dy5jcmVhdGVDb250ZXh0KHZvaWQgMCksY1k9dy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7bGV0e3JlbmRlcjpuLGNsYXNzTmFtZTpyLC4uLm99PWUsW2EsaV09dy51c2VTdGF0ZSh2b2lkIDApLGw9dy51c2VNZW1vKCgpPT4oe3NldExhYmVsSWQ6aX0pLFtpXSkscz1zbyhcImRpdlwiLGUse3JlZjp0LHByb3BzOntyb2xlOlwiZ3JvdXBcIixcImFyaWEtbGFiZWxsZWRieVwiOmEsLi4ub319KTtyZXR1cm4oMCxBLmpzeCkoY1cuUHJvdmlkZXIse3ZhbHVlOmwsY2hpbGRyZW46c30pfSk7ZnVuY3Rpb24gY0soZSl7cmV0dXJuIGF4KGUsXCJiYXNlLXVpXCIpfWxldCBjWD13LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7Y2xhc3NOYW1lOm4scmVuZGVyOnIsaWQ6bywuLi5hfT1lLGk9Y0sobykse3NldExhYmVsSWQ6bH09ZnVuY3Rpb24oKXtsZXQgZT13LnVzZUNvbnRleHQoY1cpO2lmKHZvaWQgMD09PWUpdGhyb3cgRXJyb3IoXCJCYXNlIFVJOiBNZW51R3JvdXBSb290Q29udGV4dCBpcyBtaXNzaW5nLiBNZW51IGdyb3VwIHBhcnRzIG11c3QgYmUgdXNlZCB3aXRoaW4gPE1lbnUuR3JvdXA+LlwiKTtyZXR1cm4gZX0oKTtyZXR1cm4gYUMoKCk9PihsKGkpLCgpPT57bCh2b2lkIDApfSksW2wsaV0pLHNvKFwiZGl2XCIsZSx7cmVmOnQscHJvcHM6e2lkOmkscm9sZTpcInByZXNlbnRhdGlvblwiLC4uLmF9fSl9KSxjRz17dHlwZTpcInJlZ3VsYXItaXRlbVwifSxjUT13Lm1lbW8ody5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7bGV0e2NsYXNzTmFtZTpuLGNsb3NlT25DbGljazpyPSEwLGRpc2FibGVkOm89ITEsaGlnaGxpZ2h0ZWQ6YSxpZDppLG1lbnVFdmVudHM6bCxpdGVtUHJvcHM6cyxyZW5kZXI6YyxhbGxvd01vdXNlVXBUcmlnZ2VyUmVmOnUsdHlwaW5nUmVmOmQsbmF0aXZlQnV0dG9uOmYsLi4ucH09ZSx7Z2V0SXRlbVByb3BzOmgsaXRlbVJlZjptfT1mdW5jdGlvbihlKXtsZXR7Y2xvc2VPbkNsaWNrOnQsZGlzYWJsZWQ6bj0hMSxoaWdobGlnaHRlZDpyLGlkOm8sbWVudUV2ZW50czphLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6aSx0eXBpbmdSZWY6bCxuYXRpdmVCdXR0b246cyxpdGVtTWV0YWRhdGE6Y309ZSx1PXcudXNlUmVmKG51bGwpLHtnZXRCdXR0b25Qcm9wczpkLGJ1dHRvblJlZjpmfT1zcyh7ZGlzYWJsZWQ6bixmb2N1c2FibGVXaGVuRGlzYWJsZWQ6ITAsbmF0aXZlOnN9KSxwPXcudXNlQ2FsbGJhY2soZT0+bFUoe2lkOm8scm9sZTpcIm1lbnVpdGVtXCIsdGFiSW5kZXg6cj8wOi0xLG9uTW91c2VFbnRlcigpe1wic3VibWVudS10cmlnZ2VyXCI9PT1jLnR5cGUmJmMuc2V0QWN0aXZlKCl9LG9uS2V5VXA6ZT0+e1wiIFwiPT09ZS5rZXkmJmwuY3VycmVudCYmZS5wcmV2ZW50QmFzZVVJSGFuZGxlcigpfSxvbkNsaWNrOmU9Pnt0JiZhLmVtaXQoXCJjbG9zZVwiLHtkb21FdmVudDplLHJlYXNvbjpcIml0ZW0tcHJlc3NcIn0pfSxvbk1vdXNlVXA6KCk9Pnt1LmN1cnJlbnQmJmkuY3VycmVudCYmXCJyZWd1bGFyLWl0ZW1cIj09PWMudHlwZSYmdS5jdXJyZW50LmNsaWNrKCl9fSxlLGQpLFtvLHIsZCxsLHQsYSxpLGNdKSxoPWxYKHUsZik7cmV0dXJuIHcudXNlTWVtbygoKT0+KHtnZXRJdGVtUHJvcHM6cCxpdGVtUmVmOmh9KSxbcCxoXSl9KHtjbG9zZU9uQ2xpY2s6cixkaXNhYmxlZDpvLGhpZ2hsaWdodGVkOmEsaWQ6aSxtZW51RXZlbnRzOmwsYWxsb3dNb3VzZVVwVHJpZ2dlclJlZjp1LHR5cGluZ1JlZjpkLG5hdGl2ZUJ1dHRvbjpmLGl0ZW1NZXRhZGF0YTpjR30pO3JldHVybiBzbyhcImRpdlwiLGUse3N0YXRlOncudXNlTWVtbygoKT0+KHtkaXNhYmxlZDpvLGhpZ2hsaWdodGVkOmF9KSxbbyxhXSkscmVmOlttLHRdLHByb3BzOltzLHAsaF19KX0pKSxjSj13LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7aWQ6bixsYWJlbDpyLG5hdGl2ZUJ1dHRvbjpvPSExLC4uLmF9PWUsaT13LnVzZVJlZihudWxsKSxsPXNkKHtsYWJlbDpyfSkscz1sWCh0LGwucmVmLGkpLHtpdGVtUHJvcHM6YyxhY3RpdmVJbmRleDp1LGFsbG93TW91c2VVcFRyaWdnZXJSZWY6ZCx0eXBpbmdSZWY6Zn09bHcoKSxwPWNLKG4pLGg9bC5pbmRleD09PXUse2V2ZW50czptfT1haigpO3JldHVybigwLEEuanN4KShjUSx7Li4uYSxpZDpwLHJlZjpzLGhpZ2hsaWdodGVkOmgsbWVudUV2ZW50czptLGl0ZW1Qcm9wczpjLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6ZCx0eXBpbmdSZWY6ZixuYXRpdmVCdXR0b246b30pfSk7dmFyIGMwPVwiX19uZXh0X2J1aWx0aW5fX1wiO2Z1bmN0aW9uIGMxKGUpe3JldHVybiBlLnJlcGxhY2UobmV3IFJlZ0V4cChcIl5cIi5jb25jYXQoYzApKSxcIlwiKS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcIi5jb25jYXQoXCJAYm91bmRhcnlcIixcIiRcIikpLFwiXCIpfXZhciBjMj1cImJvdW5kYXJ5OlwiO2Z1bmN0aW9uIGM0KGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoYzIpfWZ1bmN0aW9uIGM1KGUpe3JldHVybiBlLnJlcGxhY2UoYzIsXCJcIil9ZnVuY3Rpb24gYzMoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGM2KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBjOShlLHQpe3JldHVybiB0PW51bGwhPXQ/dDp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKX0pLGV9ZnVuY3Rpb24gYzgoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGMzKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIGMzKGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBjNz1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9QXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGZ1bmN0aW9uKGUpe3QuZm9yRWFjaChmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QoZSk6dCYmKHQuY3VycmVudD1lKX0pfX07ZnVuY3Rpb24gdWUoZSl7dmFyIHQsbj1lLm5vZGVTdGF0ZSxyPWUuYm91bmRhcmllcyxvPW4ucGFnZVBhdGgsYT1uLmJvdW5kYXJ5VHlwZSxpPW4uc2V0Qm91bmRhcnlUeXBlLGw9YzgoKDAsdy51c2VTdGF0ZSkoITEpLDIpLHM9bFswXSxjPWxbMV0sdT1kbCgpLnNoYWRvd1Jvb3QsZD0oMCx3LnVzZVJlZikobnVsbCksZj0oMCx3LnVzZVJlZikobnVsbCk7bmUoZixkLHMsZnVuY3Rpb24oKXtjKCExKX0sbnVsbD09KHQ9ZC5jdXJyZW50KT92b2lkIDA6dC5vd25lckRvY3VtZW50KTt2YXIgcD0oT2JqZWN0LnZhbHVlcyhyKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZX0pfHxcIlwiKS5zcGxpdChcIi5cIikucG9wKCl8fFwianNcIixoPSgwLHcudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLm1hcChmdW5jdGlvbihlKXt2YXIgdD1jOChlLDIpLG49dFswXSxyPWMxKCh0WzFdfHxcIlwiKS5zcGxpdChcIi9cIikucG9wKCl8fFwiXCIuY29uY2F0KG4sXCIuXCIpLmNvbmNhdChwKSk7cmV0dXJuW24scl19KSl9LFtyLHBdKSxtPShvfHxcIlwiKS5zcGxpdChcIi9cIikucG9wKCl8fFwiXCIsZz1jMShhP1wicGFnZS5cIi5jb25jYXQocCk6bXx8XCJwYWdlLlwiLmNvbmNhdChwKSkseT1be2xhYmVsOmgubG9hZGluZyx2YWx1ZTpcImxvYWRpbmdcIixpY29uOigwLEEuanN4KSh1dCx7fSksZGlzYWJsZWQ6IXIubG9hZGluZ30se2xhYmVsOmguZXJyb3IsdmFsdWU6XCJlcnJvclwiLGljb246KDAsQS5qc3gpKHVuLHt9KSxkaXNhYmxlZDohci5lcnJvcn0se2xhYmVsOmhbXCJub3QtZm91bmRcIl0sdmFsdWU6XCJub3QtZm91bmRcIixpY29uOigwLEEuanN4KSh1cix7fSksZGlzYWJsZWQ6IXJbXCJub3QtZm91bmRcIl19XSx2PXtsYWJlbDphP1wiUmVzZXRcIjpnLHZhbHVlOlwicmVzZXRcIixpY29uOigwLEEuanN4KSh1byx7fSksZGlzYWJsZWQ6bnVsbD09PWF9LGI9KDAsdy51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyh7ZmlsZTplLmZpbGVQYXRoLGlzQXBwUmVsYXRpdmVQYXRoOlwiMVwifSk7ZmV0Y2goXCJcIi5jb25jYXQocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSHx8XCJcIixcIi9fX25leHRqc19sYXVuY2gtZWRpdG9yP1wiKS5jb25jYXQodC50b1N0cmluZygpKSkuY2F0Y2goY29uc29sZS53YXJuKX0sW10pLHg9KDAsdy51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2VcIm5vdC1mb3VuZFwiOmNhc2VcImxvYWRpbmdcIjpjYXNlXCJlcnJvclwiOmkoZSk7YnJlYWs7Y2FzZVwicmVzZXRcIjppKG51bGwpO2JyZWFrO2Nhc2VcIm9wZW4tZWRpdG9yXCI6byYmYih7ZmlsZVBhdGg6b30pfX0sW2ksbyxiXSksQz0oMCx3LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuXCJsYXlvdXRcIiE9PW4udHlwZSYmXCJ0ZW1wbGF0ZVwiIT09bi50eXBlJiZPYmplY3QudmFsdWVzKHIpLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lfSl9LFtuLnR5cGUscl0pO3JldHVybigwLEEuanN4cykobEsse2RlbGF5OjAsbW9kYWw6ITEsb3BlbjpzLG9uT3BlbkNoYW5nZTpjLGNoaWxkcmVuOlsoMCxBLmpzeCkoc3Ase2NsYXNzTmFtZTpcInNlZ21lbnQtYm91bmRhcnktdHJpZ2dlclwiLFwiZGF0YS1uZXh0anMtZGV2LW92ZXJsYXktc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLWJ1dHRvblwiOiEwLHJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD1jNyhlLnJlZixkKTtyZXR1cm4oMCxBLmpzeCkodWksYzkoYzYoe30sZSkse3JlZjp0fSkpfSxkaXNhYmxlZDohQ30pLCgwLEEuanN4KShzMix7Y29udGFpbmVyOnUsY2hpbGRyZW46KDAsQS5qc3gpKGNULHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLXBvc2l0aW9uZXJcIixzaWRlOlwiYm90dG9tXCIsYWxpZ246XCJjZW50ZXJcIixzaWRlT2Zmc2V0OjYsYXJyb3dQYWRkaW5nOjgscmVmOmYsY2hpbGRyZW46KDAsQS5qc3hzKShjJCx7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS1kcm9wZG93blwiLGNoaWxkcmVuOlsoMCxBLmpzeHMpKGNZLHtjaGlsZHJlbjpbKDAsQS5qc3gpKGNYLHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LWdyb3VwLWxhYmVsXCIsY2hpbGRyZW46XCJUb2dnbGUgT3ZlcnJpZGVzXCJ9KSx5Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4oMCxBLmpzeHMpKGNKLHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW1cIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHgoZS52YWx1ZSl9LGRpc2FibGVkOmUuZGlzYWJsZWQsY2hpbGRyZW46W2UuaWNvbixlLmxhYmVsXX0sZS52YWx1ZSl9KV19KSwoMCxBLmpzeCkoY1kse2NoaWxkcmVuOigwLEEuanN4cykoY0ose2NsYXNzTmFtZTpcInNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbVwiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4geCh2LnZhbHVlKX0sZGlzYWJsZWQ6di5kaXNhYmxlZCxjaGlsZHJlbjpbdi5pY29uLHYubGFiZWxdfSx2LnZhbHVlKX0pXX0pfSl9KV19KX1mdW5jdGlvbiB1dCgpe3ZhciBlLHQsbj0oMCx4LmMpKDIpO3JldHVybiBuWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9KDAsQS5qc3gpKFwiZ1wiLHtjbGlwUGF0aDpcInVybCgjY2xpcDBfMjc1OV8xODY2KVwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xMCAzLjVDMTMuNTg5OSAzLjUgMTYuNSA2LjQxMDE1IDE2LjUgMTBDMTYuNSAxMy41ODk5IDEzLjU4OTkgMTYuNSAxMCAxNi41QzYuNDEwMTUgMTYuNSAzLjUgMTMuNTg5OSAzLjUgMTBDMy41IDYuNDEwMTUgNi40MTAxNSAzLjUgMTAgMy41Wk0yIDEwQzIgMTQuNDE4MyA1LjU4MTcyIDE4IDEwIDE4QzE0LjQxODMgMTggMTggMTQuNDE4MyAxOCAxMEMxOCA1LjU4MTcyIDE0LjQxODMgMiAxMCAyQzUuNTgxNzIgMiAyIDUuNTgxNzIgMiAxMFpNMTAuNzUgOS42MjQwMlY2SDkuMjVWOS44NzVDOS4yNSAxMC4xODk4IDkuMzk4NTggMTAuNDg2IDkuNjUwMzkgMTAuNjc0OEwxMS41NDk4IDEyLjA5OTZMMTIuMTUwNCAxMi41NDk4TDEzLjA0OTggMTEuMzQ5NkwxMi40NTAyIDEwLjkwMDRMMTAuNzUgOS42MjQwMlpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLG5bMF09ZSk6ZT1uWzBdLG5bMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxBLmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiMjBweFwiLGhlaWdodDpcIjIwcHhcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46W2UsKDAsQS5qc3gpKFwiZGVmc1wiLHtjaGlsZHJlbjooMCxBLmpzeCkoXCJjbGlwUGF0aFwiLHtpZDpcImNsaXAwXzI3NTlfMTg2NlwiLGNoaWxkcmVuOigwLEEuanN4KShcInJlY3RcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsZmlsbDpcIndoaXRlXCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDIgMilcIn0pfSl9KV19KSxuWzFdPXQpOnQ9blsxXSx0fWZ1bmN0aW9uIHVuKCl7dmFyIGUsdCxuPSgwLHguYykoMik7cmV0dXJuIG5bMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJnXCIse2NsaXBQYXRoOlwidXJsKCNjbGlwMF8yNzU5XzE4ODEpXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTMuNSA3LjMwNzYyVjEyLjY5MjRMNy4zMDc2MiAxNi41SDEyLjY5MjRMMTYuNSAxMi42OTI0VjcuMzA3NjJMMTIuNjkyNCAzLjVINy4zMDc2MkwzLjUgNy4zMDc2MlpNMTggMTIuODk5NEwxNy45OTUxIDEyLjk5OEMxNy45NzI0IDEzLjIyNzEgMTcuODcxMiAxMy40NDIzIDE3LjcwNyAxMy42MDY0TDEzLjYwNjQgMTcuNzA3TDEzLjUzMzIgMTcuNzczNEMxMy4zODA2IDE3Ljg5ODUgMTMuMTk0NCAxNy45NzU3IDEyLjk5OCAxNy45OTUxTDEyLjg5OTQgMThINy4xMDA1OUw3LjAwMTk1IDE3Ljk5NTFDNi44MDU2MiAxNy45NzU3IDYuNjE5NCAxNy44OTg1IDYuNDY2OCAxNy43NzM0TDYuMzkzNTUgMTcuNzA3TDIuMjkyOTcgMTMuNjA2NEMyLjEyODgzIDEzLjQ0MjMgMi4wMjc1NiAxMy4yMjcxIDIuMDA0ODggMTIuOTk4TDIgMTIuODk5NFY3LjEwMDU5QzIgNi44MzUzOSAyLjEwNTQ2IDYuNTgxMDkgMi4yOTI5NyA2LjM5MzU1TDYuMzkzNTUgMi4yOTI5N0M2LjU1NzcxIDIuMTI4ODMgNi43NzI5NCAyLjAyNzU2IDcuMDAxOTUgMi4wMDQ4OEw3LjEwMDU5IDJIMTIuODk5NEwxMi45OTggMi4wMDQ4OEMxMy4yMjcxIDIuMDI3NTYgMTMuNDQyMyAyLjEyODgzIDEzLjYwNjQgMi4yOTI5N0wxNy43MDcgNi4zOTM1NUMxNy44OTQ1IDYuNTgxMDkgMTggNi44MzUzOSAxOCA3LjEwMDU5VjEyLjg5OTRaTTkuMjUgNS43NUgxMC43NUwxMC43NSAxMC43NUg5LjI1TDkuMjUgNS43NVpNMTAgMTRDMTAuNTUyMyAxNCAxMSAxMy41NTIzIDExIDEzQzExIDEyLjQ0NzcgMTAuNTUyMyAxMiAxMCAxMkM5LjQ0NzcyIDEyIDkgMTIuNDQ3NyA5IDEzQzkgMTMuNTUyMyA5LjQ0NzcyIDE0IDEwIDE0WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksblswXT1lKTplPW5bMF0sblsxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4cykoXCJzdmdcIix7d2lkdGg6XCIyMFwiLGhlaWdodDpcIjIwXCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOltlLCgwLEEuanN4KShcImRlZnNcIix7Y2hpbGRyZW46KDAsQS5qc3gpKFwiY2xpcFBhdGhcIix7aWQ6XCJjbGlwMF8yNzU5XzE4ODFcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJ3aGl0ZVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgyIDIpXCJ9KX0pfSldfSksblsxXT10KTp0PW5bMV0sdH1mdW5jdGlvbiB1cigpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcInN2Z1wiLHt3aWR0aDpcIjIwcHhcIixoZWlnaHQ6XCIyMHB4XCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xMC41NTg2IDIuNUMxMS4xMzQxIDIuNTAwMDQgMTEuNjU4OCAyLjgyOTQgMTEuOTA5MSAzLjM0NzY2TDE3LjgwNzYgMTUuNTY1NEMxOC4xMjc4IDE2LjIyOTIgMTcuNjQ0MiAxNi45OTk3IDE2LjkwNzIgMTdIMy4wOTI3NEMyLjM1NTc0IDE2Ljk5OTcgMS44NzIxIDE2LjIyOTIgMi4xOTIzNSAxNS41NjU0TDguMDkwNzkgMy4zNDc2NkM4LjM0MTA5IDIuODI5NCA4Ljg2NTgzIDIuNTAwMDQgOS40NDEzNyAyLjVIMTAuNTU4NlpNMy44OTA1OSAxNS41SDE2LjEwOTNMMTAuNTU4NiA0SDkuNDQxMzdMMy44OTA1OSAxNS41Wk05LjI0OTk3IDYuNzVIMTAuNzVMMTAuNzUgMTAuNzVIOS4yNDk5N0w5LjI0OTk3IDYuNzVaTTkuOTk5OTcgMTRDMTAuNTUyMyAxNCAxMSAxMy41NTIzIDExIDEzQzExIDEyLjQ0NzcgMTAuNTUyMyAxMiA5Ljk5OTk3IDEyQzkuNDQ3NjggMTIgOC45OTk5NyAxMi40NDc3IDguOTk5OTcgMTNDOC45OTk5NyAxMy41NTIzIDkuNDQ3NjggMTQgOS45OTk5NyAxNFpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gdW8oKXt2YXIgZSx0PSgwLHguYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJzdmdcIix7d2lkdGg6XCIyMFwiLGhlaWdodDpcIjIwXCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZDpcIk05Ljk2NDg0IDNDMTMuODQ2MyAzLjAwMDE4IDE3IDYuMTMwMTIgMTcgMTBDMTcgMTMuODY5OSAxMy44NDYzIDE2Ljk5OTggOS45NjQ4NCAxN0M3LjYyNDA0IDE3IDUuNTQ4NzcgMTUuODYxNyA0LjI3MDUxIDE0LjExMjNMMy44MjgxMiAxMy41MDY4TDUuMDM5MDYgMTIuNjIyMUw1LjQ4MTQ1IDEzLjIyNzVDNi40ODgxNSAxNC42MDUzIDguMTIwOTIgMTUuNSA5Ljk2NDg0IDE1LjVDMTMuMDI1OSAxNS40OTk4IDE1LjUgMTMuMDMzNSAxNS41IDEwQzE1LjUgNi45NjY1NCAxMy4wMjU5IDQuNTAwMTggOS45NjQ4NCA0LjVDNy40MjkwNSA0LjUgNS4yOTU0NCA2LjE5NDI5IDQuNjM4NjcgOC41SDhWMTBIMi43NUMyLjMzNTc5IDEwIDIgOS42NjQyMSAyIDkuMjVWNEgzLjVWNy4yMzczQzQuNTc3ODEgNC43NDM3NiA3LjA2NzQ5IDMgOS45NjQ4NCAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiB1YShlKXt2YXIgdCxuLHI9KDAseC5jKSgzKTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk04LjcwNzEgMi4zOTY0NEM4LjMxNjU4IDIuMDA1OTIgNy42ODM0MSAyLjAwNTkyIDcuMjkyODkgMi4zOTY0NEw0LjQ2OTY2IDUuMjE5NjZMMy45MzkzMyA1Ljc0OTk5TDQuOTk5OTkgNi44MTA2NUw1LjUzMDMyIDYuMjgwMzJMNy45OTk5OSAzLjgxMDY1TDEwLjQ2OTcgNi4yODAzMkwxMSA2LjgxMDY1TDEyLjA2MDcgNS43NDk5OUwxMS41MzAzIDUuMjE5NjZMOC43MDcxIDIuMzk2NDRaTTUuNTMwMzIgOS43MTk2Nkw0Ljk5OTk5IDkuMTg5MzNMMy45MzkzMyAxMC4yNUw0LjQ2OTY2IDEwLjc4MDNMNy4yOTI4OSAxMy42MDM1QzcuNjgzNDEgMTMuOTk0MSA4LjMxNjU4IDEzLjk5NDEgOC43MDcxIDEzLjYwMzVMMTEuNTMwMyAxMC43ODAzTDEyLjA2MDcgMTAuMjVMMTEgOS4xODkzM0wxMC40Njk3IDkuNzE5NjZMNy45OTk5OSAxMi4xODkzTDUuNTMwMzIgOS43MTk2NlpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09ZT8obj0oMCxBLmpzeCkoXCJzdmdcIixjOShjNih7c3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIn0sZSkse2NoaWxkcmVuOnR9KSksclsxXT1lLHJbMl09bik6bj1yWzJdLG59ZnVuY3Rpb24gdWkoZSl7dmFyIHQsbixyPSgwLHguYykoMyk7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0XCIsY2hpbGRyZW46KDAsQS5qc3gpKHVhLHtjbGFzc05hbWU6XCJwbHVzLWljb25cIn0pfSksclswXT10KTp0PXJbMF0sclsxXSE9PWU/KG49KDAsQS5qc3gpKFwiYnV0dG9uXCIsYzkoYzYoe30sZSkse2NoaWxkcmVuOnR9KSksclsxXT1lLHJbMl09bik6bj1yWzJdLG59bGV0IHVsPXcuY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIHVzKCl7bGV0IGU9dy51c2VDb250ZXh0KHVsKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogVG9vbHRpcFJvb3RDb250ZXh0IGlzIG1pc3NpbmcuIFRvb2x0aXAgcGFydHMgbXVzdCBiZSBwbGFjZWQgd2l0aGluIDxUb29sdGlwLlJvb3Q+LlwiKTtyZXR1cm4gZX1sZXQgdWM9dy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7bGV0e2NsYXNzTmFtZTpuLHJlbmRlcjpyLC4uLm99PWUse29wZW46YSxzZXRUcmlnZ2VyRWxlbWVudDppLHRyaWdnZXJQcm9wczpsfT11cygpO3JldHVybiBzbyhcImJ1dHRvblwiLGUse3N0YXRlOncudXNlTWVtbygoKT0+KHtvcGVuOmF9KSxbYV0pLHJlZjpbdCxpXSxwcm9wczpbbCxvXSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnNlfSl9KSx1dT13LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiB1ZCgpe2xldCBlPXcudXNlQ29udGV4dCh1dSk7aWYodm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IFRvb2x0aXBQb3NpdGlvbmVyQ29udGV4dCBpcyBtaXNzaW5nLiBUb29sdGlwUG9zaXRpb25lciBwYXJ0cyBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gPFRvb2x0aXAuUG9zaXRpb25lcj4uXCIpO3JldHVybiBlfWxldCB1Zj13LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7Y2xhc3NOYW1lOm4scmVuZGVyOnIsLi4ub309ZSx7b3BlbjphLGFycm93UmVmOmksc2lkZTpsLGFsaWduOnMsYXJyb3dVbmNlbnRlcmVkOmMsYXJyb3dTdHlsZXM6dX09dWQoKTtyZXR1cm4gc28oXCJkaXZcIixlLHtzdGF0ZTp3LnVzZU1lbW8oKCk9Pih7b3BlbjphLHNpZGU6bCxhbGlnbjpzLHVuY2VudGVyZWQ6Y30pLFthLGwscyxjXSkscmVmOlt0LGldLHByb3BzOlt7c3R5bGU6dSxcImFyaWEtaGlkZGVuXCI6ITB9LG9dLGN1c3RvbVN0eWxlSG9va01hcHBpbmc6c259KX0pLHVwPXsuLi5zbiwuLi5sMn0sdWg9dy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7bGV0e2NsYXNzTmFtZTpuLHJlbmRlcjpyLC4uLm99PWUse29wZW46YSxpbnN0YW50VHlwZTppLHRyYW5zaXRpb25TdGF0dXM6bCxwb3B1cFByb3BzOnMscG9wdXBSZWY6Yyxvbk9wZW5DaGFuZ2VDb21wbGV0ZTp1fT11cygpLHtzaWRlOmQsYWxpZ246Zn09dWQoKTtyZXR1cm4gbGsoe29wZW46YSxyZWY6YyxvbkNvbXBsZXRlKCl7YSYmdT8uKCEwKX19KSxzbyhcImRpdlwiLGUse3N0YXRlOncudXNlTWVtbygoKT0+KHtvcGVuOmEsc2lkZTpkLGFsaWduOmYsaW5zdGFudDppLHRyYW5zaXRpb25TdGF0dXM6bH0pLFthLGQsZixpLGxdKSxyZWY6W3QsY10scHJvcHM6W3MsXCJzdGFydGluZ1wiPT09bD9pTTppWixvXSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnVwfSl9KSx1bT13LmNyZWF0ZUNvbnRleHQodm9pZCAwKSx1Zz13LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7cmVuZGVyOm4sY2xhc3NOYW1lOnIsYW5jaG9yOm8scG9zaXRpb25NZXRob2Q6YT1cImFic29sdXRlXCIsc2lkZTppPVwidG9wXCIsYWxpZ246bD1cImNlbnRlclwiLHNpZGVPZmZzZXQ6cz0wLGFsaWduT2Zmc2V0OmM9MCxjb2xsaXNpb25Cb3VuZGFyeTp1PVwiY2xpcHBpbmctYW5jZXN0b3JzXCIsY29sbGlzaW9uUGFkZGluZzpkPTUsYXJyb3dQYWRkaW5nOmY9NSxzdGlja3k6cD0hMSx0cmFja0FuY2hvcjpoPSEwLGNvbGxpc2lvbkF2b2lkYW5jZTptPWlxLC4uLmd9PWUse29wZW46eSxzZXRQb3NpdGlvbmVyRWxlbWVudDp2LG1vdW50ZWQ6YixmbG9hdGluZ1Jvb3RDb250ZXh0OngsdHJhY2tDdXJzb3JBeGlzOkMsaG92ZXJhYmxlOl99PXVzKCksaz1jRSh7YW5jaG9yOm8scG9zaXRpb25NZXRob2Q6YSxmbG9hdGluZ1Jvb3RDb250ZXh0OngsbW91bnRlZDpiLHNpZGU6aSxzaWRlT2Zmc2V0OnMsYWxpZ246bCxhbGlnbk9mZnNldDpjLGNvbGxpc2lvbkJvdW5kYXJ5OnUsY29sbGlzaW9uUGFkZGluZzpkLHN0aWNreTpwLGFycm93UGFkZGluZzpmLHRyYWNrQW5jaG9yOmgsa2VlcE1vdW50ZWQ6ZnVuY3Rpb24oKXtsZXQgZT13LnVzZUNvbnRleHQodW0pO2lmKHZvaWQgMD09PWUpdGhyb3cgRXJyb3IoXCJCYXNlIFVJOiA8VG9vbHRpcC5Qb3J0YWw+IGlzIG1pc3NpbmcuXCIpO3JldHVybiBlfSgpLGNvbGxpc2lvbkF2b2lkYW5jZTptfSksRT13LnVzZU1lbW8oKCk9PntsZXQgZT17fTtyZXR1cm4geSYmXCJib3RoXCIhPT1DJiZffHwoZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiKSx7cm9sZTpcInByZXNlbnRhdGlvblwiLGhpZGRlbjohYixzdHlsZTp7Li4uay5wb3NpdGlvbmVyU3R5bGVzLC4uLmV9fX0sW3ksQyxfLGIsay5wb3NpdGlvbmVyU3R5bGVzXSksaj13LnVzZU1lbW8oKCk9Pih7cHJvcHM6RSwuLi5rfSksW0Usa10pLFM9dy51c2VNZW1vKCgpPT4oe29wZW46eSxzaWRlOmouc2lkZSxhbGlnbjpqLmFsaWduLGFuY2hvckhpZGRlbjpqLmFuY2hvckhpZGRlbn0pLFt5LGouc2lkZSxqLmFsaWduLGouYW5jaG9ySGlkZGVuXSksTz13LnVzZU1lbW8oKCk9Pih7Li4uUyxhcnJvd1JlZjpqLmFycm93UmVmLGFycm93U3R5bGVzOmouYXJyb3dTdHlsZXMsYXJyb3dVbmNlbnRlcmVkOmouYXJyb3dVbmNlbnRlcmVkfSksW1Msai5hcnJvd1JlZixqLmFycm93U3R5bGVzLGouYXJyb3dVbmNlbnRlcmVkXSksQj1zbyhcImRpdlwiLGUse3N0YXRlOlMscHJvcHM6W2oucHJvcHMsZ10scmVmOlt0LHZdLGN1c3RvbVN0eWxlSG9va01hcHBpbmc6c259KTtyZXR1cm4oMCxBLmpzeCkodXUuUHJvdmlkZXIse3ZhbHVlOk8sY2hpbGRyZW46Qn0pfSk7ZnVuY3Rpb24gdXkoZSl7bGV0IHQ9c0ooe3Jvb3Q6ZS5yb290fSk7cmV0dXJuIHQmJmVoLmNyZWF0ZVBvcnRhbChlLmNoaWxkcmVuLHQpfWZ1bmN0aW9uIHV2KGUpe2xldHtjaGlsZHJlbjp0LGtlZXBNb3VudGVkOm49ITEsY29udGFpbmVyOnJ9PWUse21vdW50ZWQ6b309dXMoKTtyZXR1cm4gb3x8bj8oMCxBLmpzeCkodW0uUHJvdmlkZXIse3ZhbHVlOm4sY2hpbGRyZW46KDAsQS5qc3gpKHV5LHtyb290OnIsY2hpbGRyZW46dH0pfSk6bnVsbH1sZXQgdWI9dy5jcmVhdGVDb250ZXh0KHtoYXNQcm92aWRlcjohMSx0aW1lb3V0TXM6MCxkZWxheVJlZjp7Y3VycmVudDowfSxpbml0aWFsRGVsYXlSZWY6e2N1cnJlbnQ6MH0sdGltZW91dDpuZXcgYXUsY3VycmVudElkUmVmOntjdXJyZW50Om51bGx9LGN1cnJlbnRDb250ZXh0UmVmOntjdXJyZW50Om51bGx9fSk7ZnVuY3Rpb24gdUEoZSl7bGV0e2NoaWxkcmVuOnQsZGVsYXk6bix0aW1lb3V0TXM6cj0wfT1lLG89dy51c2VSZWYobiksYT13LnVzZVJlZihuKSxpPXcudXNlUmVmKG51bGwpLGw9dy51c2VSZWYobnVsbCkscz1hZCgpO3JldHVybigwLEEuanN4KSh1Yi5Qcm92aWRlcix7dmFsdWU6dy51c2VNZW1vKCgpPT4oe2hhc1Byb3ZpZGVyOiEwLGRlbGF5UmVmOm8saW5pdGlhbERlbGF5UmVmOmEsY3VycmVudElkUmVmOmksdGltZW91dE1zOnIsY3VycmVudENvbnRleHRSZWY6bCx0aW1lb3V0OnN9KSxbcixzXSksY2hpbGRyZW46dH0pfWxldCB1eD13LmNyZWF0ZUNvbnRleHQodm9pZCAwKSx1dz1mdW5jdGlvbihlKXtsZXR7ZGVsYXk6dCxjbG9zZURlbGF5Om4sdGltZW91dDpyPTQwMH09ZSxvPXcudXNlTWVtbygoKT0+KHtkZWxheTp0LGNsb3NlRGVsYXk6bn0pLFt0LG5dKSxhPXcudXNlTWVtbygoKT0+KHtvcGVuOnQsY2xvc2U6bn0pLFt0LG5dKTtyZXR1cm4oMCxBLmpzeCkodXguUHJvdmlkZXIse3ZhbHVlOm8sY2hpbGRyZW46KDAsQS5qc3gpKHVBLHtkZWxheTphLHRpbWVvdXRNczpyLGNoaWxkcmVuOmUuY2hpbGRyZW59KX0pfTtmdW5jdGlvbiB1QyhlKXtyZXR1cm4gbnVsbCE9ZSYmbnVsbCE9ZS5jbGllbnRYfWZ1bmN0aW9uIHVfKGUpe2xldHtkaXNhYmxlZDp0PSExLGRlZmF1bHRPcGVuOm49ITEsb25PcGVuQ2hhbmdlOnIsb3BlbjpvLGRlbGF5OmEsY2xvc2VEZWxheTppLGhvdmVyYWJsZTpsPSEwLHRyYWNrQ3Vyc29yQXhpczpzPVwibm9uZVwiLGFjdGlvbnNSZWY6Yyxvbk9wZW5DaGFuZ2VDb21wbGV0ZTp1fT1lLGQ9YT8/NjAwLGY9aT8/MCxbcCxoXT13LnVzZVN0YXRlKG51bGwpLFttLGddPXcudXNlU3RhdGUobnVsbCksW3ksdl09dy51c2VTdGF0ZSgpLGI9dy51c2VSZWYobnVsbCksW3gsQ109YXkoe2NvbnRyb2xsZWQ6byxkZWZhdWx0Om4sbmFtZTpcIlRvb2x0aXBcIixzdGF0ZTpcIm9wZW5cIn0pLF89IXQmJng7ZnVuY3Rpb24gayhlLHQsbil7bGV0IG89XCJ0cmlnZ2VyLWhvdmVyXCI9PT1uLGE9ZSYmXCJ0cmlnZ2VyLWZvY3VzXCI9PT1uLGk9IWUmJihcInRyaWdnZXItcHJlc3NcIj09PW58fFwiZXNjYXBlLWtleVwiPT09bik7ZnVuY3Rpb24gbCgpe3I/LihlLHQsbiksQyhlKX1vP2VoLmZsdXNoU3luYyhsKTpsKCksYXx8aT92KGE/XCJmb2N1c1wiOlwiZGlzbWlzc1wiKTpcInRyaWdnZXItaG92ZXJcIj09PW4mJnYodm9pZCAwKX1sZXQgRT1haChrKTt4JiZ0JiZrKCExLHZvaWQgMCxcImRpc2FibGVkXCIpO2xldHttb3VudGVkOmosc2V0TW91bnRlZDpTLHRyYW5zaXRpb25TdGF0dXM6T309bF8oXyksQj1haCgoKT0+e1MoITEpLHU/LighMSl9KTtsayh7ZW5hYmxlZDohYyxvcGVuOl8scmVmOmIsb25Db21wbGV0ZSgpe198fEIoKX19KSx3LnVzZUltcGVyYXRpdmVIYW5kbGUoYywoKT0+KHt1bm1vdW50OkJ9KSxbQl0pO2xldCBQPWFCKHtlbGVtZW50czp7cmVmZXJlbmNlOnAsZmxvYXRpbmc6bX0sb3BlbjpfLG9uT3BlbkNoYW5nZShlLHQsbil7RShlLHQsbEQobikpfX0pLEk9dy51c2VDb250ZXh0KHV4KSx7ZGVsYXlSZWY6VCxpc0luc3RhbnRQaGFzZTp6LGhhc1Byb3ZpZGVyOkR9PWZ1bmN0aW9uKGUsdD17fSl7bGV0e29wZW46bixvbk9wZW5DaGFuZ2U6cixmbG9hdGluZ0lkOm99PWUse2VuYWJsZWQ6YT0hMH09dCx7Y3VycmVudElkUmVmOmksZGVsYXlSZWY6bCx0aW1lb3V0TXM6cyxpbml0aWFsRGVsYXlSZWY6YyxjdXJyZW50Q29udGV4dFJlZjp1LGhhc1Byb3ZpZGVyOmQsdGltZW91dDpmfT13LnVzZUNvbnRleHQodWIpLFtwLGhdPXcudXNlU3RhdGUoITEpO3JldHVybiBhQygoKT0+e2Z1bmN0aW9uIGUoKXtoKCExKSx1LmN1cnJlbnQ/LnNldElzSW5zdGFudFBoYXNlKCExKSxpLmN1cnJlbnQ9bnVsbCx1LmN1cnJlbnQ9bnVsbCxsLmN1cnJlbnQ9Yy5jdXJyZW50fWlmKGEmJmkuY3VycmVudCYmIW4mJmkuY3VycmVudD09PW8pe2lmKGgoITEpLHMpcmV0dXJuIGYuc3RhcnQocyxlKSwoKT0+e2YuY2xlYXIoKX07ZSgpfX0sW2EsbixvLGksbCxzLGMsdSxmXSksYUMoKCk9PntpZighYXx8IW4pcmV0dXJuO2xldCBlPXUuY3VycmVudCx0PWkuY3VycmVudDt1LmN1cnJlbnQ9e29uT3BlbkNoYW5nZTpyLHNldElzSW5zdGFudFBoYXNlOmh9LGkuY3VycmVudD1vLGwuY3VycmVudD17b3BlbjowLGNsb3NlOmlqKGMuY3VycmVudCxcImNsb3NlXCIpfSxudWxsIT09dCYmdCE9PW8/KGYuY2xlYXIoKSxoKCEwKSxlPy5zZXRJc0luc3RhbnRQaGFzZSghMCksZT8ub25PcGVuQ2hhbmdlKCExKSk6KGgoITEpLGU/LnNldElzSW5zdGFudFBoYXNlKCExKSl9LFthLG4sbyxyLGksbCxzLGMsdSxmXSksYUMoKCk9PigpPT57dS5jdXJyZW50PW51bGx9LFt1XSksdy51c2VNZW1vKCgpPT4oe2hhc1Byb3ZpZGVyOmQsZGVsYXlSZWY6bCxpc0luc3RhbnRQaGFzZTpwfSksW2QsbCxwXSl9KFApLEw9ej9cImRlbGF5XCI6eSxOPWlPKFAse2VuYWJsZWQ6IXQsbW91c2VPbmx5OiEwLG1vdmU6ITEsaGFuZGxlQ2xvc2U6bCYmXCJib3RoXCIhPT1zP2lUKCk6bnVsbCxyZXN0TXMoKXtsZXQgZT1JPy5kZWxheSx0PVwib2JqZWN0XCI9PXR5cGVvZiBULmN1cnJlbnQ/VC5jdXJyZW50Lm9wZW46dm9pZCAwLG49ZDtyZXR1cm4gRCYmKG49MCE9PXQ/YT8/ZT8/ZDowKSxufSxkZWxheSgpe2xldCBlPVwib2JqZWN0XCI9PXR5cGVvZiBULmN1cnJlbnQ/VC5jdXJyZW50LmNsb3NlOnZvaWQgMCx0PWY7cmV0dXJuIG51bGw9PWkmJkQmJih0PWUpLHtjbG9zZTp0fX19KSxSPWlEKFAse2VuYWJsZWQ6IXR9KSxNPWkkKFAse2VuYWJsZWQ6IXQscmVmZXJlbmNlUHJlc3M6ITB9KSx7Z2V0UmVmZXJlbmNlUHJvcHM6WixnZXRGbG9hdGluZ1Byb3BzOlV9PWx2KFtOLFIsTSxmdW5jdGlvbihlLHQ9e30pe2xldHtvcGVuOm4sZGF0YVJlZjpyLGVsZW1lbnRzOntmbG9hdGluZzpvLGRvbVJlZmVyZW5jZTphfSxyZWZzOml9PWUse2VuYWJsZWQ6bD0hMCxheGlzOnM9XCJib3RoXCIseDpjPW51bGwseTp1PW51bGx9PXQsZD13LnVzZVJlZighMSksZj13LnVzZVJlZihudWxsKSxbcCxoXT13LnVzZVN0YXRlKCksW20sZ109dy51c2VTdGF0ZShbXSkseT1haCgoZSx0KT0+e2lmKCFkLmN1cnJlbnQmJighci5jdXJyZW50Lm9wZW5FdmVudHx8dUMoci5jdXJyZW50Lm9wZW5FdmVudCkpKXt2YXIgbixvO2xldCBsLGMsdTtpLnNldFBvc2l0aW9uUmVmZXJlbmNlKChuPWEsbz17eDplLHk6dCxheGlzOnMsZGF0YVJlZjpyLHBvaW50ZXJUeXBlOnB9LGw9bnVsbCxjPW51bGwsdT0hMSx7Y29udGV4dEVsZW1lbnQ6bnx8dm9pZCAwLGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpe2xldCBlPW4/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfHx7d2lkdGg6MCxoZWlnaHQ6MCx4OjAseTowfSx0PVwieFwiPT09by5heGlzfHxcImJvdGhcIj09PW8uYXhpcyxyPVwieVwiPT09by5heGlzfHxcImJvdGhcIj09PW8uYXhpcyxhPVtcIm1vdXNlZW50ZXJcIixcIm1vdXNlbW92ZVwiXS5pbmNsdWRlcyhvLmRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQ/LnR5cGV8fFwiXCIpJiZcInRvdWNoXCIhPT1vLnBvaW50ZXJUeXBlLGk9ZS53aWR0aCxzPWUuaGVpZ2h0LGQ9ZS54LGY9ZS55O3JldHVybiBudWxsPT1sJiZvLngmJnQmJihsPWUueC1vLngpLG51bGw9PWMmJm8ueSYmciYmKGM9ZS55LW8ueSksZC09bHx8MCxmLT1jfHwwLGk9MCxzPTAsIXV8fGE/KGk9XCJ5XCI9PT1vLmF4aXM/ZS53aWR0aDowLHM9XCJ4XCI9PT1vLmF4aXM/ZS5oZWlnaHQ6MCxkPXQmJm51bGwhPW8ueD9vLng6ZCxmPXImJm51bGwhPW8ueT9vLnk6Zik6dSYmIWEmJihzPVwieFwiPT09by5heGlzP2UuaGVpZ2h0OnMsaT1cInlcIj09PW8uYXhpcz9lLndpZHRoOmkpLHU9ITAse3dpZHRoOmksaGVpZ2h0OnMseDpkLHk6Zix0b3A6ZixyaWdodDpkK2ksYm90dG9tOmYrcyxsZWZ0OmR9fX0pKX19KSx2PWFoKGU9PntudWxsPT1jJiZudWxsPT11JiYobj9mLmN1cnJlbnR8fGcoW10pOnkoZS5jbGllbnRYLGUuY2xpZW50WSkpfSksYj1pcyhwKT9vOm4sQT13LnVzZUNhbGxiYWNrKCgpPT57aWYoIWJ8fCFsfHxudWxsIT1jfHxudWxsIT11KXJldHVybjtsZXQgZT1hVChvKTtmdW5jdGlvbiB0KG4pe2l2KG8saWIobikpPyhlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIix0KSxmLmN1cnJlbnQ9bnVsbCk6eShuLmNsaWVudFgsbi5jbGllbnRZKX1pZighci5jdXJyZW50Lm9wZW5FdmVudHx8dUMoci5jdXJyZW50Lm9wZW5FdmVudCkpe2UuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHQpO2xldCBuPSgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsdCksZi5jdXJyZW50PW51bGx9O3JldHVybiBmLmN1cnJlbnQ9bixufWkuc2V0UG9zaXRpb25SZWZlcmVuY2UoYSl9LFtiLGwsYyx1LG8scixpLGEseV0pO3cudXNlRWZmZWN0KCgpPT5BKCksW0EsbV0pLHcudXNlRWZmZWN0KCgpPT57bCYmIW8mJihkLmN1cnJlbnQ9ITEpfSxbbCxvXSksdy51c2VFZmZlY3QoKCk9PnshbCYmbiYmKGQuY3VycmVudD0hMCl9LFtsLG5dKSxhQygoKT0+e2wmJihudWxsIT1jfHxudWxsIT11KSYmKGQuY3VycmVudD0hMSx5KGMsdSkpfSxbbCxjLHUseV0pO2xldCB4PXcudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7aChlLnBvaW50ZXJUeXBlKX1yZXR1cm57b25Qb2ludGVyRG93bjplLG9uUG9pbnRlckVudGVyOmUsb25Nb3VzZU1vdmU6dixvbk1vdXNlRW50ZXI6dn19LFt2XSk7cmV0dXJuIHcudXNlTWVtbygoKT0+bD97cmVmZXJlbmNlOnh9Ont9LFtsLHhdKX0oUCx7ZW5hYmxlZDohdCYmXCJub25lXCIhPT1zLGF4aXM6XCJub25lXCI9PT1zP3ZvaWQgMDpzfSldKSxGPXcudXNlTWVtbygoKT0+KHtvcGVuOl8sc2V0T3BlbjpFLG1vdW50ZWQ6aixzZXRNb3VudGVkOlMsc2V0VHJpZ2dlckVsZW1lbnQ6aCxwb3NpdGlvbmVyRWxlbWVudDptLHNldFBvc2l0aW9uZXJFbGVtZW50OmcscG9wdXBSZWY6Yix0cmlnZ2VyUHJvcHM6WigpLHBvcHVwUHJvcHM6VSgpLGZsb2F0aW5nUm9vdENvbnRleHQ6UCxpbnN0YW50VHlwZTpMLHRyYW5zaXRpb25TdGF0dXM6Tyxvbk9wZW5DaGFuZ2VDb21wbGV0ZTp1fSksW18sRSxqLFMsaCxtLGcsYixaLFUsUCxMLE8sdV0pLHE9dy51c2VNZW1vKCgpPT4oey4uLkYsZGVsYXk6ZCxjbG9zZURlbGF5OmYsdHJhY2tDdXJzb3JBeGlzOnMsaG92ZXJhYmxlOmx9KSxbRixkLGYscyxsXSk7cmV0dXJuKDAsQS5qc3gpKHVsLlByb3ZpZGVyLHt2YWx1ZTpxLGNoaWxkcmVuOmUuY2hpbGRyZW59KX12YXIgdWs9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jc3NcIiksdUU9e307dUUuc3R5bGVUYWdUcmFuc2Zvcm09bSgpLHVFLnNldEF0dHJpYnV0ZXM9ZCgpLHVFLmluc2VydD1jKCksdUUuZG9tQVBJPWwoKSx1RS5pbnNlcnRTdHlsZUVsZW1lbnQ9cCgpLGEoKSh1ay5aLHVFKSx1ay5aJiZ1ay5aLmxvY2FscyYmdWsuWi5sb2NhbHM7dmFyIHVqPSgwLHcuZm9yd2FyZFJlZikoZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaD0oMCx4LmMpKDM1KSxtPWUuY2xhc3NOYW1lLGc9ZS5jaGlsZHJlbix5PWUudGl0bGUsdj1lLmRpcmVjdGlvbixiPWUuYXJyb3dTaXplLHc9ZS5vZmZzZXQsQz12b2lkIDA9PT12P1widG9wXCI6dixfPXZvaWQgMD09PWI/NjpiLGs9ZGwoKS5zaGFkb3dSb290O2lmKCF5KXJldHVybiBnO2hbMF0hPT1nPyhuPWZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuKDAsQS5qc3gpKFwic3BhblwiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sZSksbj1uPXtjaGlsZHJlbjpnfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKX0saFswXT1nLGhbMV09bik6bj1oWzFdLGhbMl0hPT10fHxoWzNdIT09bj8ocj0oMCxBLmpzeCkodWMse3JlZjp0LHJlbmRlcjpufSksaFsyXT10LGhbM109bixoWzRdPXIpOnI9aFs0XTt2YXIgRT0odm9pZCAwPT09dz84OncpK18saj1cIlwiLmNvbmNhdChfLFwicHhcIiksUz1cIlwiLmNvbmNhdChfLFwicHhcIik7aFs1XSE9PWp8fGhbNl0hPT1TPyhvPXtcIi0tYW5jaG9yLXdpZHRoXCI6aixcIi0tYW5jaG9yLWhlaWdodFwiOlN9LGhbNV09aixoWzZdPVMsaFs3XT1vKTpvPWhbN107dmFyIE89bztoWzhdIT09bT8oYT1lSihcInRvb2x0aXBcIixtKSxoWzhdPW0saFs5XT1hKTphPWhbOV07dmFyIEI9XCJcIi5jb25jYXQoXyxcInB4XCIpO2hbMTBdIT09Qj8oaT17XCItLWFycm93LXNpemVcIjpCfSxoWzEwXT1CLGhbMTFdPWkpOmk9aFsxMV07dmFyIFA9aSxJPVwidG9vbHRpcC1hcnJvdy0tXCIuY29uY2F0KEMpO2hbMTJdIT09ST8obD1lSihcInRvb2x0aXAtYXJyb3dcIixJKSxoWzEyXT1JLGhbMTNdPWwpOmw9aFsxM107dmFyIFQ9XCJcIi5jb25jYXQoXyxcInB4XCIpO2hbMTRdIT09VD8ocz17XCItLWFycm93LXNpemVcIjpUfSxoWzE0XT1ULGhbMTVdPXMpOnM9aFsxNV07dmFyIHo9cztyZXR1cm4gaFsxNl0hPT1sfHxoWzE3XSE9PXo/KGM9KDAsQS5qc3gpKHVmLHtjbGFzc05hbWU6bCxzdHlsZTp6fSksaFsxNl09bCxoWzE3XT16LGhbMThdPWMpOmM9aFsxOF0saFsxOV0hPT1hfHxoWzIwXSE9PVB8fGhbMjFdIT09Y3x8aFsyMl0hPT15Pyh1PSgwLEEuanN4cykodWgse2NsYXNzTmFtZTphLHN0eWxlOlAsY2hpbGRyZW46W3ksY119KSxoWzE5XT1hLGhbMjBdPVAsaFsyMV09YyxoWzIyXT15LGhbMjNdPXUpOnU9aFsyM10saFsyNF0hPT1DfHxoWzI1XSE9PU98fGhbMjZdIT09dXx8aFsyN10hPT1FPyhkPSgwLEEuanN4KSh1Zyx7c2lkZTpDLHNpZGVPZmZzZXQ6RSxjbGFzc05hbWU6XCJ0b29sdGlwLXBvc2l0aW9uZXJcIixzdHlsZTpPLGNoaWxkcmVuOnV9KSxoWzI0XT1DLGhbMjVdPU8saFsyNl09dSxoWzI3XT1FLGhbMjhdPWQpOmQ9aFsyOF0saFsyOV0hPT1rfHxoWzMwXSE9PWQ/KGY9KDAsQS5qc3gpKHV2LHtjb250YWluZXI6ayxjaGlsZHJlbjpkfSksaFsyOV09ayxoWzMwXT1kLGhbMzFdPWYpOmY9aFszMV0saFszMl0hPT1mfHxoWzMzXSE9PXI/KHA9KDAsQS5qc3gpKHV3LHtjaGlsZHJlbjooMCxBLmpzeHMpKHVfLHtkZWxheTo0MDAsY2hpbGRyZW46W3IsZl19KX0pLGhbMzJdPWYsaFszM109cixoWzM0XT1wKTpwPWhbMzRdLHB9KTtmdW5jdGlvbiB1UyhlKXt2YXIgdCxuLHI9KDAseC5jKSgzKSxvPWUucG9zc2libGVFeHRlbnNpb24sYT1lLm1pc3NpbmdHbG9iYWxFcnJvcj9cIk5vIGdsb2JhbC1lcnJvci5cIi5jb25jYXQobyxcIiBmb3VuZDogQWRkIG9uZSB0byBlbnN1cmUgdXNlcnMgc2VlIGEgaGVscGZ1bCBtZXNzYWdlIHdoZW4gYW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnMuXCIpOm51bGw7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxBLmpzeCkodVIse30pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1hPyhuPSgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1zdWdnZXN0aW9uc1wiLGNoaWxkcmVuOigwLEEuanN4KSh1aix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1zdWdnZXN0aW9ucy10b29sdGlwXCIsdGl0bGU6YSxjaGlsZHJlbjp0fSl9KSxyWzFdPWEsclsyXT1uKTpuPXJbMl0sbn1mdW5jdGlvbiB1TyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gdUIoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfXZhciB1UD1mdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEhKG51bGw9PSh0PWUudmFsdWUpP3ZvaWQgMDp0LnR5cGUpJiYhIShudWxsPT0obj1lLnZhbHVlKT92b2lkIDA6bi5wYWdlUGF0aCl9O2Z1bmN0aW9uIHVJKGUpe3ZhciB0LG4scj0oMCx4LmMpKDMpLG89ZS5wYWdlO3JldHVybiByWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsQS5qc3gpKHVNLHt9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09bz8obj0oMCxBLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItcGFnZS1yb3V0ZS1iYXJcIixjaGlsZHJlbjpbdCwoMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItcGFnZS1yb3V0ZS1iYXItcGF0aFwiLGNoaWxkcmVuOm99KV19KSxyWzFdPW8sclsyXT1uKTpuPXJbMl0sbn1mdW5jdGlvbiB1VChlKXt2YXIgdCxuLHIsbz0oMCx4LmMpKDkpLGE9ZS5hY3RpdmVCb3VuZGFyaWVzQ291bnQsaT1lLm9uR2xvYmFsUmVzZXQsbD1hPjAscz1cInNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJ1dHRvbiBcIi5jb25jYXQobD9cIlwiOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uLS1kaXNhYmxlZFwiKSxjPWw/aTp2b2lkIDAsdT0hbDtyZXR1cm4gb1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItdGV4dFwiLGNoaWxkcmVuOlwiQ2xlYXIgU2VnbWVudCBPdmVycmlkZXNcIn0pLG9bMF09dCk6dD1vWzBdLG9bMV0hPT1hfHxvWzJdIT09bD8obj1sJiYoMCxBLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJhZGdlXCIsY2hpbGRyZW46YX0pLG9bMV09YSxvWzJdPWwsb1szXT1uKTpuPW9bM10sb1s0XSE9PXN8fG9bNV0hPT1jfHxvWzZdIT09dXx8b1s3XSE9PW4/KHI9KDAsQS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItZm9vdGVyXCIsY2hpbGRyZW46KDAsQS5qc3hzKShcImJ1dHRvblwiLHtjbGFzc05hbWU6cyxvbkNsaWNrOmMsZGlzYWJsZWQ6dSx0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46W3Qsbl19KX0pLG9bNF09cyxvWzVdPWMsb1s2XT11LG9bN109bixvWzhdPXIpOnI9b1s4XSxyfWZ1bmN0aW9uIHV6KGUpe3ZhciB0LG4scixvLGEsaT0oMCx4LmMpKDE1KSxsPWUudHlwZSxzPWUuaXNCdWlsdGluLGM9ZS5pc092ZXJyaWRkZW4sdT1lLmZpbGVQYXRoLGQ9ZS5maWxlTmFtZSxmPVwic2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1cIi5jb25jYXQobCkscD1zJiZcInNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tYnVpbHRpblwiLGg9YyYmXCJzZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLW92ZXJyaWRkZW5cIjtyZXR1cm4gaVswXSE9PWZ8fGlbMV0hPT1wfHxpWzJdIT09aD8odD1lSihcInNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbFwiLGYscCxoKSxpWzBdPWYsaVsxXT1wLGlbMl09aCxpWzNdPXQpOnQ9aVszXSxpWzRdIT09dT8obj1mdW5jdGlvbigpe3ZhciBlO2U9bmV3IFVSTFNlYXJjaFBhcmFtcyh7ZmlsZTp7ZmlsZVBhdGg6dX0uZmlsZVBhdGgsaXNBcHBSZWxhdGl2ZVBhdGg6XCIxXCJ9KSxmZXRjaChcIlwiLmNvbmNhdChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwiLFwiL19fbmV4dGpzX2xhdW5jaC1lZGl0b3I/XCIpLmNvbmNhdChlLnRvU3RyaW5nKCkpKX0saVs0XT11LGlbNV09bik6bj1pWzVdLGlbNl0hPT1kPyhyPSgwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRleHRcIixjaGlsZHJlbjpkfSksaVs2XT1kLGlbN109cik6cj1pWzddLGlbOF0hPT1zPyhvPXM/KDAsQS5qc3gpKHVSLHt9KTooMCxBLmpzeCkodVose2NsYXNzTmFtZTpcImNvZGUtaWNvblwifSksaVs4XT1zLGlbOV09byk6bz1pWzldLGlbMTBdIT09dHx8aVsxMV0hPT1ufHxpWzEyXSE9PXJ8fGlbMTNdIT09bz8oYT0oMCxBLmpzeHMpKFwic3BhblwiLHtjbGFzc05hbWU6dCxvbkNsaWNrOm4sY2hpbGRyZW46W3Isb119KSxpWzEwXT10LGlbMTFdPW4saVsxMl09cixpWzEzXT1vLGlbMTRdPWEpOmE9aVsxNF0sYX1mdW5jdGlvbiB1RChlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdT0oMCx4LmMpKDE3KSxkPWUucGFnZSxmPSgwLHcudXNlU3luY0V4dGVybmFsU3RvcmUpKG84LG83LGFlKTt1WzBdIT09Zj8obj1mdW5jdGlvbiBlKHQpe3ZhciBuLHI9MDtyZXR1cm4obnVsbD09KG49dC52YWx1ZSk/dm9pZCAwOm4uc2V0Qm91bmRhcnlUeXBlKSYmbnVsbCE9PXQudmFsdWUuYm91bmRhcnlUeXBlJiYhYzQodC52YWx1ZS50eXBlKSYmcisrLE9iamVjdC52YWx1ZXModC5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbih0KXt0JiYocis9ZSh0KSl9KSxyfShmKSx1WzBdPWYsdVsxXT1uKTpuPXVbMV0sdD1uLHVbMl0hPT1mPyhyPWZ1bmN0aW9uKCl7IWZ1bmN0aW9uIGUodCl7dmFyIG47KG51bGw9PShuPXQudmFsdWUpP3ZvaWQgMDpuLnNldEJvdW5kYXJ5VHlwZSkmJnQudmFsdWUuc2V0Qm91bmRhcnlUeXBlKG51bGwpLE9iamVjdC52YWx1ZXModC5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbih0KXt0JiZlKHQpfSl9KGYpfSx1WzJdPWYsdVszXT1yKTpyPXVbM107dmFyIHA9cjtyZXR1cm4gdVs0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhvPXtkaXNwbGF5OlwiZmxleFwiLGZsZXhEaXJlY3Rpb246XCJjb2x1bW5cIixoZWlnaHQ6XCIxMDAlXCJ9LHVbNF09byk6bz11WzRdLHVbNV0hPT1kPyhhPSgwLEEuanN4KSh1SSx7cGFnZTpkfSksdVs1XT1kLHVbNl09YSk6YT11WzZdLHVbN109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oaT17ZmxleDpcIjEgMSBhdXRvXCIsb3ZlcmZsb3c6XCJhdXRvXCJ9LHVbN109aSk6aT11WzddLHVbOF0hPT1mPyhsPSgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWNvbnRlbnRcIixcImRhdGEtbmV4dGpzLWRldnRvb2wtc2VnbWVudC1leHBsb3JlclwiOiEwLHN0eWxlOmksY2hpbGRyZW46KDAsQS5qc3gpKHVOLHtub2RlOmYsbGV2ZWw6MCxzZWdtZW50OlwiXCJ9KX0pLHVbOF09Zix1WzldPWwpOmw9dVs5XSx1WzEwXSE9PXR8fHVbMTFdIT09cD8ocz0oMCxBLmpzeCkodVQse2FjdGl2ZUJvdW5kYXJpZXNDb3VudDp0LG9uR2xvYmFsUmVzZXQ6cH0pLHVbMTBdPXQsdVsxMV09cCx1WzEyXT1zKTpzPXVbMTJdLHVbMTNdIT09YXx8dVsxNF0hPT1sfHx1WzE1XSE9PXM/KGM9KDAsQS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNlZ21lbnRzLWV4cGxvcmVyXCI6ITAsc3R5bGU6byxjaGlsZHJlbjpbYSxsLHNdfSksdVsxM109YSx1WzE0XT1sLHVbMTVdPXMsdVsxNl09Yyk6Yz11WzE2XSxjfXZhciB1TD1cImdsb2JhbC1lcnJvclwiO2Z1bmN0aW9uIHVOKGUpe3ZhciB0PWUuc2VnbWVudCxuPWUubm9kZSxyPWUubGV2ZWwsbz0oMCx3LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG4uY2hpbGRyZW4pfSxbbi5jaGlsZHJlbl0pLGE9KDAsdy51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiBvLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9bi5jaGlsZHJlblt0XTtpZihyJiZyLnZhbHVlKXt2YXIgbz1jNShyLnZhbHVlLnR5cGUpLGE9bz09PXVMOyhhJiYhci52YWx1ZS5wYWdlUGF0aC5zdGFydHNXaXRoKGMwKXx8IWEmJmM0KHIudmFsdWUudHlwZSkpJiZlLnB1c2gobyl9fSksMD09PXImJiFlLmluY2x1ZGVzKHVMKX0sW24uY2hpbGRyZW4sbyxyXSksaT1vLnNvcnQoZnVuY3Rpb24oZSx0KXt2YXIgcj1lLmluY2x1ZGVzKFwiLlwiKSxvPXQuaW5jbHVkZXMoXCIuXCIpO2lmKHImJiFvKXJldHVybiAtMTtpZighciYmbylyZXR1cm4gMTtpZihyJiZvKXt2YXIgYSxpLGwscyxjLHUsZCxmLHA9bnVsbD09KGk9bi5jaGlsZHJlbltlXSl8fG51bGw9PShhPWkudmFsdWUpP3ZvaWQgMDphLnR5cGUsaD1udWxsPT0ocz1uLmNoaWxkcmVuW3RdKXx8bnVsbD09KGw9cy52YWx1ZSk/dm9pZCAwOmwudHlwZSxtPWZ1bmN0aW9uKGUpe3JldHVybiBlP1wibGF5b3V0XCI9PT1lPzE6XCJ0ZW1wbGF0ZVwiPT09ZT8yOlwicGFnZVwiPT09ZT8zOmM0KGUpPzQ6NTo1fSxnPW0ocCkseT1tKGgpO2lmKGchPT15KXJldHVybiBnLXk7dmFyIHY9KG51bGw9PSh1PW4uY2hpbGRyZW5bZV0pfHxudWxsPT0oYz11LnZhbHVlKT92b2lkIDA6Yy5wYWdlUGF0aCl8fFwiXCIsYj0obnVsbD09KGY9bi5jaGlsZHJlblt0XSl8fG51bGw9PShkPWYudmFsdWUpP3ZvaWQgMDpkLnBhZ2VQYXRoKXx8XCJcIjtyZXR1cm4gdi5sb2NhbGVDb21wYXJlKGIpfXJldHVybiBlLmxvY2FsZUNvbXBhcmUodCl9KSxsPTAhPT1yfHx0P3Q6XCJhcHBcIixzPVtdLGM9W10sdT0hMCxkPSExLGY9dm9pZCAwO3RyeXtmb3IodmFyIHAsaD1pW1N5bWJvbC5pdGVyYXRvcl0oKTshKHU9KHA9aC5uZXh0KCkpLmRvbmUpO3U9ITApe3ZhciBtPXAudmFsdWUsZz1uLmNoaWxkcmVuW21dO2lmKGcpe2lmKHVQKGcpKXtjLnB1c2gobSk7Y29udGludWV9cy5wdXNoKG0pfX19Y2F0Y2goZSl7ZD0hMCxmPWV9ZmluYWxseXt0cnl7dXx8bnVsbD09aC5yZXR1cm58fGgucmV0dXJuKCl9ZmluYWxseXtpZihkKXRocm93IGZ9fWZvcih2YXIgeT1jMShjWzBdfHxcIlwiKS5zcGxpdChcIi5cIikucG9wKCl8fFwianNcIix2PW51bGwsYj1pLmxlbmd0aC0xO2I+PTA7Yi0tKXt2YXIgeD1uLmNoaWxkcmVuW2lbYl1dO2lmKHgmJngudmFsdWUpe3ZhciBDPWM0KHgudmFsdWUudHlwZSk7aWYoIXYmJiFDKXt2PXg7YnJlYWt9fX12YXIgXz1udWxsLGs9ITAsRT0hMSxqPXZvaWQgMDt0cnl7Zm9yKHZhciBTLE89aVtTeW1ib2wuaXRlcmF0b3JdKCk7IShrPShTPU8ubmV4dCgpKS5kb25lKTtrPSEwKXt2YXIgQj1TLnZhbHVlLFA9bi5jaGlsZHJlbltCXTtpZihQJiZQLnZhbHVlJiZjNChQLnZhbHVlLnR5cGUpKXtfPVA7YnJlYWt9fX1jYXRjaChlKXtFPSEwLGo9ZX1maW5hbGx5e3RyeXtrfHxudWxsPT1PLnJldHVybnx8Ty5yZXR1cm4oKX1maW5hbGx5e2lmKEUpdGhyb3cgan19dj12fHxfO3ZhciBJPWMubGVuZ3RoPjAsVD17XCJub3QtZm91bmRcIjpudWxsLGxvYWRpbmc6bnVsbCxlcnJvcjpudWxsLFwiZ2xvYmFsLWVycm9yXCI6bnVsbH07cmV0dXJuIGMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1uLmNoaWxkcmVuW2VdO2lmKHQmJnQudmFsdWUmJmM0KHQudmFsdWUudHlwZSkpe3ZhciByPWM1KHQudmFsdWUudHlwZSk7ciBpbiBUJiYoVFtyXT10LnZhbHVlLnBhZ2VQYXRofHxudWxsKX19KSwoMCxBLmpzeHMpKEEuRnJhZ21lbnQse2NoaWxkcmVuOltJJiYoMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1pdGVtXCIsXCJkYXRhLW5leHRqcy1kZXZ0b29sLXNlZ21lbnQtZXhwbG9yZXItc2VnbWVudFwiOnQrXCItXCIrcixjaGlsZHJlbjooMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1pdGVtLXJvd1wiLHN0eWxlOnVPKHt9LHtwYWRkaW5nTGVmdDpcIlwiLmNvbmNhdCgocisxKSo4LFwicHhcIil9KSxjaGlsZHJlbjooMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1pdGVtLXJvdy1tYWluXCIsY2hpbGRyZW46KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lXCIsY2hpbGRyZW46W2wmJigwLEEuanN4cykoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGhcIixjaGlsZHJlbjpbbCwoMCxBLmpzeCkoXCJzbWFsbFwiLHtjaGlsZHJlbjpcIi9cIn0pXX0pLGEmJigwLEEuanN4KSh1Uyx7cG9zc2libGVFeHRlbnNpb246eSxtaXNzaW5nR2xvYmFsRXJyb3I6YX0pLGMubGVuZ3RoPjAmJigwLEEuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlc1wiLGNoaWxkcmVuOmMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PW4uY2hpbGRyZW5bZV07aWYoIXR8fCF0LnZhbHVlfHxjNCh0LnZhbHVlLnR5cGUpKXJldHVybiBudWxsO3ZhciByPXQudmFsdWUucGFnZVBhdGgsbz1yLnNwbGl0KFwiL1wiKS5wb3AoKXx8XCJcIixhPXIuc3RhcnRzV2l0aChjMCksaT1jMShvKSxsPWE/XCJUaGUgZGVmYXVsdCBOZXh0LmpzIFwiLmNvbmNhdCh0LnZhbHVlLnR5cGUsXCIgaXMgYmVpbmcgc2hvd24uIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgcGFnZSBieSBhZGRpbmcgeW91ciBvd24gXCIpLmNvbmNhdChpLFwiIGZpbGUgdG8gdGhlIGFwcC8gZGlyZWN0b3J5LlwiKTpudWxsLHM9bnVsbCE9PXQudmFsdWUuYm91bmRhcnlUeXBlO3JldHVybigwLEEuanN4KSh1aix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLVwiKyhhP1wibGdcIjpcInNtXCIpLGRpcmVjdGlvbjphP1wicmlnaHRcIjpcInRvcFwiLHRpdGxlOmwsb2Zmc2V0OjEyLGNoaWxkcmVuOigwLEEuanN4KSh1eix7dHlwZTp0LnZhbHVlLnR5cGUsaXNCdWlsdGluOmEsaXNPdmVycmlkZGVuOnMsZmlsZVBhdGg6cixmaWxlTmFtZTppfSl9LGUpfSl9KSx2JiZ2LnZhbHVlJiYoMCxBLmpzeCkodWUse25vZGVTdGF0ZTp2LnZhbHVlLGJvdW5kYXJpZXM6VH0pXX0pfSl9KX0pLHMubWFwKGZ1bmN0aW9uKGUpe3ZhciBvPW4uY2hpbGRyZW5bZV07aWYoIW8pcmV0dXJuIG51bGw7dmFyIGE9ST9lOnQrXCIgLyBcIitlO3JldHVybigwLEEuanN4KSh1Tix7c2VnbWVudDphLG5vZGU6byxsZXZlbDpJP3IrMTpyfSxlKX0pXX0pfWZ1bmN0aW9uIHVSKGUpe3ZhciB0LG4scixvPSgwLHguYykoNCk7cmV0dXJuIG9bMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNMTQgOEMxNCAxMS4zMTM3IDExLjMxMzcgMTQgOCAxNEM0LjY4NjI5IDE0IDIgMTEuMzEzNyAyIDhDMiA0LjY4NjI5IDQuNjg2MjkgMiA4IDJDMTEuMzEzNyAyIDE0IDQuNjg2MjkgMTQgOFpcIixmaWxsOlwidmFyKC0tY29sb3ItZ3JheS00MDApXCJ9KSxuPSgwLEEuanN4KShcInBhdGhcIix7ZDpcIk03Ljc1IDdDOC4zMDIyOCA3LjAwMDAxIDguNzUgNy40NDc3MiA4Ljc1IDhWMTEuMjVINy4yNVY4LjVINi4yNVY3SDcuNzVaTTggNEM4LjU1MjI4IDQgOSA0LjQ0NzcyIDkgNUM5IDUuNTUyMjggOC41NTIyOCA2IDggNkM3LjQ0NzcyIDYgNyA1LjU1MjI4IDcgNUM3IDQuNDQ3NzIgNy40NDc3MiA0IDggNFpcIixmaWxsOlwidmFyKC0tY29sb3ItZ3JheS05MDApXCJ9KSxvWzBdPXQsb1sxXT1uKToodD1vWzBdLG49b1sxXSksb1syXSE9PWU/KHI9KDAsQS5qc3hzKShcInN2Z1wiLHVCKHVPKHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbdCxuXX0pKSxvWzJdPWUsb1szXT1yKTpyPW9bM10scn1mdW5jdGlvbiB1TSgpe3ZhciBlLHQ9KDAseC5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLEEuanN4KShcInN2Z1wiLHt3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiMjBcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcInZhcigtLWNvbG9yLWdyYXktNjAwKVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxBLmpzeCkoXCJwYXRoXCIse2Q6XCJNNC41IDExLjI1QzQuNSAxMS4zODgxIDQuNjExOTMgMTEuNSA0Ljc1IDExLjVIMTQuNDM5NUwxMS45Mzk1IDlMMTMgNy45Mzk0NUwxNi43ODAzIDExLjcxOTdMMTYuODMyIDExLjc3NjRDMTcuMDcyMyAxMi4wNzA5IDE3LjA1NDkgMTIuNTA1NyAxNi43ODAzIDEyLjc4MDNMMTMgMTYuNTYwNUwxMS45Mzk1IDE1LjVMMTQuNDM5NSAxM0g0Ljc1QzMuNzgzNSAxMyAzIDEyLjIxNjUgMyAxMS4yNVY0LjI1SDQuNVYxMS4yNVpcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiB1WihlKXt2YXIgdCxuLHI9KDAseC5jKSgzKTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk03LjIyNzYzIDE0LjE4MTlMMTAuMjI3NiAyLjE4MTkzTDEwLjQwOTUgMS40NTQzMkw4Ljk1NDMyIDEuMDkwNTJMOC43NzI0MiAxLjgxODEyTDUuNzcyNDIgMTMuODE4MUw1LjU5MDUxIDE0LjU0NTdMNy4wNDU3MyAxNC45MDk1TDcuMjI3NjMgMTQuMTgxOVpNMy43NTAwMiAxMi4wNjA3TDMuMjE5NjkgMTEuNTMwNEwwLjM5NjQ3IDguNzA3MTNDMC4wMDU5NDU1OSA4LjMxNjYxIDAuMDA1OTQ1NTkgNy42ODM0NCAwLjM5NjQ3IDcuMjkyOTJMMy4yMTk2OSA0LjQ2OTY5TDMuNzUwMDIgMy45MzkzNkw0LjgxMDY4IDUuMDAwMDJMNC4yODAzNSA1LjUzMDM1TDEuODEwNjggOC4wMDAwM0w0LjI4MDM1IDEwLjQ2OTdMNC44MTA2OCAxMUwzLjc1MDAyIDEyLjA2MDdaTTEyLjI1IDEyLjA2MDdMMTIuNzgwNCAxMS41MzA0TDE1LjYwMzYgOC43MDcxM0MxNS45OTQxIDguMzE2NjEgMTUuOTk0MSA3LjY4MzQ0IDE1LjYwMzYgNy4yOTI5MkwxMi43ODA0IDQuNDY5NjlMMTIuMjUgMy45MzkzNkwxMS4xODk0IDUuMDAwMDJMMTEuNzE5NyA1LjUzMDM1TDE0LjE4OTQgOC4wMDAwM0wxMS43MTk3IDEwLjQ2OTdMMTEuMTg5NCAxMUwxMi4yNSAxMi4wNjA3WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1lPyhuPSgwLEEuanN4KShcInN2Z1wiLHVCKHVPKHt3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTJcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0sZSkse2NoaWxkcmVuOnR9KSksclsxXT1lLHJbMl09bik6bj1yWzJdLG59ZnVuY3Rpb24gdVUoKXt2YXIgZSx0LG49KGU9W1wiXFxuICAgICAgICAuZGV2LXRvb2xzLWluZm8tY2xvc2UtYnV0dG9uOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICAgIH1cXG4gICAgICBcIl0sdHx8KHQ9ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9fSkpKTtyZXR1cm4gdVU9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sbn1mdW5jdGlvbiB1RihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGY9KDAseC5jKSgxOCkscD1lLnRpdGxlLGg9ZS5jaGlsZHJlbixtPWUucmVmLGc9cjUoKS5zZXRQYW5lbCx5PSgwLHcudXNlUmVmKShudWxsKTtyZXR1cm4gZlswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PWZ1bmN0aW9uKCl7dmFyIGU7bnVsbD09KGU9eS5jdXJyZW50KXx8ZS5mb2N1cygpfSxuPVtdLGZbMF09dCxmWzFdPW4pOih0PWZbMF0sbj1mWzFdKSwoMCx3LnVzZUxheW91dEVmZmVjdCkodCxuKSxmWzJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9e3dpZHRoOlwiMTAwJVwiLGRpc3BsYXk6XCJmbGV4XCIsYWxpZ25JdGVtczpcImNlbnRlclwiLGp1c3RpZnlDb250ZW50Olwic3BhY2UtYmV0d2VlblwiLHBhZGRpbmc6XCI4cHggMjBweFwiLHVzZXJTZWxlY3Q6XCJub25lXCIsV2Via2l0VXNlclNlbGVjdDpcIm5vbmVcIixib3JkZXJCb3R0b206XCIxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApXCJ9LGZbMl09cik6cj1mWzJdLGZbM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obz17bWFyZ2luOjAsZm9udFNpemU6XCIxNHB4XCIsY29sb3I6XCJ2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpXCIsZm9udFdlaWdodDpcIm5vcm1hbFwifSxmWzNdPW8pOm89ZlszXSxmWzRdIT09cD8oYT0oMCxBLmpzeCkoXCJoM1wiLHtzdHlsZTpvLGNoaWxkcmVuOnB9KSxmWzRdPXAsZls1XT1hKTphPWZbNV0sZls2XSE9PWc/KGk9ZnVuY3Rpb24oKXtnKFwicGFuZWwtc2VsZWN0b3JcIil9LGZbNl09ZyxmWzddPWkpOmk9Zls3XSxmWzhdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGw9e2JhY2tncm91bmQ6XCJub25lXCIsYm9yZGVyOlwibm9uZVwiLGN1cnNvcjpcInBvaW50ZXJcIixwYWRkaW5nOlwiNHB4XCIsZGlzcGxheTpcImZsZXhcIixhbGlnbkl0ZW1zOlwiY2VudGVyXCIsanVzdGlmeUNvbnRlbnQ6XCJjZW50ZXJcIixib3JkZXJSYWRpdXM6XCI0cHhcIixjb2xvcjpcInZhcigtLWNvbG9yLWdyYXktOTAwKVwifSxzPSgwLEEuanN4KSh1cSx7fSksZls4XT1sLGZbOV09cyk6KGw9Zls4XSxzPWZbOV0pLGZbMTBdIT09aT8oYz0oMCxBLmpzeCkoXCJidXR0b25cIix7cmVmOnksaWQ6XCJfbmV4dC1kZXZ0b29scy1wYW5lbC1jbG9zZVwiLGNsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNsb3NlLWJ1dHRvblwiLG9uQ2xpY2s6aSxcImFyaWEtbGFiZWxcIjpcIkNsb3NlIGRldnRvb2xzIHBhbmVsXCIsc3R5bGU6bCxjaGlsZHJlbjpzfSksZlsxMF09aSxmWzExXT1jKTpjPWZbMTFdLGZbMTJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHU9KDAsQS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZXUodVUoKSl9KSxmWzEyXT11KTp1PWZbMTJdLGZbMTNdIT09aHx8ZlsxNF0hPT1tfHxmWzE1XSE9PWF8fGZbMTZdIT09Yz8oZD0oMCxBLmpzeHMpKFwiZGl2XCIse3N0eWxlOnIscmVmOm0sY2hpbGRyZW46W2EsaCxjLHVdfSksZlsxM109aCxmWzE0XT1tLGZbMTVdPWEsZlsxNl09YyxmWzE3XT1kKTpkPWZbMTddLGR9ZnVuY3Rpb24gdXEoZSl7dmFyIHQsbixyLG89KDAseC5jKSg0KSxhPWUuc2l6ZSxpPXZvaWQgMD09PWE/MjI6YTtyZXR1cm4gb1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLEEuanN4KShcInBhdGhcIix7ZDpcIk0xOCA2IDYgMThcIn0pLG49KDAsQS5qc3gpKFwicGF0aFwiLHtkOlwibTYgNiAxMiAxMlwifSksb1swXT10LG9bMV09bik6KHQ9b1swXSxuPW9bMV0pLG9bMl0hPT1pPyhyPSgwLEEuanN4cykoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOmksaGVpZ2h0Omksdmlld0JveDpcIjAgMCAyNCAyNFwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsc3Ryb2tlV2lkdGg6XCIyXCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLGNoaWxkcmVuOlt0LG5dfSksb1syXT1pLG9bM109cik6cj1vWzNdLHJ9ZnVuY3Rpb24gdUgoKXt2YXIgZSx0PSgwLHguYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMjAgMjBcIixmaWxsOlwibm9uZVwiLGNoaWxkcmVuOigwLEEuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGQ6XCJtOS43IDMuNzM2LjA0NS0uMjM2aC41MWwuMDQ0LjIzNmEyLjAyNCAyLjAyNCAwIDAgMCAxLjMzNCAxLjUzNmMuMTkuMDY2LjM3NS4xNDMuNTU0LjIzLjYxOC4zMDEgMS4zOTguMjkgMi4wMy0uMTQzbC4xOTktLjEzNi4zNi4zNjEtLjEzNS4xOTlhMi4wMjQgMi4wMjQgMCAwIDAtLjE0MyAyLjAzYy4wODcuMTc5LjE2NC4zNjQuMjMuNTU0LjIyNC42NS43ODMgMS4xOTIgMS41MzYgMS4zMzRsLjIzNi4wNDR2LjUxbC0uMjM2LjA0NGEyLjAyNCAyLjAyNCAwIDAgMC0xLjUzNiAxLjMzNCA0Ljk1IDQuOTUgMCAwIDEtLjIzLjU1NCAyLjAyNCAyLjAyNCAwIDAgMCAuMTQzIDIuMDNsLjEzNi4xOTktLjM2MS4zNi0uMTk5LS4xMzVhMi4wMjQgMi4wMjQgMCAwIDAtMi4wMy0uMTQzYy0uMTc5LjA4Ny0uMzY0LjE2NC0uNTU0LjIzYTIuMDI0IDIuMDI0IDAgMCAwLTEuMzM0IDEuNTM2bC0uMDQ0LjIzNmgtLjUxbC0uMDQ0LS4yMzZhMi4wMjQgMi4wMjQgMCAwIDAtMS4zMzQtMS41MzYgNC45NTIgNC45NTIgMCAwIDEtLjU1NC0uMjMgMi4wMjQgMi4wMjQgMCAwIDAtMi4wMy4xNDNsLS4xOTkuMTM2LS4zNi0uMzYxLjEzNS0uMTk5YTIuMDI0IDIuMDI0IDAgMCAwIC4xNDMtMi4wMyA0Ljk1OCA0Ljk1OCAwIDAgMS0uMjMtLjU1NCAyLjAyNCAyLjAyNCAwIDAgMC0xLjUzNi0xLjMzNGwtLjIzNi0uMDQ0di0uNTFsLjIzNi0uMDQ0YTIuMDI0IDIuMDI0IDAgMCAwIDEuNTM2LTEuMzM0IDQuOTYgNC45NiAwIDAgMSAuMjMtLjU1NCAyLjAyNCAyLjAyNCAwIDAgMC0uMTQzLTIuMDNsLS4xMzYtLjE5OS4zNjEtLjM2LjE5OS4xMzVhMi4wMjQgMi4wMjQgMCAwIDAgMi4wMy4xNDNjLjE3OS0uMDg3LjM2NC0uMTY0LjU1NC0uMjNhMi4wMjQgMi4wMjQgMCAwIDAgMS4zMzQtMS41MzZaTTguNSAyaDNsLjI3NCAxLjQ2Yy4wMzQuMTg1LjE3LjMzMy4zNDguMzk0LjI0OC4wODYuNDkuMTg2LjcyMi4zLjE3LjA4Mi4zNy4wNzQuNTI2LS4wMzNsMS4yMjYtLjgzOSAyLjEyMiAyLjEyMi0uODQgMS4yMjZhLjUyNC41MjQgMCAwIDAtLjAzMi41MjZjLjExNC4yMzMuMjE0LjQ3NC4zLjcyMi4wNjEuMTc3LjIxLjMxNC4zOTQuMzQ4TDE4IDguNXYzbC0xLjQ2LjI3NGEuNTI0LjUyNCAwIDAgMC0uMzk0LjM0OCA2LjQ3IDYuNDcgMCAwIDEtLjMuNzIyLjUyNC41MjQgMCAwIDAgLjAzMy41MjZsLjgzOSAxLjIyNi0yLjEyMiAyLjEyMi0xLjIyNi0uODRhLjUyNC41MjQgMCAwIDAtLjUyNi0uMDMyIDYuNDc3IDYuNDc3IDAgMCAxLS43MjIuMy41MjQuNTI0IDAgMCAwLS4zNDguMzk0TDExLjUgMThoLTNsLS4yNzQtMS40NmEuNTI0LjUyNCAwIDAgMC0uMzQ4LS4zOTQgNi40NzcgNi40NzcgMCAwIDEtLjcyMi0uMy41MjQuNTI0IDAgMCAwLS41MjYuMDMzbC0xLjIyNi44MzktMi4xMjItMi4xMjIuODQtMS4yMjZhLjUyNC41MjQgMCAwIDAgLjAzMi0uNTI2IDYuNDUzIDYuNDUzIDAgMCAxLS4zLS43MjIuNTI0LjUyNCAwIDAgMC0uMzk0LS4zNDhMMiAxMS41di0zbDEuNDYtLjI3NGEuNTI0LjUyNCAwIDAgMCAuMzk0LS4zNDhjLjA4Ni0uMjQ4LjE4Ni0uNDkuMy0uNzIyYS41MjQuNTI0IDAgMCAwLS4wMzMtLjUyNmwtLjgzOS0xLjIyNiAyLjEyMi0yLjEyMiAxLjIyNi44NGEuNTI0LjUyNCAwIDAgMCAuNTI2LjAzMiA2LjQ2IDYuNDYgMCAwIDEgLjcyMi0uMy41MjQuNTI0IDAgMCAwIC4zNDgtLjM5NEw4LjUgMlptMyA4YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0xLjUgMGEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9dmFyIHVWPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvbWVudS9wYW5lbC1yb3V0ZXIuY3NzXCIpLHUkPXt9O3UkLnN0eWxlVGFnVHJhbnNmb3JtPW0oKSx1JC5zZXRBdHRyaWJ1dGVzPWQoKSx1JC5pbnNlcnQ9YygpLHUkLmRvbUFQST1sKCksdSQuaW5zZXJ0U3R5bGVFbGVtZW50PXAoKSxhKCkodVYuWix1JCksdVYuWiYmdVYuWi5sb2NhbHMmJnVWLloubG9jYWxzO3ZhciB1Vz1mdW5jdGlvbigpe3ZhciBlLHQsbixyLG8sYSxpLGwscyxjLHUsZD0oMCx4LmMpKDMyKSxmPXI1KCkscD1mLnNldFBhbmVsLGg9Zi5zZXRTZWxlY3RlZEluZGV4LG09ZGwoKSxnPW0uc3RhdGUseT1tLmRpc3BhdGNoLHY9dTMoKS50b3RhbEVycm9yQ291bnQsYj1cImFwcFwiPT09Zy5yb3V0ZXJUeXBlO2RbMF0hPT15fHxkWzFdIT09cHx8ZFsyXSE9PWh8fGRbM10hPT1nLmlzRXJyb3JPdmVybGF5T3Blbnx8ZFs0XSE9PXY/KGU9dj4wJiZ7dGl0bGU6XCJcIi5jb25jYXQodixcIiBcIikuY29uY2F0KDE9PT12P1wiaXNzdWVcIjpcImlzc3Vlc1wiLFwiIGZvdW5kLiBDbGljayB0byB2aWV3IGRldGFpbHMgaW4gdGhlIGRldiBvdmVybGF5LlwiKSxsYWJlbDpcIklzc3Vlc1wiLHZhbHVlOigwLEEuanN4KShvRCx7Y2hpbGRyZW46dn0pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtpZihnLmlzRXJyb3JPdmVybGF5T3Blbil7eSh7dHlwZTpxfSkscChudWxsKTtyZXR1cm59cChudWxsKSxoKC0xKSx2PjAmJnkoe3R5cGU6Rn0pfX0sZFswXT15LGRbMV09cCxkWzJdPWgsZFszXT1nLmlzRXJyb3JPdmVybGF5T3BlbixkWzRdPXYsZFs1XT1lKTplPWRbNV07dmFyIHc9XCJDdXJyZW50IHJvdXRlIGlzIFwiLmNvbmNhdChnLnN0YXRpY0luZGljYXRvcj9cInN0YXRpY1wiOlwiZHluYW1pY1wiLFwiLlwiKSxDPWcuc3RhdGljSW5kaWNhdG9yP1wiU3RhdGljXCI6XCJEeW5hbWljXCI7ZFs2XSE9PXA/KHQ9ZnVuY3Rpb24oKXtyZXR1cm4gcChcInJvdXRlLXR5cGVcIil9LGRbNl09cCxkWzddPXQpOnQ9ZFs3XTt2YXIgXz1nLnN0YXRpY0luZGljYXRvcj9cInN0YXRpY1wiOlwiZHluYW1pY1wiO3JldHVybiBkWzhdIT09Xz8obj17XCJkYXRhLW5leHRqcy1yb3V0ZS10eXBlXCI6X30sZFs4XT1fLGRbOV09bik6bj1kWzldLGRbMTBdIT09d3x8ZFsxMV0hPT1DfHxkWzEyXSE9PXR8fGRbMTNdIT09bj8ocj17dGl0bGU6dyxsYWJlbDpcIlJvdXRlXCIsdmFsdWU6QyxvbkNsaWNrOnQsYXR0cmlidXRlczpufSxkWzEwXT13LGRbMTFdPUMsZFsxMl09dCxkWzEzXT1uLGRbMTRdPXIpOnI9ZFsxNF0sZFsxNV0hPT1wPyhvPXByb2Nlc3MuZW52LlRVUkJPUEFDSz97dGl0bGU6XCJUdXJib3BhY2sgaXMgZW5hYmxlZC5cIixsYWJlbDpcIlR1cmJvcGFja1wiLHZhbHVlOlwiRW5hYmxlZFwifTp7dGl0bGU6XCJMZWFybiBhYm91dCBUdXJib3BhY2sgYW5kIGhvdyB0byBlbmFibGUgaXQgaW4geW91ciBhcHBsaWNhdGlvbi5cIixsYWJlbDpcIlRyeSBUdXJib3BhY2tcIix2YWx1ZTooMCxBLmpzeCkob0wse30pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcChcInR1cmJvLWluZm9cIil9fSxkWzE1XT1wLGRbMTZdPW8pOm89ZFsxNl0sZFsxN10hPT1ifHxkWzE4XSE9PXA/KGE9ISFwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSJiZiJiZ7bGFiZWw6XCJSb3V0ZSBJbmZvXCIsdmFsdWU6KDAsQS5qc3gpKG9MLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHAoXCJzZWdtZW50LWV4cGxvcmVyXCIpfSxhdHRyaWJ1dGVzOntcImRhdGEtc2VnbWVudC1leHBsb3JlclwiOiEwfX0sZFsxN109YixkWzE4XT1wLGRbMTldPWEpOmE9ZFsxOV0sZFsyMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oaT0oMCxBLmpzeCkodUgse30pLGRbMjBdPWkpOmk9ZFsyMF0sZFsyMV0hPT1wPyhsPWZ1bmN0aW9uKCl7cmV0dXJuIHAoXCJwcmVmZXJlbmNlc1wiKX0sZFsyMV09cCxkWzIyXT1sKTpsPWRbMjJdLGRbMjNdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHM9e1wiZGF0YS1wcmVmZXJlbmNlc1wiOiEwfSxkWzIzXT1zKTpzPWRbMjNdLGRbMjRdIT09bD8oYz17bGFiZWw6XCJQcmVmZXJlbmNlc1wiLHZhbHVlOmksb25DbGljazpsLGZvb3RlcjohMCxhdHRyaWJ1dGVzOnN9LGRbMjRdPWwsZFsyNV09Yyk6Yz1kWzI1XSxkWzI2XSE9PWV8fGRbMjddIT09Y3x8ZFsyOF0hPT1yfHxkWzI5XSE9PW98fGRbMzBdIT09YT8odT0oMCxBLmpzeCkob1Qse2l0ZW1zOltlLHIsbyxhLGNdfSksZFsyNl09ZSxkWzI3XT1jLGRbMjhdPXIsZFsyOV09byxkWzMwXT1hLGRbMzFdPXUpOnU9ZFszMV0sdX0sdVk9ZnVuY3Rpb24oKXt2YXIgZSx0PSgwLHguYykoNCksbj1kbCgpLHI9bi5zdGF0ZSxvPW4uZGlzcGF0Y2gsYT1uLnNoYWRvd1Jvb3Q7cmV0dXJuIHRbMF0hPT1vfHx0WzFdIT09YXx8dFsyXSE9PXIuZGlzYWJsZURldkluZGljYXRvcj8oZT1mdW5jdGlvbigpe28oe3R5cGU6VSxkaXNhYmxlZDohci5kaXNhYmxlRGV2SW5kaWNhdG9yfSk7dmFyIGU9YS5nZXRFbGVtZW50QnlJZChcInBhbmVsLXJvdXRlXCIpLHQ9YS5nZXRFbGVtZW50QnlJZChcImRhdGEtZGV2dG9vbHMtaW5kaWNhdG9yXCIpO2lmKGUmJmUuZmlyc3RFbGVtZW50Q2hpbGQpe3ZhciBuPWUuZmlyc3RFbGVtZW50Q2hpbGQsaT1cIm5vbmVcIj09PW4uc3R5bGUuZGlzcGxheTtuLnN0eWxlLmRpc3BsYXk9aT9cIlwiOlwibm9uZVwifWlmKHQpe3ZhciBsPVwibm9uZVwiPT09dC5zdHlsZS5kaXNwbGF5O3Quc3R5bGUuZGlzcGxheT1sP1wiXCI6XCJub25lXCJ9fSx0WzBdPW8sdFsxXT1hLHRbMl09ci5kaXNhYmxlRGV2SW5kaWNhdG9yLHRbM109ZSk6ZT10WzNdLGV9LHVLPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLG0sZyx5LHYsYixDLF8sayxFLGosUyxPPSgwLHguYykoNDQpLEI9ZGwoKS5zdGF0ZSxQPXI1KCkudHJpZ2dlclJlZixJPXVZKCksVD1cImFwcFwiPT09Qi5yb3V0ZXJUeXBlO09bMF0hPT1CLmhpZGVTaG9ydGN1dHx8T1sxXSE9PUk/KHM9Qi5oaWRlU2hvcnRjdXQ/KGU9e30sdD1CLmhpZGVTaG9ydGN1dCxuPUksdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZSk6e30sT1swXT1CLmhpZGVTaG9ydGN1dCxPWzFdPUksT1syXT1zKTpzPU9bMl0scj1zLG89UCwobD0oMCx4LmMpKDQpKVswXSE9PW98fGxbMV0hPT1yPyhhPWZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oZSl7aWYoISgobj10NygodD1vKS5jdXJyZW50KSkmJihcInRydWVcIj09PW4uY29udGVudEVkaXRhYmxlfHxcIklOUFVUXCI9PT1uLnRhZ05hbWV8fFwiVEVYVEFSRUFcIj09PW4udGFnTmFtZXx8XCJTRUxFQ1RcIj09PW4udGFnTmFtZXx8XCJ0cnVlXCI9PT1uLmRhdGFzZXRbXCJzaG9ydGN1dC1yZWNvcmRlclwiXSkmJiFuLmhhc0F0dHJpYnV0ZShcInJlYWRvbmx5XCIpKSl7dmFyIHQsbixhPVtdO2UubWV0YUtleSYmYS5wdXNoKFwiTWV0YVwiKSxlLmN0cmxLZXkmJmEucHVzaChcIkNvbnRyb2xcIiksZS5hbHRLZXkmJmEucHVzaChcIkFsdFwiKSxlLnNoaWZ0S2V5JiZhLnB1c2goXCJTaGlmdFwiKSxcIk1ldGFcIiE9PWUua2V5JiZcIkNvbnRyb2xcIiE9PWUua2V5JiZcIkFsdFwiIT09ZS5rZXkmJlwiU2hpZnRcIiE9PWUua2V5JiZhLnB1c2goZS5jb2RlKTt2YXIgaT1hLmpvaW4oXCIrXCIpO3JbaV0mJihlLnByZXZlbnREZWZhdWx0KCkscltpXSgpKX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKX19LGk9W28scl0sbFswXT1vLGxbMV09cixsWzJdPWEsbFszXT1pKTooYT1sWzJdLGk9bFszXSksKDAsdy51c2VFZmZlY3QpKGEsaSksT1szXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhjPSgwLEEuanN4KSh1MCx7bmFtZTpcInBhbmVsLXNlbGVjdG9yXCIsY2hpbGRyZW46KDAsQS5qc3gpKHVXLHt9KX0pLE9bM109Yyk6Yz1PWzNdO3ZhciB6PTUwMC9CLnNjYWxlO09bNF0hPT16Pyh1PXtraW5kOlwiZml4ZWRcIixoZWlnaHQ6eix3aWR0aDo1MTJ9LE9bNF09eixPWzVdPXUpOnU9T1s1XSxPWzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGQ9KDAsQS5qc3gpKHVGLHt0aXRsZTpcIlByZWZlcmVuY2VzXCJ9KSxmPSgwLEEuanN4KSh1Ryx7fSksT1s2XT1kLE9bN109Zik6KGQ9T1s2XSxmPU9bN10pLE9bOF0hPT11PyhwPSgwLEEuanN4KSh1MCx7bmFtZTpcInByZWZlcmVuY2VzXCIsY2hpbGRyZW46KDAsQS5qc3gpKG8yLHtzaGFyZVBhbmVsU2l6ZUdsb2JhbGx5OiExLHNpemVDb25maWc6dSxjbG9zZU9uQ2xpY2tPdXRzaWRlOiEwLGhlYWRlcjpkLGNoaWxkcmVuOmZ9KX0pLE9bOF09dSxPWzldPXApOnA9T1s5XTt2YXIgRD1CLnN0YXRpY0luZGljYXRvcj9cInN0YXRpY1wiOlwiZHluYW1pY1wiLEw9Qi5zdGF0aWNJbmRpY2F0b3I/MzAwL0Iuc2NhbGU6MzI1L0Iuc2NhbGUsTj00MDAvQi5zY2FsZTtPWzEwXSE9PUx8fE9bMTFdIT09Tj8oaD17a2luZDpcImZpeGVkXCIsaGVpZ2h0Okwsd2lkdGg6Tn0sT1sxMF09TCxPWzExXT1OLE9bMTJdPWgpOmg9T1sxMl07dmFyIFI9XCJcIi5jb25jYXQoQi5zdGF0aWNJbmRpY2F0b3I/XCJTdGF0aWNcIjpcIkR5bmFtaWNcIixcIiBSb3V0ZVwiKTtPWzEzXSE9PVI/KG09KDAsQS5qc3gpKHVGLHt0aXRsZTpSfSksT1sxM109UixPWzE0XT1tKTptPU9bMTRdLE9bMTVdIT09Qi5yb3V0ZXJUeXBlfHxPWzE2XSE9PUIuc3RhdGljSW5kaWNhdG9yPyhnPSgwLEEuanN4KShuNCx7cm91dGVyVHlwZTpCLnJvdXRlclR5cGUsaXNTdGF0aWNSb3V0ZTpCLnN0YXRpY0luZGljYXRvcn0pLE9bMTVdPUIucm91dGVyVHlwZSxPWzE2XT1CLnN0YXRpY0luZGljYXRvcixPWzE3XT1nKTpnPU9bMTddO3ZhciBNPW4yW0Iucm91dGVyVHlwZV1bQi5zdGF0aWNJbmRpY2F0b3I/XCJzdGF0aWNcIjpcImR5bmFtaWNcIl07T1sxOF0hPT1NPyh5PSgwLEEuanN4KSh1WCx7aHJlZjpNfSksT1sxOF09TSxPWzE5XT15KTp5PU9bMTldLE9bMjBdIT09Z3x8T1syMV0hPT15Pyh2PSgwLEEuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicGFuZWwtY29udGVudFwiLGNoaWxkcmVuOltnLHldfSksT1syMF09ZyxPWzIxXT15LE9bMjJdPXYpOnY9T1syMl0sT1syM10hPT1ofHxPWzI0XSE9PW18fE9bMjVdIT09dnx8T1syNl0hPT1EPyhiPSgwLEEuanN4KSh1MCx7bmFtZTpcInJvdXRlLXR5cGVcIixjaGlsZHJlbjooMCxBLmpzeCkobzIse3NoYXJlUGFuZWxTaXplR2xvYmFsbHk6ITEsc2l6ZUNvbmZpZzpoLGNsb3NlT25DbGlja091dHNpZGU6ITAsaGVhZGVyOm0sY2hpbGRyZW46dn0sRCl9KSxPWzIzXT1oLE9bMjRdPW0sT1syNV09dixPWzI2XT1ELE9bMjddPWIpOmI9T1syN10sT1syOF0hPT1UfHxPWzI5XSE9PUIucGFnZXx8T1szMF0hPT1CLnNjYWxlPyhDPXByb2Nlc3MuZW52Ll9fTkVYVF9ERVZUT09MX1NFR01FTlRfRVhQTE9SRVImJlQmJigwLEEuanN4KSh1MCx7bmFtZTpcInNlZ21lbnQtZXhwbG9yZXJcIixjaGlsZHJlbjooMCxBLmpzeCkobzIse3NoYXJlUGFuZWxTaXplR2xvYmFsbHk6ITEsc2hhcmVQYW5lbFBvc2l0aW9uR2xvYmFsbHk6ITEsZHJhZ2dhYmxlOiEwLHNpemVDb25maWc6e2tpbmQ6XCJyZXNpemFibGVcIixtYXhIZWlnaHQ6XCI5MHZoXCIsbWF4V2lkdGg6XCI5MHZ3XCIsbWluSGVpZ2h0OjIwMC9CLnNjYWxlLG1pbldpZHRoOjI1MC9CLnNjYWxlLGluaXRpYWxTaXplOntoZWlnaHQ6Mzc1L0Iuc2NhbGUsd2lkdGg6NDAwL0Iuc2NhbGV9fSxoZWFkZXI6KDAsQS5qc3gpKHVGLHt0aXRsZTpcIlJvdXRlIEluZm9cIn0pLGNoaWxkcmVuOigwLEEuanN4KSh1RCx7cGFnZTpCLnBhZ2V9KX0pfSksT1syOF09VCxPWzI5XT1CLnBhZ2UsT1szMF09Qi5zY2FsZSxPWzMxXT1DKTpDPU9bMzFdO3ZhciBaPTQ3MC9CLnNjYWxlLFU9NDAwL0Iuc2NhbGU7cmV0dXJuIE9bMzJdIT09Wnx8T1szM10hPT1VPyhfPXtraW5kOlwiZml4ZWRcIixoZWlnaHQ6Wix3aWR0aDpVfSxPWzMyXT1aLE9bMzNdPVUsT1szNF09Xyk6Xz1PWzM0XSxPWzM1XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhrPSgwLEEuanN4KSh1Rix7dGl0bGU6XCJUcnkgVHVyYm9wYWNrXCJ9KSxPWzM1XT1rKTprPU9bMzVdLE9bMzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KEU9KDAsQS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwYW5lbC1jb250ZW50XCIsY2hpbGRyZW46WygwLEEuanN4KShuWCx7fSksKDAsQS5qc3gpKHVYLHtocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvdHVyYm9wYWNrXCJ9KV19KSxPWzM2XT1FKTpFPU9bMzZdLE9bMzddIT09Xz8oaj0oMCxBLmpzeCkodTAse25hbWU6XCJ0dXJiby1pbmZvXCIsY2hpbGRyZW46KDAsQS5qc3gpKG8yLHtzaGFyZVBhbmVsU2l6ZUdsb2JhbGx5OiExLHNpemVDb25maWc6XyxjbG9zZU9uQ2xpY2tPdXRzaWRlOiEwLGhlYWRlcjprLGNoaWxkcmVuOkV9KX0pLE9bMzddPV8sT1szOF09aik6aj1PWzM4XSxPWzM5XSE9PWJ8fE9bNDBdIT09Q3x8T1s0MV0hPT1qfHxPWzQyXSE9PXA/KFM9KDAsQS5qc3hzKShBLkZyYWdtZW50LHtjaGlsZHJlbjpbYyxwLGIsQyxqXX0pLE9bMzldPWIsT1s0MF09QyxPWzQxXT1qLE9bNDJdPXAsT1s0M109Uyk6Uz1PWzQzXSxTfSx1WD1mdW5jdGlvbihlKXt2YXIgdCxuPSgwLHguYykoMikscj1lLmhyZWY7cmV0dXJuIG5bMF0hPT1yPyh0PSgwLEEuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1idXR0b24tY29udGFpbmVyXCIsY2hpbGRyZW46KDAsQS5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1sZWFybi1tb3JlLWJ1dHRvblwiLGhyZWY6cix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub3JlZmVycmVyIG5vb3BlbmVyXCIsY2hpbGRyZW46XCJMZWFybiBNb3JlXCJ9KX0pLG5bMF09cixuWzFdPXQpOnQ9blsxXSx0fSx1Rz1mdW5jdGlvbigpe3ZhciBlLHQsbixyLG89KDAseC5jKSgxNyksYT1kbCgpLGk9YS5kaXNwYXRjaCxsPWEuc3RhdGUscz1yNSgpLGM9cy5zZXRQYW5lbCx1PXMuc2V0U2VsZWN0ZWRJbmRleCxkPW9fKCk7cmV0dXJuIG9bMF0hPT1pPyhlPWZ1bmN0aW9uKGUpe2koe3R5cGU6RyxzY2FsZTplfSl9LG9bMF09aSxvWzFdPWUpOmU9b1sxXSxvWzJdIT09aXx8b1szXSE9PWQ/KHQ9ZnVuY3Rpb24oZSl7aSh7dHlwZTpLLGRldlRvb2xzUG9zaXRpb246ZX0pLGQoZSl9LG9bMl09aSxvWzNdPWQsb1s0XT10KTp0PW9bNF0sb1s1XSE9PWl8fG9bNl0hPT1jfHxvWzddIT09dT8obj1mdW5jdGlvbigpe2koe3R5cGU6VSxkaXNhYmxlZDohMH0pLHUoLTEpLGMobnVsbCksZmV0Y2goXCIvX19uZXh0anNfZGlzYWJsZV9kZXZfaW5kaWNhdG9yXCIse21ldGhvZDpcIlBPU1RcIn0pfSxvWzVdPWksb1s2XT1jLG9bN109dSxvWzhdPW4pOm49b1s4XSxvWzldIT09bC5kZXZUb29sc1Bvc2l0aW9ufHxvWzEwXSE9PWwuaGlkZVNob3J0Y3V0fHxvWzExXSE9PWwuc2NhbGV8fG9bMTJdIT09bC50aGVtZXx8b1sxM10hPT1lfHxvWzE0XSE9PXR8fG9bMTVdIT09bj8ocj0oMCxBLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwidXNlci1wcmVmZXJlbmNlcy13cmFwcGVyXCIsY2hpbGRyZW46KDAsQS5qc3gpKHJrLHt0aGVtZTpsLnRoZW1lLHBvc2l0aW9uOmwuZGV2VG9vbHNQb3NpdGlvbixzY2FsZTpsLnNjYWxlLHNldFNjYWxlOmUsc2V0UG9zaXRpb246dCxoaWRlU2hvcnRjdXQ6bC5oaWRlU2hvcnRjdXQsc2V0SGlkZVNob3J0Y3V0OnUxLGhpZGU6bn0pfSksb1s5XT1sLmRldlRvb2xzUG9zaXRpb24sb1sxMF09bC5oaWRlU2hvcnRjdXQsb1sxMV09bC5zY2FsZSxvWzEyXT1sLnRoZW1lLG9bMTNdPWUsb1sxNF09dCxvWzE1XT1uLG9bMTZdPXIpOnI9b1sxNl0scn0sdVE9ZnVuY3Rpb24oKXtyZXR1cm4oMCx3LnVzZUNvbnRleHQpKHVKKX0sdUo9KDAsdy5jcmVhdGVDb250ZXh0KShudWxsKTtmdW5jdGlvbiB1MChlKXt2YXIgdCxuLHIsbyxhLGk9KDAseC5jKSgxMiksbD1lLmNoaWxkcmVuLHM9ZS5uYW1lLGM9cjUoKS5wYW5lbDtpWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9e2VudGVyRGVsYXk6MCxleGl0RGVsYXk6MjAwfSxpWzBdPXQpOnQ9aVswXTt2YXIgdT1yTihzPT09Yyx0KSxkPXUubW91bnRlZCxmPXUucmVuZGVyZWQ7aWYoIWQpcmV0dXJuIG51bGw7aVsxXSE9PWR8fGlbMl0hPT1zPyhuPXtuYW1lOnMsbW91bnRlZDpkfSxpWzFdPWQsaVsyXT1zLGlbM109bik6bj1pWzNdO3ZhciBwPSshIWY7aVs0XSE9PXA/KHI9e1wiLS1wYW5lbC1vcGFjaXR5XCI6cCxcIi0tcGFuZWwtdHJhbnNpdGlvblwiOlwib3BhY2l0eSBcIi5jb25jYXQoMjAwLFwibXMgXCIpLmNvbmNhdChudCl9LGlbNF09cCxpWzVdPXIpOnI9aVs1XTt2YXIgaD1yO3JldHVybiBpWzZdIT09bHx8aVs3XSE9PWg/KG89KDAsQS5qc3gpKFwiZGl2XCIse2lkOlwicGFuZWwtcm91dGVcIixjbGFzc05hbWU6XCJwYW5lbC1yb3V0ZVwiLHN0eWxlOmgsY2hpbGRyZW46bH0pLGlbNl09bCxpWzddPWgsaVs4XT1vKTpvPWlbOF0saVs5XSE9PW58fGlbMTBdIT09bz8oYT0oMCxBLmpzeCkodUose3ZhbHVlOm4sY2hpbGRyZW46b30pLGlbOV09bixpWzEwXT1vLGlbMTFdPWEpOmE9aVsxMV0sYX1mdW5jdGlvbiB1MShlKXtydyh7aGlkZVNob3J0Y3V0OmV9KX1mdW5jdGlvbiB1MihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdTQoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHUyKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHUyKGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciB1NT0oMCx3LmNyZWF0ZUNvbnRleHQpKG51bGwpLHUzPWZ1bmN0aW9uKCl7cmV0dXJuKDAsdy51c2VDb250ZXh0KSh1NSl9O2Z1bmN0aW9uIHU2KCl7dmFyIGUsdCxuLHIsbz0oMCx4LmMpKDExKSxhPXU0KCgwLHcudXNlU3RhdGUpKG51bGwpLDIpLGk9YVswXSxsPWFbMV0scz11NCgoMCx3LnVzZVN0YXRlKSgtMSksMiksYz1zWzBdLHU9c1sxXSxkPWRsKCksZj1kLnN0YXRlLHA9ZC5kaXNwYXRjaCxoPWQuZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMsbT0oMCx3LnVzZVJlZikobnVsbCk7cmV0dXJuIG9bMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxBLmpzeCkoclkse30pLHQ9KDAsQS5qc3gpKHJ6LHt9KSxvWzBdPWUsb1sxXT10KTooZT1vWzBdLHQ9b1sxXSksb1syXSE9PXB8fG9bM10hPT1ofHxvWzRdIT09aXx8b1s1XSE9PWN8fG9bNl0hPT1mPyhuPWZ1bmN0aW9uKGUpe3ZhciB0PWUucnVudGltZUVycm9ycyxuPWUudG90YWxFcnJvckNvdW50O3JldHVybigwLEEuanN4KShBLkZyYWdtZW50LHtjaGlsZHJlbjpmLnNob3dJbmRpY2F0b3I/KDAsQS5qc3gpKEEuRnJhZ21lbnQse2NoaWxkcmVuOigwLEEuanN4KSh1NSx7dmFsdWU6e3J1bnRpbWVFcnJvcnM6dCx0b3RhbEVycm9yQ291bnQ6bn0sY2hpbGRyZW46KDAsQS5qc3hzKShyNCx7dmFsdWU6e3BhbmVsOmksc2V0UGFuZWw6bCx0cmlnZ2VyUmVmOm0sc2VsZWN0ZWRJbmRleDpjLHNldFNlbGVjdGVkSW5kZXg6dX0sY2hpbGRyZW46WygwLEEuanN4KShyWix7c3RhdGU6ZixkaXNwYXRjaDpwLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOmgscnVudGltZUVycm9yczp0LGVycm9yQ291bnQ6bn0pLCgwLEEuanN4KSh1Syx7fSksKDAsQS5qc3gpKG9DLHt9KV19KX0pfSk6bnVsbH0pfSxvWzJdPXAsb1szXT1oLG9bNF09aSxvWzVdPWMsb1s2XT1mLG9bN109bik6bj1vWzddLG9bOF0hPT1mfHxvWzldIT09bj8ocj0oMCxBLmpzeHMpKGVtLHtjaGlsZHJlbjpbZSx0LCgwLEEuanN4KShyVix7c3RhdGU6Zixpc0FwcERpcjohMCxjaGlsZHJlbjpufSldfSksb1s4XT1mLG9bOV09bixvWzEwXT1yKTpyPW9bMTBdLHJ9ZnVuY3Rpb24gdTkoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHU4KGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB1OShlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVtcIkBAaXRlcmF0b3JcIl0pcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHx1NyhlKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gdTcoZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdTkoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gdTkoZSx0KX19dmFyIGRlPW51bGwsZHQ9W107ZnVuY3Rpb24gZG4oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0KSxyPTA7cjx0O3IrKyluW3JdPWFyZ3VtZW50c1tyXTtkZT9lLmFwcGx5KHZvaWQgMCxbZGVdLmNvbmNhdCh1OChuKSkpOmR0LnB1c2goZnVuY3Rpb24odCl7ZS5hcHBseSh2b2lkIDAsW3RdLmNvbmNhdCh1OChuKSkpfSl9fXZhciBkcj17b25CdWlsZE9rOmRuKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6SX0pfSksb25CdWlsZEVycm9yOmRuKGZ1bmN0aW9uKGUsdCl7ZSh7dHlwZTpULG1lc3NhZ2U6dH0pfSksb25CZWZvcmVSZWZyZXNoOmRuKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6en0pfSksb25SZWZyZXNoOmRuKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6RH0pfSksb25WZXJzaW9uSW5mbzpkbihmdW5jdGlvbihlLHQpe2Uoe3R5cGU6TCx2ZXJzaW9uSW5mbzp0fSl9KSxvblN0YXRpY0luZGljYXRvcjpkbihmdW5jdGlvbihlLHQpe2Uoe3R5cGU6UCxzdGF0aWNJbmRpY2F0b3I6dH0pfSksb25EZWJ1Z0luZm86ZG4oZnVuY3Rpb24oZSx0KXtlKHt0eXBlOk0sZGVidWdJbmZvOnR9KX0pLG9uRGV2SW5kaWNhdG9yOmRuKGZ1bmN0aW9uKGUsdCl7ZSh7dHlwZTpaLGRldkluZGljYXRvcjp0fSl9KSxvbkRldlRvb2xzQ29uZmlnOmRuKGZ1bmN0aW9uKGUsdCl7ZSh7dHlwZTpRLGRldlRvb2xzQ29uZmlnOnR9KX0pLG9uVW5oYW5kbGVkRXJyb3I6ZG4oZnVuY3Rpb24oZSx0KXtlKHt0eXBlOk4scmVhc29uOnR9KX0pLG9uVW5oYW5kbGVkUmVqZWN0aW9uOmRuKGZ1bmN0aW9uKGUsdCl7ZSh7dHlwZTpSLHJlYXNvbjp0fSl9KSxvcGVuRXJyb3JPdmVybGF5OmRuKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6Rn0pfSksY2xvc2VFcnJvck92ZXJsYXk6ZG4oZnVuY3Rpb24oZSl7ZSh7dHlwZTpxfSl9KSx0b2dnbGVFcnJvck92ZXJsYXk6ZG4oZnVuY3Rpb24oZSl7ZSh7dHlwZTpIfSl9KSxidWlsZGluZ0luZGljYXRvckhpZGU6ZG4oZnVuY3Rpb24oZSl7ZSh7dHlwZTokfSl9KSxidWlsZGluZ0luZGljYXRvclNob3c6ZG4oZnVuY3Rpb24oZSl7ZSh7dHlwZTpWfSl9KSxyZW5kZXJpbmdJbmRpY2F0b3JIaWRlOmRuKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6WX0pfSkscmVuZGVyaW5nSW5kaWNhdG9yU2hvdzpkbihmdW5jdGlvbihlKXtlKHt0eXBlOld9KX0pLHNlZ21lbnRFeHBsb3Jlck5vZGVBZGQ6ZG4oZnVuY3Rpb24oZSx0KXthbih0KX0pLHNlZ21lbnRFeHBsb3Jlck5vZGVSZW1vdmU6ZG4oZnVuY3Rpb24oZSx0KXthcih0KX0pLHNlZ21lbnRFeHBsb3JlclVwZGF0ZVJvdXRlU3RhdGU6ZG4oZnVuY3Rpb24oZSx0KXtlKHt0eXBlOmVyLHBhZ2U6dH0pfSl9O2Z1bmN0aW9uIGRhKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdixiLEM9KDAseC5jKSgxOCksQj1lLmdldE93bmVyU3RhY2ssSj1lLmdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLGVlPWUuaXNSZWNvdmVyYWJsZUVycm9yLGV0PWUucm91dGVyVHlwZSxlbj1lLnNoYWRvd1Jvb3QsZW89KHQ9ZXQsbj1CLHI9ZWUsKHM9KDAseC5jKSg3KSlbMF0hPT1ufHxzWzFdIT09cj8oYT1mdW5jdGlvbihlLHQsbyl7dmFyIGEsaT1uKG8pLGw9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnByb2Nlc3MuZW52Ll9fTkVYVF9ESVNUX0RJUjtyZXR1cm4gZT8oZT1lLnNwbGl0KFwiXFxuXCIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlcyhcIihldmFsIFwiKSYmKGU9ZS5yZXBsYWNlKC9ldmFsIGNvZGUvZyxcImV2YWxcIikucmVwbGFjZSgvXFwoZXZhbCBhdCBbXigpXSogXFwoLyxcIihmaWxlOi8vXCIpLnJlcGxhY2UoL1xcKSwuKiQvZyxcIilcIikpLGV9KS5qb2luKFwiXFxuXCIpLCgwLF8ucGFyc2UpKGUpLm1hcChmdW5jdGlvbihlKXt0cnl7dmFyIG49bmV3IFVSTChlLmZpbGUpLHI9ay5leGVjKG4ucGF0aG5hbWUpO2lmKHIpe3ZhciBvLGE9bnVsbD09dHx8bnVsbD09KG89dC5yZXBsYWNlKC9cXFxcL2csXCIvXCIpKT92b2lkIDA6by5yZXBsYWNlKC9cXC8kLyxcIlwiKTthJiYoZS5maWxlPVwiZmlsZTovL1wiK2EuY29uY2F0KHIucG9wKCkpK24uc2VhcmNoKX19Y2F0Y2goZSl7fXJldHVybntmaWxlOmUuZmlsZSxsaW5lMTplLmxpbmVOdW1iZXIsY29sdW1uMTplLmNvbHVtbixtZXRob2ROYW1lOmUubWV0aG9kTmFtZSxhcmd1bWVudHM6ZS5hcmd1bWVudHN9fSkpOltdfSgoby5zdGFja3x8XCJcIikrKGl8fFwiXCIpKSxzPXtpZDp0LGVycm9yOm8sZnJhbWVzOmwsdHlwZTpyKG8pP1wicmVjb3ZlcmFibGVcIjooYT1vKSYmXCJORVhUX0NPTlNPTEVfRVJST1JcIj09PWFbRV0/XCJjb25zb2xlXCI6XCJydW50aW1lXCJ9LGM9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXJyb3Iuc3RhY2shPT1zLmVycm9yLnN0YWNrJiZlYShlLmVycm9yLnN0YWNrKSE9PWVhKHMuZXJyb3Iuc3RhY2spfHxuKGUuZXJyb3IpIT09bihzLmVycm9yKX0pO3JldHVybiBjLmxlbmd0aD09PWUubGVuZ3RoPyhjLnB1c2gocyksYyk6ZX0sc1swXT1uLHNbMV09cixzWzJdPWEpOmE9c1syXSxjPWEsKHNbM10hPT1jPyhpPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQudHlwZSl7Y2FzZSBNOnJldHVybiBPKFMoe30sZSkse2RlYnVnSW5mbzp0LmRlYnVnSW5mb30pO2Nhc2UgUDpyZXR1cm4gTyhTKHt9LGUpLHtzdGF0aWNJbmRpY2F0b3I6dC5zdGF0aWNJbmRpY2F0b3J9KTtjYXNlIEk6cmV0dXJuIE8oUyh7fSxlKSx7YnVpbGRFcnJvcjpudWxsfSk7Y2FzZSBUOnJldHVybiBPKFMoe30sZSkse2J1aWxkRXJyb3I6dC5tZXNzYWdlfSk7Y2FzZSB6OnJldHVybiBPKFMoe30sZSkse3JlZnJlc2hTdGF0ZTp7dHlwZTpcInBlbmRpbmdcIixlcnJvcnM6W119fSk7Y2FzZSBEOnJldHVybiBPKFMoe30sZSkse2J1aWxkRXJyb3I6bnVsbCxlcnJvcnM6XCJwZW5kaW5nXCI9PT1lLnJlZnJlc2hTdGF0ZS50eXBlP2UucmVmcmVzaFN0YXRlLmVycm9yczpbXSxyZWZyZXNoU3RhdGU6e3R5cGU6XCJpZGxlXCJ9fSk7Y2FzZSBOOmNhc2UgUjpzd2l0Y2goZS5yZWZyZXNoU3RhdGUudHlwZSl7Y2FzZVwiaWRsZVwiOnJldHVybiBPKFMoe30sZSkse25leHRJZDplLm5leHRJZCsxLGVycm9yczpjKGUuZXJyb3JzLGUubmV4dElkLHQucmVhc29uKX0pO2Nhc2VcInBlbmRpbmdcIjpyZXR1cm4gTyhTKHt9LGUpLHtuZXh0SWQ6ZS5uZXh0SWQrMSxyZWZyZXNoU3RhdGU6TyhTKHt9LGUucmVmcmVzaFN0YXRlKSx7ZXJyb3JzOmMoZS5lcnJvcnMsZS5uZXh0SWQsdC5yZWFzb24pfSl9KTtkZWZhdWx0OnJldHVybiBlfWNhc2UgTDpyZXR1cm4gTyhTKHt9LGUpLHt2ZXJzaW9uSW5mbzp0LnZlcnNpb25JbmZvfSk7Y2FzZSBVOnJldHVybiBPKFMoe30sZSkse2Rpc2FibGVEZXZJbmRpY2F0b3I6dC5kaXNhYmxlZH0pO2Nhc2UgWjpyZXR1cm4gTyhTKHt9LGUpLHtzaG93SW5kaWNhdG9yOiEwLGRpc2FibGVEZXZJbmRpY2F0b3I6ZWl8fCEhdC5kZXZJbmRpY2F0b3IuZGlzYWJsZWRVbnRpbH0pO2Nhc2UgRjpyZXR1cm4gTyhTKHt9LGUpLHtpc0Vycm9yT3ZlcmxheU9wZW46ITB9KTtjYXNlIHE6cmV0dXJuIE8oUyh7fSxlKSx7aXNFcnJvck92ZXJsYXlPcGVuOiExfSk7Y2FzZSBIOnJldHVybiBPKFMoe30sZSkse2lzRXJyb3JPdmVybGF5T3BlbjohZS5pc0Vycm9yT3ZlcmxheU9wZW59KTtjYXNlIFY6cmV0dXJuIE8oUyh7fSxlKSx7YnVpbGRpbmdJbmRpY2F0b3I6ITB9KTtjYXNlICQ6cmV0dXJuIE8oUyh7fSxlKSx7YnVpbGRpbmdJbmRpY2F0b3I6ITF9KTtjYXNlIFc6cmV0dXJuIE8oUyh7fSxlKSx7cmVuZGVyaW5nSW5kaWNhdG9yOiEwfSk7Y2FzZSBZOnJldHVybiBPKFMoe30sZSkse3JlbmRlcmluZ0luZGljYXRvcjohMX0pO2Nhc2UgSzpyZXR1cm4gTyhTKHt9LGUpLHtkZXZUb29sc1Bvc2l0aW9uOnQuZGV2VG9vbHNQb3NpdGlvbn0pO2Nhc2UgWDpyZXR1cm4gTyhTKHt9LGUpLHtkZXZUb29sc1BhbmVsUG9zaXRpb246TyhTKHt9LGUuZGV2VG9vbHNQYW5lbFBvc2l0aW9uKSxqKHt9LHQua2V5LHQuZGV2VG9vbHNQYW5lbFBvc2l0aW9uKSl9KTtjYXNlIEc6cmV0dXJuIE8oUyh7fSxlKSx7c2NhbGU6dC5zY2FsZX0pO2Nhc2UgZXI6cmV0dXJuIE8oUyh7fSxlKSx7cGFnZTp0LnBhZ2V9KTtjYXNlIFE6dmFyIG49dC5kZXZUb29sc0NvbmZpZyxyPW4udGhlbWUsbz1uLmRpc2FibGVEZXZJbmRpY2F0b3IsYT1uLmRldlRvb2xzUG9zaXRpb24saT1uLmRldlRvb2xzUGFuZWxQb3NpdGlvbixsPW4uZGV2VG9vbHNQYW5lbFNpemUscz1uLnNjYWxlLHU9bi5oaWRlU2hvcnRjdXQ7cmV0dXJuIE8oUyh7fSxlKSx7dGhlbWU6bnVsbCE9cj9yOmUudGhlbWUsZGlzYWJsZURldkluZGljYXRvcjpudWxsIT1vP286ZS5kaXNhYmxlRGV2SW5kaWNhdG9yLGRldlRvb2xzUG9zaXRpb246bnVsbCE9YT9hOmUuZGV2VG9vbHNQb3NpdGlvbixkZXZUb29sc1BhbmVsUG9zaXRpb246bnVsbCE9aT9pOmUuZGV2VG9vbHNQYW5lbFBvc2l0aW9uLHNjYWxlOm51bGwhPXM/czplLnNjYWxlLGRldlRvb2xzUGFuZWxTaXplOm51bGwhPWw/bDplLmRldlRvb2xzUGFuZWxTaXplLGhpZGVTaG9ydGN1dDp2b2lkIDAhPT11P3U6ZS5oaWRlU2hvcnRjdXR9KTtkZWZhdWx0OnJldHVybiBlfX0sc1szXT1jLHNbNF09aSk6aT1zWzRdLHNbNV0hPT10KT8obz10LGw9TyhTKHt9LGVzKSx7aXNFcnJvck92ZXJsYXlPcGVuOlwicGFnZXNcIj09PW8scm91dGVyVHlwZTpvfSksc1s1XT10LHNbNl09bCk6bD1zWzZdLHU9KDAsdy51c2VSZWR1Y2VyKShpLGwpLGQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfSh1KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh1LDIpfHx1Nyh1LGQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxlbD1lb1swXSxlYz1lb1sxXTtyZXR1cm4gQ1swXSE9PWVuLmhvc3R8fENbMV0hPT1lbC50aGVtZT8oZj1mdW5jdGlvbigpe3ZhciBlPWVuLmhvc3Q7XCJkYXJrXCI9PT1lbC50aGVtZT8oZS5jbGFzc0xpc3QuYWRkKFwiZGFya1wiKSxlLmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSk6XCJsaWdodFwiPT09ZWwudGhlbWU/KGUuY2xhc3NMaXN0LmFkZChcImxpZ2h0XCIpLGUuY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIikpOihlLmNsYXNzTGlzdC5yZW1vdmUoXCJkYXJrXCIpLGUuY2xhc3NMaXN0LnJlbW92ZShcImxpZ2h0XCIpKX0sQ1swXT1lbi5ob3N0LENbMV09ZWwudGhlbWUsQ1syXT1mKTpmPUNbMl0sQ1szXSE9PWVufHxDWzRdIT09ZWwudGhlbWU/KHA9W2VuLGVsLnRoZW1lXSxDWzNdPWVuLENbNF09ZWwudGhlbWUsQ1s1XT1wKTpwPUNbNV0sKDAsdy51c2VMYXlvdXRFZmZlY3QpKGYscCksQ1s2XSE9PWVjPyhoPWZ1bmN0aW9uKCl7ZGU9ZWM7dmFyIGU9c2V0VGltZW91dChmdW5jdGlvbigpeyFmdW5jdGlvbihlKXt0cnl7dmFyIHQ9ITAsbj0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGE9ZHRbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0obz1hLm5leHQoKSkuZG9uZSk7dD0hMCkoMCxvLnZhbHVlKShlKX1jYXRjaChlKXtuPSEwLHI9ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgcn19fWZpbmFsbHl7ZHQubGVuZ3RoPTB9fShlYyl9KTtyZXR1cm4gZnVuY3Rpb24oKXtkZT1udWxsLGNsZWFyVGltZW91dChlKX19LENbNl09ZWMsQ1s3XT1oKTpoPUNbN10sQ1s4XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhtPVtdLENbOF09bSk6bT1DWzhdLCgwLHcudXNlSW5zZXJ0aW9uRWZmZWN0KShoLG0pLENbOV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZz0oMCxBLmpzeCkoZWYse30pLENbOV09Zyk6Zz1DWzldLENbMTBdIT09ZWN8fENbMTFdIT09Snx8Q1sxMl0hPT1lbnx8Q1sxM10hPT1lbD8oeT17ZGlzcGF0Y2g6ZWMsZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6SixzaGFkb3dSb290OmVuLHN0YXRlOmVsfSxDWzEwXT1lYyxDWzExXT1KLENbMTJdPWVuLENbMTNdPWVsLENbMTRdPXkpOnk9Q1sxNF0sQ1sxNV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odj0oMCxBLmpzeCkodTYse30pLENbMTVdPXYpOnY9Q1sxNV0sQ1sxNl0hPT15PyhiPSgwLEEuanN4cykoQS5GcmFnbWVudCx7Y2hpbGRyZW46W2csKDAsQS5qc3gpKGRpLHt2YWx1ZTp5LGNoaWxkcmVuOnZ9KV19KSxDWzE2XT15LENbMTddPWIpOmI9Q1sxN10sYn12YXIgZGk9KDAsdy5jcmVhdGVDb250ZXh0KShudWxsKSxkbD1mdW5jdGlvbigpe3JldHVybigwLHcudXNlQ29udGV4dCkoZGkpfSxkcz0hMSxkYz0hMTtmdW5jdGlvbiBkdSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIGRkKGUsdCl7aWYoZHMpdGhyb3cgRXJyb3IoXCJOZXh0IERldlRvb2xzOiBQYWdlcyBEZXYgT3ZlcmxheSBpcyBhbHJlYWR5IG1vdW50ZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qc1wiKTtpZighZGMpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7bi5zdHlsZS5kaXNwbGF5PVwiYmxvY2tcIixuLnN0eWxlLnBvc2l0aW9uPVwiYWJzb2x1dGVcIixuLnNldEF0dHJpYnV0ZShcImRhdGEtbmV4dGpzLWRldi1vdmVybGF5XCIsXCJ0cnVlXCIpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJuZXh0anMtcG9ydGFsXCIpO24uYXBwZW5kQ2hpbGQociksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKTt2YXIgbz0oMCxlYy5jcmVhdGVSb290KShyLHtpZGVudGlmaWVyUHJlZml4OlwibmR0LVwifSksYT1yLmF0dGFjaFNoYWRvdyh7bW9kZTpcIm9wZW5cIn0pOygwLHcuc3RhcnRUcmFuc2l0aW9uKShmdW5jdGlvbigpe28ucmVuZGVyKCgwLEEuanN4KShkYSx7Z2V0T3duZXJTdGFjazplLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOmR1LGlzUmVjb3ZlcmFibGVFcnJvcjp0LHJvdXRlclR5cGU6XCJhcHBcIixzaGFkb3dSb290OmF9KSl9KSxkYz0hMH19ZnVuY3Rpb24gZGYoZSx0LG4pe2lmKGRjKXRocm93IEVycm9yKFwiTmV4dCBEZXZUb29sczogQXBwIERldiBPdmVybGF5IGlzIGFscmVhZHkgbW91bnRlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzXCIpO2lmKCFkcyl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm5leHRqcy1wb3J0YWxcIik7ci5zdHlsZS5wb3NpdGlvbj1cImFic29sdXRlXCIsbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9ITAsbj0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciBhLGk9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShhPWkubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgbD1hLnZhbHVlO2lmKFwiY2hpbGRMaXN0XCI9PT1sLnR5cGUpe3ZhciBzPSEwLGM9ITEsdT12b2lkIDA7dHJ5e2Zvcih2YXIgZCxmPWwucmVtb3ZlZE5vZGVzW1N5bWJvbC5pdGVyYXRvcl0oKTshKHM9KGQ9Zi5uZXh0KCkpLmRvbmUpO3M9ITApZC52YWx1ZT09PXImJmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocil9Y2F0Y2goZSl7Yz0hMCx1PWV9ZmluYWxseXt0cnl7c3x8bnVsbD09Zi5yZXR1cm58fGYucmV0dXJuKCl9ZmluYWxseXtpZihjKXRocm93IHV9fX19fWNhdGNoKGUpe249ITAsbz1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWkucmV0dXJufHxpLnJldHVybigpfWZpbmFsbHl7aWYobil0aHJvdyBvfX19KS5vYnNlcnZlKGRvY3VtZW50LmJvZHkse2NoaWxkTGlzdDohMH0pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocik7dmFyIG89KDAsZWMuY3JlYXRlUm9vdCkocix7aWRlbnRpZmllclByZWZpeDpcIm5kdC1cIn0pLGE9ci5hdHRhY2hTaGFkb3coe21vZGU6XCJvcGVuXCJ9KTsoMCx3LnN0YXJ0VHJhbnNpdGlvbikoZnVuY3Rpb24oKXtvLnJlbmRlcigoMCxBLmpzeCkoZGEse2dldE93bmVyU3RhY2s6ZSxnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsczp0LGlzUmVjb3ZlcmFibGVFcnJvcjpuLHJvdXRlclR5cGU6XCJwYWdlc1wiLHNoYWRvd1Jvb3Q6YX0pKX0pLGRzPSEwfX19KSgpLGV4cG9ydHMuRGV2T3ZlcmxheUNvbnRleHQ9X193ZWJwYWNrX2V4cG9ydHNfXy5EZXZPdmVybGF5Q29udGV4dCxleHBvcnRzLmRpc3BhdGNoZXI9X193ZWJwYWNrX2V4cG9ydHNfXy5kaXNwYXRjaGVyLGV4cG9ydHMucmVuZGVyQXBwRGV2T3ZlcmxheT1fX3dlYnBhY2tfZXhwb3J0c19fLnJlbmRlckFwcERldk92ZXJsYXksZXhwb3J0cy5yZW5kZXJQYWdlc0Rldk92ZXJsYXk9X193ZWJwYWNrX2V4cG9ydHNfXy5yZW5kZXJQYWdlc0Rldk92ZXJsYXksZXhwb3J0cy51c2VEZXZPdmVybGF5Q29udGV4dD1fX3dlYnBhY2tfZXhwb3J0c19fLnVzZURldk92ZXJsYXlDb250ZXh0LF9fd2VicGFja19leHBvcnRzX18pLTE9PT1bXCJEZXZPdmVybGF5Q29udGV4dFwiLFwiZGlzcGF0Y2hlclwiLFwicmVuZGVyQXBwRGV2T3ZlcmxheVwiLFwicmVuZGVyUGFnZXNEZXZPdmVybGF5XCIsXCJ1c2VEZXZPdmVybGF5Q29udGV4dFwiXS5pbmRleE9mKF9fd2VicGFja19pX18pJiYoZXhwb3J0c1tfX3dlYnBhY2tfaV9fXT1fX3dlYnBhY2tfZXhwb3J0c19fW19fd2VicGFja19pX19dKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/compiled/safe-stable-stringify/index.js ***! \************************************************************************/ /***/ ((module) => { eval("(function(){\"use strict\";var e={879:function(e,t){const{hasOwnProperty:n}=Object.prototype;const r=configure();r.configure=configure;r.stringify=r;r.default=r;t.stringify=r;t.configure=configure;e.exports=r;const i=/[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]/;function strEscape(e){if(e.length<5e3&&!i.test(e)){return`\"${e}\"`}return JSON.stringify(e)}function sort(e,t){if(e.length>200||t){return e.sort(t)}for(let t=1;t<e.length;t++){const n=e[t];let r=t;while(r!==0&&e[r-1]>n){e[r]=e[r-1];r--}e[r]=n}return e}const f=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function isTypedArrayWithEntries(e){return f.call(e)!==undefined&&e.length!==0}function stringifyTypedArray(e,t,n){if(e.length<n){n=e.length}const r=t===\",\"?\"\":\" \";let i=`\"0\":${r}${e[0]}`;for(let f=1;f<n;f++){i+=`${t}\"${f}\":${r}${e[f]}`}return i}function getCircularValueOption(e){if(n.call(e,\"circularValue\")){const t=e.circularValue;if(typeof t===\"string\"){return`\"${t}\"`}if(t==null){return t}if(t===Error||t===TypeError){return{toString(){throw new TypeError(\"Converting circular structure to JSON\")}}}throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')}return'\"[Circular]\"'}function getDeterministicOption(e){let t;if(n.call(e,\"deterministic\")){t=e.deterministic;if(typeof t!==\"boolean\"&&typeof t!==\"function\"){throw new TypeError('The \"deterministic\" argument must be of type boolean or comparator function')}}return t===undefined?true:t}function getBooleanOption(e,t){let r;if(n.call(e,t)){r=e[t];if(typeof r!==\"boolean\"){throw new TypeError(`The \"${t}\" argument must be of type boolean`)}}return r===undefined?true:r}function getPositiveIntegerOption(e,t){let r;if(n.call(e,t)){r=e[t];if(typeof r!==\"number\"){throw new TypeError(`The \"${t}\" argument must be of type number`)}if(!Number.isInteger(r)){throw new TypeError(`The \"${t}\" argument must be an integer`)}if(r<1){throw new RangeError(`The \"${t}\" argument must be >= 1`)}}return r===undefined?Infinity:r}function getItemCount(e){if(e===1){return\"1 item\"}return`${e} items`}function getUniqueReplacerSet(e){const t=new Set;for(const n of e){if(typeof n===\"string\"||typeof n===\"number\"){t.add(String(n))}}return t}function getStrictOption(e){if(n.call(e,\"strict\")){const t=e.strict;if(typeof t!==\"boolean\"){throw new TypeError('The \"strict\" argument must be of type boolean')}if(t){return e=>{let t=`Object can not safely be stringified. Received type ${typeof e}`;if(typeof e!==\"function\")t+=` (${e.toString()})`;throw new Error(t)}}}}function configure(e){e={...e};const t=getStrictOption(e);if(t){if(e.bigint===undefined){e.bigint=false}if(!(\"circularValue\"in e)){e.circularValue=Error}}const n=getCircularValueOption(e);const r=getBooleanOption(e,\"bigint\");const i=getDeterministicOption(e);const f=typeof i===\"function\"?i:undefined;const u=getPositiveIntegerOption(e,\"maximumDepth\");const o=getPositiveIntegerOption(e,\"maximumBreadth\");function stringifyFnReplacer(e,s,l,c,a,g){let p=s[e];if(typeof p===\"object\"&&p!==null&&typeof p.toJSON===\"function\"){p=p.toJSON(e)}p=c.call(s,e,p);switch(typeof p){case\"string\":return strEscape(p);case\"object\":{if(p===null){return\"null\"}if(l.indexOf(p)!==-1){return n}let e=\"\";let t=\",\";const r=g;if(Array.isArray(p)){if(p.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(p);if(a!==\"\"){g+=a;e+=`\\n${g}`;t=`,\\n${g}`}const n=Math.min(p.length,o);let i=0;for(;i<n-1;i++){const n=stringifyFnReplacer(String(i),p,l,c,a,g);e+=n!==undefined?n:\"null\";e+=t}const f=stringifyFnReplacer(String(i),p,l,c,a,g);e+=f!==undefined?f:\"null\";if(p.length-1>o){const n=p.length-o-1;e+=`${t}\"... ${getItemCount(n)} not stringified\"`}if(a!==\"\"){e+=`\\n${r}`}l.pop();return`[${e}]`}let s=Object.keys(p);const y=s.length;if(y===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}let d=\"\";let h=\"\";if(a!==\"\"){g+=a;t=`,\\n${g}`;d=\" \"}const $=Math.min(y,o);if(i&&!isTypedArrayWithEntries(p)){s=sort(s,f)}l.push(p);for(let n=0;n<$;n++){const r=s[n];const i=stringifyFnReplacer(r,p,l,c,a,g);if(i!==undefined){e+=`${h}${strEscape(r)}:${d}${i}`;h=t}}if(y>o){const n=y-o;e+=`${h}\"...\":${d}\"${getItemCount(n)} not stringified\"`;h=t}if(a!==\"\"&&h.length>1){e=`\\n${g}${e}\\n${r}`}l.pop();return`{${e}}`}case\"number\":return isFinite(p)?String(p):t?t(p):\"null\";case\"boolean\":return p===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(p)}default:return t?t(p):undefined}}function stringifyArrayReplacer(e,i,f,s,l,c){if(typeof i===\"object\"&&i!==null&&typeof i.toJSON===\"function\"){i=i.toJSON(e)}switch(typeof i){case\"string\":return strEscape(i);case\"object\":{if(i===null){return\"null\"}if(f.indexOf(i)!==-1){return n}const e=c;let t=\"\";let r=\",\";if(Array.isArray(i)){if(i.length===0){return\"[]\"}if(u<f.length+1){return'\"[Array]\"'}f.push(i);if(l!==\"\"){c+=l;t+=`\\n${c}`;r=`,\\n${c}`}const n=Math.min(i.length,o);let a=0;for(;a<n-1;a++){const e=stringifyArrayReplacer(String(a),i[a],f,s,l,c);t+=e!==undefined?e:\"null\";t+=r}const g=stringifyArrayReplacer(String(a),i[a],f,s,l,c);t+=g!==undefined?g:\"null\";if(i.length-1>o){const e=i.length-o-1;t+=`${r}\"... ${getItemCount(e)} not stringified\"`}if(l!==\"\"){t+=`\\n${e}`}f.pop();return`[${t}]`}f.push(i);let a=\"\";if(l!==\"\"){c+=l;r=`,\\n${c}`;a=\" \"}let g=\"\";for(const e of s){const n=stringifyArrayReplacer(e,i[e],f,s,l,c);if(n!==undefined){t+=`${g}${strEscape(e)}:${a}${n}`;g=r}}if(l!==\"\"&&g.length>1){t=`\\n${c}${t}\\n${e}`}f.pop();return`{${t}}`}case\"number\":return isFinite(i)?String(i):t?t(i):\"null\";case\"boolean\":return i===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(i)}default:return t?t(i):undefined}}function stringifyIndent(e,s,l,c,a){switch(typeof s){case\"string\":return strEscape(s);case\"object\":{if(s===null){return\"null\"}if(typeof s.toJSON===\"function\"){s=s.toJSON(e);if(typeof s!==\"object\"){return stringifyIndent(e,s,l,c,a)}if(s===null){return\"null\"}}if(l.indexOf(s)!==-1){return n}const t=a;if(Array.isArray(s)){if(s.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(s);a+=c;let e=`\\n${a}`;const n=`,\\n${a}`;const r=Math.min(s.length,o);let i=0;for(;i<r-1;i++){const t=stringifyIndent(String(i),s[i],l,c,a);e+=t!==undefined?t:\"null\";e+=n}const f=stringifyIndent(String(i),s[i],l,c,a);e+=f!==undefined?f:\"null\";if(s.length-1>o){const t=s.length-o-1;e+=`${n}\"... ${getItemCount(t)} not stringified\"`}e+=`\\n${t}`;l.pop();return`[${e}]`}let r=Object.keys(s);const g=r.length;if(g===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}a+=c;const p=`,\\n${a}`;let y=\"\";let d=\"\";let h=Math.min(g,o);if(isTypedArrayWithEntries(s)){y+=stringifyTypedArray(s,p,o);r=r.slice(s.length);h-=s.length;d=p}if(i){r=sort(r,f)}l.push(s);for(let e=0;e<h;e++){const t=r[e];const n=stringifyIndent(t,s[t],l,c,a);if(n!==undefined){y+=`${d}${strEscape(t)}: ${n}`;d=p}}if(g>o){const e=g-o;y+=`${d}\"...\": \"${getItemCount(e)} not stringified\"`;d=p}if(d!==\"\"){y=`\\n${a}${y}\\n${t}`}l.pop();return`{${y}}`}case\"number\":return isFinite(s)?String(s):t?t(s):\"null\";case\"boolean\":return s===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(s)}default:return t?t(s):undefined}}function stringifySimple(e,s,l){switch(typeof s){case\"string\":return strEscape(s);case\"object\":{if(s===null){return\"null\"}if(typeof s.toJSON===\"function\"){s=s.toJSON(e);if(typeof s!==\"object\"){return stringifySimple(e,s,l)}if(s===null){return\"null\"}}if(l.indexOf(s)!==-1){return n}let t=\"\";const r=s.length!==undefined;if(r&&Array.isArray(s)){if(s.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(s);const e=Math.min(s.length,o);let n=0;for(;n<e-1;n++){const e=stringifySimple(String(n),s[n],l);t+=e!==undefined?e:\"null\";t+=\",\"}const r=stringifySimple(String(n),s[n],l);t+=r!==undefined?r:\"null\";if(s.length-1>o){const e=s.length-o-1;t+=`,\"... ${getItemCount(e)} not stringified\"`}l.pop();return`[${t}]`}let c=Object.keys(s);const a=c.length;if(a===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}let g=\"\";let p=Math.min(a,o);if(r&&isTypedArrayWithEntries(s)){t+=stringifyTypedArray(s,\",\",o);c=c.slice(s.length);p-=s.length;g=\",\"}if(i){c=sort(c,f)}l.push(s);for(let e=0;e<p;e++){const n=c[e];const r=stringifySimple(n,s[n],l);if(r!==undefined){t+=`${g}${strEscape(n)}:${r}`;g=\",\"}}if(a>o){const e=a-o;t+=`${g}\"...\":\"${getItemCount(e)} not stringified\"`}l.pop();return`{${t}}`}case\"number\":return isFinite(s)?String(s):t?t(s):\"null\";case\"boolean\":return s===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(s)}default:return t?t(s):undefined}}function stringify(e,t,n){if(arguments.length>1){let r=\"\";if(typeof n===\"number\"){r=\" \".repeat(Math.min(n,10))}else if(typeof n===\"string\"){r=n.slice(0,10)}if(t!=null){if(typeof t===\"function\"){return stringifyFnReplacer(\"\",{\"\":e},[],t,r,\"\")}if(Array.isArray(t)){return stringifyArrayReplacer(\"\",e,[],getUniqueReplacerSet(t),r,\"\")}}if(r.length!==0){return stringifyIndent(\"\",e,[],r,\"\")}}return stringifySimple(\"\",e,[])}return stringify}}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var f=true;try{e[n](i,i.exports,__nccwpck_require__);f=false}finally{if(f)delete t[n]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var n=__nccwpck_require__(879);module.exports=n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3NhZmUtc3RhYmxlLXN0cmluZ2lmeS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxZQUFZLGFBQWEsT0FBTyxrQkFBa0IsTUFBTSxpQkFBaUIsa0JBQWtCLG9CQUFvQixzQkFBc0IsY0FBYyxZQUFZLGNBQWMsc0JBQXNCLFlBQVksbURBQW1ELHNCQUFzQiw2QkFBNkIsVUFBVSxFQUFFLEdBQUcseUJBQXlCLG1CQUFtQixvQkFBb0IsaUJBQWlCLFlBQVksV0FBVyxLQUFLLGFBQWEsUUFBUSx1QkFBdUIsWUFBWSxJQUFJLE9BQU8sU0FBUyw0SEFBNEgsb0NBQW9DLDJDQUEyQyxvQ0FBb0MsZUFBZSxXQUFXLHVCQUF1QixhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxJQUFJLEtBQUssTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxtQ0FBbUMsOEJBQThCLHdCQUF3Qix3QkFBd0IsVUFBVSxFQUFFLEdBQUcsWUFBWSxTQUFTLDZCQUE2QixPQUFPLFdBQVcsK0RBQStELDBHQUEwRyxxQkFBcUIsbUNBQW1DLE1BQU0sOEJBQThCLGtCQUFrQixnREFBZ0Qsb0dBQW9HLDRCQUE0QiwrQkFBK0IsTUFBTSxnQkFBZ0IsT0FBTyx5QkFBeUIsNEJBQTRCLEVBQUUsc0NBQXNDLDRCQUE0Qix1Q0FBdUMsTUFBTSxnQkFBZ0IsT0FBTyx3QkFBd0IsNEJBQTRCLEVBQUUsb0NBQW9DLHlCQUF5Qiw0QkFBNEIsRUFBRSxnQ0FBZ0MsUUFBUSw2QkFBNkIsRUFBRSwyQkFBMkIsZ0NBQWdDLHlCQUF5QixVQUFVLGVBQWUsU0FBUyxHQUFHLE9BQU8saUNBQWlDLGdCQUFnQixrQkFBa0IsNkNBQTZDLGtCQUFrQixTQUFTLDRCQUE0Qix1QkFBdUIsaUJBQWlCLHlCQUF5QixxRUFBcUUsTUFBTSxXQUFXLDZEQUE2RCxTQUFTLEVBQUUsaUNBQWlDLGFBQWEsR0FBRyxzQkFB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ZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc2FmZS1zdGFibGUtc3RyaW5naWZ5L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3ZhciBlPXs4Nzk6ZnVuY3Rpb24oZSx0KXtjb25zdHtoYXNPd25Qcm9wZXJ0eTpufT1PYmplY3QucHJvdG90eXBlO2NvbnN0IHI9Y29uZmlndXJlKCk7ci5jb25maWd1cmU9Y29uZmlndXJlO3Iuc3RyaW5naWZ5PXI7ci5kZWZhdWx0PXI7dC5zdHJpbmdpZnk9cjt0LmNvbmZpZ3VyZT1jb25maWd1cmU7ZS5leHBvcnRzPXI7Y29uc3QgaT0vW1xcdTAwMDAtXFx1MDAxZlxcdTAwMjJcXHUwMDVjXFx1ZDgwMC1cXHVkZmZmXS87ZnVuY3Rpb24gc3RyRXNjYXBlKGUpe2lmKGUubGVuZ3RoPDVlMyYmIWkudGVzdChlKSl7cmV0dXJuYFwiJHtlfVwiYH1yZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9ZnVuY3Rpb24gc29ydChlLHQpe2lmKGUubGVuZ3RoPjIwMHx8dCl7cmV0dXJuIGUuc29ydCh0KX1mb3IobGV0IHQ9MTt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdO2xldCByPXQ7d2hpbGUociE9PTAmJmVbci0xXT5uKXtlW3JdPWVbci0xXTtyLS19ZVtyXT1ufXJldHVybiBlfWNvbnN0IGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZ2V0UHJvdG90eXBlT2YoT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBJbnQ4QXJyYXkpKSxTeW1ib2wudG9TdHJpbmdUYWcpLmdldDtmdW5jdGlvbiBpc1R5cGVkQXJyYXlXaXRoRW50cmllcyhlKXtyZXR1cm4gZi5jYWxsKGUpIT09dW5kZWZpbmVkJiZlLmxlbmd0aCE9PTB9ZnVuY3Rpb24gc3RyaW5naWZ5VHlwZWRBcnJheShlLHQsbil7aWYoZS5sZW5ndGg8bil7bj1lLmxlbmd0aH1jb25zdCByPXQ9PT1cIixcIj9cIlwiOlwiIFwiO2xldCBpPWBcIjBcIjoke3J9JHtlWzBdfWA7Zm9yKGxldCBmPTE7ZjxuO2YrKyl7aSs9YCR7dH1cIiR7Zn1cIjoke3J9JHtlW2ZdfWB9cmV0dXJuIGl9ZnVuY3Rpb24gZ2V0Q2lyY3VsYXJWYWx1ZU9wdGlvbihlKXtpZihuLmNhbGwoZSxcImNpcmN1bGFyVmFsdWVcIikpe2NvbnN0IHQ9ZS5jaXJjdWxhclZhbHVlO2lmKHR5cGVvZiB0PT09XCJzdHJpbmdcIil7cmV0dXJuYFwiJHt0fVwiYH1pZih0PT1udWxsKXtyZXR1cm4gdH1pZih0PT09RXJyb3J8fHQ9PT1UeXBlRXJyb3Ipe3JldHVybnt0b1N0cmluZygpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09OXCIpfX19dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwiY2lyY3VsYXJWYWx1ZVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgdGhlIHZhbHVlIG51bGwgb3IgdW5kZWZpbmVkJyl9cmV0dXJuJ1wiW0NpcmN1bGFyXVwiJ31mdW5jdGlvbiBnZXREZXRlcm1pbmlzdGljT3B0aW9uKGUpe2xldCB0O2lmKG4uY2FsbChlLFwiZGV0ZXJtaW5pc3RpY1wiKSl7dD1lLmRldGVybWluaXN0aWM7aWYodHlwZW9mIHQhPT1cImJvb2xlYW5cIiYmdHlwZW9mIHQhPT1cImZ1bmN0aW9uXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImRldGVybWluaXN0aWNcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbiBvciBjb21wYXJhdG9yIGZ1bmN0aW9uJyl9fXJldHVybiB0PT09dW5kZWZpbmVkP3RydWU6dH1mdW5jdGlvbiBnZXRCb29sZWFuT3B0aW9uKGUsdCl7bGV0IHI7aWYobi5jYWxsKGUsdCkpe3I9ZVt0XTtpZih0eXBlb2YgciE9PVwiYm9vbGVhblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBUaGUgXCIke3R9XCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW5gKX19cmV0dXJuIHI9PT11bmRlZmluZWQ/dHJ1ZTpyfWZ1bmN0aW9uIGdldFBvc2l0aXZlSW50ZWdlck9wdGlvbihlLHQpe2xldCByO2lmKG4uY2FsbChlLHQpKXtyPWVbdF07aWYodHlwZW9mIHIhPT1cIm51bWJlclwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBUaGUgXCIke3R9XCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlcmApfWlmKCFOdW1iZXIuaXNJbnRlZ2VyKHIpKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBUaGUgXCIke3R9XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBpbnRlZ2VyYCl9aWYocjwxKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgPj0gMWApfX1yZXR1cm4gcj09PXVuZGVmaW5lZD9JbmZpbml0eTpyfWZ1bmN0aW9uIGdldEl0ZW1Db3VudChlKXtpZihlPT09MSl7cmV0dXJuXCIxIGl0ZW1cIn1yZXR1cm5gJHtlfSBpdGVtc2B9ZnVuY3Rpb24gZ2V0VW5pcXVlUmVwbGFjZXJTZXQoZSl7Y29uc3QgdD1uZXcgU2V0O2Zvcihjb25zdCBuIG9mIGUpe2lmKHR5cGVvZiBuPT09XCJzdHJpbmdcInx8dHlwZW9mIG49PT1cIm51bWJlclwiKXt0LmFkZChTdHJpbmcobikpfX1yZXR1cm4gdH1mdW5jdGlvbiBnZXRTdHJpY3RPcHRpb24oZSl7aWYobi5jYWxsKGUsXCJzdHJpY3RcIikpe2NvbnN0IHQ9ZS5zdHJpY3Q7aWYodHlwZW9mIHQhPT1cImJvb2xlYW5cIil7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwic3RyaWN0XCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4nKX1pZih0KXtyZXR1cm4gZT0+e2xldCB0PWBPYmplY3QgY2FuIG5vdCBzYWZlbHkgYmUgc3RyaW5naWZpZWQuIFJlY2VpdmVkIHR5cGUgJHt0eXBlb2YgZX1gO2lmKHR5cGVvZiBlIT09XCJmdW5jdGlvblwiKXQrPWAgKCR7ZS50b1N0cmluZygpfSlgO3Rocm93IG5ldyBFcnJvcih0KX19fX1mdW5jdGlvbiBjb25maWd1cmUoZSl7ZT17Li4uZX07Y29uc3QgdD1nZXRTdHJpY3RPcHRpb24oZSk7aWYodCl7aWYoZS5iaWdpbnQ9PT11bmRlZmluZWQpe2UuYmlnaW50PWZhbHNlfWlmKCEoXCJjaXJjdWxhclZhbHVlXCJpbiBlKSl7ZS5jaXJjdWxhclZhbHVlPUVycm9yfX1jb25zdCBuPWdldENpcmN1bGFyVmFsdWVPcHRpb24oZSk7Y29uc3Qgcj1nZXRCb29sZWFuT3B0aW9uKGUsXCJiaWdpbnRcIik7Y29uc3QgaT1nZXREZXRlcm1pbmlzdGljT3B0aW9uKGUpO2NvbnN0IGY9dHlwZW9mIGk9PT1cImZ1bmN0aW9uXCI/aTp1bmRlZmluZWQ7Y29uc3QgdT1nZXRQb3NpdGl2ZUludGVnZXJPcHRpb24oZSxcIm1heGltdW1EZXB0aFwiKTtjb25zdCBvPWdldFBvc2l0aXZlSW50ZWdlck9wdGlvbihlLFwibWF4aW11bUJyZWFkdGhcIik7ZnVuY3Rpb24gc3RyaW5naWZ5Rm5SZXBsYWNlcihlLHMsbCxjLGEsZyl7bGV0IHA9c1tlXTtpZih0eXBlb2YgcD09PVwib2JqZWN0XCImJnAhPT1udWxsJiZ0eXBlb2YgcC50b0pTT049PT1cImZ1bmN0aW9uXCIpe3A9cC50b0pTT04oZSl9cD1jLmNhbGwocyxlLHApO3N3aXRjaCh0eXBlb2YgcCl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIHN0ckVzY2FwZShwKTtjYXNlXCJvYmplY3RcIjp7aWYocD09PW51bGwpe3JldHVyblwibnVsbFwifWlmKGwuaW5kZXhPZihwKSE9PS0xKXtyZXR1cm4gbn1sZXQgZT1cIlwiO2xldCB0PVwiLFwiO2NvbnN0IHI9ZztpZihBcnJheS5pc0FycmF5KHApKXtpZihwLmxlbmd0aD09PTApe3JldHVyblwiW11cIn1pZih1PGwubGVuZ3RoKzEpe3JldHVybidcIltBcnJheV1cIid9bC5wdXNoKHApO2lmKGEhPT1cIlwiKXtnKz1hO2UrPWBcXG4ke2d9YDt0PWAsXFxuJHtnfWB9Y29uc3Qgbj1NYXRoLm1pbihwLmxlbmd0aCxvKTtsZXQgaT0wO2Zvcig7aTxuLTE7aSsrKXtjb25zdCBuPXN0cmluZ2lmeUZuUmVwbGFjZXIoU3RyaW5nKGkpLHAsbCxjLGEsZyk7ZSs9biE9PXVuZGVmaW5lZD9uOlwibnVsbFwiO2UrPXR9Y29uc3QgZj1zdHJpbmdpZnlGblJlcGxhY2VyKFN0cmluZyhpKSxwLGwsYyxhLGcpO2UrPWYhPT11bmRlZmluZWQ/ZjpcIm51bGxcIjtpZihwLmxlbmd0aC0xPm8pe2NvbnN0IG49cC5sZW5ndGgtby0xO2UrPWAke3R9XCIuLi4gJHtnZXRJdGVtQ291bnQobil9IG5vdCBzdHJpbmdpZmllZFwiYH1pZihhIT09XCJcIil7ZSs9YFxcbiR7cn1gfWwucG9wKCk7cmV0dXJuYFske2V9XWB9bGV0IHM9T2JqZWN0LmtleXMocCk7Y29uc3QgeT1zLmxlbmd0aDtpZih5PT09MCl7cmV0dXJuXCJ7fVwifWlmKHU8bC5sZW5ndGgrMSl7cmV0dXJuJ1wiW09iamVjdF1cIid9bGV0IGQ9XCJcIjtsZXQgaD1cIlwiO2lmKGEhPT1cIlwiKXtnKz1hO3Q9YCxcXG4ke2d9YDtkPVwiIFwifWNvbnN0ICQ9TWF0aC5taW4oeSxvKTtpZihpJiYhaXNUeXBlZEFycmF5V2l0aEVudHJpZXMocCkpe3M9c29ydChzLGYpfWwucHVzaChwKTtmb3IobGV0IG49MDtuPCQ7bisrKXtjb25zdCByPXNbbl07Y29uc3QgaT1zdHJpbmdpZnlGblJlcGxhY2VyKHIscCxsLGMsYSxnKTtpZihpIT09dW5kZWZpbmVkKXtlKz1gJHtofSR7c3RyRXNjYXBlKHIpfToke2R9JHtpfWA7aD10fX1pZih5Pm8pe2NvbnN0IG49eS1vO2UrPWAke2h9XCIuLi5cIjoke2R9XCIke2dldEl0ZW1Db3VudChuKX0gbm90IHN0cmluZ2lmaWVkXCJgO2g9dH1pZihhIT09XCJcIiYmaC5sZW5ndGg+MSl7ZT1gXFxuJHtnfSR7ZX1cXG4ke3J9YH1sLnBvcCgpO3JldHVybmB7JHtlfX1gfWNhc2VcIm51bWJlclwiOnJldHVybiBpc0Zpbml0ZShwKT9TdHJpbmcocCk6dD90KHApOlwibnVsbFwiO2Nhc2VcImJvb2xlYW5cIjpyZXR1cm4gcD09PXRydWU/XCJ0cnVlXCI6XCJmYWxzZVwiO2Nhc2VcInVuZGVmaW5lZFwiOnJldHVybiB1bmRlZmluZWQ7Y2FzZVwiYmlnaW50XCI6aWYocil7cmV0dXJuIFN0cmluZyhwKX1kZWZhdWx0OnJldHVybiB0P3QocCk6dW5kZWZpbmVkfX1mdW5jdGlvbiBzdHJpbmdpZnlBcnJheVJlcGxhY2VyKGUsaSxmLHMsbCxjKXtpZih0eXBlb2YgaT09PVwib2JqZWN0XCImJmkhPT1udWxsJiZ0eXBlb2YgaS50b0pTT049PT1cImZ1bmN0aW9uXCIpe2k9aS50b0pTT04oZSl9c3dpdGNoKHR5cGVvZiBpKXtjYXNlXCJzdHJpbmdcIjpyZXR1cm4gc3RyRXNjYXBlKGkpO2Nhc2VcIm9iamVjdFwiOntpZihpPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9aWYoZi5pbmRleE9mKGkpIT09LTEpe3JldHVybiBufWNvbnN0IGU9YztsZXQgdD1cIlwiO2xldCByPVwiLFwiO2lmKEFycmF5LmlzQXJyYXkoaSkpe2lmKGkubGVuZ3RoPT09MCl7cmV0dXJuXCJbXVwifWlmKHU8Zi5sZW5ndGgrMSl7cmV0dXJuJ1wiW0FycmF5XVwiJ31mLnB1c2goaSk7aWYobCE9PVwiXCIpe2MrPWw7dCs9YFxcbiR7Y31gO3I9YCxcXG4ke2N9YH1jb25zdCBuPU1hdGgubWluKGkubGVuZ3RoLG8pO2xldCBhPTA7Zm9yKDthPG4tMTthKyspe2NvbnN0IGU9c3RyaW5naWZ5QXJyYXlSZXBsYWNlcihTdHJpbmcoYSksaVthXSxmLHMsbCxjKTt0Kz1lIT09dW5kZWZpbmVkP2U6XCJudWxsXCI7dCs9cn1jb25zdCBnPXN0cmluZ2lmeUFycmF5UmVwbGFjZXIoU3RyaW5nKGEpLGlbYV0sZixzLGwsYyk7dCs9ZyE9PXVuZGVmaW5lZD9nOlwibnVsbFwiO2lmKGkubGVuZ3RoLTE+byl7Y29uc3QgZT1pLmxlbmd0aC1vLTE7dCs9YCR7cn1cIi4uLiAke2dldEl0ZW1Db3VudChlKX0gbm90IHN0cmluZ2lmaWVkXCJgfWlmKGwhPT1cIlwiKXt0Kz1gXFxuJHtlfWB9Zi5wb3AoKTtyZXR1cm5gWyR7dH1dYH1mLnB1c2goaSk7bGV0IGE9XCJcIjtpZihsIT09XCJcIil7Yys9bDtyPWAsXFxuJHtjfWA7YT1cIiBcIn1sZXQgZz1cIlwiO2Zvcihjb25zdCBlIG9mIHMpe2NvbnN0IG49c3RyaW5naWZ5QXJyYXlSZXBsYWNlcihlLGlbZV0sZixzLGwsYyk7aWYobiE9PXVuZGVmaW5lZCl7dCs9YCR7Z30ke3N0ckVzY2FwZShlKX06JHthfSR7bn1gO2c9cn19aWYobCE9PVwiXCImJmcubGVuZ3RoPjEpe3Q9YFxcbiR7Y30ke3R9XFxuJHtlfWB9Zi5wb3AoKTtyZXR1cm5geyR7dH19YH1jYXNlXCJudW1iZXJcIjpyZXR1cm4gaXNGaW5pdGUoaSk/U3RyaW5nKGkpOnQ/dChpKTpcIm51bGxcIjtjYXNlXCJib29sZWFuXCI6cmV0dXJuIGk9PT10cnVlP1widHJ1ZVwiOlwiZmFsc2VcIjtjYXNlXCJ1bmRlZmluZWRcIjpyZXR1cm4gdW5kZWZpbmVkO2Nhc2VcImJpZ2ludFwiOmlmKHIpe3JldHVybiBTdHJpbmcoaSl9ZGVmYXVsdDpyZXR1cm4gdD90KGkpOnVuZGVmaW5lZH19ZnVuY3Rpb24gc3RyaW5naWZ5SW5kZW50KGUscyxsLGMsYSl7c3dpdGNoKHR5cGVvZiBzKXtjYXNlXCJzdHJpbmdcIjpyZXR1cm4gc3RyRXNjYXBlKHMpO2Nhc2VcIm9iamVjdFwiOntpZihzPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9aWYodHlwZW9mIHMudG9KU09OPT09XCJmdW5jdGlvblwiKXtzPXMudG9KU09OKGUpO2lmKHR5cGVvZiBzIT09XCJvYmplY3RcIil7cmV0dXJuIHN0cmluZ2lmeUluZGVudChlLHMsbCxjLGEpfWlmKHM9PT1udWxsKXtyZXR1cm5cIm51bGxcIn19aWYobC5pbmRleE9mKHMpIT09LTEpe3JldHVybiBufWNvbnN0IHQ9YTtpZihBcnJheS5pc0FycmF5KHMpKXtpZihzLmxlbmd0aD09PTApe3JldHVyblwiW11cIn1pZih1PGwubGVuZ3RoKzEpe3JldHVybidcIltBcnJheV1cIid9bC5wdXNoKHMpO2ErPWM7bGV0IGU9YFxcbiR7YX1gO2NvbnN0IG49YCxcXG4ke2F9YDtjb25zdCByPU1hdGgubWluKHMubGVuZ3RoLG8pO2xldCBpPTA7Zm9yKDtpPHItMTtpKyspe2NvbnN0IHQ9c3RyaW5naWZ5SW5kZW50KFN0cmluZyhpKSxzW2ldLGwsYyxhKTtlKz10IT09dW5kZWZpbmVkP3Q6XCJudWxsXCI7ZSs9bn1jb25zdCBmPXN0cmluZ2lmeUluZGVudChTdHJpbmcoaSksc1tpXSxsLGMsYSk7ZSs9ZiE9PXVuZGVmaW5lZD9mOlwibnVsbFwiO2lmKHMubGVuZ3RoLTE+byl7Y29uc3QgdD1zLmxlbmd0aC1vLTE7ZSs9YCR7bn1cIi4uLiAke2dldEl0ZW1Db3VudCh0KX0gbm90IHN0cmluZ2lmaWVkXCJgfWUrPWBcXG4ke3R9YDtsLnBvcCgpO3JldHVybmBbJHtlfV1gfWxldCByPU9iamVjdC5rZXlzKHMpO2NvbnN0IGc9ci5sZW5ndGg7aWYoZz09PTApe3JldHVyblwie31cIn1pZih1PGwubGVuZ3RoKzEpe3JldHVybidcIltPYmplY3RdXCInfWErPWM7Y29uc3QgcD1gLFxcbiR7YX1gO2xldCB5PVwiXCI7bGV0IGQ9XCJcIjtsZXQgaD1NYXRoLm1pbihnLG8pO2lmKGlzVHlwZWRBcnJheVdpdGhFbnRyaWVzKHMpKXt5Kz1zdHJpbmdpZnlUeXBlZEFycmF5KHMscCxvKTtyPXIuc2xpY2Uocy5sZW5ndGgpO2gtPXMubGVuZ3RoO2Q9cH1pZihpKXtyPXNvcnQocixmKX1sLnB1c2gocyk7Zm9yKGxldCBlPTA7ZTxoO2UrKyl7Y29uc3QgdD1yW2VdO2NvbnN0IG49c3RyaW5naWZ5SW5kZW50KHQsc1t0XSxsLGMsYSk7aWYobiE9PXVuZGVmaW5lZCl7eSs9YCR7ZH0ke3N0ckVzY2FwZSh0KX06ICR7bn1gO2Q9cH19aWYoZz5vKXtjb25zdCBlPWctbzt5Kz1gJHtkfVwiLi4uXCI6IFwiJHtnZXRJdGVtQ291bnQoZSl9IG5vdCBzdHJpbmdpZmllZFwiYDtkPXB9aWYoZCE9PVwiXCIpe3k9YFxcbiR7YX0ke3l9XFxuJHt0fWB9bC5wb3AoKTtyZXR1cm5geyR7eX19YH1jYXNlXCJudW1iZXJcIjpyZXR1cm4gaXNGaW5pdGUocyk/U3RyaW5nKHMpOnQ/dChzKTpcIm51bGxcIjtjYXNlXCJib29sZWFuXCI6cmV0dXJuIHM9PT10cnVlP1widHJ1ZVwiOlwiZmFsc2VcIjtjYXNlXCJ1bmRlZmluZWRcIjpyZXR1cm4gdW5kZWZpbmVkO2Nhc2VcImJpZ2ludFwiOmlmKHIpe3JldHVybiBTdHJpbmcocyl9ZGVmYXVsdDpyZXR1cm4gdD90KHMpOnVuZGVmaW5lZH19ZnVuY3Rpb24gc3RyaW5naWZ5U2ltcGxlKGUscyxsKXtzd2l0Y2godHlwZW9mIHMpe2Nhc2VcInN0cmluZ1wiOnJldHVybiBzdHJFc2NhcGUocyk7Y2FzZVwib2JqZWN0XCI6e2lmKHM9PT1udWxsKXtyZXR1cm5cIm51bGxcIn1pZih0eXBlb2Ygcy50b0pTT049PT1cImZ1bmN0aW9uXCIpe3M9cy50b0pTT04oZSk7aWYodHlwZW9mIHMhPT1cIm9iamVjdFwiKXtyZXR1cm4gc3RyaW5naWZ5U2ltcGxlKGUscyxsKX1pZihzPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9fWlmKGwuaW5kZXhPZihzKSE9PS0xKXtyZXR1cm4gbn1sZXQgdD1cIlwiO2NvbnN0IHI9cy5sZW5ndGghPT11bmRlZmluZWQ7aWYociYmQXJyYXkuaXNBcnJheShzKSl7aWYocy5sZW5ndGg9PT0wKXtyZXR1cm5cIltdXCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbQXJyYXldXCInfWwucHVzaChzKTtjb25zdCBlPU1hdGgubWluKHMubGVuZ3RoLG8pO2xldCBuPTA7Zm9yKDtuPGUtMTtuKyspe2NvbnN0IGU9c3RyaW5naWZ5U2ltcGxlKFN0cmluZyhuKSxzW25dLGwpO3QrPWUhPT11bmRlZmluZWQ/ZTpcIm51bGxcIjt0Kz1cIixcIn1jb25zdCByPXN0cmluZ2lmeVNpbXBsZShTdHJpbmcobiksc1tuXSxsKTt0Kz1yIT09dW5kZWZpbmVkP3I6XCJudWxsXCI7aWYocy5sZW5ndGgtMT5vKXtjb25zdCBlPXMubGVuZ3RoLW8tMTt0Kz1gLFwiLi4uICR7Z2V0SXRlbUNvdW50KGUpfSBub3Qgc3RyaW5naWZpZWRcImB9bC5wb3AoKTtyZXR1cm5gWyR7dH1dYH1sZXQgYz1PYmplY3Qua2V5cyhzKTtjb25zdCBhPWMubGVuZ3RoO2lmKGE9PT0wKXtyZXR1cm5cInt9XCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbT2JqZWN0XVwiJ31sZXQgZz1cIlwiO2xldCBwPU1hdGgubWluKGEsbyk7aWYociYmaXNUeXBlZEFycmF5V2l0aEVudHJpZXMocykpe3QrPXN0cmluZ2lmeVR5cGVkQXJyYXkocyxcIixcIixvKTtjPWMuc2xpY2Uocy5sZW5ndGgpO3AtPXMubGVuZ3RoO2c9XCIsXCJ9aWYoaSl7Yz1zb3J0KGMsZil9bC5wdXNoKHMpO2ZvcihsZXQgZT0wO2U8cDtlKyspe2NvbnN0IG49Y1tlXTtjb25zdCByPXN0cmluZ2lmeVNpbXBsZShuLHNbbl0sbCk7aWYociE9PXVuZGVmaW5lZCl7dCs9YCR7Z30ke3N0ckVzY2FwZShuKX06JHtyfWA7Zz1cIixcIn19aWYoYT5vKXtjb25zdCBlPWEtbzt0Kz1gJHtnfVwiLi4uXCI6XCIke2dldEl0ZW1Db3VudChlKX0gbm90IHN0cmluZ2lmaWVkXCJgfWwucG9wKCk7cmV0dXJuYHske3R9fWB9Y2FzZVwibnVtYmVyXCI6cmV0dXJuIGlzRmluaXRlKHMpP1N0cmluZyhzKTp0P3Qocyk6XCJudWxsXCI7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBzPT09dHJ1ZT9cInRydWVcIjpcImZhbHNlXCI7Y2FzZVwidW5kZWZpbmVkXCI6cmV0dXJuIHVuZGVmaW5lZDtjYXNlXCJiaWdpbnRcIjppZihyKXtyZXR1cm4gU3RyaW5nKHMpfWRlZmF1bHQ6cmV0dXJuIHQ/dChzKTp1bmRlZmluZWR9fWZ1bmN0aW9uIHN0cmluZ2lmeShlLHQsbil7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtsZXQgcj1cIlwiO2lmKHR5cGVvZiBuPT09XCJudW1iZXJcIil7cj1cIiBcIi5yZXBlYXQoTWF0aC5taW4obiwxMCkpfWVsc2UgaWYodHlwZW9mIG49PT1cInN0cmluZ1wiKXtyPW4uc2xpY2UoMCwxMCl9aWYodCE9bnVsbCl7aWYodHlwZW9mIHQ9PT1cImZ1bmN0aW9uXCIpe3JldHVybiBzdHJpbmdpZnlGblJlcGxhY2VyKFwiXCIse1wiXCI6ZX0sW10sdCxyLFwiXCIpfWlmKEFycmF5LmlzQXJyYXkodCkpe3JldHVybiBzdHJpbmdpZnlBcnJheVJlcGxhY2VyKFwiXCIsZSxbXSxnZXRVbmlxdWVSZXBsYWNlclNldCh0KSxyLFwiXCIpfX1pZihyLmxlbmd0aCE9PTApe3JldHVybiBzdHJpbmdpZnlJbmRlbnQoXCJcIixlLFtdLHIsXCJcIil9fXJldHVybiBzdHJpbmdpZnlTaW1wbGUoXCJcIixlLFtdKX1yZXR1cm4gc3RyaW5naWZ5fX19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obil7dmFyIHI9dFtuXTtpZihyIT09dW5kZWZpbmVkKXtyZXR1cm4gci5leHBvcnRzfXZhciBpPXRbbl09e2V4cG9ydHM6e319O3ZhciBmPXRydWU7dHJ5e2Vbbl0oaSxpLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7Zj1mYWxzZX1maW5hbGx5e2lmKGYpZGVsZXRlIHRbbl19cmV0dXJuIGkuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIG49X19uY2N3cGNrX3JlcXVpcmVfXyg4NzkpO21vZHVsZS5leHBvcnRzPW59KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js": /*!*************************************************************!*\ !*** ./node_modules/next/dist/compiled/strip-ansi/index.js ***! \*************************************************************/ /***/ ((module) => { "use strict"; eval("\n(()=>{\n \"use strict\";\n var e = {\n 511: (e)=>{\n e.exports = ({ onlyFirst: e = false } = {})=>{\n const r = [\n \"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\n \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"\n ].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n },\n 532: (e, r, _)=>{\n const t = _(511);\n e.exports = (e)=>typeof e === \"string\" ? e.replace(t(), \"\") : e;\n }\n };\n var r = {};\n function __nccwpck_require__(_) {\n var t = r[_];\n if (t !== undefined) {\n return t.exports;\n }\n var a = r[_] = {\n exports: {}\n };\n var n = true;\n try {\n e[_](a, a.exports, __nccwpck_require__);\n n = false;\n } finally{\n if (n) delete r[_];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var _ = __nccwpck_require__(532);\n module.exports = _;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2kvaW5kZXguanMiLCJtYXBwaW5ncyI6IjtBQUFDO0lBQUs7SUFBYSxJQUFJQSxJQUFFO1FBQUMsS0FBSUEsQ0FBQUE7WUFBSUEsRUFBRUMsT0FBTyxHQUFDLENBQUMsRUFBQ0MsV0FBVUYsSUFBRSxLQUFLLEVBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUksTUFBTUcsSUFBRTtvQkFBQztvQkFBK0g7aUJBQTJELENBQUNDLElBQUksQ0FBQztnQkFBSyxPQUFPLElBQUlDLE9BQU9GLEdBQUVILElBQUVNLFlBQVU7WUFBSTtRQUFDO1FBQUUsS0FBSSxDQUFDTixHQUFFRyxHQUFFSTtZQUFLLE1BQU1DLElBQUVELEVBQUU7WUFBS1AsRUFBRUMsT0FBTyxHQUFDRCxDQUFBQSxJQUFHLE9BQU9BLE1BQUksV0FBU0EsRUFBRVMsT0FBTyxDQUFDRCxLQUFJLE1BQUlSO1FBQUM7SUFBQztJQUFFLElBQUlHLElBQUUsQ0FBQztJQUFFLFNBQVNPLG9CQUFvQkgsQ0FBQztRQUFFLElBQUlDLElBQUVMLENBQUMsQ0FBQ0ksRUFBRTtRQUFDLElBQUdDLE1BQUlGLFdBQVU7WUFBQyxPQUFPRSxFQUFFUCxPQUFPO1FBQUE7UUFBQyxJQUFJVSxJQUFFUixDQUFDLENBQUNJLEVBQUUsR0FBQztZQUFDTixTQUFRLENBQUM7UUFBQztRQUFFLElBQUlXLElBQUU7UUFBSyxJQUFHO1lBQUNaLENBQUMsQ0FBQ08sRUFBRSxDQUFDSSxHQUFFQSxFQUFFVixPQUFPLEVBQUNTO1lBQXFCRSxJQUFFO1FBQUssU0FBUTtZQUFDLElBQUdBLEdBQUUsT0FBT1QsQ0FBQyxDQUFDSSxFQUFFO1FBQUE7UUFBQyxPQUFPSSxFQUFFVixPQUFPO0lBQUE7SUFBQyxJQUFHLE9BQU9TLHdCQUFzQixhQUFZQSxvQkFBb0JHLEVBQUUsR0FBQ0MsWUFBVTtJQUFJLElBQUlQLElBQUVHLG9CQUFvQjtJQUFLSyxPQUFPZCxPQUFPLEdBQUNNO0FBQUMiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs1MTE6ZT0+e2UuZXhwb3J0cz0oe29ubHlGaXJzdDplPWZhbHNlfT17fSk9Pntjb25zdCByPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnRxcnk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKHIsZT91bmRlZmluZWQ6XCJnXCIpfX0sNTMyOihlLHIsXyk9Pntjb25zdCB0PV8oNTExKTtlLmV4cG9ydHM9ZT0+dHlwZW9mIGU9PT1cInN0cmluZ1wiP2UucmVwbGFjZSh0KCksXCJcIik6ZX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oXyl7dmFyIHQ9cltfXTtpZih0IT09dW5kZWZpbmVkKXtyZXR1cm4gdC5leHBvcnRzfXZhciBhPXJbX109e2V4cG9ydHM6e319O3ZhciBuPXRydWU7dHJ5e2VbX10oYSxhLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7bj1mYWxzZX1maW5hbGx5e2lmKG4pZGVsZXRlIHJbX119cmV0dXJuIGEuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg1MzIpO21vZHVsZS5leHBvcnRzPV99KSgpOyJdLCJuYW1lcyI6WyJlIiwiZXhwb3J0cyIsIm9ubHlGaXJzdCIsInIiLCJqb2luIiwiUmVnRXhwIiwidW5kZWZpbmVkIiwiXyIsInQiLCJyZXBsYWNlIiwiX19uY2N3cGNrX3JlcXVpcmVfXyIsImEiLCJuIiwiYWIiLCJfX2Rpcm5hbWUiLCJtb2R1bGUiXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/lib/framework/boundary-components.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/lib/framework/boundary-components.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n MetadataBoundary: function() {\n return MetadataBoundary;\n },\n OutletBoundary: function() {\n return OutletBoundary;\n },\n RootLayoutBoundary: function() {\n return RootLayoutBoundary;\n },\n ViewportBoundary: function() {\n return ViewportBoundary;\n }\n});\nconst _boundaryconstants = __webpack_require__(/*! ./boundary-constants */ \"(ssr)/./node_modules/next/dist/lib/framework/boundary-constants.js\");\n// We use a namespace object to allow us to recover the name of the function\n// at runtime even when production bundling/minification is used.\nconst NameSpace = {\n [_boundaryconstants.METADATA_BOUNDARY_NAME]: function({ children }) {\n return children;\n },\n [_boundaryconstants.VIEWPORT_BOUNDARY_NAME]: function({ children }) {\n return children;\n },\n [_boundaryconstants.OUTLET_BOUNDARY_NAME]: function({ children }) {\n return children;\n },\n [_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME]: function({ children }) {\n return children;\n }\n};\nconst MetadataBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_boundaryconstants.METADATA_BOUNDARY_NAME.slice(0)];\nconst ViewportBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_boundaryconstants.VIEWPORT_BOUNDARY_NAME.slice(0)];\nconst OutletBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_boundaryconstants.OUTLET_BOUNDARY_NAME.slice(0)];\nconst RootLayoutBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]; //# sourceMappingURL=boundary-components.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29tcG9uZW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUErQmFBLGdCQUFnQjtlQUFoQkE7O0lBVUFDLGNBQWM7ZUFBZEE7O0lBS0FDLGtCQUFrQjtlQUFsQkE7O0lBVkFDLGdCQUFnQjtlQUFoQkE7OzsrQ0E1Qk47QUFFUCw0RUFBNEU7QUFDNUUsaUVBQWlFO0FBQ2pFLE1BQU1DLFlBQVk7SUFDaEIsQ0FBQ0MsbUJBQUFBLHNCQUFzQixDQUFDLEVBQUUsU0FBVSxFQUFFQyxRQUFRLEVBQTJCO1FBQ3ZFLE9BQU9BO0lBQ1Q7SUFDQSxDQUFDQyxtQkFBQUEsc0JBQXNCLENBQUMsRUFBRSxTQUFVLEVBQUVELFFBQVEsRUFBMkI7UUFDdkUsT0FBT0E7SUFDVDtJQUNBLENBQUNFLG1CQUFBQSxvQkFBb0IsQ0FBQyxFQUFFLFNBQVUsRUFBRUYsUUFBUSxFQUEyQjtRQUNyRSxPQUFPQTtJQUNUO0lBQ0EsQ0FBQ0csbUJBQUFBLHlCQUF5QixDQUFDLEVBQUUsU0FBVSxFQUNyQ0gsUUFBUSxFQUdUO1FBQ0MsT0FBT0E7SUFDVDtBQUNGO0FBRU8sTUFBTU4sbUJBQ1gsNERBQzREO0FBQzVESSxTQUFTLENBQUNDLG1CQUFBQSxzQkFBc0IsQ0FBQ0ssS0FBSyxDQUFDLEdBQW9DO0FBRXRFLE1BQU1QLG1CQUNYLDREQUM0RDtBQUM1REMsU0FBUyxDQUFDRyxtQkFBQUEsc0JBQXNCLENBQUNHLEtBQUssQ0FBQyxHQUFvQztBQUV0RSxNQUFNVCxpQkFDWCw0REFDNEQ7QUFDNURHLFNBQVMsQ0FBQ0ksbUJBQUFBLG9CQUFvQixDQUFDRSxLQUFLLENBQUMsR0FBa0M7QUFFbEUsTUFBTVIscUJBQ1gsNERBQzREO0FBQzVERSxTQUFTLENBQ1BLLG1CQUFBQSx5QkFBeUIsQ0FBQ0MsS0FBSyxDQUFDLEdBQ2pDIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb21wb25lbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIE1FVEFEQVRBX0JPVU5EQVJZX05BTUUsXG4gIFZJRVdQT1JUX0JPVU5EQVJZX05BTUUsXG4gIE9VVExFVF9CT1VOREFSWV9OQU1FLFxuICBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FLFxufSBmcm9tICcuL2JvdW5kYXJ5LWNvbnN0YW50cydcblxuLy8gV2UgdXNlIGEgbmFtZXNwYWNlIG9iamVjdCB0byBhbGxvdyB1cyB0byByZWNvdmVyIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvblxuLy8gYXQgcnVudGltZSBldmVuIHdoZW4gcHJvZHVjdGlvbiBidW5kbGluZy9taW5pZmljYXRpb24gaXMgdXNlZC5cbmNvbnN0IE5hbWVTcGFjZSA9IHtcbiAgW01FVEFEQVRBX0JPVU5EQVJZX05BTUVdOiBmdW5jdGlvbiAoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfSkge1xuICAgIHJldHVybiBjaGlsZHJlblxuICB9LFxuICBbVklFV1BPUlRfQk9VTkRBUllfTkFNRV06IGZ1bmN0aW9uICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH0sXG4gIFtPVVRMRVRfQk9VTkRBUllfTkFNRV06IGZ1bmN0aW9uICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH0sXG4gIFtST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FXTogZnVuY3Rpb24gKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgfSkge1xuICAgIHJldHVybiBjaGlsZHJlblxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgTWV0YWRhdGFCb3VuZGFyeSA9XG4gIC8vIFdlIHVzZSBzbGljZSgwKSB0byB0cmljayB0aGUgYnVuZGxlciBpbnRvIG5vdCBpbmxpbmluZy9taW5pZnlpbmcgdGhlIGZ1bmN0aW9uXG4gIC8vIHNvIGl0IHJldGFpbnMgdGhlIG5hbWUgaW5mZXJyZWQgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdFxuICBOYW1lU3BhY2VbTUVUQURBVEFfQk9VTkRBUllfTkFNRS5zbGljZSgwKSBhcyB0eXBlb2YgTUVUQURBVEFfQk9VTkRBUllfTkFNRV1cblxuZXhwb3J0IGNvbnN0IFZpZXdwb3J0Qm91bmRhcnkgPVxuICAvLyBXZSB1c2Ugc2xpY2UoMCkgdG8gdHJpY2sgdGhlIGJ1bmRsZXIgaW50byBub3QgaW5saW5pbmcvbWluaWZ5aW5nIHRoZSBmdW5jdGlvblxuICAvLyBzbyBpdCByZXRhaW5zIHRoZSBuYW1lIGluZmVycmVkIGZyb20gdGhlIG5hbWVzcGFjZSBvYmplY3RcbiAgTmFtZVNwYWNlW1ZJRVdQT1JUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCkgYXMgdHlwZW9mIFZJRVdQT1JUX0JPVU5EQVJZX05BTUVdXG5cbmV4cG9ydCBjb25zdCBPdXRsZXRCb3VuZGFyeSA9XG4gIC8vIFdlIHVzZSBzbGljZSgwKSB0byB0cmljayB0aGUgYnVuZGxlciBpbnRvIG5vdCBpbmxpbmluZy9taW5pZnlpbmcgdGhlIGZ1bmN0aW9uXG4gIC8vIHNvIGl0IHJldGFpbnMgdGhlIG5hbWUgaW5mZXJyZWQgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdFxuICBOYW1lU3BhY2VbT1VUTEVUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCkgYXMgdHlwZW9mIE9VVExFVF9CT1VOREFSWV9OQU1FXVxuXG5leHBvcnQgY29uc3QgUm9vdExheW91dEJvdW5kYXJ5ID1cbiAgLy8gV2UgdXNlIHNsaWNlKDApIHRvIHRyaWNrIHRoZSBidW5kbGVyIGludG8gbm90IGlubGluaW5nL21pbmlmeWluZyB0aGUgZnVuY3Rpb25cbiAgLy8gc28gaXQgcmV0YWlucyB0aGUgbmFtZSBpbmZlcnJlZCBmcm9tIHRoZSBuYW1lc3BhY2Ugb2JqZWN0XG4gIE5hbWVTcGFjZVtcbiAgICBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FLnNsaWNlKDApIGFzIHR5cGVvZiBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FXG4gIF1cbiJdLCJuYW1lcyI6WyJNZXRhZGF0YUJvdW5kYXJ5IiwiT3V0bGV0Qm91bmRhcnkiLCJSb290TGF5b3V0Qm91bmRhcnkiLCJWaWV3cG9ydEJvdW5kYXJ5IiwiTmFtZVNwYWNlIiwiTUVUQURBVEFfQk9VTkRBUllfTkFNRSIsImNoaWxkcmVuIiwiVklFV1BPUlRfQk9VTkRBUllfTkFNRSIsIk9VVExFVF9CT1VOREFSWV9OQU1FIiwiUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRSIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/framework/boundary-components.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/lib/framework/boundary-constants.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/lib/framework/boundary-constants.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_BOUNDARY_NAME;\n },\n ROOT_LAYOUT_BOUNDARY_NAME: function() {\n return ROOT_LAYOUT_BOUNDARY_NAME;\n },\n VIEWPORT_BOUNDARY_NAME: function() {\n return VIEWPORT_BOUNDARY_NAME;\n }\n});\nconst METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';\nconst VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';\nconst OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';\nconst ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__';\n\n//# sourceMappingURL=boundary-constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTUVUQURBVEFfQk9VTkRBUllfTkFNRTogbnVsbCxcbiAgICBPVVRMRVRfQk9VTkRBUllfTkFNRTogbnVsbCxcbiAgICBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FOiBudWxsLFxuICAgIFZJRVdQT1JUX0JPVU5EQVJZX05BTUU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTUVUQURBVEFfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNRVRBREFUQV9CT1VOREFSWV9OQU1FO1xuICAgIH0sXG4gICAgT1VUTEVUX0JPVU5EQVJZX05BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gT1VUTEVUX0JPVU5EQVJZX05BTUU7XG4gICAgfSxcbiAgICBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUU7XG4gICAgfSxcbiAgICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFZJRVdQT1JUX0JPVU5EQVJZX05BTUU7XG4gICAgfVxufSk7XG5jb25zdCBNRVRBREFUQV9CT1VOREFSWV9OQU1FID0gJ19fbmV4dF9tZXRhZGF0YV9ib3VuZGFyeV9fJztcbmNvbnN0IFZJRVdQT1JUX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X3ZpZXdwb3J0X2JvdW5kYXJ5X18nO1xuY29uc3QgT1VUTEVUX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X291dGxldF9ib3VuZGFyeV9fJztcbmNvbnN0IFJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X3Jvb3RfbGF5b3V0X2JvdW5kYXJ5X18nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib3VuZGFyeS1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/framework/boundary-constants.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/lib/is-error.js": /*!************************************************!*\ !*** ./node_modules/next/dist/lib/is-error.js ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZGVmYXVsdDogbnVsbCxcbiAgICBnZXRQcm9wZXJFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICAvKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIE5leHRFcnJvci5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gcHJpbnQgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCBwcm9wZXJ0aWVzIGxpa2UgYGNvZGVgICYgYGRpZ2VzdGAuXG4gKi8gZGVmYXVsdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Vycm9yO1xuICAgIH0sXG4gICAgZ2V0UHJvcGVyRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UHJvcGVyRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfaXNwbGFpbm9iamVjdCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2lzLXBsYWluLW9iamVjdFwiKTtcbmZ1bmN0aW9uIGlzRXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnICYmIGVyciAhPT0gbnVsbCAmJiAnbmFtZScgaW4gZXJyICYmICdtZXNzYWdlJyBpbiBlcnI7XG59XG5mdW5jdGlvbiBzYWZlU3RyaW5naWZ5KG9iaikge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgV2Vha1NldCgpO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIChfa2V5LCB2YWx1ZSk9PntcbiAgICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gb2JqZWN0IGFuZCBhbHJlYWR5IHNlZW4sIHJlcGxhY2Ugd2l0aCBcIltDaXJjdWxhcl1cIlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWVuLmFkZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0UHJvcGVyRXJyb3IoZXJyKSB7XG4gICAgaWYgKGlzRXJyb3IoZXJyKSkge1xuICAgICAgICByZXR1cm4gZXJyO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gcHJvdmlkZSBiZXR0ZXIgZXJyb3IgZm9yIGNhc2Ugd2hlcmUgYHRocm93IHVuZGVmaW5lZGBcbiAgICAgICAgLy8gaXMgY2FsbGVkIGluIGRldmVsb3BtZW50XG4gICAgICAgIGlmICh0eXBlb2YgZXJyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0FuIHVuZGVmaW5lZCBlcnJvciB3YXMgdGhyb3duLCAnICsgJ3NlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3RocmV3LXVuZGVmaW5lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFOThcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBIG51bGwgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTMzNlwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoKDAsIF9pc3BsYWlub2JqZWN0LmlzUGxhaW5PYmplY3QpKGVycikgPyBzYWZlU3RyaW5naWZ5KGVycikgOiBlcnIgKyAnJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/is-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/icon-mark.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"IconMark\", ({\n enumerable: true,\n get: function() {\n return IconMark;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst IconMark = ()=>{\n if (false) {}\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"\\xabnxt-icon\\xbb\"\n });\n}; //# sourceMappingURL=icon-mark.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FRYUE7OztlQUFBQTs7OztBQUFOLE1BQU1BLFdBQVc7SUFDdEIsSUFBSSxLQUE2QixFQUFFLEVBRWxDO0lBQ0QscUJBQU8scUJBQUNFLFFBQUFBO1FBQUtDLE1BQUs7O0FBQ3BCIiwic291cmNlcyI6WyIvaG9tZS9zcmMvbGliL21ldGFkYXRhL2dlbmVyYXRlL2ljb24tbWFyay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbi8vIFRoaXMgaXMgYSBjbGllbnQgY29tcG9uZW50IHRoYXQgb25seSByZW5kZXJzIGR1cmluZyBTU1IsXG4vLyBidXQgd2lsbCBiZSByZXBsYWNlZCBkdXJpbmcgc3RyZWFtaW5nIHdpdGggYW4gaWNvbiBpbnNlcnRpb24gc2NyaXB0IHRhZy5cbi8vIFdlIGRvbid0IHdhbnQgaXQgdG8gYmUgcHJlc2VudGVkIGFueXdoZXJlIHNvIGl0J3Mgb25seSB2aXNpYmxlIGR1cmluZyBzdHJlYW1pbmcsXG4vLyByaWdodCBhZnRlciB0aGUgaWNvbiBtZXRhIHRhZ3Mgc28gdGhhdCBicm93c2VyIGNhbiBwaWNrIGl0IHVwIGFzIHNvb24gYXMgaXQncyByZW5kZXJlZC5cbi8vIE5vdGU6IHdlIGRvbid0IGp1c3QgZW1pdCB0aGUgc2NyaXB0IGhlcmUgYmVjYXVzZSB3ZSBvbmx5IG5lZWQgdGhlIHNjcmlwdCBpZiBpdCdzIG5vdCBpbiB0aGUgaGVhZCxcbi8vIGFuZCB3ZSBuZWVkIGl0IHRvIGJlIGhvaXN0YWJsZSBhbG9uZ3NpZGUgdGhlIG90aGVyIG1ldGFkYXRhIGJ1dCBzeW5jIHNjcmlwdHMgYXJlIG5vdCBob2lzdGFibGUuXG5leHBvcnQgY29uc3QgSWNvbk1hcmsgPSAoKSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIDxtZXRhIG5hbWU9XCLCq254dC1pY29uwrtcIiAvPlxufVxuIl0sIm5hbWVzIjpbIkljb25NYXJrIiwid2luZG93IiwibWV0YSIsIm5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/lib/scheduler.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/lib/scheduler.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBhdExlYXN0T25lVGFzazogbnVsbCxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogbnVsbCxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IG51bGwsXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXRMZWFzdE9uZVRhc2s7XG4gICAgfSxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZUltbWVkaWF0ZTtcbiAgICB9LFxuICAgIHNjaGVkdWxlT25OZXh0VGljazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZU9uTmV4dFRpY2s7XG4gICAgfSxcbiAgICB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaztcbiAgICB9XG59KTtcbmNvbnN0IHNjaGVkdWxlT25OZXh0VGljayA9IChjYik9PntcbiAgICAvLyBXZSB1c2UgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigpIGhlcmUgc28gdGhhdCB0aGUgb3BlcmF0aW9uIGlzIHNjaGVkdWxlZCBhdFxuICAgIC8vIHRoZSBlbmQgb2YgdGhlIHByb21pc2Ugam9iIHF1ZXVlLCB3ZSB0aGVuIGFkZCBpdCB0byB0aGUgbmV4dCBwcm9jZXNzIHRpY2tcbiAgICAvLyB0byBlbnN1cmUgaXQncyBldmFsdWF0ZWQgYWZ0ZXJ3YXJkcy5cbiAgICAvL1xuICAgIC8vIFRoaXMgd2FzIGluc3BpcmVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGF0YUxvYWRlciBpbnRlcmZhY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsL2RhdGFsb2FkZXIvYmxvYi9kMzM2YmQxNTI4MjY2NGUwYmU0YjRhNjU3Y2I3OTZmMDliYWZiYzZiL3NyYy9pbmRleC5qcyNMMjEzLUwyNTVcbiAgICAvL1xuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soY2IpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuY29uc3Qgc2NoZWR1bGVJbW1lZGlhdGUgPSAoY2IpPT57XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgIHNldFRpbWVvdXQoY2IsIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEltbWVkaWF0ZShjYik7XG4gICAgfVxufTtcbmZ1bmN0aW9uIGF0TGVhc3RPbmVUYXNrKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnNjaGVkdWxlSW1tZWRpYXRlKHJlc29sdmUpKTtcbn1cbmZ1bmN0aW9uIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRUaW1lb3V0KHIsIDApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRJbW1lZGlhdGUocikpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2NoZWR1bGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/scheduler.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/shared/console-error.js ***! \**********************************************************************/ /***/ ((module, exports) => { "use strict"; eval("// To distinguish from React error.digest, we use a different symbol here to determine if the error is from console.error or unhandled promise rejection.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createConsoleError: function() {\n return createConsoleError;\n },\n isConsoleError: function() {\n return isConsoleError;\n }\n});\nconst digestSym = Symbol.for('next.console.error.digest');\nfunction createConsoleError(message, environmentName) {\n const error = typeof message === 'string' ? Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n }) : message;\n error[digestSym] = 'NEXT_CONSOLE_ERROR';\n if (environmentName && !error.environmentName) {\n error.environmentName = environmentName;\n }\n return error;\n}\nconst isConsoleError = (error)=>{\n return error && error[digestSym] === 'NEXT_CONSOLE_ERROR';\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=console-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2NvbnNvbGUtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy9zaGFyZWQvY29uc29sZS1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBkaXN0aW5ndWlzaCBmcm9tIFJlYWN0IGVycm9yLmRpZ2VzdCwgd2UgdXNlIGEgZGlmZmVyZW50IHN5bWJvbCBoZXJlIHRvIGRldGVybWluZSBpZiB0aGUgZXJyb3IgaXMgZnJvbSBjb25zb2xlLmVycm9yIG9yIHVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbi5cblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlQ29uc29sZUVycm9yOiBudWxsLFxuICAgIGlzQ29uc29sZUVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNyZWF0ZUNvbnNvbGVFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVDb25zb2xlRXJyb3I7XG4gICAgfSxcbiAgICBpc0NvbnNvbGVFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0NvbnNvbGVFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IGRpZ2VzdFN5bSA9IFN5bWJvbC5mb3IoJ25leHQuY29uc29sZS5lcnJvci5kaWdlc3QnKTtcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGVFcnJvcihtZXNzYWdlLCBlbnZpcm9ubWVudE5hbWUpIHtcbiAgICBjb25zdCBlcnJvciA9IHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IobWVzc2FnZSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSA6IG1lc3NhZ2U7XG4gICAgZXJyb3JbZGlnZXN0U3ltXSA9ICdORVhUX0NPTlNPTEVfRVJST1InO1xuICAgIGlmIChlbnZpcm9ubWVudE5hbWUgJiYgIWVycm9yLmVudmlyb25tZW50TmFtZSkge1xuICAgICAgICBlcnJvci5lbnZpcm9ubWVudE5hbWUgPSBlbnZpcm9ubWVudE5hbWU7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcjtcbn1cbmNvbnN0IGlzQ29uc29sZUVycm9yID0gKGVycm9yKT0+e1xuICAgIHJldHVybiBlcnJvciAmJiBlcnJvcltkaWdlc3RTeW1dID09PSAnTkVYVF9DT05TT0xFX0VSUk9SJztcbn07XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnNvbGUtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js ***! \****************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n UNDEFINED_MARKER: function() {\n return UNDEFINED_MARKER;\n },\n patchConsoleMethod: function() {\n return patchConsoleMethod;\n }\n});\nconst UNDEFINED_MARKER = '__next_tagged_undefined';\nfunction patchConsoleMethod(methodName, wrapper) {\n const descriptor = Object.getOwnPropertyDescriptor(console, methodName);\n if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') {\n const originalMethod = descriptor.value;\n const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name');\n const wrapperMethod = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n wrapper(methodName, ...args);\n originalMethod.apply(this, args);\n };\n if (originalName) {\n Object.defineProperty(wrapperMethod, 'name', originalName);\n }\n Object.defineProperty(console, methodName, {\n value: wrapperMethod\n });\n return ()=>{\n Object.defineProperty(console, methodName, {\n value: originalMethod,\n writable: descriptor.writable,\n configurable: descriptor.configurable\n });\n };\n }\n return ()=>{};\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=forward-logs-shared.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2ZvcndhcmQtbG9ncy1zaGFyZWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0UsYUFBYTtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy9zaGFyZWQvZm9yd2FyZC1sb2dzLXNoYXJlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIFVOREVGSU5FRF9NQVJLRVI6IG51bGwsXG4gICAgcGF0Y2hDb25zb2xlTWV0aG9kOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFVOREVGSU5FRF9NQVJLRVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5ERUZJTkVEX01BUktFUjtcbiAgICB9LFxuICAgIHBhdGNoQ29uc29sZU1ldGhvZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwYXRjaENvbnNvbGVNZXRob2Q7XG4gICAgfVxufSk7XG5jb25zdCBVTkRFRklORURfTUFSS0VSID0gJ19fbmV4dF90YWdnZWRfdW5kZWZpbmVkJztcbmZ1bmN0aW9uIHBhdGNoQ29uc29sZU1ldGhvZChtZXRob2ROYW1lLCB3cmFwcGVyKSB7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uc29sZSwgbWV0aG9kTmFtZSk7XG4gICAgaWYgKGRlc2NyaXB0b3IgJiYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlIHx8IGRlc2NyaXB0b3Iud3JpdGFibGUpICYmIHR5cGVvZiBkZXNjcmlwdG9yLnZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxOYW1lID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvcmlnaW5hbE1ldGhvZCwgJ25hbWUnKTtcbiAgICAgICAgY29uc3Qgd3JhcHBlck1ldGhvZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5Kyspe1xuICAgICAgICAgICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3cmFwcGVyKG1ldGhvZE5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvcmlnaW5hbE5hbWUpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVyTWV0aG9kLCAnbmFtZScsIG9yaWdpbmFsTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnNvbGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgICAgICAgIHZhbHVlOiB3cmFwcGVyTWV0aG9kXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25zb2xlLCBtZXRob2ROYW1lLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG9yaWdpbmFsTWV0aG9kLFxuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiBkZXNjcmlwdG9yLndyaXRhYmxlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZGVzY3JpcHRvci5jb25maWd1cmFibGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gKCk9Pnt9O1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3J3YXJkLWxvZ3Mtc2hhcmVkLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js": /*!**********************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js ***! \**********************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AppDevOverlayErrorBoundary\", ({\n enumerable: true,\n get: function() {\n return AppDevOverlayErrorBoundary;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../../../client/dev/runtime-error-handler */ \"(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\");\nconst _errorboundary = __webpack_require__(/*! ../../../client/components/error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _globalerror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../client/components/builtin/global-error */ \"(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js\"));\nconst _segmentexplorernode = __webpack_require__(/*! ./segment-explorer-node */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\nfunction ErroredHtml(param) {\n let { globalError: [GlobalError, globalErrorStyles], error } = param;\n if (!error) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"body\", {})\n ]\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_errorboundary.ErrorBoundary, {\n errorComponent: _globalerror.default,\n children: [\n globalErrorStyles,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(GlobalError, {\n error: error\n })\n ]\n });\n}\nclass AppDevOverlayErrorBoundary extends _react.PureComponent {\n static getDerivedStateFromError(error) {\n _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError = true;\n return {\n reactError: error\n };\n }\n componentDidCatch(err) {\n if ( true && err.message === _segmentexplorernode.SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE) {\n return;\n }\n _nextdevtools.dispatcher.openErrorOverlay();\n }\n render() {\n const { children, globalError } = this.props;\n const { reactError } = this.state;\n const fallback = /*#__PURE__*/ (0, _jsxruntime.jsx)(ErroredHtml, {\n globalError: globalError,\n error: reactError\n });\n return reactError !== null ? fallback : children;\n }\n constructor(...args){\n super(...args), this.state = {\n reactError: null\n };\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=app-dev-overlay-error-boundary.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9hcHAtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4REFBNkQ7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixpQ0FBaUMsbUJBQU8sQ0FBQyxrSEFBeUM7QUFDbEYsb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5QixzQkFBc0IsbUJBQU8sQ0FBQyx3R0FBa0M7QUFDaEUsNkJBQTZCLG1CQUFPLENBQUMscUhBQTJDO0FBQ2hGLHVCQUF1QixtQkFBTyxDQUFDLHFIQUEyQztBQUMxRSw4REFBOEQsbUJBQU8sQ0FBQyxpSUFBaUQ7QUFDdkgsNkJBQTZCLG1CQUFPLENBQUMsb0hBQXlCO0FBQzlEO0FBQ0EsVUFBVSx1REFBdUQ7QUFDakU7QUFDQTtBQUNBO0FBQ0EsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RDtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQXNDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isd0JBQXdCO0FBQ3hDLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2FwcC1kZXYtb3ZlcmxheS1lcnJvci1ib3VuZGFyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkFwcERldk92ZXJsYXlFcnJvckJvdW5kYXJ5XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBEZXZPdmVybGF5RXJyb3JCb3VuZGFyeTtcbiAgICB9XG59KTtcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHRcIik7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbmNvbnN0IF9uZXh0ZGV2dG9vbHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHNcIik7XG5jb25zdCBfcnVudGltZWVycm9yaGFuZGxlciA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvZGV2L3J1bnRpbWUtZXJyb3ItaGFuZGxlclwiKTtcbmNvbnN0IF9lcnJvcmJvdW5kYXJ5ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCIpO1xuY29uc3QgX2dsb2JhbGVycm9yID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvYnVpbHRpbi9nbG9iYWwtZXJyb3JcIikpO1xuY29uc3QgX3NlZ21lbnRleHBsb3Jlcm5vZGUgPSByZXF1aXJlKFwiLi9zZWdtZW50LWV4cGxvcmVyLW5vZGVcIik7XG5mdW5jdGlvbiBFcnJvcmVkSHRtbChwYXJhbSkge1xuICAgIGxldCB7IGdsb2JhbEVycm9yOiBbR2xvYmFsRXJyb3IsIGdsb2JhbEVycm9yU3R5bGVzXSwgZXJyb3IgfSA9IHBhcmFtO1xuICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwiaHRtbFwiLCB7XG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJoZWFkXCIsIHt9KSxcbiAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiYm9keVwiLCB7fSlcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShfZXJyb3Jib3VuZGFyeS5FcnJvckJvdW5kYXJ5LCB7XG4gICAgICAgIGVycm9yQ29tcG9uZW50OiBfZ2xvYmFsZXJyb3IuZGVmYXVsdCxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIGdsb2JhbEVycm9yU3R5bGVzLFxuICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShHbG9iYWxFcnJvciwge1xuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgIH0pO1xufVxuY2xhc3MgQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnkgZXh0ZW5kcyBfcmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcikge1xuICAgICAgICBfcnVudGltZWVycm9yaGFuZGxlci5SdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvciA9IHRydWU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZWFjdEVycm9yOiBlcnJvclxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb21wb25lbnREaWRDYXRjaChlcnIpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIGVyci5tZXNzYWdlID09PSBfc2VnbWVudGV4cGxvcmVybm9kZS5TRUdNRU5UX0VYUExPUkVSX1NJTVVMQVRFRF9FUlJPUl9NRVNTQUdFKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgX25leHRkZXZ0b29scy5kaXNwYXRjaGVyLm9wZW5FcnJvck92ZXJsYXkoKTtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNoaWxkcmVuLCBnbG9iYWxFcnJvciB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgeyByZWFjdEVycm9yIH0gPSB0aGlzLnN0YXRlO1xuICAgICAgICBjb25zdCBmYWxsYmFjayA9IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoRXJyb3JlZEh0bWwsIHtcbiAgICAgICAgICAgIGdsb2JhbEVycm9yOiBnbG9iYWxFcnJvcixcbiAgICAgICAgICAgIGVycm9yOiByZWFjdEVycm9yXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVhY3RFcnJvciAhPT0gbnVsbCA/IGZhbGxiYWNrIDogY2hpbGRyZW47XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3Mpe1xuICAgICAgICBzdXBlciguLi5hcmdzKSwgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHJlYWN0RXJyb3I6IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1kZXYtb3ZlcmxheS1lcnJvci1ib3VuZGFyeS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js": /*!*********************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js ***! \*********************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReplaySsrOnlyErrors\", ({\n enumerable: true,\n get: function() {\n return ReplaySsrOnlyErrors;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _useerrorhandler = __webpack_require__(/*! ./use-error-handler */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../../../client/components/is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _constants = __webpack_require__(/*! ../../../../shared/lib/errors/constants */ \"(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nfunction readSsrError() {\n if (typeof document === 'undefined') {\n return null;\n }\n const ssrErrorTemplateTag = document.querySelector('template[data-next-error-message]');\n if (ssrErrorTemplateTag) {\n const message = ssrErrorTemplateTag.getAttribute('data-next-error-message');\n const stack = ssrErrorTemplateTag.getAttribute('data-next-error-stack');\n const digest = ssrErrorTemplateTag.getAttribute('data-next-error-digest');\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n if (digest) {\n ;\n error.digest = digest;\n }\n // Skip Next.js SSR'd internal errors that which will be handled by the error boundaries.\n if ((0, _isnextroutererror.isNextRouterError)(error)) {\n return null;\n }\n error.stack = stack || '';\n return error;\n }\n return null;\n}\nfunction ReplaySsrOnlyErrors(param) {\n let { onBlockingError } = param;\n if (true) {\n // Need to read during render. The attributes will be gone after commit.\n const ssrError = readSsrError();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, _react.useEffect)(()=>{\n if (ssrError !== null) {\n // TODO(veil): Include original Owner Stack (NDX-905)\n // TODO(veil): Mark as recoverable error\n // TODO(veil): console.error\n (0, _useerrorhandler.handleClientError)(ssrError);\n // If it's missing root tags, we can't recover, make it blocking.\n if (ssrError.digest === _constants.MISSING_ROOT_TAGS_ERROR) {\n onBlockingError();\n }\n }\n }, [\n ssrError,\n onBlockingError\n ]);\n }\n return null;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=replay-ssr-only-errors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvcmVwbGF5LXNzci1vbmx5LWVycm9ycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHVEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5Qix5QkFBeUIsbUJBQU8sQ0FBQyxtSEFBcUI7QUFDdEQsMkJBQTJCLG1CQUFPLENBQUMsb0lBQW9EO0FBQ3ZGLG1CQUFtQixtQkFBTyxDQUFDLDhHQUF5QztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxrQkFBa0I7QUFDNUIsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvcmVwbGF5LXNzci1vbmx5LWVycm9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlcGxheVNzck9ubHlFcnJvcnNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlcGxheVNzck9ubHlFcnJvcnM7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfdXNlZXJyb3JoYW5kbGVyID0gcmVxdWlyZShcIi4vdXNlLWVycm9yLWhhbmRsZXJcIik7XG5jb25zdCBfaXNuZXh0cm91dGVyZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3JcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIHJlYWRTc3JFcnJvcigpIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3Qgc3NyRXJyb3JUZW1wbGF0ZVRhZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RlbXBsYXRlW2RhdGEtbmV4dC1lcnJvci1tZXNzYWdlXScpO1xuICAgIGlmIChzc3JFcnJvclRlbXBsYXRlVGFnKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBzc3JFcnJvclRlbXBsYXRlVGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uZXh0LWVycm9yLW1lc3NhZ2UnKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBzc3JFcnJvclRlbXBsYXRlVGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uZXh0LWVycm9yLXN0YWNrJyk7XG4gICAgICAgIGNvbnN0IGRpZ2VzdCA9IHNzckVycm9yVGVtcGxhdGVUYWcuZ2V0QXR0cmlidXRlKCdkYXRhLW5leHQtZXJyb3ItZGlnZXN0Jyk7XG4gICAgICAgIGNvbnN0IGVycm9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihtZXNzYWdlKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRpZ2VzdCkge1xuICAgICAgICAgICAgO1xuICAgICAgICAgICAgZXJyb3IuZGlnZXN0ID0gZGlnZXN0O1xuICAgICAgICB9XG4gICAgICAgIC8vIFNraXAgTmV4dC5qcyBTU1InZCBpbnRlcm5hbCBlcnJvcnMgdGhhdCB3aGljaCB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIGVycm9yIGJvdW5kYXJpZXMuXG4gICAgICAgIGlmICgoMCwgX2lzbmV4dHJvdXRlcmVycm9yLmlzTmV4dFJvdXRlckVycm9yKShlcnJvcikpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yLnN0YWNrID0gc3RhY2sgfHwgJyc7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBSZXBsYXlTc3JPbmx5RXJyb3JzKHBhcmFtKSB7XG4gICAgbGV0IHsgb25CbG9ja2luZ0Vycm9yIH0gPSBwYXJhbTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAvLyBOZWVkIHRvIHJlYWQgZHVyaW5nIHJlbmRlci4gVGhlIGF0dHJpYnV0ZXMgd2lsbCBiZSBnb25lIGFmdGVyIGNvbW1pdC5cbiAgICAgICAgY29uc3Qgc3NyRXJyb3IgPSByZWFkU3NyRXJyb3IoKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgICgwLCBfcmVhY3QudXNlRWZmZWN0KSgoKT0+e1xuICAgICAgICAgICAgaWYgKHNzckVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETyh2ZWlsKTogSW5jbHVkZSBvcmlnaW5hbCBPd25lciBTdGFjayAoTkRYLTkwNSlcbiAgICAgICAgICAgICAgICAvLyBUT0RPKHZlaWwpOiBNYXJrIGFzIHJlY292ZXJhYmxlIGVycm9yXG4gICAgICAgICAgICAgICAgLy8gVE9ETyh2ZWlsKTogY29uc29sZS5lcnJvclxuICAgICAgICAgICAgICAgICgwLCBfdXNlZXJyb3JoYW5kbGVyLmhhbmRsZUNsaWVudEVycm9yKShzc3JFcnJvcik7XG4gICAgICAgICAgICAgICAgLy8gSWYgaXQncyBtaXNzaW5nIHJvb3QgdGFncywgd2UgY2FuJ3QgcmVjb3ZlciwgbWFrZSBpdCBibG9ja2luZy5cbiAgICAgICAgICAgICAgICBpZiAoc3NyRXJyb3IuZGlnZXN0ID09PSBfY29uc3RhbnRzLk1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uQmxvY2tpbmdFcnJvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgW1xuICAgICAgICAgICAgc3NyRXJyb3IsXG4gICAgICAgICAgICBvbkJsb2NraW5nRXJyb3JcbiAgICAgICAgXSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXBsYXktc3NyLW9ubHktZXJyb3JzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js": /*!*************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js ***! \*************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n coerceError: function() {\n return coerceError;\n },\n decorateDevError: function() {\n return decorateDevError;\n },\n getOwnerStack: function() {\n return getOwnerStack;\n },\n setOwnerStack: function() {\n return setOwnerStack;\n },\n setOwnerStackIfAvailable: function() {\n return setOwnerStackIfAvailable;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nconst ownerStacks = new WeakMap();\nfunction getOwnerStack(error) {\n return ownerStacks.get(error);\n}\nfunction setOwnerStack(error, stack) {\n ownerStacks.set(error, stack);\n}\nfunction coerceError(value) {\n return (0, _iserror.default)(value) ? value : Object.defineProperty(new Error('' + value), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\nfunction setOwnerStackIfAvailable(error) {\n // React 18 and prod does not have `captureOwnerStack`\n if ('captureOwnerStack' in _react.default) {\n setOwnerStack(error, _react.default.captureOwnerStack());\n }\n}\nfunction decorateDevError(thrownValue) {\n const error = coerceError(thrownValue);\n setOwnerStackIfAvailable(error);\n return error;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=stitched-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvc3RpdGNoZWQtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUNBQWlDLG1CQUFPLENBQUMsa0hBQXlDO0FBQ2xGLHdEQUF3RCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3ZFLDBEQUEwRCxtQkFBTyxDQUFDLGdGQUEwQjtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy9zdGl0Y2hlZC1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNvZXJjZUVycm9yOiBudWxsLFxuICAgIGRlY29yYXRlRGV2RXJyb3I6IG51bGwsXG4gICAgZ2V0T3duZXJTdGFjazogbnVsbCxcbiAgICBzZXRPd25lclN0YWNrOiBudWxsLFxuICAgIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjb2VyY2VFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb2VyY2VFcnJvcjtcbiAgICB9LFxuICAgIGRlY29yYXRlRGV2RXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGVjb3JhdGVEZXZFcnJvcjtcbiAgICB9LFxuICAgIGdldE93bmVyU3RhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0T3duZXJTdGFjaztcbiAgICB9LFxuICAgIHNldE93bmVyU3RhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2V0T3duZXJTdGFjaztcbiAgICB9LFxuICAgIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRPd25lclN0YWNrSWZBdmFpbGFibGU7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX2lzZXJyb3IgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9saWIvaXMtZXJyb3JcIikpO1xuY29uc3Qgb3duZXJTdGFja3MgPSBuZXcgV2Vha01hcCgpO1xuZnVuY3Rpb24gZ2V0T3duZXJTdGFjayhlcnJvcikge1xuICAgIHJldHVybiBvd25lclN0YWNrcy5nZXQoZXJyb3IpO1xufVxuZnVuY3Rpb24gc2V0T3duZXJTdGFjayhlcnJvciwgc3RhY2spIHtcbiAgICBvd25lclN0YWNrcy5zZXQoZXJyb3IsIHN0YWNrKTtcbn1cbmZ1bmN0aW9uIGNvZXJjZUVycm9yKHZhbHVlKSB7XG4gICAgcmV0dXJuICgwLCBfaXNlcnJvci5kZWZhdWx0KSh2YWx1ZSkgPyB2YWx1ZSA6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJycgKyB2YWx1ZSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZShlcnJvcikge1xuICAgIC8vIFJlYWN0IDE4IGFuZCBwcm9kIGRvZXMgbm90IGhhdmUgYGNhcHR1cmVPd25lclN0YWNrYFxuICAgIGlmICgnY2FwdHVyZU93bmVyU3RhY2snIGluIF9yZWFjdC5kZWZhdWx0KSB7XG4gICAgICAgIHNldE93bmVyU3RhY2soZXJyb3IsIF9yZWFjdC5kZWZhdWx0LmNhcHR1cmVPd25lclN0YWNrKCkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRlY29yYXRlRGV2RXJyb3IodGhyb3duVmFsdWUpIHtcbiAgICBjb25zdCBlcnJvciA9IGNvZXJjZUVycm9yKHRocm93blZhbHVlKTtcbiAgICBzZXRPd25lclN0YWNrSWZBdmFpbGFibGUoZXJyb3IpO1xuICAgIHJldHVybiBlcnJvcjtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RpdGNoZWQtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js": /*!****************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js ***! \****************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n handleClientError: function() {\n return handleClientError;\n },\n handleConsoleError: function() {\n return handleConsoleError;\n },\n handleGlobalErrors: function() {\n return handleGlobalErrors;\n },\n useErrorHandler: function() {\n return useErrorHandler;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../../../client/components/is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _console = __webpack_require__(/*! ../../../../client/lib/console */ \"(ssr)/./node_modules/next/dist/client/lib/console.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nconst _consoleerror = __webpack_require__(/*! ../../../shared/console-error */ \"(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js\");\nconst _stitchederror = __webpack_require__(/*! ./stitched-error */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\nconst _forwardlogs = __webpack_require__(/*! ../forward-logs */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\");\nconst queueMicroTask = globalThis.queueMicrotask || ((cb)=>Promise.resolve().then(cb));\nconst errorQueue = [];\nconst errorHandlers = [];\nconst rejectionQueue = [];\nconst rejectionHandlers = [];\nfunction handleConsoleError(originError, consoleErrorArgs) {\n let error;\n const { environmentName } = (0, _console.parseConsoleArgs)(consoleErrorArgs);\n if ((0, _iserror.default)(originError)) {\n error = (0, _consoleerror.createConsoleError)(originError, environmentName);\n } else {\n error = (0, _consoleerror.createConsoleError)((0, _console.formatConsoleArgs)(consoleErrorArgs), environmentName);\n }\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n errorQueue.push(error);\n for (const handler of errorHandlers){\n // Delayed the error being passed to React Dev Overlay,\n // avoid the state being synchronously updated in the component.\n queueMicroTask(()=>{\n handler(error);\n });\n }\n}\nfunction handleClientError(error) {\n errorQueue.push(error);\n for (const handler of errorHandlers){\n // Delayed the error being passed to React Dev Overlay,\n // avoid the state being synchronously updated in the component.\n queueMicroTask(()=>{\n handler(error);\n });\n }\n}\nfunction useErrorHandler(handleOnUnhandledError, handleOnUnhandledRejection) {\n (0, _react.useEffect)(()=>{\n // Handle queued errors.\n errorQueue.forEach(handleOnUnhandledError);\n rejectionQueue.forEach(handleOnUnhandledRejection);\n // Listen to new errors.\n errorHandlers.push(handleOnUnhandledError);\n rejectionHandlers.push(handleOnUnhandledRejection);\n return ()=>{\n // Remove listeners.\n errorHandlers.splice(errorHandlers.indexOf(handleOnUnhandledError), 1);\n rejectionHandlers.splice(rejectionHandlers.indexOf(handleOnUnhandledRejection), 1);\n // Reset error queues.\n errorQueue.splice(0, errorQueue.length);\n rejectionQueue.splice(0, rejectionQueue.length);\n };\n }, [\n handleOnUnhandledError,\n handleOnUnhandledRejection\n ]);\n}\nfunction onUnhandledError(event) {\n const thrownValue = event.error;\n if ((0, _isnextroutererror.isNextRouterError)(thrownValue)) {\n event.preventDefault();\n return false;\n }\n // When there's an error property present, we log the error to error overlay.\n // Otherwise we don't do anything as it's not logging in the console either.\n if (thrownValue) {\n const error = (0, _stitchederror.coerceError)(thrownValue);\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n handleClientError(error);\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.forwardUnhandledError)(error);\n }\n }\n}\nfunction onUnhandledRejection(ev) {\n const reason = ev == null ? void 0 : ev.reason;\n if ((0, _isnextroutererror.isNextRouterError)(reason)) {\n ev.preventDefault();\n return;\n }\n const error = (0, _stitchederror.coerceError)(reason);\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n rejectionQueue.push(error);\n for (const handler of rejectionHandlers){\n handler(error);\n }\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.logUnhandledRejection)(reason);\n }\n}\nfunction handleGlobalErrors() {\n if (typeof window !== 'undefined') {\n try {\n // Increase the number of stack frames on the client\n Error.stackTraceLimit = 50;\n } catch (e) {}\n window.addEventListener('error', onUnhandledError);\n window.addEventListener('unhandledrejection', onUnhandledRejection);\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=use-error-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWVycm9yLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlDQUFpQyxtQkFBTyxDQUFDLGtIQUF5QztBQUNsRixlQUFlLG1CQUFPLENBQUMsaUdBQU87QUFDOUIsMkJBQTJCLG1CQUFPLENBQUMsb0lBQW9EO0FBQ3ZGLGlCQUFpQixtQkFBTyxDQUFDLDRGQUFnQztBQUN6RCwwREFBMEQsbUJBQU8sQ0FBQyxnRkFBMEI7QUFDNUYsc0JBQXNCLG1CQUFPLENBQUMsMkdBQStCO0FBQzdELHVCQUF1QixtQkFBTyxDQUFDLDZHQUFrQjtBQUNqRCxxQkFBcUIsbUJBQU8sQ0FBQyxtR0FBaUI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGtCQUFrQjtBQUM5QjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWVycm9yLWhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBoYW5kbGVDbGllbnRFcnJvcjogbnVsbCxcbiAgICBoYW5kbGVDb25zb2xlRXJyb3I6IG51bGwsXG4gICAgaGFuZGxlR2xvYmFsRXJyb3JzOiBudWxsLFxuICAgIHVzZUVycm9ySGFuZGxlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBoYW5kbGVDbGllbnRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBoYW5kbGVDbGllbnRFcnJvcjtcbiAgICB9LFxuICAgIGhhbmRsZUNvbnNvbGVFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBoYW5kbGVDb25zb2xlRXJyb3I7XG4gICAgfSxcbiAgICBoYW5kbGVHbG9iYWxFcnJvcnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGFuZGxlR2xvYmFsRXJyb3JzO1xuICAgIH0sXG4gICAgdXNlRXJyb3JIYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVzZUVycm9ySGFuZGxlcjtcbiAgICB9XG59KTtcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHRcIik7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfaXNuZXh0cm91dGVyZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3JcIik7XG5jb25zdCBfY29uc29sZSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9jbGllbnQvbGliL2NvbnNvbGVcIik7XG5jb25zdCBfaXNlcnJvciA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0Ll8ocmVxdWlyZShcIi4uLy4uLy4uLy4uL2xpYi9pcy1lcnJvclwiKSk7XG5jb25zdCBfY29uc29sZWVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9jb25zb2xlLWVycm9yXCIpO1xuY29uc3QgX3N0aXRjaGVkZXJyb3IgPSByZXF1aXJlKFwiLi9zdGl0Y2hlZC1lcnJvclwiKTtcbmNvbnN0IF9mb3J3YXJkbG9ncyA9IHJlcXVpcmUoXCIuLi9mb3J3YXJkLWxvZ3NcIik7XG5jb25zdCBxdWV1ZU1pY3JvVGFzayA9IGdsb2JhbFRoaXMucXVldWVNaWNyb3Rhc2sgfHwgKChjYik9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oY2IpKTtcbmNvbnN0IGVycm9yUXVldWUgPSBbXTtcbmNvbnN0IGVycm9ySGFuZGxlcnMgPSBbXTtcbmNvbnN0IHJlamVjdGlvblF1ZXVlID0gW107XG5jb25zdCByZWplY3Rpb25IYW5kbGVycyA9IFtdO1xuZnVuY3Rpb24gaGFuZGxlQ29uc29sZUVycm9yKG9yaWdpbkVycm9yLCBjb25zb2xlRXJyb3JBcmdzKSB7XG4gICAgbGV0IGVycm9yO1xuICAgIGNvbnN0IHsgZW52aXJvbm1lbnROYW1lIH0gPSAoMCwgX2NvbnNvbGUucGFyc2VDb25zb2xlQXJncykoY29uc29sZUVycm9yQXJncyk7XG4gICAgaWYgKCgwLCBfaXNlcnJvci5kZWZhdWx0KShvcmlnaW5FcnJvcikpIHtcbiAgICAgICAgZXJyb3IgPSAoMCwgX2NvbnNvbGVlcnJvci5jcmVhdGVDb25zb2xlRXJyb3IpKG9yaWdpbkVycm9yLCBlbnZpcm9ubWVudE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yID0gKDAsIF9jb25zb2xlZXJyb3IuY3JlYXRlQ29uc29sZUVycm9yKSgoMCwgX2NvbnNvbGUuZm9ybWF0Q29uc29sZUFyZ3MpKGNvbnNvbGVFcnJvckFyZ3MpLCBlbnZpcm9ubWVudE5hbWUpO1xuICAgIH1cbiAgICAoMCwgX3N0aXRjaGVkZXJyb3Iuc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlKShlcnJvcik7XG4gICAgZXJyb3JRdWV1ZS5wdXNoKGVycm9yKTtcbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgZXJyb3JIYW5kbGVycyl7XG4gICAgICAgIC8vIERlbGF5ZWQgdGhlIGVycm9yIGJlaW5nIHBhc3NlZCB0byBSZWFjdCBEZXYgT3ZlcmxheSxcbiAgICAgICAgLy8gYXZvaWQgdGhlIHN0YXRlIGJlaW5nIHN5bmNocm9ub3VzbHkgdXBkYXRlZCBpbiB0aGUgY29tcG9uZW50LlxuICAgICAgICBxdWV1ZU1pY3JvVGFzaygoKT0+e1xuICAgICAgICAgICAgaGFuZGxlcihlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGhhbmRsZUNsaWVudEVycm9yKGVycm9yKSB7XG4gICAgZXJyb3JRdWV1ZS5wdXNoKGVycm9yKTtcbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgZXJyb3JIYW5kbGVycyl7XG4gICAgICAgIC8vIERlbGF5ZWQgdGhlIGVycm9yIGJlaW5nIHBhc3NlZCB0byBSZWFjdCBEZXYgT3ZlcmxheSxcbiAgICAgICAgLy8gYXZvaWQgdGhlIHN0YXRlIGJlaW5nIHN5bmNocm9ub3VzbHkgdXBkYXRlZCBpbiB0aGUgY29tcG9uZW50LlxuICAgICAgICBxdWV1ZU1pY3JvVGFzaygoKT0+e1xuICAgICAgICAgICAgaGFuZGxlcihlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHVzZUVycm9ySGFuZGxlcihoYW5kbGVPblVuaGFuZGxlZEVycm9yLCBoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbikge1xuICAgICgwLCBfcmVhY3QudXNlRWZmZWN0KSgoKT0+e1xuICAgICAgICAvLyBIYW5kbGUgcXVldWVkIGVycm9ycy5cbiAgICAgICAgZXJyb3JRdWV1ZS5mb3JFYWNoKGhhbmRsZU9uVW5oYW5kbGVkRXJyb3IpO1xuICAgICAgICByZWplY3Rpb25RdWV1ZS5mb3JFYWNoKGhhbmRsZU9uVW5oYW5kbGVkUmVqZWN0aW9uKTtcbiAgICAgICAgLy8gTGlzdGVuIHRvIG5ldyBlcnJvcnMuXG4gICAgICAgIGVycm9ySGFuZGxlcnMucHVzaChoYW5kbGVPblVuaGFuZGxlZEVycm9yKTtcbiAgICAgICAgcmVqZWN0aW9uSGFuZGxlcnMucHVzaChoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbik7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgLy8gUmVtb3ZlIGxpc3RlbmVycy5cbiAgICAgICAgICAgIGVycm9ySGFuZGxlcnMuc3BsaWNlKGVycm9ySGFuZGxlcnMuaW5kZXhPZihoYW5kbGVPblVuaGFuZGxlZEVycm9yKSwgMSk7XG4gICAgICAgICAgICByZWplY3Rpb25IYW5kbGVycy5zcGxpY2UocmVqZWN0aW9uSGFuZGxlcnMuaW5kZXhPZihoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbiksIDEpO1xuICAgICAgICAgICAgLy8gUmVzZXQgZXJyb3IgcXVldWVzLlxuICAgICAgICAgICAgZXJyb3JRdWV1ZS5zcGxpY2UoMCwgZXJyb3JRdWV1ZS5sZW5ndGgpO1xuICAgICAgICAgICAgcmVqZWN0aW9uUXVldWUuc3BsaWNlKDAsIHJlamVjdGlvblF1ZXVlLmxlbmd0aCk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBoYW5kbGVPblVuaGFuZGxlZEVycm9yLFxuICAgICAgICBoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvblxuICAgIF0pO1xufVxuZnVuY3Rpb24gb25VbmhhbmRsZWRFcnJvcihldmVudCkge1xuICAgIGNvbnN0IHRocm93blZhbHVlID0gZXZlbnQuZXJyb3I7XG4gICAgaWYgKCgwLCBfaXNuZXh0cm91dGVyZXJyb3IuaXNOZXh0Um91dGVyRXJyb3IpKHRocm93blZhbHVlKSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFdoZW4gdGhlcmUncyBhbiBlcnJvciBwcm9wZXJ0eSBwcmVzZW50LCB3ZSBsb2cgdGhlIGVycm9yIHRvIGVycm9yIG92ZXJsYXkuXG4gICAgLy8gT3RoZXJ3aXNlIHdlIGRvbid0IGRvIGFueXRoaW5nIGFzIGl0J3Mgbm90IGxvZ2dpbmcgaW4gdGhlIGNvbnNvbGUgZWl0aGVyLlxuICAgIGlmICh0aHJvd25WYWx1ZSkge1xuICAgICAgICBjb25zdCBlcnJvciA9ICgwLCBfc3RpdGNoZWRlcnJvci5jb2VyY2VFcnJvcikodGhyb3duVmFsdWUpO1xuICAgICAgICAoMCwgX3N0aXRjaGVkZXJyb3Iuc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlKShlcnJvcik7XG4gICAgICAgIGhhbmRsZUNsaWVudEVycm9yKGVycm9yKTtcbiAgICAgICAgaWYgKF9mb3J3YXJkbG9ncy5pc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgICAgICgwLCBfZm9yd2FyZGxvZ3MuZm9yd2FyZFVuaGFuZGxlZEVycm9yKShlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBvblVuaGFuZGxlZFJlamVjdGlvbihldikge1xuICAgIGNvbnN0IHJlYXNvbiA9IGV2ID09IG51bGwgPyB2b2lkIDAgOiBldi5yZWFzb247XG4gICAgaWYgKCgwLCBfaXNuZXh0cm91dGVyZXJyb3IuaXNOZXh0Um91dGVyRXJyb3IpKHJlYXNvbikpIHtcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBlcnJvciA9ICgwLCBfc3RpdGNoZWRlcnJvci5jb2VyY2VFcnJvcikocmVhc29uKTtcbiAgICAoMCwgX3N0aXRjaGVkZXJyb3Iuc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlKShlcnJvcik7XG4gICAgcmVqZWN0aW9uUXVldWUucHVzaChlcnJvcik7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHJlamVjdGlvbkhhbmRsZXJzKXtcbiAgICAgICAgaGFuZGxlcihlcnJvcik7XG4gICAgfVxuICAgIGlmIChfZm9yd2FyZGxvZ3MuaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgICgwLCBfZm9yd2FyZGxvZ3MubG9nVW5oYW5kbGVkUmVqZWN0aW9uKShyZWFzb24pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGhhbmRsZUdsb2JhbEVycm9ycygpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIEluY3JlYXNlIHRoZSBudW1iZXIgb2Ygc3RhY2sgZnJhbWVzIG9uIHRoZSBjbGllbnRcbiAgICAgICAgICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IDUwO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvblVuaGFuZGxlZEVycm9yKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFuZGxlZHJlamVjdGlvbicsIG9uVW5oYW5kbGVkUmVqZWN0aW9uKTtcbiAgICB9XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1lcnJvci1oYW5kbGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js": /*!**********************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js ***! \**********************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useForwardConsoleLog\", ({\n enumerable: true,\n get: function() {\n return useForwardConsoleLog;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _forwardlogs = __webpack_require__(/*! ../forward-logs */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\");\nconst useForwardConsoleLog = (socketRef)=>{\n (0, _react.useEffect)(()=>{\n if (!_forwardlogs.isTerminalLoggingEnabled) {\n return;\n }\n const socket = socketRef.current;\n if (!socket) {\n return;\n }\n const onOpen = ()=>{\n _forwardlogs.logQueue.onSocketReady(socket);\n };\n socket.addEventListener('open', onOpen);\n return ()=>{\n socket.removeEventListener('open', onOpen);\n };\n }, [\n socketRef\n ]);\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=use-forward-console-log.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWZvcndhcmQtY29uc29sZS1sb2cuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix3REFBdUQ7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixlQUFlLG1CQUFPLENBQUMsaUdBQU87QUFDOUIscUJBQXFCLG1CQUFPLENBQUMsbUdBQWlCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWZvcndhcmQtY29uc29sZS1sb2cuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ1c2VGb3J3YXJkQ29uc29sZUxvZ1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdXNlRm9yd2FyZENvbnNvbGVMb2c7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfZm9yd2FyZGxvZ3MgPSByZXF1aXJlKFwiLi4vZm9yd2FyZC1sb2dzXCIpO1xuY29uc3QgdXNlRm9yd2FyZENvbnNvbGVMb2cgPSAoc29ja2V0UmVmKT0+e1xuICAgICgwLCBfcmVhY3QudXNlRWZmZWN0KSgoKT0+e1xuICAgICAgICBpZiAoIV9mb3J3YXJkbG9ncy5pc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzb2NrZXQgPSBzb2NrZXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFzb2NrZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvbk9wZW4gPSAoKT0+e1xuICAgICAgICAgICAgX2ZvcndhcmRsb2dzLmxvZ1F1ZXVlLm9uU29ja2V0UmVhZHkoc29ja2V0KTtcbiAgICAgICAgfTtcbiAgICAgICAgc29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoJ29wZW4nLCBvbk9wZW4pO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIHNvY2tldC5yZW1vdmVFdmVudExpc3RlbmVyKCdvcGVuJywgb25PcGVuKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHNvY2tldFJlZlxuICAgIF0pO1xufTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlLWZvcndhcmQtY29uc29sZS1sb2cuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js ***! \****************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PROMISE_MARKER: function() {\n return PROMISE_MARKER;\n },\n UNAVAILABLE_MARKER: function() {\n return UNAVAILABLE_MARKER;\n },\n forwardErrorLog: function() {\n return forwardErrorLog;\n },\n forwardUnhandledError: function() {\n return forwardUnhandledError;\n },\n initializeDebugLogForwarding: function() {\n return initializeDebugLogForwarding;\n },\n isTerminalLoggingEnabled: function() {\n return isTerminalLoggingEnabled;\n },\n logQueue: function() {\n return logQueue;\n },\n logStringify: function() {\n return logStringify;\n },\n logUnhandledRejection: function() {\n return logUnhandledRejection;\n },\n preLogSerializationClone: function() {\n return preLogSerializationClone;\n }\n});\nconst _safestablestringify = __webpack_require__(/*! next/dist/compiled/safe-stable-stringify */ \"(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js\");\nconst _stitchederror = __webpack_require__(/*! ./errors/stitched-error */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\nconst _errorsource = __webpack_require__(/*! ../../../shared/lib/error-source */ \"(ssr)/./node_modules/next/dist/shared/lib/error-source.js\");\nconst _terminalloggingconfig = __webpack_require__(/*! ./terminal-logging-config */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js\");\nconst _forwardlogsshared = __webpack_require__(/*! ../../shared/forward-logs-shared */ \"(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js\");\nconst terminalLoggingConfig = (0, _terminalloggingconfig.getTerminalLoggingConfig)();\nconst PROMISE_MARKER = 'Promise {}';\nconst UNAVAILABLE_MARKER = '[Unable to view]';\nconst maximumDepth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.depthLimit ? terminalLoggingConfig.depthLimit : 5;\nconst maximumBreadth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.edgeLimit ? terminalLoggingConfig.edgeLimit : 100;\nconst stringify = (0, _safestablestringify.configure)({\n maximumDepth,\n maximumBreadth\n});\nconst isTerminalLoggingEnabled = (0, _terminalloggingconfig.getIsTerminalLoggingEnabled)();\nconst methods = [\n 'log',\n 'info',\n 'warn',\n 'debug',\n 'table',\n 'assert',\n 'dir',\n 'dirxml',\n 'group',\n 'groupCollapsed',\n 'groupEnd',\n 'trace'\n];\nfunction preLogSerializationClone(value, seen) {\n if (seen === void 0) seen = new WeakMap();\n if (value === undefined) return _forwardlogsshared.UNDEFINED_MARKER;\n if (value === null || typeof value !== 'object') return value;\n if (seen.has(value)) return seen.get(value);\n try {\n Object.keys(value);\n } catch (e) {\n return UNAVAILABLE_MARKER;\n }\n try {\n if (typeof value.then === 'function') return PROMISE_MARKER;\n } catch (e) {\n return UNAVAILABLE_MARKER;\n }\n if (Array.isArray(value)) {\n const out = [];\n seen.set(value, out);\n for (const item of value){\n try {\n out.push(preLogSerializationClone(item, seen));\n } catch (e) {\n out.push(UNAVAILABLE_MARKER);\n }\n }\n return out;\n }\n const proto = Object.getPrototypeOf(value);\n if (proto === Object.prototype || proto === null) {\n const out = {};\n seen.set(value, out);\n for (const key of Object.keys(value)){\n try {\n out[key] = preLogSerializationClone(value[key], seen);\n } catch (e) {\n out[key] = UNAVAILABLE_MARKER;\n }\n }\n return out;\n }\n return Object.prototype.toString.call(value);\n}\nconst logStringify = (data)=>{\n try {\n const result = stringify(data);\n return result != null ? result : '\"' + UNAVAILABLE_MARKER + '\"';\n } catch (e) {\n return '\"' + UNAVAILABLE_MARKER + '\"';\n }\n};\nconst afterThisFrame = (cb)=>{\n let timeout;\n const rafId = requestAnimationFrame(()=>{\n timeout = setTimeout(()=>{\n cb();\n });\n });\n return ()=>{\n cancelAnimationFrame(rafId);\n clearTimeout(timeout);\n };\n};\nlet isPatched = false;\nconst serializeEntries = (entries)=>entries.map((clientEntry)=>{\n switch(clientEntry.kind){\n case 'any-logged-error':\n case 'console':\n {\n return {\n ...clientEntry,\n args: clientEntry.args.map(stringifyUserArg)\n };\n }\n case 'formatted-error':\n {\n return clientEntry;\n }\n default:\n {\n return null;\n }\n }\n });\nconst logQueue = {\n entries: [],\n flushScheduled: false,\n cancelFlush: null,\n socket: null,\n sourceType: undefined,\n router: null,\n scheduleLogSend: (entry)=>{\n logQueue.entries.push(entry);\n if (logQueue.flushScheduled) {\n return;\n }\n // safe to deref and use in setTimeout closure since we cancel on new socket\n const socket = logQueue.socket;\n if (!socket) {\n return;\n }\n // we probably dont need this\n logQueue.flushScheduled = true;\n // non blocking log flush, runs at most once per frame\n logQueue.cancelFlush = afterThisFrame(()=>{\n logQueue.flushScheduled = false;\n // just incase\n try {\n const payload = JSON.stringify({\n event: 'browser-logs',\n entries: serializeEntries(logQueue.entries),\n router: logQueue.router,\n // needed for source mapping, we just assign the sourceType from the last error for the whole batch\n sourceType: logQueue.sourceType\n });\n socket.send(payload);\n logQueue.entries = [];\n logQueue.sourceType = undefined;\n } catch (e) {\n // error (make sure u don't infinite loop)\n /* noop */ }\n });\n },\n onSocketReady: (socket)=>{\n if (socket.readyState !== WebSocket.OPEN) {\n // invariant\n return;\n }\n // incase an existing timeout was going to run with a stale socket\n logQueue.cancelFlush == null ? void 0 : logQueue.cancelFlush.call(logQueue);\n logQueue.socket = socket;\n try {\n const payload = JSON.stringify({\n event: 'browser-logs',\n entries: serializeEntries(logQueue.entries),\n router: logQueue.router,\n sourceType: logQueue.sourceType\n });\n socket.send(payload);\n logQueue.entries = [];\n logQueue.sourceType = undefined;\n } catch (e) {\n /** noop just incase */ }\n }\n};\nconst stringifyUserArg = (arg)=>{\n if (arg.kind !== 'arg') {\n return arg;\n }\n return {\n ...arg,\n data: logStringify(arg.data)\n };\n};\nconst createErrorArg = (error)=>{\n const stack = stackWithOwners(error);\n return {\n kind: 'formatted-error-arg',\n prefix: error.message ? error.name + \": \" + error.message : \"\" + error.name,\n stack\n };\n};\nconst createLogEntry = (level, args)=>{\n // do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers\n // error capture stack trace maybe\n const stack = stackWithOwners(new Error());\n const stackLines = stack == null ? void 0 : stack.split('\\n');\n const cleanStack = stackLines == null ? void 0 : stackLines.slice(3).join('\\n') // this is probably ignored anyways\n ;\n const entry = {\n kind: 'console',\n consoleMethodStack: cleanStack != null ? cleanStack : null,\n method: level,\n args: args.map((arg)=>{\n if (arg instanceof Error) {\n return createErrorArg(arg);\n }\n return {\n kind: 'arg',\n data: preLogSerializationClone(arg)\n };\n })\n };\n logQueue.scheduleLogSend(entry);\n};\nconst forwardErrorLog = (args)=>{\n const errorObjects = args.filter((arg)=>arg instanceof Error);\n const first = errorObjects.at(0);\n if (first) {\n const source = (0, _errorsource.getErrorSource)(first);\n if (source) {\n logQueue.sourceType = source;\n }\n }\n /**\n * browser shows stack regardless of type of data passed to console.error, so we should do the same\n *\n * do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers\n */ const stack = stackWithOwners(new Error());\n const stackLines = stack == null ? void 0 : stack.split('\\n');\n const cleanStack = stackLines == null ? void 0 : stackLines.slice(3).join('\\n');\n const entry = {\n kind: 'any-logged-error',\n method: 'error',\n consoleErrorStack: cleanStack != null ? cleanStack : '',\n args: args.map((arg)=>{\n if (arg instanceof Error) {\n return createErrorArg(arg);\n }\n return {\n kind: 'arg',\n data: preLogSerializationClone(arg)\n };\n })\n };\n logQueue.scheduleLogSend(entry);\n};\nconst createUncaughtErrorEntry = (errorName, errorMessage, fullStack)=>{\n const entry = {\n kind: 'formatted-error',\n prefix: \"Uncaught \" + errorName + \": \" + errorMessage,\n stack: fullStack,\n method: 'error'\n };\n logQueue.scheduleLogSend(entry);\n};\nconst stackWithOwners = (error)=>{\n let ownerStack = '';\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n ownerStack = (0, _stitchederror.getOwnerStack)(error) || '';\n const stack = (error.stack || '') + ownerStack;\n return stack;\n};\nfunction logUnhandledRejection(reason) {\n if (reason instanceof Error) {\n createUnhandledRejectionErrorEntry(reason, stackWithOwners(reason));\n return;\n }\n createUnhandledRejectionNonErrorEntry(reason);\n}\nconst createUnhandledRejectionErrorEntry = (error, fullStack)=>{\n const source = (0, _errorsource.getErrorSource)(error);\n if (source) {\n logQueue.sourceType = source;\n }\n const entry = {\n kind: 'formatted-error',\n prefix: \"⨯ unhandledRejection: \" + error.name + \": \" + error.message,\n stack: fullStack,\n method: 'error'\n };\n logQueue.scheduleLogSend(entry);\n};\nconst createUnhandledRejectionNonErrorEntry = (reason)=>{\n const entry = {\n kind: 'any-logged-error',\n // we can't access the stack since the event is dispatched async and creating an inline error would be meaningless\n consoleErrorStack: '',\n method: 'error',\n args: [\n {\n kind: 'arg',\n data: \"⨯ unhandledRejection:\",\n isRejectionMessage: true\n },\n {\n kind: 'arg',\n data: preLogSerializationClone(reason)\n }\n ]\n };\n logQueue.scheduleLogSend(entry);\n};\nconst isHMR = (args)=>{\n const firstArg = args[0];\n if (typeof firstArg !== 'string') {\n return false;\n }\n if (firstArg.startsWith('[Fast Refresh]')) {\n return true;\n }\n if (firstArg.startsWith('[HMR]')) {\n return true;\n }\n return false;\n};\nconst isIgnoredLog = (args)=>{\n if (args.length < 3) {\n return false;\n }\n const [format, styles, label] = args;\n if (typeof format !== 'string' || typeof styles !== 'string' || typeof label !== 'string') {\n return false;\n }\n // kinda hacky, we should define a common format for these strings so we can safely ignore\n return format.startsWith('%c%s%c') && styles.includes('background:');\n};\nfunction forwardUnhandledError(error) {\n createUncaughtErrorEntry(error.name, error.message, stackWithOwners(error));\n}\nconst initializeDebugLogForwarding = (router)=>{\n // probably don't need this\n if (isPatched) {\n return;\n }\n // TODO(rob): why does this break rendering on server, important to know incase the same bug appears in browser\n if (typeof window === 'undefined') {\n return;\n }\n // better to be safe than sorry\n try {\n methods.forEach((method)=>(0, _forwardlogsshared.patchConsoleMethod)(method, function(_) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (isHMR(args)) {\n return;\n }\n if (isIgnoredLog(args)) {\n return;\n }\n createLogEntry(method, args);\n }));\n } catch (e) {}\n logQueue.router = router;\n isPatched = true;\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=forward-logs.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9mb3J3YXJkLWxvZ3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBV0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDZCQUE2QixtQkFBTyxDQUFDLHdIQUEwQztBQUMvRSx1QkFBdUIsbUJBQU8sQ0FBQyxvSEFBeUI7QUFDeEQscUJBQXFCLG1CQUFPLENBQUMsbUdBQWtDO0FBQy9ELCtCQUErQixtQkFBTyxDQUFDLHdIQUEyQjtBQUNsRSwyQkFBMkIsbUJBQU8sQ0FBQyxvSEFBa0M7QUFDckU7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0dBQXNHLGFBQWE7QUFDbkg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvZm9yd2FyZC1sb2dzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUFJPTUlTRV9NQVJLRVI6IG51bGwsXG4gICAgVU5BVkFJTEFCTEVfTUFSS0VSOiBudWxsLFxuICAgIGZvcndhcmRFcnJvckxvZzogbnVsbCxcbiAgICBmb3J3YXJkVW5oYW5kbGVkRXJyb3I6IG51bGwsXG4gICAgaW5pdGlhbGl6ZURlYnVnTG9nRm9yd2FyZGluZzogbnVsbCxcbiAgICBpc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ6IG51bGwsXG4gICAgbG9nUXVldWU6IG51bGwsXG4gICAgbG9nU3RyaW5naWZ5OiBudWxsLFxuICAgIGxvZ1VuaGFuZGxlZFJlamVjdGlvbjogbnVsbCxcbiAgICBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUFJPTUlTRV9NQVJLRVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFJPTUlTRV9NQVJLRVI7XG4gICAgfSxcbiAgICBVTkFWQUlMQUJMRV9NQVJLRVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5BVkFJTEFCTEVfTUFSS0VSO1xuICAgIH0sXG4gICAgZm9yd2FyZEVycm9yTG9nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZvcndhcmRFcnJvckxvZztcbiAgICB9LFxuICAgIGZvcndhcmRVbmhhbmRsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkVW5oYW5kbGVkRXJyb3I7XG4gICAgfSxcbiAgICBpbml0aWFsaXplRGVidWdMb2dGb3J3YXJkaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVEZWJ1Z0xvZ0ZvcndhcmRpbmc7XG4gICAgfSxcbiAgICBpc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkO1xuICAgIH0sXG4gICAgbG9nUXVldWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbG9nUXVldWU7XG4gICAgfSxcbiAgICBsb2dTdHJpbmdpZnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbG9nU3RyaW5naWZ5O1xuICAgIH0sXG4gICAgbG9nVW5oYW5kbGVkUmVqZWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGxvZ1VuaGFuZGxlZFJlamVjdGlvbjtcbiAgICB9LFxuICAgIHByZUxvZ1NlcmlhbGl6YXRpb25DbG9uZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmU7XG4gICAgfVxufSk7XG5jb25zdCBfc2FmZXN0YWJsZXN0cmluZ2lmeSA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvc2FmZS1zdGFibGUtc3RyaW5naWZ5XCIpO1xuY29uc3QgX3N0aXRjaGVkZXJyb3IgPSByZXF1aXJlKFwiLi9lcnJvcnMvc3RpdGNoZWQtZXJyb3JcIik7XG5jb25zdCBfZXJyb3Jzb3VyY2UgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9lcnJvci1zb3VyY2VcIik7XG5jb25zdCBfdGVybWluYWxsb2dnaW5nY29uZmlnID0gcmVxdWlyZShcIi4vdGVybWluYWwtbG9nZ2luZy1jb25maWdcIik7XG5jb25zdCBfZm9yd2FyZGxvZ3NzaGFyZWQgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2ZvcndhcmQtbG9ncy1zaGFyZWRcIik7XG5jb25zdCB0ZXJtaW5hbExvZ2dpbmdDb25maWcgPSAoMCwgX3Rlcm1pbmFsbG9nZ2luZ2NvbmZpZy5nZXRUZXJtaW5hbExvZ2dpbmdDb25maWcpKCk7XG5jb25zdCBQUk9NSVNFX01BUktFUiA9ICdQcm9taXNlIHt9JztcbmNvbnN0IFVOQVZBSUxBQkxFX01BUktFUiA9ICdbVW5hYmxlIHRvIHZpZXddJztcbmNvbnN0IG1heGltdW1EZXB0aCA9IHR5cGVvZiB0ZXJtaW5hbExvZ2dpbmdDb25maWcgPT09ICdvYmplY3QnICYmIHRlcm1pbmFsTG9nZ2luZ0NvbmZpZy5kZXB0aExpbWl0ID8gdGVybWluYWxMb2dnaW5nQ29uZmlnLmRlcHRoTGltaXQgOiA1O1xuY29uc3QgbWF4aW11bUJyZWFkdGggPSB0eXBlb2YgdGVybWluYWxMb2dnaW5nQ29uZmlnID09PSAnb2JqZWN0JyAmJiB0ZXJtaW5hbExvZ2dpbmdDb25maWcuZWRnZUxpbWl0ID8gdGVybWluYWxMb2dnaW5nQ29uZmlnLmVkZ2VMaW1pdCA6IDEwMDtcbmNvbnN0IHN0cmluZ2lmeSA9ICgwLCBfc2FmZXN0YWJsZXN0cmluZ2lmeS5jb25maWd1cmUpKHtcbiAgICBtYXhpbXVtRGVwdGgsXG4gICAgbWF4aW11bUJyZWFkdGhcbn0pO1xuY29uc3QgaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkID0gKDAsIF90ZXJtaW5hbGxvZ2dpbmdjb25maWcuZ2V0SXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSgpO1xuY29uc3QgbWV0aG9kcyA9IFtcbiAgICAnbG9nJyxcbiAgICAnaW5mbycsXG4gICAgJ3dhcm4nLFxuICAgICdkZWJ1ZycsXG4gICAgJ3RhYmxlJyxcbiAgICAnYXNzZXJ0JyxcbiAgICAnZGlyJyxcbiAgICAnZGlyeG1sJyxcbiAgICAnZ3JvdXAnLFxuICAgICdncm91cENvbGxhcHNlZCcsXG4gICAgJ2dyb3VwRW5kJyxcbiAgICAndHJhY2UnXG5dO1xuZnVuY3Rpb24gcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKHZhbHVlLCBzZWVuKSB7XG4gICAgaWYgKHNlZW4gPT09IHZvaWQgMCkgc2VlbiA9IG5ldyBXZWFrTWFwKCk7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBfZm9yd2FyZGxvZ3NzaGFyZWQuVU5ERUZJTkVEX01BUktFUjtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIHZhbHVlO1xuICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHJldHVybiBzZWVuLmdldCh2YWx1ZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmtleXModmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIFVOQVZBSUxBQkxFX01BUktFUjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZS50aGVuID09PSAnZnVuY3Rpb24nKSByZXR1cm4gUFJPTUlTRV9NQVJLRVI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gVU5BVkFJTEFCTEVfTUFSS0VSO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgIHNlZW4uc2V0KHZhbHVlLCBvdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpe1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXQucHVzaChwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmUoaXRlbSwgc2VlbikpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIG91dC5wdXNoKFVOQVZBSUxBQkxFX01BUktFUik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpO1xuICAgIGlmIChwcm90byA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCBwcm90byA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgc2Vlbi5zZXQodmFsdWUsIG91dCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSl7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG91dFtrZXldID0gcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKHZhbHVlW2tleV0sIHNlZW4pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIG91dFtrZXldID0gVU5BVkFJTEFCTEVfTUFSS0VSO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuY29uc3QgbG9nU3RyaW5naWZ5ID0gKGRhdGEpPT57XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0ICE9IG51bGwgPyByZXN1bHQgOiAnXCInICsgVU5BVkFJTEFCTEVfTUFSS0VSICsgJ1wiJztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiAnXCInICsgVU5BVkFJTEFCTEVfTUFSS0VSICsgJ1wiJztcbiAgICB9XG59O1xuY29uc3QgYWZ0ZXJUaGlzRnJhbWUgPSAoY2IpPT57XG4gICAgbGV0IHRpbWVvdXQ7XG4gICAgY29uc3QgcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIGNiKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKT0+e1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShyYWZJZCk7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB9O1xufTtcbmxldCBpc1BhdGNoZWQgPSBmYWxzZTtcbmNvbnN0IHNlcmlhbGl6ZUVudHJpZXMgPSAoZW50cmllcyk9PmVudHJpZXMubWFwKChjbGllbnRFbnRyeSk9PntcbiAgICAgICAgc3dpdGNoKGNsaWVudEVudHJ5LmtpbmQpe1xuICAgICAgICAgICAgY2FzZSAnYW55LWxvZ2dlZC1lcnJvcic6XG4gICAgICAgICAgICBjYXNlICdjb25zb2xlJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jbGllbnRFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IGNsaWVudEVudHJ5LmFyZ3MubWFwKHN0cmluZ2lmeVVzZXJBcmcpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZm9ybWF0dGVkLWVycm9yJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjbGllbnRFbnRyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5jb25zdCBsb2dRdWV1ZSA9IHtcbiAgICBlbnRyaWVzOiBbXSxcbiAgICBmbHVzaFNjaGVkdWxlZDogZmFsc2UsXG4gICAgY2FuY2VsRmx1c2g6IG51bGwsXG4gICAgc29ja2V0OiBudWxsLFxuICAgIHNvdXJjZVR5cGU6IHVuZGVmaW5lZCxcbiAgICByb3V0ZXI6IG51bGwsXG4gICAgc2NoZWR1bGVMb2dTZW5kOiAoZW50cnkpPT57XG4gICAgICAgIGxvZ1F1ZXVlLmVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgICAgIGlmIChsb2dRdWV1ZS5mbHVzaFNjaGVkdWxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNhZmUgdG8gZGVyZWYgYW5kIHVzZSBpbiBzZXRUaW1lb3V0IGNsb3N1cmUgc2luY2Ugd2UgY2FuY2VsIG9uIG5ldyBzb2NrZXRcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gbG9nUXVldWUuc29ja2V0O1xuICAgICAgICBpZiAoIXNvY2tldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdlIHByb2JhYmx5IGRvbnQgbmVlZCB0aGlzXG4gICAgICAgIGxvZ1F1ZXVlLmZsdXNoU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgLy8gbm9uIGJsb2NraW5nIGxvZyBmbHVzaCwgcnVucyBhdCBtb3N0IG9uY2UgcGVyIGZyYW1lXG4gICAgICAgIGxvZ1F1ZXVlLmNhbmNlbEZsdXNoID0gYWZ0ZXJUaGlzRnJhbWUoKCk9PntcbiAgICAgICAgICAgIGxvZ1F1ZXVlLmZsdXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICAgICAgICAvLyBqdXN0IGluY2FzZVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICBldmVudDogJ2Jyb3dzZXItbG9ncycsXG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXM6IHNlcmlhbGl6ZUVudHJpZXMobG9nUXVldWUuZW50cmllcyksXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlcjogbG9nUXVldWUucm91dGVyLFxuICAgICAgICAgICAgICAgICAgICAvLyBuZWVkZWQgZm9yIHNvdXJjZSBtYXBwaW5nLCB3ZSBqdXN0IGFzc2lnbiB0aGUgc291cmNlVHlwZSBmcm9tIHRoZSBsYXN0IGVycm9yIGZvciB0aGUgd2hvbGUgYmF0Y2hcbiAgICAgICAgICAgICAgICAgICAgc291cmNlVHlwZTogbG9nUXVldWUuc291cmNlVHlwZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNvY2tldC5zZW5kKHBheWxvYWQpO1xuICAgICAgICAgICAgICAgIGxvZ1F1ZXVlLmVudHJpZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBsb2dRdWV1ZS5zb3VyY2VUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZXJyb3IgKG1ha2Ugc3VyZSB1IGRvbid0IGluZmluaXRlIGxvb3ApXG4gICAgICAgICAgICAvKiBub29wICovIH1cbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBvblNvY2tldFJlYWR5OiAoc29ja2V0KT0+e1xuICAgICAgICBpZiAoc29ja2V0LnJlYWR5U3RhdGUgIT09IFdlYlNvY2tldC5PUEVOKSB7XG4gICAgICAgICAgICAvLyBpbnZhcmlhbnRcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBpbmNhc2UgYW4gZXhpc3RpbmcgdGltZW91dCB3YXMgZ29pbmcgdG8gcnVuIHdpdGggYSBzdGFsZSBzb2NrZXRcbiAgICAgICAgbG9nUXVldWUuY2FuY2VsRmx1c2ggPT0gbnVsbCA/IHZvaWQgMCA6IGxvZ1F1ZXVlLmNhbmNlbEZsdXNoLmNhbGwobG9nUXVldWUpO1xuICAgICAgICBsb2dRdWV1ZS5zb2NrZXQgPSBzb2NrZXQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGV2ZW50OiAnYnJvd3Nlci1sb2dzJyxcbiAgICAgICAgICAgICAgICBlbnRyaWVzOiBzZXJpYWxpemVFbnRyaWVzKGxvZ1F1ZXVlLmVudHJpZXMpLFxuICAgICAgICAgICAgICAgIHJvdXRlcjogbG9nUXVldWUucm91dGVyLFxuICAgICAgICAgICAgICAgIHNvdXJjZVR5cGU6IGxvZ1F1ZXVlLnNvdXJjZVR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc29ja2V0LnNlbmQocGF5bG9hZCk7XG4gICAgICAgICAgICBsb2dRdWV1ZS5lbnRyaWVzID0gW107XG4gICAgICAgICAgICBsb2dRdWV1ZS5zb3VyY2VUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8qKiBub29wIGp1c3QgaW5jYXNlICovIH1cbiAgICB9XG59O1xuY29uc3Qgc3RyaW5naWZ5VXNlckFyZyA9IChhcmcpPT57XG4gICAgaWYgKGFyZy5raW5kICE9PSAnYXJnJykge1xuICAgICAgICByZXR1cm4gYXJnO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5hcmcsXG4gICAgICAgIGRhdGE6IGxvZ1N0cmluZ2lmeShhcmcuZGF0YSlcbiAgICB9O1xufTtcbmNvbnN0IGNyZWF0ZUVycm9yQXJnID0gKGVycm9yKT0+e1xuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tXaXRoT3duZXJzKGVycm9yKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAnZm9ybWF0dGVkLWVycm9yLWFyZycsXG4gICAgICAgIHByZWZpeDogZXJyb3IubWVzc2FnZSA/IGVycm9yLm5hbWUgKyBcIjogXCIgKyBlcnJvci5tZXNzYWdlIDogXCJcIiArIGVycm9yLm5hbWUsXG4gICAgICAgIHN0YWNrXG4gICAgfTtcbn07XG5jb25zdCBjcmVhdGVMb2dFbnRyeSA9IChsZXZlbCwgYXJncyk9PntcbiAgICAvLyBkbyBub3QgYWJzdHJhY3QgdGhpcywgaXQgaW1wbGljaXRseSByZWxpZXMgb24gd2hpY2ggZnVuY3Rpb25zIGNhbGwgaXQuIGZvcmNpbmcgdGhlIGlubGluZWQgaW1wbGVtZW50YXRpb24gbWFrZXMgeW91IHRoaW5rIGFib3V0IGNhbGxlcnNcbiAgICAvLyBlcnJvciBjYXB0dXJlIHN0YWNrIHRyYWNlIG1heWJlXG4gICAgY29uc3Qgc3RhY2sgPSBzdGFja1dpdGhPd25lcnMobmV3IEVycm9yKCkpO1xuICAgIGNvbnN0IHN0YWNrTGluZXMgPSBzdGFjayA9PSBudWxsID8gdm9pZCAwIDogc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IGNsZWFuU3RhY2sgPSBzdGFja0xpbmVzID09IG51bGwgPyB2b2lkIDAgOiBzdGFja0xpbmVzLnNsaWNlKDMpLmpvaW4oJ1xcbicpIC8vIHRoaXMgaXMgcHJvYmFibHkgaWdub3JlZCBhbnl3YXlzXG4gICAgO1xuICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICBraW5kOiAnY29uc29sZScsXG4gICAgICAgIGNvbnNvbGVNZXRob2RTdGFjazogY2xlYW5TdGFjayAhPSBudWxsID8gY2xlYW5TdGFjayA6IG51bGwsXG4gICAgICAgIG1ldGhvZDogbGV2ZWwsXG4gICAgICAgIGFyZ3M6IGFyZ3MubWFwKChhcmcpPT57XG4gICAgICAgICAgICBpZiAoYXJnIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRXJyb3JBcmcoYXJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAga2luZDogJ2FyZycsXG4gICAgICAgICAgICAgICAgZGF0YTogcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKGFyZylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgfTtcbiAgICBsb2dRdWV1ZS5zY2hlZHVsZUxvZ1NlbmQoZW50cnkpO1xufTtcbmNvbnN0IGZvcndhcmRFcnJvckxvZyA9IChhcmdzKT0+e1xuICAgIGNvbnN0IGVycm9yT2JqZWN0cyA9IGFyZ3MuZmlsdGVyKChhcmcpPT5hcmcgaW5zdGFuY2VvZiBFcnJvcik7XG4gICAgY29uc3QgZmlyc3QgPSBlcnJvck9iamVjdHMuYXQoMCk7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9ICgwLCBfZXJyb3Jzb3VyY2UuZ2V0RXJyb3JTb3VyY2UpKGZpcnN0KTtcbiAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgbG9nUXVldWUuc291cmNlVHlwZSA9IHNvdXJjZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogYnJvd3NlciBzaG93cyBzdGFjayByZWdhcmRsZXNzIG9mIHR5cGUgb2YgZGF0YSBwYXNzZWQgdG8gY29uc29sZS5lcnJvciwgc28gd2Ugc2hvdWxkIGRvIHRoZSBzYW1lXG4gICAqXG4gICAqIGRvIG5vdCBhYnN0cmFjdCB0aGlzLCBpdCBpbXBsaWNpdGx5IHJlbGllcyBvbiB3aGljaCBmdW5jdGlvbnMgY2FsbCBpdC4gZm9yY2luZyB0aGUgaW5saW5lZCBpbXBsZW1lbnRhdGlvbiBtYWtlcyB5b3UgdGhpbmsgYWJvdXQgY2FsbGVyc1xuICAgKi8gY29uc3Qgc3RhY2sgPSBzdGFja1dpdGhPd25lcnMobmV3IEVycm9yKCkpO1xuICAgIGNvbnN0IHN0YWNrTGluZXMgPSBzdGFjayA9PSBudWxsID8gdm9pZCAwIDogc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IGNsZWFuU3RhY2sgPSBzdGFja0xpbmVzID09IG51bGwgPyB2b2lkIDAgOiBzdGFja0xpbmVzLnNsaWNlKDMpLmpvaW4oJ1xcbicpO1xuICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICBraW5kOiAnYW55LWxvZ2dlZC1lcnJvcicsXG4gICAgICAgIG1ldGhvZDogJ2Vycm9yJyxcbiAgICAgICAgY29uc29sZUVycm9yU3RhY2s6IGNsZWFuU3RhY2sgIT0gbnVsbCA/IGNsZWFuU3RhY2sgOiAnJyxcbiAgICAgICAgYXJnczogYXJncy5tYXAoKGFyZyk9PntcbiAgICAgICAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVFcnJvckFyZyhhcmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBraW5kOiAnYXJnJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmUoYXJnKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICB9O1xuICAgIGxvZ1F1ZXVlLnNjaGVkdWxlTG9nU2VuZChlbnRyeSk7XG59O1xuY29uc3QgY3JlYXRlVW5jYXVnaHRFcnJvckVudHJ5ID0gKGVycm9yTmFtZSwgZXJyb3JNZXNzYWdlLCBmdWxsU3RhY2spPT57XG4gICAgY29uc3QgZW50cnkgPSB7XG4gICAgICAgIGtpbmQ6ICdmb3JtYXR0ZWQtZXJyb3InLFxuICAgICAgICBwcmVmaXg6IFwiVW5jYXVnaHQgXCIgKyBlcnJvck5hbWUgKyBcIjogXCIgKyBlcnJvck1lc3NhZ2UsXG4gICAgICAgIHN0YWNrOiBmdWxsU3RhY2ssXG4gICAgICAgIG1ldGhvZDogJ2Vycm9yJ1xuICAgIH07XG4gICAgbG9nUXVldWUuc2NoZWR1bGVMb2dTZW5kKGVudHJ5KTtcbn07XG5jb25zdCBzdGFja1dpdGhPd25lcnMgPSAoZXJyb3IpPT57XG4gICAgbGV0IG93bmVyU3RhY2sgPSAnJztcbiAgICAoMCwgX3N0aXRjaGVkZXJyb3Iuc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlKShlcnJvcik7XG4gICAgb3duZXJTdGFjayA9ICgwLCBfc3RpdGNoZWRlcnJvci5nZXRPd25lclN0YWNrKShlcnJvcikgfHwgJyc7XG4gICAgY29uc3Qgc3RhY2sgPSAoZXJyb3Iuc3RhY2sgfHwgJycpICsgb3duZXJTdGFjaztcbiAgICByZXR1cm4gc3RhY2s7XG59O1xuZnVuY3Rpb24gbG9nVW5oYW5kbGVkUmVqZWN0aW9uKHJlYXNvbikge1xuICAgIGlmIChyZWFzb24gaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBjcmVhdGVVbmhhbmRsZWRSZWplY3Rpb25FcnJvckVudHJ5KHJlYXNvbiwgc3RhY2tXaXRoT3duZXJzKHJlYXNvbikpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNyZWF0ZVVuaGFuZGxlZFJlamVjdGlvbk5vbkVycm9yRW50cnkocmVhc29uKTtcbn1cbmNvbnN0IGNyZWF0ZVVuaGFuZGxlZFJlamVjdGlvbkVycm9yRW50cnkgPSAoZXJyb3IsIGZ1bGxTdGFjayk9PntcbiAgICBjb25zdCBzb3VyY2UgPSAoMCwgX2Vycm9yc291cmNlLmdldEVycm9yU291cmNlKShlcnJvcik7XG4gICAgaWYgKHNvdXJjZSkge1xuICAgICAgICBsb2dRdWV1ZS5zb3VyY2VUeXBlID0gc291cmNlO1xuICAgIH1cbiAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAga2luZDogJ2Zvcm1hdHRlZC1lcnJvcicsXG4gICAgICAgIHByZWZpeDogXCLiqK8gdW5oYW5kbGVkUmVqZWN0aW9uOiBcIiArIGVycm9yLm5hbWUgKyBcIjogXCIgKyBlcnJvci5tZXNzYWdlLFxuICAgICAgICBzdGFjazogZnVsbFN0YWNrLFxuICAgICAgICBtZXRob2Q6ICdlcnJvcidcbiAgICB9O1xuICAgIGxvZ1F1ZXVlLnNjaGVkdWxlTG9nU2VuZChlbnRyeSk7XG59O1xuY29uc3QgY3JlYXRlVW5oYW5kbGVkUmVqZWN0aW9uTm9uRXJyb3JFbnRyeSA9IChyZWFzb24pPT57XG4gICAgY29uc3QgZW50cnkgPSB7XG4gICAgICAgIGtpbmQ6ICdhbnktbG9nZ2VkLWVycm9yJyxcbiAgICAgICAgLy8gd2UgY2FuJ3QgYWNjZXNzIHRoZSBzdGFjayBzaW5jZSB0aGUgZXZlbnQgaXMgZGlzcGF0Y2hlZCBhc3luYyBhbmQgY3JlYXRpbmcgYW4gaW5saW5lIGVycm9yIHdvdWxkIGJlIG1lYW5pbmdsZXNzXG4gICAgICAgIGNvbnNvbGVFcnJvclN0YWNrOiAnJyxcbiAgICAgICAgbWV0aG9kOiAnZXJyb3InLFxuICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2luZDogJ2FyZycsXG4gICAgICAgICAgICAgICAgZGF0YTogXCLiqK8gdW5oYW5kbGVkUmVqZWN0aW9uOlwiLFxuICAgICAgICAgICAgICAgIGlzUmVqZWN0aW9uTWVzc2FnZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBraW5kOiAnYXJnJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmUocmVhc29uKVxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfTtcbiAgICBsb2dRdWV1ZS5zY2hlZHVsZUxvZ1NlbmQoZW50cnkpO1xufTtcbmNvbnN0IGlzSE1SID0gKGFyZ3MpPT57XG4gICAgY29uc3QgZmlyc3RBcmcgPSBhcmdzWzBdO1xuICAgIGlmICh0eXBlb2YgZmlyc3RBcmcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGZpcnN0QXJnLnN0YXJ0c1dpdGgoJ1tGYXN0IFJlZnJlc2hdJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChmaXJzdEFyZy5zdGFydHNXaXRoKCdbSE1SXScpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuY29uc3QgaXNJZ25vcmVkTG9nID0gKGFyZ3MpPT57XG4gICAgaWYgKGFyZ3MubGVuZ3RoIDwgMykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IFtmb3JtYXQsIHN0eWxlcywgbGFiZWxdID0gYXJncztcbiAgICBpZiAodHlwZW9mIGZvcm1hdCAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIHN0eWxlcyAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIGxhYmVsICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIGtpbmRhIGhhY2t5LCB3ZSBzaG91bGQgZGVmaW5lIGEgY29tbW9uIGZvcm1hdCBmb3IgdGhlc2Ugc3RyaW5ncyBzbyB3ZSBjYW4gc2FmZWx5IGlnbm9yZVxuICAgIHJldHVybiBmb3JtYXQuc3RhcnRzV2l0aCgnJWMlcyVjJykgJiYgc3R5bGVzLmluY2x1ZGVzKCdiYWNrZ3JvdW5kOicpO1xufTtcbmZ1bmN0aW9uIGZvcndhcmRVbmhhbmRsZWRFcnJvcihlcnJvcikge1xuICAgIGNyZWF0ZVVuY2F1Z2h0RXJyb3JFbnRyeShlcnJvci5uYW1lLCBlcnJvci5tZXNzYWdlLCBzdGFja1dpdGhPd25lcnMoZXJyb3IpKTtcbn1cbmNvbnN0IGluaXRpYWxpemVEZWJ1Z0xvZ0ZvcndhcmRpbmcgPSAocm91dGVyKT0+e1xuICAgIC8vIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpc1xuICAgIGlmIChpc1BhdGNoZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBUT0RPKHJvYik6IHdoeSBkb2VzIHRoaXMgYnJlYWsgcmVuZGVyaW5nIG9uIHNlcnZlciwgaW1wb3J0YW50IHRvIGtub3cgaW5jYXNlIHRoZSBzYW1lIGJ1ZyBhcHBlYXJzIGluIGJyb3dzZXJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBiZXR0ZXIgdG8gYmUgc2FmZSB0aGFuIHNvcnJ5XG4gICAgdHJ5IHtcbiAgICAgICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2QpPT4oMCwgX2ZvcndhcmRsb2dzc2hhcmVkLnBhdGNoQ29uc29sZU1ldGhvZCkobWV0aG9kLCBmdW5jdGlvbihfKSB7XG4gICAgICAgICAgICAgICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcbiAgICAgICAgICAgICAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0hNUihhcmdzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0lnbm9yZWRMb2coYXJncykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjcmVhdGVMb2dFbnRyeShtZXRob2QsIGFyZ3MpO1xuICAgICAgICAgICAgfSkpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgbG9nUXVldWUucm91dGVyID0gcm91dGVyO1xuICAgIGlzUGF0Y2hlZCA9IHRydWU7XG59O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3J3YXJkLWxvZ3MuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js": /*!*************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js ***! \*************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE: function() {\n return SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE;\n },\n SegmentBoundaryTriggerNode: function() {\n return SegmentBoundaryTriggerNode;\n },\n SegmentStateProvider: function() {\n return SegmentStateProvider;\n },\n SegmentViewNode: function() {\n return SegmentViewNode;\n },\n SegmentViewStateNode: function() {\n return SegmentViewStateNode;\n },\n useSegmentState: function() {\n return useSegmentState;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _notfound = __webpack_require__(/*! ../../../client/components/not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE = 'NEXT_DEVTOOLS_SIMULATED_ERROR';\nfunction SegmentTrieNode(param) {\n let { type, pagePath } = param;\n const { boundaryType, setBoundaryType } = useSegmentState();\n const nodeState = (0, _react.useMemo)(()=>{\n return {\n type,\n pagePath,\n boundaryType,\n setBoundaryType\n };\n }, [\n type,\n pagePath,\n boundaryType,\n setBoundaryType\n ]);\n // Use `useLayoutEffect` to ensure the state is updated during suspense.\n // `useEffect` won't work as the state is preserved during suspense.\n (0, _react.useLayoutEffect)(()=>{\n _nextdevtools.dispatcher.segmentExplorerNodeAdd(nodeState);\n return ()=>{\n _nextdevtools.dispatcher.segmentExplorerNodeRemove(nodeState);\n };\n }, [\n nodeState\n ]);\n return null;\n}\nfunction NotFoundSegmentNode() {\n (0, _notfound.notFound)();\n}\nfunction ErrorSegmentNode() {\n throw Object.defineProperty(new Error(SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\nconst forever = new Promise(()=>{});\nfunction LoadingSegmentNode() {\n (0, _react.use)(forever);\n return null;\n}\nfunction SegmentViewStateNode(param) {\n let { page } = param;\n (0, _react.useLayoutEffect)(()=>{\n _nextdevtools.dispatcher.segmentExplorerUpdateRouteState(page);\n return ()=>{\n _nextdevtools.dispatcher.segmentExplorerUpdateRouteState('');\n };\n }, [\n page\n ]);\n return null;\n}\nfunction SegmentBoundaryTriggerNode() {\n const { boundaryType } = useSegmentState();\n let segmentNode = null;\n if (boundaryType === 'loading') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingSegmentNode, {});\n } else if (boundaryType === 'not-found') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(NotFoundSegmentNode, {});\n } else if (boundaryType === 'error') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorSegmentNode, {});\n }\n return segmentNode;\n}\nfunction SegmentViewNode(param) {\n let { type, pagePath, children } = param;\n const segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentTrieNode, {\n type: type,\n pagePath: pagePath\n }, type);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n segmentNode,\n children\n ]\n });\n}\nconst SegmentStateContext = /*#__PURE__*/ (0, _react.createContext)({\n boundaryType: null,\n setBoundaryType: ()=>{}\n});\nfunction SegmentStateProvider(param) {\n let { children } = param;\n const [boundaryType, setBoundaryType] = (0, _react.useState)(null);\n const [errorBoundaryKey, setErrorBoundaryKey] = (0, _react.useState)(0);\n const reloadBoundary = (0, _react.useCallback)(()=>setErrorBoundaryKey((prev)=>prev + 1), []);\n const setBoundaryTypeAndReload = (0, _react.useCallback)((type)=>{\n if (type === null) {\n reloadBoundary();\n }\n setBoundaryType(type);\n }, [\n reloadBoundary\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentStateContext.Provider, {\n value: {\n boundaryType,\n setBoundaryType: setBoundaryTypeAndReload\n },\n children: children\n }, errorBoundaryKey);\n}\nfunction useSegmentState() {\n return (0, _react.useContext)(SegmentStateContext);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=segment-explorer-node.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBcUJhQSx3Q0FBd0M7ZUFBeENBOztJQStER0MsMEJBQTBCO2VBQTFCQTs7SUEwQ0FDLG9CQUFvQjtlQUFwQkE7O0lBN0JBQyxlQUFlO2VBQWZBOztJQXZCQUMsb0JBQW9CO2VBQXBCQTs7SUFzRkFDLGVBQWU7ZUFBZkE7Ozs7bUNBdEpUOzBDQUVvQjtzQ0FDRjtBQVFsQixNQUFNTCwyQ0FDWDtBQVNGLFNBQVNNLGdCQUFnQixLQU14QjtJQU53QixNQUN2QkMsSUFBSSxFQUNKQyxRQUFRLEVBSVQsR0FOd0I7SUFPdkIsTUFBTSxFQUFFQyxZQUFZLEVBQUVDLGVBQWUsRUFBRSxHQUFHTDtJQUMxQyxNQUFNTSxZQUE4QkMsQ0FBQUEsR0FBQUEsT0FBQUEsT0FBQUEsRUFBUTtRQUMxQyxPQUFPO1lBQ0xMO1lBQ0FDO1lBQ0FDO1lBQ0FDO1FBQ0Y7SUFDRixHQUFHO1FBQUNIO1FBQU1DO1FBQVVDO1FBQWNDO0tBQWdCO0lBRWxELHdFQUF3RTtJQUN4RSxvRUFBb0U7SUFDcEVHLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO1FBQ2RDLGNBQUFBLFVBQVUsQ0FBQ0Msc0JBQXNCLENBQUNKO1FBQ2xDLE9BQU87WUFDTEcsY0FBQUEsVUFBVSxDQUFDRSx5QkFBeUIsQ0FBQ0w7UUFDdkM7SUFDRixHQUFHO1FBQUNBO0tBQVU7SUFFZCxPQUFPO0FBQ1Q7QUFFQSxTQUFTTTtJQUNQQyxDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQTtBQUNGO0FBRUEsU0FBU0M7SUFDUCxNQUFNLHFCQUFtRCxDQUFuRCxJQUFJQyxNQUFNcEIsMkNBQVY7ZUFBQTtvQkFBQTtzQkFBQTtJQUFrRDtBQUMxRDtBQUVBLE1BQU1xQixVQUFVLElBQUlDLFFBQVEsS0FBTztBQUNuQyxTQUFTQztJQUNQQyxDQUFBQSxHQUFBQSxPQUFBQSxHQUFBQSxFQUFJSDtJQUNKLE9BQU87QUFDVDtBQUVPLFNBQVNqQixxQkFBcUIsS0FBMEI7SUFBMUIsTUFBRXFCLElBQUksRUFBb0IsR0FBMUI7SUFDbkNaLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO1FBQ2RDLGNBQUFBLFVBQVUsQ0FBQ1ksK0JBQStCLENBQUNEO1FBQzNDLE9BQU87WUFDTFgsY0FBQUEsVUFBVSxDQUFDWSwrQkFBK0IsQ0FBQztRQUM3QztJQUNGLEdBQUc7UUFBQ0Q7S0FBSztJQUNULE9BQU87QUFDVDtBQUVPLFNBQVN4QjtJQUNkLE1BQU0sRUFBRVEsWUFBWSxFQUFFLEdBQUdKO0lBQ3pCLElBQUlzQixjQUErQjtJQUNuQyxJQUFJbEIsaUJBQWlCLFdBQVc7UUFDOUJrQixjQUFBQSxXQUFBQSxHQUFjLHFCQUFDSixvQkFBQUEsQ0FBQUE7SUFDakIsT0FBTyxJQUFJZCxpQkFBaUIsYUFBYTtRQUN2Q2tCLGNBQUFBLFdBQUFBLEdBQWMscUJBQUNWLHFCQUFBQSxDQUFBQTtJQUNqQixPQUFPLElBQUlSLGlCQUFpQixTQUFTO1FBQ25Da0IsY0FBYyxXQUFkQSxHQUFjLHFCQUFDUixrQkFBQUEsQ0FBQUE7SUFDakI7SUFDQSxPQUFPUTtBQUNUO0FBRU8sU0FBU3hCLGdCQUFnQixLQVEvQjtJQVIrQixNQUM5QkksSUFBSSxFQUNKQyxRQUFRLEVBQ1JvQixRQUFRLEVBS1QsR0FSK0I7SUFTOUIsTUFBTUQsY0FDSixXQURJQSxHQUNKLHFCQUFDckIsaUJBQUFBO1FBQTJCQyxNQUFNQTtRQUFNQyxVQUFVQTtPQUE1QkQ7SUFHeEIscUJBQ0U7O1lBQ0dvQjtZQUNBQzs7O0FBR1A7QUFFQSxNQUFNQyxzQkFBQUEsV0FBQUEsR0FBc0JDLENBQUFBLEdBQUFBLE9BQUFBLGFBQUFBLEVBR3pCO0lBQ0RyQixjQUFjO0lBQ2RDLGlCQUFpQixLQUFPO0FBQzFCO0FBRU8sU0FBU1IscUJBQXFCLEtBQXFDO0lBQXJDLE1BQUUwQixRQUFRLEVBQTJCLEdBQXJDO0lBQ25DLE1BQU0sQ0FBQ25CLGNBQWNDLGdCQUFnQixHQUFHcUIsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFDdEM7SUFHRixNQUFNLENBQUNDLGtCQUFrQkMsb0JBQW9CLEdBQUdGLENBQUFBLEdBQUFBLE9BQUFBLFFBQUFBLEVBQVM7SUFDekQsTUFBTUcsaUJBQWlCQyxDQUFBQSxHQUFBQSxPQUFBQSxXQUFBQSxFQUNyQixJQUFNRixvQkFBb0IsQ0FBQ0csT0FBU0EsT0FBTyxJQUMzQyxFQUFFO0lBR0osTUFBTUMsMkJBQTJCRixDQUFBQSxHQUFBQSxPQUFBQSxXQUFBQSxFQUMvQixDQUFDNUI7UUFDQyxJQUFJQSxTQUFTLE1BQU07WUFDakIyQjtRQUNGO1FBQ0F4QixnQkFBZ0JIO0lBQ2xCLEdBQ0E7UUFBQzJCO0tBQWU7SUFHbEIscUJBQ0UscUJBQUNMLG9CQUFvQlMsUUFBUTtRQUUzQkMsT0FBTztZQUNMOUI7WUFDQUMsaUJBQWlCMkI7UUFDbkI7a0JBRUNUO09BTklJO0FBU1g7QUFFTyxTQUFTM0I7SUFDZCxPQUFPbUMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV1g7QUFDcEIiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIHVzZVN0YXRlLFxuICBjcmVhdGVDb250ZXh0LFxuICB1c2VDb250ZXh0LFxuICB1c2UsXG4gIHVzZU1lbW8sXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZGlzcGF0Y2hlciB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LWRldnRvb2xzJ1xuaW1wb3J0IHsgbm90Rm91bmQgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQnXG5cbmV4cG9ydCB0eXBlIFNlZ21lbnRCb3VuZGFyeVR5cGUgPVxuICB8ICdub3QtZm91bmQnXG4gIHwgJ2Vycm9yJ1xuICB8ICdsb2FkaW5nJ1xuICB8ICdnbG9iYWwtZXJyb3InXG5cbmV4cG9ydCBjb25zdCBTRUdNRU5UX0VYUExPUkVSX1NJTVVMQVRFRF9FUlJPUl9NRVNTQUdFID1cbiAgJ05FWFRfREVWVE9PTFNfU0lNVUxBVEVEX0VSUk9SJ1xuXG5leHBvcnQgdHlwZSBTZWdtZW50Tm9kZVN0YXRlID0ge1xuICB0eXBlOiBzdHJpbmdcbiAgcGFnZVBhdGg6IHN0cmluZ1xuICBib3VuZGFyeVR5cGU6IHN0cmluZyB8IG51bGxcbiAgc2V0Qm91bmRhcnlUeXBlOiAodHlwZTogU2VnbWVudEJvdW5kYXJ5VHlwZSB8IG51bGwpID0+IHZvaWRcbn1cblxuZnVuY3Rpb24gU2VnbWVudFRyaWVOb2RlKHtcbiAgdHlwZSxcbiAgcGFnZVBhdGgsXG59OiB7XG4gIHR5cGU6IHN0cmluZ1xuICBwYWdlUGF0aDogc3RyaW5nXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgeyBib3VuZGFyeVR5cGUsIHNldEJvdW5kYXJ5VHlwZSB9ID0gdXNlU2VnbWVudFN0YXRlKClcbiAgY29uc3Qgbm9kZVN0YXRlOiBTZWdtZW50Tm9kZVN0YXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGUsXG4gICAgICBwYWdlUGF0aCxcbiAgICAgIGJvdW5kYXJ5VHlwZSxcbiAgICAgIHNldEJvdW5kYXJ5VHlwZSxcbiAgICB9XG4gIH0sIFt0eXBlLCBwYWdlUGF0aCwgYm91bmRhcnlUeXBlLCBzZXRCb3VuZGFyeVR5cGVdKVxuXG4gIC8vIFVzZSBgdXNlTGF5b3V0RWZmZWN0YCB0byBlbnN1cmUgdGhlIHN0YXRlIGlzIHVwZGF0ZWQgZHVyaW5nIHN1c3BlbnNlLlxuICAvLyBgdXNlRWZmZWN0YCB3b24ndCB3b3JrIGFzIHRoZSBzdGF0ZSBpcyBwcmVzZXJ2ZWQgZHVyaW5nIHN1c3BlbnNlLlxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoZXIuc2VnbWVudEV4cGxvcmVyTm9kZUFkZChub2RlU3RhdGUpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRpc3BhdGNoZXIuc2VnbWVudEV4cGxvcmVyTm9kZVJlbW92ZShub2RlU3RhdGUpXG4gICAgfVxuICB9LCBbbm9kZVN0YXRlXSlcblxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBOb3RGb3VuZFNlZ21lbnROb2RlKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIG5vdEZvdW5kKClcbn1cblxuZnVuY3Rpb24gRXJyb3JTZWdtZW50Tm9kZSgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICB0aHJvdyBuZXcgRXJyb3IoU0VHTUVOVF9FWFBMT1JFUl9TSU1VTEFURURfRVJST1JfTUVTU0FHRSlcbn1cblxuY29uc3QgZm9yZXZlciA9IG5ldyBQcm9taXNlKCgpID0+IHt9KVxuZnVuY3Rpb24gTG9hZGluZ1NlZ21lbnROb2RlKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIHVzZShmb3JldmVyKVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VnbWVudFZpZXdTdGF0ZU5vZGUoeyBwYWdlIH06IHsgcGFnZTogc3RyaW5nIH0pIHtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaGVyLnNlZ21lbnRFeHBsb3JlclVwZGF0ZVJvdXRlU3RhdGUocGFnZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZGlzcGF0Y2hlci5zZWdtZW50RXhwbG9yZXJVcGRhdGVSb3V0ZVN0YXRlKCcnKVxuICAgIH1cbiAgfSwgW3BhZ2VdKVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUoKSB7XG4gIGNvbnN0IHsgYm91bmRhcnlUeXBlIH0gPSB1c2VTZWdtZW50U3RhdGUoKVxuICBsZXQgc2VnbWVudE5vZGU6IFJlYWN0LlJlYWN0Tm9kZSA9IG51bGxcbiAgaWYgKGJvdW5kYXJ5VHlwZSA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgc2VnbWVudE5vZGUgPSA8TG9hZGluZ1NlZ21lbnROb2RlIC8+XG4gIH0gZWxzZSBpZiAoYm91bmRhcnlUeXBlID09PSAnbm90LWZvdW5kJykge1xuICAgIHNlZ21lbnROb2RlID0gPE5vdEZvdW5kU2VnbWVudE5vZGUgLz5cbiAgfSBlbHNlIGlmIChib3VuZGFyeVR5cGUgPT09ICdlcnJvcicpIHtcbiAgICBzZWdtZW50Tm9kZSA9IDxFcnJvclNlZ21lbnROb2RlIC8+XG4gIH1cbiAgcmV0dXJuIHNlZ21lbnROb2RlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTZWdtZW50Vmlld05vZGUoe1xuICB0eXBlLFxuICBwYWdlUGF0aCxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIHR5cGU6IHN0cmluZ1xuICBwYWdlUGF0aDogc3RyaW5nXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3Qgc2VnbWVudE5vZGUgPSAoXG4gICAgPFNlZ21lbnRUcmllTm9kZSBrZXk9e3R5cGV9IHR5cGU9e3R5cGV9IHBhZ2VQYXRoPXtwYWdlUGF0aH0gLz5cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtzZWdtZW50Tm9kZX1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKVxufVxuXG5jb25zdCBTZWdtZW50U3RhdGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDx7XG4gIGJvdW5kYXJ5VHlwZTogU2VnbWVudEJvdW5kYXJ5VHlwZSB8IG51bGxcbiAgc2V0Qm91bmRhcnlUeXBlOiAodHlwZTogU2VnbWVudEJvdW5kYXJ5VHlwZSB8IG51bGwpID0+IHZvaWRcbn0+KHtcbiAgYm91bmRhcnlUeXBlOiBudWxsLFxuICBzZXRCb3VuZGFyeVR5cGU6ICgpID0+IHt9LFxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIFNlZ21lbnRTdGF0ZVByb3ZpZGVyKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgW2JvdW5kYXJ5VHlwZSwgc2V0Qm91bmRhcnlUeXBlXSA9IHVzZVN0YXRlPFNlZ21lbnRCb3VuZGFyeVR5cGUgfCBudWxsPihcbiAgICBudWxsXG4gIClcblxuICBjb25zdCBbZXJyb3JCb3VuZGFyeUtleSwgc2V0RXJyb3JCb3VuZGFyeUtleV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCByZWxvYWRCb3VuZGFyeSA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IHNldEVycm9yQm91bmRhcnlLZXkoKHByZXYpID0+IHByZXYgKyAxKSxcbiAgICBbXVxuICApXG5cbiAgY29uc3Qgc2V0Qm91bmRhcnlUeXBlQW5kUmVsb2FkID0gdXNlQ2FsbGJhY2soXG4gICAgKHR5cGU6IFNlZ21lbnRCb3VuZGFyeVR5cGUgfCBudWxsKSA9PiB7XG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICByZWxvYWRCb3VuZGFyeSgpXG4gICAgICB9XG4gICAgICBzZXRCb3VuZGFyeVR5cGUodHlwZSlcbiAgICB9LFxuICAgIFtyZWxvYWRCb3VuZGFyeV1cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFNlZ21lbnRTdGF0ZUNvbnRleHQuUHJvdmlkZXJcbiAgICAgIGtleT17ZXJyb3JCb3VuZGFyeUtleX1cbiAgICAgIHZhbHVlPXt7XG4gICAgICAgIGJvdW5kYXJ5VHlwZSxcbiAgICAgICAgc2V0Qm91bmRhcnlUeXBlOiBzZXRCb3VuZGFyeVR5cGVBbmRSZWxvYWQsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NlZ21lbnRTdGF0ZUNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlZ21lbnRTdGF0ZSgpIHtcbiAgcmV0dXJuIHVzZUNvbnRleHQoU2VnbWVudFN0YXRlQ29udGV4dClcbn1cbiJdLCJuYW1lcyI6WyJTRUdNRU5UX0VYUExPUkVSX1NJTVVMQVRFRF9FUlJPUl9NRVNTQUdFIiwiU2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUiLCJTZWdtZW50U3RhdGVQcm92aWRlciIsIlNlZ21lbnRWaWV3Tm9kZSIsIlNlZ21lbnRWaWV3U3RhdGVOb2RlIiwidXNlU2VnbWVudFN0YXRlIiwiU2VnbWVudFRyaWVOb2RlIiwidHlwZSIsInBhZ2VQYXRoIiwiYm91bmRhcnlUeXBlIiwic2V0Qm91bmRhcnlUeXBlIiwibm9kZVN0YXRlIiwidXNlTWVtbyIsInVzZUxheW91dEVmZmVjdCIsImRpc3BhdGNoZXIiLCJzZWdtZW50RXhwbG9yZXJOb2RlQWRkIiwic2VnbWVudEV4cGxvcmVyTm9kZVJlbW92ZSIsIk5vdEZvdW5kU2VnbWVudE5vZGUiLCJub3RGb3VuZCIsIkVycm9yU2VnbWVudE5vZGUiLCJFcnJvciIsImZvcmV2ZXIiLCJQcm9taXNlIiwiTG9hZGluZ1NlZ21lbnROb2RlIiwidXNlIiwicGFnZSIsInNlZ21lbnRFeHBsb3JlclVwZGF0ZVJvdXRlU3RhdGUiLCJzZWdtZW50Tm9kZSIsImNoaWxkcmVuIiwiU2VnbWVudFN0YXRlQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VTdGF0ZSIsImVycm9yQm91bmRhcnlLZXkiLCJzZXRFcnJvckJvdW5kYXJ5S2V5IiwicmVsb2FkQm91bmRhcnkiLCJ1c2VDYWxsYmFjayIsInByZXYiLCJzZXRCb3VuZGFyeVR5cGVBbmRSZWxvYWQiLCJQcm92aWRlciIsInZhbHVlIiwidXNlQ29udGV4dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js": /*!***************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js ***! \***************************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getIsTerminalLoggingEnabled: function() {\n return getIsTerminalLoggingEnabled;\n },\n getTerminalLoggingConfig: function() {\n return getTerminalLoggingConfig;\n }\n});\nfunction getTerminalLoggingConfig() {\n try {\n return JSON.parse(\"false\" || 0);\n } catch (e) {\n return false;\n }\n}\nfunction getIsTerminalLoggingEnabled() {\n const config = getTerminalLoggingConfig();\n return Boolean(config);\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=terminal-logging-config.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC90ZXJtaW5hbC1sb2dnaW5nLWNvbmZpZy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsMEJBQTBCLE9BQWlELElBQUksQ0FBTztBQUN0RixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvdGVybWluYWwtbG9nZ2luZy1jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRJc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ6IG51bGwsXG4gICAgZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldElzVGVybWluYWxMb2dnaW5nRW5hYmxlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRJc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ7XG4gICAgfSxcbiAgICBnZXRUZXJtaW5hbExvZ2dpbmdDb25maWc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnKCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHByb2Nlc3MuZW52Ll9fTkVYVF9CUk9XU0VSX0RFQlVHX0lORk9fSU5fVEVSTUlOQUwgfHwgJ2ZhbHNlJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0SXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldFRlcm1pbmFsTG9nZ2luZ0NvbmZpZygpO1xuICAgIHJldHVybiBCb29sZWFuKGNvbmZpZyk7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRlcm1pbmFsLWxvZ2dpbmctY29uZmlnLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js": /*!*******************************************************************************************!*\ !*** ./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js ***! \*******************************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useAppDevRenderingIndicator\", ({\n enumerable: true,\n get: function() {\n return useAppDevRenderingIndicator;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst useAppDevRenderingIndicator = ()=>{\n const [isPending, startTransition] = (0, _react.useTransition)();\n (0, _react.useEffect)(()=>{\n if (isPending) {\n _nextdevtools.dispatcher.renderingIndicatorShow();\n } else {\n _nextdevtools.dispatcher.renderingIndicatorHide();\n }\n }, [\n isPending\n ]);\n return startTransition;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-app-dev-rendering-indicator.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL3VzZS1hcHAtZGV2LXJlbmRlcmluZy1pbmRpY2F0b3IuanMiLCJtYXBwaW5ncyI6Ijs7OzsrREFLYUE7OztlQUFBQTs7O21DQUg0QjswQ0FDZDtBQUVwQixNQUFNQSw4QkFBOEI7SUFDekMsTUFBTSxDQUFDQyxXQUFXQyxnQkFBZ0IsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUE7SUFFckNDLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixJQUFJSCxXQUFXO1lBQ2JJLGNBQUFBLFVBQVUsQ0FBQ0Msc0JBQXNCO1FBQ25DLE9BQU87WUFDTEQsY0FBQUEsVUFBVSxDQUFDRSxzQkFBc0I7UUFDbkM7SUFDRixHQUFHO1FBQUNOO0tBQVU7SUFFZCxPQUFPQztBQUNUIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvdXNlLWFwcC1kZXYtcmVuZGVyaW5nLWluZGljYXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlVHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZGlzcGF0Y2hlciB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LWRldnRvb2xzJ1xuXG5leHBvcnQgY29uc3QgdXNlQXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yID0gKCkgPT4ge1xuICBjb25zdCBbaXNQZW5kaW5nLCBzdGFydFRyYW5zaXRpb25dID0gdXNlVHJhbnNpdGlvbigpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNQZW5kaW5nKSB7XG4gICAgICBkaXNwYXRjaGVyLnJlbmRlcmluZ0luZGljYXRvclNob3coKVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaGVyLnJlbmRlcmluZ0luZGljYXRvckhpZGUoKVxuICAgIH1cbiAgfSwgW2lzUGVuZGluZ10pXG5cbiAgcmV0dXJuIHN0YXJ0VHJhbnNpdGlvblxufVxuIl0sIm5hbWVzIjpbInVzZUFwcERldlJlbmRlcmluZ0luZGljYXRvciIsImlzUGVuZGluZyIsInN0YXJ0VHJhbnNpdGlvbiIsInVzZVRyYW5zaXRpb24iLCJ1c2VFZmZlY3QiLCJkaXNwYXRjaGVyIiwicmVuZGVyaW5nSW5kaWNhdG9yU2hvdyIsInJlbmRlcmluZ0luZGljYXRvckhpZGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/dynamic-rendering.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Postpone: function() {\n return Postpone;\n },\n PreludeState: function() {\n return PreludeState;\n },\n abortAndThrowOnSynchronousRequestDataAccess: function() {\n return abortAndThrowOnSynchronousRequestDataAccess;\n },\n abortOnSynchronousPlatformIOAccess: function() {\n return abortOnSynchronousPlatformIOAccess;\n },\n accessedDynamicData: function() {\n return accessedDynamicData;\n },\n annotateDynamicAccess: function() {\n return annotateDynamicAccess;\n },\n consumeDynamicAccess: function() {\n return consumeDynamicAccess;\n },\n createDynamicTrackingState: function() {\n return createDynamicTrackingState;\n },\n createDynamicValidationState: function() {\n return createDynamicValidationState;\n },\n createHangingInputAbortSignal: function() {\n return createHangingInputAbortSignal;\n },\n createRenderInBrowserAbortSignal: function() {\n return createRenderInBrowserAbortSignal;\n },\n delayUntilRuntimeStage: function() {\n return delayUntilRuntimeStage;\n },\n formatDynamicAPIAccesses: function() {\n return formatDynamicAPIAccesses;\n },\n getFirstDynamicReason: function() {\n return getFirstDynamicReason;\n },\n isDynamicPostpone: function() {\n return isDynamicPostpone;\n },\n isPrerenderInterruptedError: function() {\n return isPrerenderInterruptedError;\n },\n logDisallowedDynamicError: function() {\n return logDisallowedDynamicError;\n },\n markCurrentScopeAsDynamic: function() {\n return markCurrentScopeAsDynamic;\n },\n postponeWithTracking: function() {\n return postponeWithTracking;\n },\n throwIfDisallowedDynamic: function() {\n return throwIfDisallowedDynamic;\n },\n throwToInterruptStaticGeneration: function() {\n return throwToInterruptStaticGeneration;\n },\n trackAllowedDynamicAccess: function() {\n return trackAllowedDynamicAccess;\n },\n trackDynamicDataInDynamicRender: function() {\n return trackDynamicDataInDynamicRender;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\n },\n warnOnSyncDynamicError: function() {\n return warnOnSyncDynamicError;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _boundaryconstants = __webpack_require__(/*! ../../lib/framework/boundary-constants */ \"(ssr)/./node_modules/next/dist/lib/framework/boundary-constants.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(ssr)/./node_modules/next/dist/lib/scheduler.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst hasPostpone = typeof _react.default.unstable_postpone === 'function';\nfunction createDynamicTrackingState(isDebugDynamicAccesses) {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: []\n };\n}\nfunction getFirstDynamicReason(trackingState) {\n var _trackingState_dynamicAccesses_;\n return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;\n}\nfunction markCurrentScopeAsDynamic(store, workUnitStore, expression) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return;\n if (store.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E553\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-ppr':\n return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n case 'prerender-legacy':\n workUnitStore.revalidate = 0;\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E550\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n workUnitStore;\n }\n }\n}\nfunction throwToInterruptStaticGeneration(expression, store, prerenderStore) {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n workUnitStore;\n }\n}\nfunction abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;\n const error = createPrerenderInterruptedError(reason);\n prerenderStore.controller.abort(error);\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n}\nfunction trackSynchronousPlatformIOAccessInDev(requestStore) {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of prerender mode\n requestStore.prerenderPhase = false;\n}\nfunction abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {\n const prerenderSignal = prerenderStore.controller.signal;\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n }\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\n}\nfunction warnOnSyncDynamicError(dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack) {\n // the server did something sync dynamic, likely\n // leading to an early termination of the prerender.\n console.error(dynamicTracking.syncDynamicErrorWithStack);\n }\n}\nconst trackSynchronousRequestDataAccessInDev = trackSynchronousPlatformIOAccessInDev;\nfunction Postpone({ reason, route }) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;\n postponeWithTracking(route, reason, dynamicTracking);\n}\nfunction postponeWithTracking(route, expression, dynamicTracking) {\n assertPostpone();\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n _react.default.unstable_postpone(createPostponeReason(route, expression));\n}\nfunction createPostponeReason(route, expression) {\n return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;\n}\nfunction isDynamicPostpone(err) {\n if (typeof err === 'object' && err !== null && typeof err.message === 'string') {\n return isDynamicPostponeReason(err.message);\n }\n return false;\n}\nfunction isDynamicPostponeReason(reason) {\n return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');\n}\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E296\",\n enumerable: false,\n configurable: true\n });\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = NEXT_PRERENDER_INTERRUPTED;\n return error;\n}\nfunction isPrerenderInterruptedError(error) {\n return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;\n}\nfunction accessedDynamicData(dynamicAccesses) {\n return dynamicAccesses.length > 0;\n}\nfunction consumeDynamicAccess(serverDynamic, clientDynamic) {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);\n return serverDynamic.dynamicAccesses;\n}\nfunction formatDynamicAPIAccesses(dynamicAccesses) {\n return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{\n stack = stack.split('\\n') // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4).filter((line)=>{\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false;\n }\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false;\n }\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false;\n }\n return true;\n }).join('\\n');\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`;\n });\n}\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), \"__NEXT_ERROR_CODE\", {\n value: \"E224\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction createRenderInBrowserAbortSignal() {\n const controller = new AbortController();\n controller.abort(Object.defineProperty(new _bailouttocsr.BailoutToCSRError('Render in Browser'), \"__NEXT_ERROR_CODE\", {\n value: \"E721\",\n enumerable: false,\n configurable: true\n }));\n return controller.signal;\n}\nfunction createHangingInputAbortSignal(workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController();\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(()=>{\n controller.abort();\n });\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = (0, _workunitasyncstorageexternal.getRuntimeStagePromise)(workUnitStore);\n if (runtimeStagePromise) {\n runtimeStagePromise.then(()=>(0, _scheduler.scheduleOnNextTick)(()=>controller.abort()));\n } else {\n (0, _scheduler.scheduleOnNextTick)(()=>controller.abort());\n }\n }\n return controller.signal;\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined;\n default:\n workUnitStore;\n }\n}\nfunction annotateDynamicAccess(expression, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction useDynamicRouteParams(expression) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore && workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-client':\n case 'prerender':\n {\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression));\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n }\n break;\n }\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError(`\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E771\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError(`\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E745\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/;\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6';\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`);\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true;\n return;\n } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true;\n dynamicValidation.hasSuspenseAboveBody = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);\n return;\n } else {\n const message = `Route \"${workStore.route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentOrOwnerStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */ function createErrorWithComponentOrOwnerStack(message, componentStack) {\n const ownerStack = true && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);\n return error;\n}\nvar PreludeState = /*#__PURE__*/ function(PreludeState) {\n PreludeState[PreludeState[\"Full\"] = 0] = \"Full\";\n PreludeState[PreludeState[\"Empty\"] = 1] = \"Empty\";\n PreludeState[PreludeState[\"Errored\"] = 2] = \"Errored\";\n return PreludeState;\n}({});\nfunction logDisallowedDynamicError(workStore, error) {\n console.error(error);\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`);\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`);\n }\n }\n}\nfunction throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {\n if (prelude !== 0) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return;\n }\n if (serverDynamic.syncDynamicErrorWithStack) {\n // There is no shell and the server did something sync dynamic likely\n // leading to an early termination of the prerender before the shell\n // could be completed. We terminate the build/validating render.\n logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n for(let i = 0; i < dynamicErrors.length; i++){\n logDisallowedDynamicError(workStore, dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(`Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (prelude === 1) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n } else {\n if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {\n console.error(`Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n }\n}\nfunction delayUntilRuntimeStage(prerenderStore, result) {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(()=>result);\n }\n return result;\n} //# sourceMappingURL=dynamic-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CQzs7Ozs7Ozs7Ozs7O0lBNlZlQSxRQUFRO2VBQVJBOztJQTRYSkMsWUFBWTtlQUFaQTs7SUFwYklDLDJDQUEyQztlQUEzQ0E7O0lBckNBQyxrQ0FBa0M7ZUFBbENBOztJQXVMQUMsbUJBQW1CO2VBQW5CQTs7SUFrSUFDLHFCQUFxQjtlQUFyQkE7O0lBNUhBQyxvQkFBb0I7ZUFBcEJBOztJQXJYQUMsMEJBQTBCO2VBQTFCQTs7SUFVQUMsNEJBQTRCO2VBQTVCQTs7SUFtYkFDLDZCQUE2QjtlQUE3QkE7O0lBWEFDLGdDQUFnQztlQUFoQ0E7O0lBOFRBQyx3QkFBc0I7ZUFBdEJBOztJQWhYQUMsd0JBQXdCO2VBQXhCQTs7SUE1V0FDLHFCQUFxQjtlQUFyQkE7O0lBc1NBQyxpQkFBaUI7ZUFBakJBOztJQXdDQUMsMkJBQTJCO2VBQTNCQTs7SUFxVEFDLHlCQUF5QjtlQUF6QkE7O0lBdG5CQUMseUJBQXlCO2VBQXpCQTs7SUE2UEFDLG9CQUFvQjtlQUFwQkE7O0lBNFlBQyx3QkFBd0I7ZUFBeEJBOztJQS9qQkFDLGdDQUFnQztlQUFoQ0E7O0lBdWVBQyx5QkFBeUI7ZUFBekJBOztJQTljQUMsK0JBQStCO2VBQS9CQTs7SUF1RUFDLHFDQUFxQztlQUFyQ0E7O0lBZ0VIQyxzQ0FBc0M7ZUFBdENBOztJQXFQR0MscUJBQXFCO2VBQXJCQTs7SUE5UEFDLHNCQUFzQjtlQUF0QkE7OzswRUE5VEU7Z0RBRWlCO3FEQUNHOzBEQUkvQjtzREFDMEI7bURBQ0U7K0NBTTVCO3VDQUM0QjswQ0FDRDs0Q0FDSDs7Ozs7O0FBRS9CLE1BQU1DLGNBQWMsT0FBT0MsT0FBQUEsT0FBSyxDQUFDQyxpQkFBaUIsS0FBSztBQXdDaEQsU0FBU3RCLDJCQUNkdUIsc0JBQTJDO0lBRTNDLE9BQU87UUFD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YWkvc3JjL3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGZ1bmN0aW9ucyBwcm92aWRlZCBieSB0aGlzIG1vZHVsZSBhcmUgdXNlZCB0byBjb21tdW5pY2F0ZSBjZXJ0YWluIHByb3BlcnRpZXNcbiAqIGFib3V0IHRoZSBjdXJyZW50bHkgcnVubmluZyBjb2RlIHNvIHRoYXQgTmV4dC5qcyBjYW4gbWFrZSBkZWNpc2lvbnMgb24gaG93IHRvIGhhbmRsZVxuICogdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGluIGRpZmZlcmVudCByZW5kZXJpbmcgbW9kZXMgc3VjaCBhcyBwcmUtcmVuZGVyaW5nLCByZXN1bWluZywgYW5kIFNTUi5cbiAqXG4gKiBUb2RheSBOZXh0LmpzIHRyZWF0cyBhbGwgY29kZSBhcyBwb3RlbnRpYWxseSBzdGF0aWMuIENlcnRhaW4gQVBJcyBtYXkgb25seSBtYWtlIHNlbnNlIHdoZW4gZHluYW1pY2FsbHkgcmVuZGVyaW5nLlxuICogVHJhZGl0aW9uYWxseSB0aGlzIG1lYW50IGRlb3B0aW5nIHRoZSBlbnRpcmUgcmVuZGVyIHRvIGR5bmFtaWMgaG93ZXZlciB3aXRoIFBQUiB3ZSBjYW4gbm93IGRlb3B0IHBhcnRzXG4gKiBvZiBhIFJlYWN0IHRyZWUgYXMgZHluYW1pYyB3aGlsZSBzdGlsbCBrZWVwaW5nIG90aGVyIHBhcnRzIHN0YXRpYy4gVGhlcmUgYXJlIHJlYWxseSB0d28gZGlmZmVyZW50IGtpbmRzIG9mXG4gKiBEeW5hbWljIGluZGljYXRpb25zLlxuICpcbiAqIFRoZSBmaXJzdCBpcyBzaW1wbHkgYW4gaW50ZW50aW9uIHRvIGJlIGR5bmFtaWMuIHVuc3RhYmxlX25vU3RvcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHdoZXJlXG4gKiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb2RlIHNpbXBseSBkZWNsYXJlcyB0aGF0IHRoZSBjdXJyZW50IHNjb3BlIGlzIGR5bmFtaWMgYnV0IGlmIHlvdSB1c2UgaXRcbiAqIGluc2lkZSB1bnN0YWJsZV9jYWNoZSBpdCBjYW4gc3RpbGwgYmUgY2FjaGVkLiBUaGlzIHR5cGUgb2YgaW5kaWNhdGlvbiBjYW4gYmUgcmVtb3ZlZCBpZiB3ZSBldmVyXG4gKiBtYWtlIHRoZSBkZWZhdWx0IGR5bmFtaWMgdG8gYmVnaW4gd2l0aCBiZWNhdXNlIHRoZSBvbmx5IHdheSB5b3Ugd291bGQgZXZlciBiZSBzdGF0aWMgaXMgaW5zaWRlXG4gKiBhIGNhY2hlIHNjb3BlIHdoaWNoIHRoaXMgaW5kaWNhdGlvbiBkb2VzIG5vdCBhZmZlY3QuXG4gKlxuICogVGhlIHNlY29uZCBpcyBhbiBpbmRpY2F0aW9uIHRoYXQgYSBkeW5hbWljIGRhdGEgc291cmNlIHdhcyByZWFkLiBUaGlzIGlzIGEgc3Ryb25nZXIgZm9ybSBvZiBkeW5hbWljXG4gKiBiZWNhdXNlIGl0IG1lYW5zIHRoYXQgaXQgaXMgaW5hcHByb3ByaWF0ZSB0byBjYWNoZSB0aGlzIGF0IGFsbC4gdXNpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlIGluc2lkZVxuICogdW5zdGFibGVfY2FjaGUgc2hvdWxkIGVycm9yLiBJZiB5b3Ugd2FudCB0byB1c2Ugc29tZSBkeW5hbWljIGRhdGEgaW5zaWRlIHVuc3RhYmxlX2NhY2hlIHlvdSBzaG91bGRcbiAqIHJlYWQgdGhhdCBkYXRhIG91dHNpZGUgdGhlIGNhY2hlIGFuZCBwYXNzIGl0IGluIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBjYWNoZWQgZnVuY3Rpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXb3JrU3RvcmUgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHtcbiAgV29ya1VuaXRTdG9yZSxcbiAgUmVxdWVzdFN0b3JlLFxuICBQcmVyZW5kZXJTdG9yZUxlZ2FjeSxcbiAgUHJlcmVuZGVyU3RvcmVNb2Rlcm4sXG4gIFByZXJlbmRlclN0b3JlTW9kZXJuUnVudGltZSxcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcblxuLy8gT25jZSBwb3N0cG9uZSBpcyBpbiBzdGFibGUgd2Ugc2hvdWxkIHN3aXRjaCB0byBpbXBvcnRpbmcgdGhlIHBvc3Rwb25lIGV4cG9ydCBkaXJlY3RseVxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBEeW5hbWljU2VydmVyRXJyb3IgfSBmcm9tICcuLi8uLi9jbGllbnQvY29tcG9uZW50cy9ob29rcy1zZXJ2ZXItY29udGV4dCdcbmltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQge1xuICBnZXRSdW50aW1lU3RhZ2VQcm9taXNlLFxuICB3b3JrVW5pdEFzeW5jU3RvcmFnZSxcbn0gZnJvbSAnLi93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7IHdvcmtBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7IG1ha2VIYW5naW5nUHJvbWlzZSB9IGZyb20gJy4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHtcbiAgTUVUQURBVEFfQk9VTkRBUllfTkFNRSxcbiAgVklFV1BPUlRfQk9VTkRBUllfTkFNRSxcbiAgT1VUTEVUX0JPVU5EQVJZX05BTUUsXG4gIFJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUUsXG59IGZyb20gJy4uLy4uL2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzJ1xuaW1wb3J0IHsgc2NoZWR1bGVPbk5leHRUaWNrIH0gZnJvbSAnLi4vLi4vbGliL3NjaGVkdWxlcidcbmltcG9ydCB7IEJhaWxvdXRUb0NTUkVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3InXG5pbXBvcnQgeyBJbnZhcmlhbnRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yJ1xuXG5jb25zdCBoYXNQb3N0cG9uZSA9IHR5cGVvZiBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZSA9PT0gJ2Z1bmN0aW9uJ1xuXG5leHBvcnQgdHlwZSBEeW5hbWljQWNjZXNzID0ge1xuICAvKipcbiAgICogSWYgZGVidWdnaW5nLCB0aGlzIHdpbGwgY29udGFpbiB0aGUgc3RhY2sgdHJhY2Ugb2Ygd2hlcmUgdGhlIGR5bmFtaWMgYWNjZXNzXG4gICAqIG9jY3VycmVkLiBUaGlzIGlzIHVzZWQgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyIGFib3V0IHdoeVxuICAgKiB0aGVpciBwYWdlIGlzIGJlaW5nIHJlbmRlcmVkIGR5bmFtaWNhbGx5LlxuICAgKi9cbiAgc3RhY2s/OiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gdGhhdCB3YXMgYWNjZXNzZWQgZHluYW1pY2FsbHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBzdHJpbmdcbn1cblxuLy8gU3RvcmVzIGR5bmFtaWMgcmVhc29ucyB1c2VkIGR1cmluZyBhbiBSU0MgcmVuZGVyLlxuZXhwb3J0IHR5cGUgRHluYW1pY1RyYWNraW5nU3RhdGUgPSB7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHN0YWNrIGluZm9ybWF0aW9uIHdpbGwgYWxzbyBiZSB0cmFja2VkIGR1cmluZyBkeW5hbWljIGFjY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IGlzRGVidWdEeW5hbWljQWNjZXNzZXM6IGJvb2xlYW4gfCB1bmRlZmluZWRcblxuICAvKipcbiAgICogVGhlIGR5bmFtaWMgYWNjZXNzZXMgdGhhdCBvY2N1cnJlZCBkdXJpbmcgdGhlIHJlbmRlci5cbiAgICovXG4gIHJlYWRvbmx5IGR5bmFtaWNBY2Nlc3NlczogQXJyYXk8RHluYW1pY0FjY2Vzcz5cblxuICBzeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrOiBudWxsIHwgRXJyb3Jcbn1cblxuLy8gU3RvcmVzIGR5bmFtaWMgcmVhc29ucyB1c2VkIGR1cmluZyBhbiBTU1IgcmVuZGVyLlxuZXhwb3J0IHR5cGUgRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSA9IHtcbiAgaGFzU3VzcGVuc2VBYm92ZUJvZHk6IGJvb2xlYW5cbiAgaGFzRHluYW1pY01ldGFkYXRhOiBib29sZWFuXG4gIGhhc0R5bmFtaWNWaWV3cG9ydDogYm9vbGVhblxuICBoYXNBbGxvd2VkRHluYW1pYzogYm9vbGVhblxuICBkeW5hbWljRXJyb3JzOiBBcnJheTxFcnJvcj5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNUcmFja2luZ1N0YXRlKFxuICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzOiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBEeW5hbWljVHJhY2tpbmdTdGF0ZSB7XG4gIHJldHVybiB7XG4gICAgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyxcbiAgICBkeW5hbWljQWNjZXNzZXM6IFtdLFxuICAgIHN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s6IG51bGwsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNWYWxpZGF0aW9uU3RhdGUoKTogRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSB7XG4gIHJldHVybiB7XG4gICAgaGFzU3VzcGVuc2VBYm92ZUJvZHk6IGZhbHNlLFxuICAgIGhhc0R5bmFtaWNNZXRhZGF0YTogZmFsc2UsXG4gICAgaGFzRHluYW1pY1ZpZXdwb3J0OiBmYWxzZSxcbiAgICBoYXNBbGxvd2VkRHluYW1pYzogZmFsc2UsXG4gICAgZHluYW1pY0Vycm9yczogW10sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RHluYW1pY1JlYXNvbihcbiAgdHJhY2tpbmdTdGF0ZTogRHluYW1pY1RyYWNraW5nU3RhdGVcbik6IHVuZGVmaW5lZCB8IHN0cmluZyB7XG4gIHJldHVybiB0cmFja2luZ1N0YXRlLmR5bmFtaWNBY2Nlc3Nlc1swXT8uZXhwcmVzc2lvblxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gY29tbXVuaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgc2NvcGUgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZHluYW1pYy5cbiAqXG4gKiBJbiBtb3N0IGNhc2VzIHRoaXMgZnVuY3Rpb24gaXMgYSBuby1vcCBidXQgaWYgY2FsbGVkIGR1cmluZ1xuICogYSBQUFIgcHJlcmVuZGVyIGl0IHdpbGwgcG9zdHBvbmUgdGhlIGN1cnJlbnQgc3ViLXRyZWUgYW5kIGNhbGxpbmdcbiAqIGl0IGR1cmluZyBhIG5vcm1hbCBwcmVyZW5kZXIgd2lsbCBjYXVzZSB0aGUgZW50aXJlIHByZXJlbmRlciB0byBhYm9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya0N1cnJlbnRTY29wZUFzRHluYW1pYyhcbiAgc3RvcmU6IFdvcmtTdG9yZSxcbiAgd29ya1VuaXRTdG9yZTogdW5kZWZpbmVkIHwgRXhjbHVkZTxXb3JrVW5pdFN0b3JlLCBQcmVyZW5kZXJTdG9yZU1vZGVybj4sXG4gIGV4cHJlc3Npb246IHN0cmluZ1xuKTogdm9pZCB7XG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgLy8gSW5zaWRlIGNhY2hlIHNjb3BlcywgbWFya2luZyBhIHNjb3BlIGFzIGR5bmFtaWMgaGFzIG5vIGVmZmVjdCxcbiAgICAgICAgLy8gYmVjYXVzZSB0aGUgb3V0ZXIgY2FjaGUgc2NvcGUgY3JlYXRlcyBhIGNhY2hlIGJvdW5kYXJ5LiBUaGlzIGlzXG4gICAgICAgIC8vIHN1YnRseSBkaWZmZXJlbnQgZnJvbSByZWFkaW5nIGEgZHluYW1pYyBkYXRhIHNvdXJjZSwgd2hpY2ggaXNcbiAgICAgICAgLy8gZm9yYmlkZGVuIGluc2lkZSBhIGNhY2hlIHNjb3BlLlxuICAgICAgICByZXR1cm5cbiAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAvLyBBIHByaXZhdGUgY2FjaGUgc2NvcGUgaXMgYWxyZWFkeSBkeW5hbWljIGJ5IGRlZmluaXRpb24uXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nIGR5bmFtaWMgcmVuZGVyaW5nIG9yIHdlJ3JlIGZvcmNpbmcgc3RhdGljIHJlbmRlcmluZywgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlIGJlY2F1c2UgdGhlIGVudGlyZSBwYWdlIGlzIGFscmVhZHkgZHluYW1pY1xuICAvLyBvciBpdCdzIHN0YXRpYyBhbmQgaXQgc2hvdWxkIG5vdCB0aHJvdyBvciBwb3N0cG9uZSBoZXJlLlxuICBpZiAoc3RvcmUuZm9yY2VEeW5hbWljIHx8IHN0b3JlLmZvcmNlU3RhdGljKSByZXR1cm5cblxuICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSB3aXRoIFxcYGR5bmFtaWMgPSBcImVycm9yXCJcXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICAgIClcbiAgfVxuXG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICByZXR1cm4gcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gICAgICAgICAgc3RvcmUucm91dGUsXG4gICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICB3b3JrVW5pdFN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgICApXG4gICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMFxuXG4gICAgICAgIC8vIFdlIGFyZW4ndCBwcmVyZW5kZXJpbmcsIGJ1dCB3ZSBhcmUgZ2VuZXJhdGluZyBhIHN0YXRpYyBwYWdlLiBXZSBuZWVkXG4gICAgICAgIC8vIHRvIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgICAgICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yYFxuICAgICAgICApXG4gICAgICAgIHN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZXhwcmVzc2lvblxuICAgICAgICBzdG9yZS5keW5hbWljVXNhZ2VTdGFjayA9IGVyci5zdGFja1xuXG4gICAgICAgIHRocm93IGVyclxuICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd29ya1VuaXRTdG9yZS51c2VkRHluYW1pYyA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIHVzZWQgd2hlbiBwcmVyZW5kZXJpbmcgd2l0aG91dCBjYWNoZUNvbXBvbmVudHMgb3IgUFBSLlxuICogV2hlbiBjYWxsZWQgZHVyaW5nIGEgYnVpbGQgaXQgd2lsbCBjYXVzZSBOZXh0LmpzIHRvIGNvbnNpZGVyIHRoZSByb3V0ZSBhcyBkeW5hbWljLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24oXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgc3RvcmU6IFdvcmtTdG9yZSxcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTGVnYWN5XG4pOiBuZXZlciB7XG4gIC8vIFdlIGFyZW4ndCBwcmVyZW5kZXJpbmcgYnV0IHdlIGFyZSBnZW5lcmF0aW5nIGEgc3RhdGljIHBhZ2UuIFdlIG5lZWQgdG8gYmFpbCBvdXQgb2Ygc3RhdGljIGdlbmVyYXRpb25cbiAgY29uc3QgZXJyID0gbmV3IER5bmFtaWNTZXJ2ZXJFcnJvcihcbiAgICBgUm91dGUgJHtzdG9yZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmBcbiAgKVxuXG4gIHByZXJlbmRlclN0b3JlLnJldmFsaWRhdGUgPSAwXG5cbiAgc3RvcmUuZHluYW1pY1VzYWdlRGVzY3JpcHRpb24gPSBleHByZXNzaW9uXG4gIHN0b3JlLmR5bmFtaWNVc2FnZVN0YWNrID0gZXJyLnN0YWNrXG5cbiAgdGhyb3cgZXJyXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCB0byB0cmFjayB3aGV0aGVyIHNvbWV0aGluZyBkeW5hbWljIGhhcHBlbmVkIGV2ZW4gd2hlblxuICogd2UgYXJlIGluIGEgZHluYW1pYyByZW5kZXIuIFRoaXMgaXMgdXNlZnVsIGZvciBEZXYgd2hlcmUgYWxsIHJlbmRlcnMgYXJlIGR5bmFtaWMgYnV0XG4gKiB3ZSBzdGlsbCB0cmFjayB3aGV0aGVyIGR5bmFtaWMgQVBJcyB3ZXJlIGFjY2Vzc2VkIGZvciBoZWxwZnVsIG1lc3NhZ2luZ1xuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcih3b3JrVW5pdFN0b3JlOiBXb3JrVW5pdFN0b3JlKSB7XG4gIHN3aXRjaCAod29ya1VuaXRTdG9yZS50eXBlKSB7XG4gICAgY2FzZSAnY2FjaGUnOlxuICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgIC8vIEluc2lkZSBjYWNoZSBzY29wZXMsIG1hcmtpbmcgYSBzY29wZSBhcyBkeW5hbWljIGhhcyBubyBlZmZlY3QsXG4gICAgICAvLyBiZWNhdXNlIHRoZSBvdXRlciBjYWNoZSBzY29wZSBjcmVhdGVzIGEgY2FjaGUgYm91bmRhcnkuIFRoaXMgaXNcbiAgICAgIC8vIHN1YnRseSBkaWZmZXJlbnQgZnJvbSByZWFkaW5nIGEgZHluYW1pYyBkYXRhIHNvdXJjZSwgd2hpY2ggaXNcbiAgICAgIC8vIGZvcmJpZGRlbiBpbnNpZGUgYSBjYWNoZSBzY29wZS5cbiAgICAgIHJldHVyblxuICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgLy8gQSBwcml2YXRlIGNhY2hlIHNjb3BlIGlzIGFscmVhZHkgZHluYW1pYyBieSBkZWZpbml0aW9uLlxuICAgICAgcmV0dXJuXG4gICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICBicmVha1xuICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgd29ya1VuaXRTdG9yZS51c2VkRHluYW1pYyA9IHRydWVcbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHdvcmtVbml0U3RvcmUgc2F0aXNmaWVzIG5ldmVyXG4gIH1cbn1cblxuZnVuY3Rpb24gYWJvcnRPblN5bmNocm9ub3VzRHluYW1pY0RhdGFBY2Nlc3MoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiB2b2lkIHtcbiAgY29uc3QgcmVhc29uID0gYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LmBcblxuICBjb25zdCBlcnJvciA9IGNyZWF0ZVByZXJlbmRlckludGVycnVwdGVkRXJyb3IocmVhc29uKVxuXG4gIHByZXJlbmRlclN0b3JlLmNvbnRyb2xsZXIuYWJvcnQoZXJyb3IpXG5cbiAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgLy8gV2hlbiB3ZSBhcmVuJ3QgZGVidWdnaW5nLCB3ZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGVycm9yIGZvciB0aGVcbiAgICAgIC8vIHN0YWNrIHRyYWNlLlxuICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzXG4gICAgICAgID8gbmV3IEVycm9yKCkuc3RhY2tcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBleHByZXNzaW9uLFxuICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3MoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgZXJyb3JXaXRoU3RhY2s6IEVycm9yLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5cbik6IHZvaWQge1xuICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgYWJvcnRPblN5bmNocm9ub3VzRHluYW1pY0RhdGFBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKVxuICAvLyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBzZXQgdGhpcyB0cmFja2luZyB2YWx1ZSBhZnRlciBhYm9ydGluZy4gQWJvcnRzIGFyZSBleGVjdXRlZFxuICAvLyBzeW5jaHJvbm91c2x5IGV4Y2VwdCBmb3IgdGhlIGNhc2Ugd2hlcmUgeW91IGFib3J0IGR1cmluZyByZW5kZXIgaXRzZWxmLiBCeSBzZXR0aW5nIHRoaXNcbiAgLy8gdmFsdWUgbGF0ZSB3ZSBjYW4gdXNlIGl0IHRvIGRldGVybWluZSBpZiBhbnkgb2YgdGhlIGFib3J0ZWQgdGFza3MgYXJlIHRoZSB0YXNrIHRoYXRcbiAgLy8gY2FsbGVkIHRoZSBzeW5jIElPIGV4cHJlc3Npb24gaW4gdGhlIGZpcnN0IHBsYWNlLlxuICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgaWYgKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID09PSBudWxsKSB7XG4gICAgICBkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9IGVycm9yV2l0aFN0YWNrXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2KFxuICByZXF1ZXN0U3RvcmU6IFJlcXVlc3RTdG9yZVxuKTogdm9pZCB7XG4gIC8vIFdlIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjb250cm9sbGVyIHRvIGFib3J0IGJ1dCB3ZSBkbyB0aGUgc2VtYW50aWMgZXF1aXZhbGVudCBieVxuICAvLyBhZHZhbmNpbmcgdGhlIHJlcXVlc3Qgc3RvcmUgb3V0IG9mIHByZXJlbmRlciBtb2RlXG4gIHJlcXVlc3RTdG9yZS5wcmVyZW5kZXJQaGFzZSA9IGZhbHNlXG59XG5cbi8qKlxuICogdXNlIHRoaXMgZnVuY3Rpb24gd2hlbiBwcmVyZW5kZXJpbmcgd2l0aCBjYWNoZUNvbXBvbmVudHMuIElmIHdlIGFyZSBkb2luZyBhXG4gKiBwcm9zcGVjdGl2ZSBwcmVyZW5kZXIgd2UgZG9uJ3QgYWN0dWFsbHkgYWJvcnQgYmVjYXVzZSB3ZSB3YW50IHRvIGRpc2NvdmVyXG4gKiBhbGwgY2FjaGVzIGZvciB0aGUgc2hlbGwuIElmIHRoaXMgaXMgdGhlIGFjdHVhbCBwcmVyZW5kZXIgd2UgZG8gYWJvcnQuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBhY2NlcHRzIGEgcHJlcmVuZGVyU3RvcmUgYnV0IHRoZSBjYWxsZXIgc2hvdWxkIGVuc3VyZSB3ZSdyZVxuICogYWN0dWFsbHkgcnVubmluZyBpbiBjYWNoZUNvbXBvbmVudHMgbW9kZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgZXJyb3JXaXRoU3RhY2s6IEVycm9yLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5cbik6IG5ldmVyIHtcbiAgY29uc3QgcHJlcmVuZGVyU2lnbmFsID0gcHJlcmVuZGVyU3RvcmUuY29udHJvbGxlci5zaWduYWxcbiAgaWYgKHByZXJlbmRlclNpZ25hbC5hYm9ydGVkID09PSBmYWxzZSkge1xuICAgIC8vIFRPRE8gaXQgd291bGQgYmUgYmV0dGVyIHRvIG1vdmUgdGhpcyBhYm9ydGVkIGNoZWNrIGludG8gdGhlIGNhbGxzaXRlIHNvIHdlIGNhbiBhdm9pZCBtYWtpbmdcbiAgICAvLyB0aGUgZXJyb3Igb2JqZWN0IHdoZW4gaXQgaXNuJ3QgcmVsZXZhbnQgdG8gdGhlIGFib3J0aW5nIG9mIHRoZSBwcmVyZW5kZXIgaG93ZXZlclxuICAgIC8vIHNpbmNlIHdlIG5lZWQgdGhlIHRocm93IHNlbWFudGljcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgd2UgYWJvcnQgaXQgaXMgZWFzaWVyIHRvIGxhbmRcbiAgICAvLyB0aGlzIHdheS4gU2VlIGhvdyB0aGlzIHdhcyBoYW5kbGVkIHdpdGggYGFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NgIGZvciBhIGNsb3NlclxuICAgIC8vIHRvIGlkZWFsIGltcGxlbWVudGF0aW9uXG4gICAgYWJvcnRPblN5bmNocm9ub3VzRHluYW1pY0RhdGFBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKVxuICAgIC8vIEl0IGlzIGltcG9ydGFudCB0aGF0IHdlIHNldCB0aGlzIHRyYWNraW5nIHZhbHVlIGFmdGVyIGFib3J0aW5nLiBBYm9ydHMgYXJlIGV4ZWN1dGVkXG4gICAgLy8gc3luY2hyb25vdXNseSBleGNlcHQgZm9yIHRoZSBjYXNlIHdoZXJlIHlvdSBhYm9ydCBkdXJpbmcgcmVuZGVyIGl0c2VsZi4gQnkgc2V0dGluZyB0aGlzXG4gICAgLy8gdmFsdWUgbGF0ZSB3ZSBjYW4gdXNlIGl0IHRvIGRldGVybWluZSBpZiBhbnkgb2YgdGhlIGFib3J0ZWQgdGFza3MgYXJlIHRoZSB0YXNrIHRoYXRcbiAgICAvLyBjYWxsZWQgdGhlIHN5bmMgSU8gZXhwcmVzc2lvbiBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgICAgaWYgKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID09PSBudWxsKSB7XG4gICAgICAgIGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID0gZXJyb3JXaXRoU3RhY2tcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdGhyb3cgY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihcbiAgICBgUm91dGUgJHtyb3V0ZX0gbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkICR7ZXhwcmVzc2lvbn0uYFxuICApXG59XG5cbi8qKlxuICogVXNlIHRoaXMgZnVuY3Rpb24gd2hlbiBkeW5hbWljYWxseSBwcmVyZW5kZXJpbmcgd2l0aCBkeW5hbWljSU8uXG4gKiBXZSBkb24ndCB3YW50IHRvIGVycm9yLCBiZWNhdXNlIGl0J3MgYmV0dGVyIHRvIHJldHVybiBzb21ldGhpbmdcbiAqIChhbmQgd2UndmUgYWxyZWFkeSBhYm9ydGVkIHRoZSByZW5kZXIgYXQgdGhlIHBvaW50IHdoZXJlIHRoZSBzeW5jIGR5bmFtaWMgZXJyb3Igb2NjdXJlZCksXG4gKiBidXQgd2Ugc2hvdWxkIGxvZyBhbiBlcnJvciBzZXJ2ZXItc2lkZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2Fybk9uU3luY0R5bmFtaWNFcnJvcihkeW5hbWljVHJhY2tpbmc6IER5bmFtaWNUcmFja2luZ1N0YXRlKSB7XG4gIGlmIChkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaykge1xuICAgIC8vIHRoZSBzZXJ2ZXIgZGlkIHNvbWV0aGluZyBzeW5jIGR5bmFtaWMsIGxpa2VseVxuICAgIC8vIGxlYWRpbmcgdG8gYW4gZWFybHkgdGVybWluYXRpb24gb2YgdGhlIHByZXJlbmRlci5cbiAgICBjb25zb2xlLmVycm9yKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKVxuICB9XG59XG5cbi8vIEZvciBub3cgdGhlc2UgaW1wbGVtZW50YXRpb25zIGFyZSB0aGUgc2FtZSBzbyB3ZSBqdXN0IHJlZXhwb3J0XG5leHBvcnQgY29uc3QgdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYgPVxuICB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgd2lsbCBjYWxsIGBSZWFjdC5wb3N0cG9uZWAgdGhhdCB0aHJvd3MgdGhlIHBvc3Rwb25lZCBlcnJvci5cbiAqL1xudHlwZSBQb3N0cG9uZVByb3BzID0ge1xuICByZWFzb246IHN0cmluZ1xuICByb3V0ZTogc3RyaW5nXG59XG5leHBvcnQgZnVuY3Rpb24gUG9zdHBvbmUoeyByZWFzb24sIHJvdXRlIH06IFBvc3Rwb25lUHJvcHMpOiBuZXZlciB7XG4gIGNvbnN0IHByZXJlbmRlclN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPVxuICAgIHByZXJlbmRlclN0b3JlICYmIHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJ1xuICAgICAgPyBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgICAgIDogbnVsbFxuICBwb3N0cG9uZVdpdGhUcmFja2luZyhyb3V0ZSwgcmVhc29uLCBkeW5hbWljVHJhY2tpbmcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBkeW5hbWljVHJhY2tpbmc6IG51bGwgfCBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogbmV2ZXIge1xuICBhc3NlcnRQb3N0cG9uZSgpXG4gIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgLy8gV2hlbiB3ZSBhcmVuJ3QgZGVidWdnaW5nLCB3ZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGVycm9yIGZvciB0aGVcbiAgICAgIC8vIHN0YWNrIHRyYWNlLlxuICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzXG4gICAgICAgID8gbmV3IEVycm9yKCkuc3RhY2tcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBleHByZXNzaW9uLFxuICAgIH0pXG4gIH1cblxuICBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZShjcmVhdGVQb3N0cG9uZVJlYXNvbihyb3V0ZSwgZXhwcmVzc2lvbikpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBvc3Rwb25lUmVhc29uKHJvdXRlOiBzdHJpbmcsIGV4cHJlc3Npb246IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIGBSb3V0ZSAke3JvdXRlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gYCArXG4gICAgYFJlYWN0IHRocm93cyB0aGlzIHNwZWNpYWwgb2JqZWN0IHRvIGluZGljYXRlIHdoZXJlLiBJdCBzaG91bGQgbm90IGJlIGNhdWdodCBieSBgICtcbiAgICBgeW91ciBvd24gdHJ5L2NhdGNoLiBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNQb3N0cG9uZShlcnI6IHVua25vd24pIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnICYmXG4gICAgZXJyICE9PSBudWxsICYmXG4gICAgdHlwZW9mIChlcnIgYXMgYW55KS5tZXNzYWdlID09PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gaXNEeW5hbWljUG9zdHBvbmVSZWFzb24oKGVyciBhcyBhbnkpLm1lc3NhZ2UpXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIGlzRHluYW1pY1Bvc3Rwb25lUmVhc29uKHJlYXNvbjogc3RyaW5nKSB7XG4gIHJldHVybiAoXG4gICAgcmVhc29uLmluY2x1ZGVzKFxuICAgICAgJ25lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCdcbiAgICApICYmXG4gICAgcmVhc29uLmluY2x1ZGVzKFxuICAgICAgJ0xlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3Bwci1jYXVnaHQtZXJyb3InXG4gICAgKVxuICApXG59XG5cbmlmIChpc0R5bmFtaWNQb3N0cG9uZVJlYXNvbihjcmVhdGVQb3N0cG9uZVJlYXNvbignJSUlJywgJ15eXicpKSA9PT0gZmFsc2UpIHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdJbnZhcmlhbnQ6IGlzRHluYW1pY1Bvc3Rwb25lIG1pc2lkZW50aWZpZWQgYSBwb3N0cG9uZSByZWFzb24uIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcydcbiAgKVxufVxuXG5jb25zdCBORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCA9ICdORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCdcblxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiBFcnJvciB7XG4gIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpXG4gIDsoZXJyb3IgYXMgYW55KS5kaWdlc3QgPSBORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRFxuICByZXR1cm4gZXJyb3Jcbn1cblxudHlwZSBEaWdlc3RFcnJvciA9IEVycm9yICYge1xuICBkaWdlc3Q6IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgRGlnZXN0RXJyb3Ige1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiZcbiAgICBlcnJvciAhPT0gbnVsbCAmJlxuICAgIChlcnJvciBhcyBhbnkpLmRpZ2VzdCA9PT0gTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQgJiZcbiAgICAnbmFtZScgaW4gZXJyb3IgJiZcbiAgICAnbWVzc2FnZScgaW4gZXJyb3IgJiZcbiAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjY2Vzc2VkRHluYW1pY0RhdGEoXG4gIGR5bmFtaWNBY2Nlc3NlczogQXJyYXk8RHluYW1pY0FjY2Vzcz5cbik6IGJvb2xlYW4ge1xuICByZXR1cm4gZHluYW1pY0FjY2Vzc2VzLmxlbmd0aCA+IDBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN1bWVEeW5hbWljQWNjZXNzKFxuICBzZXJ2ZXJEeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZSxcbiAgY2xpZW50RHluYW1pYzogRHluYW1pY1RyYWNraW5nU3RhdGVcbik6IER5bmFtaWNUcmFja2luZ1N0YXRlWydkeW5hbWljQWNjZXNzZXMnXSB7XG4gIC8vIFdlIG11dGF0ZSBiZWNhdXNlIHdlIG9ubHkgY2FsbCB0aGlzIG9uY2Ugd2UgYXJlIG5vIGxvbmdlciB3cml0aW5nXG4gIC8vIHRvIHRoZSBkeW5hbWljVHJhY2tpbmdTdGF0ZSBhbmQgaXQncyBtb3JlIGVmZmljaWVudCB0aGFuIGNyZWF0aW5nIGEgbmV3XG4gIC8vIGFycmF5LlxuICBzZXJ2ZXJEeW5hbWljLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKC4uLmNsaWVudER5bmFtaWMuZHluYW1pY0FjY2Vzc2VzKVxuICByZXR1cm4gc2VydmVyRHluYW1pYy5keW5hbWljQWNjZXNzZXNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdER5bmFtaWNBUElBY2Nlc3NlcyhcbiAgZHluYW1pY0FjY2Vzc2VzOiBBcnJheTxEeW5hbWljQWNjZXNzPlxuKTogc3RyaW5nW10ge1xuICByZXR1cm4gZHluYW1pY0FjY2Vzc2VzXG4gICAgLmZpbHRlcihcbiAgICAgIChhY2Nlc3MpOiBhY2Nlc3MgaXMgUmVxdWlyZWQ8RHluYW1pY0FjY2Vzcz4gPT5cbiAgICAgICAgdHlwZW9mIGFjY2Vzcy5zdGFjayA9PT0gJ3N0cmluZycgJiYgYWNjZXNzLnN0YWNrLmxlbmd0aCA+IDBcbiAgICApXG4gICAgLm1hcCgoeyBleHByZXNzaW9uLCBzdGFjayB9KSA9PiB7XG4gICAgICBzdGFjayA9IHN0YWNrXG4gICAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBcIkVycm9yOiBcIiBwcmVmaXggZnJvbSB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc3RhY2sgdHJhY2UgYXNcbiAgICAgICAgLy8gd2VsbCBhcyB0aGUgZmlyc3QgNCBsaW5lcyBvZiB0aGUgc3RhY2sgdHJhY2Ugd2hpY2ggaXMgdGhlIGRpc3RhbmNlXG4gICAgICAgIC8vIGZyb20gdGhlIHVzZXIgY29kZSBhbmQgdGhlIGBuZXcgRXJyb3IoKS5zdGFja2AgY2FsbC5cbiAgICAgICAgLnNsaWNlKDQpXG4gICAgICAgIC5maWx0ZXIoKGxpbmUpID0+IHtcbiAgICAgICAgICAvLyBFeGNsdWRlIE5leHQuanMgaW50ZXJuYWxzIGZyb20gdGhlIHN0YWNrIHRyYWNlLlxuICAgICAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCdub2RlX21vZHVsZXMvbmV4dC8nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRXhjbHVkZSBhbm9ueW1vdXMgZnVuY3Rpb25zIGZyb20gdGhlIHN0YWNrIHRyYWNlLlxuICAgICAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCcgKDxhbm9ueW1vdXM+KScpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBFeGNsdWRlIE5vZGUuanMgaW50ZXJuYWxzIGZyb20gdGhlIHN0YWNrIHRyYWNlLlxuICAgICAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCcgKG5vZGU6JykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCdcXG4nKVxuICAgICAgcmV0dXJuIGBEeW5hbWljIEFQSSBVc2FnZSBEZWJ1ZyAtICR7ZXhwcmVzc2lvbn06XFxuJHtzdGFja31gXG4gICAgfSlcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UG9zdHBvbmUoKSB7XG4gIGlmICghaGFzUG9zdHBvbmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YXJpYW50OiBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZSBpcyBub3QgZGVmaW5lZC4gVGhpcyBzdWdnZXN0cyB0aGUgd3JvbmcgdmVyc2lvbiBvZiBSZWFjdCB3YXMgbG9hZGVkLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanNgXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2sgdG8gYWxsb3cgdXMgdG8gYWJvcnQgYSByZW5kZXIgdXNpbmcgYSBQb3N0cG9uZSBpbnN0YW5jZSBpbnN0ZWFkIG9mIGFuIEVycm9yIHdoaWNoIGNoYW5nZXMgUmVhY3Qnc1xuICogYWJvcnQgc2VtYW50aWNzIHNsaWdodGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVuZGVySW5Ccm93c2VyQWJvcnRTaWduYWwoKTogQWJvcnRTaWduYWwge1xuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gIGNvbnRyb2xsZXIuYWJvcnQobmV3IEJhaWxvdXRUb0NTUkVycm9yKCdSZW5kZXIgaW4gQnJvd3NlcicpKVxuICByZXR1cm4gY29udHJvbGxlci5zaWduYWxcbn1cblxuLyoqXG4gKiBJbiBhIHByZXJlbmRlciwgd2UgbWF5IGVuZCB1cCB3aXRoIGhhbmdpbmcgUHJvbWlzZXMgYXMgaW5wdXRzIGR1ZSB0aGVtXG4gKiBzdGFsbGluZyBvbiBjb25uZWN0aW9uKCkgb3IgYmVjYXVzZSB0aGV5J3JlIGxvYWRpbmcgZHluYW1pYyBkYXRhLiBJbiB0aGF0XG4gKiBjYXNlIHdlIG5lZWQgdG8gYWJvcnQgdGhlIGVuY29kaW5nIG9mIGFyZ3VtZW50cyBzaW5jZSB0aGV5J2xsIG5ldmVyIGNvbXBsZXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGFuZ2luZ0lucHV0QWJvcnRTaWduYWwoXG4gIHdvcmtVbml0U3RvcmU6IFdvcmtVbml0U3RvcmVcbik6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcblxuICAgICAgaWYgKHdvcmtVbml0U3RvcmUuY2FjaGVTaWduYWwpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIGNhY2hlU2lnbmFsIGl0IG1lYW5zIHdlJ3JlIGluIGEgcHJvc3BlY3RpdmUgcmVuZGVyLiBJZlxuICAgICAgICAvLyB0aGUgaW5wdXQgd2UncmUgd2FpdGluZyBvbiBpcyBjb21pbmcgZnJvbSBhbm90aGVyIGNhY2hlLCB3ZSBkbyB3YW50XG4gICAgICAgIC8vIHRvIHdhaXQgZm9yIGl0IHNvIHRoYXQgd2UgY2FuIHJlc29sdmUgdGhpcyBjYWNoZSBlbnRyeSB0b28uXG4gICAgICAgIHdvcmtVbml0U3RvcmUuY2FjaGVTaWduYWwuaW5wdXRSZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnRyb2xsZXIuYWJvcnQoKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlIHdlJ3JlIGluIHRoZSBmaW5hbCByZW5kZXIgYW5kIHdlIHNob3VsZCBhbHJlYWR5IGhhdmUgYWxsXG4gICAgICAgIC8vIG91ciBjYWNoZXMgZmlsbGVkLlxuICAgICAgICAvLyBJZiB0aGUgcHJlcmVuZGVyIHVzZXMgc3RhZ2VzLCB3ZSBoYXZlIHdhaXQgdW50aWwgdGhlIHJ1bnRpbWUgc3RhZ2UsXG4gICAgICAgIC8vIGF0IHdoaWNoIHBvaW50IGFsbCBydW50aW1lIGlucHV0cyB3aWxsIGJlIHJlc29sdmVkLlxuICAgICAgICAvLyAob3RoZXJ3aXNlLCBhIHJ1bnRpbWUgcHJlcmVuZGVyIG1pZ2h0IGNvbnNpZGVyIGBjb29raWVzKClgIGhhbmdpbmdcbiAgICAgICAgLy8gIGV2ZW4gdGhvdWdoIHRoZXknZCByZXNvbHZlIGluIHRoZSBuZXh0IHRhc2suKVxuICAgICAgICAvL1xuICAgICAgICAvLyBXZSBtaWdodCBzdGlsbCBiZSB3YWl0aW5nIG9uIHNvbWUgbWljcm90YXNrcyBzbyB3ZVxuICAgICAgICAvLyB3YWl0IG9uZSB0aWNrIGJlZm9yZSBnaXZpbmcgdXAuIFdoZW4gd2UgZ2l2ZSB1cCwgd2Ugc3RpbGwgd2FudCB0b1xuICAgICAgICAvLyByZW5kZXIgdGhlIGNvbnRlbnQgb2YgdGhpcyBjYWNoZSBhcyBkZWVwbHkgYXMgd2UgY2FuIHNvIHRoYXQgd2UgY2FuXG4gICAgICAgIC8vIHN1c3BlbmQgYXMgZGVlcGx5IGFzIHBvc3NpYmxlIGluIHRoZSB0cmVlIG9yIG5vdCBhdCBhbGwgaWYgd2UgZG9uJ3RcbiAgICAgICAgLy8gZW5kIHVwIHdhaXRpbmcgZm9yIHRoZSBpbnB1dC5cbiAgICAgICAgY29uc3QgcnVudGltZVN0YWdlUHJvbWlzZSA9IGdldFJ1bnRpbWVTdGFnZVByb21pc2Uod29ya1VuaXRTdG9yZSlcbiAgICAgICAgaWYgKHJ1bnRpbWVTdGFnZVByb21pc2UpIHtcbiAgICAgICAgICBydW50aW1lU3RhZ2VQcm9taXNlLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHNjaGVkdWxlT25OZXh0VGljaygoKSA9PiBjb250cm9sbGVyLmFib3J0KCkpXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNjaGVkdWxlT25OZXh0VGljaygoKSA9PiBjb250cm9sbGVyLmFib3J0KCkpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuc2lnbmFsXG4gICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgY2FzZSAncmVxdWVzdCc6XG4gICAgY2FzZSAnY2FjaGUnOlxuICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICBkZWZhdWx0OlxuICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYW5ub3RhdGVEeW5hbWljQWNjZXNzKFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKSB7XG4gIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgZHluYW1pY1RyYWNraW5nLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKHtcbiAgICAgIHN0YWNrOiBkeW5hbWljVHJhY2tpbmcuaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlc1xuICAgICAgICA/IG5ldyBFcnJvcigpLnN0YWNrXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZXhwcmVzc2lvbixcbiAgICB9KVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VEeW5hbWljUm91dGVQYXJhbXMoZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAod29ya1N0b3JlICYmIHdvcmtVbml0U3RvcmUpIHtcbiAgICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICBjYXNlICdwcmVyZW5kZXInOiB7XG4gICAgICAgIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gd29ya1VuaXRTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zXG4gICAgICAgIGlmIChmYWxsYmFja1BhcmFtcyAmJiBmYWxsYmFja1BhcmFtcy5zaXplID4gMCkge1xuICAgICAgICAgIC8vIFdlIGFyZSBpbiBhIHByZXJlbmRlciB3aXRoIGNhY2hlQ29tcG9uZW50cyBzZW1hbnRpY3MuIFdlIGFyZSBnb2luZyB0b1xuICAgICAgICAgIC8vIGhhbmcgaGVyZSBhbmQgbmV2ZXIgcmVzb2x2ZS4gVGhpcyB3aWxsIGNhdXNlIHRoZSBjdXJyZW50bHlcbiAgICAgICAgICAvLyByZW5kZXJpbmcgY29tcG9uZW50IHRvIGVmZmVjdGl2ZWx5IGJlIGEgZHluYW1pYyBob2xlLlxuICAgICAgICAgIFJlYWN0LnVzZShcbiAgICAgICAgICAgIG1ha2VIYW5naW5nUHJvbWlzZShcbiAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsXG4gICAgICAgICAgICAgIHdvcmtTdG9yZS5yb3V0ZSxcbiAgICAgICAgICAgICAgZXhwcmVzc2lvblxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6IHtcbiAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXNcbiAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zICYmIGZhbGxiYWNrUGFyYW1zLnNpemUgPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHBvc3Rwb25lV2l0aFRyYWNraW5nKFxuICAgICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgICAgICBgXFxgJHtleHByZXNzaW9ufVxcYCB3YXMgY2FsbGVkIGR1cmluZyBhIHJ1bnRpbWUgcHJlcmVuZGVyLiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7ZXhwcmVzc2lvbn0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBzZXJ2ZXIgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYFxuICAgICAgICApXG4gICAgICBjYXNlICdjYWNoZSc6XG4gICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAgIGBcXGAke2V4cHJlc3Npb259XFxgIHdhcyBjYWxsZWQgaW5zaWRlIGEgY2FjaGUgc2NvcGUuIE5leHQuanMgc2hvdWxkIGJlIHByZXZlbnRpbmcgJHtleHByZXNzaW9ufSBmcm9tIGJlaW5nIGluY2x1ZGVkIGluIHNlcnZlciBjb21wb25lbnRzIHN0YXRpY2FsbHksIGJ1dCBkaWQgbm90IGluIHRoaXMgY2FzZS5gXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBoYXNTdXNwZW5zZVJlZ2V4ID0gL1xcblxccythdCBTdXNwZW5zZSBcXCg8YW5vbnltb3VzPlxcKS9cblxuLy8gQ29tbW9uIGltcGxpY2l0IGJvZHkgdGFncyB0aGF0IFJlYWN0IHdpbGwgdHJlYXQgYXMgYm9keSB3aGVuIHBsYWNlZCBkaXJlY3RseSBpbiBodG1sXG5jb25zdCBib2R5QW5kSW1wbGljaXRUYWdzID1cbiAgJ2JvZHl8ZGl2fG1haW58c2VjdGlvbnxhcnRpY2xlfGFzaWRlfGhlYWRlcnxmb290ZXJ8bmF2fGZvcm18cHxzcGFufGgxfGgyfGgzfGg0fGg1fGg2J1xuXG4vLyBEZXRlY3RzIHdoZW4gUm9vdExheW91dEJvdW5kYXJ5IChvdXIgZnJhbWV3b3JrIG1hcmtlciBjb21wb25lbnQpIGFwcGVhcnNcbi8vIGFmdGVyIFN1c3BlbnNlIGluIHRoZSBjb21wb25lbnQgc3RhY2ssIGluZGljYXRpbmcgdGhlIHJvb3QgbGF5b3V0IGlzIHdyYXBwZWRcbi8vIHdpdGhpbiBhIFN1c3BlbnNlIGJvdW5kYXJ5LiBFbnN1cmVzIG5vIGJvZHkvaHRtbC9pbXBsaWNpdC1ib2R5IGNvbXBvbmVudHMgYXJlIGluIGJldHdlZW4uXG4vL1xuLy8gRXhhbXBsZSBtYXRjaGVzOlxuLy8gICBhdCBTdXNwZW5zZSAoPGFub255bW91cz4pXG4vLyAgIGF0IF9fbmV4dF9yb290X2xheW91dF9ib3VuZGFyeV9fICg8YW5vbnltb3VzPilcbi8vXG4vLyBPciB3aXRoIG90aGVyIGNvbXBvbmVudHMgaW4gYmV0d2VlbiAoYnV0IG5vdCBib2R5L2h0bWwvaW1wbGljaXQtYm9keSk6XG4vLyAgIGF0IFN1c3BlbnNlICg8YW5vbnltb3VzPilcbi8vICAgYXQgU29tZUNvbXBvbmVudCAoPGFub255bW91cz4pXG4vLyAgIGF0IF9fbmV4dF9yb290X2xheW91dF9ib3VuZGFyeV9fICg8YW5vbnltb3VzPilcbmNvbnN0IGhhc1N1c3BlbnNlQmVmb3JlUm9vdExheW91dFdpdGhvdXRCb2R5T3JJbXBsaWNpdEJvZHlSZWdleCA9IG5ldyBSZWdFeHAoXG4gIGBcXFxcblxcXFxzK2F0IFN1c3BlbnNlIFxcXFwoPGFub255bW91cz5cXFxcKSg/Oig/IVxcXFxuXFxcXHMrYXQgKD86JHtib2R5QW5kSW1wbGljaXRUYWdzfSkgXFxcXCg8YW5vbnltb3VzPlxcXFwpKVtcXFxcc1xcXFxTXSkqP1xcXFxuXFxcXHMrYXQgJHtST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FfSBcXFxcKFteXFxcXG5dKlxcXFwpYFxuKVxuXG5jb25zdCBoYXNNZXRhZGF0YVJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgYFxcXFxuXFxcXHMrYXQgJHtNRVRBREFUQV9CT1VOREFSWV9OQU1FfVtcXFxcblxcXFxzXWBcbilcbmNvbnN0IGhhc1ZpZXdwb3J0UmVnZXggPSBuZXcgUmVnRXhwKFxuICBgXFxcXG5cXFxccythdCAke1ZJRVdQT1JUX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYFxuKVxuY29uc3QgaGFzT3V0bGV0UmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcblxcXFxzK2F0ICR7T1VUTEVUX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYClcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrQWxsb3dlZER5bmFtaWNBY2Nlc3MoXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlLFxuICBjb21wb25lbnRTdGFjazogc3RyaW5nLFxuICBkeW5hbWljVmFsaWRhdGlvbjogRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSxcbiAgY2xpZW50RHluYW1pYzogRHluYW1pY1RyYWNraW5nU3RhdGVcbikge1xuICBpZiAoaGFzT3V0bGV0UmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHRyYWNrIHRoYXQgdGhpcyBpcyBkeW5hbWljLiBJdCBpcyBvbmx5IHNvIHdoZW4gc29tZXRoaW5nIGVsc2UgaXMgYWxzbyBkeW5hbWljLlxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKGhhc01ldGFkYXRhUmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICBkeW5hbWljVmFsaWRhdGlvbi5oYXNEeW5hbWljTWV0YWRhdGEgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzVmlld3BvcnRSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNWaWV3cG9ydCA9IHRydWVcbiAgICByZXR1cm5cbiAgfSBlbHNlIGlmIChcbiAgICBoYXNTdXNwZW5zZUJlZm9yZVJvb3RMYXlvdXRXaXRob3V0Qm9keU9ySW1wbGljaXRCb2R5UmVnZXgudGVzdChcbiAgICAgIGNvbXBvbmVudFN0YWNrXG4gICAgKVxuICApIHtcbiAgICAvLyBGb3IgU3VzcGVuc2Ugd2l0aGluIGJvZHksIHRoZSBwcmVsdWRlIHdvdWxkbid0IGJlIGVtcHR5IHNvIGl0IHdvdWxkbid0IHZpb2xhdGUgdGhlIGVtcHR5IHN0YXRpYyBzaGVsbHMgcnVsZS5cbiAgICAvLyBCdXQgaWYgeW91IGhhdmUgU3VzcGVuc2UgYWJvdmUgYm9keSwgdGhlIHByZWx1ZGUgaXMgZW1wdHkgYnV0IHdlIGFsbG93IHRoYXQgYmVjYXVzZSBoYXZpbmcgU3VzcGVuc2VcbiAgICAvLyBpcyBhbiBleHBsaWNpdCBzaWduYWwgZnJvbSB0aGUgdXNlciB0aGF0IHRoZXkgYWNrbm93bGVkZ2UgdGhlIGVtcHR5IHNoZWxsIGFuZCB3YW50IGR5bmFtaWMgcmVuZGVyaW5nLlxuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0FsbG93ZWREeW5hbWljID0gdHJ1ZVxuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc1N1c3BlbnNlQWJvdmVCb2R5ID0gdHJ1ZVxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKGhhc1N1c3BlbnNlUmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAvLyB0aGlzIGVycm9yIGhhZCBhIFN1c3BlbnNlIGJvdW5kYXJ5IGFib3ZlIGl0IHNvIHdlIGRvbid0IG5lZWQgdG8gcmVwb3J0IGl0IGFzIGEgc291cmNlXG4gICAgLy8gb2YgZGlzYWxsb3dlZFxuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0FsbG93ZWREeW5hbWljID0gdHJ1ZVxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKGNsaWVudER5bmFtaWMuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaykge1xuICAgIC8vIFRoaXMgdGFzayB3YXMgdGhlIHRhc2sgdGhhdCBjYWxsZWQgdGhlIHN5bmMgZXJyb3IuXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9ycy5wdXNoKFxuICAgICAgY2xpZW50RHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrXG4gICAgKVxuICAgIHJldHVyblxuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIjogQSBjb21wb25lbnQgYWNjZXNzZWQgZGF0YSwgaGVhZGVycywgcGFyYW1zLCBzZWFyY2hQYXJhbXMsIG9yIGEgc2hvcnQtbGl2ZWQgY2FjaGUgd2l0aG91dCBhIFN1c3BlbnNlIGJvdW5kYXJ5IG5vciBhIFwidXNlIGNhY2hlXCIgYWJvdmUgaXQuIFNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLW1pc3Npbmctc3VzcGVuc2VgXG4gICAgY29uc3QgZXJyb3IgPSBjcmVhdGVFcnJvcldpdGhDb21wb25lbnRPck93bmVyU3RhY2sobWVzc2FnZSwgY29tcG9uZW50U3RhY2spXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9ycy5wdXNoKGVycm9yKVxuICAgIHJldHVyblxuICB9XG59XG5cbi8qKlxuICogSW4gZGV2IG1vZGUsIHdlIHByZWZlciB1c2luZyB0aGUgb3duZXIgc3RhY2ssIG90aGVyd2lzZSB0aGUgcHJvdmlkZWRcbiAqIGNvbXBvbmVudCBzdGFjayBpcyB1c2VkLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFcnJvcldpdGhDb21wb25lbnRPck93bmVyU3RhY2soXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgY29tcG9uZW50U3RhY2s6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IG93bmVyU3RhY2sgPVxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgUmVhY3QuY2FwdHVyZU93bmVyU3RhY2tcbiAgICAgID8gUmVhY3QuY2FwdHVyZU93bmVyU3RhY2soKVxuICAgICAgOiBudWxsXG5cbiAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgZXJyb3Iuc3RhY2sgPSBlcnJvci5uYW1lICsgJzogJyArIG1lc3NhZ2UgKyAob3duZXJTdGFjayA/PyBjb21wb25lbnRTdGFjaylcbiAgcmV0dXJuIGVycm9yXG59XG5cbmV4cG9ydCBlbnVtIFByZWx1ZGVTdGF0ZSB7XG4gIEZ1bGwgPSAwLFxuICBFbXB0eSA9IDEsXG4gIEVycm9yZWQgPSAyLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nRGlzYWxsb3dlZER5bmFtaWNFcnJvcihcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGVycm9yOiBFcnJvclxuKTogdm9pZCB7XG4gIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG5cbiAgaWYgKCF3b3JrU3RvcmUuZGV2KSB7XG4gICAgaWYgKHdvcmtTdG9yZS5oYXNSZWFkYWJsZUVycm9yU3RhY2tzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgVG8gZ2V0IGEgbW9yZSBkZXRhaWxlZCBzdGFjayB0cmFjZSBhbmQgcGlucG9pbnQgdGhlIGlzc3VlLCBzdGFydCB0aGUgYXBwIGluIGRldmVsb3BtZW50IG1vZGUgYnkgcnVubmluZyBcXGBuZXh0IGRldlxcYCwgdGhlbiBvcGVuIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgaW4geW91ciBicm93c2VyIHRvIGludmVzdGlnYXRlIHRoZSBlcnJvci5gXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRvIGdldCBhIG1vcmUgZGV0YWlsZWQgc3RhY2sgdHJhY2UgYW5kIHBpbnBvaW50IHRoZSBpc3N1ZSwgdHJ5IG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAtIFN0YXJ0IHRoZSBhcHAgaW4gZGV2ZWxvcG1lbnQgbW9kZSBieSBydW5uaW5nIFxcYG5leHQgZGV2XFxgLCB0aGVuIG9wZW4gXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBpbiB5b3VyIGJyb3dzZXIgdG8gaW52ZXN0aWdhdGUgdGhlIGVycm9yLlxuICAtIFJlcnVuIHRoZSBwcm9kdWN0aW9uIGJ1aWxkIHdpdGggXFxgbmV4dCBidWlsZCAtLWRlYnVnLXByZXJlbmRlclxcYCB0byBnZW5lcmF0ZSBiZXR0ZXIgc3RhY2sgdHJhY2VzLmApXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0lmRGlzYWxsb3dlZER5bmFtaWMoXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlLFxuICBwcmVsdWRlOiBQcmVsdWRlU3RhdGUsXG4gIGR5bmFtaWNWYWxpZGF0aW9uOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlLFxuICBzZXJ2ZXJEeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogdm9pZCB7XG4gIGlmIChwcmVsdWRlICE9PSBQcmVsdWRlU3RhdGUuRnVsbCkge1xuICAgIGlmIChkeW5hbWljVmFsaWRhdGlvbi5oYXNTdXNwZW5zZUFib3ZlQm9keSkge1xuICAgICAgLy8gVGhpcyByb3V0ZSBoYXMgb3B0ZWQgaW50byBhbGxvd2luZyBmdWxseSBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgLy8gYnkgaW5jbHVkaW5nIGEgU3VzcGVuc2UgYm91bmRhcnkgYWJvdmUgdGhlIGJvZHkuIEluIHRoaXMgY2FzZVxuICAgICAgLy8gYSBsYWNrIG9mIGEgc2hlbGwgaXMgbm90IGNvbnNpZGVyZWQgZGlzYWxsb3dlZCBzbyB3ZSBzaW1wbHkgcmV0dXJuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSB7XG4gICAgICAvLyBUaGVyZSBpcyBubyBzaGVsbCBhbmQgdGhlIHNlcnZlciBkaWQgc29tZXRoaW5nIHN5bmMgZHluYW1pYyBsaWtlbHlcbiAgICAgIC8vIGxlYWRpbmcgdG8gYW4gZWFybHkgdGVybWluYXRpb24gb2YgdGhlIHByZXJlbmRlciBiZWZvcmUgdGhlIHNoZWxsXG4gICAgICAvLyBjb3VsZCBiZSBjb21wbGV0ZWQuIFdlIHRlcm1pbmF0ZSB0aGUgYnVpbGQvdmFsaWRhdGluZyByZW5kZXIuXG4gICAgICBsb2dEaXNhbGxvd2VkRHluYW1pY0Vycm9yKFxuICAgICAgICB3b3JrU3RvcmUsXG4gICAgICAgIHNlcnZlckR5bmFtaWMuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFja1xuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuXG4gICAgLy8gV2UgZGlkbid0IGhhdmUgYW55IHN5bmMgYmFpbG91dHMgYnV0IHRoZXJlIG1heSBiZSB1c2VyIGNvZGUgd2hpY2hcbiAgICAvLyBibG9ja2VkIHRoZSByb290LiBXZSB3b3VsZCBoYXZlIGNhcHR1cmVkIHRoZXNlIGR1cmluZyB0aGUgcHJlcmVuZGVyXG4gICAgLy8gYW5kIGNhbiBsb2cgdGhlbSBoZXJlIGFuZCB0aGVuIHRlcm1pbmF0ZSB0aGUgYnVpbGQvdmFsaWRhdGluZyByZW5kZXJcbiAgICBjb25zdCBkeW5hbWljRXJyb3JzID0gZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9yc1xuICAgIGlmIChkeW5hbWljRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZHluYW1pY0Vycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsb2dEaXNhbGxvd2VkRHluYW1pY0Vycm9yKHdvcmtTdG9yZSwgZHluYW1pY0Vycm9yc1tpXSlcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuXG4gICAgLy8gSWYgd2UgZ290IHRoaXMgZmFyIHRoZW4gdGhlIG9ubHkgb3RoZXIgdGhpbmcgdGhhdCBjb3VsZCBiZSBibG9ja2luZ1xuICAgIC8vIHRoZSByb290IGlzIGR5bmFtaWMgVmlld3BvcnQuIElmIHRoaXMgaXMgZHluYW1pYyB0aGVuXG4gICAgLy8geW91IG5lZWQgdG8gb3B0IGludG8gdGhhdCBieSBhZGRpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBhYm92ZSB0aGUgYm9keVxuICAgIC8vIHRvIGluZGljYXRlIHlvdXIgYXJlIG9rIHdpdGggZnVsbHkgZHluYW1pYyByZW5kZXJpbmcuXG4gICAgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNWaWV3cG9ydCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFJvdXRlIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgaGFzIGEgXFxgZ2VuZXJhdGVWaWV3cG9ydFxcYCB0aGF0IGRlcGVuZHMgb24gUmVxdWVzdCBkYXRhIChcXGBjb29raWVzKClcXGAsIGV0Yy4uLikgb3IgdW5jYWNoZWQgZXh0ZXJuYWwgZGF0YSAoXFxgZmV0Y2goLi4uKVxcYCwgZXRjLi4uKSB3aXRob3V0IGV4cGxpY2l0bHkgYWxsb3dpbmcgZnVsbHkgZHluYW1pYyByZW5kZXJpbmcuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1wcmVyZW5kZXItZHluYW1pYy12aWV3cG9ydGBcbiAgICAgIClcbiAgICAgIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoKVxuICAgIH1cblxuICAgIGlmIChwcmVsdWRlID09PSBQcmVsdWRlU3RhdGUuRW1wdHkpIHtcbiAgICAgIC8vIElmIHdlIGV2ZXIgZ2V0IHRoaXMgZmFyIHRoZW4gd2UgbWVzc2VkIHVwIHRoZSB0cmFja2luZyBvZiBpbnZhbGlkIGR5bmFtaWMuXG4gICAgICAvLyBXZSBzdGlsbCBhZGhlcmUgdG8gdGhlIGNvbnN0cmFpbnQgdGhhdCB5b3UgbXVzdCBwcm9kdWNlIGEgc2hlbGwgYnV0IGludml0ZSB0aGVcbiAgICAgIC8vIHVzZXIgdG8gcmVwb3J0IHRoaXMgYXMgYSBidWcgaW4gTmV4dC5qcy5cbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBSb3V0ZSBcIiR7d29ya1N0b3JlLnJvdXRlfVwiIGRpZCBub3QgcHJvZHVjZSBhIHN0YXRpYyBzaGVsbCBhbmQgTmV4dC5qcyB3YXMgdW5hYmxlIHRvIGRldGVybWluZSBhIHJlYXNvbi4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLmBcbiAgICAgIClcbiAgICAgIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoXG4gICAgICBkeW5hbWljVmFsaWRhdGlvbi5oYXNBbGxvd2VkRHluYW1pYyA9PT0gZmFsc2UgJiZcbiAgICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNNZXRhZGF0YVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFJvdXRlIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgaGFzIGEgXFxgZ2VuZXJhdGVNZXRhZGF0YVxcYCB0aGF0IGRlcGVuZHMgb24gUmVxdWVzdCBkYXRhIChcXGBjb29raWVzKClcXGAsIGV0Yy4uLikgb3IgdW5jYWNoZWQgZXh0ZXJuYWwgZGF0YSAoXFxgZmV0Y2goLi4uKVxcYCwgZXRjLi4uKSB3aGVuIHRoZSByZXN0IG9mIHRoZSByb3V0ZSBkb2VzIG5vdC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXByZXJlbmRlci1keW5hbWljLW1ldGFkYXRhYFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxheVVudGlsUnVudGltZVN0YWdlPFQ+KFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5SdW50aW1lLFxuICByZXN1bHQ6IFByb21pc2U8VD5cbik6IFByb21pc2U8VD4ge1xuICBpZiAocHJlcmVuZGVyU3RvcmUucnVudGltZVN0YWdlUHJvbWlzZSkge1xuICAgIHJldHVybiBwcmVyZW5kZXJTdG9yZS5ydW50aW1lU3RhZ2VQcm9taXNlLnRoZW4oKCkgPT4gcmVzdWx0KVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJQb3N0cG9uZSIsIlByZWx1ZGVTdGF0ZSIsImFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MiLCJhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzIiwiYWNjZXNzZWREeW5hbWljRGF0YSIsImFubm90YXRlRHluYW1pY0FjY2VzcyIsImNvbnN1bWVEeW5hbWljQWNjZXNzIiwiY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGUiLCJjcmVhdGVEeW5hbWljVmFsaWRhdGlvblN0YXRlIiwiY3JlYXRlSGFuZ2luZ0lucHV0QWJvcnRTaWduYWwiLCJjcmVhdGVSZW5kZXJJbkJyb3dzZXJBYm9ydFNpZ25hbCIsImRlbGF5VW50aWxSdW50aW1lU3RhZ2UiLCJmb3JtYXREeW5hbWljQVBJQWNjZXNzZXMiLCJnZXRGaXJzdER5bmFtaWNSZWFzb24iLCJpc0R5bmFtaWNQb3N0cG9uZSIsImlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvciIsImxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3IiLCJtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljIiwicG9zdHBvbmVXaXRoVHJhY2tpbmciLCJ0aHJvd0lmRGlzYWxsb3dlZER5bmFtaWMiLCJ0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbiIsInRyYWNrQWxsb3dlZER5bmFtaWNBY2Nlc3MiLCJ0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyIiwidHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldiIsInRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2IiwidXNlRHluYW1pY1JvdXRlUGFyYW1zIiwid2Fybk9uU3luY0R5bmFtaWNFcnJvciIsImhhc1Bvc3Rwb25lIiwiUmVhY3QiLCJ1bnN0YWJsZV9wb3N0cG9uZSIsImlzRGVidWdEeW5hbWljQWNjZXNzZXMiLCJkeW5hbWljQWNjZXNzZXMiLCJzeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrIiwiaGFzU3VzcGVuc2VBYm92ZUJvZHkiLCJoYXNEeW5hbWljTWV0YWRhdGEiLCJoYXNEeW5hbWljVmlld3BvcnQiLCJoYXNBbGxvd2VkRHluYW1pYyIsImR5bmFtaWNFcnJvcnMiLCJ0cmFja2luZ1N0YXRlIiwiZXhwcmVzc2lvbiIsInN0b3JlIiwid29ya1VuaXRTdG9yZSIsInR5cGUiLCJmb3JjZUR5bmFtaWMiLCJmb3JjZVN0YXRpYyIsImR5bmFtaWNTaG91bGRFcnJvciIsIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsInJvdXRlIiwiZHluYW1pY1RyYWNraW5nIiwicmV2YWxpZGF0ZSIsImVyciIsIkR5bmFtaWNTZXJ2ZXJFcnJvciIsImR5bmFtaWNVc2FnZURlc2NyaXB0aW9uIiwiZHluYW1pY1VzYWdlU3RhY2siLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVzZWREeW5hbWljIiwicHJlcmVuZGVyU3RvcmUiLCJhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2VzcyIsInJlYXNvbiIsImVycm9yIiwiY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvciIsImNvbnRyb2xsZXIiLCJhYm9ydCIsInB1c2giLCJFcnJvciIsInVuZGVmaW5lZCIsImVycm9yV2l0aFN0YWNrIiwicmVxdWVzdFN0b3JlIiwicHJlcmVuZGVyUGhhc2UiLCJwcmVyZW5kZXJTaWduYWwiLCJzaWduYWwiLCJhYm9ydGVkIiwiY29uc29sZSIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJhc3NlcnRQb3N0cG9uZSIsImNyZWF0ZVBvc3Rwb25lUmVhc29uIiwibWVzc2FnZSIsImlzRHluYW1pY1Bvc3Rwb25lUmVhc29uIiwiaW5jbHVkZXMiLCJORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCIsImRpZ2VzdCIsImxlbmd0aCIsInNlcnZlckR5bmFtaWMiLCJjbGllbnREeW5hbWljIiwiZmlsdGVyIiwiYWNjZXNzIiwibWFwIiwic3BsaXQiLCJzbGljZSIsImxpbmUiLCJqb2luIiwiQWJvcnRDb250cm9sbGVyIiwiQmFpbG91dFRvQ1NSRXJyb3IiLCJjYWNoZVNpZ25hbCIsImlucHV0UmVhZHkiLCJ0aGVuIiwicnVudGltZVN0YWdlUHJvbWlzZSIsImdldFJ1bnRpbWVTdGFnZVByb21pc2UiLCJzY2hlZHVsZU9uTmV4dFRpY2siLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZmFsbGJhY2tQYXJhbXMiLCJmYWxsYmFja1JvdXRlUGFyYW1zIiwic2l6ZSIsInVzZSIsIm1ha2VIYW5naW5nUHJvbWlzZSIsInJlbmRlclNpZ25hbCIsIkludmFyaWFudEVycm9yIiwiaGFzU3VzcGVuc2VSZWdleCIsImJvZHlBbmRJbXBsaWNpdFRhZ3MiLCJoYXNTdXNwZW5zZUJlZm9yZVJvb3RMYXlvdXRXaXRob3V0Qm9keU9ySW1wbGljaXRCb2R5UmVnZXgiLCJSZWdFeHAiLCJST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FIiwiaGFzTWV0YWRhdGFSZWdleCIsIk1FVEFEQVRBX0JPVU5EQVJZX05BTUUiLCJoYXNWaWV3cG9ydFJlZ2V4IiwiVklFV1BPUlRfQk9VTkRBUllfTkFNRSIsImhhc091dGxldFJlZ2V4IiwiT1VUTEVUX0JPVU5EQVJZX05BTUUiLCJjb21wb25lbnRTdGFjayIsImR5bmFtaWNWYWxpZGF0aW9uIiwidGVzdCIsImNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayIsIm93bmVyU3RhY2siLCJjYXB0dXJlT3duZXJTdGFjayIsIm5hbWUiLCJkZXYiLCJoYXNSZWFkYWJsZUVycm9yU3RhY2tzIiwicHJlbHVkZSIsImkiLCJyZXN1bHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js": /*!*****************************************************************************************!*\ !*** ./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupedByCallsiteServerErrorLoggerDev\", ({\n enumerable: true,\n get: function() {\n return createDedupedByCallsiteServerErrorLoggerDev;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst errorRef = {\n current: null\n};\n// React.cache is currently only available in canary/experimental React channels.\nconst cache = typeof _react.cache === 'function' ? _react.cache : (fn)=>fn;\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = false ? 0 : console.warn;\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n(key)=>{\n try {\n logErrorOrWarn(errorRef.current);\n } finally{\n errorRef.current = null;\n }\n});\nfunction createDedupedByCallsiteServerErrorLoggerDev(getMessage) {\n return function logDedupedError(...args) {\n const message = getMessage(...args);\n if (true) {\n var _stack;\n const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\\n');\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message);\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4];\n errorRef.current = message;\n flushCurrentErrorIfNew(key);\n }\n } else {}\n };\n}\n\n//# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0VBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLE1BQW1DLEdBQUcsQ0FBYTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBSyxFQUVOO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldlwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldjtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5jb25zdCBlcnJvclJlZiA9IHtcbiAgICBjdXJyZW50OiBudWxsXG59O1xuLy8gUmVhY3QuY2FjaGUgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIGNhbmFyeS9leHBlcmltZW50YWwgUmVhY3QgY2hhbm5lbHMuXG5jb25zdCBjYWNoZSA9IHR5cGVvZiBfcmVhY3QuY2FjaGUgPT09ICdmdW5jdGlvbicgPyBfcmVhY3QuY2FjaGUgOiAoZm4pPT5mbjtcbi8vIFdoZW4gQ2FjaGUgQ29tcG9uZW50cyBpcyBlbmFibGVkLCB3ZSByZWNvcmQgdGhlc2UgYXMgZXJyb3JzIHNvIHRoYXQgdGhleVxuLy8gYXJlIGNhcHR1cmVkIGJ5IHRoZSBkZXYgb3ZlcmxheSBhcyBpdCdzIG1vcmUgY3JpdGljYWwgdG8gZml4IHRoZXNlXG4vLyB3aGVuIGVuYWJsZWQuXG5jb25zdCBsb2dFcnJvck9yV2FybiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTID8gY29uc29sZS5lcnJvciA6IGNvbnNvbGUud2Fybjtcbi8vIFdlIGRvbid0IHdhbnQgdG8gZGVkdXBlIGFjcm9zcyByZXF1ZXN0cy5cbi8vIFRoZSBkZXZlbG9wZXIgbWlnaHQndmUganVzdCBhdHRlbXB0ZWQgdG8gZml4IHRoZSB3YXJuaW5nIHNvIHdlIHNob3VsZCB3YXJuIGFnYWluIGlmIGl0IHN0aWxsIGhhcHBlbnMuXG5jb25zdCBmbHVzaEN1cnJlbnRFcnJvcklmTmV3ID0gY2FjaGUoLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBjYWNoZSBrZXlcbihrZXkpPT57XG4gICAgdHJ5IHtcbiAgICAgICAgbG9nRXJyb3JPcldhcm4oZXJyb3JSZWYuY3VycmVudCk7XG4gICAgfSBmaW5hbGx5e1xuICAgICAgICBlcnJvclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYoZ2V0TWVzc2FnZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBsb2dEZWR1cGVkRXJyb3IoLi4uYXJncykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZ2V0TWVzc2FnZSguLi5hcmdzKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBfc3RhY2s7XG4gICAgICAgICAgICBjb25zdCBjYWxsU3RhY2tGcmFtZXMgPSAoX3N0YWNrID0gbmV3IEVycm9yKCkuc3RhY2spID09IG51bGwgPyB2b2lkIDAgOiBfc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgaWYgKGNhbGxTdGFja0ZyYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGNhbGxTdGFja0ZyYW1lcy5sZW5ndGggPCA0KSB7XG4gICAgICAgICAgICAgICAgbG9nRXJyb3JPcldhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEVycm9yOlxuICAgICAgICAgICAgICAgIC8vICAgbG9nRGVkdXBlZEVycm9yXG4gICAgICAgICAgICAgICAgLy8gICBhc3luY0FwaUJlaW5nQWNjZXNzZWRTeW5jaHJvbm91c2x5XG4gICAgICAgICAgICAgICAgLy8gICA8dXNlcmxhbmQgY2FsbHNpdGU+XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBicmVha3MgaWYgc291cmNlbWFwcyB3aXRoIGlnbm9yZSBsaXN0cyBhcmUgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBjYWxsU3RhY2tGcmFtZXNbNF07XG4gICAgICAgICAgICAgICAgZXJyb3JSZWYuY3VycmVudCA9IG1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgZmx1c2hDdXJyZW50RXJyb3JJZk5ldyhrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nRXJyb3JPcldhcm4obWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/server/dev/hot-reloader-types.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HMR_ACTIONS_SENT_TO_BROWSER\", ({\n enumerable: true,\n get: function() {\n return HMR_ACTIONS_SENT_TO_BROWSER;\n }\n}));\nvar HMR_ACTIONS_SENT_TO_BROWSER = /*#__PURE__*/ function(HMR_ACTIONS_SENT_TO_BROWSER) {\n HMR_ACTIONS_SENT_TO_BROWSER[\"ADDED_PAGE\"] = \"addedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"REMOVED_PAGE\"] = \"removedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"RELOAD_PAGE\"] = \"reloadPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_COMPONENT_CHANGES\"] = \"serverComponentChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"MIDDLEWARE_CHANGES\"] = \"middlewareChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"CLIENT_CHANGES\"] = \"clientChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ONLY_CHANGES\"] = \"serverOnlyChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SYNC\"] = \"sync\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILT\"] = \"built\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILDING\"] = \"building\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_PAGES_MANIFEST_UPDATE\"] = \"devPagesManifestUpdate\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_MESSAGE\"] = \"turbopack-message\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ERROR\"] = \"serverError\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_CONNECTED\"] = \"turbopack-connected\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"ISR_MANIFEST\"] = \"isrManifest\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_INDICATOR\"] = \"devIndicator\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEVTOOLS_CONFIG\"] = \"devtoolsConfig\";\n return HMR_ACTIONS_SENT_TO_BROWSER;\n}({});\n\n//# sourceMappingURL=hot-reloader-types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0RBQThEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUlwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSO1xuICAgIH1cbn0pO1xudmFyIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSKSB7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQURERURfUEFHRVwiXSA9IFwiYWRkZWRQYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiUkVNT1ZFRF9QQUdFXCJdID0gXCJyZW1vdmVkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlJFTE9BRF9QQUdFXCJdID0gXCJyZWxvYWRQYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU0VSVkVSX0NPTVBPTkVOVF9DSEFOR0VTXCJdID0gXCJzZXJ2ZXJDb21wb25lbnRDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiTUlERExFV0FSRV9DSEFOR0VTXCJdID0gXCJtaWRkbGV3YXJlQ2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkNMSUVOVF9DSEFOR0VTXCJdID0gXCJjbGllbnRDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU0VSVkVSX09OTFlfQ0hBTkdFU1wiXSA9IFwic2VydmVyT25seUNoYW5nZXNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJTWU5DXCJdID0gXCJzeW5jXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQlVJTFRcIl0gPSBcImJ1aWx0XCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQlVJTERJTkdcIl0gPSBcImJ1aWxkaW5nXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiREVWX1BBR0VTX01BTklGRVNUX1VQREFURVwiXSA9IFwiZGV2UGFnZXNNYW5pZmVzdFVwZGF0ZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlRVUkJPUEFDS19NRVNTQUdFXCJdID0gXCJ0dXJib3BhY2stbWVzc2FnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9FUlJPUlwiXSA9IFwic2VydmVyRXJyb3JcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJUVVJCT1BBQ0tfQ09OTkVDVEVEXCJdID0gXCJ0dXJib3BhY2stY29ubmVjdGVkXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiSVNSX01BTklGRVNUXCJdID0gXCJpc3JNYW5pZmVzdFwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkRFVl9JTkRJQ0FUT1JcIl0gPSBcImRldkluZGljYXRvclwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkRFVlRPT0xTX0NPTkZJR1wiXSA9IFwiZGV2dG9vbHNDb25maWdcIjtcbiAgICByZXR1cm4gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhvdC1yZWxvYWRlci10eXBlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/server/dynamic-rendering-utils.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isHangingPromiseRejectionError: function() {\n return isHangingPromiseRejectionError;\n },\n makeDevtoolsIOAwarePromise: function() {\n return makeDevtoolsIOAwarePromise;\n },\n makeHangingPromise: function() {\n return makeHangingPromise;\n }\n});\nfunction isHangingPromiseRejectionError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === HANGING_PROMISE_REJECTION;\n}\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';\nclass HangingPromiseRejectionError extends Error {\n constructor(route, expression){\n super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;\n }\n}\nconst abortListenersBySignal = new WeakMap();\nfunction makeHangingPromise(signal, route, expression) {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression));\n } else {\n const hangingPromise = new Promise((_, reject)=>{\n const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));\n let currentListeners = abortListenersBySignal.get(signal);\n if (currentListeners) {\n currentListeners.push(boundRejection);\n } else {\n const listeners = [\n boundRejection\n ];\n abortListenersBySignal.set(signal, listeners);\n signal.addEventListener('abort', ()=>{\n for(let i = 0; i < listeners.length; i++){\n listeners[i]();\n }\n }, {\n once: true\n });\n }\n });\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject);\n return hangingPromise;\n }\n}\nfunction ignoreReject() {}\nfunction makeDevtoolsIOAwarePromise(underlying) {\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise((resolve)=>{\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(()=>{\n resolve(underlying);\n }, 0);\n });\n}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxZQUFZLHNHQUFzRyxZQUFZLCtLQUErSyxNQUFNO0FBQ3pWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsc0JBQXNCO0FBQ3pEO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcjogbnVsbCxcbiAgICBtYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZTogbnVsbCxcbiAgICBtYWtlSGFuZ2luZ1Byb21pc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcjtcbiAgICB9LFxuICAgIG1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlO1xuICAgIH0sXG4gICAgbWFrZUhhbmdpbmdQcm9taXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nUHJvbWlzZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcihlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciAhPT0gJ29iamVjdCcgfHwgZXJyID09PSBudWxsIHx8ICEoJ2RpZ2VzdCcgaW4gZXJyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBlcnIuZGlnZXN0ID09PSBIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OO1xufVxuY29uc3QgSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTiA9ICdIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OJztcbmNsYXNzIEhhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3Iocm91dGUsIGV4cHJlc3Npb24pe1xuICAgICAgICBzdXBlcihgRHVyaW5nIHByZXJlbmRlcmluZywgJHtleHByZXNzaW9ufSByZWplY3RzIHdoZW4gdGhlIHByZXJlbmRlciBpcyBjb21wbGV0ZS4gVHlwaWNhbGx5IHRoZXNlIGVycm9ycyBhcmUgaGFuZGxlZCBieSBSZWFjdCBidXQgaWYgeW91IG1vdmUgJHtleHByZXNzaW9ufSB0byBhIGRpZmZlcmVudCBjb250ZXh0IGJ5IHVzaW5nIFxcYHNldFRpbWVvdXRcXGAsIFxcYGFmdGVyXFxgLCBvciBzaW1pbGFyIGZ1bmN0aW9ucyB5b3UgbWF5IG9ic2VydmUgdGhpcyBlcnJvciBhbmQgeW91IHNob3VsZCBoYW5kbGUgaXQgaW4gdGhhdCBjb250ZXh0LiBUaGlzIG9jY3VycmVkIGF0IHJvdXRlIFwiJHtyb3V0ZX1cIi5gKSwgdGhpcy5yb3V0ZSA9IHJvdXRlLCB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uLCB0aGlzLmRpZ2VzdCA9IEhBTkdJTkdfUFJPTUlTRV9SRUpFQ1RJT047XG4gICAgfVxufVxuY29uc3QgYWJvcnRMaXN0ZW5lcnNCeVNpZ25hbCA9IG5ldyBXZWFrTWFwKCk7XG5mdW5jdGlvbiBtYWtlSGFuZ2luZ1Byb21pc2Uoc2lnbmFsLCByb3V0ZSwgZXhwcmVzc2lvbikge1xuICAgIGlmIChzaWduYWwuYWJvcnRlZCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEhhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3Iocm91dGUsIGV4cHJlc3Npb24pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBoYW5naW5nUHJvbWlzZSA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpPT57XG4gICAgICAgICAgICBjb25zdCBib3VuZFJlamVjdGlvbiA9IHJlamVjdC5iaW5kKG51bGwsIG5ldyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKHJvdXRlLCBleHByZXNzaW9uKSk7XG4gICAgICAgICAgICBsZXQgY3VycmVudExpc3RlbmVycyA9IGFib3J0TGlzdGVuZXJzQnlTaWduYWwuZ2V0KHNpZ25hbCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudExpc3RlbmVycykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRMaXN0ZW5lcnMucHVzaChib3VuZFJlamVjdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IFtcbiAgICAgICAgICAgICAgICAgICAgYm91bmRSZWplY3Rpb25cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGFib3J0TGlzdGVuZXJzQnlTaWduYWwuc2V0KHNpZ25hbCwgbGlzdGVuZXJzKTtcbiAgICAgICAgICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCAoKT0+e1xuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyc1tpXSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBvbmNlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBXZSBhcmUgZmluZSBpZiBubyBvbmUgYWN0dWFsbHkgYXdhaXRzIHRoaXMgcHJvbWlzZS4gV2Ugc2hvdWxkbid0IGNvbnNpZGVyIHRoaXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiBzb1xuICAgICAgICAvLyB3ZSBhdHRhY2ggYSBub29wIGNhdGNoIGhhbmRsZXIgaGVyZSB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcuIElmIHlvdSBhY3R1YWxseSBhd2FpdCBzb21ld2hlcmUgb3IgY29uc3RydWN0XG4gICAgICAgIC8vIHlvdXIgb3duIHByb21pc2Ugb3V0IG9mIGl0IHlvdSdsbCBuZWVkIHRvIGVuc3VyZSB5b3UgaGFuZGxlIHRoZSBlcnJvciB3aGVuIGl0IHJlamVjdHMuXG4gICAgICAgIGhhbmdpbmdQcm9taXNlLmNhdGNoKGlnbm9yZVJlamVjdCk7XG4gICAgICAgIHJldHVybiBoYW5naW5nUHJvbWlzZTtcbiAgICB9XG59XG5mdW5jdGlvbiBpZ25vcmVSZWplY3QoKSB7fVxuZnVuY3Rpb24gbWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2UodW5kZXJseWluZykge1xuICAgIC8vIGluIFJlYWN0IERldlRvb2xzIGlmIHdlIHJlc29sdmUgaW4gYSBzZXRUaW1lb3V0IHdlIHdpbGwgb2JzZXJ2ZVxuICAgIC8vIHRoZSBwcm9taXNlIHJlc29sdXRpb24gYXMgc29tZXRoaW5nIHRoYXQgY2FuIHN1c3BlbmQgYSBib3VuZGFyeSBvciByb290LlxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgLy8gTXVzdCB1c2Ugc2V0VGltZW91dCB0byBiZSBjb25zaWRlcmVkIElPIFJlYWN0IERldlRvb2xzLiBzZXRJbW1lZGlhdGUgd2lsbCBub3Qgd29yay5cbiAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgcmVzb2x2ZSh1bmRlcmx5aW5nKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWR5bmFtaWMtcmVuZGVyaW5nLXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/server/lib/router-utils/is-postpone.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isPostpone\", ({\n enumerable: true,\n get: function() {\n return isPostpone;\n }\n}));\nconst REACT_POSTPONE_TYPE = Symbol.for('react.postpone');\nfunction isPostpone(error) {\n return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;\n}\n\n//# sourceMappingURL=is-postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOENBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3JvdXRlci11dGlscy9pcy1wb3N0cG9uZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzUG9zdHBvbmVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzUG9zdHBvbmU7XG4gICAgfVxufSk7XG5jb25zdCBSRUFDVF9QT1NUUE9ORV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9zdHBvbmUnKTtcbmZ1bmN0aW9uIGlzUG9zdHBvbmUoZXJyb3IpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiBlcnJvci4kJHR5cGVvZiA9PT0gUkVBQ1RfUE9TVFBPTkVfVFlQRTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtcG9zdHBvbmUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/request/params.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/server/request/params.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createParamsFromClient: function() {\n return createParamsFromClient;\n },\n createPrerenderParamsForClientSegment: function() {\n return createPrerenderParamsForClientSegment;\n },\n createServerParamsForMetadata: function() {\n return createServerParamsForMetadata;\n },\n createServerParamsForRoute: function() {\n return createServerParamsForRoute;\n },\n createServerParamsForServerSegment: function() {\n return createServerParamsForServerSegment;\n }\n});\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _dynamicaccessasyncstorageexternal = __webpack_require__(/*! ../app-render/dynamic-access-async-storage.external */ \"../app-render/dynamic-access-async-storage.external\");\nfunction createParamsFromClient(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E736\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E770\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nconst createServerParamsForMetadata = createServerParamsForServerSegment;\nfunction createServerParamsForRoute(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForRoute should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E738\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, workUnitStore);\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createServerParamsForServerSegment(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForServerSegment should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E743\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, workUnitStore);\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderParamsForClientSegment(underlyingParams) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in createPrerenderParamsForClientSegment'), \"__NEXT_ERROR_CODE\", {\n value: \"E773\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`params`');\n }\n }\n }\n break;\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderParamsForClientSegment should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E734\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // We're prerendering in a mode that does not abort. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve(underlyingParams);\n}\nfunction createStaticPrerenderParams(underlyingParams, workStore, prerenderStore) {\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return makeHangingParams(underlyingParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n return makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n if (false) {} else {\n return makeUntrackedExoticParams(underlyingParams);\n }\n}\nfunction createRuntimePrerenderParams(underlyingParams, workUnitStore) {\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticParams(underlyingParams));\n}\nfunction createRenderParamsInProd(underlyingParams) {\n if (false) {}\n return makeUntrackedExoticParams(underlyingParams);\n}\nfunction createRenderParamsInDev(underlyingParams, devFallbackParams, workStore) {\n let hasFallbackParams = false;\n if (devFallbackParams) {\n for(let key in underlyingParams){\n if (devFallbackParams.has(key)) {\n hasFallbackParams = true;\n break;\n }\n }\n }\n if (false) {}\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, hasFallbackParams, workStore);\n}\nconst CachedParams = new WeakMap();\nconst fallbackParamsProxyHandler = {\n get: function get(target, prop, receiver) {\n if (prop === 'then' || prop === 'catch' || prop === 'finally') {\n const originalMethod = _reflect.ReflectAdapter.get(target, prop, receiver);\n return ({\n [prop]: (...args)=>{\n const store = _dynamicaccessasyncstorageexternal.dynamicAccessAsyncStorage.getStore();\n if (store) {\n store.abortController.abort(Object.defineProperty(new Error(`Accessed fallback \\`params\\` during prerendering.`), \"__NEXT_ERROR_CODE\", {\n value: \"E691\",\n enumerable: false,\n configurable: true\n }));\n }\n return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);\n }\n })[prop];\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n};\nfunction makeHangingParams(underlyingParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = new Proxy((0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`params`'), fallbackParamsProxyHandler);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n Object.defineProperty(promise, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n}\nfunction makeUntrackedExoticParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n });\n return promise;\n}\nfunction makeUntrackedParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, hasFallbackParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams) : Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n promise[prop] = underlyingParams[prop];\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticParamsWithDevWarnings`, but just\n// logging the sync access without actually defining the params on the promise.\nfunction makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, hasFallbackParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams) : Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n if (workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev, we need to advance out of\n // the Prerender environment when we read Request data synchronously.\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore);\n }\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E307\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E482\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQ0FBa0MsbUJBQU8sQ0FBQyxnRkFBMkM7QUFDckYsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQywwRkFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLHNCQUFzQixtQkFBTyxDQUFDLDhHQUFzQztBQUNwRSwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsa0RBQWtELG1CQUFPLENBQUMsa0pBQW1EO0FBQzdHLDJDQUEyQyxtQkFBTyxDQUFDLGdIQUFxRDtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0Esb0JBQW9CLElBQXNDO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsS0FBSyxFQUVOO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFD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YyxXQUFXLGNBQWM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJCQUEyQjtBQUMxRCx3Q0FBd0MsY0FBYztBQUN0RDtBQUNBLDBDQUEwQyxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50OiBudWxsLFxuICAgIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGU6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQ7XG4gICAgfSxcbiAgICBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlO1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50O1xuICAgIH1cbn0pO1xuY29uc3QgX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9yZWZsZWN0ID0gcmVxdWlyZShcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0XCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jb25zdCBfcmVmbGVjdHV0aWxzID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlsc1wiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlciA9IHJlcXVpcmUoXCIuLi9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyXCIpO1xuY29uc3QgX2R5bmFtaWNhY2Nlc3Nhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2R5bmFtaWMtYWNjZXNzLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5mdW5jdGlvbiBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50KHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzZcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGEgcnVudGltZSBwcmVyZW5kZXIuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzcwXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNpbmNlIHlvdSB3b3VsZCBuZXZlciB1c2UgbmV4dCBkZXYgd2l0aCBwcm9kdWN0aW9uIE5PREVfRU5WIHdlIHVzZSB0aGlzXG4gICAgICAgICAgICAgICAgICAgIC8vIGFzIGEgcHJveHkgc28gd2UgY2FuIHN0YXRpY2FsbHkgZXhjbHVkZSB0aGlzIGNvZGUgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV2RmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmRldkZhbGxiYWNrUGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5EZXYodW5kZXJseWluZ1BhcmFtcywgZGV2RmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtc0luUHJvZCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuY29uc3QgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEgPSBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50O1xuZnVuY3Rpb24gY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGUodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGF0aWNQcmVyZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzhcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNlbWFudGljYWxseSB3ZSBvbmx5IG5lZWQgdGhlIGRldiB0cmFja2luZyB3aGVuIHJ1bm5pbmcgaW4gYG5leHQgZGV2YFxuICAgICAgICAgICAgICAgICAgICAvLyBidXQgc2luY2UgeW91IHdvdWxkIG5ldmVyIHVzZSBuZXh0IGRldiB3aXRoIHByb2R1Y3Rpb24gTk9ERV9FTlYgd2UgdXNlIHRoaXNcbiAgICAgICAgICAgICAgICAgICAgLy8gYXMgYSBwcm94eSBzbyB3ZSBjYW4gc3RhdGljYWxseSBleGNsdWRlIHRoaXMgY29kZSBmcm9tIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXZGYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZGV2RmFsbGJhY2tQYXJhbXM7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXNJbkRldih1bmRlcmx5aW5nUGFyYW1zLCBkZXZGYWxsYmFja1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5Qcm9kKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAoMCwgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCk7XG59XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50KHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NDNcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNlbWFudGljYWxseSB3ZSBvbmx5IG5lZWQgdGhlIGRldiB0cmFja2luZyB3aGVuIHJ1bm5pbmcgaW4gYG5leHQgZGV2YFxuICAgICAgICAgICAgICAgICAgICAvLyBidXQgc2luY2UgeW91IHdvdWxkIG5ldmVyIHVzZSBuZXh0IGRldiB3aXRoIHByb2R1Y3Rpb24gTk9ERV9FTlYgd2UgdXNlIHRoaXNcbiAgICAgICAgICAgICAgICAgICAgLy8gYXMgYSBwcm94eSBzbyB3ZSBjYW4gc3RhdGljYWxseSBleGNsdWRlIHRoaXMgY29kZSBmcm9tIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXZGYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZGV2RmFsbGJhY2tQYXJhbXM7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXNJbkRldih1bmRlcmx5aW5nUGFyYW1zLCBkZXZGYWxsYmFja1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5Qcm9kKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAoMCwgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50KHVuZGVybHlpbmdQYXJhbXMpIHtcbiAgICBjb25zdCB3b3JrU3RvcmUgPSBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXdvcmtTdG9yZSkge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignTWlzc2luZyB3b3JrU3RvcmUgaW4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkU3NzNcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcyl7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHBhcmFtcyBvYmplY3QgaGFzIG9uZSBvciBtb3JlIGZhbGxiYWNrIHBhcmFtcywgc28gd2UgbmVlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGNvbnNpZGVyIHRoZSBhd2FpdGluZyBvZiB0aGlzIHBhcmFtcyBvYmplY3QgXCJkeW5hbWljXCIuIFNpbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGluIGNhY2hlQ29tcG9uZW50cyBtb2RlIHdlIGVuY29kZSB0aGlzIGFzIGEgcHJvbWlzZSB0aGF0IG5ldmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVzb2x2ZXMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsIHdvcmtTdG9yZS5yb3V0ZSwgJ2BwYXJhbXNgJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzRcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyBpbiBhIG1vZGUgdGhhdCBkb2VzIG5vdCBhYm9ydC4gV2UgcmVzb2x2ZSB0aGUgcHJvbWlzZSB3aXRob3V0XG4gICAgLy8gYW55IHRyYWNraW5nIGJlY2F1c2Ugd2UncmUganVzdCB0cmFuc3BvcnRpbmcgYSB2YWx1ZSBmcm9tIHNlcnZlciB0byBjbGllbnQgd2hlcmUgdGhlIHRyYWNraW5nXG4gICAgLy8gd2lsbCBiZSBhcHBsaWVkLlxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG59XG5mdW5jdGlvbiBjcmVhdGVTdGF0aWNQcmVyZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIHN3aXRjaChwcmVyZW5kZXJTdG9yZS50eXBlKXtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3Qga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBwYXJhbXMgb2JqZWN0IGhhcyBvbmUgb3IgbW9yZSBmYWxsYmFjayBwYXJhbXMsIHNvIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBjb25zaWRlciB0aGUgYXdhaXRpbmcgb2YgdGhpcyBwYXJhbXMgb2JqZWN0IFwiZHluYW1pY1wiLiBTaW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBpbiBjYWNoZUNvbXBvbmVudHMgbW9kZSB3ZSBlbmNvZGUgdGhpcyBhcyBhIHByb21pc2UgdGhhdCBuZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc29sdmVzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3Qga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VFcnJvcmluZ0V4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCBmYWxsYmFja1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBwcmVyZW5kZXJTdG9yZTtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTKSB7XG4gICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZVJ1bnRpbWVQcmVyZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1VuaXRTdG9yZSkge1xuICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmcuZGVsYXlVbnRpbFJ1bnRpbWVTdGFnZSkod29ya1VuaXRTdG9yZSwgcHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMgPyBtYWtlVW50cmFja2VkUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpIDogbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJQYXJhbXNJblByb2QodW5kZXJseWluZ1BhcmFtcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcyk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJQYXJhbXNJbkRldih1bmRlcmx5aW5nUGFyYW1zLCBkZXZGYWxsYmFja1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgbGV0IGhhc0ZhbGxiYWNrUGFyYW1zID0gZmFsc2U7XG4gICAgaWYgKGRldkZhbGxiYWNrUGFyYW1zKSB7XG4gICAgICAgIGZvcihsZXQga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgaWYgKGRldkZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgaGFzRmFsbGJhY2tQYXJhbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgICAgICByZXR1cm4gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nUGFyYW1zLCBoYXNGYWxsYmFja1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgaGFzRmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG59XG5jb25zdCBDYWNoZWRQYXJhbXMgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgZmFsbGJhY2tQYXJhbXNQcm94eUhhbmRsZXIgPSB7XG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICBpZiAocHJvcCA9PT0gJ3RoZW4nIHx8IHByb3AgPT09ICdjYXRjaCcgfHwgcHJvcCA9PT0gJ2ZpbmFsbHknKSB7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgICAgIFtwcm9wXTogKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlID0gX2R5bmFtaWNhY2Nlc3Nhc3luY3N0b3JhZ2VleHRlcm5hbC5keW5hbWljQWNjZXNzQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuYWJvcnRDb250cm9sbGVyLmFib3J0KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEFjY2Vzc2VkIGZhbGxiYWNrIFxcYHBhcmFtc1xcYCBkdXJpbmcgcHJlcmVuZGVyaW5nLmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjkxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm94eShvcmlnaW5hbE1ldGhvZC5hcHBseSh0YXJnZXQsIGFyZ3MpLCBmYWxsYmFja1BhcmFtc1Byb3h5SGFuZGxlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlbcHJvcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICB9XG59O1xuZnVuY3Rpb24gbWFrZUhhbmdpbmdQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb3h5KCgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkocHJlcmVuZGVyU3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdgcGFyYW1zYCcpLCBmYWxsYmFja1BhcmFtc1Byb3h5SGFuZGxlcik7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ0V4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCBmYWxsYmFja1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBhdWdtZW50ZWRVbmRlcmx5aW5nID0ge1xuICAgICAgICAuLi51bmRlcmx5aW5nUGFyYW1zXG4gICAgfTtcbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBwYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKGF1Z21lbnRlZFVuZGVybHlpbmcpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhdWdtZW50ZWRVbmRlcmx5aW5nLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMgd2UgYWxzbyB0aHJvdyBpZiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhcmFtcyBpcyBvbmx5IGR5bmFtaWMgd2hlbiB3ZSdyZSBnZW5lcmF0aW5nIGEgZmFsbGJhY2sgc2hlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBldmVuIHdoZW4gYGR5bmFtaWMgPSBcImVycm9yXCJgIHdlIHN0aWxsIHN1cHBvcnQgZ2VuZXJhdGluZyBkeW5hbWljXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayBzaGVsbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIGNhY2hlQ29tcG9uZW50cyBpcyB0aGUgZGVmYXVsdCBzaW5jZSB0aGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBjYWNoZUNvbXBvbmVudHMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgncGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiBtb3N0IGR5bmFtaWMgQVBJcyB3ZSBhbHNvIHRocm93IGlmIGBkeW5hbWljID0gXCJlcnJvclwiYCBob3dldmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgcGFyYW1zIGlzIG9ubHkgZHluYW1pYyB3aGVuIHdlJ3JlIGdlbmVyYXRpbmcgYSBmYWxsYmFjayBzaGVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGV2ZW4gd2hlbiBgZHluYW1pYyA9IFwiZXJyb3JcImAgd2Ugc3RpbGwgc3VwcG9ydCBnZW5lcmF0aW5nIGR5bmFtaWNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHNoZWxsc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyByZW1vdmUgdGhpcyBjb21tZW50IHdoZW4gY2FjaGVDb21wb25lbnRzIGlzIHRoZSBkZWZhdWx0IHNpbmNlIHRoZXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGJlIG5vIGBkeW5hbWljID0gXCJlcnJvclwiYFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHNldCAobmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIHByb21pc2VbcHJvcF0gPSB1bmRlcmx5aW5nUGFyYW1zW3Byb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIHByb21pc2VbcHJvcF0gPSB1bmRlcmx5aW5nUGFyYW1zW3Byb3BdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1BhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nUGFyYW1zLCBoYXNGYWxsYmFja1BhcmFtcywgc3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IGhhc0ZhbGxiYWNrUGFyYW1zID8gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2UpKHVuZGVybHlpbmdQYXJhbXMpIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgICAgIHByb21pc2VbcHJvcF0gPSB1bmRlcmx5aW5nUGFyYW1zW3Byb3BdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgd2FzIHByb3hpZWQgdG8gdGhlIHByb21pc2UgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgLi4ucGFyYW1zYCBvciBzaW1pbGFyIGV4cHJlc3Npb24nO1xuICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uLCB1bnByb3hpZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbi8vIFNpbWlsYXIgdG8gYG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3NgLCBidXQganVzdFxuLy8gbG9nZ2luZyB0aGUgc3luYyBhY2Nlc3Mgd2l0aG91dCBhY3R1YWxseSBkZWZpbmluZyB0aGUgcGFyYW1zIG9uIHRoZSBwcm9taXNlLlxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nUGFyYW1zLCBoYXNGYWxsYmFja1BhcmFtcywgc3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IGhhc0ZhbGxiYWNrUGFyYW1zID8gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2UpKHVuZGVybHlpbmdQYXJhbXMpIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IHdhcyBwcm94aWVkIHRvIHRoZSBwcm9taXNlIGluc3RhbmNlXG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgncGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgLi4ucGFyYW1zYCBvciBzaW1pbGFyIGV4cHJlc3Npb24nO1xuICAgICAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYsIHdlIG5lZWQgdG8gYWR2YW5jZSBvdXQgb2ZcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIFByZXJlbmRlciBlbnZpcm9ubWVudCB3aGVuIHdlIHJlYWQgUmVxdWVzdCBkYXRhIHN5bmNocm9ub3VzbHkuXG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50cmFja1N5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3NJbkRldikod29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gICAgaWYgKG1pc3NpbmdQcm9wZXJ0aWVzICYmIG1pc3NpbmdQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKTtcbiAgICB9XG59XG5jb25zdCB3YXJuRm9yU3luY0FjY2VzcyA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVQYXJhbXNBY2Nlc3NFcnJvcik7XG5jb25zdCB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uID0gKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVBhcmFtc0FjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgcGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTMwN1wiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBwYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB3ZXJlIG5vdCBhdmFpbGFibGUgdGhyb3VnaCBlbnVtZXJhdGlvbiBgICsgYGJlY2F1c2UgdGhleSBjb25mbGljdCB3aXRoIGJ1aWx0aW4gcHJvcGVydHkgbmFtZXM6IGAgKyBgJHtkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMobWlzc2luZ1Byb3BlcnRpZXMpfS4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTQ4MlwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMocHJvcGVydGllcykge1xuICAgIHN3aXRjaChwcm9wZXJ0aWVzLmxlbmd0aCl7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdFeHBlY3RlZCBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMgdG8gYmUgY2FsbGVkIHdpdGggYSBub24tZW1wdHkgbGlzdCBvZiBzdHJpbmdzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTMxXCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgYDtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgIGFuZCBcXGAke3Byb3BlcnRpZXNbMV19XFxgYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgXFxgJHtwcm9wZXJ0aWVzW2ldfVxcYCwgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYCwgYW5kIFxcYCR7cHJvcGVydGllc1twcm9wZXJ0aWVzLmxlbmd0aCAtIDFdfVxcYGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFyYW1zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/params.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/request/search-params.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/server/request/search-params.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createPrerenderSearchParamsForClientPage: function() {\n return createPrerenderSearchParamsForClientPage;\n },\n createSearchParamsFromClient: function() {\n return createSearchParamsFromClient;\n },\n createServerSearchParamsForMetadata: function() {\n return createServerSearchParamsForMetadata;\n },\n createServerSearchParamsForServerPage: function() {\n return createServerSearchParamsForServerPage;\n },\n makeErroringSearchParamsForUseCache: function() {\n return makeErroringSearchParamsForUseCache;\n }\n});\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(ssr)/./node_modules/next/dist/server/request/utils.js\");\nfunction createSearchParamsFromClient(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E769\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E739\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nconst createServerSearchParamsForMetadata = createServerSearchParamsForServerPage;\nfunction createServerSearchParamsForServerPage(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E747\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore);\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderSearchParamsForClientPage(workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n // We're prerendering in a mode that aborts (cacheComponents) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`');\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E768\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E746\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n return Promise.resolve({});\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createStaticPrerenderSearchParams(workStore, prerenderStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n // We are in a cacheComponents (PPR or otherwise) prerender\n return makeHangingSearchParams(workStore, prerenderStore);\n case 'prerender-ppr':\n case 'prerender-legacy':\n // We are in a legacy static generation and need to interrupt the\n // prerender when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore);\n default:\n return prerenderStore;\n }\n}\nfunction createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) {\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticSearchParams(underlyingSearchParams));\n}\nfunction createRenderSearchParams(underlyingSearchParams, workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n } else {\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n if (false) {}\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore);\n } else {}\n }\n}\nconst CachedSearchParams = new WeakMap();\nconst CachedSearchParamsForUseCache = new WeakMap();\nfunction makeHangingSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`');\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n }\n });\n CachedSearchParams.set(prerenderStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringExoticSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const underlyingSearchParams = {};\n // For search params we don't construct a ReactPromise because we want to interrupt\n // rendering on any property access that was not set from outside and so we only want\n // to have properties like value and status if React sets them.\n const promise = Promise.resolve(underlyingSearchParams);\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n default:\n {\n if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n },\n has (target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests trigger dynamic. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string') {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return false;\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys () {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n });\n CachedSearchParams.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringSearchParamsForUseCache(workStore) {\n const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve({});\n const proxiedPromise = new Proxy(promise, {\n get: function get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it. We know it\n // isn't a dynamic access because it can only be something that was\n // previously written to the promise and thus not an underlying\n // searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get);\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has: function has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests throw an error. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has);\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys: function ownKeys() {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys);\n }\n });\n CachedSearchParamsForUseCache.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeUntrackedExoticSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (!_reflectutils.wellKnownProperties.has(prop)) {\n Object.defineProperty(promise, prop, {\n get () {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n }\n return underlyingSearchParams[prop];\n },\n set (value) {\n Object.defineProperty(promise, prop, {\n value,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n return promise;\n}\nfunction makeUntrackedSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying\n // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender\n // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking\n // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger\n // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce\n // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.\n let promiseInitialized = false;\n const proxiedUnderlying = new Proxy(underlyingSearchParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && promiseInitialized) {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n if (store.dynamicShouldError) {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n return Reflect.ownKeys(target);\n }\n });\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams);\n promise.then(()=>{\n promiseInitialized = true;\n });\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n Object.defineProperty(promise, prop, {\n get () {\n return proxiedUnderlying[prop];\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (prop === 'then' && store.dynamicShouldError) {\n const expression = '`searchParams.then`';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but\n// just logging the sync access without actually defining the search params on\n// the promise.\nfunction makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n if (workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev, we need to advance out of\n // the Prerender environment when we read Request data synchronously.\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore);\n }\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E249\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E2\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=search-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQywwRkFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csc0JBQXNCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3BFLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFD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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esc0NBQXNDLGdCQUFnQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0MsOENBQThDLE9BQU8sT0FBTyxXQUFXO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0MsOENBQThDLE9BQU8sT0FBTyxXQUFXLHlOQUF5TiwrQ0FBK0M7QUFDL1U7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBLHdCQUF3QixjQUFjLFdBQVcsY0FBYztBQUMvRDtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkJBQTJCO0FBQzFELHdDQUF3QyxjQUFjO0FBQ3REO0FBQ0EsMENBQTBDLGtDQUFrQztBQUM1RTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlOiBudWxsLFxuICAgIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQ6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTogbnVsbCxcbiAgICBtYWtlRXJyb3JpbmdTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U7XG4gICAgfSxcbiAgICBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQ7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTtcbiAgICB9LFxuICAgIG1ha2VFcnJvcmluZ1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VFcnJvcmluZ1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlZmxlY3QgPSByZXF1aXJlKFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3RcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZyA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9pbnZhcmlhbnRlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvclwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlciA9IHJlcXVpcmUoXCIuLi9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyXCIpO1xuY29uc3QgX3JlZmxlY3R1dGlscyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3JlZmxlY3QtdXRpbHNcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGF0aWNQcmVyZW5kZXJTZWFyY2hQYXJhbXMod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIHJ1bnRpbWUgcHJlcmVuZGVyLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc2OVwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzlcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmNvbnN0IGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhID0gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2UodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGF0aWNQcmVyZW5kZXJTZWFyY2hQYXJhbXMod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGNhY2hlIGNvbnRleHRzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc0N1wiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJ1bnRpbWVQcmVyZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZSh3b3JrU3RvcmUpIHtcbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAgIC8vIFdoZW4gdXNpbmcgZm9yY2VTdGF0aWMgd2Ugb3ZlcnJpZGUgYWxsIG90aGVyIGxvZ2ljIGFuZCBhbHdheXMganVzdCByZXR1cm4gYW4gZW1wdHlcbiAgICAgICAgLy8gZGljdGlvbmFyeSBvYmplY3QuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH1cbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgYWJvcnRzIChjYWNoZUNvbXBvbmVudHMpIGFuZCBzaG91bGQgc3RhbGxcbiAgICAgICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSB0byBlbnN1cmUgdGhlIFJTQyBzaWRlIGlzIGNvbnNpZGVyZWQgZHluYW1pY1xuICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdgc2VhcmNoUGFyYW1zYCcpO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGEgcnVudGltZSBwcmVyZW5kZXIuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzY4XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGNhY2hlIGNvbnRleHRzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc0NlwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuZnVuY3Rpb24gY3JlYXRlU3RhdGljUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAgIC8vIFdoZW4gdXNpbmcgZm9yY2VTdGF0aWMgd2Ugb3ZlcnJpZGUgYWxsIG90aGVyIGxvZ2ljIGFuZCBhbHdheXMganVzdCByZXR1cm4gYW4gZW1wdHlcbiAgICAgICAgLy8gZGljdGlvbmFyeSBvYmplY3QuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH1cbiAgICBzd2l0Y2gocHJlcmVuZGVyU3RvcmUudHlwZSl7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgLy8gV2UgYXJlIGluIGEgY2FjaGVDb21wb25lbnRzIChQUFIgb3Igb3RoZXJ3aXNlKSBwcmVyZW5kZXJcbiAgICAgICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgLy8gV2UgYXJlIGluIGEgbGVnYWN5IHN0YXRpYyBnZW5lcmF0aW9uIGFuZCBuZWVkIHRvIGludGVycnVwdCB0aGVcbiAgICAgICAgICAgIC8vIHByZXJlbmRlciB3aGVuIHNlYXJjaCBwYXJhbXMgYXJlIGFjY2Vzc2VkLlxuICAgICAgICAgICAgcmV0dXJuIG1ha2VFcnJvcmluZ0V4b3RpY1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBwcmVyZW5kZXJTdG9yZTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtVbml0U3RvcmUpIHtcbiAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5nLmRlbGF5VW50aWxSdW50aW1lU3RhZ2UpKHdvcmtVbml0U3RvcmUsIHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTID8gbWFrZVVudHJhY2tlZFNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKSA6IG1ha2VVbnRyYWNrZWRFeG90aWNTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSB5b3Ugd291bGQgbmV2ZXIgdXNlIG5leHQgZGV2IHdpdGggcHJvZHVjdGlvbiBOT0RFX0VOViB3ZSB1c2UgdGhpc1xuICAgICAgICAgICAgLy8gYXMgYSBwcm94eSBzbyB3ZSBjYW4gc3RhdGljYWxseSBleGNsdWRlIHRoaXMgY29kZSBmcm9tIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZFNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgQ2FjaGVkU2VhcmNoUGFyYW1zID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IENhY2hlZFNlYXJjaFBhcmFtc0ZvclVzZUNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1ha2VIYW5naW5nU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHByZXJlbmRlclN0b3JlKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHByZXJlbmRlclN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnYHNlYXJjaFBhcmFtc2AnKTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24ocHJvbWlzZSwgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgcHJvbWlzZSBoYXMgdGhpcyBwcm9wZXJ0eSBkaXJlY3RseS4gd2UgbXVzdCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgLy8gV2Uga25vdyBpdCBpc24ndCBhIGR5bmFtaWMgYWNjZXNzIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgLy8gdGhhdCB3YXMgcHJldmlvdXNseSB3cml0dGVuIHRvIHRoZSBwcm9taXNlIGFuZCB0aHVzIG5vdCBhbiB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtIHZhbHVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICBjYXNlICd0aGVuJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgYXdhaXQgc2VhcmNoUGFyYW1zYCwgYHNlYXJjaFBhcmFtcy50aGVuYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcuYW5ub3RhdGVEeW5hbWljQWNjZXNzKShleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgdXNlKHNlYXJjaFBhcmFtcylgLCBgc2VhcmNoUGFyYW1zLnN0YXR1c2AsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFubm90YXRlRHluYW1pY0FjY2VzcykoZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQocHJlcmVuZGVyU3RvcmUsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdFeG90aWNTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQod29ya1N0b3JlKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHVuZGVybHlpbmdTZWFyY2hQYXJhbXMgPSB7fTtcbiAgICAvLyBGb3Igc2VhcmNoIHBhcmFtcyB3ZSBkb24ndCBjb25zdHJ1Y3QgYSBSZWFjdFByb21pc2UgYmVjYXVzZSB3ZSB3YW50IHRvIGludGVycnVwdFxuICAgIC8vIHJlbmRlcmluZyBvbiBhbnkgcHJvcGVydHkgYWNjZXNzIHRoYXQgd2FzIG5vdCBzZXQgZnJvbSBvdXRzaWRlIGFuZCBzbyB3ZSBvbmx5IHdhbnRcbiAgICAvLyB0byBoYXZlIHByb3BlcnRpZXMgbGlrZSB2YWx1ZSBhbmQgc3RhdHVzIGlmIFJlYWN0IHNldHMgdGhlbS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihwcm9taXNlLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcm9taXNlIGhhcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5LiB3ZSBtdXN0IHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICAvLyBXZSBrbm93IGl0IGlzbid0IGEgZHluYW1pYyBhY2Nlc3MgYmVjYXVzZSBpdCBjYW4gb25seSBiZSBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAvLyB0aGF0IHdhcyBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhlIHByb21pc2UgYW5kIHRodXMgbm90IGFuIHVuZGVybHlpbmcgc2VhcmNoUGFyYW0gdmFsdWVcbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RoZW4nOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2Bhd2FpdCBzZWFyY2hQYXJhbXNgLCBgc2VhcmNoUGFyYW1zLnRoZW5gLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHVzZShzZWFyY2hQYXJhbXMpYCwgYHNlYXJjaFBhcmFtcy5zdGF0dXNgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycgJiYgIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgZXhwZWN0IGtleSBjaGVja2luZyB0byBiZSB1c2VkIGV4Y2VwdCBmb3IgdGVzdGluZyB0aGUgZXhpc3RlbmNlIG9mXG4gICAgICAgICAgICAvLyBzZWFyY2hQYXJhbXMgc28gd2UgbWFrZSBhbGwgaGFzIHRlc3RzIHRyaWdnZXIgZHluYW1pYy4gdGhpcyBtZWFucyB0aGF0IGBwcm9taXNlLnRoZW5gXG4gICAgICAgICAgICAvLyBjYW4gcmVzb2x2ZSB0byB0aGUgdGhlbiBmdW5jdGlvbiBvbiB0aGUgUHJvbWlzZSBwcm90b3R5cGUgYnV0ICd0aGVuJyBpbiBwcm9taXNlIHdpbGwgYXNzdW1lXG4gICAgICAgICAgICAvLyB5b3UgYXJlIHRlc3Rpbmcgd2hldGhlciB0aGUgc2VhcmNoUGFyYW1zIGhhcyBhICd0aGVuJyBwcm9wZXJ0eS5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBjYWNoZUNvbXBvbmVudHMpXG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHsuLi5zZWFyY2hQYXJhbXN9YCwgYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQod29ya1N0b3JlLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUVycm9yaW5nU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGUod29ya1N0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGUuZ2V0KHdvcmtTdG9yZSk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LiBXZSBrbm93IGl0XG4gICAgICAgICAgICAgICAgLy8gaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZyB0aGF0IHdhc1xuICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZ1xuICAgICAgICAgICAgICAgIC8vIHNlYXJjaFBhcmFtIHZhbHVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycgJiYgKHByb3AgPT09ICd0aGVuJyB8fCAhX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkpIHtcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZSkod29ya1N0b3JlLCBnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzOiBmdW5jdGlvbiBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBleHBlY3Qga2V5IGNoZWNraW5nIHRvIGJlIHVzZWQgZXhjZXB0IGZvciB0ZXN0aW5nIHRoZSBleGlzdGVuY2Ugb2ZcbiAgICAgICAgICAgIC8vIHNlYXJjaFBhcmFtcyBzbyB3ZSBtYWtlIGFsbCBoYXMgdGVzdHMgdGhyb3cgYW4gZXJyb3IuIHRoaXMgbWVhbnMgdGhhdCBgcHJvbWlzZS50aGVuYFxuICAgICAgICAgICAgLy8gY2FuIHJlc29sdmUgdG8gdGhlIHRoZW4gZnVuY3Rpb24gb24gdGhlIFByb21pc2UgcHJvdG90eXBlIGJ1dCAndGhlbicgaW4gcHJvbWlzZSB3aWxsIGFzc3VtZVxuICAgICAgICAgICAgLy8geW91IGFyZSB0ZXN0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaFBhcmFtcyBoYXMgYSAndGhlbicgcHJvcGVydHkuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmIChwcm9wID09PSAndGhlbicgfHwgIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpKSB7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUpKHdvcmtTdG9yZSwgaGFzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5czogZnVuY3Rpb24gb3duS2V5cygpIHtcbiAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlKSh3b3JrU3RvcmUsIG93bktleXMpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGUuc2V0KHdvcmtTdG9yZSwgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRFeG90aWNTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBzZWFyY2hQYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIpKHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlcmx5aW5nU2VhcmNoUGFyYW1zW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0ICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICAvLyBXZSBoYXZlIGFuIHVuZm9ydHVuYXRlIHNlcXVlbmNlIG9mIGV2ZW50cyB0aGF0IHJlcXVpcmVzIHRoaXMgaW5pdGlhbGl6YXRpb24gbG9naWMuIFdlIHdhbnQgdG8gaW5zdHJ1bWVudCB0aGUgdW5kZXJseWluZ1xuICAgIC8vIHNlYXJjaFBhcmFtcyBvYmplY3QgdG8gZGV0ZWN0IGlmIHlvdSBhcmUgYWNjZXNzaW5nIHZhbHVlcyBpbiBkZXYuIFRoaXMgaXMgdXNlZCBmb3Igd2FybmluZ3MgYW5kIGZvciB0aGluZ3MgbGlrZSB0aGUgc3RhdGljIHByZXJlbmRlclxuICAgIC8vIGluZGljYXRvci4gSG93ZXZlciB3aGVuIHdlIHBhc3MgdGhpcyBwcm94eSB0byBvdXIgUHJvbWlzZS5yZXNvbHZlKCkgYmVsb3cgdGhlIFZNIGNoZWNrcyBpZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgYSBwcm9taXNlIGJ5IGxvb2tpbmdcbiAgICAvLyBhdCB0aGUgYC50aGVuYCBwcm9wZXJ0eS4gVG8gb3VyIGR5bmFtaWMgdHJhY2tpbmcgbG9naWMgdGhpcyBpcyBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIGEgYHRoZW5gIHNlYXJjaFBhcmFtIGFuZCBzbyB3ZSB3b3VsZCBub3JtYWxseSB0cmlnZ2VyXG4gICAgLy8gZHluYW1pYyB0cmFja2luZy4gSG93ZXZlciB3ZSBrbm93IHRoYXQgdGhpcyAudGhlbiBpcyBub3QgcmVhbCBkeW5hbWljIGFjY2VzcywgaXQncyBqdXN0IGhvdyB0aGVuYWJsZXMgcmVzb2x2ZSBpbiBzZXF1ZW5jZS4gU28gd2UgaW50cm9kdWNlXG4gICAgLy8gdGhpcyBpbml0aWFsaXphdGlvbiBjb25jZXB0IHNvIHdlIG9taXQgdGhlIGR5bmFtaWMgY2hlY2sgdW50aWwgYWZ0ZXIgd2UndmUgY29uc3RydWN0ZWQgb3VyIHJlc29sdmVkIHByb21pc2UuXG4gICAgbGV0IHByb21pc2VJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIGNvbnN0IHByb3hpZWRVbmRlcmx5aW5nID0gbmV3IFByb3h5KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmIHByb21pc2VJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgIGlmIChzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcikod29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGlmIChzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2B7Li4uc2VhcmNoUGFyYW1zfWAsIGBPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2Ugc2VhcmNoUGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9ICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBwcm9taXNlLnRoZW4oKCk9PntcbiAgICAgICAgcHJvbWlzZUluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3hpZWRVbmRlcmx5aW5nW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0IChuZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAndGhlbicgJiYgc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgc2VhcmNoUGFyYW1zLnRoZW5gJztcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKShzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApICYmIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHwgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBleGlzdCBvbiB0aGUgcHJvbWlzZSBub3JcbiAgICAgICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApICYmIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHwgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBleGlzdCBvbiB0aGUgcHJvbWlzZSBub3JcbiAgICAgICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpYCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG4vLyBTaW1pbGFyIHRvIGBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzYCwgYnV0XG4vLyBqdXN0IGxvZ2dpbmcgdGhlIHN5bmMgYWNjZXNzIHdpdGhvdXQgYWN0dWFsbHkgZGVmaW5pbmcgdGhlIHNlYXJjaCBwYXJhbXMgb25cbi8vIHRoZSBwcm9taXNlLlxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZFNlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgY29uc3QgcHJvbWlzZSA9ICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApICYmIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHwgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBleGlzdCBvbiB0aGUgcHJvbWlzZSBub3JcbiAgICAgICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSkoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yU3luY0FjY2VzcyhzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uLCB1bnByb3hpZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIHN5bmNJT0Rldihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICAvLyBJbiBhbGwgY2FzZXMgd2Ugd2FybiBub3JtYWxseVxuICAgIGlmIChtaXNzaW5nUHJvcGVydGllcyAmJiBtaXNzaW5nUHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24ocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuRm9yU3luY0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgfVxuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUucHJlcmVuZGVyUGhhc2UgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgZHluYW1pY2FsbHkgaW4gZGV2LCB3ZSBuZWVkIHRvIGFkdmFuY2Ugb3V0IG9mXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBQcmVyZW5kZXIgZW52aXJvbm1lbnQgd2hlbiB3ZSByZWFkIFJlcXVlc3QgZGF0YSBzeW5jaHJvbm91c2x5LlxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmNvbnN0IHdhcm5Gb3JTeW5jQWNjZXNzID0gKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZVNlYXJjaEFjY2Vzc0Vycm9yKTtcbmNvbnN0IHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24gPSAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlSW5jb21wbGV0ZUVudW1lcmF0aW9uRXJyb3IpO1xuZnVuY3Rpb24gY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3Iocm91dGUsIGV4cHJlc3Npb24pIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBzZWFyY2hQYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMjQ5XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlID8gYFJvdXRlIFwiJHtyb3V0ZX1cIiBgIDogJ1RoaXMgcm91dGUgJztcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHNlYXJjaFBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdlcmUgbm90IGF2YWlsYWJsZSB0aHJvdWdoIGVudW1lcmF0aW9uIGAgKyBgYmVjYXVzZSB0aGV5IGNvbmZsaWN0IHdpdGggYnVpbHRpbiBvciB3ZWxsLWtub3duIHByb3BlcnR5IG5hbWVzOiBgICsgYCR7ZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKG1pc3NpbmdQcm9wZXJ0aWVzKX0uIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUyXCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyhwcm9wZXJ0aWVzKSB7XG4gICAgc3dpdGNoKHByb3BlcnRpZXMubGVuZ3RoKXtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ0V4cGVjdGVkIGRlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyB0byBiZSBjYWxsZWQgd2l0aCBhIG5vbi1lbXB0eSBsaXN0IG9mIHN0cmluZ3MuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU1MzFcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gYFxcYCR7cHJvcGVydGllc1swXX1cXGBgO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gYFxcYCR7cHJvcGVydGllc1swXX1cXGAgYW5kIFxcYCR7cHJvcGVydGllc1sxXX1cXGBgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxldCBkZXNjcmlwdGlvbiA9ICcnO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9IGBcXGAke3Byb3BlcnRpZXNbaV19XFxgLCBgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgLCBhbmQgXFxgJHtwcm9wZXJ0aWVzW3Byb3BlcnRpZXMubGVuZ3RoIC0gMV19XFxgYDtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247XG4gICAgICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZWFyY2gtcGFyYW1zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/search-params.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/request/utils.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/request/utils.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isRequestAPICallableInsideAfter: function() {\n return isRequestAPICallableInsideAfter;\n },\n throwForSearchParamsAccessInUseCache: function() {\n return throwForSearchParamsAccessInUseCache;\n },\n throwWithStaticGenerationBailoutError: function() {\n return throwWithStaticGenerationBailoutError;\n },\n throwWithStaticGenerationBailoutErrorWithDynamicError: function() {\n return throwWithStaticGenerationBailoutErrorWithDynamicError;\n }\n});\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _aftertaskasyncstorageexternal = __webpack_require__(/*! ../app-render/after-task-async-storage.external */ \"../app-render/after-task-async-storage.external\");\nfunction throwWithStaticGenerationBailoutError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E576\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E543\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {\n const error = Object.defineProperty(new Error(`Route ${workStore.route} used \"searchParams\" inside \"use cache\". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \"searchParams\" outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E779\",\n enumerable: false,\n configurable: true\n });\n Error.captureStackTrace(error, constructorOpt);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n}\nfunction isRequestAPICallableInsideAfter() {\n const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();\n return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9DZ0JBLCtCQUErQjtlQUEvQkE7O0lBZEFDLG9DQUFvQztlQUFwQ0E7O0lBbEJBQyxxQ0FBcUM7ZUFBckNBOztJQVNBQyxxREFBcUQ7ZUFBckRBOzs7cURBYnNCOzJEQUNBO0FBRy9CLFNBQVNELHNDQUNkRSxLQUFhLEVBQ2JDLFVBQWtCO0lBRWxCLE1BQU0scUJBRUwsQ0FGSyxJQUFJQyx5QkFBQUEscUJBQXFCLENBQzdCLENBQUMsTUFBTSxFQUFFRixNQUFNLGlEQUFpRCxFQUFFQyxXQUFXLDBIQUEwSCxDQUFDLEdBRHBNO2VBQUE7b0JBQUE7c0JBQUE7SUFFTjtBQUNGO0FBRU8sU0FBU0Ysc0RBQ2RDLEtBQWEsRUFDYkMsVUFBa0I7SUFFbEIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLHlCQUFBQSxxQkFBcUIsQ0FDN0IsQ0FBQyxNQUFNLEVBQUVGLE1BQU0sNEVBQTRFLEVBQUVDLFdBQVcsMEhBQTBILENBQUMsR0FEL047ZUFBQTtvQkFBQTtzQkFBQTtJQUVOO0FBQ0Y7QUFFTyxTQUFTSixxQ0FDZE0sU0FBb0IsRUFDcEJDLGNBQXdCO0lBRXhCLE1BQU1DLFFBQVEscUJBRWIsQ0FGYSxJQUFJQyxNQUNoQixDQUFDLE1BQU0sRUFBRUgsVUFBVUgsS0FBSyxDQUFDLHVYQUF1WCxDQUFDLEdBRHJZO2VBQUE7b0JBQUE7c0JBQUE7SUFFZDtJQUVBTSxNQUFNQyxpQkFBaUIsQ0FBQ0YsT0FBT0Q7SUFDL0JELFVBQVVLLHdCQUF3QixLQUFLSDtJQUV2QyxNQUFNQTtBQUNSO0FBRU8sU0FBU1Q7SUFDZCxNQUFNYSxpQkFBaUJDLCtCQUFBQSxxQkFBcUIsQ0FBQ0MsUUFBUTtJQUNyRCxPQUFPRixDQUFBQSxrQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsZUFBZ0JHLGtCQUFBQSxNQUF1QjtBQUNoRCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQgeyBhZnRlclRhc2tBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL2FmdGVyLXRhc2stYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHsgV29ya1N0b3JlIH0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmdcbik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICBgUm91dGUgJHtyb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcihcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiBuZXZlciB7XG4gIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gICAgYFJvdXRlICR7cm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZShcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbnN0cnVjdG9yT3B0OiBGdW5jdGlvblxuKTogbmV2ZXIge1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJzZWFyY2hQYXJhbXNcIiBpbnNpZGUgXCJ1c2UgY2FjaGVcIi4gQWNjZXNzaW5nIGR5bmFtaWMgcmVxdWVzdCBkYXRhIGluc2lkZSBhIGNhY2hlIHNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHNvbWUgc2VhcmNoIHBhcmFtcyBpbnNpZGUgYSBjYWNoZWQgZnVuY3Rpb24gYXdhaXQgXCJzZWFyY2hQYXJhbXNcIiBvdXRzaWRlIG9mIHRoZSBjYWNoZWQgZnVuY3Rpb24gYW5kIHBhc3Mgb25seSB0aGUgcmVxdWlyZWQgc2VhcmNoIHBhcmFtcyBhcyBhcmd1bWVudHMgdG8gdGhlIGNhY2hlZCBmdW5jdGlvbi4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJlcXVlc3QtaW4tdXNlLWNhY2hlYFxuICApXG5cbiAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsIGNvbnN0cnVjdG9yT3B0KVxuICB3b3JrU3RvcmUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yID8/PSBlcnJvclxuXG4gIHRocm93IGVycm9yXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyKCkge1xuICBjb25zdCBhZnRlclRhc2tTdG9yZSA9IGFmdGVyVGFza0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIHJldHVybiBhZnRlclRhc2tTdG9yZT8ucm9vdFRhc2tTcGF3blBoYXNlID09PSAnYWN0aW9uJ1xufVxuIl0sIm5hbWVzIjpbImlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIiLCJ0aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUiLCJ0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yIiwidGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IiLCJyb3V0ZSIsImV4cHJlc3Npb24iLCJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJ3b3JrU3RvcmUiLCJjb25zdHJ1Y3Rvck9wdCIsImVycm9yIiwiRXJyb3IiLCJjYXB0dXJlU3RhY2tUcmFjZSIsImludmFsaWREeW5hbWljVXNhZ2VFcnJvciIsImFmdGVyVGFza1N0b3JlIiwiYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJyb290VGFza1NwYXduUGhhc2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/utils.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/module.compiled.js ***! \*********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-page.runtime.dev.js */ \"next/dist/compiled/next-server/app-page.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcz82YTRkIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLEtBQXFDLEVBQUUsRUFjMUMsQ0FBQztBQUNOLFlBQVksSUFBc0M7QUFDbEQsZ0JBQWdCLEtBQXFCLEVBQUUsRUFFMUIsQ0FBQztBQUNkLGdCQUFnQiw0SkFBa0Y7QUFDbEc7QUFDQSxVQUFVLEtBQUssRUFNTjtBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuY29tcGlsZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuanMnKTtcbn0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtdHVyYm8tZXhwZXJpbWVudGFsLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtZXhwZXJpbWVudGFsLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtdHVyYm8ucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS10dXJiby5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/module.compiled.js ***! \*********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-page.runtime.dev.js */ \"next/dist/compiled/next-server/app-page.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcz9kM2M0IiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLEtBQXFDLEVBQUUsRUFjMUMsQ0FBQztBQUNOLFlBQVksSUFBc0M7QUFDbEQsZ0JBQWdCLEtBQXFCLEVBQUUsRUFFMUIsQ0FBQztBQUNkLGdCQUFnQiw0SkFBa0Y7QUFDbEc7QUFDQSxVQUFVLEtBQUssRUFNTjtBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuY29tcGlsZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuanMnKTtcbn0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtdHVyYm8tZXhwZXJpbWVudGFsLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtZXhwZXJpbWVudGFsLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtdHVyYm8ucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS10dXJiby5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js": /*!******************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js ***! \******************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored.contexts.AppRouterContext;\n\n//# sourceMappingURL=app-router-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2FwcC1yb3V0ZXItY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDRMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9hcHAtcm91dGVyLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkFwcFJvdXRlckNvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZXItY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js": /*!********************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js ***! \********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored.contexts.HooksClientContext;\n\n//# sourceMappingURL=hooks-client-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2hvb2tzLWNsaWVudC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2hvb2tzLWNsaWVudC1jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5Ib29rc0NsaWVudENvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhvb2tzLWNsaWVudC1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js": /*!********************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js ***! \********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored.contexts.ServerInsertedHtml;\n\n//# sourceMappingURL=server-inserted-html.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL3NlcnZlci1pbnNlcnRlZC1odG1sLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL3NlcnZlci1pbnNlcnRlZC1odG1sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5TZXJ2ZXJJbnNlcnRlZEh0bWw7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcnZlci1pbnNlcnRlZC1odG1sLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js": /*!****************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js ***! \****************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].ReactDOM;\n\n//# sourceMappingURL=react-dom.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1kb20uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix3TEFBZ0Y7O0FBRWhGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvc3NyL3JlYWN0LWRvbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXNzciddLlJlYWN0RE9NO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1kb20uanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js": /*!****************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js ***! \****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvc3NyL3JlYWN0LWpzeC1kZXYtcnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXNzciddLlJlYWN0SnN4RGV2UnVudGltZTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtanN4LWRldi1ydW50aW1lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js": /*!************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js ***! \************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].ReactJsxRuntime;\n\n//# sourceMappingURL=react-jsx-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLCtMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9zc3IvcmVhY3QtanN4LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdEpzeFJ1bnRpbWU7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWpzeC1ydW50aW1lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].ReactServerDOMWebpackClient;\n\n//# sourceMappingURL=react-server-dom-webpack-client.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3Qtc3NyJ10uUmVhY3RTZXJ2ZXJET01XZWJwYWNrQ2xpZW50O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js": /*!************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].React;\n\n//# sourceMappingURL=react.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHFMQUE2RTs7QUFFN0UiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9zc3IvcmVhY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReflectAdapter\", ({\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n}));\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlZmxlY3RBZGFwdGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlcjtcbiAgICB9XG59KTtcbmNsYXNzIFJlZmxlY3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmJpbmQodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN0YXRpYyBzZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICB9XG4gICAgc3RhdGljIGhhcyh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgfVxuICAgIHN0YXRpYyBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZmxlY3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/error-source.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/error-source.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n decorateServerError: function() {\n return decorateServerError;\n },\n getErrorSource: function() {\n return getErrorSource;\n }\n});\nconst symbolError = Symbol.for('NextjsError');\nfunction getErrorSource(error) {\n return error[symbolError] || null;\n}\nfunction decorateServerError(error, type) {\n Object.defineProperty(error, symbolError, {\n writable: false,\n enumerable: false,\n configurable: false,\n value: type\n });\n} //# sourceMappingURL=error-source.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3Itc291cmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVFnQkEsbUJBQW1CO2VBQW5CQTs7SUFOQUMsY0FBYztlQUFkQTs7O0FBRmhCLE1BQU1DLGNBQWNDLE9BQU9DLEdBQUcsQ0FBQztBQUV4QixTQUFTSCxlQUFlSSxLQUFZO0lBQ3pDLE9BQVFBLEtBQWEsQ0FBQ0gsWUFBWSxJQUFJO0FBQ3hDO0FBSU8sU0FBU0Ysb0JBQW9CSyxLQUFZLEVBQUVDLElBQXFCO0lBQ3JFQyxPQUFPQyxjQUFjLENBQUNILE9BQU9ILGFBQWE7UUFDeENPLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxjQUFjO1FBQ2RDLE9BQU9OO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvZXJyb3Itc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN5bWJvbEVycm9yID0gU3ltYm9sLmZvcignTmV4dGpzRXJyb3InKVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JTb3VyY2UoZXJyb3I6IEVycm9yKTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCB7XG4gIHJldHVybiAoZXJyb3IgYXMgYW55KVtzeW1ib2xFcnJvcl0gfHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclNvdXJjZVR5cGUgPSAnZWRnZS1zZXJ2ZXInIHwgJ3NlcnZlcidcblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRlU2VydmVyRXJyb3IoZXJyb3I6IEVycm9yLCB0eXBlOiBFcnJvclNvdXJjZVR5cGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBzeW1ib2xFcnJvciwge1xuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiB0eXBlLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImRlY29yYXRlU2VydmVyRXJyb3IiLCJnZXRFcnJvclNvdXJjZSIsInN5bWJvbEVycm9yIiwiU3ltYm9sIiwiZm9yIiwiZXJyb3IiLCJ0eXBlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ3cml0YWJsZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ2YWx1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/error-source.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/errors/constants.js ***! \***************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OzJEQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwwQkFBMEIiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SID0gJ05FWFRfTUlTU0lOR19ST09UX1RBR1MnXG4iXSwibmFtZXMiOlsiTUlTU0lOR19ST09UX1RBR1NfRVJST1IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/format-webpack-messages.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/**\nMIT License\n\nCopyright (c) 2015-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return formatWebpackMessages;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\n// This file is based on https://github.com/facebook/create-react-app/blob/7b1a32be6ec9f99a6c9a3c66813f3ac09c4736b9/packages/react-dev-utils/formatWebpackMessages.js\n// It's been edited to remove chalk and CRA-specific logic\nconst friendlySyntaxErrorLabel = 'Syntax error:';\nconst WEBPACK_BREAKING_CHANGE_POLYFILLS = '\\n\\nBREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.';\nfunction isLikelyASyntaxError(message) {\n return (0, _stripansi.default)(message).includes(friendlySyntaxErrorLabel);\n}\nlet hadMissingSassError = false;\n// Cleans up webpack error messages.\nfunction formatMessage(message, verbose, importTraceNote) {\n // TODO: Replace this once webpack 5 is stable\n if (typeof message === 'object' && message.message) {\n const filteredModuleTrace = message.moduleTrace && message.moduleTrace.filter((trace)=>!/next-(middleware|client-pages|route|edge-function)-loader\\.js/.test(trace.originName));\n let body = message.message;\n const breakingChangeIndex = body.indexOf(WEBPACK_BREAKING_CHANGE_POLYFILLS);\n if (breakingChangeIndex >= 0) {\n body = body.slice(0, breakingChangeIndex);\n }\n message = (message.moduleName ? (0, _stripansi.default)(message.moduleName) + '\\n' : '') + (message.file ? (0, _stripansi.default)(message.file) + '\\n' : '') + body + (message.details && verbose ? '\\n' + message.details : '') + (filteredModuleTrace && filteredModuleTrace.length ? (importTraceNote || '\\n\\nImport trace for requested module:') + filteredModuleTrace.map((trace)=>\"\\n\" + trace.moduleName).join('') : '') + (message.stack && verbose ? '\\n' + message.stack : '');\n }\n let lines = message.split('\\n');\n // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n lines = lines.filter((line)=>!/Module [A-z ]+\\(from/.test(line));\n // Transform parsing error into syntax error\n // TODO: move this to our ESLint formatter?\n lines = lines.map((line)=>{\n const parsingError = /Line (\\d+):(?:(\\d+):)?\\s*Parsing error: (.+)$/.exec(line);\n if (!parsingError) {\n return line;\n }\n const [, errorLine, errorColumn, errorMessage] = parsingError;\n return friendlySyntaxErrorLabel + \" \" + errorMessage + \" (\" + errorLine + \":\" + errorColumn + \")\";\n });\n message = lines.join('\\n');\n // Smoosh syntax errors (commonly found in CSS)\n message = message.replace(/SyntaxError\\s+\\((\\d+):(\\d+)\\)\\s*(.+?)\\n/g, \"\" + friendlySyntaxErrorLabel + \" $3 ($1:$2)\\n\");\n // Clean up export errors\n message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$2'.\");\n message = message.replace(/^.*export 'default' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$2' does not contain a default export (imported as '$1').\");\n message = message.replace(/^.*export '(.+?)' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$3' (imported as '$2').\");\n lines = message.split('\\n');\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n }\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].startsWith('Module not found: ')) {\n lines = [\n lines[0],\n lines[1].replace('Error: ', '').replace('Module not found: Cannot find file:', 'Cannot find file:'),\n ...lines.slice(2)\n ];\n }\n // Add helpful message for users trying to use Sass for the first time\n if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {\n // ./file.module.scss (<<loader info>>) => ./file.module.scss\n const firstLine = lines[0].split('!');\n lines[0] = firstLine[firstLine.length - 1];\n lines[1] = \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\";\n lines[1] += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n';\n lines[1] += '\\nLearn more: https://nextjs.org/docs/messages/install-sass';\n // dispose of unhelpful stack trace\n lines = lines.slice(0, 2);\n hadMissingSassError = true;\n } else if (hadMissingSassError && message.match(/(sass-loader|resolve-url-loader: CSS error)/)) {\n // dispose of unhelpful stack trace following missing sass module\n lines = [];\n }\n if (!verbose) {\n message = lines.join('\\n');\n // Internal stacks are generally useless so we strip them... with the\n // exception of stacks containing `webpack:` because they're normally\n // from user code generated by Webpack. For more information see\n // https://github.com/facebook/create-react-app/pull/1050\n message = message.replace(/^\\s*at\\s((?!webpack:).)*:\\d+:\\d+[\\s)]*(\\n|$)/gm, '') // at ... ...:x:y\n ;\n message = message.replace(/^\\s*at\\s<anonymous>(\\n|$)/gm, '') // at <anonymous>\n ;\n message = message.replace(/File was processed with these loaders:\\n(.+[\\\\/](next[\\\\/]dist[\\\\/].+|@next[\\\\/]react-refresh-utils[\\\\/]loader)\\.js\\n)*You may need an additional loader to handle the result of these loaders.\\n/g, '');\n lines = message.split('\\n');\n }\n // Remove duplicated newlines\n lines = lines.filter((line, index, arr)=>index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim());\n // Reassemble the message\n message = lines.join('\\n');\n return message.trim();\n}\nfunction formatWebpackMessages(json, verbose) {\n const formattedErrors = json.errors.map((message)=>{\n const isUnknownNextFontError = message.message.includes('An error occurred in `next/font`.');\n return formatMessage(message, isUnknownNextFontError || verbose);\n });\n const formattedWarnings = json.warnings.map((message)=>{\n return formatMessage(message, verbose);\n });\n // Reorder errors to put the most relevant ones first.\n let reactServerComponentsError = -1;\n for(let i = 0; i < formattedErrors.length; i++){\n const error = formattedErrors[i];\n if (error.includes('ReactServerComponentsError')) {\n reactServerComponentsError = i;\n break;\n }\n }\n // Move the reactServerComponentsError to the top if it exists\n if (reactServerComponentsError !== -1) {\n const error = formattedErrors.splice(reactServerComponentsError, 1);\n formattedErrors.unshift(error[0]);\n }\n const result = {\n ...json,\n errors: formattedErrors,\n warnings: formattedWarnings\n };\n if (!verbose && result.errors.some(isLikelyASyntaxError)) {\n // If there are any syntax errors, show just them.\n result.errors = result.errors.filter(isLikelyASyntaxError);\n result.warnings = [];\n }\n return result;\n} //# sourceMappingURL=format-webpack-messages.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkE7Ozs7MkNBaUtBOzs7ZUFBd0JBOzs7O2dGQWhLRjtBQUN0QixxS0FBcUs7QUFDckssMERBQTBEO0FBRTFELE1BQU1DLDJCQUEyQjtBQUVqQyxNQUFNQyxvQ0FDSjtBQUVGLFNBQVNDLHFCQUFxQkMsT0FBZTtJQUMzQyxPQUFPQyxDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxTQUFTRSxRQUFRLENBQUNMO0FBQ3JDO0FBRUEsSUFBSU0sc0JBQXNCO0FBRTFCLG9DQUFvQztBQUNwQyxTQUFTQyxjQUNQSixPQUFZLEVBQ1pLLE9BQWlCLEVBQ2pCQyxlQUF5QjtJQUV6Qiw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPTixZQUFZLFlBQVlBLFFBQVFBLE9BQU8sRUFBRTtRQUNsRCxNQUFNTyxzQkFDSlAsUUFBUVEsV0FBVyxJQUNuQlIsUUFBUVEsV0FBVyxDQUFDQyxNQUFNLENBQ3hCLENBQUNDLFFBQ0MsQ0FBQyxnRUFBZ0VDLElBQUksQ0FDbkVELE1BQU1FLFVBQVU7UUFJeEIsSUFBSUMsT0FBT2IsUUFBUUEsT0FBTztRQUMxQixNQUFNYyxzQkFBc0JELEtBQUtFLE9BQU8sQ0FBQ2pCO1FBQ3pDLElBQUlnQix1QkFBdUIsR0FBRztZQUM1QkQsT0FBT0EsS0FBS0csS0FBSyxDQUFDLEdBQUdGO1FBQ3ZCO1FBRUFkLFVBQ0dBLENBQUFBLFFBQVFpQixVQUFVLEdBQUdoQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRaUIsVUFBVSxJQUFJLE9BQU8sR0FBQyxHQUM3RGpCLENBQUFBLFFBQVFrQixJQUFJLEdBQUdqQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRa0IsSUFBSSxJQUFJLE9BQU8sR0FBQyxHQUNsREwsT0FDQ2IsQ0FBQUEs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QUNELEtBQUssQ0FBQyxFQUFFO0lBQ2xDO0lBRUEsTUFBTUUsU0FBUztRQUNiLEdBQUdWLElBQUk7UUFDUEUsUUFBUUQ7UUFDUkksVUFBVUQ7SUFDWjtJQUNBLElBQUksQ0FBQ3ZDLFdBQVc2QyxPQUFPUixNQUFNLENBQUNTLElBQUksQ0FBQ3BELHVCQUF1QjtRQUN4RCxrREFBa0Q7UUFDbERtRCxPQUFPUixNQUFNLEdBQUdRLE9BQU9SLE1BQU0sQ0FBQ2pDLE1BQU0sQ0FBQ1Y7UUFDckNtRCxPQUFPTCxRQUFRLEdBQUcsRUFBRTtJQUN0QjtJQUNBLE9BQU9LO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2Zvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuTUlUIExpY2Vuc2VcblxuQ29weXJpZ2h0IChjKSAyMDE1LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5jb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG5JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG5TT0ZUV0FSRS5cbiovXG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpJ1xuLy8gVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL2Jsb2IvN2IxYTMyYmU2ZWM5Zjk5YTZjOWEzYzY2ODEzZjNhYzA5YzQ3MzZiOS9wYWNrYWdlcy9yZWFjdC1kZXYtdXRpbHMvZm9ybWF0V2VicGFja01lc3NhZ2VzLmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIHRvIHJlbW92ZSBjaGFsayBhbmQgQ1JBLXNwZWNpZmljIGxvZ2ljXG5cbmNvbnN0IGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCA9ICdTeW50YXggZXJyb3I6J1xuXG5jb25zdCBXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMgPVxuICAnXFxuXFxuQlJFQUtJTkcgQ0hBTkdFOiB3ZWJwYWNrIDwgNSB1c2VkIHRvIGluY2x1ZGUgcG9seWZpbGxzIGZvciBub2RlLmpzIGNvcmUgbW9kdWxlcyBieSBkZWZhdWx0LidcblxuZnVuY3Rpb24gaXNMaWtlbHlBU3ludGF4RXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpcEFuc2kobWVzc2FnZSkuaW5jbHVkZXMoZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsKVxufVxuXG5sZXQgaGFkTWlzc2luZ1Nhc3NFcnJvciA9IGZhbHNlXG5cbi8vIENsZWFucyB1cCB3ZWJwYWNrIGVycm9yIG1lc3NhZ2VzLlxuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShcbiAgbWVzc2FnZTogYW55LFxuICB2ZXJib3NlPzogYm9vbGVhbixcbiAgaW1wb3J0VHJhY2VOb3RlPzogYm9vbGVhblxuKSB7XG4gIC8vIFRPRE86IFJlcGxhY2UgdGhpcyBvbmNlIHdlYnBhY2sgNSBpcyBzdGFibGVcbiAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JyAmJiBtZXNzYWdlLm1lc3NhZ2UpIHtcbiAgICBjb25zdCBmaWx0ZXJlZE1vZHVsZVRyYWNlID1cbiAgICAgIG1lc3NhZ2UubW9kdWxlVHJhY2UgJiZcbiAgICAgIG1lc3NhZ2UubW9kdWxlVHJhY2UuZmlsdGVyKFxuICAgICAgICAodHJhY2U6IGFueSkgPT5cbiAgICAgICAgICAhL25leHQtKG1pZGRsZXdhcmV8Y2xpZW50LXBhZ2VzfHJvdXRlfGVkZ2UtZnVuY3Rpb24pLWxvYWRlclxcLmpzLy50ZXN0KFxuICAgICAgICAgICAgdHJhY2Uub3JpZ2luTmFtZVxuICAgICAgICAgIClcbiAgICAgIClcblxuICAgIGxldCBib2R5ID0gbWVzc2FnZS5tZXNzYWdlXG4gICAgY29uc3QgYnJlYWtpbmdDaGFuZ2VJbmRleCA9IGJvZHkuaW5kZXhPZihXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMpXG4gICAgaWYgKGJyZWFraW5nQ2hhbmdlSW5kZXggPj0gMCkge1xuICAgICAgYm9keSA9IGJvZHkuc2xpY2UoMCwgYnJlYWtpbmdDaGFuZ2VJbmRleClcbiAgICB9XG5cbiAgICBtZXNzYWdlID1cbiAgICAgIChtZXNzYWdlLm1vZHVsZU5hbWUgPyBzdHJpcEFuc2kobWVzc2FnZS5tb2R1bGVOYW1lKSArICdcXG4nIDogJycpICtcbiAgICAgIChtZXNzYWdlLmZpbGUgPyBzdHJpcEFuc2kobWVzc2FnZS5maWxlKSArICdcXG4nIDogJycpICtcbiAgICAgIGJvZHkgK1xuICAgICAgKG1lc3NhZ2UuZGV0YWlscyAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLmRldGFpbHMgOiAnJykgK1xuICAgICAgKGZpbHRlcmVkTW9kdWxlVHJhY2UgJiYgZmlsdGVyZWRNb2R1bGVUcmFjZS5sZW5ndGhcbiAgICAgICAgPyAoaW1wb3J0VHJhY2VOb3RlIHx8ICdcXG5cXG5JbXBvcnQgdHJhY2UgZm9yIHJlcXVlc3RlZCBtb2R1bGU6JykgK1xuICAgICAgICAgIGZpbHRlcmVkTW9kdWxlVHJhY2VcbiAgICAgICAgICAgIC5tYXAoKHRyYWNlOiBhbnkpID0+IGBcXG4ke3RyYWNlLm1vZHVsZU5hbWV9YClcbiAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICA6ICcnKSArXG4gICAgICAobWVzc2FnZS5zdGFjayAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLnN0YWNrIDogJycpXG4gIH1cbiAgbGV0IGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJylcblxuICAvLyBTdHJpcCBXZWJwYWNrLWFkZGVkIGhlYWRlcnMgb2ZmIGVycm9ycy93YXJuaW5nc1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvbWFzdGVyL2xpYi9Nb2R1bGVFcnJvci5qc1xuICBsaW5lcyA9IGxpbmVzLmZpbHRlcigobGluZTogc3RyaW5nKSA9PiAhL01vZHVsZSBbQS16IF0rXFwoZnJvbS8udGVzdChsaW5lKSlcblxuICAvLyBUcmFuc2Zvcm0gcGFyc2luZyBlcnJvciBpbnRvIHN5bnRheCBlcnJvclxuICAvLyBUT0RPOiBtb3ZlIHRoaXMgdG8gb3VyIEVTTGludCBmb3JtYXR0ZXI/XG4gIGxpbmVzID0gbGluZXMubWFwKChsaW5lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwYXJzaW5nRXJyb3IgPSAvTGluZSAoXFxkKyk6KD86KFxcZCspOik/XFxzKlBhcnNpbmcgZXJyb3I6ICguKykkLy5leGVjKFxuICAgICAgbGluZVxuICAgIClcbiAgICBpZiAoIXBhcnNpbmdFcnJvcikge1xuICAgICAgcmV0dXJuIGxpbmVcbiAgICB9XG4gICAgY29uc3QgWywgZXJyb3JMaW5lLCBlcnJvckNvbHVtbiwgZXJyb3JNZXNzYWdlXSA9IHBhcnNpbmdFcnJvclxuICAgIHJldHVybiBgJHtmcmllbmRseVN5bnRheEVycm9yTGFiZWx9ICR7ZXJyb3JNZXNzYWdlfSAoJHtlcnJvckxpbmV9OiR7ZXJyb3JDb2x1bW59KWBcbiAgfSlcblxuICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgLy8gU21vb3NoIHN5bnRheCBlcnJvcnMgKGNvbW1vbmx5IGZvdW5kIGluIENTUylcbiAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAvU3ludGF4RXJyb3JcXHMrXFwoKFxcZCspOihcXGQrKVxcKVxccyooLis/KVxcbi9nLFxuICAgIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJDMgKCQxOiQyKVxcbmBcbiAgKVxuICAvLyBDbGVhbiB1cCBleHBvcnQgZXJyb3JzXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL14uKmV4cG9ydCAnKC4rPyknIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSxcbiAgICBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQxJyBpcyBub3QgZXhwb3J0ZWQgZnJvbSAnJDInLmBcbiAgKVxuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgIC9eLipleHBvcnQgJ2RlZmF1bHQnIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLFxuICAgIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDInIGRvZXMgbm90IGNvbnRhaW4gYSBkZWZhdWx0IGV4cG9ydCAoaW1wb3J0ZWQgYXMgJyQxJykuYFxuICApXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL14uKmV4cG9ydCAnKC4rPyknIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLFxuICAgIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDEnIGlzIG5vdCBleHBvcnRlZCBmcm9tICckMycgKGltcG9ydGVkIGFzICckMicpLmBcbiAgKVxuICBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoJ1xcbicpXG5cbiAgLy8gUmVtb3ZlIGxlYWRpbmcgbmV3bGluZVxuICBpZiAobGluZXMubGVuZ3RoID4gMiAmJiBsaW5lc1sxXS50cmltKCkgPT09ICcnKSB7XG4gICAgbGluZXMuc3BsaWNlKDEsIDEpXG4gIH1cblxuICAvLyBDbGVhbnMgdXAgdmVyYm9zZSBcIm1vZHVsZSBub3QgZm91bmRcIiBtZXNzYWdlcyBmb3IgZmlsZXMgYW5kIHBhY2thZ2VzLlxuICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0uc3RhcnRzV2l0aCgnTW9kdWxlIG5vdCBmb3VuZDogJykpIHtcbiAgICBsaW5lcyA9IFtcbiAgICAgIGxpbmVzWzBdLFxuICAgICAgbGluZXNbMV1cbiAgICAgICAgLnJlcGxhY2UoJ0Vycm9yOiAnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJ01vZHVsZSBub3QgZm91bmQ6IENhbm5vdCBmaW5kIGZpbGU6JywgJ0Nhbm5vdCBmaW5kIGZpbGU6JyksXG4gICAgICAuLi5saW5lcy5zbGljZSgyKSxcbiAgICBdXG4gIH1cblxuICAvLyBBZGQgaGVscGZ1bCBtZXNzYWdlIGZvciB1c2VycyB0cnlpbmcgdG8gdXNlIFNhc3MgZm9yIHRoZSBmaXJzdCB0aW1lXG4gIGlmIChsaW5lc1sxXSAmJiBsaW5lc1sxXS5tYXRjaCgvQ2Fubm90IGZpbmQgbW9kdWxlLitzYXNzLykpIHtcbiAgICAvLyAuL2ZpbGUubW9kdWxlLnNjc3MgKDw8bG9hZGVyIGluZm8+PikgPT4gLi9maWxlLm1vZHVsZS5zY3NzXG4gICAgY29uc3QgZmlyc3RMaW5lID0gbGluZXNbMF0uc3BsaXQoJyEnKVxuICAgIGxpbmVzWzBdID0gZmlyc3RMaW5lW2ZpcnN0TGluZS5sZW5ndGggLSAxXVxuXG4gICAgbGluZXNbMV0gPVxuICAgICAgXCJUbyB1c2UgTmV4dC5qcycgYnVpbHQtaW4gU2FzcyBzdXBwb3J0LCB5b3UgZmlyc3QgbmVlZCB0byBpbnN0YWxsIGBzYXNzYC5cXG5cIlxuICAgIGxpbmVzWzFdICs9ICdSdW4gYG5wbSBpIHNhc3NgIG9yIGB5YXJuIGFkZCBzYXNzYCBpbnNpZGUgeW91ciB3b3Jrc3BhY2UuXFxuJ1xuICAgIGxpbmVzWzFdICs9ICdcXG5MZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnN0YWxsLXNhc3MnXG5cbiAgICAvLyBkaXNwb3NlIG9mIHVuaGVscGZ1bCBzdGFjayB0cmFjZVxuICAgIGxpbmVzID0gbGluZXMuc2xpY2UoMCwgMilcbiAgICBoYWRNaXNzaW5nU2Fzc0Vycm9yID0gdHJ1ZVxuICB9IGVsc2UgaWYgKFxuICAgIGhhZE1pc3NpbmdTYXNzRXJyb3IgJiZcbiAgICBtZXNzYWdlLm1hdGNoKC8oc2Fzcy1sb2FkZXJ8cmVzb2x2ZS11cmwtbG9hZGVyOiBDU1MgZXJyb3IpLylcbiAgKSB7XG4gICAgLy8gZGlzcG9zZSBvZiB1bmhlbHBmdWwgc3RhY2sgdHJhY2UgZm9sbG93aW5nIG1pc3Npbmcgc2FzcyBtb2R1bGVcbiAgICBsaW5lcyA9IFtdXG4gIH1cblxuICBpZiAoIXZlcmJvc2UpIHtcbiAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgICAvLyBJbnRlcm5hbCBzdGFja3MgYXJlIGdlbmVyYWxseSB1c2VsZXNzIHNvIHdlIHN0cmlwIHRoZW0uLi4gd2l0aCB0aGVcbiAgICAvLyBleGNlcHRpb24gb2Ygc3RhY2tzIGNvbnRhaW5pbmcgYHdlYnBhY2s6YCBiZWNhdXNlIHRoZXkncmUgbm9ybWFsbHlcbiAgICAvLyBmcm9tIHVzZXIgY29kZSBnZW5lcmF0ZWQgYnkgV2VicGFjay4gRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvcHVsbC8xMDUwXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgIC9eXFxzKmF0XFxzKCg/IXdlYnBhY2s6KS4pKjpcXGQrOlxcZCtbXFxzKV0qKFxcbnwkKS9nbSxcbiAgICAgICcnXG4gICAgKSAvLyBhdCAuLi4gLi4uOng6eVxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL15cXHMqYXRcXHM8YW5vbnltb3VzPihcXG58JCkvZ20sICcnKSAvLyBhdCA8YW5vbnltb3VzPlxuXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgIC9GaWxlIHdhcyBwcm9jZXNzZWQgd2l0aCB0aGVzZSBsb2FkZXJzOlxcbiguK1tcXFxcL10obmV4dFtcXFxcL11kaXN0W1xcXFwvXS4rfEBuZXh0W1xcXFwvXXJlYWN0LXJlZnJlc2gtdXRpbHNbXFxcXC9dbG9hZGVyKVxcLmpzXFxuKSpZb3UgbWF5IG5lZWQgYW4gYWRkaXRpb25hbCBsb2FkZXIgdG8gaGFuZGxlIHRoZSByZXN1bHQgb2YgdGhlc2UgbG9hZGVycy5cXG4vZyxcbiAgICAgICcnXG4gICAgKVxuXG4gICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKVxuICB9XG5cbiAgLy8gUmVtb3ZlIGR1cGxpY2F0ZWQgbmV3bGluZXNcbiAgbGluZXMgPSAobGluZXMgYXMgc3RyaW5nW10pLmZpbHRlcihcbiAgICAobGluZSwgaW5kZXgsIGFycikgPT5cbiAgICAgIGluZGV4ID09PSAwIHx8IGxpbmUudHJpbSgpICE9PSAnJyB8fCBsaW5lLnRyaW0oKSAhPT0gYXJyW2luZGV4IC0gMV0udHJpbSgpXG4gIClcblxuICAvLyBSZWFzc2VtYmxlIHRoZSBtZXNzYWdlXG4gIG1lc3NhZ2UgPSBsaW5lcy5qb2luKCdcXG4nKVxuICByZXR1cm4gbWVzc2FnZS50cmltKClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0V2VicGFja01lc3NhZ2VzKGpzb246IGFueSwgdmVyYm9zZT86IGJvb2xlYW4pIHtcbiAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0ganNvbi5lcnJvcnMubWFwKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICBjb25zdCBpc1Vua25vd25OZXh0Rm9udEVycm9yID0gbWVzc2FnZS5tZXNzYWdlLmluY2x1ZGVzKFxuICAgICAgJ0FuIGVycm9yIG9jY3VycmVkIGluIGBuZXh0L2ZvbnRgLidcbiAgICApXG4gICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgaXNVbmtub3duTmV4dEZvbnRFcnJvciB8fCB2ZXJib3NlKVxuICB9KVxuICBjb25zdCBmb3JtYXR0ZWRXYXJuaW5ncyA9IGpzb24ud2FybmluZ3MubWFwKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICByZXR1cm4gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCB2ZXJib3NlKVxuICB9KVxuXG4gIC8vIFJlb3JkZXIgZXJyb3JzIHRvIHB1dCB0aGUgbW9zdCByZWxldmFudCBvbmVzIGZpcnN0LlxuICBsZXQgcmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgPSAtMVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmb3JtYXR0ZWRFcnJvcnNbaV1cbiAgICBpZiAoZXJyb3IuaW5jbHVkZXMoJ1JlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yJykpIHtcbiAgICAgIHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yID0gaVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIHRoZSByZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciB0byB0aGUgdG9wIGlmIGl0IGV4aXN0c1xuICBpZiAocmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgIT09IC0xKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmb3JtYXR0ZWRFcnJvcnMuc3BsaWNlKHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yLCAxKVxuICAgIGZvcm1hdHRlZEVycm9ycy51bnNoaWZ0KGVycm9yWzBdKVxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLmpzb24sXG4gICAgZXJyb3JzOiBmb3JtYXR0ZWRFcnJvcnMsXG4gICAgd2FybmluZ3M6IGZvcm1hdHRlZFdhcm5pbmdzLFxuICB9XG4gIGlmICghdmVyYm9zZSAmJiByZXN1bHQuZXJyb3JzLnNvbWUoaXNMaWtlbHlBU3ludGF4RXJyb3IpKSB7XG4gICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzeW50YXggZXJyb3JzLCBzaG93IGp1c3QgdGhlbS5cbiAgICByZXN1bHQuZXJyb3JzID0gcmVzdWx0LmVycm9ycy5maWx0ZXIoaXNMaWtlbHlBU3ludGF4RXJyb3IpXG4gICAgcmVzdWx0Lndhcm5pbmdzID0gW11cbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwiZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsIiwiV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTIiwiaXNMaWtlbHlBU3ludGF4RXJyb3IiLCJtZXNzYWdlIiwic3RyaXBBbnNpIiwiaW5jbHVkZXMiLCJoYWRNaXNzaW5nU2Fzc0Vycm9yIiwiZm9ybWF0TWVzc2FnZSIsInZlcmJvc2UiLCJpbXBvcnRUcmFjZU5vdGUiLCJmaWx0ZXJlZE1vZHVsZVRyYWNlIiwibW9kdWxlVHJhY2UiLCJmaWx0ZXIiLCJ0cmFjZSIsInRlc3QiLCJvcmlnaW5OYW1lIiwiYm9keSIsImJyZWFraW5nQ2hhbmdlSW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJtb2R1bGVOYW1lIiwiZmlsZSIsImRldGFpbHMiLCJsZW5ndGgiLCJtYXAiLCJqb2luIiwic3RhY2siLCJsaW5lcyIsInNwbGl0IiwibGluZSIsInBhcnNpbmdFcnJvciIsImV4ZWMiLCJlcnJvckxpbmUiLCJlcnJvckNvbHVtbiIsImVycm9yTWVzc2FnZSIsInJlcGxhY2UiLCJ0cmltIiwic3BsaWNlIiwic3RhcnRzV2l0aCIsIm1hdGNoIiwiZmlyc3RMaW5lIiwiaW5kZXgiLCJhcnIiLCJqc29uIiwiZm9ybWF0dGVkRXJyb3JzIiwiZXJyb3JzIiwiaXNVbmtub3duTmV4dEZvbnRFcnJvciIsImZvcm1hdHRlZFdhcm5pbmdzIiwid2FybmluZ3MiLCJyZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciIsImkiLCJlcnJvciIsInVuc2hpZnQiLCJyZXN1bHQiLCJzb21lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/hash.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/shared/lib/hash.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n djb2Hash: function() {\n return djb2Hash;\n },\n hexHash: function() {\n return hexHash;\n }\n});\nfunction djb2Hash(str) {\n let hash = 5381;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) + hash + char & 0xffffffff;\n }\n return hash >>> 0;\n}\nfunction hexHash(str) {\n return djb2Hash(str).toString(36).slice(0, 5);\n} //# sourceMappingURL=hash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsNENBQTRDO0FBQzVDLGlIQUFpSDtBQUNqSCx3RkFBd0Y7QUFDeEYsZ0dBQWdHO0FBQ2hHLHdIQUF3SDtBQUN4SCx3REFBd0Q7Ozs7Ozs7Ozs7Ozs7SUFDeENBLFFBQVE7ZUFBUkE7O0lBU0FDLE9BQU87ZUFBUEE7OztBQVRULFNBQVNELFNBQVNFLEdBQVc7SUFDbEMsSUFBSUMsT0FBTztJQUNYLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUs7UUFDbkMsTUFBTUUsT0FBT0osSUFBSUssVUFBVSxDQUFDSDtRQUM1QkQsT0FBU0EsQ0FBQUEsU0FBUSxJQUFLQSxPQUFPRyxPQUFRO0lBQ3ZDO0lBQ0EsT0FBT0gsU0FBUztBQUNsQjtBQUVPLFNBQVNGLFFBQVFDLEdBQVc7SUFDakMsT0FBT0YsU0FBU0UsS0FBS00sUUFBUSxDQUFDLElBQUlDLEtBQUssQ0FBQyxHQUFHO0FBQzdDIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9oYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuY3NlLnlvcmt1LmNhL35vei9oYXNoLmh0bWxcbi8vIE1vcmUgc3BlY2lmaWNhbGx5LCAzMi1iaXQgaGFzaCB2aWEgZGpieG9yXG4vLyAocmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9lcGxhd2xlc3MvNTI4MTNiMWQ4YWQ5YWY1MTBkODU/cGVybWFsaW5rX2NvbW1lbnRfaWQ9MzM2Nzc2NSNnaXN0Y29tbWVudC0zMzY3NzY1KVxuLy8gVGhpcyBpcyBkdWUgdG8gbnVtYmVyIHR5cGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBydXN0IGZvciB0dXJib3BhY2sgdG8ganMgbnVtYmVyIHR5cGVzLFxuLy8gd2hlcmUgcnVzdCBkb2VzIG5vdCBoYXZlIGVhc3kgd2F5IHRvIHJlcHJlZXNudCBqcydzIDUzLWJpdCBmbG9hdCBudW1iZXIgdHlwZSBmb3IgdGhlIG1hdGNoaW5nXG4vLyBvdmVyZmxvdyBiZWhhdmlvci4gVGhpcyBpcyBtb3JlIGBjb3JyZWN0YCBpbiB0ZXJtcyBvZiBoYXZpbmcgY2Fub25pY2FsIGhhc2ggYWNyb3NzIGRpZmZlcmVudCBydW50aW1lIC8gaW1wbGVtZW50YXRpb25cbi8vIGFzIGNhbiBnYXVyYW50ZWUgZGV0ZXJtaW5zdGljIG91dHB1dCBmcm9tIDMyYml0IGhhc2guXG5leHBvcnQgZnVuY3Rpb24gZGpiMkhhc2goc3RyOiBzdHJpbmcpIHtcbiAgbGV0IGhhc2ggPSA1MzgxXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGFzaCA9ICgoaGFzaCA8PCA1KSArIGhhc2ggKyBjaGFyKSAmIDB4ZmZmZmZmZmZcbiAgfVxuICByZXR1cm4gaGFzaCA+Pj4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGV4SGFzaChzdHI6IHN0cmluZykge1xuICByZXR1cm4gZGpiMkhhc2goc3RyKS50b1N0cmluZygzNikuc2xpY2UoMCwgNSlcbn1cbiJdLCJuYW1lcyI6WyJkamIySGFzaCIsImhleEhhc2giLCJzdHIiLCJoYXNoIiwiaSIsImxlbmd0aCIsImNoYXIiLCJjaGFyQ29kZUF0IiwidG9TdHJpbmciLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/hash.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/invariant-error.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFyaWFudEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBFcnJvck9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIGBJbnZhcmlhbnQ6ICR7bWVzc2FnZS5lbmRzV2l0aCgnLicpID8gbWVzc2FnZSA6IG1lc3NhZ2UgKyAnLid9IFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgICB0aGlzLm5hbWUgPSAnSW52YXJpYW50RXJyb3InXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbnZhcmlhbnRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwib3B0aW9ucyIsImVuZHNXaXRoIiwibmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/is-thenable.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This has to be a shared module which is shared between client component error boundary and dynamic component\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BailoutToCSRError: function() {\n return BailoutToCSRError;\n },\n isBailoutToCSRError: function() {\n return isBailoutToCSRError;\n }\n});\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\nclass BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\nfunction isBailoutToCSRError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n} //# sourceMappingURL=bailout-to-csr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtHQUErRzs7Ozs7Ozs7Ozs7OztJQUlsR0EsaUJBQWlCO2VBQWpCQTs7SUFTR0MsbUJBQW1CO2VBQW5CQTs7O0FBWmhCLE1BQU1DLGlCQUFpQjtBQUdoQixNQUFNRiwwQkFBMEJHO0lBR3JDQyxZQUE0QkMsTUFBYyxDQUFFO1FBQzFDLEtBQUssQ0FBRSx3Q0FBcUNBLFNBQUFBLElBQUFBLENBRGxCQSxNQUFBQSxHQUFBQSxRQUFBQSxJQUFBQSxDQUZaQyxNQUFBQSxHQUFTSjtJQUl6QjtBQUNGO0FBR08sU0FBU0Qsb0JBQW9CTSxHQUFZO0lBQzlDLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDakUsT0FBTztJQUNUO0lBRUEsT0FBT0EsSUFBSUQsTUFBTSxLQUFLSjtBQUN4QiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgaGFzIHRvIGJlIGEgc2hhcmVkIG1vZHVsZSB3aGljaCBpcyBzaGFyZWQgYmV0d2VlbiBjbGllbnQgY29tcG9uZW50IGVycm9yIGJvdW5kYXJ5IGFuZCBkeW5hbWljIGNvbXBvbmVudFxuY29uc3QgQkFJTE9VVF9UT19DU1IgPSAnQkFJTE9VVF9UT19DTElFTlRfU0lERV9SRU5ERVJJTkcnXG5cbi8qKiBBbiBlcnJvciB0aGF0IHNob3VsZCBiZSB0aHJvd24gd2hlbiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi9cbmV4cG9ydCBjbGFzcyBCYWlsb3V0VG9DU1JFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGRpZ2VzdCA9IEJBSUxPVVRfVE9fQ1NSXG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlYXNvbjogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZzogJHtyZWFzb259YClcbiAgfVxufVxuXG4vKiogQ2hlY2tzIGlmIGEgcGFzc2VkIGFyZ3VtZW50IGlzIGFuIGVycm9yIHRoYXQgaXMgdGhyb3duIGlmIHdlIHdhbnQgdG8gYmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyOiB1bmtub3duKTogZXJyIGlzIEJhaWxvdXRUb0NTUkVycm9yIHtcbiAgaWYgKHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8IGVyciA9PT0gbnVsbCB8fCAhKCdkaWdlc3QnIGluIGVycikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnIuZGlnZXN0ID09PSBCQUlMT1VUX1RPX0NTUlxufVxuIl0sIm5hbWVzIjpbIkJhaWxvdXRUb0NTUkVycm9yIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsIkJBSUxPVVRfVE9fQ1NSIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsInJlYXNvbiIsImRpZ2VzdCIsImVyciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/normalized-asset-prefix.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizedAssetPrefix\", ({\n enumerable: true,\n get: function() {\n return normalizedAssetPrefix;\n }\n}));\nfunction normalizedAssetPrefix(assetPrefix) {\n // remove all leading slashes and trailing slashes\n const escapedAssetPrefix = (assetPrefix == null ? void 0 : assetPrefix.replace(/^\\/+|\\/+$/g, '')) || false;\n // if an assetPrefix was '/', we return empty string\n // because it could be an unnecessary trailing slash\n if (!escapedAssetPrefix) {\n return '';\n }\n if (URL.canParse(escapedAssetPrefix)) {\n const url = new URL(escapedAssetPrefix).toString();\n return url.endsWith('/') ? url.slice(0, -1) : url;\n }\n // assuming assetPrefix here is a pathname-style,\n // restore the leading slash\n return \"/\" + escapedAssetPrefix;\n} //# sourceMappingURL=normalized-asset-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbm9ybWFsaXplZC1hc3NldC1wcmVmaXguanMiLCJtYXBwaW5ncyI6Ijs7Ozt5REFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHNCQUFzQkMsV0FBK0I7SUFDbkUsa0RBQWtEO0lBQ2xELE1BQU1DLHFCQUFxQkQsQ0FBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsWUFBYUUsT0FBTyxDQUFDLGNBQWMsUUFBTztJQUVyRSxvREFBb0Q7SUFDcEQsb0RBQW9EO0lBQ3BELElBQUksQ0FBQ0Qsb0JBQW9CO1FBQ3ZCLE9BQU87SUFDVDtJQUVBLElBQUlFLElBQUlDLFFBQVEsQ0FBQ0gscUJBQXFCO1FBQ3BDLE1BQU1JLE1BQU0sSUFBSUYsSUFBSUYsb0JBQW9CSyxRQUFRO1FBQ2hELE9BQU9ELElBQUlFLFFBQVEsQ0FBQyxPQUFPRixJQUFJRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUtIO0lBQ2hEO0lBRUEsaURBQWlEO0lBQ2pELDRCQUE0QjtJQUM1QixPQUFRLE1BQUdKO0FBQ2IiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL25vcm1hbGl6ZWQtYXNzZXQtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVkQXNzZXRQcmVmaXgoYXNzZXRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIC8vIHJlbW92ZSBhbGwgbGVhZGluZyBzbGFzaGVzIGFuZCB0cmFpbGluZyBzbGFzaGVzXG4gIGNvbnN0IGVzY2FwZWRBc3NldFByZWZpeCA9IGFzc2V0UHJlZml4Py5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJykgfHwgZmFsc2VcblxuICAvLyBpZiBhbiBhc3NldFByZWZpeCB3YXMgJy8nLCB3ZSByZXR1cm4gZW1wdHkgc3RyaW5nXG4gIC8vIGJlY2F1c2UgaXQgY291bGQgYmUgYW4gdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hcbiAgaWYgKCFlc2NhcGVkQXNzZXRQcmVmaXgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmIChVUkwuY2FuUGFyc2UoZXNjYXBlZEFzc2V0UHJlZml4KSkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoZXNjYXBlZEFzc2V0UHJlZml4KS50b1N0cmluZygpXG4gICAgcmV0dXJuIHVybC5lbmRzV2l0aCgnLycpID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybFxuICB9XG5cbiAgLy8gYXNzdW1pbmcgYXNzZXRQcmVmaXggaGVyZSBpcyBhIHBhdGhuYW1lLXN0eWxlLFxuICAvLyByZXN0b3JlIHRoZSBsZWFkaW5nIHNsYXNoXG4gIHJldHVybiBgLyR7ZXNjYXBlZEFzc2V0UHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVkQXNzZXRQcmVmaXgiLCJhc3NldFByZWZpeCIsImVzY2FwZWRBc3NldFByZWZpeCIsInJlcGxhY2UiLCJVUkwiLCJjYW5QYXJzZSIsInVybCIsInRvU3RyaW5nIiwiZW5kc1dpdGgiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgbGVhZGluZyBzbGFzaC5cbiAqIElmIHRoZXJlIGlzIG5vdCBhIGxlYWRpbmcgc2xhc2gsIG9uZSBpcyBhZGRlZCwgb3RoZXJ3aXNlIGl0IGlzIG5vb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGggOiBgLyR7cGF0aH1gXG59XG4iXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZUxlYWRpbmdTbGFzaCB9IGZyb20gJy4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzR3JvdXBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VnbWVudCdcblxuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcHBQYXRoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVuc3VyZUxlYWRpbmdTbGFzaChcbiAgICByb3V0ZS5zcGxpdCgnLycpLnJlZHVjZSgocGF0aG5hbWUsIHNlZ21lbnQsIGluZGV4LCBzZWdtZW50cykgPT4ge1xuICAgICAgLy8gRW1wdHkgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIEdyb3VwcyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gUGFyYWxsZWwgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoc2VnbWVudFswXSA9PT0gJ0AnKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICBpZiAoXG4gICAgICAgIChzZWdtZW50ID09PSAncGFnZScgfHwgc2VnbWVudCA9PT0gJ3JvdXRlJykgJiZcbiAgICAgICAgaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKVxuICApXG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBgLnJzY2AgZXh0ZW5zaW9uIGlmIGl0J3MgaW4gdGhlIHBhdGhuYW1lLlxuICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9uIGZ1bGwgdXJscyBpdCBjaGVja3MgYD9gIGZvciBzZWFyY2hQYXJhbXMgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5yZXBsYWNlKFxuICAgIC9cXC5yc2MoJHxcXD8pLyxcbiAgICAvLyAkMSBlbnN1cmVzIGA/YCBpcyBwcmVzZXJ2ZWRcbiAgICAnJDEnXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwibm9ybWFsaXplUnNjVVJMIiwicm91dGUiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJzcGxpdCIsInJlZHVjZSIsInBhdGhuYW1lIiwic2VnbWVudCIsImluZGV4Iiwic2VnbWVudHMiLCJpc0dyb3VwU2VnbWVudCIsImxlbmd0aCIsInVybCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js": /*!**************************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"computeCacheBustingSearchParam\", ({\n enumerable: true,\n get: function() {\n return computeCacheBustingSearchParam;\n }\n}));\nconst _hash = __webpack_require__(/*! ../../hash */ \"(ssr)/./node_modules/next/dist/shared/lib/hash.js\");\nfunction computeCacheBustingSearchParam(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) {\n if ((prefetchHeader === undefined || prefetchHeader === '0') && segmentPrefetchHeader === undefined && stateTreeHeader === undefined && nextUrlHeader === undefined) {\n return '';\n }\n return (0, _hash.hexHash)([\n prefetchHeader || '0',\n segmentPrefetchHeader || '0',\n stateTreeHeader || '0',\n nextUrlHeader || '0'\n ].join(','));\n} //# sourceMappingURL=cache-busting-search-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2NhY2hlLWJ1c3Rpbmctc2VhcmNoLXBhcmFtLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0VBRWdCQTs7O2VBQUFBOzs7a0NBRlE7QUFFakIsU0FBU0EsK0JBQ2RDLGNBQTJDLEVBQzNDQyxxQkFBb0QsRUFDcERDLGVBQThDLEVBQzlDQyxhQUE0QztJQUU1QyxJQUNHSCxDQUFBQSxtQkFBbUJJLGFBQWFKLG1CQUFtQixJQUFFLElBQ3REQywwQkFBMEJHLGFBQzFCRixvQkFBb0JFLGFBQ3BCRCxrQkFBa0JDLFdBQ2xCO1FBQ0EsT0FBTztJQUNUO0lBQ0EsT0FBT0MsQ0FBQUEsR0FBQUEsTUFBQUEsT0FBQUEsRUFDTDtRQUNFTCxrQkFBa0I7UUFDbEJDLHlCQUF5QjtRQUN6QkMsbUJBQW1CO1FBQ25CQyxpQkFBaUI7S0FDbEIsQ0FBQ0csSUFBSSxDQUFDO0FBRVgiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvY2FjaGUtYnVzdGluZy1zZWFyY2gtcGFyYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGV4SGFzaCB9IGZyb20gJy4uLy4uL2hhc2gnXG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0oXG4gIHByZWZldGNoSGVhZGVyOiAnMScgfCAnMicgfCAnMCcgfCB1bmRlZmluZWQsXG4gIHNlZ21lbnRQcmVmZXRjaEhlYWRlcjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gIHN0YXRlVHJlZUhlYWRlcjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gIG5leHRVcmxIZWFkZXI6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4pOiBzdHJpbmcge1xuICBpZiAoXG4gICAgKHByZWZldGNoSGVhZGVyID09PSB1bmRlZmluZWQgfHwgcHJlZmV0Y2hIZWFkZXIgPT09ICcwJykgJiZcbiAgICBzZWdtZW50UHJlZmV0Y2hIZWFkZXIgPT09IHVuZGVmaW5lZCAmJlxuICAgIHN0YXRlVHJlZUhlYWRlciA9PT0gdW5kZWZpbmVkICYmXG4gICAgbmV4dFVybEhlYWRlciA9PT0gdW5kZWZpbmVkXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG4gIHJldHVybiBoZXhIYXNoKFxuICAgIFtcbiAgICAgIHByZWZldGNoSGVhZGVyIHx8ICcwJyxcbiAgICAgIHNlZ21lbnRQcmVmZXRjaEhlYWRlciB8fCAnMCcsXG4gICAgICBzdGF0ZVRyZWVIZWFkZXIgfHwgJzAnLFxuICAgICAgbmV4dFVybEhlYWRlciB8fCAnMCcsXG4gICAgXS5qb2luKCcsJylcbiAgKVxufVxuIl0sIm5hbWVzIjpbImNvbXB1dGVDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSIsInByZWZldGNoSGVhZGVyIiwic2VnbWVudFByZWZldGNoSGVhZGVyIiwic3RhdGVUcmVlSGVhZGVyIiwibmV4dFVybEhlYWRlciIsInVuZGVmaW5lZCIsImhleEhhc2giLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"disableSmoothScrollDuringRouteTransition\", ({\n enumerable: true,\n get: function() {\n return disableSmoothScrollDuringRouteTransition;\n }\n}));\nconst _warnonce = __webpack_require__(/*! ../../utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction disableSmoothScrollDuringRouteTransition(fn, options) {\n if (options === void 0) options = {};\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn();\n return;\n }\n const htmlElement = document.documentElement;\n const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth';\n // Since this is a breaking change, this is temporarily flagged\n // and will be false by default.\n // In the next major (v16), this will be automatically enabled\n if (false) {} else {\n // Old behavior: always manipulate styles, but warn about upcoming change\n // Warn if smooth scrolling is detected but no data attribute is present\n if ( true && !hasDataAttribute && getComputedStyle(htmlElement).scrollBehavior === 'smooth') {\n (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `<html>` element. In a future version, ' + 'Next.js will no longer automatically disable smooth scrolling during route transitions. ' + 'To prepare for this change, add `data-scroll-behavior=\"smooth\"` to your <html> element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior');\n }\n }\n // Proceed with temporarily disabling smooth scrolling\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = 'auto';\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects();\n }\n fn();\n htmlElement.style.scrollBehavior = existing;\n} //# sourceMappingURL=disable-smooth-scroll.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Rpc2FibGUtc21vb3RoLXNjcm9sbC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRFQU1nQkE7OztlQUFBQTs7O3NDQU5TO0FBTWxCLFNBQVNBLHlDQUNkQyxFQUFjLEVBQ2RDLE9BQXFFO0lBQXJFQSxJQUFBQSxZQUFBQSxLQUFBQSxHQUFBQSxVQUFtRSxDQUFDO0lBRXBFLHlFQUF5RTtJQUN6RSw2RkFBNkY7SUFDN0YsSUFBSUEsUUFBUUMsY0FBYyxFQUFFO1FBQzFCRjtRQUNBO0lBQ0Y7SUFFQSxNQUFNRyxjQUFjQyxTQUFTQyxlQUFlO0lBQzVDLE1BQU1DLG1CQUFtQkgsWUFBWUksT0FBTyxDQUFDQyxjQUFjLEtBQUs7SUFFaEUsK0RBQStEO0lBQy9ELGdDQUFnQztJQUNoQyw4REFBOEQ7SUFDOUQsSUFBSUMsS0FBeUMsRUFBRSxFQU05QyxNQUFNO1FBQ0wseUVBQXlFO1FBRXpFLHdFQUF3RTtRQUN4RSxJQUNFQSxLQUFvQixJQUNwQixDQUFDSCxvQkFDRE8saUJBQWlCVixhQUFhSyxjQUFjLEtBQUssVUFDakQ7WUFDQU0sQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRSxzRkFDRSw2RkFDQSw2RkFDQTtRQUVOO0lBQ0Y7SUFFQSxzREFBc0Q7SUFDdEQsTUFBTUMsV0FBV1osWUFBWWEsS0FBSyxDQUFDUixjQUFjO0lBQ2pETCxZQUFZYSxLQUFLLENBQUNSLGNBQWMsR0FBRztJQUNuQyxJQUFJLENBQUNQLFFBQVFnQixlQUFlLEVBQUU7UUFDNUIsOEVBQThFO1FBQzlFLDREQUE0RDtRQUM1RCx5RkFBeUY7UUFDekZkLFlBQVllLGNBQWM7SUFDNUI7SUFDQWxCO0lBQ0FHLFlBQVlhLEtBQUssQ0FBQ1IsY0FBYyxHQUFHTztBQUNyQyIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9kaXNhYmxlLXNtb290aC1zY3JvbGwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuLi8uLi91dGlscy93YXJuLW9uY2UnXG5cbi8qKlxuICogUnVuIGZ1bmN0aW9uIHdpdGggYHNjcm9sbC1iZWhhdmlvcjogYXV0b2AgYXBwbGllZCB0byBgPGh0bWwvPmAuXG4gKiBUaGlzIGNzcyBjaGFuZ2Ugd2lsbCBiZSByZXZlcnRlZCBhZnRlciB0aGUgZnVuY3Rpb24gZmluaXNoZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uKFxuICBmbjogKCkgPT4gdm9pZCxcbiAgb3B0aW9uczogeyBkb250Rm9yY2VMYXlvdXQ/OiBib29sZWFuOyBvbmx5SGFzaENoYW5nZT86IGJvb2xlYW4gfSA9IHt9XG4pIHtcbiAgLy8gaWYgb25seSB0aGUgaGFzaCBpcyBjaGFuZ2VkLCB3ZSBkb24ndCBuZWVkIHRvIGRpc2FibGUgc21vb3RoIHNjcm9sbGluZ1xuICAvLyB3ZSBvbmx5IGNhcmUgdG8gcHJldmVudCBzbW9vdGggc2Nyb2xsaW5nIHdoZW4gbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlIHRvIGF2b2lkIGphcnJpbmcgVVhcbiAgaWYgKG9wdGlvbnMub25seUhhc2hDaGFuZ2UpIHtcbiAgICBmbigpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICBjb25zdCBoYXNEYXRhQXR0cmlidXRlID0gaHRtbEVsZW1lbnQuZGF0YXNldC5zY3JvbGxCZWhhdmlvciA9PT0gJ3Ntb290aCdcblxuICAvLyBTaW5jZSB0aGlzIGlzIGEgYnJlYWtpbmcgY2hhbmdlLCB0aGlzIGlzIHRlbXBvcmFyaWx5IGZsYWdnZWRcbiAgLy8gYW5kIHdpbGwgYmUgZmFsc2UgYnkgZGVmYXVsdC5cbiAgLy8gSW4gdGhlIG5leHQgbWFqb3IgKHYxNiksIHRoaXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGVuYWJsZWRcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9ST1VURVJfU0NST0xMKSB7XG4gICAgaWYgKCFoYXNEYXRhQXR0cmlidXRlKSB7XG4gICAgICAvLyBObyBzbW9vdGggc2Nyb2xsaW5nIGNvbmZpZ3VyZWQsIHJ1biBkaXJlY3RseSB3aXRob3V0IHN0eWxlIG1hbmlwdWxhdGlvblxuICAgICAgZm4oKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIE9sZCBiZWhhdmlvcjogYWx3YXlzIG1hbmlwdWxhdGUgc3R5bGVzLCBidXQgd2FybiBhYm91dCB1cGNvbWluZyBjaGFuZ2VcblxuICAgIC8vIFdhcm4gaWYgc21vb3RoIHNjcm9sbGluZyBpcyBkZXRlY3RlZCBidXQgbm8gZGF0YSBhdHRyaWJ1dGUgaXMgcHJlc2VudFxuICAgIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmXG4gICAgICAhaGFzRGF0YUF0dHJpYnV0ZSAmJlxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShodG1sRWxlbWVudCkuc2Nyb2xsQmVoYXZpb3IgPT09ICdzbW9vdGgnXG4gICAgKSB7XG4gICAgICB3YXJuT25jZShcbiAgICAgICAgJ0RldGVjdGVkIGBzY3JvbGwtYmVoYXZpb3I6IHNtb290aGAgb24gdGhlIGA8aHRtbD5gIGVsZW1lbnQuIEluIGEgZnV0dXJlIHZlcnNpb24sICcgK1xuICAgICAgICAgICdOZXh0LmpzIHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgZGlzYWJsZSBzbW9vdGggc2Nyb2xsaW5nIGR1cmluZyByb3V0ZSB0cmFuc2l0aW9ucy4gJyArXG4gICAgICAgICAgJ1RvIHByZXBhcmUgZm9yIHRoaXMgY2hhbmdlLCBhZGQgYGRhdGEtc2Nyb2xsLWJlaGF2aW9yPVwic21vb3RoXCJgIHRvIHlvdXIgPGh0bWw+IGVsZW1lbnQuICcgK1xuICAgICAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taXNzaW5nLWRhdGEtc2Nyb2xsLWJlaGF2aW9yJ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIC8vIFByb2NlZWQgd2l0aCB0ZW1wb3JhcmlseSBkaXNhYmxpbmcgc21vb3RoIHNjcm9sbGluZ1xuICBjb25zdCBleGlzdGluZyA9IGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yXG4gIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nXG4gIGlmICghb3B0aW9ucy5kb250Rm9yY2VMYXlvdXQpIHtcbiAgICAvLyBJbiBDaHJvbWUtYmFzZWQgYnJvd3NlcnMgd2UgbmVlZCB0byBmb3JjZSByZWZsb3cgYmVmb3JlIGNhbGxpbmcgYHNjcm9sbFRvYC5cbiAgICAvLyBPdGhlcndpc2UgaXQgd2lsbCBub3QgcGlja3VwIHRoZSBjaGFuZ2UgaW4gc2Nyb2xsQmVoYXZpb3JcbiAgICAvLyBNb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2lzc3Vlcy80MDcxOSNpc3N1ZWNvbW1lbnQtMTMzNjI0ODA0MlxuICAgIGh0bWxFbGVtZW50LmdldENsaWVudFJlY3RzKClcbiAgfVxuICBmbigpXG4gIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gZXhpc3Rpbmdcbn1cbiJdLCJuYW1lcyI6WyJkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uIiwiZm4iLCJvcHRpb25zIiwib25seUhhc2hDaGFuZ2UiLCJodG1sRWxlbWVudCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiaGFzRGF0YUF0dHJpYnV0ZSIsImRhdGFzZXQiLCJzY3JvbGxCZWhhdmlvciIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfT1BUSU1JWkVfUk9VVEVSX1NDUk9MTCIsIk5PREVfRU5WIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsIndhcm5PbmNlIiwiZXhpc3RpbmciLCJzdHlsZSIsImRvbnRGb3JjZUxheW91dCIsImdldENsaWVudFJlY3RzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n// Note: The pattern [\\w-]+-Google captures all Google crawlers with \"-Google\" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)\n// as well as crawlers starting with \"Google-\" (e.g., Google-PageRenderer, Google-InspectionTool)\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFDN0csc0tBQXNLO0FBQ3RLLGtKQUFrSjtBQUNsSixpR0FBaUc7Ozs7OzBEQUNwRkE7OztlQUFBQTs7O0FBQU4sTUFBTUEseUJBQ1giLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaHRtbC1ib3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggY29udGFpbnMgdGhlIGJvdHMgdGhhdCB3ZSBuZWVkIHRvIGRvIGEgYmxvY2tpbmcgcmVuZGVyIGZvciBhbmQgY2FuJ3Qgc2FmZWx5IHN0cmVhbSB0aGUgcmVzcG9uc2Vcbi8vIGR1ZSB0byBob3cgdGhleSBwYXJzZSB0aGUgRE9NLiBGb3IgZXhhbXBsZSwgdGhleSBtaWdodCBleHBsaWNpdGx5IGNoZWNrIGZvciBtZXRhZGF0YSBpbiB0aGUgYGhlYWRgIHRhZywgc28gd2UgY2FuJ3Qgc3RyZWFtIG1ldGFkYXRhIHRhZ3MgYWZ0ZXIgdGhlIGBoZWFkYCB3YXMgc2VudC5cbi8vIE5vdGU6IFRoZSBwYXR0ZXJuIFtcXHctXSstR29vZ2xlIGNhcHR1cmVzIGFsbCBHb29nbGUgY3Jhd2xlcnMgd2l0aCBcIi1Hb29nbGVcIiBzdWZmaXggKGUuZy4sIE1lZGlhcGFydG5lcnMtR29vZ2xlLCBBZHNCb3QtR29vZ2xlLCBTdG9yZWJvdC1Hb29nbGUpXG4vLyBhcyB3ZWxsIGFzIGNyYXdsZXJzIHN0YXJ0aW5nIHdpdGggXCJHb29nbGUtXCIgKGUuZy4sIEdvb2dsZS1QYWdlUmVuZGVyZXIsIEdvb2dsZS1JbnNwZWN0aW9uVG9vbClcbmV4cG9ydCBjb25zdCBIVE1MX0xJTUlURURfQk9UX1VBX1JFID1cbiAgL1tcXHctXSstR29vZ2xlfEdvb2dsZS1bXFx3LV0rfENocm9tZS1MaWdodGhvdXNlfFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8cmVkZGl0Ym90fGlhX2FyY2hpdmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8YXBwbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxMaW5rZWRJbkJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xZZXRpfGdvb2dsZXdlYmxpZ2h0L2lcbiJdLCJuYW1lcyI6WyJIVE1MX0xJTUlURURfQk9UX1VBX1JFIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = \"/\" + interceptedRoute;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2FBLDBCQUEwQjtlQUExQkE7O0lBa0JHQyxtQ0FBbUM7ZUFBbkNBOztJQVhBQywwQkFBMEI7ZUFBMUJBOzs7c0NBVmlCO0FBRzFCLE1BQU1GLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0UsMkJBQTJCQyxJQUFZO0lBQ3JELHdDQUF3QztJQUN4QyxPQUNFQSxLQUNHQyxLQUFLLENBQUMsS0FDTkMsSUFBSSxDQUFDLENBQUNDLFVBQ0xOLDJCQUEyQkssSUFBSSxDQUFDLENBQUNFLElBQU1ELFFBQVFFLFVBQVUsQ0FBQ0QsU0FDdERFO0FBRVo7QUFFTyxTQUFTUixvQ0FBb0NFLElBQVk7SUFDOUQsSUFBSU8sbUJBQ0ZDLFFBQ0FDO0lBRUYsS0FBSyxNQUFNTixXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBTTtRQUNyQ08sU0FBU1gsMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNuRSxJQUFJSSxRQUFROztZQUNULENBQUNELG1CQUFtQkUsaUJBQWlCLEdBQUdULEtBQUtDLEtBQUssQ0FBQ08sUUFBUTtZQUM1RDtRQUNGO0lBQ0Y7SUFFQSxJQUFJLENBQUNELHFCQUFxQixDQUFDQyxVQUFVLENBQUNDLGtCQUFrQjtRQUN0RCxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUCxpQ0FBOEJWLE9BQUssc0ZBRGhDO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUVBTyxvQkFBb0JJLENBQUFBLEdBQUFBLFVBQUFBLGdCQUFBQSxFQUFpQkosbUJBQW1CLGlEQUFpRDs7SUFFekcsT0FBUUM7UUFDTixLQUFLO1lBQ0gsb0lBQW9JO1lBQ3BJLElBQUlELHNCQUFzQixLQUFLO2dCQUM3QkUsbUJBQW9CLE1BQUdBO1lBQ3pCLE9BQU87Z0JBQ0xBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQy9DO1lBQ0E7UUFDRixLQUFLO1lBQ0gsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUM3QixNQUFNLHFCQUVMLENBRkssSUFBSUcsTUFDUCxpQ0FBOEJWLE9BQUssaUVBRGhDOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFDQVMsbUJBQW1CRixrQkFDaEJOLEtBQUssQ0FBQyxLQUNOVyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0YsS0FBSztZQUNILGtJQUFrSTtZQUNsSUwsbUJBQW1CLE1BQU1BO1lBQ3pCO1FBQ0YsS0FBSztZQUNILGlJQUFpSTtZQUVqSSxNQUFNTSx5QkFBeUJSLGtCQUFrQk4sS0FBSyxDQUFDO1lBQ3ZELElBQUljLHVCQUF1QkMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3RDLE1BQU0scUJBRUwsQ0FGSyxJQUFJTixNQUNQLGlDQUE4QlYsT0FBSyxvRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBUyxtQkFBbUJNLHVCQUNoQkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUNWQyxNQUFNLENBQUNKLGtCQUNQSyxJQUFJLENBQUM7WUFDUjtRQUNGO1lBQ0UsTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUosTUFBTSxpQ0FBVjt1QkFBQTs0QkFBQTs4QkFBQTtZQUF3QztJQUNsRDtJQUVBLE9BQU87UUFBRUg7UUFBbUJFO0lBQWlCO0FBQy9DIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4vYXBwLXBhdGhzJ1xuXG4vLyBvcmRlciBtYXR0ZXJzIGhlcmUsIHRoZSBmaXJzdCBtYXRjaCB3aWxsIGJlIHVzZWRcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyA9IFtcbiAgJyguLikoLi4pJyxcbiAgJyguKScsXG4gICcoLi4pJyxcbiAgJyguLi4pJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgICApICE9PSB1bmRlZmluZWRcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocGF0aDogc3RyaW5nKSB7XG4gIGxldCBpbnRlcmNlcHRpbmdSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG1hcmtlcjogKHR5cGVvZiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUylbbnVtYmVyXSB8IHVuZGVmaW5lZCxcbiAgICBpbnRlcmNlcHRlZFJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLycpKSB7XG4gICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgIGlmIChtYXJrZXIpIHtcbiAgICAgIDtbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghaW50ZXJjZXB0aW5nUm91dGUgfHwgIW1hcmtlciB8fCAhaW50ZXJjZXB0ZWRSb3V0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmBcbiAgICApXG4gIH1cblxuICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcblxuICBzd2l0Y2ggKG1hcmtlcikge1xuICAgIGNhc2UgJyguKSc6XG4gICAgICAvLyAoLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIHdpdGggc2libGluZyByb3V0ZXMsIHNvIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlIHRvIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLiknOlxuICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSAoLikgaW5zdGVhZC5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4uKSc6XG4gICAgICAvLyAoLi4uKSB3aWxsIG1hdGNoIHRoZSByb3V0ZSBzZWdtZW50IGluIHRoZSByb290IGRpcmVjdG9yeSwgc28gd2UgbmVlZCB0byB1c2UgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pKC4uKSc6XG4gICAgICAvLyAoLi4pKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgdHdvIGxldmVscyB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3QgdHdvIHNlZ21lbnRzIG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcblxuICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJylcbiAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsIG9yIG9uZSBsZXZlbCB1cC5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNsaWNlKDAsIC0yKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpXG4gIH1cblxuICByZXR1cm4geyBpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZSB9XG59XG4iXSwibmFtZXMiOlsiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwicGF0aCIsInNwbGl0IiwiZmluZCIsInNlZ21lbnQiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwibm9ybWFsaXplQXBwUGF0aCIsInNsaWNlIiwiY29uY2F0Iiwiam9pbiIsInNwbGl0SW50ZXJjZXB0aW5nUm91dGUiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\n// This regex specifically matches \"Googlebot\" but NOT \"Mediapartners-Google\", \"AdsBot-Google\", etc.\nconst HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFVU0Esc0JBQXNCO2VBQXRCQSxVQUFBQSxzQkFBc0I7O0lBRmxCQyw2QkFBNkI7ZUFBN0JBOztJQWdCR0MsVUFBVTtlQUFWQTs7SUFKQUMsS0FBSztlQUFMQTs7O3NDQXBCdUI7QUFFdkMsbUVBQW1FO0FBQ25FLHlGQUF5RjtBQUN6Riw0RkFBNEY7QUFDNUYsb0dBQW9HO0FBQ3BHLE1BQU1DLDZCQUE2QjtBQUU1QixNQUFNSCxnQ0FBZ0NELFVBQUFBLHNCQUFzQixDQUFDSyxNQUFNO0FBSTFFLFNBQVNDLFdBQVdDLFNBQWlCO0lBQ25DLE9BQU9ILDJCQUEyQkksSUFBSSxDQUFDRDtBQUN6QztBQUVBLFNBQVNFLG1CQUFtQkYsU0FBaUI7SUFDM0MsT0FBT1AsVUFBQUEsc0JBQXNCLENBQUNRLElBQUksQ0FBQ0Q7QUFDckM7QUFFTyxTQUFTSixNQUFNSSxTQUFpQjtJQUNyQyxPQUFPRCxXQUFXQyxjQUFjRSxtQkFBbUJGO0FBQ3JEO0FBRU8sU0FBU0wsV0FBV0ssU0FBaUI7SUFDMUMsSUFBSUQsV0FBV0MsWUFBWTtRQUN6QixPQUFPO0lBQ1Q7SUFDQSxJQUFJRSxtQkFBbUJGLFlBQVk7UUFDakMsT0FBTztJQUNUO0lBQ0EsT0FBT0c7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSB9IGZyb20gJy4vaHRtbC1ib3RzJ1xuXG4vLyBCb3QgY3Jhd2xlciB0aGF0IHdpbGwgc3BpbiB1cCBhIGhlYWRsZXNzIGJyb3dzZXIgYW5kIGV4ZWN1dGUgSlMuXG4vLyBPbmx5IHRoZSBtYWluIEdvb2dsZWJvdCBzZWFyY2ggY3Jhd2xlciBleGVjdXRlcyBKYXZhU2NyaXB0LCBub3Qgb3RoZXIgR29vZ2xlIGNyYXdsZXJzLlxuLy8geC1yZWY6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3NlYXJjaC9kb2NzL2NyYXdsaW5nLWluZGV4aW5nL2dvb2dsZS1jb21tb24tY3Jhd2xlcnNcbi8vIFRoaXMgcmVnZXggc3BlY2lmaWNhbGx5IG1hdGNoZXMgXCJHb29nbGVib3RcIiBidXQgTk9UIFwiTWVkaWFwYXJ0bmVycy1Hb29nbGVcIiwgXCJBZHNCb3QtR29vZ2xlXCIsIGV0Yy5cbmNvbnN0IEhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFID0gL0dvb2dsZWJvdCg/IS0pfEdvb2dsZWJvdCQvaVxuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkcgPSBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnNvdXJjZVxuXG5leHBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH1cblxuZnVuY3Rpb24gaXNEb21Cb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUudGVzdCh1c2VyQWdlbnQpXG59XG5cbmZ1bmN0aW9uIGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm90KHVzZXJBZ2VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0RvbUJvdFVBKHVzZXJBZ2VudCkgfHwgaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdFR5cGUodXNlckFnZW50OiBzdHJpbmcpOiAnZG9tJyB8ICdodG1sJyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc0RvbUJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2RvbSdcbiAgfVxuICBpZiAoaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2h0bWwnXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiLCJIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyIsImdldEJvdFR5cGUiLCJpc0JvdCIsIkhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFIiwic291cmNlIiwiaXNEb21Cb3RVQSIsInVzZXJBZ2VudCIsInRlc3QiLCJpc0h0bWxMaW1pdGVkQm90VUEiLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js": /*!***********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ROOT_SEGMENT_CACHE_KEY: function() {\n return ROOT_SEGMENT_CACHE_KEY;\n },\n ROOT_SEGMENT_REQUEST_KEY: function() {\n return ROOT_SEGMENT_REQUEST_KEY;\n },\n appendSegmentCacheKeyPart: function() {\n return appendSegmentCacheKeyPart;\n },\n appendSegmentRequestKeyPart: function() {\n return appendSegmentRequestKeyPart;\n },\n convertSegmentPathToStaticExportFilename: function() {\n return convertSegmentPathToStaticExportFilename;\n },\n createSegmentCacheKeyPart: function() {\n return createSegmentCacheKeyPart;\n },\n createSegmentRequestKeyPart: function() {\n return createSegmentRequestKeyPart;\n }\n});\nconst _segment = __webpack_require__(/*! ../segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst ROOT_SEGMENT_REQUEST_KEY = '';\nconst ROOT_SEGMENT_CACHE_KEY = '';\nfunction createSegmentRequestKeyPart(segment) {\n if (typeof segment === 'string') {\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n // The Flight Router State type sometimes includes the search params in\n // the page segment. However, the Segment Cache tracks this as a separate\n // key. So, we strip the search params here, and then add them back when\n // the cache entry is turned back into a FlightRouterState. This is an\n // unfortunate consequence of the FlightRouteState being used both as a\n // transport type and as a cache key; we'll address this once more of the\n // Segment Cache implementation has settled.\n // TODO: We should hoist the search params out of the FlightRouterState\n // type entirely, This is our plan for dynamic route params, too.\n return _segment.PAGE_SEGMENT_KEY;\n }\n const safeName = // But params typically don't include the leading slash. We should use\n // a different encoding to avoid this special case.\n segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment);\n // Since this is not a dynamic segment, it's fully encoded. It does not\n // need to be \"hydrated\" with a param value.\n return safeName;\n }\n const name = segment[0];\n const paramType = segment[2];\n const safeName = encodeToFilesystemAndURLSafeString(name);\n const encodedName = '$' + paramType + '$' + safeName;\n return encodedName;\n}\nfunction appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) {\n // Aside from being filesystem safe, segment keys are also designed so that\n // each segment and parallel route creates its own subdirectory. Roughly in\n // the same shape as the source app directory. This is mostly just for easier\n // debugging (you can open up the build folder and navigate the output); if\n // we wanted to do we could just use a flat structure.\n // Omit the parallel route key for children, since this is the most\n // common case. Saves some bytes (and it's what the app directory does).\n const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + childRequestKeyPart;\n return parentRequestKey + '/' + slotKey;\n}\nfunction createSegmentCacheKeyPart(requestKeyPart, segment) {\n if (typeof segment === 'string') {\n return requestKeyPart;\n }\n const paramValue = segment[1];\n const safeValue = encodeToFilesystemAndURLSafeString(paramValue);\n return requestKeyPart + '$' + safeValue;\n}\nfunction appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) {\n const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + childCacheKeyPart;\n return parentSegmentKey + '/' + slotKey;\n}\n// Define a regex pattern to match the most common characters found in a route\n// param. It excludes anything that might not be cross-platform filesystem\n// compatible, like |. It does not need to be precise because the fallback is to\n// just base64url-encode the whole parameter, which is fine; we just don't do it\n// by default for compactness, and for easier debugging.\nconst simpleParamValueRegex = /^[a-zA-Z0-9\\-_@]+$/;\nfunction encodeToFilesystemAndURLSafeString(value) {\n if (simpleParamValueRegex.test(value)) {\n return value;\n }\n // If there are any unsafe characters, base64url-encode the entire value.\n // We also add a ! prefix so it doesn't collide with the simple case.\n const base64url = btoa(value).replace(/\\+/g, '-') // Replace '+' with '-'\n .replace(/\\//g, '_') // Replace '/' with '_'\n .replace(/=+$/, '') // Remove trailing '='\n ;\n return '!' + base64url;\n}\nfunction convertSegmentPathToStaticExportFilename(segmentPath) {\n return \"__next\" + segmentPath.replace(/\\//g, '.') + \".txt\";\n} //# sourceMappingURL=segment-value-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVlhQSxzQkFBc0I7ZUFBdEJBOztJQURBQyx3QkFBd0I7ZUFBeEJBOztJQXVFR0MseUJBQXlCO2VBQXpCQTs7SUFoQ0FDLDJCQUEyQjtlQUEzQkE7O0lBZ0VBQyx3Q0FBd0M7ZUFBeENBOztJQTVDQUMseUJBQXlCO2VBQXpCQTs7SUF4REFDLDJCQUEyQjtlQUEzQkE7OztxQ0FkaUI7QUFXMUIsTUFBTUwsMkJBQTJCO0FBQ2pDLE1BQU1ELHlCQUF5QjtBQUUvQixTQUFTTSw0QkFDZEMsT0FBaUM7SUFFakMsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsSUFBSUEsUUFBUUMsVUFBVSxDQUFDQyxTQUFBQSxnQkFBZ0IsR0FBRztZQUN4Qyx1RUFBdUU7WUFDdkUseUVBQXlFO1lBQ3pFLHdFQUF3RTtZQUN4RSxzRUFBc0U7WUFDdEUsdUVBQXVFO1lBQ3ZFLHlFQUF5RTtZQUN6RSw0Q0FBNEM7WUFDNUMsdUVBQXVFO1lBQ3ZFLGlFQUFpRTtZQUNqRSxPQUFPQSxTQUFBQSxnQkFBZ0I7UUFDekI7UUFDQSxNQUFNQyxXQUNKLHFFQUFxRSxDQUNDO1FBQ3RFLG1EQUFtRDtRQUNuREgsWUFBWSxnQkFDUixlQUNBSSxtQ0FBbUNKO1FBQ3pDLHVFQUF1RTtRQUN2RSw0Q0FBNEM7UUFDNUMsT0FBT0c7SUFDVDtJQUVBLE1BQU1FLE9BQU9MLE9BQU8sQ0FBQyxFQUFFO0lBQ3ZCLE1BQU1NLFlBQVlOLE9BQU8sQ0FBQyxFQUFFO0lBQzVCLE1BQU1HLFdBQVdDLG1DQUFtQ0M7SUFFcEQsTUFBTUUsY0FBYyxNQUFNRCxZQUFZLE1BQU1IO0lBQzVDLE9BQU9JO0FBQ1Q7QUFFTyxTQUFTWCw0QkFDZFksZ0JBQW1DLEVBQ25DQyxnQkFBd0IsRUFDeEJDLG1CQUEwQztJQUUxQywyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDZFQUE2RTtJQUM3RSwyRUFBMkU7SUFDM0Usc0RBQXNEO0lBRXRELG1FQUFtRTtJQUNuRSx3RUFBd0U7SUFDeEUsTUFBTUMsVUFDSkYscUJBQXFCLGFBQ2pCQyxzQkFDQyxNQUFHTixtQ0FBbUNLLG9CQUFrQixNQUFHQztJQUNsRSxPQUFRRixtQkFBbUIsTUFBTUc7QUFDbkM7QUFFTyxTQUFTYiwwQkFDZGMsY0FBcUMsRUFDckNaLE9BQWlDO0lBRWpDLElBQUksT0FBT0EsWUFBWSxVQUFVO1FBQy9CLE9BQU9ZO0lBQ1Q7SUFDQSxNQUFNQyxhQUFhYixPQUFPLENBQUMsRUFBRTtJQUM3QixNQUFNYyxZQUFZVixtQ0FBbUNTO0lBQ3JELE9BQVFELGlCQUFpQixNQUFNRTtBQUNqQztBQUVPLFNBQVNuQiwwQkFDZG9CLGdCQUFpQyxFQUNqQ04sZ0JBQXdCLEVBQ3hCTyxpQkFBc0M7SUFFdEMsTUFBTUwsVUFDSkYscUJBQXFCLGFBQ2pCTyxvQkFDQyxNQUFHWixtQ0FBbUNLLG9CQUFrQixNQUFHTztJQUNsRSxPQUFRRCxtQkFBbUIsTUFBTUo7QUFDbkM7QUFFQSw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBQzFFLGdGQUFnRjtBQUNoRixnRkFBZ0Y7QUFDaEYsd0RBQXdEO0FBQ3hELE1BQU1NLHdCQUF3QjtBQUU5QixTQUFTYixtQ0FBbUNjLEtBQWE7SUFDdkQsSUFBSUQsc0JBQXNCRSxJQUFJLENBQUNELFFBQVE7UUFDckMsT0FBT0E7SUFDVDtJQUNBLHlFQUF5RTtJQUN6RSxxRUFBcUU7SUFDckUsTUFBTUUsWUFBWUMsS0FBS0gsT0FDcEJJLE9BQU8sQ0FBQyxPQUFPLEtBQUssdUJBQXVCO0tBQzNDQSxPQUFPLENBQUMsT0FBTyxLQUFLLHVCQUF1QjtLQUMzQ0EsT0FBTyxDQUFDLE9BQU8sSUFBSSxzQkFBc0I7O0lBQzVDLE9BQU8sTUFBTUY7QUFDZjtBQUVPLFNBQVN2Qix5Q0FDZDBCLFdBQW1CO0lBRW5CLE9BQVEsV0FBUUEsWUFBWUQsT0FBTyxDQUFDLE9BQU8sT0FBSztBQUNsRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi9zZWdtZW50J1xuaW1wb3J0IHR5cGUgeyBTZWdtZW50IGFzIEZsaWdodFJvdXRlclN0YXRlU2VnbWVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG4vLyBUeXBlU2NyaXB0IHRyaWNrIHRvIHNpbXVsYXRlIG9wYXF1ZSB0eXBlcywgbGlrZSBpbiBGbG93LlxudHlwZSBPcGFxdWU8SywgVD4gPSBUICYgeyBfX2JyYW5kOiBLIH1cblxuZXhwb3J0IHR5cGUgU2VnbWVudFJlcXVlc3RLZXlQYXJ0ID0gT3BhcXVlPCdTZWdtZW50UmVxdWVzdEtleVBhcnQnLCBzdHJpbmc+XG5leHBvcnQgdHlwZSBTZWdtZW50UmVxdWVzdEtleSA9IE9wYXF1ZTwnU2VnbWVudFJlcXVlc3RLZXknLCBzdHJpbmc+XG5leHBvcnQgdHlwZSBTZWdtZW50Q2FjaGVLZXlQYXJ0ID0gT3BhcXVlPCdTZWdtZW50Q2FjaGVLZXlQYXJ0Jywgc3RyaW5nPlxuZXhwb3J0IHR5cGUgU2VnbWVudENhY2hlS2V5ID0gT3BhcXVlPCdTZWdtZW50Q2FjaGVLZXknLCBzdHJpbmc+XG5cbmV4cG9ydCBjb25zdCBST09UX1NFR01FTlRfUkVRVUVTVF9LRVkgPSAnJyBhcyBTZWdtZW50UmVxdWVzdEtleVxuZXhwb3J0IGNvbnN0IFJPT1RfU0VHTUVOVF9DQUNIRV9LRVkgPSAnJyBhcyBTZWdtZW50Q2FjaGVLZXlcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydChcbiAgc2VnbWVudDogRmxpZ2h0Um91dGVyU3RhdGVTZWdtZW50XG4pOiBTZWdtZW50UmVxdWVzdEtleVBhcnQge1xuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgICAgLy8gVGhlIEZsaWdodCBSb3V0ZXIgU3RhdGUgdHlwZSBzb21ldGltZXMgaW5jbHVkZXMgdGhlIHNlYXJjaCBwYXJhbXMgaW5cbiAgICAgIC8vIHRoZSBwYWdlIHNlZ21lbnQuIEhvd2V2ZXIsIHRoZSBTZWdtZW50IENhY2hlIHRyYWNrcyB0aGlzIGFzIGEgc2VwYXJhdGVcbiAgICAgIC8vIGtleS4gU28sIHdlIHN0cmlwIHRoZSBzZWFyY2ggcGFyYW1zIGhlcmUsIGFuZCB0aGVuIGFkZCB0aGVtIGJhY2sgd2hlblxuICAgICAgLy8gdGhlIGNhY2hlIGVudHJ5IGlzIHR1cm5lZCBiYWNrIGludG8gYSBGbGlnaHRSb3V0ZXJTdGF0ZS4gVGhpcyBpcyBhblxuICAgICAgLy8gdW5mb3J0dW5hdGUgY29uc2VxdWVuY2Ugb2YgdGhlIEZsaWdodFJvdXRlU3RhdGUgYmVpbmcgdXNlZCBib3RoIGFzIGFcbiAgICAgIC8vIHRyYW5zcG9ydCB0eXBlIGFuZCBhcyBhIGNhY2hlIGtleTsgd2UnbGwgYWRkcmVzcyB0aGlzIG9uY2UgbW9yZSBvZiB0aGVcbiAgICAgIC8vIFNlZ21lbnQgQ2FjaGUgaW1wbGVtZW50YXRpb24gaGFzIHNldHRsZWQuXG4gICAgICAvLyBUT0RPOiBXZSBzaG91bGQgaG9pc3QgdGhlIHNlYXJjaCBwYXJhbXMgb3V0IG9mIHRoZSBGbGlnaHRSb3V0ZXJTdGF0ZVxuICAgICAgLy8gdHlwZSBlbnRpcmVseSwgVGhpcyBpcyBvdXIgcGxhbiBmb3IgZHluYW1pYyByb3V0ZSBwYXJhbXMsIHRvby5cbiAgICAgIHJldHVybiBQQUdFX1NFR01FTlRfS0VZIGFzIFNlZ21lbnRSZXF1ZXN0S2V5UGFydFxuICAgIH1cbiAgICBjb25zdCBzYWZlTmFtZSA9XG4gICAgICAvLyBUT0RPOiBGbGlnaHRSb3V0ZXJTdGF0ZSBlbmNvZGVzIE5vdCBGb3VuZCByb3V0ZXMgYXMgXCIvX25vdC1mb3VuZFwiLlxuICAgICAgLy8gQnV0IHBhcmFtcyB0eXBpY2FsbHkgZG9uJ3QgaW5jbHVkZSB0aGUgbGVhZGluZyBzbGFzaC4gV2Ugc2hvdWxkIHVzZVxuICAgICAgLy8gYSBkaWZmZXJlbnQgZW5jb2RpbmcgdG8gYXZvaWQgdGhpcyBzcGVjaWFsIGNhc2UuXG4gICAgICBzZWdtZW50ID09PSAnL19ub3QtZm91bmQnXG4gICAgICAgID8gJ19ub3QtZm91bmQnXG4gICAgICAgIDogZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyhzZWdtZW50KVxuICAgIC8vIFNpbmNlIHRoaXMgaXMgbm90IGEgZHluYW1pYyBzZWdtZW50LCBpdCdzIGZ1bGx5IGVuY29kZWQuIEl0IGRvZXMgbm90XG4gICAgLy8gbmVlZCB0byBiZSBcImh5ZHJhdGVkXCIgd2l0aCBhIHBhcmFtIHZhbHVlLlxuICAgIHJldHVybiBzYWZlTmFtZSBhcyBTZWdtZW50UmVxdWVzdEtleVBhcnRcbiAgfVxuXG4gIGNvbnN0IG5hbWUgPSBzZWdtZW50WzBdXG4gIGNvbnN0IHBhcmFtVHlwZSA9IHNlZ21lbnRbMl1cbiAgY29uc3Qgc2FmZU5hbWUgPSBlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKG5hbWUpXG5cbiAgY29uc3QgZW5jb2RlZE5hbWUgPSAnJCcgKyBwYXJhbVR5cGUgKyAnJCcgKyBzYWZlTmFtZVxuICByZXR1cm4gZW5jb2RlZE5hbWUgYXMgU2VnbWVudFJlcXVlc3RLZXlQYXJ0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRTZWdtZW50UmVxdWVzdEtleVBhcnQoXG4gIHBhcmVudFJlcXVlc3RLZXk6IFNlZ21lbnRSZXF1ZXN0S2V5LFxuICBwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmcsXG4gIGNoaWxkUmVxdWVzdEtleVBhcnQ6IFNlZ21lbnRSZXF1ZXN0S2V5UGFydFxuKTogU2VnbWVudFJlcXVlc3RLZXkge1xuICAvLyBBc2lkZSBmcm9tIGJlaW5nIGZpbGVzeXN0ZW0gc2FmZSwgc2VnbWVudCBrZXlzIGFyZSBhbHNvIGRlc2lnbmVkIHNvIHRoYXRcbiAgLy8gZWFjaCBzZWdtZW50IGFuZCBwYXJhbGxlbCByb3V0ZSBjcmVhdGVzIGl0cyBvd24gc3ViZGlyZWN0b3J5LiBSb3VnaGx5IGluXG4gIC8vIHRoZSBzYW1lIHNoYXBlIGFzIHRoZSBzb3VyY2UgYXBwIGRpcmVjdG9yeS4gVGhpcyBpcyBtb3N0bHkganVzdCBmb3IgZWFzaWVyXG4gIC8vIGRlYnVnZ2luZyAoeW91IGNhbiBvcGVuIHVwIHRoZSBidWlsZCBmb2xkZXIgYW5kIG5hdmlnYXRlIHRoZSBvdXRwdXQpOyBpZlxuICAvLyB3ZSB3YW50ZWQgdG8gZG8gd2UgY291bGQganVzdCB1c2UgYSBmbGF0IHN0cnVjdHVyZS5cblxuICAvLyBPbWl0IHRoZSBwYXJhbGxlbCByb3V0ZSBrZXkgZm9yIGNoaWxkcmVuLCBzaW5jZSB0aGlzIGlzIHRoZSBtb3N0XG4gIC8vIGNvbW1vbiBjYXNlLiBTYXZlcyBzb21lIGJ5dGVzIChhbmQgaXQncyB3aGF0IHRoZSBhcHAgZGlyZWN0b3J5IGRvZXMpLlxuICBjb25zdCBzbG90S2V5ID1cbiAgICBwYXJhbGxlbFJvdXRlS2V5ID09PSAnY2hpbGRyZW4nXG4gICAgICA/IGNoaWxkUmVxdWVzdEtleVBhcnRcbiAgICAgIDogYEAke2VuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcocGFyYWxsZWxSb3V0ZUtleSl9LyR7Y2hpbGRSZXF1ZXN0S2V5UGFydH1gXG4gIHJldHVybiAocGFyZW50UmVxdWVzdEtleSArICcvJyArIHNsb3RLZXkpIGFzIFNlZ21lbnRSZXF1ZXN0S2V5XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWdtZW50Q2FjaGVLZXlQYXJ0KFxuICByZXF1ZXN0S2V5UGFydDogU2VnbWVudFJlcXVlc3RLZXlQYXJ0LFxuICBzZWdtZW50OiBGbGlnaHRSb3V0ZXJTdGF0ZVNlZ21lbnRcbik6IFNlZ21lbnRDYWNoZUtleVBhcnQge1xuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHJlcXVlc3RLZXlQYXJ0IGFzIGFueSBhcyBTZWdtZW50Q2FjaGVLZXlQYXJ0XG4gIH1cbiAgY29uc3QgcGFyYW1WYWx1ZSA9IHNlZ21lbnRbMV1cbiAgY29uc3Qgc2FmZVZhbHVlID0gZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyhwYXJhbVZhbHVlKVxuICByZXR1cm4gKHJlcXVlc3RLZXlQYXJ0ICsgJyQnICsgc2FmZVZhbHVlKSBhcyBTZWdtZW50Q2FjaGVLZXlQYXJ0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRTZWdtZW50Q2FjaGVLZXlQYXJ0KFxuICBwYXJlbnRTZWdtZW50S2V5OiBTZWdtZW50Q2FjaGVLZXksXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyxcbiAgY2hpbGRDYWNoZUtleVBhcnQ6IFNlZ21lbnRDYWNoZUtleVBhcnRcbik6IFNlZ21lbnRDYWNoZUtleSB7XG4gIGNvbnN0IHNsb3RLZXkgPVxuICAgIHBhcmFsbGVsUm91dGVLZXkgPT09ICdjaGlsZHJlbidcbiAgICAgID8gY2hpbGRDYWNoZUtleVBhcnRcbiAgICAgIDogYEAke2VuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcocGFyYWxsZWxSb3V0ZUtleSl9LyR7Y2hpbGRDYWNoZUtleVBhcnR9YFxuICByZXR1cm4gKHBhcmVudFNlZ21lbnRLZXkgKyAnLycgKyBzbG90S2V5KSBhcyBTZWdtZW50Q2FjaGVLZXlcbn1cblxuLy8gRGVmaW5lIGEgcmVnZXggcGF0dGVybiB0byBtYXRjaCB0aGUgbW9zdCBjb21tb24gY2hhcmFjdGVycyBmb3VuZCBpbiBhIHJvdXRlXG4vLyBwYXJhbS4gSXQgZXhjbHVkZXMgYW55dGhpbmcgdGhhdCBtaWdodCBub3QgYmUgY3Jvc3MtcGxhdGZvcm0gZmlsZXN5c3RlbVxuLy8gY29tcGF0aWJsZSwgbGlrZSB8LiBJdCBkb2VzIG5vdCBuZWVkIHRvIGJlIHByZWNpc2UgYmVjYXVzZSB0aGUgZmFsbGJhY2sgaXMgdG9cbi8vIGp1c3QgYmFzZTY0dXJsLWVuY29kZSB0aGUgd2hvbGUgcGFyYW1ldGVyLCB3aGljaCBpcyBmaW5lOyB3ZSBqdXN0IGRvbid0IGRvIGl0XG4vLyBieSBkZWZhdWx0IGZvciBjb21wYWN0bmVzcywgYW5kIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuY29uc3Qgc2ltcGxlUGFyYW1WYWx1ZVJlZ2V4ID0gL15bYS16QS1aMC05XFwtX0BdKyQvXG5cbmZ1bmN0aW9uIGVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcodmFsdWU6IHN0cmluZykge1xuICBpZiAoc2ltcGxlUGFyYW1WYWx1ZVJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cbiAgLy8gSWYgdGhlcmUgYXJlIGFueSB1bnNhZmUgY2hhcmFjdGVycywgYmFzZTY0dXJsLWVuY29kZSB0aGUgZW50aXJlIHZhbHVlLlxuICAvLyBXZSBhbHNvIGFkZCBhICEgcHJlZml4IHNvIGl0IGRvZXNuJ3QgY29sbGlkZSB3aXRoIHRoZSBzaW1wbGUgY2FzZS5cbiAgY29uc3QgYmFzZTY0dXJsID0gYnRvYSh2YWx1ZSlcbiAgICAucmVwbGFjZSgvXFwrL2csICctJykgLy8gUmVwbGFjZSAnKycgd2l0aCAnLSdcbiAgICAucmVwbGFjZSgvXFwvL2csICdfJykgLy8gUmVwbGFjZSAnLycgd2l0aCAnXydcbiAgICAucmVwbGFjZSgvPSskLywgJycpIC8vIFJlbW92ZSB0cmFpbGluZyAnPSdcbiAgcmV0dXJuICchJyArIGJhc2U2NHVybFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFNlZ21lbnRQYXRoVG9TdGF0aWNFeHBvcnRGaWxlbmFtZShcbiAgc2VnbWVudFBhdGg6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBfX25leHQke3NlZ21lbnRQYXRoLnJlcGxhY2UoL1xcLy9nLCAnLicpfS50eHRgXG59XG4iXSwibmFtZXMiOlsiUk9PVF9TRUdNRU5UX0NBQ0hFX0tFWSIsIlJPT1RfU0VHTUVOVF9SRVFVRVNUX0tFWSIsImFwcGVuZFNlZ21lbnRDYWNoZUtleVBhcnQiLCJhcHBlbmRTZWdtZW50UmVxdWVzdEtleVBhcnQiLCJjb252ZXJ0U2VnbWVudFBhdGhUb1N0YXRpY0V4cG9ydEZpbGVuYW1lIiwiY3JlYXRlU2VnbWVudENhY2hlS2V5UGFydCIsImNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydCIsInNlZ21lbnQiLCJzdGFydHNXaXRoIiwiUEFHRV9TRUdNRU5UX0tFWSIsInNhZmVOYW1lIiwiZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyIsIm5hbWUiLCJwYXJhbVR5cGUiLCJlbmNvZGVkTmFtZSIsInBhcmVudFJlcXVlc3RLZXkiLCJwYXJhbGxlbFJvdXRlS2V5IiwiY2hpbGRSZXF1ZXN0S2V5UGFydCIsInNsb3RLZXkiLCJyZXF1ZXN0S2V5UGFydCIsInBhcmFtVmFsdWUiLCJzYWZlVmFsdWUiLCJwYXJlbnRTZWdtZW50S2V5IiwiY2hpbGRDYWNoZUtleVBhcnQiLCJzaW1wbGVQYXJhbVZhbHVlUmVnZXgiLCJ2YWx1ZSIsInRlc3QiLCJiYXNlNjR1cmwiLCJidG9hIiwicmVwbGFjZSIsInNlZ21lbnRQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/segment.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment.js ***! \******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/segment.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils/reflect-utils.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\n }\n});\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nfunction describeStringPropertyAccess(target, prop) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return \"`\" + target + \".\" + prop + \"`\";\n }\n return \"`\" + target + \"[\" + JSON.stringify(prop) + \"]`\";\n}\nfunction describeHasCheckingStringProperty(target, prop) {\n const stringifiedProp = JSON.stringify(prop);\n return \"`Reflect.has(\" + target + \", \" + stringifiedProp + \")`, `\" + stringifiedProp + \" in \" + target + \"`, or similar\";\n}\nconst wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n // Promise prototype\n // fallthrough\n 'then',\n 'catch',\n 'finally',\n // React Promise extension\n // fallthrough\n 'status',\n // React introspection\n 'displayName',\n '_debugInfo',\n // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule'\n]); //# sourceMappingURL=reflect-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsaUZBQWlGO0FBQ2pGLDBGQUEwRjtBQUMxRix1RkFBdUY7QUFDdkYsMkRBQTJEOzs7Ozs7Ozs7Ozs7O0lBVTNDQSxpQ0FBaUM7ZUFBakNBOztJQVBBQyw0QkFBNEI7ZUFBNUJBOztJQWVIQyxtQkFBbUI7ZUFBbkJBOzs7QUFqQmIsTUFBTUMsK0JBQStCO0FBRTlCLFNBQVNGLDZCQUE2QkcsTUFBYyxFQUFFQyxJQUFZO0lBQ3ZFLElBQUlGLDZCQUE2QkcsSUFBSSxDQUFDRCxPQUFPO1FBQzNDLE9BQVEsTUFBSUQsU0FBTyxNQUFHQyxPQUFLO0lBQzdCO0lBQ0EsT0FBUSxNQUFJRCxTQUFPLE1BQUdHLEtBQUtDLFNBQVMsQ0FBQ0gsUUFBTTtBQUM3QztBQUVPLFNBQVNMLGtDQUNkSSxNQUFjLEVBQ2RDLElBQVk7SUFFWixNQUFNSSxrQkFBa0JGLEtBQUtDLFNBQVMsQ0FBQ0g7SUFDdkMsT0FBUSxrQkFBZ0JELFNBQU8sT0FBSUssa0JBQWdCLFVBQVNBLGtCQUFnQixTQUFNTCxTQUFPO0FBQzNGO0FBRU8sTUFBTUYsc0JBQXNCLElBQUlRLElBQUk7SUFDekM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUEsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZDtJQUNBO0lBQ0E7SUFFQSwwQkFBMEI7SUFDMUIsY0FBYztJQUNkO0lBRUEsc0JBQXNCO0lBQ3RCO0lBQ0E7SUFFQSwyQkFBMkI7SUFDM0IsY0FBYztJQUNkO0lBQ0E7SUFDQTtDQUNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggd2lsbCBoYXZlIGZhc3QgbmVnYXRpdmVzIG1lYW5pbmcgdmFsaWQgaWRlbnRpZmllcnMgbWF5IG5vdCBwYXNzXG4vLyB0aGlzIHRlc3QuIEhvd2V2ZXIgdGhpcyBpcyBvbmx5IHVzZWQgZHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uIHRvIHByb3ZpZGUgaGludHNcbi8vIGFib3V0IHdoeSBhIHBhZ2UgYmFpbGVkIG91dCBvZiBzb21lIG9yIGFsbCBwcmVyZW5kZXJpbmcgYW5kIHdlIGNhbiB1c2UgYnJhY2tldCBub3RhdGlvblxuLy8gZm9yIGV4YW1wbGUgd2hpbGUgYOCyoF/gsqBgIGlzIGEgdmFsaWQgaWRlbnRpZmllciBpdCdzIG9rIHRvIHByaW50IGBzZWFyY2hQYXJhbXNbJ+CyoF/gsqAnXWBcbi8vIGV2ZW4gaWYgdGhpcyB3b3VsZCBoYXZlIGJlZW4gZmluZSB0b28gYHNlYXJjaFBhcmFtcy7gsqBf4LKgYFxuY29uc3QgaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciA9IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC9cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3ModGFyZ2V0OiBzdHJpbmcsIHByb3A6IHN0cmluZykge1xuICBpZiAoaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllci50ZXN0KHByb3ApKSB7XG4gICAgcmV0dXJuIGBcXGAke3RhcmdldH0uJHtwcm9wfVxcYGBcbiAgfVxuICByZXR1cm4gYFxcYCR7dGFyZ2V0fVske0pTT04uc3RyaW5naWZ5KHByb3ApfV1cXGBgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkoXG4gIHRhcmdldDogc3RyaW5nLFxuICBwcm9wOiBzdHJpbmdcbikge1xuICBjb25zdCBzdHJpbmdpZmllZFByb3AgPSBKU09OLnN0cmluZ2lmeShwcm9wKVxuICByZXR1cm4gYFxcYFJlZmxlY3QuaGFzKCR7dGFyZ2V0fSwgJHtzdHJpbmdpZmllZFByb3B9KVxcYCwgXFxgJHtzdHJpbmdpZmllZFByb3B9IGluICR7dGFyZ2V0fVxcYCwgb3Igc2ltaWxhcmBcbn1cblxuZXhwb3J0IGNvbnN0IHdlbGxLbm93blByb3BlcnRpZXMgPSBuZXcgU2V0KFtcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZicsXG4gICd0b0xvY2FsZVN0cmluZycsXG5cbiAgLy8gUHJvbWlzZSBwcm90b3R5cGVcbiAgLy8gZmFsbHRocm91Z2hcbiAgJ3RoZW4nLFxuICAnY2F0Y2gnLFxuICAnZmluYWxseScsXG5cbiAgLy8gUmVhY3QgUHJvbWlzZSBleHRlbnNpb25cbiAgLy8gZmFsbHRocm91Z2hcbiAgJ3N0YXR1cycsXG5cbiAgLy8gUmVhY3QgaW50cm9zcGVjdGlvblxuICAnZGlzcGxheU5hbWUnLFxuICAnX2RlYnVnSW5mbycsXG5cbiAgLy8gQ29tbW9uIHRlc3RlZCBwcm9wZXJ0aWVzXG4gIC8vIGZhbGx0aHJvdWdoXG4gICd0b0pTT04nLFxuICAnJCR0eXBlb2YnLFxuICAnX19lc01vZHVsZScsXG5dKVxuIl0sIm5hbWVzIjpbImRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSIsImRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MiLCJ3ZWxsS25vd25Qcm9wZXJ0aWVzIiwiaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciIsInRhcmdldCIsInByb3AiLCJ0ZXN0IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0cmluZ2lmaWVkUHJvcCIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n} //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NENBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFdBQVcsQ0FBQ0MsS0FBZTtBQUMvQixJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxXQUFXLElBQUlDO0lBQ3JCTixXQUFXLENBQUNPO1FBQ1YsSUFBSSxDQUFDRixTQUFTRyxHQUFHLENBQUNELE1BQU07WUFDdEJFLFFBQVFDLElBQUksQ0FBQ0g7UUFDZjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCB3YXJuT25jZSA9IChfOiBzdHJpbmcpID0+IHt9XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YXJuaW5ncyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIHdhcm5PbmNlID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF3YXJuaW5ncy5oYXMobXNnKSkge1xuICAgICAgY29uc29sZS53YXJuKG1zZylcbiAgICB9XG4gICAgd2FybmluZ3MuYWRkKG1zZylcbiAgfVxufVxuXG5leHBvcnQgeyB3YXJuT25jZSB9XG4iXSwibmFtZXMiOlsid2Fybk9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2FybmluZ3MiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwid2FybiIsImFkZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\n"); /***/ }), /***/ "./node_modules/next/dist/build/templates/helpers.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/build/templates/helpers.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param module the module to hoist the name from\n * @param name the name to hoist\n * @returns the value on the module (or promised module)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hoist\", ({\n enumerable: true,\n get: function() {\n return hoist;\n }\n}));\nfunction hoist(module, name) {\n // If the name is available in the module, return it.\n if (name in module) {\n return module[name];\n }\n // If a property called `then` exists, assume it's a promise and\n // return a promise that resolves to the name.\n if ('then' in module && typeof module.then === 'function') {\n return module.then((mod)=>hoist(mod, name));\n }\n // If we're trying to hoise the default export, and the module is a function,\n // return the module itself.\n if (typeof module === 'function' && name === 'default') {\n return module;\n }\n // Otherwise, return undefined.\n return undefined;\n}\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG9pc3RzIGEgbmFtZSBmcm9tIGEgbW9kdWxlIG9yIHByb21pc2VkIG1vZHVsZS5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlIHRoZSBtb2R1bGUgdG8gaG9pc3QgdGhlIG5hbWUgZnJvbVxuICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgdG8gaG9pc3RcbiAqIEByZXR1cm5zIHRoZSB2YWx1ZSBvbiB0aGUgbW9kdWxlIChvciBwcm9taXNlZCBtb2R1bGUpXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJob2lzdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaG9pc3Q7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBob2lzdChtb2R1bGUsIG5hbWUpIHtcbiAgICAvLyBJZiB0aGUgbmFtZSBpcyBhdmFpbGFibGUgaW4gdGhlIG1vZHVsZSwgcmV0dXJuIGl0LlxuICAgIGlmIChuYW1lIGluIG1vZHVsZSkge1xuICAgICAgICByZXR1cm4gbW9kdWxlW25hbWVdO1xuICAgIH1cbiAgICAvLyBJZiBhIHByb3BlcnR5IGNhbGxlZCBgdGhlbmAgZXhpc3RzLCBhc3N1bWUgaXQncyBhIHByb21pc2UgYW5kXG4gICAgLy8gcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBuYW1lLlxuICAgIGlmICgndGhlbicgaW4gbW9kdWxlICYmIHR5cGVvZiBtb2R1bGUudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbW9kdWxlLnRoZW4oKG1vZCk9PmhvaXN0KG1vZCwgbmFtZSkpO1xuICAgIH1cbiAgICAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gaG9pc2UgdGhlIGRlZmF1bHQgZXhwb3J0LCBhbmQgdGhlIG1vZHVsZSBpcyBhIGZ1bmN0aW9uLFxuICAgIC8vIHJldHVybiB0aGUgbW9kdWxlIGl0c2VsZi5cbiAgICBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ2Z1bmN0aW9uJyAmJiBuYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdW5kZWZpbmVkLlxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/templates/helpers.js\n"); /***/ }), /***/ "./node_modules/next/dist/client/components/redirect-status-code.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/client/components/redirect-status-code.js ***! \**************************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/redirect-status-code.js\n"); /***/ }), /***/ "./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js ***! \************************************************************************/ /***/ ((module) => { "use strict"; eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\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 __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixrQ0FBa0M7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qiw0RkFBNEY7QUFDekg7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELGtCQUFrQixhQUFhOztBQUVuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE9BQU87QUFDNUMsbUVBQW1FLGdGQUFnRjtBQUNuSixnRUFBZ0UsU0FBUztBQUN6RSwyQ0FBMkMsU0FBUztBQUNwRDtBQUNBO0FBQ0EsaURBQWlELFdBQVc7QUFDNUQ7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBLHlCQUF5QixPQUFPLEdBQUcscURBQXFEO0FBQ3hGLCtDQUErQyxjQUFjLEVBQUUsY0FBYyxHQUFHO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEJBQTRCO0FBQ2hELHFCQUFxQixnQkFBZ0I7QUFDckMsdUNBQXVDLHdCQUF3QjtBQUMvRDtBQUNBLHFCQUFxQixtQ0FBbUM7QUFDeEQsbUJBQW1CLGNBQWM7QUFDakMscUJBQXFCLG1DQUFtQztBQUN4RCx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsYUFBYTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixhQUFhO0FBQ2pDO0FBQ0E7QUFDQSw0RUFBNEU7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBFQUEwRTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGlEQUFpRDtBQUM5RTtBQUNBO0FBQ0Esb0RBQW9ELE9BQU8sR0FBRyw0QkFBNEIsV0FBVztBQUNyRztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw0RUFBNEU7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrRkFBa0Y7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sNEVBQTRFO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHdCQUF3QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0ZBQWtGO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtRUFBbUU7QUFDekY7QUFDQTtBQUNBLDhCQUE4QixpREFBaUQ7QUFDL0U7QUFDQTtBQUNBLG1FQUFtRTtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MscUJBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sQ0FNTCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7XG4gIGZvciAodmFyIG5hbWUgaW4gYWxsKVxuICAgIF9fZGVmUHJvcCh0YXJnZXQsIG5hbWUsIHsgZ2V0OiBhbGxbbmFtZV0sIGVudW1lcmFibGU6IHRydWUgfSk7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9Db21tb25KUyA9IChtb2QpID0+IF9fY29weVByb3BzKF9fZGVmUHJvcCh7fSwgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7XG5cbi8vIHNyYy9pbmRleC50c1xudmFyIHNyY19leHBvcnRzID0ge307XG5fX2V4cG9ydChzcmNfZXhwb3J0cywge1xuICBSZXF1ZXN0Q29va2llczogKCkgPT4gUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llczogKCkgPT4gUmVzcG9uc2VDb29raWVzLFxuICBwYXJzZUNvb2tpZTogKCkgPT4gcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llOiAoKSA9PiBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llOiAoKSA9PiBzdHJpbmdpZnlDb29raWVcbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBfX3RvQ29tbW9uSlMoc3JjX2V4cG9ydHMpO1xuXG4vLyBzcmMvc2VyaWFsaXplLnRzXG5mdW5jdGlvbiBzdHJpbmdpZnlDb29raWUoYykge1xuICB2YXIgX2E7XG4gIGNvbnN0IGF0dHJzID0gW1xuICAgIFwicGF0aFwiIGluIGMgJiYgYy5wYXRoICYmIGBQYXRoPSR7Yy5wYXRofWAsXG4gICAgXCJleHBpcmVzXCIgaW4gYyAmJiAoYy5leHBpcmVzIHx8IGMuZXhwaXJlcyA9PT0gMCkgJiYgYEV4cGlyZXM9JHsodHlwZW9mIGMuZXhwaXJlcyA9PT0gXCJudW1iZXJcIiA/IG5ldyBEYXRlKGMuZXhwaXJlcykgOiBjLmV4cGlyZXMpLnRvVVRDU3RyaW5nKCl9YCxcbiAgICBcIm1heEFnZVwiIGluIGMgJiYgdHlwZW9mIGMubWF4QWdlID09PSBcIm51bWJlclwiICYmIGBNYXgtQWdlPSR7Yy5tYXhBZ2V9YCxcbiAgICBcImRvbWFpblwiIGluIGMgJiYgYy5kb21haW4gJiYgYERvbWFpbj0ke2MuZG9tYWlufWAsXG4gICAgXCJzZWN1cmVcIiBpbiBjICYmIGMuc2VjdXJlICYmIFwiU2VjdXJlXCIsXG4gICAgXCJodHRwT25seVwiIGluIGMgJiYgYy5odHRwT25seSAmJiBcIkh0dHBPbmx5XCIsXG4gICAgXCJzYW1lU2l0ZVwiIGluIGMgJiYgYy5zYW1lU2l0ZSAmJiBgU2FtZVNpdGU9JHtjLnNhbWVTaXRlfWAsXG4gICAgXCJwYXJ0aXRpb25lZFwiIGluIGMgJiYgYy5wYXJ0aXRpb25lZCAmJiBcIlBhcnRpdGlvbmVkXCIsXG4gICAgXCJwcmlvcml0eVwiIGluIGMgJiYgYy5wcmlvcml0eSAmJiBgUHJpb3JpdHk9JHtjLnByaW9yaXR5fWBcbiAgXS5maWx0ZXIoQm9vbGVhbik7XG4gIGNvbnN0IHN0cmluZ2lmaWVkID0gYCR7Yy5uYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudCgoX2EgPSBjLnZhbHVlKSAhPSBudWxsID8gX2EgOiBcIlwiKX1gO1xuICByZXR1cm4gYXR0cnMubGVuZ3RoID09PSAwID8gc3RyaW5naWZpZWQgOiBgJHtzdHJpbmdpZmllZH07ICR7YXR0cnMuam9pbihcIjsgXCIpfWA7XG59XG5mdW5jdGlvbiBwYXJzZUNvb2tpZShjb29raWUpIHtcbiAgY29uc3QgbWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgZm9yIChjb25zdCBwYWlyIG9mIGNvb2tpZS5zcGxpdCgvOyAqLykpIHtcbiAgICBpZiAoIXBhaXIpXG4gICAgICBjb250aW51ZTtcbiAgICBjb25zdCBzcGxpdEF0ID0gcGFpci5pbmRleE9mKFwiPVwiKTtcbiAgICBpZiAoc3BsaXRBdCA9PT0gLTEpIHtcbiAgICAgIG1hcC5zZXQocGFpciwgXCJ0cnVlXCIpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IFtwYWlyLnNsaWNlKDAsIHNwbGl0QXQpLCBwYWlyLnNsaWNlKHNwbGl0QXQgKyAxKV07XG4gICAgdHJ5IHtcbiAgICAgIG1hcC5zZXQoa2V5LCBkZWNvZGVVUklDb21wb25lbnQodmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogXCJ0cnVlXCIpKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1hcDtcbn1cbmZ1bmN0aW9uIHBhcnNlU2V0Q29va2llKHNldENvb2tpZSkge1xuICBpZiAoIXNldENvb2tpZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgY29uc3QgW1tuYW1lLCB2YWx1ZV0sIC4uLmF0dHJpYnV0ZXNdID0gcGFyc2VDb29raWUoc2V0Q29va2llKTtcbiAgY29uc3Qge1xuICAgIGRvbWFpbixcbiAgICBleHBpcmVzLFxuICAgIGh0dHBvbmx5LFxuICAgIG1heGFnZSxcbiAgICBwYXRoLFxuICAgIHNhbWVzaXRlLFxuICAgIHNlY3VyZSxcbiAgICBwYXJ0aXRpb25lZCxcbiAgICBwcmlvcml0eVxuICB9ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIGF0dHJpYnV0ZXMubWFwKChba2V5LCB2YWx1ZTJdKSA9PiBbXG4gICAgICBrZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8tL2csIFwiXCIpLFxuICAgICAgdmFsdWUyXG4gICAgXSlcbiAgKTtcbiAgY29uc3QgY29va2llID0ge1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSksXG4gICAgZG9tYWluLFxuICAgIC4uLmV4cGlyZXMgJiYgeyBleHBpcmVzOiBuZXcgRGF0ZShleHBpcmVzKSB9LFxuICAgIC4uLmh0dHBvbmx5ICYmIHsgaHR0cE9ubHk6IHRydWUgfSxcbiAgICAuLi50eXBlb2YgbWF4YWdlID09PSBcInN0cmluZ1wiICYmIHsgbWF4QWdlOiBOdW1iZXIobWF4YWdlKSB9LFxuICAgIHBhdGgsXG4gICAgLi4uc2FtZXNpdGUgJiYgeyBzYW1lU2l0ZTogcGFyc2VTYW1lU2l0ZShzYW1lc2l0ZSkgfSxcbiAgICAuLi5zZWN1cmUgJiYgeyBzZWN1cmU6IHRydWUgfSxcbiAgICAuLi5wcmlvcml0eSAmJiB7IHByaW9yaXR5OiBwYXJzZVByaW9yaXR5KHByaW9yaXR5KSB9LFxuICAgIC4uLnBhcnRpdGlvbmVkICYmIHsgcGFydGl0aW9uZWQ6IHRydWUgfVxuICB9O1xuICByZXR1cm4gY29tcGFjdChjb29raWUpO1xufVxuZnVuY3Rpb24gY29tcGFjdCh0KSB7XG4gIGNvbnN0IG5ld1QgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdCkge1xuICAgIGlmICh0W2tleV0pIHtcbiAgICAgIG5ld1Rba2V5XSA9IHRba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1Q7XG59XG52YXIgU0FNRV9TSVRFID0gW1wic3RyaWN0XCIsIFwibGF4XCIsIFwibm9uZVwiXTtcbmZ1bmN0aW9uIHBhcnNlU2FtZVNpdGUoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gU0FNRV9TSVRFLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG52YXIgUFJJT1JJVFkgPSBbXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCJdO1xuZnVuY3Rpb24gcGFyc2VQcmlvcml0eShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBQUklPUklUWS5pbmNsdWRlcyhzdHJpbmcpID8gc3RyaW5nIDogdm9pZCAwO1xufVxuZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgaWYgKCFjb29raWVzU3RyaW5nKVxuICAgIHJldHVybiBbXTtcbiAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gIHZhciBwb3MgPSAwO1xuICB2YXIgc3RhcnQ7XG4gIHZhciBjaDtcbiAgdmFyIGxhc3RDb21tYTtcbiAgdmFyIG5leHRTdGFydDtcbiAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpIHtcbiAgICAgIHBvcyArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gIH1cbiAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgIHJldHVybiBjaCAhPT0gXCI9XCIgJiYgY2ggIT09IFwiO1wiICYmIGNoICE9PSBcIixcIjtcbiAgfVxuICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICBzdGFydCA9IHBvcztcbiAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICB3aGlsZSAoc2tpcFdoaXRlc3BhY2UoKSkge1xuICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgaWYgKGNoID09PSBcIixcIikge1xuICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgIHBvcyArPSAxO1xuICAgICAgICBza2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBub3RTcGVjaWFsQ2hhcigpKSB7XG4gICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09IFwiPVwiKSB7XG4gICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvb2tpZXNTdHJpbmdzO1xufVxuXG4vLyBzcmMvcmVxdWVzdC1jb29raWVzLnRzXG52YXIgUmVxdWVzdENvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlcXVlc3RIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzO1xuICAgIGNvbnN0IGhlYWRlciA9IHJlcXVlc3RIZWFkZXJzLmdldChcImNvb2tpZVwiKTtcbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvb2tpZShoZWFkZXIpO1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIHBhcnNlZCkge1xuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIGNvb2tpZXMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50XG4gICAqL1xuICBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLnNpemU7XG4gIH1cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KG5hbWUpO1xuICB9XG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogKF9hID0gYXJnc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm5hbWU7XG4gICAgcmV0dXJuIGFsbC5maWx0ZXIoKFtuXSkgPT4gbiA9PT0gbmFtZSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICBzZXQoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWVdIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCB7IG5hbWUsIHZhbHVlIH0pO1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KFxuICAgICAgXCJjb29raWVcIixcbiAgICAgIEFycmF5LmZyb20obWFwKS5tYXAoKFtfLCB2YWx1ZTJdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUyKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjb29raWVzIG1hdGNoaW5nIHRoZSBwYXNzZWQgbmFtZSBvciBuYW1lcyBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGRlbGV0ZShuYW1lcykge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBjb25zdCByZXN1bHQgPSAhQXJyYXkuaXNBcnJheShuYW1lcykgPyBtYXAuZGVsZXRlKG5hbWVzKSA6IG5hbWVzLm1hcCgobmFtZSkgPT4gbWFwLmRlbGV0ZShuYW1lKSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlXSkgPT4gc3RyaW5naWZ5Q29va2llKHZhbHVlKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIHRoZSBjb29raWVzIGluIHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5kZWxldGUoQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQua2V5cygpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgY29va2llcyBpbiB0aGUgcmVxdWVzdCBhcyBhIHN0cmluZyBmb3IgbG9nZ2luZ1xuICAgKi9cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVxdWVzdENvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKCh2KSA9PiBgJHt2Lm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHYudmFsdWUpfWApLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcblxuLy8gc3JjL3Jlc3BvbnNlLWNvb2tpZXMudHNcbnZhciBSZXNwb25zZUNvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlSGVhZGVycykge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLl9wYXJzZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIHRoaXMuX2hlYWRlcnMgPSByZXNwb25zZUhlYWRlcnM7XG4gICAgY29uc3Qgc2V0Q29va2llID0gKF9jID0gKF9iID0gKF9hID0gcmVzcG9uc2VIZWFkZXJzLmdldFNldENvb2tpZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzcG9uc2VIZWFkZXJzKSkgIT0gbnVsbCA/IF9iIDogcmVzcG9uc2VIZWFkZXJzLmdldChcInNldC1jb29raWVcIikpICE9IG51bGwgPyBfYyA6IFtdO1xuICAgIGNvbnN0IGNvb2tpZVN0cmluZ3MgPSBBcnJheS5pc0FycmF5KHNldENvb2tpZSkgPyBzZXRDb29raWUgOiBzcGxpdENvb2tpZXNTdHJpbmcoc2V0Q29va2llKTtcbiAgICBmb3IgKGNvbnN0IGNvb2tpZVN0cmluZyBvZiBjb29raWVTdHJpbmdzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVNldENvb2tpZShjb29raWVTdHJpbmcpO1xuICAgICAgaWYgKHBhcnNlZClcbiAgICAgICAgdGhpcy5fcGFyc2VkLnNldChwYXJzZWQubmFtZSwgcGFyc2VkKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0IENvb2tpZVN0b3JlI2dldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldCguLi5hcmdzKSB7XG4gICAgY29uc3Qga2V5ID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KGtleSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0QWxsIENvb2tpZVN0b3JlI2dldEFsbH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkLnZhbHVlcygpKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoYykgPT4gYy5uYW1lID09PSBrZXkpO1xuICB9XG4gIGhhcyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5oYXMobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtc2V0IENvb2tpZVN0b3JlI3NldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlLCBjb29raWVdID0gYXJncy5sZW5ndGggPT09IDEgPyBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnZhbHVlLCBhcmdzWzBdXSA6IGFyZ3M7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIG1hcC5zZXQobmFtZSwgbm9ybWFsaXplQ29va2llKHsgbmFtZSwgdmFsdWUsIC4uLmNvb2tpZSB9KSk7XG4gICAgcmVwbGFjZShtYXAsIHRoaXMuX2hlYWRlcnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWRlbGV0ZSBDb29raWVTdG9yZSNkZWxldGV9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBkZWxldGUoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCBvcHRpb25zXSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gW2FyZ3NbMF1dIDogW2FyZ3NbMF0ubmFtZSwgYXJnc1swXV07XG4gICAgcmV0dXJuIHRoaXMuc2V0KHsgLi4ub3B0aW9ucywgbmFtZSwgdmFsdWU6IFwiXCIsIGV4cGlyZXM6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgwKSB9KTtcbiAgfVxuICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgcmV0dXJuIGBSZXNwb25zZUNvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKHN0cmluZ2lmeUNvb2tpZSkuam9pbihcIjsgXCIpO1xuICB9XG59O1xuZnVuY3Rpb24gcmVwbGFjZShiYWcsIGhlYWRlcnMpIHtcbiAgaGVhZGVycy5kZWxldGUoXCJzZXQtY29va2llXCIpO1xuICBmb3IgKGNvbnN0IFssIHZhbHVlXSBvZiBiYWcpIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc3RyaW5naWZ5Q29va2llKHZhbHVlKTtcbiAgICBoZWFkZXJzLmFwcGVuZChcInNldC1jb29raWVcIiwgc2VyaWFsaXplZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNvb2tpZShjb29raWUgPSB7IG5hbWU6IFwiXCIsIHZhbHVlOiBcIlwiIH0pIHtcbiAgaWYgKHR5cGVvZiBjb29raWUuZXhwaXJlcyA9PT0gXCJudW1iZXJcIikge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoY29va2llLmV4cGlyZXMpO1xuICB9XG4gIGlmIChjb29raWUubWF4QWdlKSB7XG4gICAgY29va2llLmV4cGlyZXMgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgY29va2llLm1heEFnZSAqIDFlMyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5wYXRoID09PSBudWxsIHx8IGNvb2tpZS5wYXRoID09PSB2b2lkIDApIHtcbiAgICBjb29raWUucGF0aCA9IFwiL1wiO1xuICB9XG4gIHJldHVybiBjb29raWU7XG59XG4vLyBBbm5vdGF0ZSB0aGUgQ29tbW9uSlMgZXhwb3J0IG5hbWVzIGZvciBFU00gaW1wb3J0IGluIG5vZGU6XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llLFxuICBzdHJpbmdpZnlDb29raWVcbn0pO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n"); /***/ }), /***/ "./node_modules/next/dist/compiled/@opentelemetry/api/index.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/compiled/@opentelemetry/api/index.js ***! \*********************************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"<failed to generate stacktrace>\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e<r.length;e++){this[r[e].n]=_consoleFunc(r[e].c)}}}t.DiagConsoleLogger=DiagConsoleLogger},912:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(e<n.DiagLogLevel.NONE){e=n.DiagLogLevel.NONE}else if(e>n.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQ0FBaUMsaUJBQWlCLGVBQWUscUJBQXFCLG9CQUFvQiw4QkFBOEIsc0JBQXNCLDJCQUEyQixxREFBcUQsU0FBUywwQ0FBMEMsaUJBQWlCLGtEQUFrRCxVQUFVLDJDQUEyQyxxQkFBcUIsNEJBQTRCLFVBQVUsb0NBQW9DLGdEQUFnRCx3QkFBd0IsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLGlCQUFpQixjQUFjLGVBQWUsZUFBZSxlQUFlLGVBQWUsY0FBYyxjQUFjLHNCQUFzQixzQkFBc0IsZ0NBQWdDLGFBQWEsbUJBQW1CLGFBQWEsc0JBQXNCLDZCQUE2QixJQUFJLFVBQVUsVUFBVSx3SkFBd0osb0RBQW9ELGFBQWEsd0JBQXdCLEdBQUcsWUFBWSxnQ0FBZ0Msa0dBQWtHLGtDQUFrQyxxRkFBcUYsa0RBQWtELEVBQUUsR0FBRyxvRUFBb0UsRUFBRSxHQUFHLDZDQUE2QyxzQkFBc0IsZUFBZSw2QkFBNkIsd0RBQXdELCtCQUErQiwyQkFBMkIseUJBQXlCLHlCQUF5QiwyQkFBMkIsa0JBQWtCLG9CQUFvQiwyQkFBMkIsdUJBQXVCLGtCQUFrQixlQUFlLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQkFBaUIsZUFBZSxxQkFBcUIsb0JBQW9CLDhCQUE4QixzQkFBc0IsMEJBQTBCLHFEQUFxRCxtQkFBbUIsZ0RBQWdELGdCQUFnQiwrQ0FBK0MsVUFBVSxnREFBZ0Qsd0JBQXdCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSx3QkFBd0IsZUFBZSxlQUFlLGVBQWUsZUFBZSxlQUFlLGVBQWUsc0JBQXNCLG9DQUFvQyxxQkFBcUIsY0FBYyxtQ0FBbUMsNkJBQTZCLHlDQUF5Qyw2QkFB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Z0MsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsZ0NBQWdDLCtCQUErQixlQUFlLEVBQUUsaUNBQWlDLG1DQUFtQywrQkFBK0Isa0JBQWtCLEVBQUUsaUNBQWlDLHVDQUF1QywrQkFBK0Isc0JBQXNCLEVBQUUsaUNBQWlDLGlDQUFpQywrQkFBK0IsZ0JBQWdCLEVBQUUsY0FBYyx5RkFBeUYsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGkvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezQ5MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkNvbnRleHRBUEk9dm9pZCAwO2NvbnN0IG49cigyMjMpO2NvbnN0IGE9cigxNzIpO2NvbnN0IG89cig5MzApO2NvbnN0IGk9XCJjb250ZXh0XCI7Y29uc3QgYz1uZXcgbi5Ob29wQ29udGV4dE1hbmFnZXI7Y2xhc3MgQ29udGV4dEFQSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBDb250ZXh0QVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxDb250ZXh0TWFuYWdlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWFjdGl2ZSgpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmFjdGl2ZSgpfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkud2l0aChlLHQsciwuLi5uKX1iaW5kKGUsdCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYmluZChlLHQpfV9nZXRDb250ZXh0TWFuYWdlcigpe3JldHVybigwLGEuZ2V0R2xvYmFsKShpKXx8Y31kaXNhYmxlKCl7dGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5kaXNhYmxlKCk7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5Db250ZXh0QVBJPUNvbnRleHRBUEl9LDkzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdBUEk9dm9pZCAwO2NvbnN0IG49cig1Nik7Y29uc3QgYT1yKDkxMik7Y29uc3Qgbz1yKDk1Nyk7Y29uc3QgaT1yKDE3Mik7Y29uc3QgYz1cImRpYWdcIjtjbGFzcyBEaWFnQVBJe2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2xvZ1Byb3h5KGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCByPSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIXIpcmV0dXJuO3JldHVybiByW2VdKC4uLnQpfX1jb25zdCBlPXRoaXM7Y29uc3Qgc2V0TG9nZ2VyPSh0LHI9e2xvZ0xldmVsOm8uRGlhZ0xvZ0xldmVsLklORk99KT0+e3ZhciBuLGMscztpZih0PT09ZSl7Y29uc3QgdD1uZXcgRXJyb3IoXCJDYW5ub3QgdXNlIGRpYWcgYXMgdGhlIGxvZ2dlciBmb3IgaXRzZWxmLiBQbGVhc2UgdXNlIGEgRGlhZ0xvZ2dlciBpbXBsZW1lbnRhdGlvbiBsaWtlIENvbnNvbGVEaWFnTG9nZ2VyIG9yIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uXCIpO2UuZXJyb3IoKG49dC5zdGFjaykhPT1udWxsJiZuIT09dm9pZCAwP246dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIHI9PT1cIm51bWJlclwiKXtyPXtsb2dMZXZlbDpyfX1jb25zdCB1PSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7Y29uc3QgbD0oMCxhLmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcikoKGM9ci5sb2dMZXZlbCkhPT1udWxsJiZjIT09dm9pZCAwP2M6by5EaWFnTG9nTGV2ZWwuSU5GTyx0KTtpZih1JiYhci5zdXBwcmVzc092ZXJyaWRlTWVzc2FnZSl7Y29uc3QgZT0ocz0obmV3IEVycm9yKS5zdGFjaykhPT1udWxsJiZzIT09dm9pZCAwP3M6XCI8ZmFpbGVkIHRvIGdlbmVyYXRlIHN0YWNrdHJhY2U+XCI7dS53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIGJlIG92ZXJ3cml0dGVuIGZyb20gJHtlfWApO2wud2FybihgQ3VycmVudCBsb2dnZXIgd2lsbCBvdmVyd3JpdGUgb25lIGFscmVhZHkgcmVnaXN0ZXJlZCBmcm9tICR7ZX1gKX1yZXR1cm4oMCxpLnJlZ2lzdGVyR2xvYmFsKShcImRpYWdcIixsLGUsdHJ1ZSl9O2Uuc2V0TG9nZ2VyPXNldExvZ2dlcjtlLmRpc2FibGU9KCk9PnsoMCxpLnVucmVnaXN0ZXJHbG9iYWwpKGMsZSl9O2UuY3JlYXRlQ29tcG9uZW50TG9nZ2VyPWU9Pm5ldyBuLkRpYWdDb21wb25lbnRMb2dnZXIoZSk7ZS52ZXJib3NlPV9sb2dQcm94eShcInZlcmJvc2VcIik7ZS5kZWJ1Zz1fbG9nUHJveHkoXCJkZWJ1Z1wiKTtlLmluZm89X2xvZ1Byb3h5KFwiaW5mb1wiKTtlLndhcm49X2xvZ1Byb3h5KFwid2FyblwiKTtlLmVycm9yPV9sb2dQcm94eShcImVycm9yXCIpfXN0YXRpYyBpbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IERpYWdBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfX10LkRpYWdBUEk9RGlhZ0FQSX0sNjUzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTWV0cmljc0FQST12b2lkIDA7Y29uc3Qgbj1yKDY2MCk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cIm1ldHJpY3NcIjtjbGFzcyBNZXRyaWNzQVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IE1ldHJpY3NBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbE1ldGVyUHJvdmlkZXIoZSl7cmV0dXJuKDAsYS5yZWdpc3Rlckdsb2JhbCkoaSxlLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX1nZXRNZXRlclByb3ZpZGVyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxuLk5PT1BfTUVURVJfUFJPVklERVJ9Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLHQscil9ZGlzYWJsZSgpeygwLGEudW5yZWdpc3Rlckdsb2JhbCkoaSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9fXQuTWV0cmljc0FQST1NZXRyaWNzQVBJfSwxODE6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm9wYWdhdGlvbkFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg3NCk7Y29uc3Qgbz1yKDE5NCk7Y29uc3QgaT1yKDI3Nyk7Y29uc3QgYz1yKDM2OSk7Y29uc3Qgcz1yKDkzMCk7Y29uc3QgdT1cInByb3BhZ2F0aW9uXCI7Y29uc3QgbD1uZXcgYS5Ob29wVGV4dE1hcFByb3BhZ2F0b3I7Y2xhc3MgUHJvcGFnYXRpb25BUEl7Y29uc3RydWN0b3IoKXt0aGlzLmNyZWF0ZUJhZ2dhZ2U9Yy5jcmVhdGVCYWdnYWdlO3RoaXMuZ2V0QmFnZ2FnZT1pLmdldEJhZ2dhZ2U7dGhpcy5nZXRBY3RpdmVCYWdnYWdlPWkuZ2V0QWN0aXZlQmFnZ2FnZTt0aGlzLnNldEJhZ2dhZ2U9aS5zZXRCYWdnYWdlO3RoaXMuZGVsZXRlQmFnZ2FnZT1pLmRlbGV0ZUJhZ2dhZ2V9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgUHJvcGFnYXRpb25BUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFByb3BhZ2F0b3IoZSl7cmV0dXJuKDAsbi5yZWdpc3Rlckdsb2JhbCkodSxlLHMuRGlhZ0FQSS5pbnN0YW5jZSgpKX1pbmplY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcFNldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5pbmplY3QoZSx0LHIpfWV4dHJhY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcEdldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5leHRyYWN0KGUsdCxyKX1maWVsZHMoKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmZpZWxkcygpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHUscy5EaWFnQVBJLmluc3RhbmNlKCkpfV9nZXRHbG9iYWxQcm9wYWdhdG9yKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHUpfHxsfX10LlByb3BhZ2F0aW9uQVBJPVByb3BhZ2F0aW9uQVBJfSw5OTc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg0Nik7Y29uc3Qgbz1yKDEzOSk7Y29uc3QgaT1yKDYwNyk7Y29uc3QgYz1yKDkzMCk7Y29uc3Qgcz1cInRyYWNlXCI7Y2xhc3MgVHJhY2VBUEl7Y29uc3RydWN0b3IoKXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBhLlByb3h5VHJhY2VyUHJvdmlkZXI7dGhpcy53cmFwU3BhbkNvbnRleHQ9by53cmFwU3BhbkNvbnRleHQ7dGhpcy5pc1NwYW5Db250ZXh0VmFsaWQ9by5pc1NwYW5Db250ZXh0VmFsaWQ7dGhpcy5kZWxldGVTcGFuPWkuZGVsZXRlU3Bhbjt0aGlzLmdldFNwYW49aS5nZXRTcGFuO3RoaXMuZ2V0QWN0aXZlU3Bhbj1pLmdldEFjdGl2ZVNwYW47dGhpcy5nZXRTcGFuQ29udGV4dD1pLmdldFNwYW5Db250ZXh0O3RoaXMuc2V0U3Bhbj1pLnNldFNwYW47dGhpcy5zZXRTcGFuQ29udGV4dD1pLnNldFNwYW5Db250ZXh0fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IFRyYWNlQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxUcmFjZXJQcm92aWRlcihlKXtjb25zdCB0PSgwLG4ucmVnaXN0ZXJHbG9iYWwpKHMsdGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcixjLkRpYWdBUEkuaW5zdGFuY2UoKSk7aWYodCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlci5zZXREZWxlZ2F0ZShlKX1yZXR1cm4gdH1nZXRUcmFjZXJQcm92aWRlcigpe3JldHVybigwLG4uZ2V0R2xvYmFsKShzKXx8dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcn1nZXRUcmFjZXIoZSx0KXtyZXR1cm4gdGhpcy5nZXRUcmFjZXJQcm92aWRlcigpLmdldFRyYWNlcihlLHQpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHMsYy5EaWFnQVBJLmluc3RhbmNlKCkpO3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcn19dC5UcmFjZUFQST1UcmFjZUFQSX0sMjc3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGVsZXRlQmFnZ2FnZT10LnNldEJhZ2dhZ2U9dC5nZXRBY3RpdmVCYWdnYWdlPXQuZ2V0QmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDc4MCk7Y29uc3Qgbz0oMCxhLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBCYWdnYWdlIEtleVwiKTtmdW5jdGlvbiBnZXRCYWdnYWdlKGUpe3JldHVybiBlLmdldFZhbHVlKG8pfHx1bmRlZmluZWR9dC5nZXRCYWdnYWdlPWdldEJhZ2dhZ2U7ZnVuY3Rpb24gZ2V0QWN0aXZlQmFnZ2FnZSgpe3JldHVybiBnZXRCYWdnYWdlKG4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZUJhZ2dhZ2U9Z2V0QWN0aXZlQmFnZ2FnZTtmdW5jdGlvbiBzZXRCYWdnYWdlKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUobyx0KX10LnNldEJhZ2dhZ2U9c2V0QmFnZ2FnZTtmdW5jdGlvbiBkZWxldGVCYWdnYWdlKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKG8pfXQuZGVsZXRlQmFnZ2FnZT1kZWxldGVCYWdnYWdlfSw5OTM6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQmFnZ2FnZUltcGw9dm9pZCAwO2NsYXNzIEJhZ2dhZ2VJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2VudHJpZXM9ZT9uZXcgTWFwKGUpOm5ldyBNYXB9Z2V0RW50cnkoZSl7Y29uc3QgdD10aGlzLl9lbnRyaWVzLmdldChlKTtpZighdCl7cmV0dXJuIHVuZGVmaW5lZH1yZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0KX1nZXRBbGxFbnRyaWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fZW50cmllcy5lbnRyaWVzKCkpLm1hcCgoKFtlLHRdKT0+W2UsdF0pKX1zZXRFbnRyeShlLHQpe2NvbnN0IHI9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO3IuX2VudHJpZXMuc2V0KGUsdCk7cmV0dXJuIHJ9cmVtb3ZlRW50cnkoZSl7Y29uc3QgdD1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7dC5fZW50cmllcy5kZWxldGUoZSk7cmV0dXJuIHR9cmVtb3ZlRW50cmllcyguLi5lKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTtmb3IoY29uc3QgciBvZiBlKXt0Ll9lbnRyaWVzLmRlbGV0ZShyKX1yZXR1cm4gdH1jbGVhcigpe3JldHVybiBuZXcgQmFnZ2FnZUltcGx9fXQuQmFnZ2FnZUltcGw9QmFnZ2FnZUltcGx9LDgzMDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD12b2lkIDA7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD1TeW1ib2woXCJCYWdnYWdlRW50cnlNZXRhZGF0YVwiKX0sMzY5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXQuY3JlYXRlQmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7Y29uc3QgYT1yKDk5Myk7Y29uc3Qgbz1yKDgzMCk7Y29uc3QgaT1uLkRpYWdBUEkuaW5zdGFuY2UoKTtmdW5jdGlvbiBjcmVhdGVCYWdnYWdlKGU9e30pe3JldHVybiBuZXcgYS5CYWdnYWdlSW1wbChuZXcgTWFwKE9iamVjdC5lbnRyaWVzKGUpKSl9dC5jcmVhdGVCYWdnYWdlPWNyZWF0ZUJhZ2dhZ2U7ZnVuY3Rpb24gYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nKGUpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7aS5lcnJvcihgQ2Fubm90IGNyZWF0ZSBiYWdnYWdlIG1ldGFkYXRhIGZyb20gdW5rbm93biB0eXBlOiAke3R5cGVvZiBlfWApO2U9XCJcIn1yZXR1cm57X19UWVBFX186by5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbCx0b1N0cmluZygpe3JldHVybiBlfX19dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9YmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfSw2NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNvbnRleHQ9dm9pZCAwO2NvbnN0IG49cig0OTEpO3QuY29udGV4dD1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKX0sMjIzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcENvbnRleHRNYW5hZ2VyPXZvaWQgMDtjb25zdCBuPXIoNzgwKTtjbGFzcyBOb29wQ29udGV4dE1hbmFnZXJ7YWN0aXZlKCl7cmV0dXJuIG4uUk9PVF9DT05URVhUfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHQuY2FsbChyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdH1lbmFibGUoKXtyZXR1cm4gdGhpc31kaXNhYmxlKCl7cmV0dXJuIHRoaXN9fXQuTm9vcENvbnRleHRNYW5hZ2VyPU5vb3BDb250ZXh0TWFuYWdlcn0sNzgwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlJPT1RfQ09OVEVYVD10LmNyZWF0ZUNvbnRleHRLZXk9dm9pZCAwO2Z1bmN0aW9uIGNyZWF0ZUNvbnRleHRLZXkoZSl7cmV0dXJuIFN5bWJvbC5mb3IoZSl9dC5jcmVhdGVDb250ZXh0S2V5PWNyZWF0ZUNvbnRleHRLZXk7Y2xhc3MgQmFzZUNvbnRleHR7Y29uc3RydWN0b3IoZSl7Y29uc3QgdD10aGlzO3QuX2N1cnJlbnRDb250ZXh0PWU/bmV3IE1hcChlKTpuZXcgTWFwO3QuZ2V0VmFsdWU9ZT0+dC5fY3VycmVudENvbnRleHQuZ2V0KGUpO3Quc2V0VmFsdWU9KGUscik9Pntjb25zdCBuPW5ldyBCYXNlQ29udGV4dCh0Ll9jdXJyZW50Q29udGV4dCk7bi5fY3VycmVudENvbnRleHQuc2V0KGUscik7cmV0dXJuIG59O3QuZGVsZXRlVmFsdWU9ZT0+e2NvbnN0IHI9bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtyLl9jdXJyZW50Q29udGV4dC5kZWxldGUoZSk7cmV0dXJuIHJ9fX10LlJPT1RfQ09OVEVYVD1uZXcgQmFzZUNvbnRleHR9LDUwNjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRpYWc9dm9pZCAwO2NvbnN0IG49cig5MzApO3QuZGlhZz1uLkRpYWdBUEkuaW5zdGFuY2UoKX0sNTY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29tcG9uZW50TG9nZ2VyPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjbGFzcyBEaWFnQ29tcG9uZW50TG9nZ2Vye2NvbnN0cnVjdG9yKGUpe3RoaXMuX25hbWVzcGFjZT1lLm5hbWVzcGFjZXx8XCJEaWFnQ29tcG9uZW50TG9nZ2VyXCJ9ZGVidWcoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZGVidWdcIix0aGlzLl9uYW1lc3BhY2UsZSl9ZXJyb3IoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZXJyb3JcIix0aGlzLl9uYW1lc3BhY2UsZSl9aW5mbyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJpbmZvXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXdhcm4oLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwid2FyblwiLHRoaXMuX25hbWVzcGFjZSxlKX12ZXJib3NlKC4uLmUpe3JldHVybiBsb2dQcm94eShcInZlcmJvc2VcIix0aGlzLl9uYW1lc3BhY2UsZSl9fXQuRGlhZ0NvbXBvbmVudExvZ2dlcj1EaWFnQ29tcG9uZW50TG9nZ2VyO2Z1bmN0aW9uIGxvZ1Byb3h5KGUsdCxyKXtjb25zdCBhPSgwLG4uZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIWEpe3JldHVybn1yLnVuc2hpZnQodCk7cmV0dXJuIGFbZV0oLi4ucil9fSw5NzI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0NvbnNvbGVMb2dnZXI9dm9pZCAwO2NvbnN0IHI9W3tuOlwiZXJyb3JcIixjOlwiZXJyb3JcIn0se246XCJ3YXJuXCIsYzpcIndhcm5cIn0se246XCJpbmZvXCIsYzpcImluZm9cIn0se246XCJkZWJ1Z1wiLGM6XCJkZWJ1Z1wifSx7bjpcInZlcmJvc2VcIixjOlwidHJhY2VcIn1dO2NsYXNzIERpYWdDb25zb2xlTG9nZ2Vye2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2NvbnNvbGVGdW5jKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtpZihjb25zb2xlKXtsZXQgcj1jb25zb2xlW2VdO2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXtyPWNvbnNvbGUubG9nfWlmKHR5cGVvZiByPT09XCJmdW5jdGlvblwiKXtyZXR1cm4gci5hcHBseShjb25zb2xlLHQpfX19fWZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXt0aGlzW3JbZV0ubl09X2NvbnNvbGVGdW5jKHJbZV0uYyl9fX10LkRpYWdDb25zb2xlTG9nZ2VyPURpYWdDb25zb2xlTG9nZ2VyfSw5MTI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXI9dm9pZCAwO2NvbnN0IG49cig5NTcpO2Z1bmN0aW9uIGNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcihlLHQpe2lmKGU8bi5EaWFnTG9nTGV2ZWwuTk9ORSl7ZT1uLkRpYWdMb2dMZXZlbC5OT05FfWVsc2UgaWYoZT5uLkRpYWdMb2dMZXZlbC5BTEwpe2U9bi5EaWFnTG9nTGV2ZWwuQUxMfXQ9dHx8e307ZnVuY3Rpb24gX2ZpbHRlckZ1bmMocixuKXtjb25zdCBhPXRbcl07aWYodHlwZW9mIGE9PT1cImZ1bmN0aW9uXCImJmU+PW4pe3JldHVybiBhLmJpbmQodCl9cmV0dXJuIGZ1bmN0aW9uKCl7fX1yZXR1cm57ZXJyb3I6X2ZpbHRlckZ1bmMoXCJlcnJvclwiLG4uRGlhZ0xvZ0xldmVsLkVSUk9SKSx3YXJuOl9maWx0ZXJGdW5jKFwid2FyblwiLG4uRGlhZ0xvZ0xldmVsLldBUk4pLGluZm86X2ZpbHRlckZ1bmMoXCJpbmZvXCIsbi5EaWFnTG9nTGV2ZWwuSU5GTyksZGVidWc6X2ZpbHRlckZ1bmMoXCJkZWJ1Z1wiLG4uRGlhZ0xvZ0xldmVsLkRFQlVHKSx2ZXJib3NlOl9maWx0ZXJGdW5jKFwidmVyYm9zZVwiLG4uRGlhZ0xvZ0xldmVsLlZFUkJPU0UpfX10LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj1jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXJ9LDk1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnTG9nTGV2ZWw9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT05FXCJdPTBdPVwiTk9ORVwiO2VbZVtcIkVSUk9SXCJdPTMwXT1cIkVSUk9SXCI7ZVtlW1wiV0FSTlwiXT01MF09XCJXQVJOXCI7ZVtlW1wiSU5GT1wiXT02MF09XCJJTkZPXCI7ZVtlW1wiREVCVUdcIl09NzBdPVwiREVCVUdcIjtlW2VbXCJWRVJCT1NFXCJdPTgwXT1cIlZFUkJPU0VcIjtlW2VbXCJBTExcIl09OTk5OV09XCJBTExcIn0pKHI9dC5EaWFnTG9nTGV2ZWx8fCh0LkRpYWdMb2dMZXZlbD17fSkpfSwxNzI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC51bnJlZ2lzdGVyR2xvYmFsPXQuZ2V0R2xvYmFsPXQucmVnaXN0ZXJHbG9iYWw9dm9pZCAwO2NvbnN0IG49cigyMDApO2NvbnN0IGE9cig1MjEpO2NvbnN0IG89cigxMzApO2NvbnN0IGk9YS5WRVJTSU9OLnNwbGl0KFwiLlwiKVswXTtjb25zdCBjPVN5bWJvbC5mb3IoYG9wZW50ZWxlbWV0cnkuanMuYXBpLiR7aX1gKTtjb25zdCBzPW4uX2dsb2JhbFRoaXM7ZnVuY3Rpb24gcmVnaXN0ZXJHbG9iYWwoZSx0LHIsbj1mYWxzZSl7dmFyIG87Y29uc3QgaT1zW2NdPShvPXNbY10pIT09bnVsbCYmbyE9PXZvaWQgMD9vOnt2ZXJzaW9uOmEuVkVSU0lPTn07aWYoIW4mJmlbZV0pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IEF0dGVtcHRlZCBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIG9mIEFQSTogJHtlfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYoaS52ZXJzaW9uIT09YS5WRVJTSU9OKXtjb25zdCB0PW5ldyBFcnJvcihgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RyYXRpb24gb2YgdmVyc2lvbiB2JHtpLnZlcnNpb259IGZvciAke2V9IGRvZXMgbm90IG1hdGNoIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBBUEkgdiR7YS5WRVJTSU9OfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aVtlXT10O3IuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0ZXJlZCBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO3JldHVybiB0cnVlfXQucmVnaXN0ZXJHbG9iYWw9cmVnaXN0ZXJHbG9iYWw7ZnVuY3Rpb24gZ2V0R2xvYmFsKGUpe3ZhciB0LHI7Y29uc3Qgbj0odD1zW2NdKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQudmVyc2lvbjtpZighbnx8ISgwLG8uaXNDb21wYXRpYmxlKShuKSl7cmV0dXJufXJldHVybihyPXNbY10pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6cltlXX10LmdldEdsb2JhbD1nZXRHbG9iYWw7ZnVuY3Rpb24gdW5yZWdpc3Rlckdsb2JhbChlLHQpe3QuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogVW5yZWdpc3RlcmluZyBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO2NvbnN0IHI9c1tjXTtpZihyKXtkZWxldGUgcltlXX19dC51bnJlZ2lzdGVyR2xvYmFsPXVucmVnaXN0ZXJHbG9iYWx9LDEzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmlzQ29tcGF0aWJsZT10Ll9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrPXZvaWQgMDtjb25zdCBuPXIoNTIxKTtjb25zdCBhPS9eKFxcZCspXFwuKFxcZCspXFwuKFxcZCspKC0oLispKT8kLztmdW5jdGlvbiBfbWFrZUNvbXBhdGliaWxpdHlDaGVjayhlKXtjb25zdCB0PW5ldyBTZXQoW2VdKTtjb25zdCByPW5ldyBTZXQ7Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4oKT0+ZmFsc2V9Y29uc3Qgbz17bWFqb3I6K25bMV0sbWlub3I6K25bMl0scGF0Y2g6K25bM10scHJlcmVsZWFzZTpuWzRdfTtpZihvLnByZXJlbGVhc2UhPW51bGwpe3JldHVybiBmdW5jdGlvbiBpc0V4YWN0bWF0Y2godCl7cmV0dXJuIHQ9PT1lfX1mdW5jdGlvbiBfcmVqZWN0KGUpe3IuYWRkKGUpO3JldHVybiBmYWxzZX1mdW5jdGlvbiBfYWNjZXB0KGUpe3QuYWRkKGUpO3JldHVybiB0cnVlfXJldHVybiBmdW5jdGlvbiBpc0NvbXBhdGlibGUoZSl7aWYodC5oYXMoZSkpe3JldHVybiB0cnVlfWlmKHIuaGFzKGUpKXtyZXR1cm4gZmFsc2V9Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4gX3JlamVjdChlKX1jb25zdCBpPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKGkucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvciE9PWkubWFqb3Ipe3JldHVybiBfcmVqZWN0KGUpfWlmKG8ubWFqb3I9PT0wKXtpZihvLm1pbm9yPT09aS5taW5vciYmby5wYXRjaDw9aS5wYXRjaCl7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9aWYoby5taW5vcjw9aS5taW5vcil7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9fXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2s7dC5pc0NvbXBhdGlibGU9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2sobi5WRVJTSU9OKX0sODg2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QubWV0cmljcz12b2lkIDA7Y29uc3Qgbj1yKDY1Myk7dC5tZXRyaWNzPW4uTWV0cmljc0FQSS5nZXRJbnN0YW5jZSgpfSw5MDE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVmFsdWVUeXBlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiSU5UXCJdPTBdPVwiSU5UXCI7ZVtlW1wiRE9VQkxFXCJdPTFdPVwiRE9VQkxFXCJ9KShyPXQuVmFsdWVUeXBlfHwodC5WYWx1ZVR5cGU9e30pKX0sMTAyOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZU5vb3BNZXRlcj10Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz10Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz10Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz10Lk5PT1BfSElTVE9HUkFNX01FVFJJQz10Lk5PT1BfQ09VTlRFUl9NRVRSSUM9dC5OT09QX01FVEVSPXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlTWV0cmljPXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcENvdW50ZXJNZXRyaWM9dC5Ob29wTWV0cmljPXQuTm9vcE1ldGVyPXZvaWQgMDtjbGFzcyBOb29wTWV0ZXJ7Y29uc3RydWN0b3IoKXt9Y3JlYXRlSGlzdG9ncmFtKGUscil7cmV0dXJuIHQuTk9PUF9ISVNUT0dSQU1fTUVUUklDfWNyZWF0ZUNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX0NPVU5URVJfTUVUUklDfWNyZWF0ZVVwRG93bkNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZUdhdWdlKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDfWFkZEJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUsdCl7fXJlbW92ZUJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUpe319dC5Ob29wTWV0ZXI9Tm9vcE1ldGVyO2NsYXNzIE5vb3BNZXRyaWN7fXQuTm9vcE1ldHJpYz1Ob29wTWV0cmljO2NsYXNzIE5vb3BDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3thZGQoZSx0KXt9fXQuTm9vcENvdW50ZXJNZXRyaWM9Tm9vcENvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wVXBEb3duQ291bnRlck1ldHJpYz1Ob29wVXBEb3duQ291bnRlck1ldHJpYztjbGFzcyBOb29wSGlzdG9ncmFtTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3tyZWNvcmQoZSx0KXt9fXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz1Ob29wSGlzdG9ncmFtTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlTWV0cmlje2FkZENhbGxiYWNrKGUpe31yZW1vdmVDYWxsYmFjayhlKXt9fXQuTm9vcE9ic2VydmFibGVNZXRyaWM9Tm9vcE9ic2VydmFibGVNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYz1Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX01FVEVSPW5ldyBOb29wTWV0ZXI7dC5OT09QX0NPVU5URVJfTUVUUklDPW5ldyBOb29wQ291bnRlck1ldHJpYzt0Lk5PT1BfSElTVE9HUkFNX01FVFJJQz1uZXcgTm9vcEhpc3RvZ3JhbU1ldHJpYzt0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljO2Z1bmN0aW9uIGNyZWF0ZU5vb3BNZXRlcigpe3JldHVybiB0Lk5PT1BfTUVURVJ9dC5jcmVhdGVOb29wTWV0ZXI9Y3JlYXRlTm9vcE1ldGVyfSw2NjA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5OT09QX01FVEVSX1BST1ZJREVSPXQuTm9vcE1ldGVyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMDIpO2NsYXNzIE5vb3BNZXRlclByb3ZpZGVye2dldE1ldGVyKGUsdCxyKXtyZXR1cm4gbi5OT09QX01FVEVSfX10Lk5vb3BNZXRlclByb3ZpZGVyPU5vb3BNZXRlclByb3ZpZGVyO3QuTk9PUF9NRVRFUl9QUk9WSURFUj1uZXcgTm9vcE1ldGVyUHJvdmlkZXJ9LDIwMDpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDQ2KSx0KX0sNjUxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Ll9nbG9iYWxUaGlzPXZvaWQgMDt0Ll9nbG9iYWxUaGlzPXR5cGVvZiBnbG9iYWxUaGlzPT09XCJvYmplY3RcIj9nbG9iYWxUaGlzOmdsb2JhbH0sNDY6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSl9OmZ1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO2Vbbl09dFtyXX0pO3ZhciBhPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKWlmKHIhPT1cImRlZmF1bHRcIiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKW4odCxlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2Eocig2NTEpLHQpfSw5Mzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5wcm9wYWdhdGlvbj12b2lkIDA7Y29uc3Qgbj1yKDE4MSk7dC5wcm9wYWdhdGlvbj1uLlByb3BhZ2F0aW9uQVBJLmdldEluc3RhbmNlKCl9LDg3NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVGV4dE1hcFByb3BhZ2F0b3I9dm9pZCAwO2NsYXNzIE5vb3BUZXh0TWFwUHJvcGFnYXRvcntpbmplY3QoZSx0KXt9ZXh0cmFjdChlLHQpe3JldHVybiBlfWZpZWxkcygpe3JldHVybltdfX10Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj1Ob29wVGV4dE1hcFByb3BhZ2F0b3J9LDE5NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWZhdWx0VGV4dE1hcFNldHRlcj10LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXZvaWQgMDt0LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXtnZXQoZSx0KXtpZihlPT1udWxsKXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBlW3RdfSxrZXlzKGUpe2lmKGU9PW51bGwpe3JldHVybltdfXJldHVybiBPYmplY3Qua2V5cyhlKX19O3QuZGVmYXVsdFRleHRNYXBTZXR0ZXI9e3NldChlLHQscil7aWYoZT09bnVsbCl7cmV0dXJufWVbdF09cn19fSw4NDU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC50cmFjZT12b2lkIDA7Y29uc3Qgbj1yKDk5Nyk7dC50cmFjZT1uLlRyYWNlQVBJLmdldEluc3RhbmNlKCl9LDQwMzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vblJlY29yZGluZ1NwYW49dm9pZCAwO2NvbnN0IG49cig0NzYpO2NsYXNzIE5vblJlY29yZGluZ1NwYW57Y29uc3RydWN0b3IoZT1uLklOVkFMSURfU1BBTl9DT05URVhUKXt0aGlzLl9zcGFuQ29udGV4dD1lfXNwYW5Db250ZXh0KCl7cmV0dXJuIHRoaXMuX3NwYW5Db250ZXh0fXNldEF0dHJpYnV0ZShlLHQpe3JldHVybiB0aGlzfXNldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIHRoaXN9YWRkRXZlbnQoZSx0KXtyZXR1cm4gdGhpc31zZXRTdGF0dXMoZSl7cmV0dXJuIHRoaXN9dXBkYXRlTmFtZShlKXtyZXR1cm4gdGhpc31lbmQoZSl7fWlzUmVjb3JkaW5nKCl7cmV0dXJuIGZhbHNlfXJlY29yZEV4Y2VwdGlvbihlLHQpe319dC5Ob25SZWNvcmRpbmdTcGFuPU5vblJlY29yZGluZ1NwYW59LDYxNDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUcmFjZXI9dm9pZCAwO2NvbnN0IG49cig0OTEpO2NvbnN0IGE9cig2MDcpO2NvbnN0IG89cig0MDMpO2NvbnN0IGk9cigxMzkpO2NvbnN0IGM9bi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCk7Y2xhc3MgTm9vcFRyYWNlcntzdGFydFNwYW4oZSx0LHI9Yy5hY3RpdmUoKSl7Y29uc3Qgbj1Cb29sZWFuKHQ9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnJvb3QpO2lmKG4pe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufWNvbnN0IHM9ciYmKDAsYS5nZXRTcGFuQ29udGV4dCkocik7aWYoaXNTcGFuQ29udGV4dChzKSYmKDAsaS5pc1NwYW5Db250ZXh0VmFsaWQpKHMpKXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3BhbihzKX1lbHNle3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7bGV0IG87bGV0IGk7bGV0IHM7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtyZXR1cm59ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Mil7cz10fWVsc2UgaWYoYXJndW1lbnRzLmxlbmd0aD09PTMpe289dDtzPXJ9ZWxzZXtvPXQ7aT1yO3M9bn1jb25zdCB1PWkhPT1udWxsJiZpIT09dm9pZCAwP2k6Yy5hY3RpdmUoKTtjb25zdCBsPXRoaXMuc3RhcnRTcGFuKGUsbyx1KTtjb25zdCBnPSgwLGEuc2V0U3BhbikodSxsKTtyZXR1cm4gYy53aXRoKGcscyx1bmRlZmluZWQsbCl9fXQuTm9vcFRyYWNlcj1Ob29wVHJhY2VyO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHQoZSl7cmV0dXJuIHR5cGVvZiBlPT09XCJvYmplY3RcIiYmdHlwZW9mIGVbXCJzcGFuSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlRmxhZ3NcIl09PT1cIm51bWJlclwifX0sMTI0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjbGFzcyBOb29wVHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXtyZXR1cm4gbmV3IG4uTm9vcFRyYWNlcn19dC5Ob29wVHJhY2VyUHJvdmlkZXI9Tm9vcFRyYWNlclByb3ZpZGVyfSwxMjU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDYxNCk7Y29uc3QgYT1uZXcgbi5Ob29wVHJhY2VyO2NsYXNzIFByb3h5VHJhY2Vye2NvbnN0cnVjdG9yKGUsdCxyLG4pe3RoaXMuX3Byb3ZpZGVyPWU7dGhpcy5uYW1lPXQ7dGhpcy52ZXJzaW9uPXI7dGhpcy5vcHRpb25zPW59c3RhcnRTcGFuKGUsdCxyKXtyZXR1cm4gdGhpcy5fZ2V0VHJhY2VyKCkuc3RhcnRTcGFuKGUsdCxyKX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7Y29uc3QgYT10aGlzLl9nZXRUcmFjZXIoKTtyZXR1cm4gUmVmbGVjdC5hcHBseShhLnN0YXJ0QWN0aXZlU3BhbixhLGFyZ3VtZW50cyl9X2dldFRyYWNlcigpe2lmKHRoaXMuX2RlbGVnYXRlKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9Y29uc3QgZT10aGlzLl9wcm92aWRlci5nZXREZWxlZ2F0ZVRyYWNlcih0aGlzLm5hbWUsdGhpcy52ZXJzaW9uLHRoaXMub3B0aW9ucyk7aWYoIWUpe3JldHVybiBhfXRoaXMuX2RlbGVnYXRlPWU7cmV0dXJuIHRoaXMuX2RlbGVnYXRlfX10LlByb3h5VHJhY2VyPVByb3h5VHJhY2VyfSw4NDY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoMTI1KTtjb25zdCBhPXIoMTI0KTtjb25zdCBvPW5ldyBhLk5vb3BUcmFjZXJQcm92aWRlcjtjbGFzcyBQcm94eVRyYWNlclByb3ZpZGVye2dldFRyYWNlcihlLHQscil7dmFyIGE7cmV0dXJuKGE9dGhpcy5nZXREZWxlZ2F0ZVRyYWNlcihlLHQscikpIT09bnVsbCYmYSE9PXZvaWQgMD9hOm5ldyBuLlByb3h5VHJhY2VyKHRoaXMsZSx0LHIpfWdldERlbGVnYXRlKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5fZGVsZWdhdGUpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm99c2V0RGVsZWdhdGUoZSl7dGhpcy5fZGVsZWdhdGU9ZX1nZXREZWxlZ2F0ZVRyYWNlcihlLHQscil7dmFyIG47cmV0dXJuKG49dGhpcy5fZGVsZWdhdGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5nZXRUcmFjZXIoZSx0LHIpfX10LlByb3h5VHJhY2VyUHJvdmlkZXI9UHJveHlUcmFjZXJQcm92aWRlcn0sOTk2OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNhbXBsaW5nRGVjaXNpb249dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT1RfUkVDT1JEXCJdPTBdPVwiTk9UX1JFQ09SRFwiO2VbZVtcIlJFQ09SRFwiXT0xXT1cIlJFQ09SRFwiO2VbZVtcIlJFQ09SRF9BTkRfU0FNUExFRFwiXT0yXT1cIlJFQ09SRF9BTkRfU0FNUExFRFwifSkocj10LlNhbXBsaW5nRGVjaXNpb258fCh0LlNhbXBsaW5nRGVjaXNpb249e30pKX0sNjA3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZ2V0U3BhbkNvbnRleHQ9dC5zZXRTcGFuQ29udGV4dD10LmRlbGV0ZVNwYW49dC5zZXRTcGFuPXQuZ2V0QWN0aXZlU3Bhbj10LmdldFNwYW49dm9pZCAwO2NvbnN0IG49cig3ODApO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89cig0OTEpO2NvbnN0IGk9KDAsbi5jcmVhdGVDb250ZXh0S2V5KShcIk9wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgU1BBTlwiKTtmdW5jdGlvbiBnZXRTcGFuKGUpe3JldHVybiBlLmdldFZhbHVlKGkpfHx1bmRlZmluZWR9dC5nZXRTcGFuPWdldFNwYW47ZnVuY3Rpb24gZ2V0QWN0aXZlU3Bhbigpe3JldHVybiBnZXRTcGFuKG8uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZVNwYW49Z2V0QWN0aXZlU3BhbjtmdW5jdGlvbiBzZXRTcGFuKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUoaSx0KX10LnNldFNwYW49c2V0U3BhbjtmdW5jdGlvbiBkZWxldGVTcGFuKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKGkpfXQuZGVsZXRlU3Bhbj1kZWxldGVTcGFuO2Z1bmN0aW9uIHNldFNwYW5Db250ZXh0KGUsdCl7cmV0dXJuIHNldFNwYW4oZSxuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKHQpKX10LnNldFNwYW5Db250ZXh0PXNldFNwYW5Db250ZXh0O2Z1bmN0aW9uIGdldFNwYW5Db250ZXh0KGUpe3ZhciB0O3JldHVybih0PWdldFNwYW4oZSkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5zcGFuQ29udGV4dCgpfXQuZ2V0U3BhbkNvbnRleHQ9Z2V0U3BhbkNvbnRleHR9LDMyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlU3RhdGVJbXBsPXZvaWQgMDtjb25zdCBuPXIoNTY0KTtjb25zdCBhPTMyO2NvbnN0IG89NTEyO2NvbnN0IGk9XCIsXCI7Y29uc3QgYz1cIj1cIjtjbGFzcyBUcmFjZVN0YXRlSW1wbHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXA7aWYoZSl0aGlzLl9wYXJzZShlKX1zZXQoZSx0KXtjb25zdCByPXRoaXMuX2Nsb25lKCk7aWYoci5faW50ZXJuYWxTdGF0ZS5oYXMoZSkpe3IuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpfXIuX2ludGVybmFsU3RhdGUuc2V0KGUsdCk7cmV0dXJuIHJ9dW5zZXQoZSl7Y29uc3QgdD10aGlzLl9jbG9uZSgpO3QuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpO3JldHVybiB0fWdldChlKXtyZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZS5nZXQoZSl9c2VyaWFsaXplKCl7cmV0dXJuIHRoaXMuX2tleXMoKS5yZWR1Y2UoKChlLHQpPT57ZS5wdXNoKHQrYyt0aGlzLmdldCh0KSk7cmV0dXJuIGV9KSxbXSkuam9pbihpKX1fcGFyc2UoZSl7aWYoZS5sZW5ndGg+bylyZXR1cm47dGhpcy5faW50ZXJuYWxTdGF0ZT1lLnNwbGl0KGkpLnJldmVyc2UoKS5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgcj10LnRyaW0oKTtjb25zdCBhPXIuaW5kZXhPZihjKTtpZihhIT09LTEpe2NvbnN0IG89ci5zbGljZSgwLGEpO2NvbnN0IGk9ci5zbGljZShhKzEsdC5sZW5ndGgpO2lmKCgwLG4udmFsaWRhdGVLZXkpKG8pJiYoMCxuLnZhbGlkYXRlVmFsdWUpKGkpKXtlLnNldChvLGkpfWVsc2V7fX1yZXR1cm4gZX0pLG5ldyBNYXApO2lmKHRoaXMuX2ludGVybmFsU3RhdGUuc2l6ZT5hKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAoQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmVudHJpZXMoKSkucmV2ZXJzZSgpLnNsaWNlKDAsYSkpfX1fa2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUua2V5cygpKS5yZXZlcnNlKCl9X2Nsb25lKCl7Y29uc3QgZT1uZXcgVHJhY2VTdGF0ZUltcGw7ZS5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwKHRoaXMuX2ludGVybmFsU3RhdGUpO3JldHVybiBlfX10LlRyYWNlU3RhdGVJbXBsPVRyYWNlU3RhdGVJbXBsfSw1NjQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudmFsaWRhdGVWYWx1ZT10LnZhbGlkYXRlS2V5PXZvaWQgMDtjb25zdCByPVwiW18wLTlhLXotKi9dXCI7Y29uc3Qgbj1gW2Etel0ke3J9ezAsMjU1fWA7Y29uc3QgYT1gW2EtejAtOV0ke3J9ezAsMjQwfUBbYS16XSR7cn17MCwxM31gO2NvbnN0IG89bmV3IFJlZ0V4cChgXig/OiR7bn18JHthfSkkYCk7Y29uc3QgaT0vXlsgLX5dezAsMjU1fVshLX5dJC87Y29uc3QgYz0vLHw9LztmdW5jdGlvbiB2YWxpZGF0ZUtleShlKXtyZXR1cm4gby50ZXN0KGUpfXQudmFsaWRhdGVLZXk9dmFsaWRhdGVLZXk7ZnVuY3Rpb24gdmFsaWRhdGVWYWx1ZShlKXtyZXR1cm4gaS50ZXN0KGUpJiYhYy50ZXN0KGUpfXQudmFsaWRhdGVWYWx1ZT12YWxpZGF0ZVZhbHVlfSw5ODooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZVRyYWNlU3RhdGU9dm9pZCAwO2NvbnN0IG49cigzMjUpO2Z1bmN0aW9uIGNyZWF0ZVRyYWNlU3RhdGUoZSl7cmV0dXJuIG5ldyBuLlRyYWNlU3RhdGVJbXBsKGUpfXQuY3JlYXRlVHJhY2VTdGF0ZT1jcmVhdGVUcmFjZVN0YXRlfSw0NzY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5JTlZBTElEX1NQQU5fQ09OVEVYVD10LklOVkFMSURfVFJBQ0VJRD10LklOVkFMSURfU1BBTklEPXZvaWQgMDtjb25zdCBuPXIoNDc1KTt0LklOVkFMSURfU1BBTklEPVwiMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9UUkFDRUlEPVwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIjt0LklOVkFMSURfU1BBTl9DT05URVhUPXt0cmFjZUlkOnQuSU5WQUxJRF9UUkFDRUlELHNwYW5JZDp0LklOVkFMSURfU1BBTklELHRyYWNlRmxhZ3M6bi5UcmFjZUZsYWdzLk5PTkV9fSwzNTc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU3BhbktpbmQ9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRFUk5BTFwiXT0wXT1cIklOVEVSTkFMXCI7ZVtlW1wiU0VSVkVSXCJdPTFdPVwiU0VSVkVSXCI7ZVtlW1wiQ0xJRU5UXCJdPTJdPVwiQ0xJRU5UXCI7ZVtlW1wiUFJPRFVDRVJcIl09M109XCJQUk9EVUNFUlwiO2VbZVtcIkNPTlNVTUVSXCJdPTRdPVwiQ09OU1VNRVJcIn0pKHI9dC5TcGFuS2luZHx8KHQuU3BhbktpbmQ9e30pKX0sMTM5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3Qud3JhcFNwYW5Db250ZXh0PXQuaXNTcGFuQ29udGV4dFZhbGlkPXQuaXNWYWxpZFNwYW5JZD10LmlzVmFsaWRUcmFjZUlkPXZvaWQgMDtjb25zdCBuPXIoNDc2KTtjb25zdCBhPXIoNDAzKTtjb25zdCBvPS9eKFswLTlhLWZdezMyfSkkL2k7Y29uc3QgaT0vXlswLTlhLWZdezE2fSQvaTtmdW5jdGlvbiBpc1ZhbGlkVHJhY2VJZChlKXtyZXR1cm4gby50ZXN0KGUpJiZlIT09bi5JTlZBTElEX1RSQUNFSUR9dC5pc1ZhbGlkVHJhY2VJZD1pc1ZhbGlkVHJhY2VJZDtmdW5jdGlvbiBpc1ZhbGlkU3BhbklkKGUpe3JldHVybiBpLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfU1BBTklEfXQuaXNWYWxpZFNwYW5JZD1pc1ZhbGlkU3BhbklkO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHRWYWxpZChlKXtyZXR1cm4gaXNWYWxpZFRyYWNlSWQoZS50cmFjZUlkKSYmaXNWYWxpZFNwYW5JZChlLnNwYW5JZCl9dC5pc1NwYW5Db250ZXh0VmFsaWQ9aXNTcGFuQ29udGV4dFZhbGlkO2Z1bmN0aW9uIHdyYXBTcGFuQ29udGV4dChlKXtyZXR1cm4gbmV3IGEuTm9uUmVjb3JkaW5nU3BhbihlKX10LndyYXBTcGFuQ29udGV4dD13cmFwU3BhbkNvbnRleHR9LDg0NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuU3RhdHVzQ29kZT12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIlVOU0VUXCJdPTBdPVwiVU5TRVRcIjtlW2VbXCJPS1wiXT0xXT1cIk9LXCI7ZVtlW1wiRVJST1JcIl09Ml09XCJFUlJPUlwifSkocj10LlNwYW5TdGF0dXNDb2RlfHwodC5TcGFuU3RhdHVzQ29kZT17fSkpfSw0NzU6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VGbGFncz12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiU0FNUExFRFwiXT0xXT1cIlNBTVBMRURcIn0pKHI9dC5UcmFjZUZsYWdzfHwodC5UcmFjZUZsYWdzPXt9KSl9LDUyMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WRVJTSU9OPXZvaWQgMDt0LlZFUlNJT049XCIxLjYuMFwifX07dmFyIHQ9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhyKXt2YXIgbj10W3JdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGE9dFtyXT17ZXhwb3J0czp7fX07dmFyIG89dHJ1ZTt0cnl7ZVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtvPWZhbHNlfWZpbmFsbHl7aWYobylkZWxldGUgdFtyXX1yZXR1cm4gYS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgcj17fTsoKCk9Pnt2YXIgZT1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7ZS50cmFjZT1lLnByb3BhZ2F0aW9uPWUubWV0cmljcz1lLmRpYWc9ZS5jb250ZXh0PWUuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9ZS5JTlZBTElEX1RSQUNFSUQ9ZS5JTlZBTElEX1NQQU5JRD1lLmlzVmFsaWRTcGFuSWQ9ZS5pc1ZhbGlkVHJhY2VJZD1lLmlzU3BhbkNvbnRleHRWYWxpZD1lLmNyZWF0ZVRyYWNlU3RhdGU9ZS5UcmFjZUZsYWdzPWUuU3BhblN0YXR1c0NvZGU9ZS5TcGFuS2luZD1lLlNhbXBsaW5nRGVjaXNpb249ZS5Qcm94eVRyYWNlclByb3ZpZGVyPWUuUHJveHlUcmFjZXI9ZS5kZWZhdWx0VGV4dE1hcFNldHRlcj1lLmRlZmF1bHRUZXh0TWFwR2V0dGVyPWUuVmFsdWVUeXBlPWUuY3JlYXRlTm9vcE1ldGVyPWUuRGlhZ0xvZ0xldmVsPWUuRGlhZ0NvbnNvbGVMb2dnZXI9ZS5ST09UX0NPTlRFWFQ9ZS5jcmVhdGVDb250ZXh0S2V5PWUuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXZvaWQgMDt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDM2OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmdcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ319KTt2YXIgbj1fX25jY3dwY2tfcmVxdWlyZV9fKDc4MCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVDb250ZXh0S2V5XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jcmVhdGVDb250ZXh0S2V5fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUk9PVF9DT05URVhUXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9fSk7dmFyIGE9X19uY2N3cGNrX3JlcXVpcmVfXyg5NzIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0NvbnNvbGVMb2dnZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBhLkRpYWdDb25zb2xlTG9nZ2VyfX0pO3ZhciBvPV9fbmNjd3Bja19yZXF1aXJlX18oOTU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIkRpYWdMb2dMZXZlbFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uRGlhZ0xvZ0xldmVsfX0pO3ZhciBpPV9fbmNjd3Bja19yZXF1aXJlX18oMTAyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZU5vb3BNZXRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuY3JlYXRlTm9vcE1ldGVyfX0pO3ZhciBjPV9fbmNjd3Bja19yZXF1aXJlX18oOTAxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlZhbHVlVHlwZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuVmFsdWVUeXBlfX0pO3ZhciBzPV9fbmNjd3Bja19yZXF1aXJlX18oMTk0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwR2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcEdldHRlcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwU2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcFNldHRlcn19KTt2YXIgdT1fX25jY3dwY2tfcmVxdWlyZV9fKDEyNSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuUHJveHlUcmFjZXJ9fSk7dmFyIGw9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUHJveHlUcmFjZXJQcm92aWRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuUHJveHlUcmFjZXJQcm92aWRlcn19KTt2YXIgZz1fX25jY3dwY2tfcmVxdWlyZV9fKDk5Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTYW1wbGluZ0RlY2lzaW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5TYW1wbGluZ0RlY2lzaW9ufX0pO3ZhciBwPV9fbmNjd3Bja19yZXF1aXJlX18oMzU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5LaW5kXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5TcGFuS2luZH19KTt2YXIgZD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTcGFuU3RhdHVzQ29kZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQuU3BhblN0YXR1c0NvZGV9fSk7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg0NzUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVHJhY2VGbGFnc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF8uVHJhY2VGbGFnc319KTt2YXIgZj1fX25jY3dwY2tfcmVxdWlyZV9fKDk4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZVRyYWNlU3RhdGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBmLmNyZWF0ZVRyYWNlU3RhdGV9fSk7dmFyIGI9X19uY2N3cGNrX3JlcXVpcmVfXygxMzkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNTcGFuQ29udGV4dFZhbGlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1NwYW5Db250ZXh0VmFsaWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkVHJhY2VJZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNWYWxpZFRyYWNlSWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkU3BhbklkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkU3BhbklkfX0pO3ZhciB2PV9fbmNjd3Bja19yZXF1aXJlX18oNDc2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfU1BBTklEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1NQQU5JRH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfVFJBQ0VJRFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9UUkFDRUlEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTl9DT05URVhUfX0pO2NvbnN0IE89X19uY2N3cGNrX3JlcXVpcmVfXyg2Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjb250ZXh0XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTy5jb250ZXh0fX0pO2NvbnN0IFA9X19uY2N3cGNrX3JlcXVpcmVfXyg1MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGlhZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAuZGlhZ319KTtjb25zdCBOPV9fbmNjd3Bja19yZXF1aXJlX18oODg2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIm1ldHJpY3NcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBOLm1ldHJpY3N9fSk7Y29uc3QgUz1fX25jY3dwY2tfcmVxdWlyZV9fKDkzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm9wYWdhdGlvblwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFMucHJvcGFnYXRpb259fSk7Y29uc3QgQz1fX25jY3dwY2tfcmVxdWlyZV9fKDg0NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJ0cmFjZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEMudHJhY2V9fSk7ZVtcImRlZmF1bHRcIl09e2NvbnRleHQ6Ty5jb250ZXh0LGRpYWc6UC5kaWFnLG1ldHJpY3M6Ti5tZXRyaWNzLHByb3BhZ2F0aW9uOlMucHJvcGFnYXRpb24sdHJhY2U6Qy50cmFjZX19KSgpO21vZHVsZS5leHBvcnRzPXJ9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n"); /***/ }), /***/ "./node_modules/next/dist/compiled/fresh/index.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/compiled/fresh/index.js ***! \********************************************************/ /***/ ((module) => { eval("(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_<u.length;_++){var o=u[_];if(o===f||o===\"W/\"+f||\"W/\"+o===f){n=false;break}}if(n){return false}}if(t){var p=a[\"last-modified\"];var v=!p||!(parseHttpDate(p)<=parseHttpDate(t));if(v){return false}}return true}function parseHttpDate(e){var r=e&&Date.parse(e);return typeof r===\"number\"?r:NaN}function parseTokenList(e){var r=0;var a=[];var t=0;for(var s=0,i=e.length;s<i;s++){switch(e.charCodeAt(s)){case 32:if(t===r){t=r=s+1}break;case 44:a.push(e.substring(t,r));t=r=s+1;break;default:r=s+1;break}}a.push(e.substring(t,r));return a}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var s=r[a]={exports:{}};var i=true;try{e[a](s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete r[a]}return s.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(695);module.exports=a})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxnQkFBZ0Isb0JBQW9CLDZCQUE2Qix5QkFBeUIsV0FBVyxhQUFhLHlCQUF5QixpQkFBaUIsYUFBYSxlQUFlLGdCQUFnQixPQUFPLGFBQWEsV0FBVyx3QkFBd0IsWUFBWSxXQUFXLEtBQUssV0FBVyxrQ0FBa0MsUUFBUSxPQUFPLE1BQU0sY0FBYyxNQUFNLHlCQUF5QixnREFBZ0QsTUFBTSxjQUFjLFlBQVksMEJBQTBCLHVCQUF1QixpQ0FBaUMsMkJBQTJCLFFBQVEsU0FBUyxRQUFRLHVCQUF1QixJQUFJLEtBQUssd0JBQXdCLGtCQUFrQixRQUFRLE1BQU0saUNBQWlDLFFBQVEsTUFBTSxjQUFjLE9BQU8seUJBQXlCLFlBQVksU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvZnJlc2gvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezY5NTplPT57XG4vKiFcbiAqIGZyZXNoXG4gKiBDb3B5cmlnaHQoYykgMjAxMiBUSiBIb2xvd2F5Y2h1a1xuICogQ29weXJpZ2h0KGMpIDIwMTYtMjAxNyBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cbnZhciByPS8oPzpefCwpXFxzKj9uby1jYWNoZVxccyo/KD86LHwkKS87ZS5leHBvcnRzPWZyZXNoO2Z1bmN0aW9uIGZyZXNoKGUsYSl7dmFyIHQ9ZVtcImlmLW1vZGlmaWVkLXNpbmNlXCJdO3ZhciBzPWVbXCJpZi1ub25lLW1hdGNoXCJdO2lmKCF0JiYhcyl7cmV0dXJuIGZhbHNlfXZhciBpPWVbXCJjYWNoZS1jb250cm9sXCJdO2lmKGkmJnIudGVzdChpKSl7cmV0dXJuIGZhbHNlfWlmKHMmJnMhPT1cIipcIil7dmFyIGY9YVtcImV0YWdcIl07aWYoIWYpe3JldHVybiBmYWxzZX12YXIgbj10cnVlO3ZhciB1PXBhcnNlVG9rZW5MaXN0KHMpO2Zvcih2YXIgXz0wO188dS5sZW5ndGg7XysrKXt2YXIgbz11W19dO2lmKG89PT1mfHxvPT09XCJXL1wiK2Z8fFwiVy9cIitvPT09Zil7bj1mYWxzZTticmVha319aWYobil7cmV0dXJuIGZhbHNlfX1pZih0KXt2YXIgcD1hW1wibGFzdC1tb2RpZmllZFwiXTt2YXIgdj0hcHx8IShwYXJzZUh0dHBEYXRlKHApPD1wYXJzZUh0dHBEYXRlKHQpKTtpZih2KXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfWZ1bmN0aW9uIHBhcnNlSHR0cERhdGUoZSl7dmFyIHI9ZSYmRGF0ZS5wYXJzZShlKTtyZXR1cm4gdHlwZW9mIHI9PT1cIm51bWJlclwiP3I6TmFOfWZ1bmN0aW9uIHBhcnNlVG9rZW5MaXN0KGUpe3ZhciByPTA7dmFyIGE9W107dmFyIHQ9MDtmb3IodmFyIHM9MCxpPWUubGVuZ3RoO3M8aTtzKyspe3N3aXRjaChlLmNoYXJDb2RlQXQocykpe2Nhc2UgMzI6aWYodD09PXIpe3Q9cj1zKzF9YnJlYWs7Y2FzZSA0NDphLnB1c2goZS5zdWJzdHJpbmcodCxyKSk7dD1yPXMrMTticmVhaztkZWZhdWx0OnI9cysxO2JyZWFrfX1hLnB1c2goZS5zdWJzdHJpbmcodCxyKSk7cmV0dXJuIGF9fX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhhKXt2YXIgdD1yW2FdO2lmKHQhPT11bmRlZmluZWQpe3JldHVybiB0LmV4cG9ydHN9dmFyIHM9clthXT17ZXhwb3J0czp7fX07dmFyIGk9dHJ1ZTt0cnl7ZVthXShzLHMuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtpPWZhbHNlfWZpbmFsbHl7aWYoaSlkZWxldGUgclthXX1yZXR1cm4gcy5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgYT1fX25jY3dwY2tfcmVxdWlyZV9fKDY5NSk7bW9kdWxlLmV4cG9ydHM9YX0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/fresh/index.js\n"); /***/ }), /***/ "./node_modules/next/dist/lib/batcher.js": /*!***********************************************!*\ !*** ./node_modules/next/dist/lib/batcher.js ***! \***********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Batcher\", ({\n enumerable: true,\n get: function() {\n return Batcher;\n }\n}));\nconst _detachedpromise = __webpack_require__(/*! ./detached-promise */ \"./node_modules/next/dist/lib/detached-promise.js\");\nclass Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn(cacheKey, Promise.resolve);\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = new _detachedpromise.DetachedPromise();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn(cacheKey, resolve);\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9iYXRjaGVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseUJBQXlCLG1CQUFPLENBQUMsNEVBQW9CO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMkJBQTJCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2JhdGNoZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCYXRjaGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXRjaGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuL2RldGFjaGVkLXByb21pc2VcIik7XG5jbGFzcyBCYXRjaGVyIHtcbiAgICBjb25zdHJ1Y3RvcihjYWNoZUtleUZuLCAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgdG8gc2NoZWR1bGUgdGhlIHdyYXBwZWQgZnVuY3Rpb24gdG8gYmVcbiAgICAgKiBleGVjdXRlZC4gVGhpcyBkZWZhdWx0cyB0byBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAqIGltbWVkaWF0ZWx5LlxuICAgICAqLyBzY2hlZHVsZXJGbiA9IChmbik9PmZuKCkpe1xuICAgICAgICB0aGlzLmNhY2hlS2V5Rm4gPSBjYWNoZUtleUZuO1xuICAgICAgICB0aGlzLnNjaGVkdWxlckZuID0gc2NoZWR1bGVyRm47XG4gICAgICAgIHRoaXMucGVuZGluZyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmF0Y2hlcihvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLmNhY2hlS2V5Rm4sIG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMuc2NoZWR1bGVyRm4pO1xuICAgIH1cbiAgICAvKipcbiAgICogV3JhcHMgYSBmdW5jdGlvbiBpbiBhIHByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIG9yIHJlamVjdGVkIG9ubHkgb25jZVxuICAgKiBmb3IgYSBnaXZlbiBrZXkuIFRoaXMgd2lsbCBhbGxvdyBtdWx0aXBsZSBjYWxscyB0byB0aGUgZnVuY3Rpb24gdG8gYmVcbiAgICogbWFkZSwgYnV0IG9ubHkgb25lIHdpbGwgYmUgZXhlY3V0ZWQgYXQgYSB0aW1lLiBUaGUgcmVzdWx0IG9mIHRoZSBmaXJzdFxuICAgKiBjYWxsIHdpbGwgYmUgcmV0dXJuZWQgdG8gYWxsIGNhbGxlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBjYWNoZVxuICAgKiBAcGFyYW0gZm4gdGhlIGZ1bmN0aW9uIHRvIHdyYXBcbiAgICogQHJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb25cbiAgICovIGFzeW5jIGJhdGNoKGtleSwgZm4pIHtcbiAgICAgICAgY29uc3QgY2FjaGVLZXkgPSB0aGlzLmNhY2hlS2V5Rm4gPyBhd2FpdCB0aGlzLmNhY2hlS2V5Rm4oa2V5KSA6IGtleTtcbiAgICAgICAgaWYgKGNhY2hlS2V5ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oY2FjaGVLZXksIFByb21pc2UucmVzb2x2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGVuZGluZyA9IHRoaXMucGVuZGluZy5nZXQoY2FjaGVLZXkpO1xuICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuIHBlbmRpbmc7XG4gICAgICAgIGNvbnN0IHsgcHJvbWlzZSwgcmVzb2x2ZSwgcmVqZWN0IH0gPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nLnNldChjYWNoZUtleSwgcHJvbWlzZSk7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVyRm4oYXN5bmMgKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm4oY2FjaGVLZXksIHJlc29sdmUpO1xuICAgICAgICAgICAgICAgIC8vIFJlc29sdmluZyBhIHByb21pc2UgbXVsdGlwbGUgdGltZXMgaXMgYSBuby1vcCwgc28gd2UgY2FuIHNhZmVseVxuICAgICAgICAgICAgICAgIC8vIHJlc29sdmUgYWxsIHBlbmRpbmcgcHJvbWlzZXMgd2l0aCB0aGUgc2FtZSByZXN1bHQuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/batcher.js\n"); /***/ }), /***/ "./node_modules/next/dist/lib/constants.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/lib/constants.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n HTML_CONTENT_TYPE_HEADER: function() {\n return HTML_CONTENT_TYPE_HEADER;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n JSON_CONTENT_TYPE_HEADER: function() {\n return JSON_CONTENT_TYPE_HEADER;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() {\n return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n TEXT_PLAIN_CONTENT_TYPE_HEADER: function() {\n return TEXT_PLAIN_CONTENT_TYPE_HEADER;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain';\nconst HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8';\nconst JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8';\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\nconst PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate';\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated';\nconst RSC_PREFETCH_SUFFIX = '.prefetch.rsc';\nconst RSC_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\nconst NEXT_DATA_SUFFIX = '.json';\nconst NEXT_META_SUFFIX = '.meta';\nconst NEXT_BODY_SUFFIX = '.body';\nconst NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\nconst PAGES_DIR_ALIAS = 'private-next-pages';\nconst DOT_NEXT_ALIAS = 'private-dot-next';\nconst ROOT_DIR_ALIAS = 'private-next-root-dir';\nconst APP_DIR_ALIAS = 'private-next-app-dir';\nconst RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy';\nconst RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate';\nconst RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import';\nconst RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption';\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper';\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?';\nconst GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?';\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\\n' + 'Please use `revalidate` instead.';\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n 'app',\n 'pages',\n 'components',\n 'lib',\n 'src'\n];\nconst SERVER_RUNTIME = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs'\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */ reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */ edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__'\n};\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBeURMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsNkNBQTZDO0FBQzdDLG9EQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0Msb0JBQW9CO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFDVElPTl9TVUZGSVg6IG51bGwsXG4gICAgQVBQX0RJUl9BTElBUzogbnVsbCxcbiAgICBDQUNIRV9PTkVfWUVBUjogbnVsbCxcbiAgICBET1RfTkVYVF9BTElBUzogbnVsbCxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBudWxsLFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IG51bGwsXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVI6IG51bGwsXG4gICAgSU5GSU5JVEVfQ0FDSEU6IG51bGwsXG4gICAgSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUU6IG51bGwsXG4gICAgSlNPTl9DT05URU5UX1RZUEVfSEVBREVSOiBudWxsLFxuICAgIE1BVENIRURfUEFUSF9IRUFERVI6IG51bGwsXG4gICAgTUlERExFV0FSRV9GSUxFTkFNRTogbnVsbCxcbiAgICBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDogbnVsbCxcbiAgICBORVhUX0JPRFlfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg6IG51bGwsXG4gICAgTkVYVF9EQVRBX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBudWxsLFxuICAgIE5FWFRfTUVUQV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVg6IG51bGwsXG4gICAgTkVYVF9SRVNVTUVfSEVBREVSOiBudWxsLFxuICAgIE5PTl9TVEFOREFSRF9OT0RFX0VOVjogbnVsbCxcbiAgICBQQUdFU19ESVJfQUxJQVM6IG51bGwsXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSOiBudWxsLFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjogbnVsbCxcbiAgICBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q6IG51bGwsXG4gICAgUk9PVF9ESVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9QUk9YWV9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTOiBudWxsLFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19EWU5BTUlDX0lNUE9SVF9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTOiBudWxsLFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TVUZGSVg6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjogbnVsbCxcbiAgICBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDogbnVsbCxcbiAgICBTRVJWRVJfUlVOVElNRTogbnVsbCxcbiAgICBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SOiBudWxsLFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogbnVsbCxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IG51bGwsXG4gICAgVEVYVF9QTEFJTl9DT05URU5UX1RZUEVfSEVBREVSOiBudWxsLFxuICAgIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SOiBudWxsLFxuICAgIFdFQlBBQ0tfTEFZRVJTOiBudWxsLFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBQ1RJT05fU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFDVElPTl9TVUZGSVg7XG4gICAgfSxcbiAgICBBUFBfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFQUF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBDQUNIRV9PTkVfWUVBUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDQUNIRV9PTkVfWUVBUjtcbiAgICB9LFxuICAgIERPVF9ORVhUX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIERPVF9ORVhUX0FMSUFTO1xuICAgIH0sXG4gICAgRVNMSU5UX0RFRkFVTFRfRElSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFU0xJTlRfREVGQVVMVF9ESVJTO1xuICAgIH0sXG4gICAgR1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTUF9OT19SRVRVUk5FRF9WQUxVRTtcbiAgICB9LFxuICAgIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I7XG4gICAgfSxcbiAgICBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTU1BfTk9fUkVUVVJORURfVkFMVUU7XG4gICAgfSxcbiAgICBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSFRNTF9DT05URU5UX1RZUEVfSEVBREVSO1xuICAgIH0sXG4gICAgSU5GSU5JVEVfQ0FDSEU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSU5GSU5JVEVfQ0FDSEU7XG4gICAgfSxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTtcbiAgICB9LFxuICAgIEpTT05fQ09OVEVOVF9UWVBFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBKU09OX0NPTlRFTlRfVFlQRV9IRUFERVI7XG4gICAgfSxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1BVENIRURfUEFUSF9IRUFERVI7XG4gICAgfSxcbiAgICBNSURETEVXQVJFX0ZJTEVOQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1JRERMRVdBUkVfRklMRU5BTUU7XG4gICAgfSxcbiAgICBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDtcbiAgICB9LFxuICAgIE5FWFRfQk9EWV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9CT0RZX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUztcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfREFUQV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9EQVRBX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfTUVUQV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9NRVRBX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYO1xuICAgIH0sXG4gICAgTkVYVF9SRVNVTUVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVTVU1FX0hFQURFUjtcbiAgICB9LFxuICAgIE5PTl9TVEFOREFSRF9OT0RFX0VOVjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOT05fU1RBTkRBUkRfTk9ERV9FTlY7XG4gICAgfSxcbiAgICBQQUdFU19ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUEFHRVNfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjtcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI7XG4gICAgfSxcbiAgICBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgUk9PVF9ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUk9PVF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX1BST1hZX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX1BSRUZFVENIX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfUFJFRkVUQ0hfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg7XG4gICAgfSxcbiAgICBSU0NfU0VHTUVOVF9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NFR01FTlRfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfU1VGRklYO1xuICAgIH0sXG4gICAgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SO1xuICAgIH0sXG4gICAgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDtcbiAgICB9LFxuICAgIFNFUlZFUl9SVU5USU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9SVU5USU1FO1xuICAgIH0sXG4gICAgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SO1xuICAgIH0sXG4gICAgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDtcbiAgICB9LFxuICAgIFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I7XG4gICAgfSxcbiAgICBURVhUX1BMQUlOX0NPTlRFTlRfVFlQRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVEVYVF9QTEFJTl9DT05URU5UX1RZUEVfSEVBREVSO1xuICAgIH0sXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I7XG4gICAgfSxcbiAgICBXRUJQQUNLX0xBWUVSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX0xBWUVSUztcbiAgICB9LFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM7XG4gICAgfVxufSk7XG5jb25zdCBURVhUX1BMQUlOX0NPTlRFTlRfVFlQRV9IRUFERVIgPSAndGV4dC9wbGFpbic7XG5jb25zdCBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIgPSAndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04JztcbmNvbnN0IEpTT05fQ09OVEVOVF9UWVBFX0hFQURFUiA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbmNvbnN0IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYID0gJ254dFAnO1xuY29uc3QgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCA9ICdueHRJJztcbmNvbnN0IE1BVENIRURfUEFUSF9IRUFERVIgPSAneC1tYXRjaGVkLXBhdGgnO1xuY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSID0gJ3gtcHJlcmVuZGVyLXJldmFsaWRhdGUnO1xuY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSID0gJ3gtcHJlcmVuZGVyLXJldmFsaWRhdGUtaWYtZ2VuZXJhdGVkJztcbmNvbnN0IFJTQ19QUkVGRVRDSF9TVUZGSVggPSAnLnByZWZldGNoLnJzYyc7XG5jb25zdCBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWCA9ICcuc2VnbWVudHMnO1xuY29uc3QgUlNDX1NFR01FTlRfU1VGRklYID0gJy5zZWdtZW50LnJzYyc7XG5jb25zdCBSU0NfU1VGRklYID0gJy5yc2MnO1xuY29uc3QgQUNUSU9OX1NVRkZJWCA9ICcuYWN0aW9uJztcbmNvbnN0IE5FWFRfREFUQV9TVUZGSVggPSAnLmpzb24nO1xuY29uc3QgTkVYVF9NRVRBX1NVRkZJWCA9ICcubWV0YSc7XG5jb25zdCBORVhUX0JPRFlfU1VGRklYID0gJy5ib2R5JztcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHU19IRUFERVIgPSAneC1uZXh0LWNhY2hlLXRhZ3MnO1xuY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUiA9ICd4LW5leHQtcmV2YWxpZGF0ZWQtdGFncyc7XG5jb25zdCBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUiA9ICd4LW5leHQtcmV2YWxpZGF0ZS10YWctdG9rZW4nO1xuY29uc3QgTkVYVF9SRVNVTUVfSEVBREVSID0gJ25leHQtcmVzdW1lJztcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUyA9IDEyODtcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEggPSAyNTY7XG5jb25zdCBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEggPSAxMDI0O1xuY29uc3QgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQgPSAnX05fVF8nO1xuY29uc3QgQ0FDSEVfT05FX1lFQVIgPSAzMTUzNjAwMDtcbmNvbnN0IElORklOSVRFX0NBQ0hFID0gMHhmZmZmZmZmZTtcbmNvbnN0IE1JRERMRVdBUkVfRklMRU5BTUUgPSAnbWlkZGxld2FyZSc7XG5jb25zdCBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUCA9IGAoPzpzcmMvKT8ke01JRERMRVdBUkVfRklMRU5BTUV9YDtcbmNvbnN0IElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FID0gJ2luc3RydW1lbnRhdGlvbic7XG5jb25zdCBQQUdFU19ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXBhZ2VzJztcbmNvbnN0IERPVF9ORVhUX0FMSUFTID0gJ3ByaXZhdGUtZG90LW5leHQnO1xuY29uc3QgUk9PVF9ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJvb3QtZGlyJztcbmNvbnN0IEFQUF9ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LWFwcC1kaXInO1xuY29uc3QgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1tb2QtcmVmLXByb3h5JztcbmNvbnN0IFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tdmFsaWRhdGUnO1xuY29uc3QgUlNDX0FDVElPTl9QUk9YWV9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLXNlcnZlci1yZWZlcmVuY2UnO1xuY29uc3QgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1jYWNoZS13cmFwcGVyJztcbmNvbnN0IFJTQ19EWU5BTUlDX0lNUE9SVF9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtdHJhY2stZHluYW1pYy1pbXBvcnQnO1xuY29uc3QgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWVuY3J5cHRpb24nO1xuY29uc3QgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1jbGllbnQtd3JhcHBlcic7XG5jb25zdCBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgaGF2ZSBhICdfbmV4dCcgZm9sZGVyIGluc2lkZSBvZiB5b3VyIHB1YmxpYyBmb2xkZXIuIFRoaXMgY29uZmxpY3RzIHdpdGggdGhlIGludGVybmFsICcvX25leHQnIHJvdXRlLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wdWJsaWMtbmV4dC1mb2xkZXItY29uZmxpY3RgO1xuY29uc3QgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTdGF0aWNQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSB5b3VyIGdldEluaXRpYWxQcm9wc2A7XG5jb25zdCBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldEluaXRpYWxQcm9wcyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gUGxlYXNlIHJlbW92ZSBnZXRJbml0aWFsUHJvcHMuYDtcbmNvbnN0IFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldFN0YXRpY1Byb3BzIG9yIGdldFN0YXRpY1BhdGhzIHdpdGggZ2V0U2VydmVyU2lkZVByb3BzLiBUbyB1c2UgU1NHLCBwbGVhc2UgcmVtb3ZlIGdldFNlcnZlclNpZGVQcm9wc2A7XG5jb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1IgPSBgY2FuIG5vdCBoYXZlIGdldEluaXRpYWxQcm9wcy9nZXRTZXJ2ZXJTaWRlUHJvcHMsIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLzQwNC1nZXQtaW5pdGlhbC1wcm9wc2A7XG5jb25zdCBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SID0gYHBhZ2VzIHdpdGggXFxgZ2V0U2VydmVyU2lkZVByb3BzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1leHBvcnRgO1xuY29uc3QgR1NQX05PX1JFVFVSTkVEX1ZBTFVFID0gJ1lvdXIgYGdldFN0YXRpY1Byb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gPyc7XG5jb25zdCBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFID0gJ1lvdXIgYGdldFNlcnZlclNpZGVQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD8nO1xuY29uc3QgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1IgPSAnVGhlIGB1bnN0YWJsZV9yZXZhbGlkYXRlYCBwcm9wZXJ0eSBpcyBhdmFpbGFibGUgZm9yIGdlbmVyYWwgdXNlLlxcbicgKyAnUGxlYXNlIHVzZSBgcmV2YWxpZGF0ZWAgaW5zdGVhZC4nO1xuY29uc3QgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SID0gYGNhbiBub3QgYmUgYXR0YWNoZWQgdG8gYSBwYWdlJ3MgY29tcG9uZW50IGFuZCBtdXN0IGJlIGV4cG9ydGVkIGZyb20gdGhlIHBhZ2UuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1jb21wb25lbnQtbWVtYmVyYDtcbmNvbnN0IE5PTl9TVEFOREFSRF9OT0RFX0VOViA9IGBZb3UgYXJlIHVzaW5nIGEgbm9uLXN0YW5kYXJkIFwiTk9ERV9FTlZcIiB2YWx1ZSBpbiB5b3VyIGVudmlyb25tZW50LiBUaGlzIGNyZWF0ZXMgaW5jb25zaXN0ZW5jaWVzIGluIHRoZSBwcm9qZWN0IGFuZCBpcyBzdHJvbmdseSBhZHZpc2VkIGFnYWluc3QuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm9uLXN0YW5kYXJkLW5vZGUtZW52YDtcbmNvbnN0IFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1IgPSBgUGFnZXMgd2l0aCBcXGBmYWxsYmFja1xcYCBlbmFibGVkIGluIFxcYGdldFN0YXRpY1BhdGhzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3NnLWZhbGxiYWNrLXRydWUtZXhwb3J0YDtcbmNvbnN0IEVTTElOVF9ERUZBVUxUX0RJUlMgPSBbXG4gICAgJ2FwcCcsXG4gICAgJ3BhZ2VzJyxcbiAgICAnY29tcG9uZW50cycsXG4gICAgJ2xpYicsXG4gICAgJ3NyYydcbl07XG5jb25zdCBTRVJWRVJfUlVOVElNRSA9IHtcbiAgICBlZGdlOiAnZWRnZScsXG4gICAgZXhwZXJpbWVudGFsRWRnZTogJ2V4cGVyaW1lbnRhbC1lZGdlJyxcbiAgICBub2RlanM6ICdub2RlanMnXG59O1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHdlYnBhY2sgbGF5ZXJzLiBUaGVzZSBsYXllcnMgYXJlIHRoZSBwcmltaXRpdmVzIGZvciB0aGVcbiAqIHdlYnBhY2sgY2h1bmtzLlxuICovIGNvbnN0IFdFQlBBQ0tfTEFZRVJTX05BTUVTID0ge1xuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBzaGFyZWQgY29kZSBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlciBidW5kbGVzLlxuICAgKi8gc2hhcmVkOiAnc2hhcmVkJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBzZXJ2ZXItb25seSBydW50aW1lIGFuZCBwaWNraW5nIHVwIGByZWFjdC1zZXJ2ZXJgIGV4cG9ydCBjb25kaXRpb25zLlxuICAgKiBJbmNsdWRpbmcgYXBwIHJvdXRlciBSU0MgcGFnZXMgYW5kIGFwcCByb3V0ZXIgY3VzdG9tIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzLlxuICAgKi8gcmVhY3RTZXJ2ZXJDb21wb25lbnRzOiAncnNjJyxcbiAgICAvKipcbiAgICogU2VydmVyIFNpZGUgUmVuZGVyaW5nIGxheWVyIGZvciBhcHAgKHNzcikuXG4gICAqLyBzZXJ2ZXJTaWRlUmVuZGVyaW5nOiAnc3NyJyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgYWN0aW9ucy5cbiAgICovIGFjdGlvbkJyb3dzZXI6ICdhY3Rpb24tYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBOb2RlLmpzIGJ1bmRsZSBsYXllciBmb3IgdGhlIEFQSSByb3V0ZXMuXG4gICAqLyBhcGlOb2RlOiAnYXBpLW5vZGUnLFxuICAgIC8qKlxuICAgKiBUaGUgRWRnZSBMaXRlIGJ1bmRsZSBsYXllciBmb3IgdGhlIEFQSSByb3V0ZXMuXG4gICAqLyBhcGlFZGdlOiAnYXBpLWVkZ2UnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBtaWRkbGV3YXJlIGNvZGUuXG4gICAqLyBtaWRkbGV3YXJlOiAnbWlkZGxld2FyZScsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIGluc3RydW1lbnRhdGlvbiBob29rcy5cbiAgICovIGluc3RydW1lbnQ6ICdpbnN0cnVtZW50JyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBhc3NldHMgb24gdGhlIGVkZ2UuXG4gICAqLyBlZGdlQXNzZXQ6ICdlZGdlLWFzc2V0JyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgQXBwIGRpcmVjdG9yeS5cbiAgICovIGFwcFBhZ2VzQnJvd3NlcjogJ2FwcC1wYWdlcy1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgUGFnZXMgZGlyZWN0b3J5LlxuICAgKi8gcGFnZXNEaXJCcm93c2VyOiAncGFnZXMtZGlyLWJyb3dzZXInLFxuICAgIC8qKlxuICAgKiBUaGUgRWRnZSBMaXRlIGJ1bmRsZSBsYXllciBmb3IgUGFnZXMgZGlyZWN0b3J5LlxuICAgKi8gcGFnZXNEaXJFZGdlOiAncGFnZXMtZGlyLWVkZ2UnLFxuICAgIC8qKlxuICAgKiBUaGUgTm9kZS5qcyBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyTm9kZTogJ3BhZ2VzLWRpci1ub2RlJ1xufTtcbmNvbnN0IFdFQlBBQ0tfTEFZRVJTID0ge1xuICAgIC4uLldFQlBBQ0tfTEFZRVJTX05BTUVTLFxuICAgIEdST1VQOiB7XG4gICAgICAgIGJ1aWx0aW5SZWFjdDogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBzZXJ2ZXJPbmx5OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuaW5zdHJ1bWVudCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLm1pZGRsZXdhcmVcbiAgICAgICAgXSxcbiAgICAgICAgbmV1dHJhbFRhcmdldDogW1xuICAgICAgICAgICAgLy8gcGFnZXMgYXBpXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcGlOb2RlLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBpRWRnZVxuICAgICAgICBdLFxuICAgICAgICBjbGllbnRPbmx5OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyXG4gICAgICAgIF0sXG4gICAgICAgIGJ1bmRsZWQ6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2hhcmVkLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuaW5zdHJ1bWVudCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLm1pZGRsZXdhcmVcbiAgICAgICAgXSxcbiAgICAgICAgYXBwUGFnZXM6IFtcbiAgICAgICAgICAgIC8vIGFwcCByb3V0ZXIgcGFnZXMgYW5kIGxheW91dHNcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNlcnZlclNpZGVSZW5kZXJpbmcsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBQYWdlc0Jyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyXG4gICAgICAgIF1cbiAgICB9XG59O1xuY29uc3QgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTID0ge1xuICAgIGVkZ2VTU1JFbnRyeTogJ19fbmV4dF9lZGdlX3Nzcl9lbnRyeV9fJyxcbiAgICBtZXRhZGF0YTogJ19fbmV4dF9tZXRhZGF0YV9fJyxcbiAgICBtZXRhZGF0YVJvdXRlOiAnX19uZXh0X21ldGFkYXRhX3JvdXRlX18nLFxuICAgIG1ldGFkYXRhSW1hZ2VNZXRhOiAnX19uZXh0X21ldGFkYXRhX2ltYWdlX21ldGFfXydcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/constants.js\n"); /***/ }), /***/ "./node_modules/next/dist/lib/detached-promise.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/lib/detached-promise.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * A `Promise.withResolvers` implementation that exposes the `resolve` and\n * `reject` functions on a `Promise`.\n *\n * @see https://tc39.es/proposal-promise-with-resolvers/\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DetachedPromise\", ({\n enumerable: true,\n get: function() {\n return DetachedPromise;\n }\n}));\nclass DetachedPromise {\n constructor(){\n let resolve;\n let reject;\n // Create the promise and assign the resolvers to the object.\n this.promise = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n // We know that resolvers is defined because the Promise constructor runs\n // synchronously.\n this.resolve = resolve;\n this.reject = reject;\n }\n}\n\n//# sourceMappingURL=detached-promise.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBgUHJvbWlzZS53aXRoUmVzb2x2ZXJzYCBpbXBsZW1lbnRhdGlvbiB0aGF0IGV4cG9zZXMgdGhlIGByZXNvbHZlYCBhbmRcbiAqIGByZWplY3RgIGZ1bmN0aW9ucyBvbiBhIGBQcm9taXNlYC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1wcm9taXNlLXdpdGgtcmVzb2x2ZXJzL1xuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGV0YWNoZWRQcm9taXNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBEZXRhY2hlZFByb21pc2U7XG4gICAgfVxufSk7XG5jbGFzcyBEZXRhY2hlZFByb21pc2Uge1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIGxldCByZXNvbHZlO1xuICAgICAgICBsZXQgcmVqZWN0O1xuICAgICAgICAvLyBDcmVhdGUgdGhlIHByb21pc2UgYW5kIGFzc2lnbiB0aGUgcmVzb2x2ZXJzIHRvIHRoZSBvYmplY3QuXG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgICAgIHJlc29sdmUgPSByZXM7XG4gICAgICAgICAgICByZWplY3QgPSByZWo7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBXZSBrbm93IHRoYXQgcmVzb2x2ZXJzIGlzIGRlZmluZWQgYmVjYXVzZSB0aGUgUHJvbWlzZSBjb25zdHJ1Y3RvciBydW5zXG4gICAgICAgIC8vIHN5bmNocm9ub3VzbHkuXG4gICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIHRoaXMucmVqZWN0ID0gcmVqZWN0O1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV0YWNoZWQtcHJvbWlzZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/detached-promise.js\n"); /***/ }), /***/ "./node_modules/next/dist/lib/is-error.js": /*!************************************************!*\ !*** ./node_modules/next/dist/lib/is-error.js ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyw2RkFBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZGVmYXVsdDogbnVsbCxcbiAgICBnZXRQcm9wZXJFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICAvKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIE5leHRFcnJvci5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gcHJpbnQgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCBwcm9wZXJ0aWVzIGxpa2UgYGNvZGVgICYgYGRpZ2VzdGAuXG4gKi8gZGVmYXVsdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Vycm9yO1xuICAgIH0sXG4gICAgZ2V0UHJvcGVyRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UHJvcGVyRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfaXNwbGFpbm9iamVjdCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2lzLXBsYWluLW9iamVjdFwiKTtcbmZ1bmN0aW9uIGlzRXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnICYmIGVyciAhPT0gbnVsbCAmJiAnbmFtZScgaW4gZXJyICYmICdtZXNzYWdlJyBpbiBlcnI7XG59XG5mdW5jdGlvbiBzYWZlU3RyaW5naWZ5KG9iaikge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgV2Vha1NldCgpO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIChfa2V5LCB2YWx1ZSk9PntcbiAgICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gb2JqZWN0IGFuZCBhbHJlYWR5IHNlZW4sIHJlcGxhY2Ugd2l0aCBcIltDaXJjdWxhcl1cIlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWVuLmFkZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0UHJvcGVyRXJyb3IoZXJyKSB7XG4gICAgaWYgKGlzRXJyb3IoZXJyKSkge1xuICAgICAgICByZXR1cm4gZXJyO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gcHJvdmlkZSBiZXR0ZXIgZXJyb3IgZm9yIGNhc2Ugd2hlcmUgYHRocm93IHVuZGVmaW5lZGBcbiAgICAgICAgLy8gaXMgY2FsbGVkIGluIGRldmVsb3BtZW50XG4gICAgICAgIGlmICh0eXBlb2YgZXJyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0FuIHVuZGVmaW5lZCBlcnJvciB3YXMgdGhyb3duLCAnICsgJ3NlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3RocmV3LXVuZGVmaW5lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFOThcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBIG51bGwgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTMzNlwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoKDAsIF9pc3BsYWlub2JqZWN0LmlzUGxhaW5PYmplY3QpKGVycikgPyBzYWZlU3RyaW5naWZ5KGVycikgOiBlcnIgKyAnJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); /***/ }), /***/ "./node_modules/next/dist/lib/pretty-bytes.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/lib/pretty-bytes.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/*\nMIT License\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return prettyBytes;\n }\n}));\nconst UNITS = [\n 'B',\n 'kB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n 'EB',\n 'ZB',\n 'YB'\n];\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/ const toLocaleString = (number, locale)=>{\n let result = number;\n if (typeof locale === 'string') {\n result = number.toLocaleString(locale);\n } else if (locale === true) {\n result = number.toLocaleString();\n }\n return result;\n};\nfunction prettyBytes(number, options) {\n if (!Number.isFinite(number)) {\n throw Object.defineProperty(new TypeError(`Expected a finite number, got ${typeof number}: ${number}`), \"__NEXT_ERROR_CODE\", {\n value: \"E572\",\n enumerable: false,\n configurable: true\n });\n }\n options = Object.assign({}, options);\n if (options.signed && number === 0) {\n return ' 0 B';\n }\n const isNegative = number < 0;\n const prefix = isNegative ? '-' : options.signed ? '+' : '';\n if (isNegative) {\n number = -number;\n }\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale);\n return prefix + numberString + ' B';\n }\n const exponent = Math.min(Math.floor(Math.log10(number) / 3), UNITS.length - 1);\n number = Number((number / Math.pow(1000, exponent)).toPrecision(3));\n const numberString = toLocaleString(number, options.locale);\n const unit = UNITS[exponent];\n return prefix + numberString + ' ' + unit;\n}\n\n//# sourceMappingURL=pretty-bytes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9wcmV0dHktYnl0ZXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBLEdBQWdCO0FBQ2hCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUZBQW1GLGNBQWMsSUFBSSxPQUFPO0FBQzVHO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvcHJldHR5LWJ5dGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5NSVQgTGljZW5zZVxuXG5Db3B5cmlnaHQgKGMpIFNpbmRyZSBTb3JodXMgPHNpbmRyZXNvcmh1c0BnbWFpbC5jb20+IChzaW5kcmVzb3JodXMuY29tKVxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG5UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4qLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZXR0eUJ5dGVzO1xuICAgIH1cbn0pO1xuY29uc3QgVU5JVFMgPSBbXG4gICAgJ0InLFxuICAgICdrQicsXG4gICAgJ01CJyxcbiAgICAnR0InLFxuICAgICdUQicsXG4gICAgJ1BCJyxcbiAgICAnRUInLFxuICAgICdaQicsXG4gICAgJ1lCJ1xuXTtcbi8qXG5Gb3JtYXRzIHRoZSBnaXZlbiBudW1iZXIgdXNpbmcgYE51bWJlciN0b0xvY2FsZVN0cmluZ2AuXG4tIElmIGxvY2FsZSBpcyBhIHN0cmluZywgdGhlIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIGEgbG9jYWxlLWtleSAoZm9yIGV4YW1wbGU6IGBkZWApLlxuLSBJZiBsb2NhbGUgaXMgdHJ1ZSwgdGhlIHN5c3RlbSBkZWZhdWx0IGxvY2FsZSBpcyB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbi0gSWYgbm8gdmFsdWUgZm9yIGxvY2FsZSBpcyBzcGVjaWZpZWQsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQgdW5tb2RpZmllZC5cbiovIGNvbnN0IHRvTG9jYWxlU3RyaW5nID0gKG51bWJlciwgbG9jYWxlKT0+e1xuICAgIGxldCByZXN1bHQgPSBudW1iZXI7XG4gICAgaWYgKHR5cGVvZiBsb2NhbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlc3VsdCA9IG51bWJlci50b0xvY2FsZVN0cmluZyhsb2NhbGUpO1xuICAgIH0gZWxzZSBpZiAobG9jYWxlID09PSB0cnVlKSB7XG4gICAgICAgIHJlc3VsdCA9IG51bWJlci50b0xvY2FsZVN0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmZ1bmN0aW9uIHByZXR0eUJ5dGVzKG51bWJlciwgb3B0aW9ucykge1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG51bWJlcikpIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgZmluaXRlIG51bWJlciwgZ290ICR7dHlwZW9mIG51bWJlcn06ICR7bnVtYmVyfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkU1NzJcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbnMuc2lnbmVkICYmIG51bWJlciA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJyAwIEInO1xuICAgIH1cbiAgICBjb25zdCBpc05lZ2F0aXZlID0gbnVtYmVyIDwgMDtcbiAgICBjb25zdCBwcmVmaXggPSBpc05lZ2F0aXZlID8gJy0nIDogb3B0aW9ucy5zaWduZWQgPyAnKycgOiAnJztcbiAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICBudW1iZXIgPSAtbnVtYmVyO1xuICAgIH1cbiAgICBpZiAobnVtYmVyIDwgMSkge1xuICAgICAgICBjb25zdCBudW1iZXJTdHJpbmcgPSB0b0xvY2FsZVN0cmluZyhudW1iZXIsIG9wdGlvbnMubG9jYWxlKTtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIG51bWJlclN0cmluZyArICcgQic7XG4gICAgfVxuICAgIGNvbnN0IGV4cG9uZW50ID0gTWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZzEwKG51bWJlcikgLyAzKSwgVU5JVFMubGVuZ3RoIC0gMSk7XG4gICAgbnVtYmVyID0gTnVtYmVyKChudW1iZXIgLyBNYXRoLnBvdygxMDAwLCBleHBvbmVudCkpLnRvUHJlY2lzaW9uKDMpKTtcbiAgICBjb25zdCBudW1iZXJTdHJpbmcgPSB0b0xvY2FsZVN0cmluZyhudW1iZXIsIG9wdGlvbnMubG9jYWxlKTtcbiAgICBjb25zdCB1bml0ID0gVU5JVFNbZXhwb25lbnRdO1xuICAgIHJldHVybiBwcmVmaXggKyBudW1iZXJTdHJpbmcgKyAnICcgKyB1bml0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmV0dHktYnl0ZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/pretty-bytes.js\n"); /***/ }), /***/ "./node_modules/next/dist/lib/redirect-status.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/lib/redirect-status.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n allowedStatusCodes: function() {\n return allowedStatusCodes;\n },\n getRedirectStatus: function() {\n return getRedirectStatus;\n },\n modifyRouteRegex: function() {\n return modifyRouteRegex;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ../client/components/redirect-status-code */ \"./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst allowedStatusCodes = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction getRedirectStatus(route) {\n return route.statusCode || (route.permanent ? _redirectstatuscode.RedirectStatusCode.PermanentRedirect : _redirectstatuscode.RedirectStatusCode.TemporaryRedirect);\n}\nfunction modifyRouteRegex(regex, restrictedPaths) {\n if (restrictedPaths) {\n regex = regex.replace(/\\^/, `^(?!${restrictedPaths.map((path)=>path.replace(/\\//g, '\\\\/')).join('|')})`);\n }\n regex = regex.replace(/\\$$/, '(?:\\\\/)?$');\n return regex;\n}\n\n//# sourceMappingURL=redirect-status.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9yZWRpcmVjdC1zdGF0dXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsbUJBQU8sQ0FBQyxxSEFBMkM7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLGtFQUFrRTtBQUM3RztBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9yZWRpcmVjdC1zdGF0dXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBhbGxvd2VkU3RhdHVzQ29kZXM6IG51bGwsXG4gICAgZ2V0UmVkaXJlY3RTdGF0dXM6IG51bGwsXG4gICAgbW9kaWZ5Um91dGVSZWdleDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBhbGxvd2VkU3RhdHVzQ29kZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWxsb3dlZFN0YXR1c0NvZGVzO1xuICAgIH0sXG4gICAgZ2V0UmVkaXJlY3RTdGF0dXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UmVkaXJlY3RTdGF0dXM7XG4gICAgfSxcbiAgICBtb2RpZnlSb3V0ZVJlZ2V4OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1vZGlmeVJvdXRlUmVnZXg7XG4gICAgfVxufSk7XG5jb25zdCBfcmVkaXJlY3RzdGF0dXNjb2RlID0gcmVxdWlyZShcIi4uL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlXCIpO1xuY29uc3QgYWxsb3dlZFN0YXR1c0NvZGVzID0gbmV3IFNldChbXG4gICAgMzAxLFxuICAgIDMwMixcbiAgICAzMDMsXG4gICAgMzA3LFxuICAgIDMwOFxuXSk7XG5mdW5jdGlvbiBnZXRSZWRpcmVjdFN0YXR1cyhyb3V0ZSkge1xuICAgIHJldHVybiByb3V0ZS5zdGF0dXNDb2RlIHx8IChyb3V0ZS5wZXJtYW5lbnQgPyBfcmVkaXJlY3RzdGF0dXNjb2RlLlJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCA6IF9yZWRpcmVjdHN0YXR1c2NvZGUuUmVkaXJlY3RTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0KTtcbn1cbmZ1bmN0aW9uIG1vZGlmeVJvdXRlUmVnZXgocmVnZXgsIHJlc3RyaWN0ZWRQYXRocykge1xuICAgIGlmIChyZXN0cmljdGVkUGF0aHMpIHtcbiAgICAgICAgcmVnZXggPSByZWdleC5yZXBsYWNlKC9cXF4vLCBgXig/ISR7cmVzdHJpY3RlZFBhdGhzLm1hcCgocGF0aCk9PnBhdGgucmVwbGFjZSgvXFwvL2csICdcXFxcLycpKS5qb2luKCd8Jyl9KWApO1xuICAgIH1cbiAgICByZWdleCA9IHJlZ2V4LnJlcGxhY2UoL1xcJCQvLCAnKD86XFxcXC8pPyQnKTtcbiAgICByZXR1cm4gcmVnZXg7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZGlyZWN0LXN0YXR1cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/redirect-status.js\n"); /***/ }), /***/ "./node_modules/next/dist/lib/scheduler.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/lib/scheduler.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBhdExlYXN0T25lVGFzazogbnVsbCxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogbnVsbCxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IG51bGwsXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXRMZWFzdE9uZVRhc2s7XG4gICAgfSxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZUltbWVkaWF0ZTtcbiAgICB9LFxuICAgIHNjaGVkdWxlT25OZXh0VGljazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZU9uTmV4dFRpY2s7XG4gICAgfSxcbiAgICB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaztcbiAgICB9XG59KTtcbmNvbnN0IHNjaGVkdWxlT25OZXh0VGljayA9IChjYik9PntcbiAgICAvLyBXZSB1c2UgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigpIGhlcmUgc28gdGhhdCB0aGUgb3BlcmF0aW9uIGlzIHNjaGVkdWxlZCBhdFxuICAgIC8vIHRoZSBlbmQgb2YgdGhlIHByb21pc2Ugam9iIHF1ZXVlLCB3ZSB0aGVuIGFkZCBpdCB0byB0aGUgbmV4dCBwcm9jZXNzIHRpY2tcbiAgICAvLyB0byBlbnN1cmUgaXQncyBldmFsdWF0ZWQgYWZ0ZXJ3YXJkcy5cbiAgICAvL1xuICAgIC8vIFRoaXMgd2FzIGluc3BpcmVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGF0YUxvYWRlciBpbnRlcmZhY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsL2RhdGFsb2FkZXIvYmxvYi9kMzM2YmQxNTI4MjY2NGUwYmU0YjRhNjU3Y2I3OTZmMDliYWZiYzZiL3NyYy9pbmRleC5qcyNMMjEzLUwyNTVcbiAgICAvL1xuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soY2IpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuY29uc3Qgc2NoZWR1bGVJbW1lZGlhdGUgPSAoY2IpPT57XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgIHNldFRpbWVvdXQoY2IsIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEltbWVkaWF0ZShjYik7XG4gICAgfVxufTtcbmZ1bmN0aW9uIGF0TGVhc3RPbmVUYXNrKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnNjaGVkdWxlSW1tZWRpYXRlKHJlc29sdmUpKTtcbn1cbmZ1bmN0aW9uIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRUaW1lb3V0KHIsIDApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRJbW1lZGlhdGUocikpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2NoZWR1bGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/scheduler.js\n"); /***/ }), /***/ "./node_modules/next/dist/pages/_app.js": /*!**********************************************!*\ !*** ./node_modules/next/dist/pages/_app.js ***! \**********************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return App;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */ async function appGetInitialProps(param) {\n let { Component, ctx } = param;\n const pageProps = await (0, _utils.loadGetInitialProps)(Component, ctx);\n return {\n pageProps\n };\n}\nclass App extends _react.default.Component {\n render() {\n const { Component, pageProps } = this.props;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...pageProps\n });\n }\n}\nApp.origGetInitialProps = appGetInitialProps;\nApp.getInitialProps = appGetInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_app.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19hcHAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztlQWlDcUJBOzs7Ozs0RUFqQ0g7bUNBV2tCO0FBVXBDOzs7Q0FHQyxHQUNELGVBQWVDLG1CQUFtQixLQUdyQjtJQUhxQixNQUNoQ0MsU0FBUyxFQUNUQyxHQUFHLEVBQ1EsR0FIcUI7SUFJaEMsTUFBTUMsWUFBWSxNQUFNQyxDQUFBQSxHQUFBQSxPQUFBQSxtQkFBQUEsRUFBb0JILFdBQVdDO0lBQ3ZELE9BQU87UUFBRUM7SUFBVTtBQUNyQjtBQUVlLE1BQU1KLFlBQXNDTSxPQUFBQSxPQUFLLENBQUNKLFNBQVM7SUFPeEVLLFNBQVM7UUFDUCxNQUFNLEVBQUVMLFNBQVMsRUFBRUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDSSxLQUFLO1FBRTNDLE9BQU8sV0FBUCxHQUFPLHFCQUFDTixXQUFBQTtZQUFXLEdBQUdFLFNBQVM7O0lBQ2pDO0FBQ0Y7QUFacUJKLElBSVpTLG1CQUFBQSxHQUFzQlI7QUFKVkQsSUFLWlUsZUFBQUEsR0FBa0JUIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvc3JjL3BhZ2VzL19hcHAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUge1xuICBBcHBDb250ZXh0VHlwZSxcbiAgQXBwSW5pdGlhbFByb3BzLFxuICBBcHBQcm9wc1R5cGUsXG4gIE5leHRXZWJWaXRhbHNNZXRyaWMsXG4gIEFwcFR5cGUsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFJvdXRlciB9IGZyb20gJy4uL2NsaWVudC9yb3V0ZXInXG5cbmltcG9ydCB7IGxvYWRHZXRJbml0aWFsUHJvcHMgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuXG5leHBvcnQgdHlwZSB7IEFwcEluaXRpYWxQcm9wcywgQXBwVHlwZSB9XG5cbmV4cG9ydCB0eXBlIHsgTmV4dFdlYlZpdGFsc01ldHJpYyB9XG5cbmV4cG9ydCB0eXBlIEFwcENvbnRleHQgPSBBcHBDb250ZXh0VHlwZTxSb3V0ZXI+XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzPFAgPSBhbnk+ID0gQXBwUHJvcHNUeXBlPFJvdXRlciwgUD5cblxuLyoqXG4gKiBgQXBwYCBjb21wb25lbnQgaXMgdXNlZCBmb3IgaW5pdGlhbGl6ZSBvZiBwYWdlcy4gSXQgYWxsb3dzIGZvciBvdmVyd3JpdGluZyBhbmQgZnVsbCBjb250cm9sIG9mIHRoZSBgcGFnZWAgaW5pdGlhbGl6YXRpb24uXG4gKiBUaGlzIGFsbG93cyBmb3Iga2VlcGluZyBzdGF0ZSBiZXR3ZWVuIG5hdmlnYXRpb24sIGN1c3RvbSBlcnJvciBoYW5kbGluZywgaW5qZWN0aW5nIGFkZGl0aW9uYWwgZGF0YS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYXBwR2V0SW5pdGlhbFByb3BzKHtcbiAgQ29tcG9uZW50LFxuICBjdHgsXG59OiBBcHBDb250ZXh0KTogUHJvbWlzZTxBcHBJbml0aWFsUHJvcHM+IHtcbiAgY29uc3QgcGFnZVByb3BzID0gYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIGN0eClcbiAgcmV0dXJuIHsgcGFnZVByb3BzIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBwPFAgPSBhbnksIENQID0ge30sIFMgPSB7fT4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XG4gIFAgJiBBcHBQcm9wczxDUD4sXG4gIFNcbj4ge1xuICBzdGF0aWMgb3JpZ0dldEluaXRpYWxQcm9wcyA9IGFwcEdldEluaXRpYWxQcm9wc1xuICBzdGF0aWMgZ2V0SW5pdGlhbFByb3BzID0gYXBwR2V0SW5pdGlhbFByb3BzXG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSA9IHRoaXMucHJvcHMgYXMgQXBwUHJvcHM8Q1A+XG5cbiAgICByZXR1cm4gPENvbXBvbmVudCB7Li4ucGFnZVByb3BzfSAvPlxuICB9XG59XG4iXSwibmFtZXMiOlsiQXBwIiwiYXBwR2V0SW5pdGlhbFByb3BzIiwiQ29tcG9uZW50IiwiY3R4IiwicGFnZVByb3BzIiwibG9hZEdldEluaXRpYWxQcm9wcyIsIlJlYWN0IiwicmVuZGVyIiwicHJvcHMiLCJvcmlnR2V0SW5pdGlhbFByb3BzIiwiZ2V0SW5pdGlhbFByb3BzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_app.js\n"); /***/ }), /***/ "./node_modules/next/dist/pages/_document.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/pages/_document.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("/// <reference types=\"webpack/module.d.ts\" />\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Head: function() {\n return Head;\n },\n Html: function() {\n return Html;\n },\n Main: function() {\n return Main;\n },\n NextScript: function() {\n return NextScript;\n },\n /**\n * `Document` component handles the initial `document` markup and renders only on the server side.\n * Commonly used for implementing server side rendering for `css-in-js` libraries.\n */ default: function() {\n return Document;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"react\"));\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"./node_modules/next/dist/shared/lib/constants.js\");\nconst _getpagefiles = __webpack_require__(/*! ../server/get-page-files */ \"./node_modules/next/dist/server/get-page-files.js\");\nconst _htmlescape = __webpack_require__(/*! ../server/htmlescape */ \"./node_modules/next/dist/server/htmlescape.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst _htmlcontextsharedruntime = __webpack_require__(/*! ../shared/lib/html-context.shared-runtime */ \"./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\");\nconst _encodeuripath = __webpack_require__(/*! ../shared/lib/encode-uri-path */ \"./node_modules/next/dist/shared/lib/encode-uri-path.js\");\nconst _tracer = __webpack_require__(/*! ../server/lib/trace/tracer */ \"./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _utils = __webpack_require__(/*! ../server/lib/trace/utils */ \"./node_modules/next/dist/server/lib/trace/utils.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\n/** Set of pages that have triggered a large data warning on production mode. */ const largePageDataWarnings = new Set();\nfunction getDocumentFiles(buildManifest, pathname, inAmpMode) {\n const sharedFiles = (0, _getpagefiles.getPageFiles)(buildManifest, '/_app');\n const pageFiles = true && inAmpMode ? [] : (0, _getpagefiles.getPageFiles)(buildManifest, pathname);\n return {\n sharedFiles,\n pageFiles,\n allFiles: [\n ...new Set([\n ...sharedFiles,\n ...pageFiles\n ])\n ]\n };\n}\nfunction getPolyfillScripts(context, props) {\n // polyfills.js has to be rendered as nomodule without async\n // It also has to be the first script to load\n const { assetPrefix, buildManifest, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map((polyfill)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n defer: !disableOptimizedLoading,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin,\n noModule: true,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(polyfill)}${assetQueryString}`\n }, polyfill));\n}\nfunction hasComponentProps(child) {\n return !!child && !!child.props;\n}\nfunction AmpStyles({ styles }) {\n if (!styles) return null;\n // try to parse styles from fragment for backwards compat\n const curStyles = Array.isArray(styles) ? styles : [];\n if (styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement\n Array.isArray(styles.props.children)) {\n const hasStyles = (el)=>{\n var _el_props_dangerouslySetInnerHTML, _el_props;\n return el == null ? void 0 : (_el_props = el.props) == null ? void 0 : (_el_props_dangerouslySetInnerHTML = _el_props.dangerouslySetInnerHTML) == null ? void 0 : _el_props_dangerouslySetInnerHTML.__html;\n };\n // @ts-ignore Property 'props' does not exist on type ReactElement\n styles.props.children.forEach((child)=>{\n if (Array.isArray(child)) {\n child.forEach((el)=>hasStyles(el) && curStyles.push(el));\n } else if (hasStyles(child)) {\n curStyles.push(child);\n }\n });\n }\n /* Add custom styles before AMP styles to prevent accidental overrides */ return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-custom\": \"\",\n dangerouslySetInnerHTML: {\n __html: curStyles.map((style)=>style.props.dangerouslySetInnerHTML.__html).join('').replace(/\\/\\*# sourceMappingURL=.*\\*\\//g, '').replace(/\\/\\*@ sourceURL=.*?\\*\\//g, '')\n }\n });\n}\nfunction getDynamicChunks(context, props, files) {\n const { dynamicImports, assetPrefix, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js') || files.allFiles.includes(file)) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getScripts(context, props, files) {\n var _buildManifest_lowPriorityFiles;\n const { assetPrefix, buildManifest, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n const normalScripts = files.allFiles.filter((file)=>file.endsWith('.js'));\n const lowPriorityScripts = (_buildManifest_lowPriorityFiles = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest_lowPriorityFiles.filter((file)=>file.endsWith('.js'));\n return [\n ...normalScripts,\n ...lowPriorityScripts\n ].map((file)=>{\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getPreNextWorkerScripts(context, props) {\n const { assetPrefix, scriptLoader, crossOrigin, nextScriptWorkers } = context;\n // disable `nextScriptWorkers` in edge runtime\n if (!nextScriptWorkers || \"nodejs\" === 'edge') return null;\n try {\n // @ts-expect-error: Prevent webpack from processing this require\n let { partytownSnippet } = require('@builder.io/partytown/integration');\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n // Check to see if the user has defined their own Partytown configuration\n const userDefinedConfig = children.find((child)=>{\n var _child_props_dangerouslySetInnerHTML, _child_props;\n return hasComponentProps(child) && (child == null ? void 0 : (_child_props = child.props) == null ? void 0 : (_child_props_dangerouslySetInnerHTML = _child_props.dangerouslySetInnerHTML) == null ? void 0 : _child_props_dangerouslySetInnerHTML.__html.length) && 'data-partytown-config' in child.props;\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !userDefinedConfig && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown-config\": \"\",\n dangerouslySetInnerHTML: {\n __html: `\n partytown = {\n lib: \"${assetPrefix}/_next/static/~partytown/\"\n };\n `\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown\": \"\",\n dangerouslySetInnerHTML: {\n __html: partytownSnippet()\n }\n }),\n (scriptLoader.worker || []).map((file, index)=>{\n const { strategy, src, children: scriptChildren, dangerouslySetInnerHTML, ...scriptProps } = file;\n let srcProps = {};\n if (src) {\n // Use external src if provided\n srcProps.src = src;\n } else if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n // Embed inline script if provided with dangerouslySetInnerHTML\n srcProps.dangerouslySetInnerHTML = {\n __html: dangerouslySetInnerHTML.__html\n };\n } else if (scriptChildren) {\n // Embed inline script if provided with children\n srcProps.dangerouslySetInnerHTML = {\n __html: typeof scriptChildren === 'string' ? scriptChildren : Array.isArray(scriptChildren) ? scriptChildren.join('') : ''\n };\n } else {\n throw Object.defineProperty(new Error('Invalid usage of next/script. Did you forget to include a src attribute or an inline script? https://nextjs.org/docs/messages/invalid-script'), \"__NEXT_ERROR_CODE\", {\n value: \"E82\",\n enumerable: false,\n configurable: true\n });\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...srcProps,\n ...scriptProps,\n type: \"text/partytown\",\n key: src || index,\n nonce: props.nonce,\n \"data-nscript\": \"worker\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n })\n ]\n });\n } catch (err) {\n if ((0, _iserror.default)(err) && err.code !== 'MODULE_NOT_FOUND') {\n console.warn(`Warning: ${err.message}`);\n }\n return null;\n }\n}\nfunction getPreNextScripts(context, props) {\n const { scriptLoader, disableOptimizedLoading, crossOrigin } = context;\n const webWorkerScripts = getPreNextWorkerScripts(context, props);\n const beforeInteractiveScripts = (scriptLoader.beforeInteractive || []).filter((script)=>script.src).map((file, index)=>{\n const { strategy, ...scriptProps } = file;\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n key: scriptProps.src || index,\n defer: scriptProps.defer ?? !disableOptimizedLoading,\n nonce: scriptProps.nonce || props.nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n webWorkerScripts,\n beforeInteractiveScripts\n ]\n });\n}\nfunction getHeadHTMLProps(props) {\n const { crossOrigin, nonce, ...restProps } = props;\n // This assignment is necessary for additional type checking to avoid unsupported attributes in <head>\n const headProps = restProps;\n return headProps;\n}\nfunction getAmpPath(ampPath, asPath) {\n return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`;\n}\nfunction getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix = '') {\n if (!nextFontManifest) {\n return {\n preconnect: null,\n preload: null\n };\n }\n const appFontsEntry = nextFontManifest.pages['/_app'];\n const pageFontsEntry = nextFontManifest.pages[dangerousAsPath];\n const preloadedFontFiles = Array.from(new Set([\n ...appFontsEntry ?? [],\n ...pageFontsEntry ?? []\n ]));\n // If no font files should preload but there's an entry for the path, add a preconnect tag.\n const preconnectToSelf = !!(preloadedFontFiles.length === 0 && (appFontsEntry || pageFontsEntry));\n return {\n preconnect: preconnectToSelf ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n \"data-next-font\": nextFontManifest.pagesUsingSizeAdjust ? 'size-adjust' : '',\n rel: \"preconnect\",\n href: \"/\",\n crossOrigin: \"anonymous\"\n }) : null,\n preload: preloadedFontFiles ? preloadedFontFiles.map((fontFile)=>{\n const ext = /\\.(woff|woff2|eot|ttf|otf)$/.exec(fontFile)[1];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFile)}`,\n as: \"font\",\n type: `font/${ext}`,\n crossOrigin: \"anonymous\",\n \"data-next-font\": fontFile.includes('-s') ? 'size-adjust' : ''\n }, fontFile);\n }) : null\n };\n}\nclass Head extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getCssLinks(files) {\n const { assetPrefix, assetQueryString, dynamicImports, dynamicCssManifest, crossOrigin, optimizeCss } = this.context;\n const cssFiles = files.allFiles.filter((f)=>f.endsWith('.css'));\n const sharedFiles = new Set(files.sharedFiles);\n // Unmanaged files are CSS files that will be handled directly by the\n // webpack runtime (`mini-css-extract-plugin`).\n let unmanagedFiles = new Set([]);\n let localDynamicCssFiles = Array.from(new Set(dynamicImports.filter((file)=>file.endsWith('.css'))));\n if (localDynamicCssFiles.length) {\n const existing = new Set(cssFiles);\n localDynamicCssFiles = localDynamicCssFiles.filter((f)=>!(existing.has(f) || sharedFiles.has(f)));\n unmanagedFiles = new Set(localDynamicCssFiles);\n cssFiles.push(...localDynamicCssFiles);\n }\n let cssLinkElements = [];\n cssFiles.forEach((file)=>{\n const isSharedFile = sharedFiles.has(file);\n const isUnmanagedFile = unmanagedFiles.has(file);\n const isFileInDynamicCssManifest = dynamicCssManifest.has(file);\n if (!optimizeCss) {\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"style\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, `${file}-preload`));\n }\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"stylesheet\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-n-g\": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined,\n \"data-n-p\": isSharedFile || isUnmanagedFile || isFileInDynamicCssManifest ? undefined : ''\n }, file));\n });\n return cssLinkElements.length === 0 ? null : cssLinkElements;\n }\n getPreloadDynamicChunks() {\n const { dynamicImports, assetPrefix, assetQueryString, crossOrigin } = this.context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js')) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file);\n }) // Filter out nulled scripts\n .filter(Boolean);\n }\n getPreloadMainLinks(files) {\n const { assetPrefix, assetQueryString, scriptLoader, crossOrigin } = this.context;\n const preloadFiles = files.allFiles.filter((file)=>{\n return file.endsWith('.js');\n });\n return [\n ...(scriptLoader.beforeInteractive || []).map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: file.src,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file.src)),\n ...preloadFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file))\n ];\n }\n getBeforeInteractiveInlineScripts() {\n const { scriptLoader } = this.context;\n const { nonce, crossOrigin } = this.props;\n return (scriptLoader.beforeInteractive || []).filter((script)=>!script.src && (script.dangerouslySetInnerHTML || script.children)).map((file, index)=>{\n const { strategy, children, dangerouslySetInnerHTML, src, ...scriptProps } = file;\n let html = '';\n if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n html = dangerouslySetInnerHTML.__html;\n } else if (children) {\n html = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n dangerouslySetInnerHTML: {\n __html: html\n },\n key: scriptProps.id || index,\n nonce: nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: crossOrigin || undefined\n });\n });\n }\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n render() {\n const { styles, ampPath, inAmpMode, hybridAmp, canonicalBase, __NEXT_DATA__, dangerousAsPath, headTags, unstable_runtimeJS, unstable_JsPreload, disableOptimizedLoading, optimizeCss, assetPrefix, nextFontManifest } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;\n this.context.docComponentsRendered.Head = true;\n let { head } = this.context;\n let cssPreloads = [];\n let otherHeadElements = [];\n if (head) {\n head.forEach((child)=>{\n if (child && child.type === 'link' && child.props['rel'] === 'preload' && child.props['as'] === 'style') {\n cssPreloads.push(child);\n } else {\n if (child) {\n otherHeadElements.push(/*#__PURE__*/ _react.default.cloneElement(child, {\n 'data-next-head': ''\n }));\n }\n }\n });\n head = cssPreloads.concat(otherHeadElements);\n }\n let children = _react.default.Children.toArray(this.props.children).filter(Boolean);\n // show a warning if Head contains <title> (only in development)\n if (true) {\n children = _react.default.Children.map(children, (child)=>{\n var _child_props;\n const isReactHelmet = child == null ? void 0 : (_child_props = child.props) == null ? void 0 : _child_props['data-react-helmet'];\n if (!isReactHelmet) {\n var _child_props1;\n if ((child == null ? void 0 : child.type) === 'title') {\n console.warn(\"Warning: <title> should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-title\");\n } else if ((child == null ? void 0 : child.type) === 'meta' && (child == null ? void 0 : (_child_props1 = child.props) == null ? void 0 : _child_props1.name) === 'viewport') {\n console.warn(\"Warning: viewport meta tags should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-viewport-meta\");\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n if (this.props.crossOrigin) console.warn('Warning: `Head` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n let hasAmphtmlRel = false;\n let hasCanonicalRel = false;\n // show warning and remove conflicting amp head tags\n head = _react.default.Children.map(head || [], (child)=>{\n if (!child) return child;\n const { type, props } = child;\n if ( true && inAmpMode) {\n let badProp = '';\n if (type === 'meta' && props.name === 'viewport') {\n badProp = 'name=\"viewport\"';\n } else if (type === 'link' && props.rel === 'canonical') {\n hasCanonicalRel = true;\n } else if (type === 'script') {\n // only block if\n // 1. it has a src and isn't pointing to ampproject's CDN\n // 2. it is using dangerouslySetInnerHTML without a type or\n // a type of text/javascript\n if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) {\n badProp = '<script';\n Object.keys(props).forEach((prop)=>{\n badProp += ` ${prop}=\"${props[prop]}\"`;\n });\n badProp += '/>';\n }\n }\n if (badProp) {\n console.warn(`Found conflicting amp tag \"${child.type}\" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`);\n return null;\n }\n } else {\n // non-amp mode\n if (type === 'link' && props.rel === 'amphtml') {\n hasAmphtmlRel = true;\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n const nextFontLinkTags = getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix);\n const tracingMetadata = (0, _utils.getTracedMetadata)((0, _tracer.getTracer)().getTracePropagationData(), this.context.experimentalClientTraceMetadata);\n const traceMetaTags = (tracingMetadata || []).map(({ key, value }, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: key,\n content: value\n }, `next-trace-data-${index}`));\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"head\", {\n ...getHeadHTMLProps(this.props),\n children: [\n this.context.isDevelopment && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n dangerouslySetInnerHTML: {\n __html: `body{display:none}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `body{display:block}`\n }\n })\n })\n ]\n }),\n head,\n children,\n nextFontLinkTags.preconnect,\n nextFontLinkTags.preload,\n true && inAmpMode && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width,minimum-scale=1,initial-scale=1\"\n }),\n !hasCanonicalRel && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"canonical\",\n href: canonicalBase + (__webpack_require__(/*! ../server/utils */ \"./node_modules/next/dist/server/utils.js\").cleanAmpPath)(dangerousAsPath)\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n as: \"script\",\n href: \"https://cdn.ampproject.org/v0.js\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(AmpStyles, {\n styles: styles\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}`\n }\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: true,\n src: \"https://cdn.ampproject.org/v0.js\"\n })\n ]\n }),\n !( true && inAmpMode) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !hasAmphtmlRel && hybridAmp && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"amphtml\",\n href: canonicalBase + getAmpPath(ampPath, dangerousAsPath)\n }),\n this.getBeforeInteractiveInlineScripts(),\n !optimizeCss && this.getCssLinks(files),\n !optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files),\n optimizeCss && this.getCssLinks(files),\n optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n this.context.isDevelopment && // this element is used to mount development styles so the\n // ordering matches production\n // (by default, style-loader injects at the bottom of <head />)\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n id: \"__next_css__DO_NOT_USE__\"\n }),\n traceMetaTags,\n styles || null\n ]\n }),\n /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, {}, ...headTags || [])\n ]\n });\n }\n}\nfunction handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props) {\n var _children_find_props, _children_find, _children_find_props1, _children_find1;\n if (!props.children) return;\n const scriptLoaderItems = [];\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n const headChildren = (_children_find = children.find((child)=>child.type === Head)) == null ? void 0 : (_children_find_props = _children_find.props) == null ? void 0 : _children_find_props.children;\n const bodyChildren = (_children_find1 = children.find((child)=>child.type === 'body')) == null ? void 0 : (_children_find_props1 = _children_find1.props) == null ? void 0 : _children_find_props1.children;\n // Scripts with beforeInteractive can be placed inside Head or <body> so children of both needs to be traversed\n const combinedChildren = [\n ...Array.isArray(headChildren) ? headChildren : [\n headChildren\n ],\n ...Array.isArray(bodyChildren) ? bodyChildren : [\n bodyChildren\n ]\n ];\n _react.default.Children.forEach(combinedChildren, (child)=>{\n var _child_type;\n if (!child) return;\n // When using the `next/script` component, register it in script loader.\n if ((_child_type = child.type) == null ? void 0 : _child_type.__nextScript) {\n if (child.props.strategy === 'beforeInteractive') {\n scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([\n {\n ...child.props\n }\n ]);\n return;\n } else if ([\n 'lazyOnload',\n 'afterInteractive',\n 'worker'\n ].includes(child.props.strategy)) {\n scriptLoaderItems.push(child.props);\n return;\n } else if (typeof child.props.strategy === 'undefined') {\n scriptLoaderItems.push({\n ...child.props,\n strategy: 'afterInteractive'\n });\n return;\n }\n }\n });\n __NEXT_DATA__.scriptLoader = scriptLoaderItems;\n}\nclass NextScript extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n static getInlineScriptSource(context) {\n const { __NEXT_DATA__, largePageDataBytes } = context;\n try {\n const data = JSON.stringify(__NEXT_DATA__);\n if (largePageDataWarnings.has(__NEXT_DATA__.page)) {\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n }\n const bytes = false ? 0 : Buffer.from(data).byteLength;\n const prettyBytes = (__webpack_require__(/*! ../lib/pretty-bytes */ \"./node_modules/next/dist/lib/pretty-bytes.js\")[\"default\"]);\n if (largePageDataBytes && bytes > largePageDataBytes) {\n if (false) {}\n console.warn(`Warning: data for page \"${__NEXT_DATA__.page}\"${__NEXT_DATA__.page === context.dangerousAsPath ? '' : ` (path \"${context.dangerousAsPath}\")`} is ${prettyBytes(bytes)} which exceeds the threshold of ${prettyBytes(largePageDataBytes)}, this amount of data can reduce performance.\\nSee more info here: https://nextjs.org/docs/messages/large-page-data`);\n }\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.message.indexOf('circular structure') !== -1) {\n throw Object.defineProperty(new Error(`Circular structure in \"getInitialProps\" result of page \"${__NEXT_DATA__.page}\". https://nextjs.org/docs/messages/circular-structure`), \"__NEXT_ERROR_CODE\", {\n value: \"E490\",\n enumerable: false,\n configurable: true\n });\n }\n throw err;\n }\n }\n render() {\n const { assetPrefix, inAmpMode, buildManifest, unstable_runtimeJS, docComponentsRendered, assetQueryString, disableOptimizedLoading, crossOrigin } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n docComponentsRendered.NextScript = true;\n if ( true && inAmpMode) {\n if (false) {}\n const ampDevFiles = [\n ...buildManifest.devFiles,\n ...buildManifest.polyfillFiles,\n ...buildManifest.ampDevFiles\n ];\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n },\n \"data-ampdevmode\": true\n }),\n ampDevFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-ampdevmode\": true\n }, file))\n ]\n });\n }\n if (true) {\n if (this.props.crossOrigin) console.warn('Warning: `NextScript` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file)) : null,\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n }\n }),\n disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files)\n ]\n });\n }\n}\nfunction Html(props) {\n const { inAmpMode, docComponentsRendered, locale, scriptLoader, __NEXT_DATA__ } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Html = true;\n handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"html\", {\n ...props,\n lang: props.lang || locale || undefined,\n amp: true && inAmpMode ? '' : undefined,\n \"data-ampdevmode\": true && inAmpMode && \"development\" !== 'production' ? '' : undefined\n });\n}\nfunction Main() {\n const { docComponentsRendered } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Main = true;\n // @ts-ignore\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"next-js-internal-body-render-target\", {});\n}\nclass Document extends _react.default.Component {\n /**\n * `getInitialProps` hook returns the context object with the addition of `renderPage`.\n * `renderPage` callback executes `React` rendering logic synchronously to support server-rendering wrappers\n */ static getInitialProps(ctx) {\n return ctx.defaultGetInitialProps(ctx);\n }\n render() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n nonce: this.props.nonce\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {\n nonce: this.props.nonce\n })\n ]\n })\n ]\n });\n }\n}\n// Add a special property to the built-in `Document` component so later we can\n// identify if a user customized `Document` is used or not.\nconst InternalFunctionDocument = function InternalFunctionDocument() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {})\n ]\n })\n ]\n });\n};\nDocument[_constants.NEXT_BUILTIN_DOCUMENT] = InternalFunctionDocument; //# sourceMappingURL=_document.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19kb2N1bWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2Q0FBNkM7Ozs7Ozs7Ozs7Ozs7SUF1YWhDQSxJQUFJO2VBQUpBOztJQXFzQkdDLElBQUk7ZUFBSkE7O0lBaUNBQyxJQUFJO2VBQUpBOztJQS9NSEMsVUFBVTtlQUFWQTs7SUFzTmI7OztDQUdDLEdBQ0QsT0FzQkM7ZUF0Qm9CQzs7OzsyRUF0cENXO3VDQUNNOzBDQVdUO3dDQUVROzRFQUNqQjtzREFLYjsyQ0FFdUI7b0NBRUo7bUNBQ1E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJsQyw4RUFBOEUsR0FDOUUsTUFBTUMsd0JBQXdCLElBQUlDO0FBRWxDLFNBQVNDLGlCQUNQQyxhQUE0QixFQUM1QkMsUUFBZ0IsRUFDaEJDLFNBQWtCO0lBRWxCLE1BQU1DLGNBQWlDQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFZLEVBQUNKLGVBQWU7SUFDbkUsTUFBTUssWUFDSkMsS0FBbUMsSUFBSUosWUFDbkMsRUFBRSxHQUNGRSxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhSixlQUFlQztJQUVsQyxPQUFPO1FBQ0xFO1FBQ0FFO1FBQ0FJLFVBQVU7ZUFBSSxJQUFJWCxJQUFJO21CQUFJSzttQkFBZ0JFO2FBQVU7U0FBRTtJQUN4RDtBQUNGO0FBRUEsU0FBU0ssbUJBQW1CQyxPQUFrQixFQUFFQyxLQUFrQjtJQUNoRSw0REFBNEQ7SUFDNUQsNkNBQTZDO0lBQzdDLE1BQU0sRUFDSkMsV0FBVyxFQUNYYixhQUFhLEVBQ2JjLGdCQUFnQixFQUNoQkMsdUJBQXVCLEVBQ3ZCQyxXQUFXLEVBQ1osR0FBR0w7SUFFSixPQUFPWCxjQUFjaUIsYUFBYSxDQUMvQkMsTUFBTSxDQUNMLENBQUNDLFdBQWFBLFNBQVNDLFFBQVEsQ0FBQyxVQUFVLENBQUNELFNBQVNDLFFBQVEsQ0FBQyxlQUU5REMsR0FBRyxDQUFDLENBQUNGLFdBQUFB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QSxDQUFBQTtzQ0FDRCxxQkFBQ0MsWUFBQUE7NEJBQVc2QixPQUFPLElBQUksQ0FBQ1osS0FBSyxDQUFDWSxLQUFLOzs7Ozs7SUFJM0M7QUFDRjtBQUVBLDhFQUE4RTtBQUM5RSwyREFBMkQ7QUFDM0QsTUFBTW9NLDJCQUNKLFNBQVNBO0lBQ1AscUJBQ0Usc0JBQUNuTyxNQUFBQTs7MEJBQ0MscUJBQUNELE1BQUFBLENBQUFBOzBCQUNELHNCQUFDbU8sUUFBQUE7O2tDQUNDLHFCQUFDak8sTUFBQUEsQ0FBQUE7a0NBQ0QscUJBQUNDLFlBQUFBLENBQUFBOzs7OztBQUlUO0FBQ0FDLFFBQWdCLENBQUNpTyxXQUFBQSxxQkFBcUIsQ0FBQyxHQUFHRCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL3NyYy9wYWdlcy9fZG9jdW1lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwid2VicGFjay9tb2R1bGUuZC50c1wiIC8+XG5cbmltcG9ydCBSZWFjdCwgeyB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTkVYVF9CVUlMVElOX0RPQ1VNRU5UIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7XG4gIERvY3VtZW50Q29udGV4dCxcbiAgRG9jdW1lbnRJbml0aWFsUHJvcHMsXG4gIERvY3VtZW50UHJvcHMsXG4gIERvY3VtZW50VHlwZSxcbiAgTkVYVF9EQVRBLFxufSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBTY3JpcHRQcm9wcyB9IGZyb20gJy4uL2NsaWVudC9zY3JpcHQnXG5pbXBvcnQgdHlwZSB7IE5leHRGb250TWFuaWZlc3QgfSBmcm9tICcuLi9idWlsZC93ZWJwYWNrL3BsdWdpbnMvbmV4dC1mb250LW1hbmlmZXN0LXBsdWdpbidcblxuaW1wb3J0IHsgZ2V0UGFnZUZpbGVzIH0gZnJvbSAnLi4vc2VydmVyL2dldC1wYWdlLWZpbGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZE1hbmlmZXN0IH0gZnJvbSAnLi4vc2VydmVyL2dldC1wYWdlLWZpbGVzJ1xuaW1wb3J0IHsgaHRtbEVzY2FwZUpzb25TdHJpbmcgfSBmcm9tICcuLi9zZXJ2ZXIvaHRtbGVzY2FwZSdcbmltcG9ydCBpc0Vycm9yIGZyb20gJy4uL2xpYi9pcy1lcnJvcidcblxuaW1wb3J0IHtcbiAgSHRtbENvbnRleHQsXG4gIHVzZUh0bWxDb250ZXh0LFxufSBmcm9tICcuLi9zaGFyZWQvbGliL2h0bWwtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgSHRtbFByb3BzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBlbmNvZGVVUklQYXRoIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9lbmNvZGUtdXJpLXBhdGgnXG5pbXBvcnQgdHlwZSB7IERlZXBSZWFkb25seSB9IGZyb20gJy4uL3NoYXJlZC9saWIvZGVlcC1yZWFkb25seSdcbmltcG9ydCB7IGdldFRyYWNlciB9IGZyb20gJy4uL3NlcnZlci9saWIvdHJhY2UvdHJhY2VyJ1xuaW1wb3J0IHsgZ2V0VHJhY2VkTWV0YWRhdGEgfSBmcm9tICcuLi9zZXJ2ZXIvbGliL3RyYWNlL3V0aWxzJ1xuXG5leHBvcnQgdHlwZSB7IERvY3VtZW50Q29udGV4dCwgRG9jdW1lbnRJbml0aWFsUHJvcHMsIERvY3VtZW50UHJvcHMgfVxuXG5leHBvcnQgdHlwZSBPcmlnaW5Qcm9wcyA9IHtcbiAgbm9uY2U/OiBzdHJpbmdcbiAgY3Jvc3NPcmlnaW4/OiAnYW5vbnltb3VzJyB8ICd1c2UtY3JlZGVudGlhbHMnIHwgJycgfCB1bmRlZmluZWRcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbn1cblxudHlwZSBEb2N1bWVudEZpbGVzID0ge1xuICBzaGFyZWRGaWxlczogcmVhZG9ubHkgc3RyaW5nW11cbiAgcGFnZUZpbGVzOiByZWFkb25seSBzdHJpbmdbXVxuICBhbGxGaWxlczogcmVhZG9ubHkgc3RyaW5nW11cbn1cblxudHlwZSBIZWFkSFRNTFByb3BzID0gUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxIZWFkRWxlbWVudD4sXG4gIEhUTUxIZWFkRWxlbWVudFxuPlxuXG50eXBlIEhlYWRQcm9wcyA9IE9yaWdpblByb3BzICYgSGVhZEhUTUxQcm9wc1xuXG4vKiogU2V0IG9mIHBhZ2VzIHRoYXQgaGF2ZSB0cmlnZ2VyZWQgYSBsYXJnZSBkYXRhIHdhcm5pbmcgb24gcHJvZHVjdGlvbiBtb2RlLiAqL1xuY29uc3QgbGFyZ2VQYWdlRGF0YVdhcm5pbmdzID0gbmV3IFNldDxzdHJpbmc+KClcblxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRGaWxlcyhcbiAgYnVpbGRNYW5pZmVzdDogQnVpbGRNYW5pZmVzdCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgaW5BbXBNb2RlOiBib29sZWFuXG4pOiBEb2N1bWVudEZpbGVzIHtcbiAgY29uc3Qgc2hhcmVkRmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdID0gZ2V0UGFnZUZpbGVzKGJ1aWxkTWFuaWZlc3QsICcvX2FwcCcpXG4gIGNvbnN0IHBhZ2VGaWxlczogcmVhZG9ubHkgc3RyaW5nW10gPVxuICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgICAgPyBbXVxuICAgICAgOiBnZXRQYWdlRmlsZXMoYnVpbGRNYW5pZmVzdCwgcGF0aG5hbWUpXG5cbiAgcmV0dXJuIHtcbiAgICBzaGFyZWRGaWxlcyxcbiAgICBwYWdlRmlsZXMsXG4gICAgYWxsRmlsZXM6IFsuLi5uZXcgU2V0KFsuLi5zaGFyZWRGaWxlcywgLi4ucGFnZUZpbGVzXSldLFxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFBvbHlmaWxsU2NyaXB0cyhjb250ZXh0OiBIdG1sUHJvcHMsIHByb3BzOiBPcmlnaW5Qcm9wcykge1xuICAvLyBwb2x5ZmlsbHMuanMgaGFzIHRvIGJlIHJlbmRlcmVkIGFzIG5vbW9kdWxlIHdpdGhvdXQgYXN5bmNcbiAgLy8gSXQgYWxzbyBoYXMgdG8gYmUgdGhlIGZpcnN0IHNjcmlwdCB0byBsb2FkXG4gIGNvbnN0IHtcbiAgICBhc3NldFByZWZpeCxcbiAgICBidWlsZE1hbmlmZXN0LFxuICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgY3Jvc3NPcmlnaW4sXG4gIH0gPSBjb250ZXh0XG5cbiAgcmV0dXJuIGJ1aWxkTWFuaWZlc3QucG9seWZpbGxGaWxlc1xuICAgIC5maWx0ZXIoXG4gICAgICAocG9seWZpbGwpID0+IHBvbHlmaWxsLmVuZHNXaXRoKCcuanMnKSAmJiAhcG9seWZpbGwuZW5kc1dpdGgoJy5tb2R1bGUuanMnKVxuICAgIClcbiAgICAubWFwKChwb2x5ZmlsbCkgPT4gKFxuICAgICAgPHNjcmlwdFxuICAgICAgICBrZXk9e3BvbHlmaWxsfVxuICAgICAgICBkZWZlcj17IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgIGNyb3NzT3JpZ2luPXtwcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgbm9Nb2R1bGU9e3RydWV9XG4gICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICBwb2x5ZmlsbFxuICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgLz5cbiAgICApKVxufVxuXG5mdW5jdGlvbiBoYXNDb21wb25lbnRQcm9wcyhjaGlsZDogYW55KTogY2hpbGQgaXMgUmVhY3QuUmVhY3RFbGVtZW50PGFueT4ge1xuICByZXR1cm4gISFjaGlsZCAmJiAhIWNoaWxkLnByb3BzXG59XG5cbmZ1bmN0aW9uIEFtcFN0eWxlcyh7XG4gIHN0eWxlcyxcbn06IHtcbiAgc3R5bGVzPzogUmVhY3QuUmVhY3RFbGVtZW50W10gfCBJdGVyYWJsZTxSZWFjdC5SZWFjdE5vZGU+XG59KSB7XG4gIGlmICghc3R5bGVzKSByZXR1cm4gbnVsbFxuXG4gIC8vIHRyeSB0byBwYXJzZSBzdHlsZXMgZnJvbSBmcmFnbWVudCBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICBjb25zdCBjdXJTdHlsZXM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+W10gPSBBcnJheS5pc0FycmF5KHN0eWxlcylcbiAgICA/IChzdHlsZXMgYXMgUmVhY3QuUmVhY3RFbGVtZW50W10pXG4gICAgOiBbXVxuICBpZiAoXG4gICAgLy8gQHRzLWlnbm9yZSBQcm9wZXJ0eSAncHJvcHMnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgUmVhY3RFbGVtZW50XG4gICAgc3R5bGVzLnByb3BzICYmXG4gICAgLy8gQHRzLWlnbm9yZSBQcm9wZXJ0eSAncHJvcHMnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgUmVhY3RFbGVtZW50XG4gICAgQXJyYXkuaXNBcnJheShzdHlsZXMucHJvcHMuY2hpbGRyZW4pXG4gICkge1xuICAgIGNvbnN0IGhhc1N0eWxlcyA9IChlbDogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4pID0+XG4gICAgICBlbD8ucHJvcHM/LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPy5fX2h0bWxcbiAgICAvLyBAdHMtaWdub3JlIFByb3BlcnR5ICdwcm9wcycgZG9lcyBub3QgZXhpc3Qgb24gdHlwZSBSZWFjdEVsZW1lbnRcbiAgICBzdHlsZXMucHJvcHMuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCkgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGQpKSB7XG4gICAgICAgIGNoaWxkLmZvckVhY2goKGVsKSA9PiBoYXNTdHlsZXMoZWwpICYmIGN1clN0eWxlcy5wdXNoKGVsKSlcbiAgICAgIH0gZWxzZSBpZiAoaGFzU3R5bGVzKGNoaWxkKSkge1xuICAgICAgICBjdXJTdHlsZXMucHVzaChjaGlsZClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyogQWRkIGN1c3RvbSBzdHlsZXMgYmVmb3JlIEFNUCBzdHlsZXMgdG8gcHJldmVudCBhY2NpZGVudGFsIG92ZXJyaWRlcyAqL1xuICByZXR1cm4gKFxuICAgIDxzdHlsZVxuICAgICAgYW1wLWN1c3RvbT1cIlwiXG4gICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICBfX2h0bWw6IGN1clN0eWxlc1xuICAgICAgICAgIC5tYXAoKHN0eWxlKSA9PiBzdHlsZS5wcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwpXG4gICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcL1xcKiMgc291cmNlTWFwcGluZ1VSTD0uKlxcKlxcLy9nLCAnJylcbiAgICAgICAgICAucmVwbGFjZSgvXFwvXFwqQCBzb3VyY2VVUkw9Lio/XFwqXFwvL2csICcnKSxcbiAgICAgIH19XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBnZXREeW5hbWljQ2h1bmtzKFxuICBjb250ZXh0OiBIdG1sUHJvcHMsXG4gIHByb3BzOiBPcmlnaW5Qcm9wcyxcbiAgZmlsZXM6IERvY3VtZW50RmlsZXNcbikge1xuICBjb25zdCB7XG4gICAgZHluYW1pY0ltcG9ydHMsXG4gICAgYXNzZXRQcmVmaXgsXG4gICAgaXNEZXZlbG9wbWVudCxcbiAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgIGNyb3NzT3JpZ2luLFxuICB9ID0gY29udGV4dFxuXG4gIHJldHVybiBkeW5hbWljSW1wb3J0cy5tYXAoKGZpbGUpID0+IHtcbiAgICBpZiAoIWZpbGUuZW5kc1dpdGgoJy5qcycpIHx8IGZpbGVzLmFsbEZpbGVzLmluY2x1ZGVzKGZpbGUpKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzY3JpcHRcbiAgICAgICAgYXN5bmM9eyFpc0RldmVsb3BtZW50ICYmIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBkZWZlcj17IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChmaWxlKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICBjcm9zc09yaWdpbj17cHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAvPlxuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0U2NyaXB0cyhcbiAgY29udGV4dDogSHRtbFByb3BzLFxuICBwcm9wczogT3JpZ2luUHJvcHMsXG4gIGZpbGVzOiBEb2N1bWVudEZpbGVzXG4pIHtcbiAgY29uc3Qge1xuICAgIGFzc2V0UHJlZml4LFxuICAgIGJ1aWxkTWFuaWZlc3QsXG4gICAgaXNEZXZlbG9wbWVudCxcbiAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgIGNyb3NzT3JpZ2luLFxuICB9ID0gY29udGV4dFxuXG4gIGNvbnN0IG5vcm1hbFNjcmlwdHMgPSBmaWxlcy5hbGxGaWxlcy5maWx0ZXIoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJy5qcycpKVxuICBjb25zdCBsb3dQcmlvcml0eVNjcmlwdHMgPSBidWlsZE1hbmlmZXN0Lmxvd1ByaW9yaXR5RmlsZXM/LmZpbHRlcigoZmlsZSkgPT5cbiAgICBmaWxlLmVuZHNXaXRoKCcuanMnKVxuICApXG5cbiAgcmV0dXJuIFsuLi5ub3JtYWxTY3JpcHRzLCAuLi5sb3dQcmlvcml0eVNjcmlwdHNdLm1hcCgoZmlsZSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8c2NyaXB0XG4gICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKGZpbGUpfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgIGFzeW5jPXshaXNEZXZlbG9wbWVudCAmJiBkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgZGVmZXI9eyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgLz5cbiAgICApXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdldFByZU5leHRXb3JrZXJTY3JpcHRzKGNvbnRleHQ6IEh0bWxQcm9wcywgcHJvcHM6IE9yaWdpblByb3BzKSB7XG4gIGNvbnN0IHsgYXNzZXRQcmVmaXgsIHNjcmlwdExvYWRlciwgY3Jvc3NPcmlnaW4sIG5leHRTY3JpcHRXb3JrZXJzIH0gPSBjb250ZXh0XG5cbiAgLy8gZGlzYWJsZSBgbmV4dFNjcmlwdFdvcmtlcnNgIGluIGVkZ2UgcnVudGltZVxuICBpZiAoIW5leHRTY3JpcHRXb3JrZXJzIHx8IHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSByZXR1cm4gbnVsbFxuXG4gIHRyeSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogUHJldmVudCB3ZWJwYWNrIGZyb20gcHJvY2Vzc2luZyB0aGlzIHJlcXVpcmVcbiAgICBsZXQgeyBwYXJ0eXRvd25TbmlwcGV0IH0gPSBfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyhcbiAgICAgICdAYnVpbGRlci5pby9wYXJ0eXRvd24vaW50ZWdyYXRpb24nIVxuICAgIClcblxuICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuaXNBcnJheShwcm9wcy5jaGlsZHJlbilcbiAgICAgID8gcHJvcHMuY2hpbGRyZW5cbiAgICAgIDogW3Byb3BzLmNoaWxkcmVuXVxuXG4gICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB1c2VyIGhhcyBkZWZpbmVkIHRoZWlyIG93biBQYXJ0eXRvd24gY29uZmlndXJhdGlvblxuICAgIGNvbnN0IHVzZXJEZWZpbmVkQ29uZmlnID0gY2hpbGRyZW4uZmluZChcbiAgICAgIChjaGlsZCkgPT5cbiAgICAgICAgaGFzQ29tcG9uZW50UHJvcHMoY2hpbGQpICYmXG4gICAgICAgIGNoaWxkPy5wcm9wcz8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw/Ll9faHRtbC5sZW5ndGggJiZcbiAgICAgICAgJ2RhdGEtcGFydHl0b3duLWNvbmZpZycgaW4gY2hpbGQucHJvcHNcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyF1c2VyRGVmaW5lZENvbmZpZyAmJiAoXG4gICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgZGF0YS1wYXJ0eXRvd24tY29uZmlnPVwiXCJcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIF9faHRtbDogYFxuICAgICAgICAgICAgcGFydHl0b3duID0ge1xuICAgICAgICAgICAgICBsaWI6IFwiJHthc3NldFByZWZpeH0vX25leHQvc3RhdGljL35wYXJ0eXRvd24vXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgYCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNjcmlwdFxuICAgICAgICAgIGRhdGEtcGFydHl0b3duPVwiXCJcbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgX19odG1sOiBwYXJ0eXRvd25TbmlwcGV0KCksXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgeyhzY3JpcHRMb2FkZXIud29ya2VyIHx8IFtdKS5tYXAoKGZpbGU6IFNjcmlwdFByb3BzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgc3RyYXRlZ3ksXG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICBjaGlsZHJlbjogc2NyaXB0Q2hpbGRyZW4sXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTCxcbiAgICAgICAgICAgIC4uLnNjcmlwdFByb3BzXG4gICAgICAgICAgfSA9IGZpbGVcblxuICAgICAgICAgIGxldCBzcmNQcm9wczoge1xuICAgICAgICAgICAgc3JjPzogc3RyaW5nXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD86IFNjcmlwdFByb3BzWydkYW5nZXJvdXNseVNldElubmVySFRNTCddXG4gICAgICAgICAgfSA9IHt9XG5cbiAgICAgICAgICBpZiAoc3JjKSB7XG4gICAgICAgICAgICAvLyBVc2UgZXh0ZXJuYWwgc3JjIGlmIHByb3ZpZGVkXG4gICAgICAgICAgICBzcmNQcm9wcy5zcmMgPSBzcmNcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiZcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gRW1iZWQgaW5saW5lIHNjcmlwdCBpZiBwcm92aWRlZCB3aXRoIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXG4gICAgICAgICAgICBzcmNQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHtcbiAgICAgICAgICAgICAgX19odG1sOiBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChzY3JpcHRDaGlsZHJlbikge1xuICAgICAgICAgICAgLy8gRW1iZWQgaW5saW5lIHNjcmlwdCBpZiBwcm92aWRlZCB3aXRoIGNoaWxkcmVuXG4gICAgICAgICAgICBzcmNQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHtcbiAgICAgICAgICAgICAgX19odG1sOlxuICAgICAgICAgICAgICAgIHR5cGVvZiBzY3JpcHRDaGlsZHJlbiA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gc2NyaXB0Q2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgIDogQXJyYXkuaXNBcnJheShzY3JpcHRDaGlsZHJlbilcbiAgICAgICAgICAgICAgICAgICAgPyBzY3JpcHRDaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdJbnZhbGlkIHVzYWdlIG9mIG5leHQvc2NyaXB0LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIGEgc3JjIGF0dHJpYnV0ZSBvciBhbiBpbmxpbmUgc2NyaXB0PyBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLXNjcmlwdCdcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICB7Li4uc3JjUHJvcHN9XG4gICAgICAgICAgICAgIHsuLi5zY3JpcHRQcm9wc31cbiAgICAgICAgICAgICAgdHlwZT1cInRleHQvcGFydHl0b3duXCJcbiAgICAgICAgICAgICAga2V5PXtzcmMgfHwgaW5kZXh9XG4gICAgICAgICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgICAgICAgZGF0YS1uc2NyaXB0PVwid29ya2VyXCJcbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoaXNFcnJvcihlcnIpICYmIGVyci5jb2RlICE9PSAnTU9EVUxFX05PVF9GT1VORCcpIHtcbiAgICAgIGNvbnNvbGUud2FybihgV2FybmluZzogJHtlcnIubWVzc2FnZX1gKVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFByZU5leHRTY3JpcHRzKGNvbnRleHQ6IEh0bWxQcm9wcywgcHJvcHM6IE9yaWdpblByb3BzKSB7XG4gIGNvbnN0IHsgc2NyaXB0TG9hZGVyLCBkaXNhYmxlT3B0aW1pemVkTG9hZGluZywgY3Jvc3NPcmlnaW4gfSA9IGNvbnRleHRcblxuICBjb25zdCB3ZWJXb3JrZXJTY3JpcHRzID0gZ2V0UHJlTmV4dFdvcmtlclNjcmlwdHMoY29udGV4dCwgcHJvcHMpXG5cbiAgY29uc3QgYmVmb3JlSW50ZXJhY3RpdmVTY3JpcHRzID0gKHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSB8fCBbXSlcbiAgICAuZmlsdGVyKChzY3JpcHQpID0+IHNjcmlwdC5zcmMpXG4gICAgLm1hcCgoZmlsZTogU2NyaXB0UHJvcHMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyYXRlZ3ksIC4uLnNjcmlwdFByb3BzIH0gPSBmaWxlXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgey4uLnNjcmlwdFByb3BzfVxuICAgICAgICAgIGtleT17c2NyaXB0UHJvcHMuc3JjIHx8IGluZGV4fVxuICAgICAgICAgIGRlZmVyPXtzY3JpcHRQcm9wcy5kZWZlciA/PyAhZGlzYWJsZU9wdGltaXplZExvYWRpbmd9XG4gICAgICAgICAgbm9uY2U9e3NjcmlwdFByb3BzLm5vbmNlIHx8IHByb3BzLm5vbmNlfVxuICAgICAgICAgIGRhdGEtbnNjcmlwdD1cImJlZm9yZUludGVyYWN0aXZlXCJcbiAgICAgICAgICBjcm9zc09yaWdpbj17cHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfSlcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7d2ViV29ya2VyU2NyaXB0c31cbiAgICAgIHtiZWZvcmVJbnRlcmFjdGl2ZVNjcmlwdHN9XG4gICAgPC8+XG4gIClcbn1cblxuZnVuY3Rpb24gZ2V0SGVhZEhUTUxQcm9wcyhwcm9wczogSGVhZFByb3BzKSB7XG4gIGNvbnN0IHsgY3Jvc3NPcmlnaW4sIG5vbmNlLCAuLi5yZXN0UHJvcHMgfSA9IHByb3BzXG5cbiAgLy8gVGhpcyBhc3NpZ25tZW50IGlzIG5lY2Vzc2FyeSBmb3IgYWRkaXRpb25hbCB0eXBlIGNoZWNraW5nIHRvIGF2b2lkIHVuc3VwcG9ydGVkIGF0dHJpYnV0ZXMgaW4gPGhlYWQ+XG4gIGNvbnN0IGhlYWRQcm9wczogSGVhZEhUTUxQcm9wcyAmIHtcbiAgICBbUCBpbiBFeGNsdWRlPGtleW9mIEhlYWRQcm9wcywga2V5b2YgSGVhZEhUTUxQcm9wcz5dPzogbmV2ZXJcbiAgfSA9IHJlc3RQcm9wc1xuXG4gIHJldHVybiBoZWFkUHJvcHNcbn1cblxuZnVuY3Rpb24gZ2V0QW1wUGF0aChhbXBQYXRoOiBzdHJpbmcsIGFzUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGFtcFBhdGggfHwgYCR7YXNQYXRofSR7YXNQYXRoLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPyd9YW1wPTFgXG59XG5cbmZ1bmN0aW9uIGdldE5leHRGb250TGlua1RhZ3MoXG4gIG5leHRGb250TWFuaWZlc3Q6IERlZXBSZWFkb25seTxOZXh0Rm9udE1hbmlmZXN0PiB8IHVuZGVmaW5lZCxcbiAgZGFuZ2Vyb3VzQXNQYXRoOiBzdHJpbmcsXG4gIGFzc2V0UHJlZml4OiBzdHJpbmcgPSAnJ1xuKSB7XG4gIGlmICghbmV4dEZvbnRNYW5pZmVzdCkge1xuICAgIHJldHVybiB7XG4gICAgICBwcmVjb25uZWN0OiBudWxsLFxuICAgICAgcHJlbG9hZDogbnVsbCxcbiAgICB9XG4gIH1cblxuICBjb25zdCBhcHBGb250c0VudHJ5ID0gbmV4dEZvbnRNYW5pZmVzdC5wYWdlc1snL19hcHAnXVxuICBjb25zdCBwYWdlRm9udHNFbnRyeSA9IG5leHRGb250TWFuaWZlc3QucGFnZXNbZGFuZ2Vyb3VzQXNQYXRoXVxuXG4gIGNvbnN0IHByZWxvYWRlZEZvbnRGaWxlcyA9IEFycmF5LmZyb20oXG4gICAgbmV3IFNldChbLi4uKGFwcEZvbnRzRW50cnkgPz8gW10pLCAuLi4ocGFnZUZvbnRzRW50cnkgPz8gW10pXSlcbiAgKVxuXG4gIC8vIElmIG5vIGZvbnQgZmlsZXMgc2hvdWxkIHByZWxvYWQgYnV0IHRoZXJlJ3MgYW4gZW50cnkgZm9yIHRoZSBwYXRoLCBhZGQgYSBwcmVjb25uZWN0IHRhZy5cbiAgY29uc3QgcHJlY29ubmVjdFRvU2VsZiA9ICEhKFxuICAgIHByZWxvYWRlZEZvbnRGaWxlcy5sZW5ndGggPT09IDAgJiZcbiAgICAoYXBwRm9udHNFbnRyeSB8fCBwYWdlRm9udHNFbnRyeSlcbiAgKVxuXG4gIHJldHVybiB7XG4gICAgcHJlY29ubmVjdDogcHJlY29ubmVjdFRvU2VsZiA/IChcbiAgICAgIDxsaW5rXG4gICAgICAgIGRhdGEtbmV4dC1mb250PXtcbiAgICAgICAgICBuZXh0Rm9udE1hbmlmZXN0LnBhZ2VzVXNpbmdTaXplQWRqdXN0ID8gJ3NpemUtYWRqdXN0JyA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgcmVsPVwicHJlY29ubmVjdFwiXG4gICAgICAgIGhyZWY9XCIvXCJcbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgLz5cbiAgICApIDogbnVsbCxcbiAgICBwcmVsb2FkOiBwcmVsb2FkZWRGb250RmlsZXNcbiAgICAgID8gcHJlbG9hZGVkRm9udEZpbGVzLm1hcCgoZm9udEZpbGUpID0+IHtcbiAgICAgICAgICBjb25zdCBleHQgPSAvXFwuKHdvZmZ8d29mZjJ8ZW90fHR0ZnxvdGYpJC8uZXhlYyhmb250RmlsZSkhWzFdXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIGtleT17Zm9udEZpbGV9XG4gICAgICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKGZvbnRGaWxlKX1gfVxuICAgICAgICAgICAgICBhcz1cImZvbnRcIlxuICAgICAgICAgICAgICB0eXBlPXtgZm9udC8ke2V4dH1gfVxuICAgICAgICAgICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1mb250PXtmb250RmlsZS5pbmNsdWRlcygnLXMnKSA/ICdzaXplLWFkanVzdCcgOiAnJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgOiBudWxsLFxuICB9XG59XG5cbi8vIFVzZSBgUmVhY3QuQ29tcG9uZW50YCB0byBhdm9pZCBlcnJvcnMgZnJvbSB0aGUgUlNDIGNoZWNrcyBiZWNhdXNlXG4vLyBpdCBjYW4ndCBiZSBpbXBvcnRlZCBkaXJlY3RseSBpbiBTZXJ2ZXIgQ29tcG9uZW50czpcbi8vXG4vLyAgIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0J1xuLy9cbi8vIE1vcmUgaW5mbzogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvNDA2ODZcbmV4cG9ydCBjbGFzcyBIZWFkIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PEhlYWRQcm9wcz4ge1xuICBzdGF0aWMgY29udGV4dFR5cGUgPSBIdG1sQ29udGV4dFxuXG4gIGNvbnRleHQhOiBIdG1sUHJvcHNcblxuICBnZXRDc3NMaW5rcyhmaWxlczogRG9jdW1lbnRGaWxlcyk6IEpTWC5FbGVtZW50W10gfCBudWxsIHtcbiAgICBjb25zdCB7XG4gICAgICBhc3NldFByZWZpeCxcbiAgICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgICBkeW5hbWljSW1wb3J0cyxcbiAgICAgIGR5bmFtaWNDc3NNYW5pZmVzdCxcbiAgICAgIGNyb3NzT3JpZ2luLFxuICAgICAgb3B0aW1pemVDc3MsXG4gICAgfSA9IHRoaXMuY29udGV4dFxuICAgIGNvbnN0IGNzc0ZpbGVzID0gZmlsZXMuYWxsRmlsZXMuZmlsdGVyKChmKSA9PiBmLmVuZHNXaXRoKCcuY3NzJykpXG4gICAgY29uc3Qgc2hhcmVkRmlsZXM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChmaWxlcy5zaGFyZWRGaWxlcylcblxuICAgIC8vIFVubWFuYWdlZCBmaWxlcyBhcmUgQ1NTIGZpbGVzIHRoYXQgd2lsbCBiZSBoYW5kbGVkIGRpcmVjdGx5IGJ5IHRoZVxuICAgIC8vIHdlYnBhY2sgcnVudGltZSAoYG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luYCkuXG4gICAgbGV0IHVubWFuYWdlZEZpbGVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW10pXG4gICAgbGV0IGxvY2FsRHluYW1pY0Nzc0ZpbGVzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoZHluYW1pY0ltcG9ydHMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKCcuY3NzJykpKVxuICAgIClcbiAgICBpZiAobG9jYWxEeW5hbWljQ3NzRmlsZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IG5ldyBTZXQoY3NzRmlsZXMpXG4gICAgICBsb2NhbER5bmFtaWNDc3NGaWxlcyA9IGxvY2FsRHluYW1pY0Nzc0ZpbGVzLmZpbHRlcihcbiAgICAgICAgKGYpID0+ICEoZXhpc3RpbmcuaGFzKGYpIHx8IHNoYXJlZEZpbGVzLmhhcyhmKSlcbiAgICAgIClcbiAgICAgIHVubWFuYWdlZEZpbGVzID0gbmV3IFNldChsb2NhbER5bmFtaWNDc3NGaWxlcylcbiAgICAgIGNzc0ZpbGVzLnB1c2goLi4ubG9jYWxEeW5hbWljQ3NzRmlsZXMpXG4gICAgfVxuXG4gICAgbGV0IGNzc0xpbmtFbGVtZW50czogSlNYLkVsZW1lbnRbXSA9IFtdXG4gICAgY3NzRmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgY29uc3QgaXNTaGFyZWRGaWxlID0gc2hhcmVkRmlsZXMuaGFzKGZpbGUpXG4gICAgICBjb25zdCBpc1VubWFuYWdlZEZpbGUgPSB1bm1hbmFnZWRGaWxlcy5oYXMoZmlsZSlcbiAgICAgIGNvbnN0IGlzRmlsZUluRHluYW1pY0Nzc01hbmlmZXN0ID0gZHluYW1pY0Nzc01hbmlmZXN0LmhhcyhmaWxlKVxuXG4gICAgICBpZiAoIW9wdGltaXplQ3NzKSB7XG4gICAgICAgIGNzc0xpbmtFbGVtZW50cy5wdXNoKFxuICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICBrZXk9e2Ake2ZpbGV9LXByZWxvYWRgfVxuICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICAgIGhyZWY9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICBhcz1cInN0eWxlXCJcbiAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgY3NzTGlua0VsZW1lbnRzLnB1c2goXG4gICAgICAgIDxsaW5rXG4gICAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgIHJlbD1cInN0eWxlc2hlZXRcIlxuICAgICAgICAgIGhyZWY9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgICBmaWxlXG4gICAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICBkYXRhLW4tZz17aXNVbm1hbmFnZWRGaWxlID8gdW5kZWZpbmVkIDogaXNTaGFyZWRGaWxlID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1uLXA9e1xuICAgICAgICAgICAgaXNTaGFyZWRGaWxlIHx8IGlzVW5tYW5hZ2VkRmlsZSB8fCBpc0ZpbGVJbkR5bmFtaWNDc3NNYW5pZmVzdFxuICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH0pXG5cbiAgICByZXR1cm4gY3NzTGlua0VsZW1lbnRzLmxlbmd0aCA9PT0gMCA/IG51bGwgOiBjc3NMaW5rRWxlbWVudHNcbiAgfVxuXG4gIGdldFByZWxvYWREeW5hbWljQ2h1bmtzKCkge1xuICAgIGNvbnN0IHsgZHluYW1pY0ltcG9ydHMsIGFzc2V0UHJlZml4LCBhc3NldFF1ZXJ5U3RyaW5nLCBjcm9zc09yaWdpbiB9ID1cbiAgICAgIHRoaXMuY29udGV4dFxuXG4gICAgcmV0dXJuIChcbiAgICAgIGR5bmFtaWNJbXBvcnRzXG4gICAgICAgIC5tYXAoKGZpbGUpID0+IHtcbiAgICAgICAgICBpZiAoIWZpbGUuZW5kc1dpdGgoJy5qcycpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICAgICAgYXM9XCJzY3JpcHRcIlxuICAgICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgLy8gRmlsdGVyIG91dCBudWxsZWQgc2NyaXB0c1xuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgKVxuICB9XG5cbiAgZ2V0UHJlbG9hZE1haW5MaW5rcyhmaWxlczogRG9jdW1lbnRGaWxlcyk6IEpTWC5FbGVtZW50W10gfCBudWxsIHtcbiAgICBjb25zdCB7IGFzc2V0UHJlZml4LCBhc3NldFF1ZXJ5U3RyaW5nLCBzY3JpcHRMb2FkZXIsIGNyb3NzT3JpZ2luIH0gPVxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgY29uc3QgcHJlbG9hZEZpbGVzID0gZmlsZXMuYWxsRmlsZXMuZmlsdGVyKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBmaWxlLmVuZHNXaXRoKCcuanMnKVxuICAgIH0pXG5cbiAgICByZXR1cm4gW1xuICAgICAgLi4uKHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSB8fCBbXSkubWFwKChmaWxlKSA9PiAoXG4gICAgICAgIDxsaW5rXG4gICAgICAgICAga2V5PXtmaWxlLnNyY31cbiAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICBocmVmPXtmaWxlLnNyY31cbiAgICAgICAgICBhcz1cInNjcmlwdFwiXG4gICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgIC8+XG4gICAgICApKSxcbiAgICAgIC4uLnByZWxvYWRGaWxlcy5tYXAoKGZpbGU6IHN0cmluZykgPT4gKFxuICAgICAgICA8bGlua1xuICAgICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgYXM9XCJzY3JpcHRcIlxuICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAvPlxuICAgICAgKSksXG4gICAgXVxuICB9XG5cbiAgZ2V0QmVmb3JlSW50ZXJhY3RpdmVJbmxpbmVTY3JpcHRzKCkge1xuICAgIGNvbnN0IHsgc2NyaXB0TG9hZGVyIH0gPSB0aGlzLmNvbnRleHRcbiAgICBjb25zdCB7IG5vbmNlLCBjcm9zc09yaWdpbiB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoc2NyaXB0KSA9PlxuICAgICAgICAgICFzY3JpcHQuc3JjICYmIChzY3JpcHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgfHwgc2NyaXB0LmNoaWxkcmVuKVxuICAgICAgKVxuICAgICAgLm1hcCgoZmlsZTogU2NyaXB0UHJvcHMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHN0cmF0ZWd5LFxuICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLFxuICAgICAgICAgIHNyYyxcbiAgICAgICAgICAuLi5zY3JpcHRQcm9wc1xuICAgICAgICB9ID0gZmlsZVxuICAgICAgICBsZXQgaHRtbDogTm9uTnVsbGFibGU8XG4gICAgICAgICAgU2NyaXB0UHJvcHNbJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJ11cbiAgICAgICAgPlsnX19odG1sJ10gPSAnJ1xuXG4gICAgICAgIGlmIChkYW5nZXJvdXNseVNldElubmVySFRNTCAmJiBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwpIHtcbiAgICAgICAgICBodG1sID0gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sXG4gICAgICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICBodG1sID1cbiAgICAgICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICAgICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG4gICAgICAgICAgICAgICAgPyBjaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgey4uLnNjcmlwdFByb3BzfVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBodG1sIH19XG4gICAgICAgICAgICBrZXk9e3NjcmlwdFByb3BzLmlkIHx8IGluZGV4fVxuICAgICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAgICAgZGF0YS1uc2NyaXB0PVwiYmVmb3JlSW50ZXJhY3RpdmVcIlxuICAgICAgICAgICAgY3Jvc3NPcmlnaW49e1xuICAgICAgICAgICAgICBjcm9zc09yaWdpbiB8fFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTiBhcyB0eXBlb2YgY3Jvc3NPcmlnaW4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgKVxuICAgICAgfSlcbiAgfVxuXG4gIGdldER5bmFtaWNDaHVua3MoZmlsZXM6IERvY3VtZW50RmlsZXMpIHtcbiAgICByZXR1cm4gZ2V0RHluYW1pY0NodW5rcyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMsIGZpbGVzKVxuICB9XG5cbiAgZ2V0UHJlTmV4dFNjcmlwdHMoKSB7XG4gICAgcmV0dXJuIGdldFByZU5leHRTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIGdldFNjcmlwdHMoZmlsZXM6IERvY3VtZW50RmlsZXMpIHtcbiAgICByZXR1cm4gZ2V0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMsIGZpbGVzKVxuICB9XG5cbiAgZ2V0UG9seWZpbGxTY3JpcHRzKCkge1xuICAgIHJldHVybiBnZXRQb2x5ZmlsbFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHN0eWxlcyxcbiAgICAgIGFtcFBhdGgsXG4gICAgICBpbkFtcE1vZGUsXG4gICAgICBoeWJyaWRBbXAsXG4gICAgICBjYW5vbmljYWxCYXNlLFxuICAgICAgX19ORVhUX0RBVEFfXyxcbiAgICAgIGRhbmdlcm91c0FzUGF0aCxcbiAgICAgIGhlYWRUYWdzLFxuICAgICAgdW5zdGFibGVfcnVudGltZUpTLFxuICAgICAgdW5zdGFibGVfSnNQcmVsb2FkLFxuICAgICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICBvcHRpbWl6ZUNzcyxcbiAgICAgIGFzc2V0UHJlZml4LFxuICAgICAgbmV4dEZvbnRNYW5pZmVzdCxcbiAgICB9ID0gdGhpcy5jb250ZXh0XG5cbiAgICBjb25zdCBkaXNhYmxlUnVudGltZUpTID0gdW5zdGFibGVfcnVudGltZUpTID09PSBmYWxzZVxuICAgIGNvbnN0IGRpc2FibGVKc1ByZWxvYWQgPVxuICAgICAgdW5zdGFibGVfSnNQcmVsb2FkID09PSBmYWxzZSB8fCAhZGlzYWJsZU9wdGltaXplZExvYWRpbmdcblxuICAgIHRoaXMuY29udGV4dC5kb2NDb21wb25lbnRzUmVuZGVyZWQuSGVhZCA9IHRydWVcblxuICAgIGxldCB7IGhlYWQgfSA9IHRoaXMuY29udGV4dFxuICAgIGxldCBjc3NQcmVsb2FkczogQXJyYXk8SlNYLkVsZW1lbnQ+ID0gW11cbiAgICBsZXQgb3RoZXJIZWFkRWxlbWVudHM6IEFycmF5PEpTWC5FbGVtZW50PiA9IFtdXG4gICAgaWYgKGhlYWQpIHtcbiAgICAgIGhlYWQuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNoaWxkICYmXG4gICAgICAgICAgY2hpbGQudHlwZSA9PT0gJ2xpbmsnICYmXG4gICAgICAgICAgY2hpbGQucHJvcHNbJ3JlbCddID09PSAncHJlbG9hZCcgJiZcbiAgICAgICAgICBjaGlsZC5wcm9wc1snYXMnXSA9PT0gJ3N0eWxlJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjc3NQcmVsb2Fkcy5wdXNoKGNoaWxkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgICAgb3RoZXJIZWFkRWxlbWVudHMucHVzaChcbiAgICAgICAgICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7ICdkYXRhLW5leHQtaGVhZCc6ICcnIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaGVhZCA9IGNzc1ByZWxvYWRzLmNvbmNhdChvdGhlckhlYWRFbGVtZW50cylcbiAgICB9XG4gICAgbGV0IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoXG4gICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgKS5maWx0ZXIoQm9vbGVhbilcbiAgICAvLyBzaG93IGEgd2FybmluZyBpZiBIZWFkIGNvbnRhaW5zIDx0aXRsZT4gKG9ubHkgaW4gZGV2ZWxvcG1lbnQpXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNoaWxkcmVuID0gUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpc1JlYWN0SGVsbWV0ID0gY2hpbGQ/LnByb3BzPy5bJ2RhdGEtcmVhY3QtaGVsbWV0J11cbiAgICAgICAgaWYgKCFpc1JlYWN0SGVsbWV0KSB7XG4gICAgICAgICAgaWYgKGNoaWxkPy50eXBlID09PSAndGl0bGUnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIFwiV2FybmluZzogPHRpdGxlPiBzaG91bGQgbm90IGJlIHVzZWQgaW4gX2RvY3VtZW50LmpzJ3MgPEhlYWQ+LiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uby1kb2N1bWVudC10aXRsZVwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGNoaWxkPy50eXBlID09PSAnbWV0YScgJiZcbiAgICAgICAgICAgIGNoaWxkPy5wcm9wcz8ubmFtZSA9PT0gJ3ZpZXdwb3J0J1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBcIldhcm5pbmc6IHZpZXdwb3J0IG1ldGEgdGFncyBzaG91bGQgbm90IGJlIHVzZWQgaW4gX2RvY3VtZW50LmpzJ3MgPEhlYWQ+LiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uby1kb2N1bWVudC12aWV3cG9ydC1tZXRhXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoaWxkXG4gICAgICAgIC8vIEB0eXBlcy9yZWFjdCBidWcuIFJldHVybmVkIHZhbHVlIGZyb20gLm1hcCB3aWxsIG5vdCBiZSBgbnVsbGAgaWYgeW91IHBhc3MgaW4gYFtudWxsXWBcbiAgICAgIH0pIVxuICAgICAgaWYgKHRoaXMucHJvcHMuY3Jvc3NPcmlnaW4pXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnV2FybmluZzogYEhlYWRgIGF0dHJpYnV0ZSBgY3Jvc3NPcmlnaW5gIGlzIGRlcHJlY2F0ZWQuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2RvYy1jcm9zc29yaWdpbi1kZXByZWNhdGVkJ1xuICAgICAgICApXG4gICAgfVxuXG4gICAgbGV0IGhhc0FtcGh0bWxSZWwgPSBmYWxzZVxuICAgIGxldCBoYXNDYW5vbmljYWxSZWwgPSBmYWxzZVxuXG4gICAgLy8gc2hvdyB3YXJuaW5nIGFuZCByZW1vdmUgY29uZmxpY3RpbmcgYW1wIGhlYWQgdGFnc1xuICAgIGhlYWQgPSBSZWFjdC5DaGlsZHJlbi5tYXAoaGVhZCB8fCBbXSwgKGNoaWxkKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkKSByZXR1cm4gY2hpbGRcbiAgICAgIGNvbnN0IHsgdHlwZSwgcHJvcHMgfSA9IGNoaWxkXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlKSB7XG4gICAgICAgIGxldCBiYWRQcm9wOiBzdHJpbmcgPSAnJ1xuXG4gICAgICAgIGlmICh0eXBlID09PSAnbWV0YScgJiYgcHJvcHMubmFtZSA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgICAgICAgIGJhZFByb3AgPSAnbmFtZT1cInZpZXdwb3J0XCInXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2xpbmsnICYmIHByb3BzLnJlbCA9PT0gJ2Nhbm9uaWNhbCcpIHtcbiAgICAgICAgICBoYXNDYW5vbmljYWxSZWwgPSB0cnVlXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NjcmlwdCcpIHtcbiAgICAgICAgICAvLyBvbmx5IGJsb2NrIGlmXG4gICAgICAgICAgLy8gMS4gaXQgaGFzIGEgc3JjIGFuZCBpc24ndCBwb2ludGluZyB0byBhbXBwcm9qZWN0J3MgQ0ROXG4gICAgICAgICAgLy8gMi4gaXQgaXMgdXNpbmcgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgd2l0aG91dCBhIHR5cGUgb3JcbiAgICAgICAgICAvLyBhIHR5cGUgb2YgdGV4dC9qYXZhc2NyaXB0XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHByb3BzLnNyYyAmJiBwcm9wcy5zcmMuaW5kZXhPZignYW1wcHJvamVjdCcpIDwgLTEpIHx8XG4gICAgICAgICAgICAocHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiZcbiAgICAgICAgICAgICAgKCFwcm9wcy50eXBlIHx8IHByb3BzLnR5cGUgPT09ICd0ZXh0L2phdmFzY3JpcHQnKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGJhZFByb3AgPSAnPHNjcmlwdCdcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgICAgICAgICAgIGJhZFByb3AgKz0gYCAke3Byb3B9PVwiJHtwcm9wc1twcm9wXX1cImBcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBiYWRQcm9wICs9ICcvPidcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYmFkUHJvcCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBGb3VuZCBjb25mbGljdGluZyBhbXAgdGFnIFwiJHtjaGlsZC50eXBlfVwiIHdpdGggY29uZmxpY3RpbmcgcHJvcCAke2JhZFByb3B9IGluICR7X19ORVhUX0RBVEFfXy5wYWdlfS4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvY29uZmxpY3RpbmctYW1wLXRhZ2BcbiAgICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbm9uLWFtcCBtb2RlXG4gICAgICAgIGlmICh0eXBlID09PSAnbGluaycgJiYgcHJvcHMucmVsID09PSAnYW1waHRtbCcpIHtcbiAgICAgICAgICBoYXNBbXBodG1sUmVsID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gY2hpbGRcbiAgICAgIC8vIEB0eXBlcy9yZWFjdCBidWcuIFJldHVybmVkIHZhbHVlIGZyb20gLm1hcCB3aWxsIG5vdCBiZSBgbnVsbGAgaWYgeW91IHBhc3MgaW4gYFtudWxsXWBcbiAgICB9KSFcblxuICAgIGNvbnN0IGZpbGVzOiBEb2N1bWVudEZpbGVzID0gZ2V0RG9jdW1lbnRGaWxlcyhcbiAgICAgIHRoaXMuY29udGV4dC5idWlsZE1hbmlmZXN0LFxuICAgICAgdGhpcy5jb250ZXh0Ll9fTkVYVF9EQVRBX18ucGFnZSxcbiAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgIClcblxuICAgIGNvbnN0IG5leHRGb250TGlua1RhZ3MgPSBnZXROZXh0Rm9udExpbmtUYWdzKFxuICAgICAgbmV4dEZvbnRNYW5pZmVzdCxcbiAgICAgIGRhbmdlcm91c0FzUGF0aCxcbiAgICAgIGFzc2V0UHJlZml4XG4gICAgKVxuXG4gICAgY29uc3QgdHJhY2luZ01ldGFkYXRhID0gZ2V0VHJhY2VkTWV0YWRhdGEoXG4gICAgICBnZXRUcmFjZXIoKS5nZXRUcmFjZVByb3BhZ2F0aW9uRGF0YSgpLFxuICAgICAgdGhpcy5jb250ZXh0LmV4cGVyaW1lbnRhbENsaWVudFRyYWNlTWV0YWRhdGFcbiAgICApXG5cbiAgICBjb25zdCB0cmFjZU1ldGFUYWdzID0gKHRyYWNpbmdNZXRhZGF0YSB8fCBbXSkubWFwKFxuICAgICAgKHsga2V5LCB2YWx1ZSB9LCBpbmRleCkgPT4gKFxuICAgICAgICA8bWV0YSBrZXk9e2BuZXh0LXRyYWNlLWRhdGEtJHtpbmRleH1gfSBuYW1lPXtrZXl9IGNvbnRlbnQ9e3ZhbHVlfSAvPlxuICAgICAgKVxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8aGVhZCB7Li4uZ2V0SGVhZEhUTUxQcm9wcyh0aGlzLnByb3BzKX0+XG4gICAgICAgIHt0aGlzLmNvbnRleHQuaXNEZXZlbG9wbWVudCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgICBkYXRhLW5leHQtaGlkZS1mb3VjXG4gICAgICAgICAgICAgIGRhdGEtYW1wZGV2bW9kZT17XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgICAgICAgICAgICAgICA/ICd0cnVlJ1xuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7ZGlzcGxheTpub25lfWAsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG5vc2NyaXB0XG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1oaWRlLWZvdWNcbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlPXtcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGVcbiAgICAgICAgICAgICAgICAgID8gJ3RydWUnXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5e2Rpc3BsYXk6YmxvY2t9YCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9ub3NjcmlwdD5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAge2hlYWR9XG5cbiAgICAgICAge2NoaWxkcmVufVxuXG4gICAgICAgIHtuZXh0Rm9udExpbmtUYWdzLnByZWNvbm5lY3R9XG4gICAgICAgIHtuZXh0Rm9udExpbmtUYWdzLnByZWxvYWR9XG5cbiAgICAgICAge3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxtZXRhXG4gICAgICAgICAgICAgIG5hbWU9XCJ2aWV3cG9ydFwiXG4gICAgICAgICAgICAgIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgeyFoYXNDYW5vbmljYWxSZWwgJiYgKFxuICAgICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICAgIHJlbD1cImNhbm9uaWNhbFwiXG4gICAgICAgICAgICAgICAgaHJlZj17XG4gICAgICAgICAgICAgICAgICBjYW5vbmljYWxCYXNlICtcbiAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZSgnLi4vc2VydmVyL3V0aWxzJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2VydmVyL3V0aWxzJylcbiAgICAgICAgICAgICAgICAgICkuY2xlYW5BbXBQYXRoKGRhbmdlcm91c0FzUGF0aClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgey8qIGh0dHBzOi8vd3d3LmFtcHByb2plY3Qub3JnL2RvY3MvZnVuZGFtZW50YWxzL29wdGltaXplX2FtcCNvcHRpbWl6ZS10aGUtYW1wLXJ1bnRpbWUtbG9hZGluZyAqL31cbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgICAgICBhcz1cInNjcmlwdFwiXG4gICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2Nkbi5hbXBwcm9qZWN0Lm9yZy92MC5qc1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPEFtcFN0eWxlcyBzdHlsZXM9e3N0eWxlc30gLz5cbiAgICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgICBhbXAtYm9pbGVycGxhdGU9XCJcIlxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7LXdlYmtpdC1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDstbW96LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tcy1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDthbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aH1ALXdlYmtpdC1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tb3ota2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtbXMta2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtby1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QGtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1gLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxub3NjcmlwdD5cbiAgICAgICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICAgICAgYW1wLWJvaWxlcnBsYXRlPVwiXCJcbiAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgICAgX19odG1sOiBgYm9keXstd2Via2l0LWFuaW1hdGlvbjpub25lOy1tb3otYW5pbWF0aW9uOm5vbmU7LW1zLWFuaW1hdGlvbjpub25lO2FuaW1hdGlvbjpub25lfWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbm9zY3JpcHQ+XG4gICAgICAgICAgICA8c2NyaXB0IGFzeW5jIHNyYz1cImh0dHBzOi8vY2RuLmFtcHByb2plY3Qub3JnL3YwLmpzXCIgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAgeyEocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlKSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshaGFzQW1waHRtbFJlbCAmJiBoeWJyaWRBbXAgJiYgKFxuICAgICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICAgIHJlbD1cImFtcGh0bWxcIlxuICAgICAgICAgICAgICAgIGhyZWY9e2Nhbm9uaWNhbEJhc2UgKyBnZXRBbXBQYXRoKGFtcFBhdGgsIGRhbmdlcm91c0FzUGF0aCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3RoaXMuZ2V0QmVmb3JlSW50ZXJhY3RpdmVJbmxpbmVTY3JpcHRzKCl9XG4gICAgICAgICAgICB7IW9wdGltaXplQ3NzICYmIHRoaXMuZ2V0Q3NzTGlua3MoZmlsZXMpfVxuICAgICAgICAgICAgeyFvcHRpbWl6ZUNzcyAmJiA8bm9zY3JpcHQgZGF0YS1uLWNzcz17dGhpcy5wcm9wcy5ub25jZSA/PyAnJ30gLz59XG5cbiAgICAgICAgICAgIHshZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZUpzUHJlbG9hZCAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFByZWxvYWREeW5hbWljQ2h1bmtzKCl9XG4gICAgICAgICAgICB7IWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVKc1ByZWxvYWQgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRQcmVsb2FkTWFpbkxpbmtzKGZpbGVzKX1cblxuICAgICAgICAgICAgeyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFBvbHlmaWxsU2NyaXB0cygpfVxuXG4gICAgICAgICAgICB7IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UHJlTmV4dFNjcmlwdHMoKX1cbiAgICAgICAgICAgIHshZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXREeW5hbWljQ2h1bmtzKGZpbGVzKX1cbiAgICAgICAgICAgIHshZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRTY3JpcHRzKGZpbGVzKX1cblxuICAgICAgICAgICAge29wdGltaXplQ3NzICYmIHRoaXMuZ2V0Q3NzTGlua3MoZmlsZXMpfVxuICAgICAgICAgICAge29wdGltaXplQ3NzICYmIDxub3NjcmlwdCBkYXRhLW4tY3NzPXt0aGlzLnByb3BzLm5vbmNlID8/ICcnfSAvPn1cbiAgICAgICAgICAgIHt0aGlzLmNvbnRleHQuaXNEZXZlbG9wbWVudCAmJiAoXG4gICAgICAgICAgICAgIC8vIHRoaXMgZWxlbWVudCBpcyB1c2VkIHRvIG1vdW50IGRldmVsb3BtZW50IHN0eWxlcyBzbyB0aGVcbiAgICAgICAgICAgICAgLy8gb3JkZXJpbmcgbWF0Y2hlcyBwcm9kdWN0aW9uXG4gICAgICAgICAgICAgIC8vIChieSBkZWZhdWx0LCBzdHlsZS1sb2FkZXIgaW5qZWN0cyBhdCB0aGUgYm90dG9tIG9mIDxoZWFkIC8+KVxuICAgICAgICAgICAgICA8bm9zY3JpcHQgaWQ9XCJfX25leHRfY3NzX19ET19OT1RfVVNFX19cIiAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHt0cmFjZU1ldGFUYWdzfVxuICAgICAgICAgICAge3N0eWxlcyB8fCBudWxsfVxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7UmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwge30sIC4uLihoZWFkVGFncyB8fCBbXSkpfVxuICAgICAgPC9oZWFkPlxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVEb2N1bWVudFNjcmlwdExvYWRlckl0ZW1zKFxuICBzY3JpcHRMb2FkZXI6IHsgYmVmb3JlSW50ZXJhY3RpdmU/OiBhbnlbXSB9LFxuICBfX05FWFRfREFUQV9fOiBORVhUX0RBVEEsXG4gIHByb3BzOiBhbnlcbik6IHZvaWQge1xuICBpZiAoIXByb3BzLmNoaWxkcmVuKSByZXR1cm5cblxuICBjb25zdCBzY3JpcHRMb2FkZXJJdGVtczogU2NyaXB0UHJvcHNbXSA9IFtdXG5cbiAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5pc0FycmF5KHByb3BzLmNoaWxkcmVuKVxuICAgID8gcHJvcHMuY2hpbGRyZW5cbiAgICA6IFtwcm9wcy5jaGlsZHJlbl1cblxuICBjb25zdCBoZWFkQ2hpbGRyZW4gPSBjaGlsZHJlbi5maW5kKFxuICAgIChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiBjaGlsZC50eXBlID09PSBIZWFkXG4gICk/LnByb3BzPy5jaGlsZHJlblxuICBjb25zdCBib2R5Q2hpbGRyZW4gPSBjaGlsZHJlbi5maW5kKFxuICAgIChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiBjaGlsZC50eXBlID09PSAnYm9keSdcbiAgKT8ucHJvcHM/LmNoaWxkcmVuXG5cbiAgLy8gU2NyaXB0cyB3aXRoIGJlZm9yZUludGVyYWN0aXZlIGNhbiBiZSBwbGFjZWQgaW5zaWRlIEhlYWQgb3IgPGJvZHk+IHNvIGNoaWxkcmVuIG9mIGJvdGggbmVlZHMgdG8gYmUgdHJhdmVyc2VkXG4gIGNvbnN0IGNvbWJpbmVkQ2hpbGRyZW4gPSBbXG4gICAgLi4uKEFycmF5LmlzQXJyYXkoaGVhZENoaWxkcmVuKSA/IGhlYWRDaGlsZHJlbiA6IFtoZWFkQ2hpbGRyZW5dKSxcbiAgICAuLi4oQXJyYXkuaXNBcnJheShib2R5Q2hpbGRyZW4pID8gYm9keUNoaWxkcmVuIDogW2JvZHlDaGlsZHJlbl0pLFxuICBdXG5cbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjb21iaW5lZENoaWxkcmVuLCAoY2hpbGQ6IGFueSkgPT4ge1xuICAgIGlmICghY2hpbGQpIHJldHVyblxuXG4gICAgLy8gV2hlbiB1c2luZyB0aGUgYG5leHQvc2NyaXB0YCBjb21wb25lbnQsIHJlZ2lzdGVyIGl0IGluIHNjcmlwdCBsb2FkZXIuXG4gICAgaWYgKGNoaWxkLnR5cGU/Ll9fbmV4dFNjcmlwdCkge1xuICAgICAgaWYgKGNoaWxkLnByb3BzLnN0cmF0ZWd5ID09PSAnYmVmb3JlSW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSA9IChcbiAgICAgICAgICBzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW11cbiAgICAgICAgKS5jb25jYXQoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmNoaWxkLnByb3BzLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pXG4gICAgICAgIHJldHVyblxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgWydsYXp5T25sb2FkJywgJ2FmdGVySW50ZXJhY3RpdmUnLCAnd29ya2VyJ10uaW5jbHVkZXMoXG4gICAgICAgICAgY2hpbGQucHJvcHMuc3RyYXRlZ3lcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHNjcmlwdExvYWRlckl0ZW1zLnB1c2goY2hpbGQucHJvcHMpXG4gICAgICAgIHJldHVyblxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY2hpbGQucHJvcHMuc3RyYXRlZ3kgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNjcmlwdExvYWRlckl0ZW1zLnB1c2goeyAuLi5jaGlsZC5wcm9wcywgc3RyYXRlZ3k6ICdhZnRlckludGVyYWN0aXZlJyB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgX19ORVhUX0RBVEFfXy5zY3JpcHRMb2FkZXIgPSBzY3JpcHRMb2FkZXJJdGVtc1xufVxuXG5leHBvcnQgY2xhc3MgTmV4dFNjcmlwdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxPcmlnaW5Qcm9wcz4ge1xuICBzdGF0aWMgY29udGV4dFR5cGUgPSBIdG1sQ29udGV4dFxuXG4gIGNvbnRleHQhOiBIdG1sUHJvcHNcblxuICBnZXREeW5hbWljQ2h1bmtzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldER5bmFtaWNDaHVua3ModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFByZU5leHRTY3JpcHRzKCkge1xuICAgIHJldHVybiBnZXRQcmVOZXh0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMpXG4gIH1cblxuICBnZXRTY3JpcHRzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFBvbHlmaWxsU2NyaXB0cygpIHtcbiAgICByZXR1cm4gZ2V0UG9seWZpbGxTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIHN0YXRpYyBnZXRJbmxpbmVTY3JpcHRTb3VyY2UoY29udGV4dDogUmVhZG9ubHk8SHRtbFByb3BzPik6IHN0cmluZyB7XG4gICAgY29uc3QgeyBfX05FWFRfREFUQV9fLCBsYXJnZVBhZ2VEYXRhQnl0ZXMgfSA9IGNvbnRleHRcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IEpTT04uc3RyaW5naWZ5KF9fTkVYVF9EQVRBX18pXG5cbiAgICAgIGlmIChsYXJnZVBhZ2VEYXRhV2FybmluZ3MuaGFzKF9fTkVYVF9EQVRBX18ucGFnZSkpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxFc2NhcGVKc29uU3RyaW5nKGRhdGEpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJ5dGVzID1cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSdcbiAgICAgICAgICA/IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShkYXRhKS5idWZmZXIuYnl0ZUxlbmd0aFxuICAgICAgICAgIDogQnVmZmVyLmZyb20oZGF0YSkuYnl0ZUxlbmd0aFxuICAgICAgY29uc3QgcHJldHR5Qnl0ZXMgPSAoXG4gICAgICAgIHJlcXVpcmUoJy4uL2xpYi9wcmV0dHktYnl0ZXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9saWIvcHJldHR5LWJ5dGVzJylcbiAgICAgICkuZGVmYXVsdFxuXG4gICAgICBpZiAobGFyZ2VQYWdlRGF0YUJ5dGVzICYmIGJ5dGVzID4gbGFyZ2VQYWdlRGF0YUJ5dGVzKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgbGFyZ2VQYWdlRGF0YVdhcm5pbmdzLmFkZChfX05FWFRfREFUQV9fLnBhZ2UpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFdhcm5pbmc6IGRhdGEgZm9yIHBhZ2UgXCIke19fTkVYVF9EQVRBX18ucGFnZX1cIiR7XG4gICAgICAgICAgICBfX05FWFRfREFUQV9fLnBhZ2UgPT09IGNvbnRleHQuZGFuZ2Vyb3VzQXNQYXRoXG4gICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgOiBgIChwYXRoIFwiJHtjb250ZXh0LmRhbmdlcm91c0FzUGF0aH1cIilgXG4gICAgICAgICAgfSBpcyAke3ByZXR0eUJ5dGVzKFxuICAgICAgICAgICAgYnl0ZXNcbiAgICAgICAgICApfSB3aGljaCBleGNlZWRzIHRoZSB0aHJlc2hvbGQgb2YgJHtwcmV0dHlCeXRlcyhcbiAgICAgICAgICAgIGxhcmdlUGFnZURhdGFCeXRlc1xuICAgICAgICAgICl9LCB0aGlzIGFtb3VudCBvZiBkYXRhIGNhbiByZWR1Y2UgcGVyZm9ybWFuY2UuXFxuU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9sYXJnZS1wYWdlLWRhdGFgXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGh0bWxFc2NhcGVKc29uU3RyaW5nKGRhdGEpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoaXNFcnJvcihlcnIpICYmIGVyci5tZXNzYWdlLmluZGV4T2YoJ2NpcmN1bGFyIHN0cnVjdHVyZScpICE9PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENpcmN1bGFyIHN0cnVjdHVyZSBpbiBcImdldEluaXRpYWxQcm9wc1wiIHJlc3VsdCBvZiBwYWdlIFwiJHtfX05FWFRfREFUQV9fLnBhZ2V9XCIuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NpcmN1bGFyLXN0cnVjdHVyZWBcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFzc2V0UHJlZml4LFxuICAgICAgaW5BbXBNb2RlLFxuICAgICAgYnVpbGRNYW5pZmVzdCxcbiAgICAgIHVuc3RhYmxlX3J1bnRpbWVKUyxcbiAgICAgIGRvY0NvbXBvbmVudHNSZW5kZXJlZCxcbiAgICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICAgIGNyb3NzT3JpZ2luLFxuICAgIH0gPSB0aGlzLmNvbnRleHRcbiAgICBjb25zdCBkaXNhYmxlUnVudGltZUpTID0gdW5zdGFibGVfcnVudGltZUpTID09PSBmYWxzZVxuXG4gICAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLk5leHRTY3JpcHQgPSB0cnVlXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgY29uc3QgYW1wRGV2RmlsZXMgPSBbXG4gICAgICAgIC4uLmJ1aWxkTWFuaWZlc3QuZGV2RmlsZXMsXG4gICAgICAgIC4uLmJ1aWxkTWFuaWZlc3QucG9seWZpbGxGaWxlcyxcbiAgICAgICAgLi4uYnVpbGRNYW5pZmVzdC5hbXBEZXZGaWxlcyxcbiAgICAgIF1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7ZGlzYWJsZVJ1bnRpbWVKUyA/IG51bGwgOiAoXG4gICAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICAgIGlkPVwiX19ORVhUX0RBVEFfX1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogTmV4dFNjcmlwdC5nZXRJbmxpbmVTY3JpcHRTb3VyY2UodGhpcy5jb250ZXh0KSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2FtcERldkZpbGVzLm1hcCgoZmlsZSkgPT4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHRoaXMucHJvcHMuY3Jvc3NPcmlnaW4pXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnV2FybmluZzogYE5leHRTY3JpcHRgIGF0dHJpYnV0ZSBgY3Jvc3NPcmlnaW5gIGlzIGRlcHJlY2F0ZWQuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2RvYy1jcm9zc29yaWdpbi1kZXByZWNhdGVkJ1xuICAgICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXM6IERvY3VtZW50RmlsZXMgPSBnZXREb2N1bWVudEZpbGVzKFxuICAgICAgdGhpcy5jb250ZXh0LmJ1aWxkTWFuaWZlc3QsXG4gICAgICB0aGlzLmNvbnRleHQuX19ORVhUX0RBVEFfXy5wYWdlLFxuICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHshZGlzYWJsZVJ1bnRpbWVKUyAmJiBidWlsZE1hbmlmZXN0LmRldkZpbGVzXG4gICAgICAgICAgPyBidWlsZE1hbmlmZXN0LmRldkZpbGVzLm1hcCgoZmlsZTogc3RyaW5nKSA9PiAoXG4gICAgICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgICAge2Rpc2FibGVSdW50aW1lSlMgPyBudWxsIDogKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIGlkPVwiX19ORVhUX0RBVEFfX1wiXG4gICAgICAgICAgICB0eXBlPVwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgX19odG1sOiBOZXh0U2NyaXB0LmdldElubGluZVNjcmlwdFNvdXJjZSh0aGlzLmNvbnRleHQpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7ZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgIHRoaXMuZ2V0UG9seWZpbGxTY3JpcHRzKCl9XG4gICAgICAgIHtkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgdGhpcy5nZXRQcmVOZXh0U2NyaXB0cygpfVxuICAgICAgICB7ZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgIHRoaXMuZ2V0RHluYW1pY0NodW5rcyhmaWxlcyl9XG4gICAgICAgIHtkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJiAhZGlzYWJsZVJ1bnRpbWVKUyAmJiB0aGlzLmdldFNjcmlwdHMoZmlsZXMpfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIdG1sKFxuICBwcm9wczogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgUmVhY3QuSHRtbEhUTUxBdHRyaWJ1dGVzPEhUTUxIdG1sRWxlbWVudD4sXG4gICAgSFRNTEh0bWxFbGVtZW50XG4gID5cbikge1xuICBjb25zdCB7XG4gICAgaW5BbXBNb2RlLFxuICAgIGRvY0NvbXBvbmVudHNSZW5kZXJlZCxcbiAgICBsb2NhbGUsXG4gICAgc2NyaXB0TG9hZGVyLFxuICAgIF9fTkVYVF9EQVRBX18sXG4gIH0gPSB1c2VIdG1sQ29udGV4dCgpXG5cbiAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLkh0bWwgPSB0cnVlXG4gIGhhbmRsZURvY3VtZW50U2NyaXB0TG9hZGVySXRlbXMoc2NyaXB0TG9hZGVyLCBfX05FWFRfREFUQV9fLCBwcm9wcylcblxuICByZXR1cm4gKFxuICAgIDxodG1sXG4gICAgICB7Li4ucHJvcHN9XG4gICAgICBsYW5nPXtwcm9wcy5sYW5nIHx8IGxvY2FsZSB8fCB1bmRlZmluZWR9XG4gICAgICBhbXA9e3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgZGF0YS1hbXBkZXZtb2RlPXtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiZcbiAgICAgICAgaW5BbXBNb2RlICYmXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICAgICAgICA/ICcnXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAvPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNYWluKCkge1xuICBjb25zdCB7IGRvY0NvbXBvbmVudHNSZW5kZXJlZCB9ID0gdXNlSHRtbENvbnRleHQoKVxuICBkb2NDb21wb25lbnRzUmVuZGVyZWQuTWFpbiA9IHRydWVcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gPG5leHQtanMtaW50ZXJuYWwtYm9keS1yZW5kZXItdGFyZ2V0IC8+XG59XG5cbi8qKlxuICogYERvY3VtZW50YCBjb21wb25lbnQgaGFuZGxlcyB0aGUgaW5pdGlhbCBgZG9jdW1lbnRgIG1hcmt1cCBhbmQgcmVuZGVycyBvbmx5IG9uIHRoZSBzZXJ2ZXIgc2lkZS5cbiAqIENvbW1vbmx5IHVzZWQgZm9yIGltcGxlbWVudGluZyBzZXJ2ZXIgc2lkZSByZW5kZXJpbmcgZm9yIGBjc3MtaW4tanNgIGxpYnJhcmllcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRG9jdW1lbnQ8UCA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgRG9jdW1lbnRQcm9wcyAmIFBcbj4ge1xuICAvKipcbiAgICogYGdldEluaXRpYWxQcm9wc2AgaG9vayByZXR1cm5zIHRoZSBjb250ZXh0IG9iamVjdCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBgcmVuZGVyUGFnZWAuXG4gICAqIGByZW5kZXJQYWdlYCBjYWxsYmFjayBleGVjdXRlcyBgUmVhY3RgIHJlbmRlcmluZyBsb2dpYyBzeW5jaHJvbm91c2x5IHRvIHN1cHBvcnQgc2VydmVyLXJlbmRlcmluZyB3cmFwcGVyc1xuICAgKi9cbiAgc3RhdGljIGdldEluaXRpYWxQcm9wcyhjdHg6IERvY3VtZW50Q29udGV4dCk6IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+IHtcbiAgICByZXR1cm4gY3R4LmRlZmF1bHRHZXRJbml0aWFsUHJvcHMoY3R4KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8SHRtbD5cbiAgICAgICAgPEhlYWQgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9IC8+XG4gICAgICAgIDxib2R5PlxuICAgICAgICAgIDxNYWluIC8+XG4gICAgICAgICAgPE5leHRTY3JpcHQgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9IC8+XG4gICAgICAgIDwvYm9keT5cbiAgICAgIDwvSHRtbD5cbiAgICApXG4gIH1cbn1cblxuLy8gQWRkIGEgc3BlY2lhbCBwcm9wZXJ0eSB0byB0aGUgYnVpbHQtaW4gYERvY3VtZW50YCBjb21wb25lbnQgc28gbGF0ZXIgd2UgY2FuXG4vLyBpZGVudGlmeSBpZiBhIHVzZXIgY3VzdG9taXplZCBgRG9jdW1lbnRgIGlzIHVzZWQgb3Igbm90LlxuY29uc3QgSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50OiBEb2N1bWVudFR5cGUgPVxuICBmdW5jdGlvbiBJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxIdG1sPlxuICAgICAgICA8SGVhZCAvPlxuICAgICAgICA8Ym9keT5cbiAgICAgICAgICA8TWFpbiAvPlxuICAgICAgICAgIDxOZXh0U2NyaXB0IC8+XG4gICAgICAgIDwvYm9keT5cbiAgICAgIDwvSHRtbD5cbiAgICApXG4gIH1cbjsoRG9jdW1lbnQgYXMgYW55KVtORVhUX0JVSUxUSU5fRE9DVU1FTlRdID0gSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50XG4iXSwibmFtZXMiOlsiSGVhZCIsIkh0bWwiLCJNYWluIiwiTmV4dFNjcmlwdCIsIkRvY3VtZW50IiwibGFyZ2VQYWdlRGF0YVdhcm5pbmdzIiwiU2V0IiwiZ2V0RG9jdW1lbnRGaWxlcyIsImJ1aWxkTWFuaWZlc3QiLCJwYXRobmFtZSIsImluQW1wTW9kZSIsInNoYXJlZEZpbGVzIiwiZ2V0UGFnZUZpbGVzIiwicGFnZUZpbGVzIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsImFsbEZpbGVzIiwiZ2V0UG9seWZpbGxTY3JpcHRzIiwiY29udGV4dCIsInByb3BzIiwiYXNzZXRQcmVmaXgiLCJhc3NldFF1ZXJ5U3RyaW5nIiwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciLCJjcm9zc09yaWdpbiIsInBvbHlmaWxsRmlsZXMiLCJmaWx0ZXIiLCJwb2x5ZmlsbCIsImVuZHNXaXRoIiwibWFwIiwic2NyaXB0IiwiZGVmZXIiLCJub25jZSIsIm5vTW9kdWxlIiwic3JjIiwiZW5jb2RlVVJJUGF0aCIsImhhc0NvbXBvbmVudFByb3BzIiwiY2hpbGQiLCJBbXBTdHlsZXMiLCJzdHlsZXMiLCJjdXJTdHlsZXMiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZHJlbiIsImhhc1N0eWxlcyIsImVsIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJmb3JFYWNoIiwicHVzaCIsInN0eWxlIiwiYW1wLWN1c3RvbSIsImpvaW4iLCJyZXBsYWNlIiwiZ2V0RHluYW1pY0NodW5rcyIsImZpbGVzIiwiZHluYW1pY0ltcG9ydHMiLCJpc0RldmVsb3BtZW50IiwiZmlsZSIsImluY2x1ZGVzIiwiYXN5bmMiLCJnZXRTY3JpcHRzIiwibm9ybWFsU2NyaXB0cyIsImxvd1ByaW9yaXR5U2NyaXB0cyIsImxvd1ByaW9yaXR5RmlsZXMiLCJnZXRQcmVOZXh0V29ya2VyU2NyaXB0cyIsInNjcmlwdExvYWRlciIsIm5leHRTY3JpcHRXb3JrZXJzIiwicGFydHl0b3duU25pcHBldCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwidXNlckRlZmluZWRDb25maWciLCJmaW5kIiwibGVuZ3RoIiwiZGF0YS1wYXJ0eXRvd24tY29uZmlnIiwiZGF0YS1wYXJ0eXRvd24iLCJ3b3JrZXIiLCJpbmRleCIsInN0cmF0ZWd5Iiwic2NyaXB0Q2hpbGRyZW4iLCJzY3JpcHRQcm9wcyIsInNyY1Byb3BzIiwiRXJyb3IiLCJ0eXBlIiwia2V5IiwiZGF0YS1uc2NyaXB0IiwiZXJyIiwiaXNFcnJvciIsImNvZGUiLCJjb25zb2xlIiwid2FybiIsIm1lc3NhZ2UiLCJnZXRQcmVOZXh0U2NyaXB0cyIsIndlYldvcmtlclNjcmlwdHMiLCJiZWZvcmVJbnRlcmFjdGl2ZVNjcmlwdHMiLCJiZWZvcmVJbnRlcmFjdGl2ZSIsImdldEhlYWRIVE1MUHJvcHMiLCJyZXN0UHJvcHMiLCJoZWFkUHJvcHMiLCJnZXRBbXBQYXRoIiwiYW1wUGF0aCIsImFzUGF0aCIsImdldE5leHRGb250TGlua1RhZ3MiLCJuZXh0Rm9udE1hbmlmZXN0IiwiZGFuZ2Vyb3VzQXNQYXRoIiwicHJlY29ubmVjdCIsInByZWxvYWQiLCJhcHBGb250c0VudHJ5IiwicGFnZXMiLCJwYWdlRm9udHNFbnRyeSIsInByZWxvYWRlZEZvbnRGaWxlcyIsImZyb20iLCJwcmVjb25uZWN0VG9TZWxmIiwibGluayIsImRhdGEtbmV4dC1mb250IiwicGFnZXNVc2luZ1NpemVBZGp1c3QiLCJyZWwiLCJocmVmIiwiZm9udEZpbGUiLCJleHQiLCJleGVjIiwiYXMiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnRleHRUeXBlIiwiSHRtbENvbnRleHQiLCJnZXRDc3NMaW5rcyIsImR5bmFtaWNDc3NNYW5pZmVzdCIsIm9wdGltaXplQ3NzIiwiY3NzRmlsZXMiLCJmIiwidW5tYW5hZ2VkRmlsZXMiLCJsb2NhbER5bmFtaWNDc3NGaWxlcyIsImV4aXN0aW5nIiwiaGFzIiwiY3NzTGlua0VsZW1lbnRzIiwiaXNTaGFyZWRGaWxlIiwiaXNVbm1hbmFnZWRGaWxlIiwiaXNGaWxlSW5EeW5hbWljQ3NzTWFuaWZlc3QiLCJkYXRhLW4tZyIsInVuZGVmaW5lZCIsImRhdGEtbi1wIiwiZ2V0UHJlbG9hZER5bmFtaWNDaHVua3MiLCJCb29sZWFuIiwiZ2V0UHJlbG9hZE1haW5MaW5rcyIsInByZWxvYWRGaWxlcyIsImdldEJlZm9yZUludGVyYWN0aXZlSW5saW5lU2NyaXB0cyIsImh0bWwiLCJpZCIsIl9fTkVYVF9DUk9TU19PUklHSU4iLCJyZW5kZXIiLCJoeWJyaWRBbXAiLCJjYW5vbmljYWxCYXNlIiwiX19ORVhUX0RBVEFfXyIsImhlYWRUYWdzIiwidW5zdGFibGVfcnVudGltZUpTIiwidW5zdGFibGVfSnNQcmVsb2FkIiwiZGlzYWJsZVJ1bnRpbWVKUyIsImRpc2FibGVKc1ByZWxvYWQiLCJkb2NDb21wb25lbnRzUmVuZGVyZWQiLCJoZWFkIiwiY3NzUHJlbG9hZHMiLCJvdGhlckhlYWRFbGVtZW50cyIsImNsb25lRWxlbWVudCIsImNvbmNhdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsIk5PREVfRU5WIiwiaXNSZWFjdEhlbG1ldCIsIm5hbWUiLCJoYXNBbXBodG1sUmVsIiwiaGFzQ2Fub25pY2FsUmVsIiwiYmFkUHJvcCIsImluZGV4T2YiLCJPYmplY3QiLCJrZXlzIiwicHJvcCIsInBhZ2UiLCJuZXh0Rm9udExpbmtUYWdzIiwidHJhY2luZ01ldGFkYXRhIiwiZ2V0VHJhY2VkTWV0YWRhdGEiLCJnZXRUcmFjZXIiLCJnZXRUcmFjZVByb3BhZ2F0aW9uRGF0YSIsImV4cGVyaW1lbnRhbENsaWVudFRyYWNlTWV0YWRhdGEiLCJ0cmFjZU1ldGFUYWdzIiwidmFsdWUiLCJtZXRhIiwiY29udGVudCIsImRhdGEtbmV4dC1oaWRlLWZvdWMiLCJkYXRhLWFtcGRldm1vZGUiLCJub3NjcmlwdCIsInJlcXVpcmUiLCJjbGVhbkFtcFBhdGgiLCJhbXAtYm9pbGVycGxhdGUiLCJkYXRhLW4tY3NzIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiaGFuZGxlRG9jdW1lbnRTY3JpcHRMb2FkZXJJdGVtcyIsInNjcmlwdExvYWRlckl0ZW1zIiwiaGVhZENoaWxkcmVuIiwiYm9keUNoaWxkcmVuIiwiY29tYmluZWRDaGlsZHJlbiIsIl9fbmV4dFNjcmlwdCIsImdldElubGluZVNjcmlwdFNvdXJjZSIsImxhcmdlUGFnZURhdGFCeXRlcyIsImRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwiaHRtbEVzY2FwZUpzb25TdHJpbmciLCJieXRlcyIsIlRleHRFbmNvZGVyIiwiZW5jb2RlIiwiYnVmZmVyIiwiYnl0ZUxlbmd0aCIsIkJ1ZmZlciIsInByZXR0eUJ5dGVzIiwiZGVmYXVsdCIsImFkZCIsImFtcERldkZpbGVzIiwiZGV2RmlsZXMiLCJsb2NhbGUiLCJ1c2VIdG1sQ29udGV4dCIsImxhbmciLCJhbXAiLCJuZXh0LWpzLWludGVybmFsLWJvZHktcmVuZGVyLXRhcmdldCIsImdldEluaXRpYWxQcm9wcyIsImN0eCIsImRlZmF1bHRHZXRJbml0aWFsUHJvcHMiLCJib2R5IiwiSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50IiwiTkVYVF9CVUlMVElOX0RPQ1VNRU5UIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_document.js\n"); /***/ }), /***/ "./node_modules/next/dist/pages/_error.js": /*!************************************************!*\ !*** ./node_modules/next/dist/pages/_error.js ***! \************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { req, res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n let hostname;\n if (false) {} else if (req) {\n const { getRequestMeta } = __webpack_require__(/*! ../server/request-meta */ \"./node_modules/next/dist/server/request-meta.js\");\n const initUrl = getRequestMeta(req, 'initURL');\n if (initUrl) {\n const url = new URL(initUrl);\n hostname = url.hostname;\n }\n }\n return {\n statusCode,\n hostname\n };\n}\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"Application error: a client-side exception has occurred\",\n ' ',\n Boolean(this.props.hostname) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"while loading \",\n this.props.hostname\n ]\n }),\n ' ',\n \"(see the browser console for more information)\"\n ]\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBZ0ZxQkE7Ozs7OzRFQWhGSDsyRUFDRDtBQUdqQixNQUFNQyxjQUEwQztJQUM5QyxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0FBQ1A7QUFTQSxTQUFTQyxpQkFBaUIsS0FJUjtJQUpRLE1BQ3hCQyxHQUFHLEVBQ0hDLEdBQUcsRUFDSEMsR0FBRyxFQUNhLEdBSlE7SUFLeEIsTUFBTUMsYUFDSkYsT0FBT0EsSUFBSUUsVUFBVSxHQUFHRixJQUFJRSxVQUFVLEdBQUdELE1BQU1BLElBQUlDLFVBQVUsR0FBSTtJQUVuRSxJQUFJQztJQUVKLElBQUksS0FBNkIsRUFBRSxFQUVsQyxNQUFNLElBQUlKLEtBQUs7UUFDZCxNQUFNLEVBQUVPLGNBQWMsRUFBRSxHQUN0QkMsbUJBQU9BLENBQUMsK0VBQXdCO1FBRWxDLE1BQU1DLFVBQVVGLGVBQWVQLEtBQUs7UUFDcEMsSUFBSVMsU0FBUztZQUNYLE1BQU1DLE1BQU0sSUFBSUMsSUFBSUY7WUFDcEJMLFdBQVdNLElBQUlOLFFBQVE7UUFDekI7SUFDRjtJQUVBLE9BQU87UUFBRUQ7UUFBWUM7SUFBUztBQUNoQztBQUVBLE1BQU1RLFNBQThDO0lBQ2xEQyxPQUFPO1FBQ0wsMEZBQTBGO1FBQzFGQyxZQUNFO1FBQ0ZDLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGVBQWU7UUFDZkMsWUFBWTtRQUNaQyxnQkFBZ0I7SUFDbEI7SUFDQUMsTUFBTTtRQUNKQyxZQUFZO0lBQ2Q7SUFDQUMsSUFBSTtRQUNGTixTQUFTO1FBQ1RPLFFBQVE7UUFDUkMsY0FBYztRQUNkQyxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsZUFBZTtJQUNqQjtJQUNBQyxJQUFJO1FBQ0ZILFVBQVU7UUFDVkMsWUFBWTtRQUNaTCxZQUFZO0lBQ2Q7SUFDQVEsTUFBTTtRQUNKYixTQUFTO0lBQ1g7QUFDRjtBQUtlLE1BQU1wQixjQUFzQmtDLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQU14REMsU0FBUztRQUNQLE1BQU0sRUFBRTlCLFVBQVUsRUFBRStCLGVBQWUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDQyxLQUFLO1FBQ3RELE1BQU1DLFFBQ0osSUFBSSxDQUFDRCxLQUFLLENBQUNDLEtBQUssSUFDaEJ0QyxXQUFXLENBQUNLLFdBQVcsSUFDdkI7UUFFRixxQkFDRSxzQkFBQ2tDLE9BQUFBO1lBQUlDLE9BQU8xQixPQUFPQyxLQUFLOzs4QkFDdEIscUJBQUMwQixNQUFBQSxPQUFJOzhCQUNILG1DQUFDSCxTQUFBQTtrQ0FDRWpDLGFBQ01BLGFBQVcsT0FBSWlDLFFBQ2xCOzs7OEJBR1Isc0JBQUNDLE9BQUFBO29CQUFJQyxPQUFPMUIsT0FBT1MsSUFBSTs7c0NBQ3JCLHFCQUFDaUIsU0FBQUE7NEJBQ0NFLHlCQUF5QjtnQ0FDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFnQkMsR0FDREMsUUFBUyxtR0FDUFAsQ0FBQUEsZUFDSSxvSUFDQSxHQUFDOzRCQUVUOzt3QkFHRC9CLGFBQUFBLFdBQUFBLEdBQ0MscUJBQUNvQixNQUFBQTs0QkFBR21CLFdBQVU7NEJBQWdCSixPQUFPMUIsT0FBT1csRUFBRTtzQ0FDM0NwQjs2QkFFRDtzQ0FDSixxQkFBQ2tDLE9BQUFBOzRCQUFJQyxPQUFPMUIsT0FBT2tCLElBQUk7c0NBQ3JCLG9DQUFDRCxNQUFBQTtnQ0FBR1MsT0FBTzFCLE9BQU9pQixFQUFFOztvQ0FDakIsSUFBSSxDQUFDTSxLQUFLLENBQUNDLEtBQUssSUFBSWpDLGFBQ25CaUMsUUFFQSxXQUZBQSxHQUVBOzs0Q0FBRTs0Q0FDd0Q7NENBQ3ZETyxRQUFRLElBQUksQ0FBQ1IsS0FBSyxDQUFDL0IsUUFBUSxLQUMxQixXQUQwQixHQUMxQjs7b0RBQUU7b0RBQWUsSUFBSSxDQUFDK0IsS0FBSyxDQUFDL0IsUUFBUTs7OzRDQUNuQzs0Q0FBSTs7O29DQUdUOzs7Ozs7OztJQU9kO0FBQ0Y7QUEzRXFCUCxNQUNaK0MsV0FBQUEsR0FBYztBQURGL0MsTUFHWmdELGVBQUFBLEdBQWtCOUM7QUFITkYsTUFJWmlELG1CQUFBQSxHQUFzQi9DIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvc3JjL3BhZ2VzL19lcnJvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEhlYWQgZnJvbSAnLi4vc2hhcmVkL2xpYi9oZWFkJ1xuaW1wb3J0IHR5cGUgeyBOZXh0UGFnZUNvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuXG5jb25zdCBzdGF0dXNDb2RlczogeyBbY29kZTogbnVtYmVyXTogc3RyaW5nIH0gPSB7XG4gIDQwMDogJ0JhZCBSZXF1ZXN0JyxcbiAgNDA0OiAnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcsXG4gIDQwNTogJ01ldGhvZCBOb3QgQWxsb3dlZCcsXG4gIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvcicsXG59XG5cbmV4cG9ydCB0eXBlIEVycm9yUHJvcHMgPSB7XG4gIHN0YXR1c0NvZGU6IG51bWJlclxuICBob3N0bmFtZT86IHN0cmluZ1xuICB0aXRsZT86IHN0cmluZ1xuICB3aXRoRGFya01vZGU/OiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIF9nZXRJbml0aWFsUHJvcHMoe1xuICByZXEsXG4gIHJlcyxcbiAgZXJyLFxufTogTmV4dFBhZ2VDb250ZXh0KTogUHJvbWlzZTxFcnJvclByb3BzPiB8IEVycm9yUHJvcHMge1xuICBjb25zdCBzdGF0dXNDb2RlID1cbiAgICByZXMgJiYgcmVzLnN0YXR1c0NvZGUgPyByZXMuc3RhdHVzQ29kZSA6IGVyciA/IGVyci5zdGF0dXNDb2RlISA6IDQwNFxuXG4gIGxldCBob3N0bmFtZVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGhvc3RuYW1lID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lXG4gIH0gZWxzZSBpZiAocmVxKSB7XG4gICAgY29uc3QgeyBnZXRSZXF1ZXN0TWV0YSB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NlcnZlci9yZXF1ZXN0LW1ldGEnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zZXJ2ZXIvcmVxdWVzdC1tZXRhJylcblxuICAgIGNvbnN0IGluaXRVcmwgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdpbml0VVJMJylcbiAgICBpZiAoaW5pdFVybCkge1xuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChpbml0VXJsKVxuICAgICAgaG9zdG5hbWUgPSB1cmwuaG9zdG5hbWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBzdGF0dXNDb2RlLCBob3N0bmFtZSB9XG59XG5cbmNvbnN0IHN0eWxlczogUmVjb3JkPHN0cmluZywgUmVhY3QuQ1NTUHJvcGVydGllcz4gPSB7XG4gIGVycm9yOiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2Jsb2IvbWFpbi9tb2Rlcm4tbm9ybWFsaXplLmNzcyNMMzgtTDUyXG4gICAgZm9udEZhbWlseTpcbiAgICAgICdzeXN0ZW0tdWksXCJTZWdvZSBVSVwiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiJyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuICBkZXNjOiB7XG4gICAgbGluZUhlaWdodDogJzQ4cHgnLFxuICB9LFxuICBoMToge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIG1hcmdpbjogJzAgMjBweCAwIDAnLFxuICAgIHBhZGRpbmdSaWdodDogMjMsXG4gICAgZm9udFNpemU6IDI0LFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgfSxcbiAgaDI6IHtcbiAgICBmb250U2l6ZTogMTQsXG4gICAgZm9udFdlaWdodDogNDAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyOHB4JyxcbiAgfSxcbiAgd3JhcDoge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICB9LFxufVxuXG4vKipcbiAqIGBFcnJvcmAgY29tcG9uZW50IHVzZWQgZm9yIGhhbmRsaW5nIGVycm9ycy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXJyb3I8UCA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQICYgRXJyb3JQcm9wcz4ge1xuICBzdGF0aWMgZGlzcGxheU5hbWUgPSAnRXJyb3JQYWdlJ1xuXG4gIHN0YXRpYyBnZXRJbml0aWFsUHJvcHMgPSBfZ2V0SW5pdGlhbFByb3BzXG4gIHN0YXRpYyBvcmlnR2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wc1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHN0YXR1c0NvZGUsIHdpdGhEYXJrTW9kZSA9IHRydWUgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB0aXRsZSA9XG4gICAgICB0aGlzLnByb3BzLnRpdGxlIHx8XG4gICAgICBzdGF0dXNDb2Rlc1tzdGF0dXNDb2RlXSB8fFxuICAgICAgJ0FuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkJ1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5lcnJvcn0+XG4gICAgICAgIDxIZWFkPlxuICAgICAgICAgIDx0aXRsZT5cbiAgICAgICAgICAgIHtzdGF0dXNDb2RlXG4gICAgICAgICAgICAgID8gYCR7c3RhdHVzQ29kZX06ICR7dGl0bGV9YFxuICAgICAgICAgICAgICA6ICdBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkJ31cbiAgICAgICAgICA8L3RpdGxlPlxuICAgICAgICA8L0hlYWQ+XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5kZXNjfT5cbiAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIC8qIENTUyBtaW5pZmllZCBmcm9tXG4gICAgICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMDsgY29sb3I6ICMwMDA7IGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4zKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAke1xuICAgICAgICAgICAgICAgICAgd2l0aERhcmtNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gYEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgICAgICAgICAgIGJvZHkgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogIzAwMDsgfVxuICAgICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4zKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfSR7XG4gICAgICAgICAgICAgICAgd2l0aERhcmtNb2RlXG4gICAgICAgICAgICAgICAgICA/ICdAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspe2JvZHl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMDB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zKX19J1xuICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIHtzdGF0dXNDb2RlID8gKFxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm5leHQtZXJyb3ItaDFcIiBzdHlsZT17c3R5bGVzLmgxfT5cbiAgICAgICAgICAgICAge3N0YXR1c0NvZGV9XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy53cmFwfT5cbiAgICAgICAgICAgIDxoMiBzdHlsZT17c3R5bGVzLmgyfT5cbiAgICAgICAgICAgICAge3RoaXMucHJvcHMudGl0bGUgfHwgc3RhdHVzQ29kZSA/IChcbiAgICAgICAgICAgICAgICB0aXRsZVxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkeycgJ31cbiAgICAgICAgICAgICAgICAgIHtCb29sZWFuKHRoaXMucHJvcHMuaG9zdG5hbWUpICYmIChcbiAgICAgICAgICAgICAgICAgICAgPD53aGlsZSBsb2FkaW5nIHt0aGlzLnByb3BzLmhvc3RuYW1lfTwvPlxuICAgICAgICAgICAgICAgICAgKX17JyAnfVxuICAgICAgICAgICAgICAgICAgKHNlZSB0aGUgYnJvd3NlciBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uKVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAuXG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVycm9yIiwic3RhdHVzQ29kZXMiLCJfZ2V0SW5pdGlhbFByb3BzIiwicmVxIiwicmVzIiwiZXJyIiwic3RhdHVzQ29kZSIsImhvc3RuYW1lIiwid2luZG93IiwibG9jYXRpb24iLCJnZXRSZXF1ZXN0TWV0YSIsInJlcXVpcmUiLCJpbml0VXJsIiwidXJsIiwiVVJMIiwic3R5bGVzIiwiZXJyb3IiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJkZXNjIiwibGluZUhlaWdodCIsImgxIiwibWFyZ2luIiwicGFkZGluZ1JpZ2h0IiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwidmVydGljYWxBbGlnbiIsImgyIiwid3JhcCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwid2l0aERhcmtNb2RlIiwicHJvcHMiLCJ0aXRsZSIsImRpdiIsInN0eWxlIiwiSGVhZCIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiY2xhc3NOYW1lIiwiQm9vbGVhbiIsImRpc3BsYXlOYW1lIiwiZ2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/app-render/interop-default.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/interop-default.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Interop between \"export default\" and \"module.exports\".\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0RBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJvcCBiZXR3ZWVuIFwiZXhwb3J0IGRlZmF1bHRcIiBhbmQgXCJtb2R1bGUuZXhwb3J0c1wiLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaW50ZXJvcERlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGludGVyb3BEZWZhdWx0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaW50ZXJvcERlZmF1bHQobW9kKSB7XG4gICAgcmV0dXJuIG1vZC5kZWZhdWx0IHx8IG1vZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJvcC1kZWZhdWx0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/app-render/interop-default.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/base-http/helpers.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/server/base-http/helpers.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isNodeNextRequest: function() {\n return isNodeNextRequest;\n },\n isNodeNextResponse: function() {\n return isNodeNextResponse;\n },\n isWebNextRequest: function() {\n return isWebNextRequest;\n },\n isWebNextResponse: function() {\n return isWebNextResponse;\n }\n});\nconst isWebNextRequest = (req)=>\"nodejs\" === 'edge';\nconst isWebNextResponse = (res)=>\"nodejs\" === 'edge';\nconst isNodeNextRequest = (req)=>\"nodejs\" !== 'edge';\nconst isNodeNextResponse = (res)=>\"nodejs\" !== 'edge';\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FLTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZ0NBQWdDLFFBQXdCO0FBQ3hELGlDQUFpQyxRQUF3QjtBQUN6RCxpQ0FBaUMsUUFBd0I7QUFDekQsa0NBQWtDLFFBQXdCOztBQUUxRCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzTm9kZU5leHRSZXF1ZXN0OiBudWxsLFxuICAgIGlzTm9kZU5leHRSZXNwb25zZTogbnVsbCxcbiAgICBpc1dlYk5leHRSZXF1ZXN0OiBudWxsLFxuICAgIGlzV2ViTmV4dFJlc3BvbnNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzTm9kZU5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZU5leHRSZXF1ZXN0O1xuICAgIH0sXG4gICAgaXNOb2RlTmV4dFJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZU5leHRSZXNwb25zZTtcbiAgICB9LFxuICAgIGlzV2ViTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNXZWJOZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIGlzV2ViTmV4dFJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzV2ViTmV4dFJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgaXNXZWJOZXh0UmVxdWVzdCA9IChyZXEpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJztcbmNvbnN0IGlzV2ViTmV4dFJlc3BvbnNlID0gKHJlcyk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnO1xuY29uc3QgaXNOb2RlTmV4dFJlcXVlc3QgPSAocmVxKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZSc7XG5jb25zdCBpc05vZGVOZXh0UmVzcG9uc2UgPSAocmVzKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZSc7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/base-http/helpers.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/client-component-renderer-logger.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/server/client-component-renderer-logger.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0;\nlet clientComponentLoadTimes = 0;\nlet clientComponentLoadCount = 0;\nfunction wrapClientComponentLoader(ComponentMod) {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__;\n }\n return {\n require: (...args)=>{\n const startTime = performance.now();\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime;\n }\n try {\n clientComponentLoadCount += 1;\n return ComponentMod.__next_app__.require(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\n },\n loadChunk: (...args)=>{\n const startTime = performance.now();\n const result = ComponentMod.__next_app__.loadChunk(...args);\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(()=>{\n clientComponentLoadTimes += performance.now() - startTime;\n });\n return result;\n }\n };\n}\nfunction getClientComponentLoaderMetrics(options = {}) {\n const metrics = clientComponentLoadStart === 0 ? undefined : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount\n };\n if (options.reset) {\n clientComponentLoadStart = 0;\n clientComponentLoadTimes = 0;\n clientComponentLoadCount = 0;\n }\n return metrics;\n}\n\n//# sourceMappingURL=client-component-renderer-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljczogbnVsbCxcbiAgICB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcztcbiAgICB9LFxuICAgIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd3JhcENsaWVudENvbXBvbmVudExvYWRlcjtcbiAgICB9XG59KTtcbi8vIENvbWJpbmVkIGxvYWQgdGltZXMgZm9yIGxvYWRpbmcgY2xpZW50IGNvbXBvbmVudHNcbmxldCBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSAwO1xubGV0IGNsaWVudENvbXBvbmVudExvYWRUaW1lcyA9IDA7XG5sZXQgY2xpZW50Q29tcG9uZW50TG9hZENvdW50ID0gMDtcbmZ1bmN0aW9uIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXIoQ29tcG9uZW50TW9kKSB7XG4gICAgaWYgKCEoJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzKSkge1xuICAgICAgICByZXR1cm4gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZTogKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgIGlmIChjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSBzdGFydFRpbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRDb3VudCArPSAxO1xuICAgICAgICAgICAgICAgIHJldHVybiBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fLnJlcXVpcmUoLi4uYXJncyk7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzICs9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb2FkQ2h1bms6ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fLmxvYWRDaHVuayguLi5hcmdzKTtcbiAgICAgICAgICAgIC8vIEF2b2lkIHdyYXBwaW5nIGBsb2FkQ2h1bmtgJ3MgcmVzdWx0IGluIGFuIGV4dHJhIHByb21pc2UgaW4gY2FzZSBzb21ldGhpbmcgbGlrZSBSZWFjdCBkZXBlbmRzIG9uIGl0cyBpZGVudGl0eS5cbiAgICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBrbm93IHdoZW4gaXQncyBzZXR0bGVkLlxuICAgICAgICAgICAgcmVzdWx0LmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgKz0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcyhvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBtZXRyaWNzID0gY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID09PSAwID8gdW5kZWZpbmVkIDoge1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQsXG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyxcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZENvdW50XG4gICAgfTtcbiAgICBpZiAob3B0aW9ucy5yZXNldCkge1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSAwO1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgPSAwO1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkQ291bnQgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gbWV0cmljcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xpZW50LWNvbXBvbmVudC1yZW5kZXJlci1sb2dnZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/client-component-renderer-logger.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/get-page-files.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/server/get-page-files.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getPageFiles\", ({\n enumerable: true,\n get: function() {\n return getPageFiles;\n }\n}));\nconst _denormalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/denormalize-page-path */ \"./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\");\nconst _normalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/normalize-page-path */ \"./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\");\nfunction getPageFiles(buildManifest, page) {\n const normalizedPage = (0, _denormalizepagepath.denormalizePagePath)((0, _normalizepagepath.normalizePagePath)(page));\n let files = buildManifest.pages[normalizedPage];\n if (!files) {\n console.warn(`Could not find files for ${normalizedPage} in .next/build-manifest.json`);\n return [];\n }\n return files;\n}\n\n//# sourceMappingURL=get-page-files.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9nZXQtcGFnZS1maWxlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGdEQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLDZCQUE2QixtQkFBTyxDQUFDLDZIQUErQztBQUNwRiwyQkFBMkIsbUJBQU8sQ0FBQyx5SEFBNkM7QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsZ0JBQWdCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2dldC1wYWdlLWZpbGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0UGFnZUZpbGVzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRQYWdlRmlsZXM7XG4gICAgfVxufSk7XG5jb25zdCBfZGVub3JtYWxpemVwYWdlcGF0aCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9kZW5vcm1hbGl6ZS1wYWdlLXBhdGhcIik7XG5jb25zdCBfbm9ybWFsaXplcGFnZXBhdGggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhZ2UtcGF0aFwiKTtcbmZ1bmN0aW9uIGdldFBhZ2VGaWxlcyhidWlsZE1hbmlmZXN0LCBwYWdlKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFBhZ2UgPSAoMCwgX2Rlbm9ybWFsaXplcGFnZXBhdGguZGVub3JtYWxpemVQYWdlUGF0aCkoKDAsIF9ub3JtYWxpemVwYWdlcGF0aC5ub3JtYWxpemVQYWdlUGF0aCkocGFnZSkpO1xuICAgIGxldCBmaWxlcyA9IGJ1aWxkTWFuaWZlc3QucGFnZXNbbm9ybWFsaXplZFBhZ2VdO1xuICAgIGlmICghZmlsZXMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgZmluZCBmaWxlcyBmb3IgJHtub3JtYWxpemVkUGFnZX0gaW4gLm5leHQvYnVpbGQtbWFuaWZlc3QuanNvbmApO1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBmaWxlcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXBhZ2UtZmlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/get-page-files.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/htmlescape.js": /*!*****************************************************!*\ !*** ./node_modules/next/dist/server/htmlescape.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ESCAPE_REGEX: function() {\n return ESCAPE_REGEX;\n },\n htmlEscapeJsonString: function() {\n return htmlEscapeJsonString;\n }\n});\nconst ESCAPE_LOOKUP = {\n '&': '\\\\u0026',\n '>': '\\\\u003e',\n '<': '\\\\u003c',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction htmlEscapeJsonString(str) {\n return str.replace(ESCAPE_REGEX, (match)=>ESCAPE_LOOKUP[match]);\n}\n\n//# sourceMappingURL=htmlescape.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9odG1sZXNjYXBlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2h0bWxlc2NhcGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyB1dGlsaXR5IGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS96ZXJ0b3NoL2h0bWxlc2NhcGVcbi8vIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS96ZXJ0b3NoL2h0bWxlc2NhcGUvYmxvYi8wNTI3Y2E3MTU2YTUyNGQyNTYxMDFiYjMxMGE5Zjk3MGY2MzA3OGFkL0xJQ0VOU0VcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgRVNDQVBFX1JFR0VYOiBudWxsLFxuICAgIGh0bWxFc2NhcGVKc29uU3RyaW5nOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEVTQ0FQRV9SRUdFWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFU0NBUEVfUkVHRVg7XG4gICAgfSxcbiAgICBodG1sRXNjYXBlSnNvblN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBodG1sRXNjYXBlSnNvblN0cmluZztcbiAgICB9XG59KTtcbmNvbnN0IEVTQ0FQRV9MT09LVVAgPSB7XG4gICAgJyYnOiAnXFxcXHUwMDI2JyxcbiAgICAnPic6ICdcXFxcdTAwM2UnLFxuICAgICc8JzogJ1xcXFx1MDAzYycsXG4gICAgJ1xcdTIwMjgnOiAnXFxcXHUyMDI4JyxcbiAgICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknXG59O1xuY29uc3QgRVNDQVBFX1JFR0VYID0gL1smPjxcXHUyMDI4XFx1MjAyOV0vZztcbmZ1bmN0aW9uIGh0bWxFc2NhcGVKc29uU3RyaW5nKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShFU0NBUEVfUkVHRVgsIChtYXRjaCk9PkVTQ0FQRV9MT09LVVBbbWF0Y2hdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aHRtbGVzY2FwZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/htmlescape.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/instrumentation/utils.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/server/instrumentation/utils.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRevalidateReason\", ({\n enumerable: true,\n get: function() {\n return getRevalidateReason;\n }\n}));\nfunction getRevalidateReason(params) {\n if (params.isOnDemandRevalidate) {\n return 'on-demand';\n }\n if (params.isRevalidate) {\n return 'stale';\n }\n return undefined;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9pbnN0cnVtZW50YXRpb24vdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvaW5zdHJ1bWVudGF0aW9uL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0UmV2YWxpZGF0ZVJlYXNvblwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UmV2YWxpZGF0ZVJlYXNvbjtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGdldFJldmFsaWRhdGVSZWFzb24ocGFyYW1zKSB7XG4gICAgaWYgKHBhcmFtcy5pc09uRGVtYW5kUmV2YWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4gJ29uLWRlbWFuZCc7XG4gICAgfVxuICAgIGlmIChwYXJhbXMuaXNSZXZhbGlkYXRlKSB7XG4gICAgICAgIHJldHVybiAnc3RhbGUnO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/instrumentation/utils.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/lib/cache-control.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/server/lib/cache-control.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCacheControlHeader\", ({\n enumerable: true,\n get: function() {\n return getCacheControlHeader;\n }\n}));\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"./node_modules/next/dist/lib/constants.js\");\nfunction getCacheControlHeader({ revalidate, expire }) {\n const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - revalidate}` : '';\n if (revalidate === 0) {\n return 'private, no-cache, no-store, max-age=0, must-revalidate';\n } else if (typeof revalidate === 'number') {\n return `s-maxage=${revalidate}${swrHeader}`;\n }\n return `s-maxage=${_constants.CACHE_ONE_YEAR}${swrHeader}`;\n}\n\n//# sourceMappingURL=cache-control.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2FjaGUtY29udHJvbC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlEQUF3RDtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG1CQUFtQixtQkFBTyxDQUFDLHNFQUFxQjtBQUNoRCxpQ0FBaUMsb0JBQW9CO0FBQ3JELGtJQUFrSSxvQkFBb0I7QUFDdEo7QUFDQTtBQUNBLE1BQU07QUFDTiwyQkFBMkIsV0FBVyxFQUFFLFVBQVU7QUFDbEQ7QUFDQSx1QkFBdUIsMEJBQTBCLEVBQUUsVUFBVTtBQUM3RDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2FjaGUtY29udHJvbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldENhY2hlQ29udHJvbEhlYWRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q2FjaGVDb250cm9sSGVhZGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gZ2V0Q2FjaGVDb250cm9sSGVhZGVyKHsgcmV2YWxpZGF0ZSwgZXhwaXJlIH0pIHtcbiAgICBjb25zdCBzd3JIZWFkZXIgPSB0eXBlb2YgcmV2YWxpZGF0ZSA9PT0gJ251bWJlcicgJiYgZXhwaXJlICE9PSB1bmRlZmluZWQgJiYgcmV2YWxpZGF0ZSA8IGV4cGlyZSA/IGAsIHN0YWxlLXdoaWxlLXJldmFsaWRhdGU9JHtleHBpcmUgLSByZXZhbGlkYXRlfWAgOiAnJztcbiAgICBpZiAocmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJ3ByaXZhdGUsIG5vLWNhY2hlLCBuby1zdG9yZSwgbWF4LWFnZT0wLCBtdXN0LXJldmFsaWRhdGUnO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldmFsaWRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBgcy1tYXhhZ2U9JHtyZXZhbGlkYXRlfSR7c3dySGVhZGVyfWA7XG4gICAgfVxuICAgIHJldHVybiBgcy1tYXhhZ2U9JHtfY29uc3RhbnRzLkNBQ0hFX09ORV9ZRUFSfSR7c3dySGVhZGVyfWA7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhY2hlLWNvbnRyb2wuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/cache-control.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/lib/etag.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/server/lib/etag.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fnv1a52: function() {\n return fnv1a52;\n },\n generateETag: function() {\n return generateETag;\n }\n});\nconst fnv1a52 = (str)=>{\n const len = str.length;\n let i = 0, t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n while(i < len){\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = t3 + (t2 >>> 16) & 65535;\n v2 = t2 & 65535;\n }\n return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4);\n};\nconst generateETag = (payload, weak = false)=>{\n const prefix = weak ? 'W/\"' : '\"';\n return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"';\n};\n\n//# sourceMappingURL=etag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXRhZy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXRhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZOVi0xYSBIYXNoIGltcGxlbWVudGF0aW9uXG4gKiBAYXV0aG9yIFRyYXZpcyBXZWJiICh0andlYmIpIDxtZUB0cmF2aXN3ZWJiLmNvbT5cbiAqXG4gKiBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdGp3ZWJiL2Zudi1wbHVzL2Jsb2IvbWFzdGVyL2luZGV4LmpzXG4gKlxuICogU2ltcGxpZmllZCwgb3B0aW1pemVkIGFuZCBhZGQgbW9kaWZpZWQgZm9yIDUyIGJpdCwgd2hpY2ggcHJvdmlkZXMgYSBsYXJnZXIgaGFzaCBzcGFjZVxuICogYW5kIHN0aWxsIG1ha2luZyB1c2Ugb2YgSmF2YXNjcmlwdCdzIDUzLWJpdCBpbnRlZ2VyIHNwYWNlLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZm52MWE1MjogbnVsbCxcbiAgICBnZW5lcmF0ZUVUYWc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZm52MWE1MjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmbnYxYTUyO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVFVGFnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlRVRhZztcbiAgICB9XG59KTtcbmNvbnN0IGZudjFhNTIgPSAoc3RyKT0+e1xuICAgIGNvbnN0IGxlbiA9IHN0ci5sZW5ndGg7XG4gICAgbGV0IGkgPSAwLCB0MCA9IDAsIHYwID0gMHgyMzI1LCB0MSA9IDAsIHYxID0gMHg4NDIyLCB0MiA9IDAsIHYyID0gMHg5Y2U0LCB0MyA9IDAsIHYzID0gMHhjYmYyO1xuICAgIHdoaWxlKGkgPCBsZW4pe1xuICAgICAgICB2MCBePSBzdHIuY2hhckNvZGVBdChpKyspO1xuICAgICAgICB0MCA9IHYwICogNDM1O1xuICAgICAgICB0MSA9IHYxICogNDM1O1xuICAgICAgICB0MiA9IHYyICogNDM1O1xuICAgICAgICB0MyA9IHYzICogNDM1O1xuICAgICAgICB0MiArPSB2MCA8PCA4O1xuICAgICAgICB0MyArPSB2MSA8PCA4O1xuICAgICAgICB0MSArPSB0MCA+Pj4gMTY7XG4gICAgICAgIHYwID0gdDAgJiA2NTUzNTtcbiAgICAgICAgdDIgKz0gdDEgPj4+IDE2O1xuICAgICAgICB2MSA9IHQxICYgNjU1MzU7XG4gICAgICAgIHYzID0gdDMgKyAodDIgPj4+IDE2KSAmIDY1NTM1O1xuICAgICAgICB2MiA9IHQyICYgNjU1MzU7XG4gICAgfVxuICAgIHJldHVybiAodjMgJiAxNSkgKiAyODE0NzQ5NzY3MTA2NTYgKyB2MiAqIDQyOTQ5NjcyOTYgKyB2MSAqIDY1NTM2ICsgKHYwIF4gdjMgPj4gNCk7XG59O1xuY29uc3QgZ2VuZXJhdGVFVGFnID0gKHBheWxvYWQsIHdlYWsgPSBmYWxzZSk9PntcbiAgICBjb25zdCBwcmVmaXggPSB3ZWFrID8gJ1cvXCInIDogJ1wiJztcbiAgICByZXR1cm4gcHJlZml4ICsgZm52MWE1MihwYXlsb2FkKS50b1N0cmluZygzNikgKyBwYXlsb2FkLmxlbmd0aC50b1N0cmluZygzNikgKyAnXCInO1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXRhZy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/etag.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/lib/trace/constants.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/server/lib/trace/constants.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUE0QztBQUM1Qyw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBZUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzQkFBc0I7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9CQUFvQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGVBQWU7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0M7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWlucyBwcmVkZWZpbmVkIGNvbnN0YW50cyBmb3IgdGhlIHRyYWNlIHNwYW4gbmFtZSBpbiBuZXh0L3NlcnZlci5cbiAqXG4gKiBDdXJyZW50bHksIG5leHQvc2VydmVyL3RyYWNlciBpcyBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvbmx5IGZvciB0cmFja2luZ1xuICogbmV4dC5qcydzIGltcGxlbWVudGF0aW9uIG9ubHkgd2l0aCBrbm93biBzcGFuIG5hbWVzIGRlZmluZWQgaGVyZS5cbiAqKi8gLy8gZXNsaW50IHR5cGVzY3JpcHQgaGFzIGEgYnVnIHdpdGggVFMgZW51bXNcbi8qIGVzbGludC1kaXNhYmxlIG5vLXNoYWRvdyAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFwcFJlbmRlclNwYW46IG51bGwsXG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjogbnVsbCxcbiAgICBCYXNlU2VydmVyU3BhbjogbnVsbCxcbiAgICBMb2FkQ29tcG9uZW50c1NwYW46IG51bGwsXG4gICAgTG9nU3BhbkFsbG93TGlzdDogbnVsbCxcbiAgICBNaWRkbGV3YXJlU3BhbjogbnVsbCxcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW46IG51bGwsXG4gICAgTmV4dFNlcnZlclNwYW46IG51bGwsXG4gICAgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0OiBudWxsLFxuICAgIE5vZGVTcGFuOiBudWxsLFxuICAgIFJlbmRlclNwYW46IG51bGwsXG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbjogbnVsbCxcbiAgICBSb3V0ZXJTcGFuOiBudWxsLFxuICAgIFN0YXJ0U2VydmVyU3BhbjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBSZW5kZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwcFJlbmRlclNwYW47XG4gICAgfSxcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW47XG4gICAgfSxcbiAgICBCYXNlU2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXNlU2VydmVyU3BhbjtcbiAgICB9LFxuICAgIExvYWRDb21wb25lbnRzU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBMb2FkQ29tcG9uZW50c1NwYW47XG4gICAgfSxcbiAgICBMb2dTcGFuQWxsb3dMaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIExvZ1NwYW5BbGxvd0xpc3Q7XG4gICAgfSxcbiAgICBNaWRkbGV3YXJlU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNaWRkbGV3YXJlU3BhbjtcbiAgICB9LFxuICAgIE5leHROb2RlU2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0Tm9kZVNlcnZlclNwYW47XG4gICAgfSxcbiAgICBOZXh0U2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0U2VydmVyU3BhbjtcbiAgICB9LFxuICAgIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q7XG4gICAgfSxcbiAgICBOb2RlU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOb2RlU3BhbjtcbiAgICB9LFxuICAgIFJlbmRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVuZGVyU3BhbjtcbiAgICB9LFxuICAgIFJlc29sdmVNZXRhZGF0YVNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzb2x2ZU1ldGFkYXRhU3BhbjtcbiAgICB9LFxuICAgIFJvdXRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUm91dGVyU3BhbjtcbiAgICB9LFxuICAgIFN0YXJ0U2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTdGFydFNlcnZlclNwYW47XG4gICAgfVxufSk7XG52YXIgQmFzZVNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEJhc2VTZXJ2ZXJTcGFuKSB7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJoYW5kbGVSZXF1ZXN0XCJdID0gXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJ1blwiXSA9IFwiQmFzZVNlcnZlci5ydW5cIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInBpcGVcIl0gPSBcIkJhc2VTZXJ2ZXIucGlwZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wiZ2V0U3RhdGljSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5nZXRTdGF0aWNIVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JUb1Jlc3BvbnNlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJCYXNlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIHJldHVybiBCYXNlU2VydmVyU3Bhbjtcbn0oQmFzZVNlcnZlclNwYW4gfHwge30pO1xudmFyIExvYWRDb21wb25lbnRzU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTG9hZENvbXBvbmVudHNTcGFuKSB7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWREZWZhdWx0RXJyb3JDb21wb25lbnRzXCI7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZENvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWRDb21wb25lbnRzXCI7XG4gICAgcmV0dXJuIExvYWRDb21wb25lbnRzU3Bhbjtcbn0oTG9hZENvbXBvbmVudHNTcGFuIHx8IHt9KTtcbnZhciBOZXh0U2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTmV4dFNlcnZlclNwYW4pIHtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0U2VydmVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiY3JlYXRlU2VydmVyXCJdID0gXCJjcmVhdGVTZXJ2ZXIuY3JlYXRlU2VydmVyXCI7XG4gICAgcmV0dXJuIE5leHRTZXJ2ZXJTcGFuO1xufShOZXh0U2VydmVyU3BhbiB8fCB7fSk7XG52YXIgTmV4dE5vZGVTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOZXh0Tm9kZVNlcnZlclNwYW4pIHtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjb21wcmVzc2lvblwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY29tcHJlc3Npb25cIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRCdWlsZElkXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRCdWlsZElkXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY3JlYXRlQ29tcG9uZW50VHJlZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNsaWVudENvbXBvbmVudExvYWRpbmdcIl0gPSBcIk5leHROb2RlU2VydmVyLmNsaWVudENvbXBvbmVudExvYWRpbmdcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRMYXlvdXRPclBhZ2VNb2R1bGVcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZVN0YXRpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVB1YmxpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUltYWdlUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUltYWdlUm91dGVzLnJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wic2VuZFJlbmRlclJlc3VsdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuc2VuZFJlbmRlclJlc3VsdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInByb3h5UmVxdWVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucHJveHlSZXF1ZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicnVuQXBpXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5ydW5BcGlcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckhUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckhUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbWFnZU9wdGltaXplclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuaW1hZ2VPcHRpbWl6ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRQYWdlUGF0aFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0UGFnZVBhdGhcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRSb3V0ZXNNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Um91dGVzTWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJmaW5kUGFnZUNvbXBvbmVudHNcIl0gPSBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEZvbnRNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Rm9udE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyQ29tcG9uZW50TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInN0YXJ0UmVzcG9uc2VcIl0gPSBcIk5leHROb2RlU2VydmVyLnN0YXJ0UmVzcG9uc2VcIjtcbiAgICAvLyBuZXN0ZWQgaW5uZXIgc3BhbiwgZG9lcyBub3QgcmVxdWlyZSBwYXJlbnQgc2NvcGUgbmFtZVxuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJvdXRlXCJdID0gXCJyb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcIm9uUHJveHlSZXFcIl0gPSBcIm9uUHJveHlSZXFcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJhcGlSZXNvbHZlclwiXSA9IFwiYXBpUmVzb2x2ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbnRlcm5hbEZldGNoXCJdID0gXCJpbnRlcm5hbEZldGNoXCI7XG4gICAgcmV0dXJuIE5leHROb2RlU2VydmVyU3Bhbjtcbn0oTmV4dE5vZGVTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBTdGFydFNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFN0YXJ0U2VydmVyU3Bhbikge1xuICAgIFN0YXJ0U2VydmVyU3BhbltcInN0YXJ0U2VydmVyXCJdID0gXCJzdGFydFNlcnZlci5zdGFydFNlcnZlclwiO1xuICAgIHJldHVybiBTdGFydFNlcnZlclNwYW47XG59KFN0YXJ0U2VydmVyU3BhbiB8fCB7fSk7XG52YXIgUmVuZGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUmVuZGVyU3Bhbikge1xuICAgIFJlbmRlclNwYW5bXCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIjtcbiAgICBSZW5kZXJTcGFuW1wiZ2V0U3RhdGljUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlckRvY3VtZW50XCJdID0gXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIjtcbiAgICBSZW5kZXJTcGFuW1wiY3JlYXRlQm9keVJlc3VsdFwiXSA9IFwiUmVuZGVyLmNyZWF0ZUJvZHlSZXN1bHRcIjtcbiAgICByZXR1cm4gUmVuZGVyU3Bhbjtcbn0oUmVuZGVyU3BhbiB8fCB7fSk7XG52YXIgQXBwUmVuZGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQXBwUmVuZGVyU3Bhbikge1xuICAgIEFwcFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvUmVhZGFibGVTdHJlYW1cIl0gPSBcIkFwcFJlbmRlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImdldEJvZHlSZXN1bHRcIl0gPSBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImZldGNoXCJdID0gXCJBcHBSZW5kZXIuZmV0Y2hcIjtcbiAgICByZXR1cm4gQXBwUmVuZGVyU3Bhbjtcbn0oQXBwUmVuZGVyU3BhbiB8fCB7fSk7XG52YXIgUm91dGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUm91dGVyU3Bhbikge1xuICAgIFJvdXRlclNwYW5bXCJleGVjdXRlUm91dGVcIl0gPSBcIlJvdXRlci5leGVjdXRlUm91dGVcIjtcbiAgICByZXR1cm4gUm91dGVyU3Bhbjtcbn0oUm91dGVyU3BhbiB8fCB7fSk7XG52YXIgTm9kZVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5vZGVTcGFuKSB7XG4gICAgTm9kZVNwYW5bXCJydW5IYW5kbGVyXCJdID0gXCJOb2RlLnJ1bkhhbmRsZXJcIjtcbiAgICByZXR1cm4gTm9kZVNwYW47XG59KE5vZGVTcGFuIHx8IHt9KTtcbnZhciBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuKSB7XG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCI7XG4gICAgcmV0dXJuIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW47XG59KEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gfHwge30pO1xudmFyIFJlc29sdmVNZXRhZGF0YVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJlc29sdmVNZXRhZGF0YVNwYW4pIHtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVNZXRhZGF0YVwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIjtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVWaWV3cG9ydFwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIjtcbiAgICByZXR1cm4gUmVzb2x2ZU1ldGFkYXRhU3Bhbjtcbn0oUmVzb2x2ZU1ldGFkYXRhU3BhbiB8fCB7fSk7XG52YXIgTWlkZGxld2FyZVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE1pZGRsZXdhcmVTcGFuKSB7XG4gICAgTWlkZGxld2FyZVNwYW5bXCJleGVjdXRlXCJdID0gXCJNaWRkbGV3YXJlLmV4ZWN1dGVcIjtcbiAgICByZXR1cm4gTWlkZGxld2FyZVNwYW47XG59KE1pZGRsZXdhcmVTcGFuIHx8IHt9KTtcbmNvbnN0IE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdCA9IFtcbiAgICBcIk1pZGRsZXdhcmUuZXhlY3V0ZVwiLFxuICAgIFwiQmFzZVNlcnZlci5oYW5kbGVSZXF1ZXN0XCIsXG4gICAgXCJSZW5kZXIuZ2V0U2VydmVyU2lkZVByb3BzXCIsXG4gICAgXCJSZW5kZXIuZ2V0U3RhdGljUHJvcHNcIixcbiAgICBcIkFwcFJlbmRlci5mZXRjaFwiLFxuICAgIFwiQXBwUmVuZGVyLmdldEJvZHlSZXN1bHRcIixcbiAgICBcIlJlbmRlci5yZW5kZXJEb2N1bWVudFwiLFxuICAgIFwiTm9kZS5ydW5IYW5kbGVyXCIsXG4gICAgXCJBcHBSb3V0ZVJvdXRlSGFuZGxlcnMucnVuSGFuZGxlclwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIixcbiAgICBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZVZpZXdwb3J0XCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuc3RhcnRSZXNwb25zZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXG5dO1xuY29uc3QgTG9nU3BhbkFsbG93TGlzdCA9IFtcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXG5dO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/trace/constants.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/lib/trace/tracer.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/server/lib/trace/tracer.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = __webpack_require__(/*! ./constants */ \"./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _isthenable = __webpack_require__(/*! ../../../shared/lib/is-thenable */ \"./node_modules/next/dist/shared/lib/is-thenable.js\");\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (false) {} else {\n try {\n api = __webpack_require__(/*! @opentelemetry/api */ \"./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n } catch (err) {\n api = __webpack_require__(/*! next/dist/compiled/@opentelemetry/api */ \"./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n span.setAttribute('error.type', error.name);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId');\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer('next.js', '0.0.1');\n }\n getContext() {\n return context;\n }\n getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === 'function' ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if ((0, _isthenable.isThenable)(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== '1') {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG1CQUFtQixtQkFBTyxDQUFDLDJFQUFhO0FBQ3hDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFpQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRjtBQUNBLGNBQWMsbUJBQU8sQ0FBQyx5RkFBb0I7QUFDMUMsTUFBTTtBQUNOLGNBQWMsbUJBQU8sQ0FBQyw0R0FBdUM7QUFDN0Q7QUFDQTtBQUNBLFFBQVEsc0VBQXNFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLHlDQUF5QyxRQUFRLG9GQUFvRjtBQUNwTDtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLHVHQUF1RztBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEVBQThFO0FBQzlFO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBCdWJibGVkRXJyb3I6IG51bGwsXG4gICAgU3BhbktpbmQ6IG51bGwsXG4gICAgU3BhblN0YXR1c0NvZGU6IG51bGwsXG4gICAgZ2V0VHJhY2VyOiBudWxsLFxuICAgIGlzQnViYmxlZEVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEJ1YmJsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCdWJibGVkRXJyb3I7XG4gICAgfSxcbiAgICBTcGFuS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTcGFuS2luZDtcbiAgICB9LFxuICAgIFNwYW5TdGF0dXNDb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNwYW5TdGF0dXNDb2RlO1xuICAgIH0sXG4gICAgZ2V0VHJhY2VyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlcjtcbiAgICB9LFxuICAgIGlzQnViYmxlZEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQnViYmxlZEVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9pc3RoZW5hYmxlID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvaXMtdGhlbmFibGVcIik7XG5sZXQgYXBpO1xuLy8gd2Ugd2FudCB0byBhbGxvdyB1c2VycyB0byB1c2UgdGhlaXIgb3duIHZlcnNpb24gb2YgQG9wZW50ZWxlbWV0cnkvYXBpIGlmIHRoZXlcbi8vIHdhbnQgdG8sIHNvIHdlIHRyeSB0byByZXF1aXJlIGl0IGZpcnN0LCBhbmQgaWYgaXQgZmFpbHMgd2UgZmFsbCBiYWNrIHRvIHRoZVxuLy8gdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzXG4vLyB0aGlzIGlzIGJlY2F1c2UgQG9wZW50ZWxlbWV0cnkvYXBpIGhhcyB0byBiZSBzeW5jZWQgd2l0aCB0aGUgdmVyc2lvbiBvZlxuLy8gQG9wZW50ZWxlbWV0cnkvdHJhY2luZyB0aGF0IGlzIHVzZWQsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGZvcmNlIHVzZXJzIHRvIHVzZVxuLy8gdGhlIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qcy5cbi8vIHRoZSBBUEkgaXMgfnN0YWJsZSwgc28gdGhpcyBzaG91bGQgYmUgZmluZVxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgYXBpID0gcmVxdWlyZSgnQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG59IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoJ0BvcGVudGVsZW1ldHJ5L2FwaScpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhcGkgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG4gICAgfVxufVxuY29uc3QgeyBjb250ZXh0LCBwcm9wYWdhdGlvbiwgdHJhY2UsIFNwYW5TdGF0dXNDb2RlLCBTcGFuS2luZCwgUk9PVF9DT05URVhUIH0gPSBhcGk7XG5jbGFzcyBCdWJibGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoYnViYmxlLCByZXN1bHQpe1xuICAgICAgICBzdXBlcigpLCB0aGlzLmJ1YmJsZSA9IGJ1YmJsZSwgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgfVxufVxuZnVuY3Rpb24gaXNCdWJibGVkRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIEJ1YmJsZWRFcnJvcjtcbn1cbmNvbnN0IGNsb3NlU3BhbldpdGhFcnJvciA9IChzcGFuLCBlcnJvcik9PntcbiAgICBpZiAoaXNCdWJibGVkRXJyb3IoZXJyb3IpICYmIGVycm9yLmJ1YmJsZSkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnbmV4dC5idWJibGUnLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yKTtcbiAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdlcnJvci50eXBlJywgZXJyb3IubmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3Bhbi5lbmQoKTtcbn07XG4vKiogd2UgdXNlIHRoaXMgbWFwIHRvIHByb3BhZ2F0ZSBhdHRyaWJ1dGVzIGZyb20gbmVzdGVkIHNwYW5zIHRvIHRoZSB0b3Agc3BhbiAqLyBjb25zdCByb290U3BhbkF0dHJpYnV0ZXNTdG9yZSA9IG5ldyBNYXAoKTtcbmNvbnN0IHJvb3RTcGFuSWRLZXkgPSBhcGkuY3JlYXRlQ29udGV4dEtleSgnbmV4dC5yb290U3BhbklkJyk7XG5sZXQgbGFzdFNwYW5JZCA9IDA7XG5jb25zdCBnZXRTcGFuSWQgPSAoKT0+bGFzdFNwYW5JZCsrO1xuY29uc3QgY2xpZW50VHJhY2VEYXRhU2V0dGVyID0ge1xuICAgIHNldCAoY2Fycmllciwga2V5LCB2YWx1ZSkge1xuICAgICAgICBjYXJyaWVyLnB1c2goe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNsYXNzIE5leHRUcmFjZXJJbXBsIHtcbiAgICAvKipcbiAgICogUmV0dXJucyBhbiBpbnN0YW5jZSB0byB0aGUgdHJhY2Ugd2l0aCBjb25maWd1cmVkIG5hbWUuXG4gICAqIFNpbmNlIHdyYXAgLyB0cmFjZSBjYW4gYmUgZGVmaW5lZCBpbiBhbnkgcGxhY2UgcHJpb3IgdG8gYWN0dWFsIHRyYWNlIHN1YnNjcmliZXIgaW5pdGlhbGl6YXRpb24sXG4gICAqIFRoaXMgc2hvdWxkIGJlIGxhemlseSBldmFsdWF0ZWQuXG4gICAqLyBnZXRUcmFjZXJJbnN0YW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNlLmdldFRyYWNlcignbmV4dC5qcycsICcwLjAuMScpO1xuICAgIH1cbiAgICBnZXRDb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG4gICAgZ2V0VHJhY2VQcm9wYWdhdGlvbkRhdGEoKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUNvbnRleHQgPSBjb250ZXh0LmFjdGl2ZSgpO1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIHByb3BhZ2F0aW9uLmluamVjdChhY3RpdmVDb250ZXh0LCBlbnRyaWVzLCBjbGllbnRUcmFjZURhdGFTZXR0ZXIpO1xuICAgICAgICByZXR1cm4gZW50cmllcztcbiAgICB9XG4gICAgZ2V0QWN0aXZlU2NvcGVTcGFuKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0U3Bhbihjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LmFjdGl2ZSgpKTtcbiAgICB9XG4gICAgd2l0aFByb3BhZ2F0ZWRDb250ZXh0KGNhcnJpZXIsIGZuLCBnZXR0ZXIpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGlmICh0cmFjZS5nZXRTcGFuQ29udGV4dChhY3RpdmVDb250ZXh0KSkge1xuICAgICAgICAgICAgLy8gQWN0aXZlIHNwYW4gaXMgYWxyZWFkeSBzZXQsIHRvbyBsYXRlIHRvIHByb3BhZ2F0ZS5cbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlbW90ZUNvbnRleHQgPSBwcm9wYWdhdGlvbi5leHRyYWN0KGFjdGl2ZUNvbnRleHQsIGNhcnJpZXIsIGdldHRlcik7XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgocmVtb3RlQ29udGV4dCwgZm4pO1xuICAgIH1cbiAgICB0cmFjZSguLi5hcmdzKSB7XG4gICAgICAgIHZhciBfdHJhY2VfZ2V0U3BhbkNvbnRleHQ7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBmbk9yT3B0aW9ucywgZm5PckVtcHR5XSA9IGFyZ3M7XG4gICAgICAgIC8vIGNvZXJjZSBvcHRpb25zIGZvcm0gb3ZlcmxvYWRcbiAgICAgICAgY29uc3QgeyBmbiwgb3B0aW9ucyB9ID0gdHlwZW9mIGZuT3JPcHRpb25zID09PSAnZnVuY3Rpb24nID8ge1xuICAgICAgICAgICAgZm46IGZuT3JPcHRpb25zLFxuICAgICAgICAgICAgb3B0aW9uczoge31cbiAgICAgICAgfSA6IHtcbiAgICAgICAgICAgIGZuOiBmbk9yRW1wdHksXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgLi4uZm5Pck9wdGlvbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3Bhbk5hbWUgPSBvcHRpb25zLnNwYW5OYW1lID8/IHR5cGU7XG4gICAgICAgIGlmICghX2NvbnN0YW50cy5OZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QuaW5jbHVkZXModHlwZSkgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1ZFUkJPU0UgIT09ICcxJyB8fCBvcHRpb25zLmhpZGVTcGFuKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUcnlpbmcgdG8gZ2V0IGFjdGl2ZSBzY29wZWQgc3BhbiB0byBhc3NpZ24gcGFyZW50LiBJZiBvcHRpb24gc3BlY2lmaWVzIHBhcmVudCBzcGFuIG1hbnVhbGx5LCB3aWxsIHRyeSB0byB1c2UgaXQuXG4gICAgICAgIGxldCBzcGFuQ29udGV4dCA9IHRoaXMuZ2V0U3BhbkNvbnRleHQoKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyZW50U3BhbikgPz8gdGhpcy5nZXRBY3RpdmVTY29wZVNwYW4oKSk7XG4gICAgICAgIGxldCBpc1Jvb3RTcGFuID0gZmFsc2U7XG4gICAgICAgIGlmICghc3BhbkNvbnRleHQpIHtcbiAgICAgICAgICAgIHNwYW5Db250ZXh0ID0gKGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQuYWN0aXZlKCkpID8/IFJPT1RfQ09OVEVYVDtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKChfdHJhY2VfZ2V0U3BhbkNvbnRleHQgPSB0cmFjZS5nZXRTcGFuQ29udGV4dChzcGFuQ29udGV4dCkpID09IG51bGwgPyB2b2lkIDAgOiBfdHJhY2VfZ2V0U3BhbkNvbnRleHQuaXNSZW1vdGUpIHtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGdldFNwYW5JZCgpO1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMgPSB7XG4gICAgICAgICAgICAnbmV4dC5zcGFuX25hbWUnOiBzcGFuTmFtZSxcbiAgICAgICAgICAgICduZXh0LnNwYW5fdHlwZSc6IHR5cGUsXG4gICAgICAgICAgICAuLi5vcHRpb25zLmF0dHJpYnV0ZXNcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQud2l0aChzcGFuQ29udGV4dC5zZXRWYWx1ZShyb290U3BhbklkS2V5LCBzcGFuSWQpLCAoKT0+dGhpcy5nZXRUcmFjZXJJbnN0YW5jZSgpLnN0YXJ0QWN0aXZlU3BhbihzcGFuTmFtZSwgb3B0aW9ucywgKHNwYW4pPT57XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzICYmICdtZWFzdXJlJyBpbiBwZXJmb3JtYW5jZSA/IGdsb2JhbFRoaXMucGVyZm9ybWFuY2Uubm93KCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgb25DbGVhbnVwID0gKCk9PntcbiAgICAgICAgICAgICAgICAgICAgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZGVsZXRlKHNwYW5JZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydFRpbWUgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWCAmJiBfY29uc3RhbnRzLkxvZ1NwYW5BbGxvd0xpc3QuaW5jbHVkZXModHlwZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWH06bmV4dC0keyh0eXBlLnNwbGl0KCcuJykucG9wKCkgfHwgJycpLnJlcGxhY2UoL1tBLVpdL2csIChtYXRjaCk9PictJyArIG1hdGNoLnRvTG93ZXJDYXNlKCkpfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogcGVyZm9ybWFuY2Uubm93KClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoaXNSb290U3Bhbikge1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5zZXQoc3BhbklkLCBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuYXR0cmlidXRlcyA/PyB7fSkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmbihzcGFuLCAoZXJyKT0+Y2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKHNwYW4pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsIF9pc3RoZW5hYmxlLmlzVGhlbmFibGUpKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3MgZXJyb3IgbWFrZSBzdXJlIGl0IHRocm93c1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyZXMpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIHBhc3MgZG93biB0aGUgcHJvbWlzZSByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgY291bGQgYmUgcmVhY3Qgc3RyZWFtIHJlc3BvbnNlIHdpdGggZXJyb3IgeyBlcnJvciwgc3RyZWFtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5maW5hbGx5KG9uQ2xlYW51cCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycik7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cbiAgICB3cmFwKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgdHJhY2VyID0gdGhpcztcbiAgICAgICAgY29uc3QgW25hbWUsIG9wdGlvbnMsIGZuXSA9IGFyZ3MubGVuZ3RoID09PSAzID8gYXJncyA6IFtcbiAgICAgICAgICAgIGFyZ3NbMF0sXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGFyZ3NbMV1cbiAgICAgICAgXTtcbiAgICAgICAgaWYgKCFfY29uc3RhbnRzLk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyhuYW1lKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gJzEnKSB7XG4gICAgICAgICAgICByZXR1cm4gZm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IG9wdGlvbnNPYmogPSBvcHRpb25zO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT2JqID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnNPYmogPSBvcHRpb25zT2JqLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsYXN0QXJnSWQgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGNiID0gYXJndW1lbnRzW2xhc3RBcmdJZF07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNiID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVCb3VuZENiID0gdHJhY2VyLmdldENvbnRleHQoKS5iaW5kKGNvbnRleHQuYWN0aXZlKCksIGNiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhY2VyLnRyYWNlKG5hbWUsIG9wdGlvbnNPYmosIChfc3BhbiwgZG9uZSk9PntcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzW2xhc3RBcmdJZF0gPSBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPT0gbnVsbCA/IHZvaWQgMCA6IGRvbmUoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzY29wZUJvdW5kQ2IuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKCk9PmZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbiAgICBzdGFydFNwYW4oLi4uYXJncykge1xuICAgICAgICBjb25zdCBbdHlwZSwgb3B0aW9uc10gPSBhcmdzO1xuICAgICAgICBjb25zdCBzcGFuQ29udGV4dCA9IHRoaXMuZ2V0U3BhbkNvbnRleHQoKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyZW50U3BhbikgPz8gdGhpcy5nZXRBY3RpdmVTY29wZVNwYW4oKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRTcGFuKHR5cGUsIG9wdGlvbnMsIHNwYW5Db250ZXh0KTtcbiAgICB9XG4gICAgZ2V0U3BhbkNvbnRleHQocGFyZW50U3Bhbikge1xuICAgICAgICBjb25zdCBzcGFuQ29udGV4dCA9IHBhcmVudFNwYW4gPyB0cmFjZS5zZXRTcGFuKGNvbnRleHQuYWN0aXZlKCksIHBhcmVudFNwYW4pIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gc3BhbkNvbnRleHQ7XG4gICAgfVxuICAgIGdldFJvb3RTcGFuQXR0cmlidXRlcygpIHtcbiAgICAgICAgY29uc3Qgc3BhbklkID0gY29udGV4dC5hY3RpdmUoKS5nZXRWYWx1ZShyb290U3BhbklkS2V5KTtcbiAgICAgICAgcmV0dXJuIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmdldChzcGFuSWQpO1xuICAgIH1cbiAgICBzZXRSb290U3BhbkF0dHJpYnV0ZShrZXksIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGNvbnRleHQuYWN0aXZlKCkuZ2V0VmFsdWUocm9vdFNwYW5JZEtleSk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5nZXQoc3BhbklkKTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgZ2V0VHJhY2VyID0gKCgpPT57XG4gICAgY29uc3QgdHJhY2VyID0gbmV3IE5leHRUcmFjZXJJbXBsKCk7XG4gICAgcmV0dXJuICgpPT50cmFjZXI7XG59KSgpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFjZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/trace/tracer.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/lib/trace/utils.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/server/lib/trace/utils.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getTracedMetadata\", ({\n enumerable: true,\n get: function() {\n return getTracedMetadata;\n }\n}));\nfunction getTracedMetadata(traceData, clientTraceMetadata) {\n if (!clientTraceMetadata) return undefined;\n return traceData.filter(({ key })=>clientTraceMetadata.includes(key));\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixxREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0EsK0JBQStCLEtBQUs7QUFDcEM7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0VHJhY2VkTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlZE1ldGFkYXRhO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0VHJhY2VkTWV0YWRhdGEodHJhY2VEYXRhLCBjbGllbnRUcmFjZU1ldGFkYXRhKSB7XG4gICAgaWYgKCFjbGllbnRUcmFjZU1ldGFkYXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0cmFjZURhdGEuZmlsdGVyKCh7IGtleSB9KT0+Y2xpZW50VHJhY2VNZXRhZGF0YS5pbmNsdWRlcyhrZXkpKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/trace/utils.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/pipe-readable.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/pipe-readable.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isAbortError: function() {\n return isAbortError;\n },\n pipeToNodeResponse: function() {\n return pipeToNodeResponse;\n }\n});\nconst _nextrequest = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\");\nconst _detachedpromise = __webpack_require__(/*! ../lib/detached-promise */ \"./node_modules/next/dist/lib/detached-promise.js\");\nconst _tracer = __webpack_require__(/*! ./lib/trace/tracer */ \"./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ./lib/trace/constants */ \"./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _clientcomponentrendererlogger = __webpack_require__(/*! ./client-component-renderer-logger */ \"./node_modules/next/dist/server/client-component-renderer-logger.js\");\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.ResponseAbortedName;\n}\nfunction createWriterFromResponse(res, waitUntilForEnd) {\n let started = false;\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new _detachedpromise.DetachedPromise();\n function onDrain() {\n drained.resolve();\n }\n res.on('drain', onDrain);\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', ()=>{\n res.off('drain', onDrain);\n drained.resolve();\n });\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new _detachedpromise.DetachedPromise();\n res.once('finish', ()=>{\n finished.resolve();\n });\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk)=>{\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true;\n if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\n }\n try {\n const ok = res.write(chunk);\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush();\n }\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise;\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new _detachedpromise.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw Object.defineProperty(new Error('failed to write chunk to response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E321\",\n enumerable: false,\n configurable: true\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nasync function pipeToNodeResponse(readable, res, waitUntilForEnd) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = (0, _nextrequest.createAbortController)(res);\n const writer = createWriterFromResponse(res, waitUntilForEnd);\n await readable.pipeTo(writer, {\n signal: controller.signal\n });\n } catch (err) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return;\n throw Object.defineProperty(new Error('failed to pipe response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E180\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9waXBlLXJlYWRhYmxlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLCtIQUE0QztBQUN6RSx5QkFBeUIsbUJBQU8sQ0FBQyxpRkFBeUI7QUFDMUQsZ0JBQWdCLG1CQUFPLENBQUMsK0VBQW9CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLHFGQUF1QjtBQUNsRCx1Q0FBdUMsbUJBQU8sQ0FBQywrR0FBb0M7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUNBQXlDO0FBQ3hGO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUJBQXFCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9waXBlLXJlYWRhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNBYm9ydEVycm9yOiBudWxsLFxuICAgIHBpcGVUb05vZGVSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0Fib3J0RXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNBYm9ydEVycm9yO1xuICAgIH0sXG4gICAgcGlwZVRvTm9kZVJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBpcGVUb05vZGVSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9uZXh0cmVxdWVzdCA9IHJlcXVpcmUoXCIuL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3RcIik7XG5jb25zdCBfZGV0YWNoZWRwcm9taXNlID0gcmVxdWlyZShcIi4uL2xpYi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4vbGliL3RyYWNlL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9jbGllbnRjb21wb25lbnRyZW5kZXJlcmxvZ2dlciA9IHJlcXVpcmUoXCIuL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyXCIpO1xuZnVuY3Rpb24gaXNBYm9ydEVycm9yKGUpIHtcbiAgICByZXR1cm4gKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUubmFtZSkgPT09ICdBYm9ydEVycm9yJyB8fCAoZSA9PSBudWxsID8gdm9pZCAwIDogZS5uYW1lKSA9PT0gX25leHRyZXF1ZXN0LlJlc3BvbnNlQWJvcnRlZE5hbWU7XG59XG5mdW5jdGlvbiBjcmVhdGVXcml0ZXJGcm9tUmVzcG9uc2UocmVzLCB3YWl0VW50aWxGb3JFbmQpIHtcbiAgICBsZXQgc3RhcnRlZCA9IGZhbHNlO1xuICAgIC8vIENyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgcmVzcG9uc2UgaGFzIGRyYWluZWQuIFNlZVxuICAgIC8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvc3RyZWFtLmh0bWwjc3RyZWFtX2V2ZW50X2RyYWluXG4gICAgbGV0IGRyYWluZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICBmdW5jdGlvbiBvbkRyYWluKCkge1xuICAgICAgICBkcmFpbmVkLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmVzLm9uKCdkcmFpbicsIG9uRHJhaW4pO1xuICAgIC8vIElmIHRoZSBmaW5pc2ggZXZlbnQgZmlyZXMsIGl0IG1lYW5zIHdlIHNob3VsZG4ndCBibG9jayBhbmQgd2FpdCBmb3IgdGhlXG4gICAgLy8gZHJhaW4gZXZlbnQuXG4gICAgcmVzLm9uY2UoJ2Nsb3NlJywgKCk9PntcbiAgICAgICAgcmVzLm9mZignZHJhaW4nLCBvbkRyYWluKTtcbiAgICAgICAgZHJhaW5lZC5yZXNvbHZlKCk7XG4gICAgfSk7XG4gICAgLy8gQ3JlYXRlIGEgcHJvbWlzZSB0aGF0IHdpbGwgcmVzb2x2ZSBvbmNlIHRoZSByZXNwb25zZSBoYXMgZmluaXNoZWQuIFNlZVxuICAgIC8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvaHR0cC5odG1sI2V2ZW50LWZpbmlzaF8xXG4gICAgY29uc3QgZmluaXNoZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICByZXMub25jZSgnZmluaXNoJywgKCk9PntcbiAgICAgICAgZmluaXNoZWQucmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIC8vIENyZWF0ZSBhIHdyaXRhYmxlIHN0cmVhbSB0aGF0IHdpbGwgd3JpdGUgdG8gdGhlIHJlc3BvbnNlLlxuICAgIHJldHVybiBuZXcgV3JpdGFibGVTdHJlYW0oe1xuICAgICAgICB3cml0ZTogYXN5bmMgKGNodW5rKT0+e1xuICAgICAgICAgICAgLy8gWW91J2QgdGhpbmsgd2UnZCB3YW50IHRvIHVzZSBgc3RhcnRgIGluc3RlYWQgb2YgcGxhY2luZyB0aGlzIGluIGB3cml0ZWBcbiAgICAgICAgICAgIC8vIGJ1dCB0aGlzIGVuc3VyZXMgdGhhdCB3ZSBkb24ndCBhY3R1YWxseSBmbHVzaCB0aGUgaGVhZGVycyB1bnRpbCB3ZSd2ZVxuICAgICAgICAgICAgLy8gc3RhcnRlZCB3cml0aW5nIGNodW5rcy5cbiAgICAgICAgICAgIGlmICghc3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICgncGVyZm9ybWFuY2UnIGluIGdsb2JhbFRoaXMgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRyaWNzID0gKDAsIF9jbGllbnRjb21wb25lbnRyZW5kZXJlcmxvZ2dlci5nZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzKSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWV0cmljcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZShgJHtwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYfTpuZXh0LWNsaWVudC1jb21wb25lbnQtbG9hZGluZ2AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogbWV0cmljcy5jbGllbnRDb21wb25lbnRMb2FkU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBtZXRyaWNzLmNsaWVudENvbXBvbmVudExvYWRTdGFydCArIG1ldHJpY3MuY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXMuZmx1c2hIZWFkZXJzKCk7XG4gICAgICAgICAgICAgICAgKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuTmV4dE5vZGVTZXJ2ZXJTcGFuLnN0YXJ0UmVzcG9uc2UsIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbk5hbWU6ICdzdGFydCByZXNwb25zZSdcbiAgICAgICAgICAgICAgICB9LCAoKT0+dW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2sgPSByZXMud3JpdGUoY2h1bmspO1xuICAgICAgICAgICAgICAgIC8vIEFkZGVkIGJ5IHRoZSBgY29tcHJlc3Npb25gIG1pZGRsZXdhcmUsIHRoaXMgaXMgYSBmdW5jdGlvbiB0aGF0IHdpbGxcbiAgICAgICAgICAgICAgICAvLyBmbHVzaCB0aGUgcGFydGlhbGx5LWNvbXByZXNzZWQgcmVzcG9uc2UgdG8gdGhlIGNsaWVudC5cbiAgICAgICAgICAgICAgICBpZiAoJ2ZsdXNoJyBpbiByZXMgJiYgdHlwZW9mIHJlcy5mbHVzaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICByZXMuZmx1c2goKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHdyaXRlIHJldHVybnMgZmFsc2UsIGl0IG1lYW5zIHRoZXJlJ3Mgc29tZSBiYWNrcHJlc3N1cmUsIHNvXG4gICAgICAgICAgICAgICAgLy8gd2FpdCB1bnRpbCBpdCdzIHN0cmVhbWVkIGJlZm9yZSBjb250aW51aW5nLlxuICAgICAgICAgICAgICAgIGlmICghb2spIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZHJhaW5lZC5wcm9taXNlO1xuICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgZHJhaW5lZCBwcm9taXNlIHNvIHRoYXQgd2UgY2FuIHdhaXQgZm9yIHRoZSBuZXh0IGRyYWluIGV2ZW50LlxuICAgICAgICAgICAgICAgICAgICBkcmFpbmVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2ZhaWxlZCB0byB3cml0ZSBjaHVuayB0byByZXNwb25zZScsIHtcbiAgICAgICAgICAgICAgICAgICAgY2F1c2U6IGVyclxuICAgICAgICAgICAgICAgIH0pLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTMyMVwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFib3J0OiAoZXJyKT0+e1xuICAgICAgICAgICAgaWYgKHJlcy53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICByZXMuZGVzdHJveShlcnIpO1xuICAgICAgICB9LFxuICAgICAgICBjbG9zZTogYXN5bmMgKCk9PntcbiAgICAgICAgICAgIC8vIGlmIGEgd2FpdFVudGlsIHByb21pc2Ugd2FzIHBhc3NlZCwgd2FpdCBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmVcbiAgICAgICAgICAgIC8vIGVuZGluZyB0aGUgcmVzcG9uc2UuXG4gICAgICAgICAgICBpZiAod2FpdFVudGlsRm9yRW5kKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd2FpdFVudGlsRm9yRW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcy53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgICByZXR1cm4gZmluaXNoZWQucHJvbWlzZTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gcGlwZVRvTm9kZVJlc3BvbnNlKHJlYWRhYmxlLCByZXMsIHdhaXRVbnRpbEZvckVuZCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBoYXMgYWxyZWFkeSBlcnJvcmVkLCB0aGVuIGp1c3QgcmV0dXJuIG5vdy5cbiAgICAgICAgY29uc3QgeyBlcnJvcmVkLCBkZXN0cm95ZWQgfSA9IHJlcztcbiAgICAgICAgaWYgKGVycm9yZWQgfHwgZGVzdHJveWVkKSByZXR1cm47XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBBYm9ydENvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gYWJvcnQgdGhlIHJlYWRhYmxlIGlmIHRoZVxuICAgICAgICAvLyBjbGllbnQgZGlzY29ubmVjdHMuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSAoMCwgX25leHRyZXF1ZXN0LmNyZWF0ZUFib3J0Q29udHJvbGxlcikocmVzKTtcbiAgICAgICAgY29uc3Qgd3JpdGVyID0gY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlKHJlcywgd2FpdFVudGlsRm9yRW5kKTtcbiAgICAgICAgYXdhaXQgcmVhZGFibGUucGlwZVRvKHdyaXRlciwge1xuICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbFxuICAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBpc24ndCByZWxhdGVkIHRvIGFuIGFib3J0IGVycm9yLCByZS10aHJvdyBpdC5cbiAgICAgICAgaWYgKGlzQWJvcnRFcnJvcihlcnIpKSByZXR1cm47XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2ZhaWxlZCB0byBwaXBlIHJlc3BvbnNlJywge1xuICAgICAgICAgICAgY2F1c2U6IGVyclxuICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFMTgwXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBpcGUtcmVhZGFibGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/pipe-readable.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/render-result.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/server/render-result.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderResult;\n }\n}));\nconst _nodewebstreamshelper = __webpack_require__(/*! ./stream-utils/node-web-streams-helper */ \"./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"./node_modules/next/dist/server/pipe-readable.js\");\nconst _invarianterror = __webpack_require__(/*! ../shared/lib/invariant-error */ \"./node_modules/next/dist/shared/lib/invariant-error.js\");\nclass RenderResult {\n static #_ = /**\n * A render result that represents an empty response. This is used to\n * represent a response that was not found or was already sent.\n */ this.EMPTY = new RenderResult(null, {\n metadata: {},\n contentType: null\n });\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @param contentType the content type of the response\n * @returns a new RenderResult instance\n */ static fromStatic(value, contentType) {\n return new RenderResult(value, {\n metadata: {},\n contentType\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== 'string';\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n // If the response is null, return an empty string. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return '';\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new _invarianterror.InvariantError('dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E732\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns a readable stream of the response.\n */ get readable() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n if (typeof this.response === 'string') {\n return (0, _nodewebstreamshelper.streamFromString)(this.response);\n }\n if (Buffer.isBuffer(this.response)) {\n return (0, _nodewebstreamshelper.streamFromBuffer)(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0, _nodewebstreamshelper.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Coerces the response to an array of streams. This will convert the response\n * to an array of streams if it is not already one.\n *\n * @returns An array of streams\n */ coerce() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return [];\n }\n if (typeof this.response === 'string') {\n return [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n return this.response;\n } else if (Buffer.isBuffer(this.response)) {\n return [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n return [\n this.response\n ];\n }\n }\n /**\n * Unshifts a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the start of the array. When this response is piped, all of the streams\n * will be piped one after the other.\n *\n * @param readable The new stream to unshift\n */ unshift(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the start of the array.\n this.response.unshift(readable);\n }\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ push(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the end of the array.\n this.response.push(readable);\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if ((0, _pipereadable.isAbortError)(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err);\n return;\n }\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err;\n }\n }\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */ async pipeToNodeResponse(res) {\n await (0, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n}\n\n//# sourceMappingURL=render-result.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOEJBQThCLG1CQUFPLENBQUMsdUhBQXdDO0FBQzlFLHNCQUFzQixtQkFBTyxDQUFDLHlFQUFpQjtBQUMvQyx3QkFBd0IsbUJBQU8sQ0FBQyw2RkFBK0I7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0EsU0FBUztBQUNUO0FBQ0EsNEJBQTRCLGtDQUFrQztBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVuZGVyUmVzdWx0O1xuICAgIH1cbn0pO1xuY29uc3QgX25vZGV3ZWJzdHJlYW1zaGVscGVyID0gcmVxdWlyZShcIi4vc3RyZWFtLXV0aWxzL25vZGUtd2ViLXN0cmVhbXMtaGVscGVyXCIpO1xuY29uc3QgX3BpcGVyZWFkYWJsZSA9IHJlcXVpcmUoXCIuL3BpcGUtcmVhZGFibGVcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jbGFzcyBSZW5kZXJSZXN1bHQge1xuICAgIHN0YXRpYyAjXyA9IC8qKlxuICAgKiBBIHJlbmRlciByZXN1bHQgdGhhdCByZXByZXNlbnRzIGFuIGVtcHR5IHJlc3BvbnNlLiBUaGlzIGlzIHVzZWQgdG9cbiAgICogcmVwcmVzZW50IGEgcmVzcG9uc2UgdGhhdCB3YXMgbm90IGZvdW5kIG9yIHdhcyBhbHJlYWR5IHNlbnQuXG4gICAqLyB0aGlzLkVNUFRZID0gbmV3IFJlbmRlclJlc3VsdChudWxsLCB7XG4gICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgY29udGVudFR5cGU6IG51bGxcbiAgICB9KTtcbiAgICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZW5kZXJSZXN1bHQgaW5zdGFuY2UgZnJvbSBhIHN0YXRpYyByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBzdGF0aWMgcmVzcG9uc2UgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRlbnRUeXBlIHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIHJlc3BvbnNlXG4gICAqIEByZXR1cm5zIGEgbmV3IFJlbmRlclJlc3VsdCBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb21TdGF0aWModmFsdWUsIGNvbnRlbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVuZGVyUmVzdWx0KHZhbHVlLCB7XG4gICAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgICAgICBjb250ZW50VHlwZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocmVzcG9uc2UsIHsgY29udGVudFR5cGUsIHdhaXRVbnRpbCwgbWV0YWRhdGEgfSl7XG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgICAgIHRoaXMud2FpdFVudGlsID0gd2FpdFVudGlsO1xuICAgIH1cbiAgICBhc3NpZ25NZXRhZGF0YShtZXRhZGF0YSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWV0YWRhdGEsIG1ldGFkYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVzcG9uc2UgaXMgbnVsbC4gSXQgY2FuIGJlIG51bGwgaWYgdGhlIHJlc3BvbnNlIHdhc1xuICAgKiBub3QgZm91bmQgb3Igd2FzIGFscmVhZHkgc2VudC5cbiAgICovIGdldCBpc051bGwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlID09PSBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgcmVzcG9uc2UgaXMgYSBzdHJpbmcuIEl0IGNhbiBiZSBhIHN0cmluZyBpZiB0aGUgcGFnZVxuICAgKiB3YXMgcHJlcmVuZGVyZWQuIElmIGl0J3Mgbm90LCB0aGVuIGl0IHdhcyBnZW5lcmF0ZWQgZHluYW1pY2FsbHkuXG4gICAqLyBnZXQgaXNEeW5hbWljKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMucmVzcG9uc2UgIT09ICdzdHJpbmcnO1xuICAgIH1cbiAgICB0b1VuY2h1bmtlZFN0cmluZyhzdHJlYW0gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuIFRoaXMgYmVoYXZpb3IgaXNcbiAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICghc3RyZWFtKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2R5bmFtaWMgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTczMlwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Ub1N0cmluZykodGhpcy5yZWFkYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuICAgIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVhZGFibGUgc3RyZWFtIG9mIHRoZSByZXNwb25zZS5cbiAgICovIGdldCByZWFkYWJsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBudWxsLCByZXR1cm4gYW4gZW1wdHkgc3RyZWFtLiBUaGlzIGJlaGF2aW9yIGlzXG4gICAgICAgICAgICAvLyBpbnRlbnRpb25hbCBhcyB3ZSdyZSBub3cgcHJvdmlkaW5nIHRoZSBgUmVuZGVyUmVzdWx0LkVNUFRZYCB2YWx1ZS5cbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICAgICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tU3RyaW5nKSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYW4gYXJyYXkgb2Ygc3RyZWFtcywgdGhlbiBjaGFpbiB0aGVtIHRvZ2V0aGVyLlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuY2hhaW5TdHJlYW1zKSguLi50aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENvZXJjZXMgdGhlIHJlc3BvbnNlIHRvIGFuIGFycmF5IG9mIHN0cmVhbXMuIFRoaXMgd2lsbCBjb252ZXJ0IHRoZSByZXNwb25zZVxuICAgKiB0byBhbiBhcnJheSBvZiBzdHJlYW1zIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9uZS5cbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2Ygc3RyZWFtc1xuICAgKi8gY29lcmNlKCkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBzdHJlYW0uIFRoaXMgYmVoYXZpb3IgaXNcbiAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tU3RyaW5nKSh0aGlzLnJlc3BvbnNlKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKSh0aGlzLnJlc3BvbnNlKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogVW5zaGlmdHMgYSBuZXcgc3RyZWFtIHRvIHRoZSByZXNwb25zZS4gVGhpcyB3aWxsIGNvbnZlcnQgdGhlIHJlc3BvbnNlIHRvIGFuXG4gICAqIGFycmF5IG9mIHN0cmVhbXMgaWYgaXQgaXMgbm90IGFscmVhZHkgb25lIGFuZCB3aWxsIGFkZCB0aGUgbmV3IHN0cmVhbSB0b1xuICAgKiB0aGUgc3RhcnQgb2YgdGhlIGFycmF5LiBXaGVuIHRoaXMgcmVzcG9uc2UgaXMgcGlwZWQsIGFsbCBvZiB0aGUgc3RyZWFtc1xuICAgKiB3aWxsIGJlIHBpcGVkIG9uZSBhZnRlciB0aGUgb3RoZXIuXG4gICAqXG4gICAqIEBwYXJhbSByZWFkYWJsZSBUaGUgbmV3IHN0cmVhbSB0byB1bnNoaWZ0XG4gICAqLyB1bnNoaWZ0KHJlYWRhYmxlKSB7XG4gICAgICAgIC8vIENvZXJjZSB0aGUgcmVzcG9uc2UgdG8gYW4gYXJyYXkgb2Ygc3RyZWFtcy5cbiAgICAgICAgdGhpcy5yZXNwb25zZSA9IHRoaXMuY29lcmNlKCk7XG4gICAgICAgIC8vIEFkZCB0aGUgbmV3IHN0cmVhbSB0byB0aGUgc3RhcnQgb2YgdGhlIGFycmF5LlxuICAgICAgICB0aGlzLnJlc3BvbnNlLnVuc2hpZnQocmVhZGFibGUpO1xuICAgIH1cbiAgICAvKipcbiAgICogQ2hhaW5zIGEgbmV3IHN0cmVhbSB0byB0aGUgcmVzcG9uc2UuIFRoaXMgd2lsbCBjb252ZXJ0IHRoZSByZXNwb25zZSB0byBhblxuICAgKiBhcnJheSBvZiBzdHJlYW1zIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9uZSBhbmQgd2lsbCBhZGQgdGhlIG5ldyBzdHJlYW0gdG9cbiAgICogdGhlIGVuZC4gV2hlbiB0aGlzIHJlc3BvbnNlIGlzIHBpcGVkLCBhbGwgb2YgdGhlIHN0cmVhbXMgd2lsbCBiZSBwaXBlZFxuICAgKiBvbmUgYWZ0ZXIgdGhlIG90aGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcmVhZGFibGUgVGhlIG5ldyBzdHJlYW0gdG8gY2hhaW5cbiAgICovIHB1c2gocmVhZGFibGUpIHtcbiAgICAgICAgLy8gQ29lcmNlIHRoZSByZXNwb25zZSB0byBhbiBhcnJheSBvZiBzdHJlYW1zLlxuICAgICAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy5jb2VyY2UoKTtcbiAgICAgICAgLy8gQWRkIHRoZSBuZXcgc3RyZWFtIHRvIHRoZSBlbmQgb2YgdGhlIGFycmF5LlxuICAgICAgICB0aGlzLnJlc3BvbnNlLnB1c2gocmVhZGFibGUpO1xuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgd3JpdGFibGUgc3RyZWFtLiBUaGlzIHdpbGwgY2xvc2UvY2FuY2VsIHRoZVxuICAgKiB3cml0YWJsZSBzdHJlYW0gaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuIElmIHRoaXMgZG9lc24ndCB0aHJvdywgdGhlblxuICAgKiB0aGUgd3JpdGFibGUgc3RyZWFtIHdpbGwgYmUgY2xvc2VkIG9yIGFib3J0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB3cml0YWJsZSBXcml0YWJsZSBzdHJlYW0gdG8gcGlwZSB0aGUgcmVzcG9uc2UgdG9cbiAgICovIGFzeW5jIHBpcGVUbyh3cml0YWJsZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWFkYWJsZS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIGNsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0gb3Vyc2VsdmVzIHNvIHRoYXQgd2UgY2FuIHdhaXRcbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHdhaXRVbnRpbCBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGNsb3NpbmcgaXQuIElmIGFuIGVycm9yXG4gICAgICAgICAgICAgICAgLy8gaXMgZW5jb3VudGVyZWQsIHdlJ2xsIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gaWYgd2Ugc3dhbGxvd2VkIHRoZVxuICAgICAgICAgICAgICAgIC8vIGVycm9yLlxuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHdhaXRVbnRpbCBwcm9taXNlLCB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZVxuICAgICAgICAgICAgLy8gY2xvc2luZyB0aGUgd3JpdGFibGUgc3RyZWFtLlxuICAgICAgICAgICAgaWYgKHRoaXMud2FpdFVudGlsKSBhd2FpdCB0aGlzLndhaXRVbnRpbDtcbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0uXG4gICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYW4gYWJvcnQgZXJyb3IsIHdlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIChhcyB3ZVxuICAgICAgICAgICAgLy8gdG9vayBvd25lcnNoaXAgb2YgaXQgd2hlbiB3ZSBzdGFydGVkIHBpcGluZykuIFdlIGRvbid0IG5lZWQgdG8gcmUtdGhyb3dcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGFuZGxlZCB0aGUgZXJyb3IuXG4gICAgICAgICAgICBpZiAoKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKShlcnIpKSB7XG4gICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5hYm9ydChlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBhYm9ydGluZyB0aGUgd3JpdGVyIGhlcmUgYXMgd2hlbiB0aGlzIG1ldGhvZCB0aHJvd3MgaXQncyBub3RcbiAgICAgICAgICAgIC8vIGNsZWFyIGFzIHRvIGhvdyBzbyB0aGUgY2FsbGVyIHNob3VsZCBhc3N1bWUgaXQncyB0aGVpciByZXNwb25zaWJpbGl0eVxuICAgICAgICAgICAgLy8gdG8gY2xlYW4gdXAgdGhlIHdyaXRlci5cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgbm9kZSByZXNwb25zZS4gVGhpcyB3aWxsIGNsb3NlL2NhbmNlbCB0aGUgbm9kZVxuICAgKiByZXNwb25zZSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHJlc1xuICAgKi8gYXN5bmMgcGlwZVRvTm9kZVJlc3BvbnNlKHJlcykge1xuICAgICAgICBhd2FpdCAoMCwgX3BpcGVyZWFkYWJsZS5waXBlVG9Ob2RlUmVzcG9uc2UpKHRoaXMucmVhZGFibGUsIHJlcywgdGhpcy53YWl0VW50aWwpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVuZGVyLXJlc3VsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/render-result.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/request-meta.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/request-meta.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/* eslint-disable no-redeclare */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\nconst NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta');\nfunction getRequestMeta(req, key) {\n const meta = req[NEXT_REQUEST_META] || {};\n return typeof key === 'string' ? meta[key] : meta;\n}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQUEsa0NBQStDO0FBQy9DLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVkZWNsYXJlICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTkVYVF9SRVFVRVNUX01FVEE6IG51bGwsXG4gICAgYWRkUmVxdWVzdE1ldGE6IG51bGwsXG4gICAgZ2V0UmVxdWVzdE1ldGE6IG51bGwsXG4gICAgcmVtb3ZlUmVxdWVzdE1ldGE6IG51bGwsXG4gICAgc2V0UmVxdWVzdE1ldGE6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTkVYVF9SRVFVRVNUX01FVEE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9SRVFVRVNUX01FVEE7XG4gICAgfSxcbiAgICBhZGRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhZGRSZXF1ZXN0TWV0YTtcbiAgICB9LFxuICAgIGdldFJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgcmVtb3ZlUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBzZXRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRSZXF1ZXN0TWV0YTtcbiAgICB9XG59KTtcbmNvbnN0IE5FWFRfUkVRVUVTVF9NRVRBID0gU3ltYm9sLmZvcignTmV4dEludGVybmFsUmVxdWVzdE1ldGEnKTtcbmZ1bmN0aW9uIGdldFJlcXVlc3RNZXRhKHJlcSwga2V5KSB7XG4gICAgY29uc3QgbWV0YSA9IHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gfHwge307XG4gICAgcmV0dXJuIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gbWV0YVtrZXldIDogbWV0YTtcbn1cbmZ1bmN0aW9uIHNldFJlcXVlc3RNZXRhKHJlcSwgbWV0YSkge1xuICAgIHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gPSBtZXRhO1xuICAgIHJldHVybiBtZXRhO1xufVxuZnVuY3Rpb24gYWRkUmVxdWVzdE1ldGEocmVxdWVzdCwga2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRSZXF1ZXN0TWV0YShyZXF1ZXN0KTtcbiAgICBtZXRhW2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5mdW5jdGlvbiByZW1vdmVSZXF1ZXN0TWV0YShyZXF1ZXN0LCBrZXkpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgZGVsZXRlIG1ldGFba2V5XTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtbWV0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/request-meta.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/response-cache/index.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return ResponseCache;\n }\n}));\n0 && 0;\nconst _batcher = __webpack_require__(/*! ../../lib/batcher */ \"./node_modules/next/dist/lib/batcher.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"./node_modules/next/dist/server/response-cache/utils.js\");\n_export_star(__webpack_require__(/*! ./types */ \"./node_modules/next/dist/server/response-cache/types.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\nclass ResponseCache {\n constructor(minimal_mode){\n this.batcher = _batcher.Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: _scheduler.scheduleOnNextTick\n });\n this.minimal_mode = minimal_mode;\n }\n async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, waitUntil } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, (cacheKey, resolve)=>{\n const prom = (async ()=>{\n var _this_previousCacheItem;\n // We keep the previous cache entry around to leverage when the\n // incremental cache is disabled in minimal mode.\n if (this.minimal_mode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === cacheKey && this.previousCacheItem.expiresAt > Date.now()) {\n return this.previousCacheItem.entry;\n }\n // Coerce the kindHint into a given kind for the incremental cache.\n const kind = (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind);\n let resolved = false;\n let cachedResponse = null;\n try {\n cachedResponse = !this.minimal_mode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n resolve(cachedResponse);\n resolved = true;\n if (!cachedResponse.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need\n // to update it yet.\n return null;\n }\n }\n const cacheEntry = await responseGenerator({\n hasResolved: resolved,\n previousCacheEntry: cachedResponse,\n isRevalidating: true\n });\n // If the cache entry couldn't be generated, we don't want to cache\n // the result.\n if (!cacheEntry) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n const resolveValue = await (0, _utils.fromResponseCacheEntry)({\n ...cacheEntry,\n isMiss: !cachedResponse\n });\n if (!resolveValue) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n // For on-demand revalidate wait to resolve until cache is set.\n // Otherwise resolve now.\n if (!isOnDemandRevalidate && !resolved) {\n resolve(resolveValue);\n resolved = true;\n }\n // We want to persist the result only if it has a cache control value\n // defined.\n if (resolveValue.cacheControl) {\n if (this.minimal_mode) {\n this.previousCacheItem = {\n key: cacheKey,\n entry: resolveValue,\n expiresAt: Date.now() + 1000\n };\n } else {\n await incrementalCache.set(key, resolveValue.value, {\n cacheControl: resolveValue.cacheControl,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (cachedResponse == null ? void 0 : cachedResponse.cacheControl) {\n const newRevalidate = Math.min(Math.max(cachedResponse.cacheControl.revalidate || 3, 3), 30);\n const newExpire = cachedResponse.cacheControl.expire === undefined ? undefined : Math.max(newRevalidate + 3, cachedResponse.cacheControl.expire);\n await incrementalCache.set(key, cachedResponse.value, {\n cacheControl: {\n revalidate: newRevalidate,\n expire: newExpire\n },\n isRoutePPREnabled,\n isFallback\n });\n }\n // While revalidating in the background we can't reject as we already\n // resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err;\n }\n })();\n // we need to ensure background revalidates are\n // passed to waitUntil\n if (waitUntil) {\n waitUntil(prom);\n }\n return prom;\n });\n return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsa0VBQW1CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLHNFQUFxQjtBQUNoRCxlQUFlLG1CQUFPLENBQUMsd0VBQVM7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHdFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsMkJBQTJCLE1BQU0sSUFBSSxHQUFHLGlDQUFpQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxnQkFBZ0IsMkdBQTJHO0FBQzNIO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2VDYWNoZTtcbiAgICB9XG59KTtcbjAgJiYgX19leHBvcnQocmVxdWlyZShcIi4vdHlwZXNcIikpO1xuY29uc3QgX2JhdGNoZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL2JhdGNoZXJcIik7XG5jb25zdCBfc2NoZWR1bGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9zY2hlZHVsZXJcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbl9leHBvcnRfc3RhcihyZXF1aXJlKFwiLi90eXBlc1wiKSwgZXhwb3J0cyk7XG5mdW5jdGlvbiBfZXhwb3J0X3N0YXIoZnJvbSwgdG8pIHtcbiAgICBPYmplY3Qua2V5cyhmcm9tKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG8sIGspKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodG8sIGssIHtcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tW2tdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZyb207XG59XG5jbGFzcyBSZXNwb25zZUNhY2hlIHtcbiAgICBjb25zdHJ1Y3RvcihtaW5pbWFsX21vZGUpe1xuICAgICAgICB0aGlzLmJhdGNoZXIgPSBfYmF0Y2hlci5CYXRjaGVyLmNyZWF0ZSh7XG4gICAgICAgICAgICAvLyBFbnN1cmUgb24tZGVtYW5kIHJldmFsaWRhdGUgZG9lc24ndCBibG9jayBub3JtYWwgcmVxdWVzdHMsIGl0IHNob3VsZCBiZVxuICAgICAgICAgICAgLy8gc2FmZSB0byBydW4gYW4gb24tZGVtYW5kIHJldmFsaWRhdGUgZm9yIHRoZSBzYW1lIGtleSBhcyBhIG5vcm1hbCByZXF1ZXN0LlxuICAgICAgICAgICAgY2FjaGVLZXlGbjogKHsga2V5LCBpc09uRGVtYW5kUmV2YWxpZGF0ZSB9KT0+YCR7a2V5fS0ke2lzT25EZW1hbmRSZXZhbGlkYXRlID8gJzEnIDogJzAnfWAsXG4gICAgICAgICAgICAvLyBXZSB3YWl0IHRvIGRvIGFueSBhc3luYyB3b3JrIHVudGlsIGFmdGVyIHdlJ3ZlIGFkZGVkIG91ciBwcm9taXNlIHRvXG4gICAgICAgICAgICAvLyBgcGVuZGluZ1Jlc3BvbnNlc2AgdG8gZW5zdXJlIHRoYXQgYW55IGFueSBvdGhlciBjYWxscyB3aWxsIHJldXNlIHRoZVxuICAgICAgICAgICAgLy8gc2FtZSBwcm9taXNlIHVudGlsIHdlJ3ZlIGZ1bGx5IGZpbmlzaGVkIG91ciB3b3JrLlxuICAgICAgICAgICAgc2NoZWR1bGVyRm46IF9zY2hlZHVsZXIuc2NoZWR1bGVPbk5leHRUaWNrXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1pbmltYWxfbW9kZSA9IG1pbmltYWxfbW9kZTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0KGtleSwgcmVzcG9uc2VHZW5lcmF0b3IsIGNvbnRleHQpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8ga2V5IGZvciB0aGUgY2FjaGUsIHdlIGNhbid0IHBvc3NpYmx5IGxvb2sgdGhpcyB1cCBpbiB0aGVcbiAgICAgICAgLy8gY2FjaGUgc28ganVzdCByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgcmVzcG9uc2UgZ2VuZXJhdG9yLlxuICAgICAgICBpZiAoIWtleSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlR2VuZXJhdG9yKHtcbiAgICAgICAgICAgICAgICBoYXNSZXNvbHZlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNDYWNoZUVudHJ5OiBudWxsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGluY3JlbWVudGFsQ2FjaGUsIGlzT25EZW1hbmRSZXZhbGlkYXRlID0gZmFsc2UsIGlzRmFsbGJhY2sgPSBmYWxzZSwgaXNSb3V0ZVBQUkVuYWJsZWQgPSBmYWxzZSwgd2FpdFVudGlsIH0gPSBjb250ZXh0O1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYmF0Y2hlci5iYXRjaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZVxuICAgICAgICB9LCAoY2FjaGVLZXksIHJlc29sdmUpPT57XG4gICAgICAgICAgICBjb25zdCBwcm9tID0gKGFzeW5jICgpPT57XG4gICAgICAgICAgICAgICAgdmFyIF90aGlzX3ByZXZpb3VzQ2FjaGVJdGVtO1xuICAgICAgICAgICAgICAgIC8vIFdlIGtlZXAgdGhlIHByZXZpb3VzIGNhY2hlIGVudHJ5IGFyb3VuZCB0byBsZXZlcmFnZSB3aGVuIHRoZVxuICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudGFsIGNhY2hlIGlzIGRpc2FibGVkIGluIG1pbmltYWwgbW9kZS5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUgJiYgKChfdGhpc19wcmV2aW91c0NhY2hlSXRlbSA9IHRoaXMucHJldmlvdXNDYWNoZUl0ZW0pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19wcmV2aW91c0NhY2hlSXRlbS5rZXkpID09PSBjYWNoZUtleSAmJiB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtLmV4cGlyZXNBdCA+IERhdGUubm93KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0uZW50cnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIENvZXJjZSB0aGUga2luZEhpbnQgaW50byBhIGdpdmVuIGtpbmQgZm9yIHRoZSBpbmNyZW1lbnRhbCBjYWNoZS5cbiAgICAgICAgICAgICAgICBjb25zdCBraW5kID0gKDAsIF91dGlscy5yb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kKShjb250ZXh0LnJvdXRlS2luZCk7XG4gICAgICAgICAgICAgICAgbGV0IHJlc29sdmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbGV0IGNhY2hlZFJlc3BvbnNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZWRSZXNwb25zZSA9ICF0aGlzLm1pbmltYWxfbW9kZSA/IGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuZ2V0KGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkOiBjb250ZXh0LmlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICB9KSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNwb25zZSAmJiAhaXNPbkRlbWFuZFJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoY2FjaGVkUmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNwb25zZS5pc1N0YWxlIHx8IGNvbnRleHQuaXNQcmVmZXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBjYWNoZWQgdmFsdWUgaXMgc3RpbGwgdmFsaWQsIHNvIHdlIGRvbid0IG5lZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB1cGRhdGUgaXQgeWV0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhY2hlRW50cnkgPSBhd2FpdCByZXNwb25zZUdlbmVyYXRvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNSZXNvbHZlZDogcmVzb2x2ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NhY2hlRW50cnk6IGNhY2hlZFJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRpbmc6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBlbnRyeSBjb3VsZG4ndCBiZSBnZW5lcmF0ZWQsIHdlIGRvbid0IHdhbnQgdG8gY2FjaGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVbnNldCB0aGUgcHJldmlvdXMgY2FjaGUgaXRlbSBpZiBpdCB3YXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlKSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZVZhbHVlID0gYXdhaXQgKDAsIF91dGlscy5mcm9tUmVzcG9uc2VDYWNoZUVudHJ5KSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jYWNoZUVudHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNNaXNzOiAhY2FjaGVkUmVzcG9uc2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzb2x2ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVbnNldCB0aGUgcHJldmlvdXMgY2FjaGUgaXRlbSBpZiBpdCB3YXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlKSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRm9yIG9uLWRlbWFuZCByZXZhbGlkYXRlIHdhaXQgdG8gcmVzb2x2ZSB1bnRpbCBjYWNoZSBpcyBzZXQuXG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSByZXNvbHZlIG5vdy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc09uRGVtYW5kUmV2YWxpZGF0ZSAmJiAhcmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzb2x2ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHBlcnNpc3QgdGhlIHJlc3VsdCBvbmx5IGlmIGl0IGhhcyBhIGNhY2hlIGNvbnRyb2wgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5lZC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVWYWx1ZS5jYWNoZUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiByZXNvbHZlVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIDEwMDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLnNldChrZXksIHJlc29sdmVWYWx1ZS52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHJlc29sdmVWYWx1ZS5jYWNoZUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVWYWx1ZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiBhIHBhdGggaXMgZXJyb3Jpbmcgd2UgYXV0b21hdGljYWxseSByZS1zZXQgdGhlIGV4aXN0aW5nIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggbmV3IHJldmFsaWRhdGUgYW5kIGV4cGlyZSB0aW1lcyB0byBwcmV2ZW50IG5vbi1zdG9wIHJldHJ5aW5nLlxuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzcG9uc2UgPT0gbnVsbCA/IHZvaWQgMCA6IGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UmV2YWxpZGF0ZSA9IE1hdGgubWluKE1hdGgubWF4KGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlIHx8IDMsIDMpLCAzMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdFeHBpcmUgPSBjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wuZXhwaXJlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBNYXRoLm1heChuZXdSZXZhbGlkYXRlICsgMywgY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sLmV4cGlyZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLnNldChrZXksIGNhY2hlZFJlc3BvbnNlLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG5ld1JldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogbmV3RXhwaXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXaGlsZSByZXZhbGlkYXRpbmcgaW4gdGhlIGJhY2tncm91bmQgd2UgY2FuJ3QgcmVqZWN0IGFzIHdlIGFscmVhZHlcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVzb2x2ZWQgdGhlIGNhY2hlIGVudHJ5IHNvIGxvZyB0aGUgZXJyb3IgaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlbid0IHJlc29sdmVkIHlldCwgc28gbGV0J3MgdGhyb3cgdG8gaW5kaWNhdGUgYW4gZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBlbnN1cmUgYmFja2dyb3VuZCByZXZhbGlkYXRlcyBhcmVcbiAgICAgICAgICAgIC8vIHBhc3NlZCB0byB3YWl0VW50aWxcbiAgICAgICAgICAgIGlmICh3YWl0VW50aWwpIHtcbiAgICAgICAgICAgICAgICB3YWl0VW50aWwocHJvbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoMCwgX3V0aWxzLnRvUmVzcG9uc2VDYWNoZUVudHJ5KShyZXNwb25zZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/response-cache/index.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/response-cache/types.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/types.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n CachedRouteKind: function() {\n return CachedRouteKind;\n },\n IncrementalCacheKind: function() {\n return IncrementalCacheKind;\n }\n});\nvar CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) {\n CachedRouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n CachedRouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n CachedRouteKind[\"PAGES\"] = \"PAGES\";\n CachedRouteKind[\"FETCH\"] = \"FETCH\";\n CachedRouteKind[\"REDIRECT\"] = \"REDIRECT\";\n CachedRouteKind[\"IMAGE\"] = \"IMAGE\";\n return CachedRouteKind;\n}({});\nvar IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) {\n IncrementalCacheKind[\"APP_PAGE\"] = \"APP_PAGE\";\n IncrementalCacheKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n IncrementalCacheKind[\"PAGES\"] = \"PAGES\";\n IncrementalCacheKind[\"FETCH\"] = \"FETCH\";\n IncrementalCacheKind[\"IMAGE\"] = \"IMAGE\";\n return IncrementalCacheKind;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS90eXBlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGUvdHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBDYWNoZWRSb3V0ZUtpbmQ6IG51bGwsXG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQ2FjaGVkUm91dGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIENhY2hlZFJvdXRlS2luZDtcbiAgICB9LFxuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEluY3JlbWVudGFsQ2FjaGVLaW5kO1xuICAgIH1cbn0pO1xudmFyIENhY2hlZFJvdXRlS2luZCA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQ2FjaGVkUm91dGVLaW5kKSB7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJGRVRDSFwiXSA9IFwiRkVUQ0hcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJSRURJUkVDVFwiXSA9IFwiUkVESVJFQ1RcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gQ2FjaGVkUm91dGVLaW5kO1xufSh7fSk7XG52YXIgSW5jcmVtZW50YWxDYWNoZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEluY3JlbWVudGFsQ2FjaGVLaW5kKSB7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIkZFVENIXCJdID0gXCJGRVRDSFwiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIEluY3JlbWVudGFsQ2FjaGVLaW5kO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/response-cache/types.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/response-cache/utils.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/server/response-cache/utils.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromResponseCacheEntry: function() {\n return fromResponseCacheEntry;\n },\n routeKindToIncrementalCacheKind: function() {\n return routeKindToIncrementalCacheKind;\n },\n toResponseCacheEntry: function() {\n return toResponseCacheEntry;\n }\n});\nconst _types = __webpack_require__(/*! ./types */ \"./node_modules/next/dist/server/response-cache/types.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../render-result */ \"./node_modules/next/dist/server/render-result.js\"));\nconst _routekind = __webpack_require__(/*! ../route-kind */ \"./node_modules/next/dist/server/route-kind.js\");\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nasync function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nasync function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nfunction routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case _routekind.RouteKind.PAGES:\n return _types.IncrementalCacheKind.PAGES;\n case _routekind.RouteKind.APP_PAGE:\n return _types.IncrementalCacheKind.APP_PAGE;\n case _routekind.RouteKind.IMAGE:\n return _types.IncrementalCacheKind.IMAGE;\n case _routekind.RouteKind.APP_ROUTE:\n return _types.IncrementalCacheKind.APP_ROUTE;\n case _routekind.RouteKind.PAGES_API:\n // Pages Router API routes are not cached in the incremental cache.\n throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E64\",\n enumerable: false,\n configurable: true\n });\n default:\n return routeKind;\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGVBQWUsbUJBQU8sQ0FBQyx3RUFBUztBQUNoQyw2REFBNkQsbUJBQU8sQ0FBQywwRUFBa0I7QUFDdkYsbUJBQW1CLG1CQUFPLENBQUMsb0VBQWU7QUFDMUMsbUJBQW1CLG1CQUFPLENBQUMsc0VBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxVQUFVO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZyb21SZXNwb25zZUNhY2hlRW50cnk6IG51bGwsXG4gICAgcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZDogbnVsbCxcbiAgICB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZyb21SZXNwb25zZUNhY2hlRW50cnk7XG4gICAgfSxcbiAgICByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQ7XG4gICAgfSxcbiAgICB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTtcbiAgICB9XG59KTtcbmNvbnN0IF90eXBlcyA9IHJlcXVpcmUoXCIuL3R5cGVzXCIpO1xuY29uc3QgX3JlbmRlcnJlc3VsdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi9yZW5kZXItcmVzdWx0XCIpKTtcbmNvbnN0IF9yb3V0ZWtpbmQgPSByZXF1aXJlKFwiLi4vcm91dGUta2luZFwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeShjYWNoZUVudHJ5KSB7XG4gICAgdmFyIF9jYWNoZUVudHJ5X3ZhbHVlLCBfY2FjaGVFbnRyeV92YWx1ZTE7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2FjaGVFbnRyeSxcbiAgICAgICAgdmFsdWU6ICgoX2NhY2hlRW50cnlfdmFsdWUgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgaHRtbDogYXdhaXQgY2FjaGVFbnRyeS52YWx1ZS5odG1sLnRvVW5jaHVua2VkU3RyaW5nKHRydWUpLFxuICAgICAgICAgICAgcGFnZURhdGE6IGNhY2hlRW50cnkudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiBjYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNhY2hlRW50cnkudmFsdWUuc3RhdHVzXG4gICAgICAgIH0gOiAoKF9jYWNoZUVudHJ5X3ZhbHVlMSA9IGNhY2hlRW50cnkudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfY2FjaGVFbnRyeV92YWx1ZTEua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICAgICAgaHRtbDogYXdhaXQgY2FjaGVFbnRyeS52YWx1ZS5odG1sLnRvVW5jaHVua2VkU3RyaW5nKHRydWUpLFxuICAgICAgICAgICAgcG9zdHBvbmVkOiBjYWNoZUVudHJ5LnZhbHVlLnBvc3Rwb25lZCxcbiAgICAgICAgICAgIHJzY0RhdGE6IGNhY2hlRW50cnkudmFsdWUucnNjRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IGNhY2hlRW50cnkudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogY2FjaGVFbnRyeS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICBzZWdtZW50RGF0YTogY2FjaGVFbnRyeS52YWx1ZS5zZWdtZW50RGF0YVxuICAgICAgICB9IDogY2FjaGVFbnRyeS52YWx1ZVxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeShyZXNwb25zZSkge1xuICAgIHZhciBfcmVzcG9uc2VfdmFsdWUsIF9yZXNwb25zZV92YWx1ZTE7XG4gICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNNaXNzOiByZXNwb25zZS5pc01pc3MsXG4gICAgICAgIGlzU3RhbGU6IHJlc3BvbnNlLmlzU3RhbGUsXG4gICAgICAgIGNhY2hlQ29udHJvbDogcmVzcG9uc2UuY2FjaGVDb250cm9sLFxuICAgICAgICB2YWx1ZTogKChfcmVzcG9uc2VfdmFsdWUgPSByZXNwb25zZS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNwb25zZV92YWx1ZS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sLCBfY29uc3RhbnRzLkhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUiksXG4gICAgICAgICAgICBwYWdlRGF0YTogcmVzcG9uc2UudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS52YWx1ZS5zdGF0dXNcbiAgICAgICAgfSA6ICgoX3Jlc3BvbnNlX3ZhbHVlMSA9IHJlc3BvbnNlLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3BvbnNlX3ZhbHVlMS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sLCBfY29uc3RhbnRzLkhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUiksXG4gICAgICAgICAgICByc2NEYXRhOiByZXNwb25zZS52YWx1ZS5yc2NEYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2UudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgcG9zdHBvbmVkOiByZXNwb25zZS52YWx1ZS5wb3N0cG9uZWQsXG4gICAgICAgICAgICBzZWdtZW50RGF0YTogcmVzcG9uc2UudmFsdWUuc2VnbWVudERhdGFcbiAgICAgICAgfSA6IHJlc3BvbnNlLnZhbHVlXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQocm91dGVLaW5kKSB7XG4gICAgc3dpdGNoKHJvdXRlS2luZCl7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVM6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLlBBR0VTO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLkFQUF9QQUdFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5BUFBfUEFHRTtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5JTUFHRTpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuSU1BR0U7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuQVBQX1JPVVRFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5BUFBfUk9VVEU7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVNfQVBJOlxuICAgICAgICAgICAgLy8gUGFnZXMgUm91dGVyIEFQSSByb3V0ZXMgYXJlIG5vdCBjYWNoZWQgaW4gdGhlIGluY3JlbWVudGFsIGNhY2hlLlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgVW5leHBlY3RlZCByb3V0ZSBraW5kICR7cm91dGVLaW5kfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjRcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlS2luZDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/response-cache/utils.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/route-kind.js": /*!*****************************************************!*\ !*** ./node_modules/next/dist/server/route-kind.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkNBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLElBQUksRUFBRSxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixJQUFJLEVBQUUsR0FBRztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZUtpbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJvdXRlS2luZDtcbiAgICB9XG59KTtcbnZhciBSb3V0ZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJvdXRlS2luZCkge1xuICAgIC8qKlxuICAgKiBgUEFHRVNgIHJlcHJlc2VudHMgYWxsIHRoZSBSZWFjdCBwYWdlcyB0aGF0IGFyZSB1bmRlciBgcGFnZXMvYC5cbiAgICovIFJvdXRlS2luZFtcIlBBR0VTXCJdID0gXCJQQUdFU1wiO1xuICAgIC8qKlxuICAgKiBgUEFHRVNfQVBJYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyB1bmRlciBgcGFnZXMvYXBpL2AuXG4gICAqLyBSb3V0ZUtpbmRbXCJQQUdFU19BUElcIl0gPSBcIlBBR0VTX0FQSVwiO1xuICAgIC8qKlxuICAgKiBgQVBQX1BBR0VgIHJlcHJlc2VudHMgYWxsIHRoZSBSZWFjdCBwYWdlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHBhZ2Uue2osdH1zeyx4fWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICAvKipcbiAgICogYEFQUF9ST1VURWAgcmVwcmVzZW50cyBhbGwgdGhlIEFQSSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHJvdXRlLntqLHR9c3sseH1gLlxuICAgKi8gUm91dGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICAvKipcbiAgICogYElNQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgaW1hZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCBieSBgbmV4dC9pbWFnZWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gUm91dGVLaW5kO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWtpbmQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-kind.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/route-modules/pages/module.compiled.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/module.compiled.js ***! \******************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nif (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/pages.runtime.dev.js */ \"next/dist/compiled/next-server/pages.runtime.dev.js\");\n }\n } else {}\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5jb21waWxlZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLElBQUksS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ0YsUUFBUSxJQUFzQztBQUM5QyxZQUFZLEtBQXFCLEVBQUUsRUFFMUIsQ0FBQztBQUNWLFlBQVksc0pBQStFO0FBQzNGO0FBQ0EsTUFBTSxLQUFLLEVBTU47QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5jb21waWxlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbmlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5qcycpO1xufSBlbHNlIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMtdHVyYm8ucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9wYWdlcy10dXJiby5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/module.compiled.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/route-modules/pages/pages-handler.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/pages-handler.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHandler\", ({\n enumerable: true,\n get: function() {\n return getHandler;\n }\n}));\nconst _routekind = __webpack_require__(/*! ../../route-kind */ \"./node_modules/next/dist/server/route-kind.js\");\nconst _constants = __webpack_require__(/*! ../../lib/trace/constants */ \"./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _tracer = __webpack_require__(/*! ../../lib/trace/tracer */ \"./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _formaturl = __webpack_require__(/*! ../../../shared/lib/router/utils/format-url */ \"./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _requestmeta = __webpack_require__(/*! ../../request-meta */ \"./node_modules/next/dist/server/request-meta.js\");\nconst _interopdefault = __webpack_require__(/*! ../../app-render/interop-default */ \"./node_modules/next/dist/server/app-render/interop-default.js\");\nconst _utils = __webpack_require__(/*! ../../instrumentation/utils */ \"./node_modules/next/dist/server/instrumentation/utils.js\");\nconst _normalizedatapath = __webpack_require__(/*! ../../../shared/lib/page-path/normalize-data-path */ \"./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js\");\nconst _responsecache = __webpack_require__(/*! ../../response-cache */ \"./node_modules/next/dist/server/response-cache/index.js\");\nconst _cachecontrol = __webpack_require__(/*! ../../lib/cache-control */ \"./node_modules/next/dist/server/lib/cache-control.js\");\nconst _utils1 = __webpack_require__(/*! ../../../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nconst _redirectstatus = __webpack_require__(/*! ../../../lib/redirect-status */ \"./node_modules/next/dist/lib/redirect-status.js\");\nconst _constants1 = __webpack_require__(/*! ../../../lib/constants */ \"./node_modules/next/dist/lib/constants.js\");\nconst _path = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! path */ \"path\"));\nconst _sendpayload = __webpack_require__(/*! ../../send-payload */ \"./node_modules/next/dist/server/send-payload.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../render-result */ \"./node_modules/next/dist/server/render-result.js\"));\nconst _utils2 = __webpack_require__(/*! ../../response-cache/utils */ \"./node_modules/next/dist/server/response-cache/utils.js\");\nconst _nofallbackerrorexternal = __webpack_require__(/*! ../../../shared/lib/no-fallback-error.external */ \"../../../shared/lib/no-fallback-error.external\");\nconst _redirectstatuscode = __webpack_require__(/*! ../../../client/components/redirect-status-code */ \"./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _isbot = __webpack_require__(/*! ../../../shared/lib/router/utils/is-bot */ \"./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _addpathprefix = __webpack_require__(/*! ../../../shared/lib/router/utils/add-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../../../shared/lib/router/utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst getHandler = ({ srcPage: originalSrcPage, config, userland, routeModule, isFallbackError, getStaticPaths, getStaticProps, getServerSideProps })=>{\n return async function handler(req, res, ctx) {\n var _serverFilesManifest_config_experimental, _serverFilesManifest_config;\n let srcPage = originalSrcPage;\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (false) {} else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = false;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return;\n }\n const { buildId, query, params, parsedUrl, originalQuery, originalPathname, buildManifest, fallbackBuildManifest, nextFontManifest, serverFilesManifest, reactLoadableManifest, prerenderManifest, isDraftMode, isOnDemandRevalidate, revalidateOnlyGenerated, locale, locales, defaultLocale, routerServerContext, nextConfig, resolvedPathname } = prepareResult;\n const isExperimentalCompile = serverFilesManifest == null ? void 0 : (_serverFilesManifest_config = serverFilesManifest.config) == null ? void 0 : (_serverFilesManifest_config_experimental = _serverFilesManifest_config.experimental) == null ? void 0 : _serverFilesManifest_config_experimental.isExperimentalCompile;\n const hasServerProps = Boolean(getServerSideProps);\n const hasStaticProps = Boolean(getStaticProps);\n const hasStaticPaths = Boolean(getStaticPaths);\n const hasGetInitialProps = Boolean((userland.default || userland).getInitialProps);\n const isAmp = query.amp && (config == null ? void 0 : config.amp);\n let cacheKey = null;\n let isIsrFallback = false;\n let isNextDataRequest = prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps);\n const is404Page = srcPage === '/404';\n const is500Page = srcPage === '/500';\n const isErrorPage = srcPage === '/_error';\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${(srcPage === '/' || resolvedPathname === '/') && locale ? '' : resolvedPathname}${isAmp ? '.amp' : ''}`;\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}${isAmp ? '.amp' : ''}`;\n }\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = (0, _removetrailingslash.removeTrailingSlash)(locale ? (0, _addpathprefix.addPathPrefix)(resolvedPathname, `/${locale}`) : resolvedPathname);\n const isPrerendered = Boolean(prerenderManifest.routes[decodedPathname]) || prerenderManifest.notFoundRoutes.includes(decodedPathname);\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n throw new _nofallbackerrorexternal.NoFallbackError();\n }\n if (typeof prerenderInfo.fallback === 'string' && !isPrerendered && !isNextDataRequest) {\n isIsrFallback = true;\n }\n }\n }\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (isIsrFallback && (0, _isbot.isBot)(req.headers['user-agent'] || '') || (0, _requestmeta.getRequestMeta)(req, 'minimalMode')) {\n isIsrFallback = false;\n }\n const tracer = (0, _tracer.getTracer)();\n const activeSpan = tracer.getActiveScopeSpan();\n try {\n const method = req.method || 'GET';\n const resolvedUrl = (0, _formaturl.formatUrl)({\n pathname: nextConfig.trailingSlash ? parsedUrl.pathname : (0, _removetrailingslash.removeTrailingSlash)(parsedUrl.pathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery\n });\n const publicRuntimeConfig = (routerServerContext == null ? void 0 : routerServerContext.publicRuntimeConfig) || nextConfig.publicRuntimeConfig;\n const handleResponse = async (span)=>{\n const responseGenerator = async ({ previousCacheEntry })=>{\n var _previousCacheEntry_value;\n const doRender = async ()=>{\n try {\n var _nextConfig_i18n, _nextConfig_experimental_amp, _nextConfig_experimental_amp1;\n return await routeModule.render(req, res, {\n query: hasStaticProps && !isExperimentalCompile ? {\n ...params,\n ...isAmp ? {\n amp: query.amp\n } : {}\n } : {\n ...query,\n ...params\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: (0, _requestmeta.getRequestMeta)(req, 'developmentNotFoundSourcePage')\n },\n sharedContext: {\n buildId,\n customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined,\n deploymentId: false\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: (0, _interopdefault.interopDefault)(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError ? fallbackBuildManifest : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers),\n domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains,\n crossOrigin: nextConfig.crossOrigin,\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n canonicalBase: nextConfig.amp.canonicalBase || '',\n ampOptimizerConfig: (_nextConfig_experimental_amp = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp.optimizer,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n // Only the `publicRuntimeConfig` key is exposed to the client side\n // It'll be rendered as part of __NEXT_DATA__ on the client side\n runtimeConfig: Object.keys(publicRuntimeConfig).length > 0 ? publicRuntimeConfig : undefined,\n isExperimentalCompile,\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n },\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps),\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath: hasServerProps || hasGetInitialProps ? (0, _formaturl.formatUrl)({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest ? (0, _normalizedatapath.normalizeDataPath)(originalPathname) : originalPathname,\n query: originalQuery\n }) : resolvedUrl,\n isOnDemandRevalidate,\n ErrorDebug: (0, _requestmeta.getRequestMeta)(req, 'PagesErrorDebug'),\n err: (0, _requestmeta.getRequestMeta)(req, 'invokeError'),\n dev: routeModule.isDev,\n // needed for experimental.optimizeCss feature\n distDir: _path.default.join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir, routeModule.distDir),\n ampSkipValidation: (_nextConfig_experimental_amp1 = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp1.skipValidation,\n ampValidator: (0, _requestmeta.getRequestMeta)(req, 'ampValidator')\n }\n }).then((renderResult)=>{\n const { metadata } = renderResult;\n let cacheControl = metadata.cacheControl;\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl\n };\n }\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: _responsecache.CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData\n },\n cacheControl\n };\n }\n return {\n value: {\n kind: _responsecache.CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode\n },\n cacheControl\n };\n }).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== _constants.BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0, _utils.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n throw err;\n }\n };\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false;\n }\n if (isIsrFallback) {\n const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{\n if (!routeModule.isDev) {\n return (0, _utils2.toResponseCacheEntry)(previousFallbackCacheEntry);\n }\n return doRender();\n }, {\n routeKind: _routekind.RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest),\n waitUntil: ctx.waitUntil\n });\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n fallbackResponse.isMiss = true;\n return fallbackResponse;\n }\n }\n if (!(0, _requestmeta.getRequestMeta)(req, 'minimalMode') && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === _responsecache.CachedRouteKind.PAGES) {\n return {\n value: {\n kind: _responsecache.CachedRouteKind.PAGES,\n html: new _renderresult.default(Buffer.from(previousCacheEntry.value.html), {\n contentType: _constants1.HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n }\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n },\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n };\n }\n return doRender();\n };\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: _routekind.RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest\n });\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !(result == null ? void 0 : result.isMiss)) {\n isIsrFallback = false;\n }\n // response is finished is no cache entry\n if (!result) {\n return;\n }\n if (hasStaticProps && !(0, _requestmeta.getRequestMeta)(req, 'minimalMode')) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : result.isMiss ? 'MISS' : result.isStale ? 'STALE' : 'HIT');\n }\n let cacheControl;\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (is404Page) {\n const notFoundRevalidate = (0, _requestmeta.getRequestMeta)(req, 'notFoundRevalidate');\n cacheControl = {\n revalidate: typeof notFoundRevalidate === 'undefined' ? 0 : notFoundRevalidate,\n expire: undefined\n };\n } else if (is500Page) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n var _result_cacheControl;\n if (result.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: ((_result_cacheControl = result.cacheControl) == null ? void 0 : _result_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: _constants1.CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n // notFound: true case\n if (!result.value) {\n var _result_cacheControl1;\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n (0, _requestmeta.addRequestMeta)(req, 'notFoundRevalidate', (_result_cacheControl1 = result.cacheControl) == null ? void 0 : _result_cacheControl1.revalidate);\n res.statusCode = 404;\n if (isNextDataRequest) {\n res.end('{\"notFound\":true}');\n return;\n }\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return;\n }\n if (result.value.kind === _responsecache.CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n res.setHeader('content-type', _constants1.JSON_CONTENT_TYPE_HEADER);\n res.end(JSON.stringify(result.value.props));\n return;\n } else {\n const handleRedirect = (pageData)=>{\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH\n };\n const statusCode = (0, _redirectstatus.getRedirectStatus)(redirect);\n const { basePath } = nextConfig;\n if (basePath && redirect.basePath !== false && redirect.destination.startsWith('/')) {\n redirect.destination = `${basePath}${redirect.destination}`;\n }\n if (redirect.destination.startsWith('/')) {\n redirect.destination = (0, _utils1.normalizeRepeatedSlashes)(redirect.destination);\n }\n res.statusCode = statusCode;\n res.setHeader('Location', redirect.destination);\n if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`);\n }\n res.end(redirect.destination);\n };\n await handleRedirect(result.value.props);\n return null;\n }\n }\n if (result.value.kind !== _responsecache.CachedRouteKind.PAGES) {\n throw Object.defineProperty(new Error(`Invariant: received non-pages cache entry in pages handler`), \"__NEXT_ERROR_CODE\", {\n value: \"E695\",\n enumerable: false,\n configurable: true\n });\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if ((0, _requestmeta.getRequestMeta)(req, 'customErrorRender') || isErrorPage && (0, _requestmeta.getRequestMeta)(req, 'minimalMode') && res.statusCode === 500) {\n return null;\n }\n await (0, _sendpayload.sendRenderResult)({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result: isNextDataRequest && !isErrorPage && !is500Page ? new _renderresult.default(Buffer.from(JSON.stringify(result.value.pageData)), {\n contentType: _constants1.JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata\n }) : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse();\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(_constants.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: _tracer.SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof _nofallbackerrorexternal.NoFallbackError)) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0, _utils.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n throw err;\n }\n };\n};\n\n//# sourceMappingURL=pages-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3BhZ2VzLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixtQkFBbUIsbUJBQU8sQ0FBQyx1RUFBa0I7QUFDN0MsbUJBQW1CLG1CQUFPLENBQUMseUZBQTJCO0FBQ3RELGdCQUFnQixtQkFBTyxDQUFDLG1GQUF3QjtBQUNoRCxtQkFBbUIsbUJBQU8sQ0FBQyxtSEFBNkM7QUFDeEUscUJBQXFCLG1CQUFPLENBQUMsMkVBQW9CO0FBQ2pELHdCQUF3QixtQkFBTyxDQUFDLHVHQUFrQztBQUNsRSxlQUFlLG1CQUFPLENBQUMsNkZBQTZCO0FBQ3BELDJCQUEyQixtQkFBTyxDQUFDLCtIQUFtRDtBQUN0Rix1QkFBdUIsbUJBQU8sQ0FBQyxxRkFBc0I7QUFDckQsc0JBQXNCLG1CQUFPLENBQUMscUZBQXlCO0FBQ3ZELGdCQUFnQixtQkFBTyxDQUFDLCtFQUEyQjtBQUNuRCx3QkFBd0IsbUJBQU8sQ0FBQyxxRkFBOEI7QUFDOUQsb0JBQW9CLG1CQUFPLENBQUMseUVBQXdCO0FBQ3BELHFEQUFxRCxtQkFBTyxDQUFDLGtCQUFNO0FBQ25FLHFCQUFxQixtQkFBTyxDQUFDLDJFQUFvQjtBQUNqRCw2REFBNkQsbUJBQU8sQ0FBQyw2RUFBcUI7QUFDMUYsZ0JBQWdCLG1CQUFPLENBQUMsMkZBQTRCO0FBQ3BELGlDQUFpQyxtQkFBTyxDQUFDLHNHQUFnRDtBQUN6Riw0QkFBNEIsbUJBQU8sQ0FBQywySEFBaUQ7QUFDckYsZUFBZSxtQkFBTyxDQUFDLDJHQUF5QztBQUNoRSx1QkFBdUIsbUJBQU8sQ0FBQyw2SEFBa0Q7QUFDakYsNkJBQTZCLG1CQUFPLENBQUMseUlBQXdEO0FBQzdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFB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cUI7QUFDdkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EscUNBQXFDLFFBQVEsRUFBRSxRQUFRO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvcGFnZXMtaGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldEhhbmRsZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldEhhbmRsZXI7XG4gICAgfVxufSk7XG5jb25zdCBfcm91dGVraW5kID0gcmVxdWlyZShcIi4uLy4uL3JvdXRlLWtpbmRcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4uLy4uL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfZm9ybWF0dXJsID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XG5jb25zdCBfcmVxdWVzdG1ldGEgPSByZXF1aXJlKFwiLi4vLi4vcmVxdWVzdC1tZXRhXCIpO1xuY29uc3QgX2ludGVyb3BkZWZhdWx0ID0gcmVxdWlyZShcIi4uLy4uL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0XCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL2luc3RydW1lbnRhdGlvbi91dGlsc1wiKTtcbmNvbnN0IF9ub3JtYWxpemVkYXRhcGF0aCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtZGF0YS1wYXRoXCIpO1xuY29uc3QgX3Jlc3BvbnNlY2FjaGUgPSByZXF1aXJlKFwiLi4vLi4vcmVzcG9uc2UtY2FjaGVcIik7XG5jb25zdCBfY2FjaGVjb250cm9sID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jYWNoZS1jb250cm9sXCIpO1xuY29uc3QgX3V0aWxzMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xuY29uc3QgX3JlZGlyZWN0c3RhdHVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2xpYi9yZWRpcmVjdC1zdGF0dXNcIik7XG5jb25zdCBfY29uc3RhbnRzMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuY29uc3QgX3BhdGggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicGF0aFwiKSk7XG5jb25zdCBfc2VuZHBheWxvYWQgPSByZXF1aXJlKFwiLi4vLi4vc2VuZC1wYXlsb2FkXCIpO1xuY29uc3QgX3JlbmRlcnJlc3VsdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9yZW5kZXItcmVzdWx0XCIpKTtcbmNvbnN0IF91dGlsczIgPSByZXF1aXJlKFwiLi4vLi4vcmVzcG9uc2UtY2FjaGUvdXRpbHNcIik7XG5jb25zdCBfbm9mYWxsYmFja2Vycm9yZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9uby1mYWxsYmFjay1lcnJvci5leHRlcm5hbFwiKTtcbmNvbnN0IF9yZWRpcmVjdHN0YXR1c2NvZGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGVcIik7XG5jb25zdCBfaXNib3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90XCIpO1xuY29uc3QgX2FkZHBhdGhwcmVmaXggPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCIpO1xuY29uc3QgX3JlbW92ZXRyYWlsaW5nc2xhc2ggPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBnZXRIYW5kbGVyID0gKHsgc3JjUGFnZTogb3JpZ2luYWxTcmNQYWdlLCBjb25maWcsIHVzZXJsYW5kLCByb3V0ZU1vZHVsZSwgaXNGYWxsYmFja0Vycm9yLCBnZXRTdGF0aWNQYXRocywgZ2V0U3RhdGljUHJvcHMsIGdldFNlcnZlclNpZGVQcm9wcyB9KT0+e1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKHJlcSwgcmVzLCBjdHgpIHtcbiAgICAgICAgdmFyIF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZ19leHBlcmltZW50YWwsIF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZztcbiAgICAgICAgbGV0IHNyY1BhZ2UgPSBvcmlnaW5hbFNyY1BhZ2U7XG4gICAgICAgIC8vIHR1cmJvcGFjayBkb2Vzbid0IG5vcm1hbGl6ZSBgL2luZGV4YCBpbiB0aGUgcGFnZSBuYW1lXG4gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gdG8gcHJvY2VzcyBkeW5hbWljIHJvdXRlcyBwcm9wZXJseVxuICAgICAgICAvLyBUT0RPOiBmaXggdHVyYm9wYWNrIHByb3ZpZGluZyBkaWZmZXJpbmcgdmFsdWUgZnJvbSB3ZWJwYWNrXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgIHNyY1BhZ2UgPSBzcmNQYWdlLnJlcGxhY2UoL1xcL2luZGV4JC8sICcnKSB8fCAnLyc7XG4gICAgICAgIH0gZWxzZSBpZiAoc3JjUGFnZSA9PT0gJy9pbmRleCcpIHtcbiAgICAgICAgICAgIC8vIHdlIGFsd2F5cyBub3JtYWxpemUgL2luZGV4IHNwZWNpZmljYWxseVxuICAgICAgICAgICAgc3JjUGFnZSA9ICcvJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtdWx0aVpvbmVEcmFmdE1vZGUgPSBwcm9jZXNzLmVudi5fX05FWFRfTVVMVElfWk9ORV9EUkFGVF9NT0RFO1xuICAgICAgICBjb25zdCBwcmVwYXJlUmVzdWx0ID0gYXdhaXQgcm91dGVNb2R1bGUucHJlcGFyZShyZXEsIHJlcywge1xuICAgICAgICAgICAgc3JjUGFnZSxcbiAgICAgICAgICAgIG11bHRpWm9uZURyYWZ0TW9kZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFwcmVwYXJlUmVzdWx0KSB7XG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMDtcbiAgICAgICAgICAgIHJlcy5lbmQoJ0JhZCBSZXF1ZXN0Jyk7XG4gICAgICAgICAgICBjdHgud2FpdFVudGlsID09IG51bGwgPyB2b2lkIDAgOiBjdHgud2FpdFVudGlsLmNhbGwoY3R4LCBQcm9taXNlLnJlc29sdmUoKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBidWlsZElkLCBxdWVyeSwgcGFyYW1zLCBwYXJzZWRVcmwsIG9yaWdpbmFsUXVlcnksIG9yaWdpbmFsUGF0aG5hbWUsIGJ1aWxkTWFuaWZlc3QsIGZhbGxiYWNrQnVpbGRNYW5pZmVzdCwgbmV4dEZvbnRNYW5pZmVzdCwgc2VydmVyRmlsZXNNYW5pZmVzdCwgcmVhY3RMb2FkYWJsZU1hbmlmZXN0LCBwcmVyZW5kZXJNYW5pZmVzdCwgaXNEcmFmdE1vZGUsIGlzT25EZW1hbmRSZXZhbGlkYXRlLCByZXZhbGlkYXRlT25seUdlbmVyYXRlZCwgbG9jYWxlLCBsb2NhbGVzLCBkZWZhdWx0TG9jYWxlLCByb3V0ZXJTZXJ2ZXJDb250ZXh0LCBuZXh0Q29uZmlnLCByZXNvbHZlZFBhdGhuYW1lIH0gPSBwcmVwYXJlUmVzdWx0O1xuICAgICAgICBjb25zdCBpc0V4cGVyaW1lbnRhbENvbXBpbGUgPSBzZXJ2ZXJGaWxlc01hbmlmZXN0ID09IG51bGwgPyB2b2lkIDAgOiAoX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnID0gc2VydmVyRmlsZXNNYW5pZmVzdC5jb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnX2V4cGVyaW1lbnRhbCA9IF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZy5leHBlcmltZW50YWwpID09IG51bGwgPyB2b2lkIDAgOiBfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWdfZXhwZXJpbWVudGFsLmlzRXhwZXJpbWVudGFsQ29tcGlsZTtcbiAgICAgICAgY29uc3QgaGFzU2VydmVyUHJvcHMgPSBCb29sZWFuKGdldFNlcnZlclNpZGVQcm9wcyk7XG4gICAgICAgIGNvbnN0IGhhc1N0YXRpY1Byb3BzID0gQm9vbGVhbihnZXRTdGF0aWNQcm9wcyk7XG4gICAgICAgIGNvbnN0IGhhc1N0YXRpY1BhdGhzID0gQm9vbGVhbihnZXRTdGF0aWNQYXRocyk7XG4gICAgICAgIGNvbnN0IGhhc0dldEluaXRpYWxQcm9wcyA9IEJvb2xlYW4oKHVzZXJsYW5kLmRlZmF1bHQgfHwgdXNlcmxhbmQpLmdldEluaXRpYWxQcm9wcyk7XG4gICAgICAgIGNvbnN0IGlzQW1wID0gcXVlcnkuYW1wICYmIChjb25maWcgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmZpZy5hbXApO1xuICAgICAgICBsZXQgY2FjaGVLZXkgPSBudWxsO1xuICAgICAgICBsZXQgaXNJc3JGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICBsZXQgaXNOZXh0RGF0YVJlcXVlc3QgPSBwcmVwYXJlUmVzdWx0LmlzTmV4dERhdGFSZXF1ZXN0ICYmIChoYXNTdGF0aWNQcm9wcyB8fCBoYXNTZXJ2ZXJQcm9wcyk7XG4gICAgICAgIGNvbnN0IGlzNDA0UGFnZSA9IHNyY1BhZ2UgPT09ICcvNDA0JztcbiAgICAgICAgY29uc3QgaXM1MDBQYWdlID0gc3JjUGFnZSA9PT0gJy81MDAnO1xuICAgICAgICBjb25zdCBpc0Vycm9yUGFnZSA9IHNyY1BhZ2UgPT09ICcvX2Vycm9yJztcbiAgICAgICAgaWYgKCFyb3V0ZU1vZHVsZS5pc0RldiAmJiAhaXNEcmFmdE1vZGUgJiYgaGFzU3RhdGljUHJvcHMpIHtcbiAgICAgICAgICAgIGNhY2hlS2V5ID0gYCR7bG9jYWxlID8gYC8ke2xvY2FsZX1gIDogJyd9JHsoc3JjUGFnZSA9PT0gJy8nIHx8IHJlc29sdmVkUGF0aG5hbWUgPT09ICcvJykgJiYgbG9jYWxlID8gJycgOiByZXNvbHZlZFBhdGhuYW1lfSR7aXNBbXAgPyAnLmFtcCcgOiAnJ31gO1xuICAgICAgICAgICAgaWYgKGlzNDA0UGFnZSB8fCBpczUwMFBhZ2UgfHwgaXNFcnJvclBhZ2UpIHtcbiAgICAgICAgICAgICAgICBjYWNoZUtleSA9IGAke2xvY2FsZSA/IGAvJHtsb2NhbGV9YCA6ICcnfSR7c3JjUGFnZX0ke2lzQW1wID8gJy5hbXAnIDogJyd9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVuc3VyZSAvaW5kZXggYW5kIC8gaXMgbm9ybWFsaXplZCB0byBvbmUga2V5XG4gICAgICAgICAgICBjYWNoZUtleSA9IGNhY2hlS2V5ID09PSAnL2luZGV4JyA/ICcvJyA6IGNhY2hlS2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNTdGF0aWNQYXRocyAmJiAhaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRQYXRobmFtZSA9ICgwLCBfcmVtb3ZldHJhaWxpbmdzbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKShsb2NhbGUgPyAoMCwgX2FkZHBhdGhwcmVmaXguYWRkUGF0aFByZWZpeCkocmVzb2x2ZWRQYXRobmFtZSwgYC8ke2xvY2FsZX1gKSA6IHJlc29sdmVkUGF0aG5hbWUpO1xuICAgICAgICAgICAgY29uc3QgaXNQcmVyZW5kZXJlZCA9IEJvb2xlYW4ocHJlcmVuZGVyTWFuaWZlc3Qucm91dGVzW2RlY29kZWRQYXRobmFtZV0pIHx8IHByZXJlbmRlck1hbmlmZXN0Lm5vdEZvdW5kUm91dGVzLmluY2x1ZGVzKGRlY29kZWRQYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBwcmVyZW5kZXJJbmZvID0gcHJlcmVuZGVyTWFuaWZlc3QuZHluYW1pY1JvdXRlc1tzcmNQYWdlXTtcbiAgICAgICAgICAgIGlmIChwcmVyZW5kZXJJbmZvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByZXJlbmRlckluZm8uZmFsbGJhY2sgPT09IGZhbHNlICYmICFpc1ByZXJlbmRlcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfbm9mYWxsYmFja2Vycm9yZXh0ZXJuYWwuTm9GYWxsYmFja0Vycm9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJlcmVuZGVySW5mby5mYWxsYmFjayA9PT0gJ3N0cmluZycgJiYgIWlzUHJlcmVuZGVyZWQgJiYgIWlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlzSXNyRmFsbGJhY2sgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBXaGVuIHNlcnZpbmcgYSBib3QgcmVxdWVzdCwgd2Ugd2FudCB0byBzZXJ2ZSBhIGJsb2NraW5nIHJlbmRlciBhbmQgbm90XG4gICAgICAgIC8vIHRoZSBwcmVyZW5kZXJlZCBwYWdlLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgY29ycmVjdCBjb250ZW50IGlzIHNlcnZlZFxuICAgICAgICAvLyB0byB0aGUgYm90IGluIHRoZSBoZWFkLlxuICAgICAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiAoMCwgX2lzYm90LmlzQm90KShyZXEuaGVhZGVyc1sndXNlci1hZ2VudCddIHx8ICcnKSB8fCAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdtaW5pbWFsTW9kZScpKSB7XG4gICAgICAgICAgICBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJhY2VyID0gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpO1xuICAgICAgICBjb25zdCBhY3RpdmVTcGFuID0gdHJhY2VyLmdldEFjdGl2ZVNjb3BlU3BhbigpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gcmVxLm1ldGhvZCB8fCAnR0VUJztcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkVXJsID0gKDAsIF9mb3JtYXR1cmwuZm9ybWF0VXJsKSh7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWU6IG5leHRDb25maWcudHJhaWxpbmdTbGFzaCA/IHBhcnNlZFVybC5wYXRobmFtZSA6ICgwLCBfcmVtb3ZldHJhaWxpbmdzbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKShwYXJzZWRVcmwucGF0aG5hbWUgfHwgJy8nKSxcbiAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdG8gb25seSBhZGQgcXVlcnkgdmFsdWVzIGZyb20gb3JpZ2luYWwgVVJMXG4gICAgICAgICAgICAgICAgcXVlcnk6IGhhc1N0YXRpY1Byb3BzID8ge30gOiBvcmlnaW5hbFF1ZXJ5XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHB1YmxpY1J1bnRpbWVDb25maWcgPSAocm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5wdWJsaWNSdW50aW1lQ29uZmlnKSB8fCBuZXh0Q29uZmlnLnB1YmxpY1J1bnRpbWVDb25maWc7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVSZXNwb25zZSA9IGFzeW5jIChzcGFuKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlR2VuZXJhdG9yID0gYXN5bmMgKHsgcHJldmlvdXNDYWNoZUVudHJ5IH0pPT57XG4gICAgICAgICAgICAgICAgICAgIHZhciBfcHJldmlvdXNDYWNoZUVudHJ5X3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkb1JlbmRlciA9IGFzeW5jICgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbmV4dENvbmZpZ19pMThuLCBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wLCBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcm91dGVNb2R1bGUucmVuZGVyKHJlcSwgcmVzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBoYXNTdGF0aWNQcm9wcyAmJiAhaXNFeHBlcmltZW50YWxDb21waWxlID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXNBbXAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1wOiBxdWVyeS5hbXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wYXJhbXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RyYWZ0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2s6IGlzSXNyRmFsbGJhY2ssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZlbG9wbWVudE5vdEZvdW5kU291cmNlUGFnZTogKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnZGV2ZWxvcG1lbnROb3RGb3VuZFNvdXJjZVBhZ2UnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tU2VydmVyOiBCb29sZWFuKHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQuaXNDdXN0b21TZXJ2ZXIpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGxveW1lbnRJZDogcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlTW9kdWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDb25maWc6IGNvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogKDAsIF9pbnRlcm9wZGVmYXVsdC5pbnRlcm9wRGVmYXVsdCkodXNlcmxhbmQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50TW9kOiB1c2VybGFuZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFN0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3RhdGljUGF0aHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTZXJ2ZXJTaWRlUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c0R5bmFtaWNSZXNwb25zZTogIWhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRNYW5pZmVzdDogaXNGYWxsYmFja0Vycm9yID8gZmFsbGJhY2tCdWlsZE1hbmlmZXN0IDogYnVpbGRNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFjdExvYWRhYmxlTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldFByZWZpeDogbmV4dENvbmZpZy5hc3NldFByZWZpeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdQcm9wczogcHJlcmVuZGVyTWFuaWZlc3QucHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlczogbmV4dENvbmZpZy5pbWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Q29uZmlnT3V0cHV0OiBuZXh0Q29uZmlnLm91dHB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGltaXplQ3NzOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLm9wdGltaXplQ3NzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTY3JpcHRXb3JrZXJzOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLm5leHRTY3JpcHRXb3JrZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbkxvY2FsZXM6IChfbmV4dENvbmZpZ19pMThuID0gbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX25leHRDb25maWdfaTE4bi5kb21haW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IG5leHRDb25maWcuY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aVpvbmVEcmFmdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlUGF0aDogbmV4dENvbmZpZy5iYXNlUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbEJhc2U6IG5leHRDb25maWcuYW1wLmNhbm9uaWNhbEJhc2UgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbXBPcHRpbWl6ZXJDb25maWc6IChfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wID0gbmV4dENvbmZpZy5leHBlcmltZW50YWwuYW1wKSA9PSBudWxsID8gdm9pZCAwIDogX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcC5vcHRpbWl6ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZzogbmV4dENvbmZpZy5leHBlcmltZW50YWwuZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXJnZVBhZ2VEYXRhQnl0ZXM6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmxhcmdlUGFnZURhdGFCeXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgdGhlIGBwdWJsaWNSdW50aW1lQ29uZmlnYCBrZXkgaXMgZXhwb3NlZCB0byB0aGUgY2xpZW50IHNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEl0J2xsIGJlIHJlbmRlcmVkIGFzIHBhcnQgb2YgX19ORVhUX0RBVEFfXyBvbiB0aGUgY2xpZW50IHNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVDb25maWc6IE9iamVjdC5rZXlzKHB1YmxpY1J1bnRpbWVDb25maWcpLmxlbmd0aCA+IDAgPyBwdWJsaWNSdW50aW1lQ29uZmlnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNFeHBlcmltZW50YWxDb21waWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50VHJhY2VNZXRhZGF0YTogbmV4dENvbmZpZy5leHBlcmltZW50YWwuY2xpZW50VHJhY2VNZXRhZGF0YSB8fCBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNyU3RhdHVzOiByb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnNldElzclN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV4dERhdGFSZXF1ZXN0OiBpc05leHREYXRhUmVxdWVzdCAmJiAoaGFzU2VydmVyUHJvcHMgfHwgaGFzU3RhdGljUHJvcHMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgZ2V0U2VydmVyU2lkZVByb3BzIGFuZCBnZXRJbml0aWFsUHJvcHMgd2UgbmVlZCB0byBlbnN1cmUgd2UgdXNlIHRoZSBvcmlnaW5hbCBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBub3QgdGhlIHJlc29sdmVkIFVSTCB0byBwcmV2ZW50IGEgaHlkcmF0aW9uIG1pc21hdGNoIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc1BhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkQXNQYXRoOiBoYXNTZXJ2ZXJQcm9wcyB8fCBoYXNHZXRJbml0aWFsUHJvcHMgPyAoMCwgX2Zvcm1hdHVybC5mb3JtYXRVcmwpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSB1c2UgdGhlIG9yaWdpbmFsIFVSTCBwYXRobmFtZSBsZXNzIHRoZSBfbmV4dC9kYXRhIHByZWZpeCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXNlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogaXNOZXh0RGF0YVJlcXVlc3QgPyAoMCwgX25vcm1hbGl6ZWRhdGFwYXRoLm5vcm1hbGl6ZURhdGFQYXRoKShvcmlnaW5hbFBhdGhuYW1lKSA6IG9yaWdpbmFsUGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9yaWdpbmFsUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIDogcmVzb2x2ZWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yRGVidWc6ICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcSwgJ1BhZ2VzRXJyb3JEZWJ1ZycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyOiAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdpbnZva2VFcnJvcicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2OiByb3V0ZU1vZHVsZS5pc0RldixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZWRlZCBmb3IgZXhwZXJpbWVudGFsLm9wdGltaXplQ3NzIGZlYXR1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3REaXI6IF9wYXRoLmRlZmF1bHQuam9pbigvKiB0dXJib3BhY2tJZ25vcmU6IHRydWUgKi8gcHJvY2Vzcy5jd2QoKSwgcm91dGVNb2R1bGUucmVsYXRpdmVQcm9qZWN0RGlyLCByb3V0ZU1vZHVsZS5kaXN0RGlyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcFNraXBWYWxpZGF0aW9uOiAoX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcDEgPSBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5hbXApID09IG51bGwgPyB2b2lkIDAgOiBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wMS5za2lwVmFsaWRhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcFZhbGlkYXRvcjogKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnYW1wVmFsaWRhdG9yJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oKHJlbmRlclJlc3VsdCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtZXRhZGF0YSB9ID0gcmVuZGVyUmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2FjaGVDb250cm9sID0gbWV0YWRhdGEuY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ2lzTm90Rm91bmQnIGluIG1ldGFkYXRhICYmIG1ldGFkYXRhLmlzTm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBgaXNSZWRpcmVjdGAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YS5pc1JlZGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5SRURJUkVDVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IG1ldGFkYXRhLnBhZ2VEYXRhID8/IG1ldGFkYXRhLmZsaWdodERhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogcmVuZGVyUmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhOiByZW5kZXJSZXN1bHQubWV0YWRhdGEucGFnZURhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVuZGVyUmVzdWx0Lm1ldGFkYXRhLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZW5kZXJSZXN1bHQubWV0YWRhdGEuc3RhdHVzQ29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzcGFuKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5zdGF0dXNfY29kZSc6IHJlcy5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25leHQucnNjJzogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvb3RTcGFuQXR0cmlidXRlcyA9IHRyYWNlci5nZXRSb290U3BhbkF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2VyZSB1bmFibGUgdG8gZ2V0IGF0dHJpYnV0ZXMsIHByb2JhYmx5IE9URUwgaXMgbm90IGVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyb290U3BhbkF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5zcGFuX3R5cGUnKSAhPT0gX2NvbnN0YW50cy5CYXNlU2VydmVyU3Bhbi5oYW5kbGVSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgcm9vdCBzcGFuIHR5cGUgJyR7cm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5zcGFuX3R5cGUnKX0nLiBQbGVhc2UgcmVwb3J0IHRoaXMgTmV4dC5qcyBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanNgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZSA9IHJvb3RTcGFuQXR0cmlidXRlcy5nZXQoJ25leHQucm91dGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gYCR7bWV0aG9kfSAke3JvdXRlfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXh0LnJvdXRlJzogcm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAucm91dGUnOiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5zcGFuX25hbWUnOiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4udXBkYXRlTmFtZShuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4udXBkYXRlTmFtZShgJHttZXRob2R9ICR7cmVxLnVybH1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGJhY2tncm91bmQgcmV2YWxpZGF0ZSB3ZSBuZWVkIHRvIHJlcG9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXF1ZXN0IGVycm9yIGhlcmUgYXMgaXQgd29uJ3QgYmUgYnViYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NhY2hlRW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXZpb3VzQ2FjaGVFbnRyeS5pc1N0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHJvdXRlTW9kdWxlLm9uUmVxdWVzdEVycm9yKHJlcSwgZXJyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJLaW5kOiAnUGFnZXMgUm91dGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aDogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlVHlwZTogJ3JlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlUmVhc29uOiAoMCwgX3V0aWxzLmdldFJldmFsaWRhdGVSZWFzb24pKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IGhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCByb3V0ZXJTZXJ2ZXJDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSd2ZSBhbHJlYWR5IGdlbmVyYXRlZCB0aGlzIHBhZ2Ugd2Ugbm8gbG9uZ2VyXG4gICAgICAgICAgICAgICAgICAgIC8vIHNlcnZlIHRoZSBmYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNDYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXNyRmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrUmVzcG9uc2UgPSBhd2FpdCByb3V0ZU1vZHVsZS5nZXRSZXNwb25zZUNhY2hlKHJlcSkuZ2V0KHJvdXRlTW9kdWxlLmlzRGV2ID8gbnVsbCA6IGxvY2FsZSA/IGAvJHtsb2NhbGV9JHtzcmNQYWdlfWAgOiBzcmNQYWdlLCBhc3luYyAoeyBwcmV2aW91c0NhY2hlRW50cnk6IHByZXZpb3VzRmFsbGJhY2tDYWNoZUVudHJ5ID0gbnVsbCB9KT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcm91dGVNb2R1bGUuaXNEZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMyLnRvUmVzcG9uc2VDYWNoZUVudHJ5KShwcmV2aW91c0ZhbGxiYWNrQ2FjaGVFbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb1JlbmRlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlS2luZDogX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFjazogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudGFsQ2FjaGU6IGF3YWl0IHJvdXRlTW9kdWxlLmdldEluY3JlbWVudGFsQ2FjaGUocmVxLCBuZXh0Q29uZmlnLCBwcmVyZW5kZXJNYW5pZmVzdCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1Jlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBjYWNoZSBjb250cm9sIGZyb20gdGhlIHJlc3BvbnNlIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZWQgaW4gdGhlIHN1cnJvdW5kaW5nIGNhY2hlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmYWxsYmFja1Jlc3BvbnNlLmNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja1Jlc3BvbnNlLmlzTWlzcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbGxiYWNrUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdtaW5pbWFsTW9kZScpICYmIGlzT25EZW1hbmRSZXZhbGlkYXRlICYmIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkICYmICFwcmV2aW91c0NhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24tZGVtYW5kIHJldmFsaWRhdGUgYWx3YXlzIHNldHMgdGhpcyBoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ3gtbmV4dGpzLWNhY2hlJywgJ1JFVkFMSURBVEVEJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiAocHJldmlvdXNDYWNoZUVudHJ5ID09IG51bGwgPyB2b2lkIDAgOiAoX3ByZXZpb3VzQ2FjaGVFbnRyeV92YWx1ZSA9IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wcmV2aW91c0NhY2hlRW50cnlfdmFsdWUua2luZCkgPT09IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5QQUdFUykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWw6IG5ldyBfcmVuZGVycmVzdWx0LmRlZmF1bHQoQnVmZmVyLmZyb20ocHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLmh0bWwpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogX2NvbnN0YW50czEuSFRNTF9DT05URU5UX1RZUEVfSEVBREVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZS5oZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvUmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByb3V0ZU1vZHVsZS5oYW5kbGVSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIG5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2luZDogX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlT25seUdlbmVyYXRlZCxcbiAgICAgICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZUdlbmVyYXRvcjogcmVzcG9uc2VHZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgIHByZXJlbmRlck1hbmlmZXN0XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgY2FjaGUgaGl0IHRoaXMgd2Fzbid0IGFuIElTUiBmYWxsYmFja1xuICAgICAgICAgICAgICAgIC8vIGJ1dCBpdCB3YXNuJ3QgZ2VuZXJhdGVkIGR1cmluZyBidWlsZCBzbyBpc24ndCBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBwcmVyZW5kZXItbWFuaWZlc3RcbiAgICAgICAgICAgICAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiAhKHJlc3VsdCA9PSBudWxsID8gdm9pZCAwIDogcmVzdWx0LmlzTWlzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNJc3JGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyByZXNwb25zZSBpcyBmaW5pc2hlZCBpcyBubyBjYWNoZSBlbnRyeVxuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhhc1N0YXRpY1Byb3BzICYmICEoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdtaW5pbWFsTW9kZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ3gtbmV4dGpzLWNhY2hlJywgaXNPbkRlbWFuZFJldmFsaWRhdGUgPyAnUkVWQUxJREFURUQnIDogcmVzdWx0LmlzTWlzcyA/ICdNSVNTJyA6IHJlc3VsdC5pc1N0YWxlID8gJ1NUQUxFJyA6ICdISVQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1N0YXRpY1Byb3BzIHx8IGlzSXNyRmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpczQwNFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm90Rm91bmRSZXZhbGlkYXRlID0gKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnbm90Rm91bmRSZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IHR5cGVvZiBub3RGb3VuZFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnID8gMCA6IG5vdEZvdW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpczUwMFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBlbnRyeSBoYXMgYSBjYWNoZSBjb250cm9sIHdpdGggYSByZXZhbGlkYXRlIHZhbHVlIHRoYXQnc1xuICAgICAgICAgICAgICAgICAgICAvLyBhIG51bWJlciwgdXNlIGl0LlxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdC5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfcmVzdWx0X2NhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuY2FjaGVDb250cm9sLnJldmFsaWRhdGUgPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCByZXZhbGlkYXRlIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQ6ICR7cmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlfSA8IDFgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUyMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogcmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogKChfcmVzdWx0X2NhY2hlQ29udHJvbCA9IHJlc3VsdC5jYWNoZUNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzdWx0X2NhY2hlQ29udHJvbC5leHBpcmUpID8/IG5leHRDb25maWcuZXhwaXJlVGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldmFsaWRhdGU6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogX2NvbnN0YW50czEuQ0FDSEVfT05FX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgY2FjaGUgY29udHJvbCBpcyBhbHJlYWR5IHNldCBvbiB0aGUgcmVzcG9uc2Ugd2UgZG9uJ3RcbiAgICAgICAgICAgICAgICAvLyBvdmVycmlkZSBpdCB0byBhbGxvdyB1c2VycyB0byBjdXN0b21pemUgaXQgdmlhIG5leHQuY29uZmlnXG4gICAgICAgICAgICAgICAgaWYgKGNhY2hlQ29udHJvbCAmJiAhcmVzLmdldEhlYWRlcignQ2FjaGUtQ29udHJvbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAoMCwgX2NhY2hlY29udHJvbC5nZXRDYWNoZUNvbnRyb2xIZWFkZXIpKGNhY2hlQ29udHJvbCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBub3RGb3VuZDogdHJ1ZSBjYXNlXG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9yZXN1bHRfY2FjaGVDb250cm9sMTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHJldmFsaWRhdGUgbWV0YWRhdGEgYmVmb3JlIHJlbmRlcmluZyA0MDQgcGFnZVxuICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHdlIGNhbiB1c2UgdGhpcyBhcyBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZS1jb250cm9sIGhlYWRlciBpbnN0ZWFkIG9mIHdoYXQgdGhlIDQwNCBwYWdlIHJldHVybnNcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHRoZSByZXZhbGlkYXRlIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdG1ldGEuYWRkUmVxdWVzdE1ldGEpKHJlcSwgJ25vdEZvdW5kUmV2YWxpZGF0ZScsIChfcmVzdWx0X2NhY2hlQ29udHJvbDEgPSByZXN1bHQuY2FjaGVDb250cm9sKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3VsdF9jYWNoZUNvbnRyb2wxLnJldmFsaWRhdGUpO1xuICAgICAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCd7XCJub3RGb3VuZFwiOnRydWV9Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogc2hvdWxkIHJvdXRlLW1vZHVsZSBpdHNlbGYgaGFuZGxlIHJlbmRlcmluZyB0aGUgNDA0XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnJlbmRlcjQwNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcm91dGVyU2VydmVyQ29udGV4dC5yZW5kZXI0MDQocmVxLCByZXMsIHBhcnNlZFVybCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmVuZCgnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZS5raW5kID09PSBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuUkVESVJFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdjb250ZW50LXR5cGUnLCBfY29uc3RhbnRzMS5KU09OX0NPTlRFTlRfVFlQRV9IRUFERVIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmVuZChKU09OLnN0cmluZ2lmeShyZXN1bHQudmFsdWUucHJvcHMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZVJlZGlyZWN0ID0gKHBhZ2VEYXRhKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVF9TVEFUVVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBwYWdlRGF0YS5wYWdlUHJvcHMuX19OX1JFRElSRUNUX0JBU0VfUEFUSFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29kZSA9ICgwLCBfcmVkaXJlY3RzdGF0dXMuZ2V0UmVkaXJlY3RTdGF0dXMpKHJlZGlyZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGJhc2VQYXRoIH0gPSBuZXh0Q29uZmlnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXNlUGF0aCAmJiByZWRpcmVjdC5iYXNlUGF0aCAhPT0gZmFsc2UgJiYgcmVkaXJlY3QuZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0LmRlc3RpbmF0aW9uID0gYCR7YmFzZVBhdGh9JHtyZWRpcmVjdC5kZXN0aW5hdGlvbn1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3QuZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0LmRlc3RpbmF0aW9uID0gKDAsIF91dGlsczEubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKShyZWRpcmVjdC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdMb2NhdGlvbicsIHJlZGlyZWN0LmRlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gX3JlZGlyZWN0c3RhdHVzY29kZS5SZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignUmVmcmVzaCcsIGAwO3VybD0ke3JlZGlyZWN0LmRlc3RpbmF0aW9ufWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKHJlZGlyZWN0LmRlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVSZWRpcmVjdChyZXN1bHQudmFsdWUucHJvcHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZS5raW5kICE9PSBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YXJpYW50OiByZWNlaXZlZCBub24tcGFnZXMgY2FjaGUgZW50cnkgaW4gcGFnZXMgaGFuZGxlcmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU2OTVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBJbiBkZXYsIHdlIHNob3VsZCBub3QgY2FjaGUgcGFnZXMgZm9yIGFueSByZWFzb24uXG4gICAgICAgICAgICAgICAgaWYgKHJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBEcmFmdCBtb2RlIHNob3VsZCBuZXZlciBiZSBjYWNoZWRcbiAgICAgICAgICAgICAgICBpZiAoaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICdwcml2YXRlLCBuby1jYWNoZSwgbm8tc3RvcmUsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHdoZW4gaW52b2tpbmcgX2Vycm9yIGJlZm9yZSBwYWdlcy81MDAgd2UgZG9uJ3QgYWN0dWFsbHlcbiAgICAgICAgICAgICAgICAvLyBzZW5kIHRoZSBfZXJyb3IgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICBpZiAoKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnY3VzdG9tRXJyb3JSZW5kZXInKSB8fCBpc0Vycm9yUGFnZSAmJiAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdtaW5pbWFsTW9kZScpICYmIHJlcy5zdGF0dXNDb2RlID09PSA1MDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0ICgwLCBfc2VuZHBheWxvYWQuc2VuZFJlbmRlclJlc3VsdCkoe1xuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHJlbmRlcmluZyB0aGUgZXJyb3IgcGFnZSBpdCdzIG5vdCBhIGRhdGEgcmVxdWVzdFxuICAgICAgICAgICAgICAgICAgICAvLyBhbnltb3JlXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogaXNOZXh0RGF0YVJlcXVlc3QgJiYgIWlzRXJyb3JQYWdlICYmICFpczUwMFBhZ2UgPyBuZXcgX3JlbmRlcnJlc3VsdC5kZWZhdWx0KEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHJlc3VsdC52YWx1ZS5wYWdlRGF0YSkpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogX2NvbnN0YW50czEuSlNPTl9DT05URU5UX1RZUEVfSEVBREVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdC52YWx1ZS5odG1sLm1ldGFkYXRhXG4gICAgICAgICAgICAgICAgICAgIH0pIDogcmVzdWx0LnZhbHVlLmh0bWwsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiByb3V0ZU1vZHVsZS5pc0RldiA/IHVuZGVmaW5lZCA6IGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIFRPRE86IGFjdGl2ZVNwYW4gY29kZSBwYXRoIGlzIGZvciB3aGVuIHdyYXBwZWQgYnlcbiAgICAgICAgICAgIC8vIG5leHQtc2VydmVyIGNhbiBiZSByZW1vdmVkIHdoZW4gdGhpcyBpcyBubyBsb25nZXIgdXNlZFxuICAgICAgICAgICAgaWYgKGFjdGl2ZVNwYW4pIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVSZXNwb25zZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0cmFjZXIud2l0aFByb3BhZ2F0ZWRDb250ZXh0KHJlcS5oZWFkZXJzLCAoKT0+dHJhY2VyLnRyYWNlKF9jb25zdGFudHMuQmFzZVNlcnZlclNwYW4uaGFuZGxlUmVxdWVzdCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGAke21ldGhvZH0gJHtyZXEudXJsfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBfdHJhY2VyLlNwYW5LaW5kLlNFUlZFUixcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5tZXRob2QnOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAudGFyZ2V0JzogcmVxLnVybFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCBoYW5kbGVSZXNwb25zZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmICghKGVyciBpbnN0YW5jZW9mIF9ub2ZhbGxiYWNrZXJyb3JleHRlcm5hbC5Ob0ZhbGxiYWNrRXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcm91dGVNb2R1bGUub25SZXF1ZXN0RXJyb3IocmVxLCBlcnIsIHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVyS2luZDogJ1BhZ2VzIFJvdXRlcicsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aDogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVUeXBlOiAncmVuZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZVJlYXNvbjogKDAsIF91dGlscy5nZXRSZXZhbGlkYXRlUmVhc29uKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IGhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9LCByb3V0ZXJTZXJ2ZXJDb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJldGhyb3cgc28gdGhhdCB3ZSBjYW4gaGFuZGxlIHNlcnZpbmcgZXJyb3IgcGFnZVxuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLWhhbmRsZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/pages-handler.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js": /*!********************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js ***! \********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.AmpContext;\n\n//# sourceMappingURL=amp-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2FtcC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2Isd0tBQWlGOztBQUVqRiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2FtcC1jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5BbXBDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js ***! \*****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HeadManagerContext;\n\n//# sourceMappingURL=head-manager-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2hlYWQtbWFuYWdlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsZ0xBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2hlYWQtbWFuYWdlci1jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5IZWFkTWFuYWdlckNvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQtbWFuYWdlci1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js": /*!*********************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js ***! \*********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HtmlContext;\n\n//# sourceMappingURL=html-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2h0bWwtY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHlLQUFrRjs7QUFFbEYiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9wYWdlcy92ZW5kb3JlZC9jb250ZXh0cy9odG1sLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkh0bWxDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/send-payload.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/send-payload.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n sendEtagResponse: function() {\n return sendEtagResponse;\n },\n sendRenderResult: function() {\n return sendRenderResult;\n }\n});\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nconst _etag = __webpack_require__(/*! ./lib/etag */ \"./node_modules/next/dist/server/lib/etag.js\");\nconst _fresh = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/fresh */ \"./node_modules/next/dist/compiled/fresh/index.js\"));\nconst _cachecontrol = __webpack_require__(/*! ./lib/cache-control */ \"./node_modules/next/dist/server/lib/cache-control.js\");\nconst _constants = __webpack_require__(/*! ../lib/constants */ \"./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction sendEtagResponse(req, res, etag) {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */ res.setHeader('ETag', etag);\n }\n if ((0, _fresh.default)(req.headers, {\n etag\n })) {\n res.statusCode = 304;\n res.end();\n return true;\n }\n return false;\n}\nasync function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl }) {\n if ((0, _utils.isResSent)(res)) {\n return;\n }\n if (poweredByHeader && result.contentType === _constants.HTML_CONTENT_TYPE_HEADER) {\n res.setHeader('X-Powered-By', 'Next.js');\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString();\n if (generateEtags && payload !== null) {\n const etag = (0, _etag.generateETag)(payload);\n if (sendEtagResponse(req, res, etag)) {\n return;\n }\n }\n if (!res.getHeader('Content-Type') && result.contentType) {\n res.setHeader('Content-Type', result.contentType);\n }\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload));\n }\n if (req.method === 'HEAD') {\n res.end(null);\n return;\n }\n if (payload !== null) {\n res.end(payload);\n return;\n }\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res);\n}\n\n//# sourceMappingURL=send-payload.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZW5kLXBheWxvYWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZUFBZSxtQkFBTyxDQUFDLHlFQUFxQjtBQUM1QyxjQUFjLG1CQUFPLENBQUMsK0RBQVk7QUFDbEMsc0RBQXNELG1CQUFPLENBQUMsa0ZBQTBCO0FBQ3hGLHNCQUFzQixtQkFBTyxDQUFDLGlGQUFxQjtBQUNuRCxtQkFBbUIsbUJBQU8sQ0FBQyxtRUFBa0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLGdFQUFnRTtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcGF5bG9hZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNlbmRFdGFnUmVzcG9uc2U6IG51bGwsXG4gICAgc2VuZFJlbmRlclJlc3VsdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBzZW5kRXRhZ1Jlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRFdGFnUmVzcG9uc2U7XG4gICAgfSxcbiAgICBzZW5kUmVuZGVyUmVzdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQ7XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi91dGlsc1wiKTtcbmNvbnN0IF9ldGFnID0gcmVxdWlyZShcIi4vbGliL2V0YWdcIik7XG5jb25zdCBfZnJlc2ggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoXCIpKTtcbmNvbnN0IF9jYWNoZWNvbnRyb2wgPSByZXF1aXJlKFwiLi9saWIvY2FjaGUtY29udHJvbFwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gc2VuZEV0YWdSZXNwb25zZShyZXEsIHJlcywgZXRhZykge1xuICAgIGlmIChldGFnKSB7XG4gICAgICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZ2VuZXJhdGluZyBhIDMwNCByZXNwb25zZSBNVVNUIGdlbmVyYXRlIGFueSBvZiB0aGVcbiAgICAgKiBmb2xsb3dpbmcgaGVhZGVyIGZpZWxkcyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBzZW50IGluIGEgMjAwIChPSylcbiAgICAgKiByZXNwb25zZSB0byB0aGUgc2FtZSByZXF1ZXN0OiBDYWNoZS1Db250cm9sLCBDb250ZW50LUxvY2F0aW9uLCBEYXRlLFxuICAgICAqIEVUYWcsIEV4cGlyZXMsIGFuZCBWYXJ5LiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMiNzZWN0aW9uLTQuMVxuICAgICAqLyByZXMuc2V0SGVhZGVyKCdFVGFnJywgZXRhZyk7XG4gICAgfVxuICAgIGlmICgoMCwgX2ZyZXNoLmRlZmF1bHQpKHJlcS5oZWFkZXJzLCB7XG4gICAgICAgIGV0YWdcbiAgICB9KSkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDMwNDtcbiAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuYXN5bmMgZnVuY3Rpb24gc2VuZFJlbmRlclJlc3VsdCh7IHJlcSwgcmVzLCByZXN1bHQsIGdlbmVyYXRlRXRhZ3MsIHBvd2VyZWRCeUhlYWRlciwgY2FjaGVDb250cm9sIH0pIHtcbiAgICBpZiAoKDAsIF91dGlscy5pc1Jlc1NlbnQpKHJlcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXJlZEJ5SGVhZGVyICYmIHJlc3VsdC5jb250ZW50VHlwZSA9PT0gX2NvbnN0YW50cy5IVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignWC1Qb3dlcmVkLUJ5JywgJ05leHQuanMnKTtcbiAgICB9XG4gICAgLy8gSWYgY2FjaGUgY29udHJvbCBpcyBhbHJlYWR5IHNldCBvbiB0aGUgcmVzcG9uc2Ugd2UgZG9uJ3RcbiAgICAvLyBvdmVycmlkZSBpdCB0byBhbGxvdyB1c2VycyB0byBjdXN0b21pemUgaXQgdmlhIG5leHQuY29uZmlnXG4gICAgaWYgKGNhY2hlQ29udHJvbCAmJiAhcmVzLmdldEhlYWRlcignQ2FjaGUtQ29udHJvbCcpKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAoMCwgX2NhY2hlY29udHJvbC5nZXRDYWNoZUNvbnRyb2xIZWFkZXIpKGNhY2hlQ29udHJvbCkpO1xuICAgIH1cbiAgICBjb25zdCBwYXlsb2FkID0gcmVzdWx0LmlzRHluYW1pYyA/IG51bGwgOiByZXN1bHQudG9VbmNodW5rZWRTdHJpbmcoKTtcbiAgICBpZiAoZ2VuZXJhdGVFdGFncyAmJiBwYXlsb2FkICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGV0YWcgPSAoMCwgX2V0YWcuZ2VuZXJhdGVFVGFnKShwYXlsb2FkKTtcbiAgICAgICAgaWYgKHNlbmRFdGFnUmVzcG9uc2UocmVxLCByZXMsIGV0YWcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyZXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKSAmJiByZXN1bHQuY29udGVudFR5cGUpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgcmVzdWx0LmNvbnRlbnRUeXBlKTtcbiAgICB9XG4gICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1MZW5ndGgnLCBCdWZmZXIuYnl0ZUxlbmd0aChwYXlsb2FkKSk7XG4gICAgfVxuICAgIGlmIChyZXEubWV0aG9kID09PSAnSEVBRCcpIHtcbiAgICAgICAgcmVzLmVuZChudWxsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocGF5bG9hZCAhPT0gbnVsbCkge1xuICAgICAgICByZXMuZW5kKHBheWxvYWQpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFBpcGUgdGhlIHJlbmRlciByZXN1bHQgdG8gdGhlIHJlc3BvbnNlIGFmdGVyIHdlIGdldCBhIHdyaXRlciBmb3IgaXQuXG4gICAgYXdhaXQgcmVzdWx0LnBpcGVUb05vZGVSZXNwb25zZShyZXMpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZW5kLXBheWxvYWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/send-payload.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/stream-utils/encoded-tags.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/encoded-tags.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ENCODED_TAGS\", ({\n enumerable: true,\n get: function() {\n return ENCODED_TAGS;\n }\n}));\nconst ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as `<body className=''>`\n OPENING: {\n // <html\n HTML: new Uint8Array([\n 60,\n 104,\n 116,\n 109,\n 108\n ]),\n // <body\n BODY: new Uint8Array([\n 60,\n 98,\n 111,\n 100,\n 121\n ])\n },\n CLOSED: {\n // </head>\n HEAD: new Uint8Array([\n 60,\n 47,\n 104,\n 101,\n 97,\n 100,\n 62\n ]),\n // </body>\n BODY: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62\n ]),\n // </html>\n HTML: new Uint8Array([\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ]),\n // </body></html>\n BODY_AND_HTML: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62,\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ])\n },\n META: {\n // Only the match the prefix cause the suffix can be different wether it's xml compatible or not \">\" or \"/>\"\n // <meta name=\"«nxt-icon»\"\n // This is a special mark that will be replaced by the icon insertion script tag.\n ICON_MARK: new Uint8Array([\n 60,\n 109,\n 101,\n 116,\n 97,\n 32,\n 110,\n 97,\n 109,\n 101,\n 61,\n 34,\n 194,\n 171,\n 110,\n 120,\n 116,\n 45,\n 105,\n 99,\n 111,\n 110,\n 194,\n 187,\n 34\n ])\n }\n};\n\n//# sourceMappingURL=encoded-tags.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZC10YWdzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZC10YWdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRU5DT0RFRF9UQUdTXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFTkNPREVEX1RBR1M7XG4gICAgfVxufSk7XG5jb25zdCBFTkNPREVEX1RBR1MgPSB7XG4gICAgLy8gb3BlbmluZyB0YWdzIGRvIG5vdCBoYXZlIHRoZSBjbG9zaW5nIGA+YCBzaW5jZSB0aGV5IGNhbiBjb250YWluIG90aGVyIGF0dHJpYnV0ZXMgc3VjaCBhcyBgPGJvZHkgY2xhc3NOYW1lPScnPmBcbiAgICBPUEVOSU5HOiB7XG4gICAgICAgIC8vIDxodG1sXG4gICAgICAgIEhUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4XG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8Ym9keVxuICAgICAgICBCT0RZOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMTIxXG4gICAgICAgIF0pXG4gICAgfSxcbiAgICBDTE9TRUQ6IHtcbiAgICAgICAgLy8gPC9oZWFkPlxuICAgICAgICBIRUFEOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9ib2R5PlxuICAgICAgICBCT0RZOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgOTgsXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAxMjEsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9odG1sPlxuICAgICAgICBIVE1MOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4LFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDwvYm9keT48L2h0bWw+XG4gICAgICAgIEJPRFlfQU5EX0hUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICA5OCxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDEyMSxcbiAgICAgICAgICAgIDYyLFxuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pXG4gICAgfSxcbiAgICBNRVRBOiB7XG4gICAgICAgIC8vIE9ubHkgdGhlIG1hdGNoIHRoZSBwcmVmaXggY2F1c2UgdGhlIHN1ZmZpeCBjYW4gYmUgZGlmZmVyZW50IHdldGhlciBpdCdzIHhtbCBjb21wYXRpYmxlIG9yIG5vdCBcIj5cIiBvciBcIi8+XCJcbiAgICAgICAgLy8gPG1ldGEgbmFtZT1cIsKrbnh0LWljb27Cu1wiXG4gICAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIG1hcmsgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBpY29uIGluc2VydGlvbiBzY3JpcHQgdGFnLlxuICAgICAgICBJQ09OX01BUks6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAzMixcbiAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgNjEsXG4gICAgICAgICAgICAzNCxcbiAgICAgICAgICAgIDE5NCxcbiAgICAgICAgICAgIDE3MSxcbiAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgIDEyMCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDQ1LFxuICAgICAgICAgICAgMTA1LFxuICAgICAgICAgICAgOTksXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAxOTQsXG4gICAgICAgICAgICAxODcsXG4gICAgICAgICAgICAzNFxuICAgICAgICBdKVxuICAgIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVuY29kZWQtdGFncy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/stream-utils/encoded-tags.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n chainStreams: function() {\n return chainStreams;\n },\n continueDynamicHTMLResume: function() {\n return continueDynamicHTMLResume;\n },\n continueDynamicPrerender: function() {\n return continueDynamicPrerender;\n },\n continueFizzStream: function() {\n return continueFizzStream;\n },\n continueStaticPrerender: function() {\n return continueStaticPrerender;\n },\n createBufferedTransformStream: function() {\n return createBufferedTransformStream;\n },\n createDocumentClosingStream: function() {\n return createDocumentClosingStream;\n },\n createRootLayoutValidatorStream: function() {\n return createRootLayoutValidatorStream;\n },\n renderToInitialFizzStream: function() {\n return renderToInitialFizzStream;\n },\n streamFromBuffer: function() {\n return streamFromBuffer;\n },\n streamFromString: function() {\n return streamFromString;\n },\n streamToBuffer: function() {\n return streamToBuffer;\n },\n streamToString: function() {\n return streamToString;\n }\n});\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../lib/trace/constants */ \"./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _detachedpromise = __webpack_require__(/*! ../../lib/detached-promise */ \"./node_modules/next/dist/lib/detached-promise.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"./node_modules/next/dist/lib/scheduler.js\");\nconst _encodedtags = __webpack_require__(/*! ./encoded-tags */ \"./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\nconst _uint8arrayhelpers = __webpack_require__(/*! ./uint8array-helpers */ \"./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\");\nconst _constants1 = __webpack_require__(/*! ../../shared/lib/errors/constants */ \"./node_modules/next/dist/shared/lib/errors/constants.js\");\nconst _outputexportprefetchencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/output-export-prefetch-encoding */ \"./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\");\nfunction voidCatch() {\n// this catcher is designed to be used with pipeTo where we expect the underlying\n// pipe implementation to forward errors but we don't want the pipeTo promise to reject\n// and be unhandled\n}\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder();\nfunction chainStreams(...streams) {\n // If we have no streams, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n if (streams.length === 0) {\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0];\n }\n const { readable, writable } = new TransformStream();\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, {\n preventClose: true\n });\n let i = 1;\n for(; i < streams.length - 1; i++){\n const nextStream = streams[i];\n promise = promise.then(()=>nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(voidCatch);\n return readable;\n}\nfunction streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nfunction streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToBuffer(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return Buffer.concat(chunks);\n}\nasync function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nfunction createBufferedTransformStream() {\n let bufferedChunks = [];\n let bufferByteLength = 0;\n let pending;\n const flush = (controller)=>{\n // If we already have a pending flush, then return early.\n if (pending) return;\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n // Combine the previous buffer with the new chunk.\n bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\n // Flush the buffer to the controller.\n flush(controller);\n },\n flush () {\n if (!pending) return;\n return pending.promise;\n }\n });\n}\nfunction createPrefetchCommentStream(isBuildTimePrerendering, buildId) {\n // Insert an extra comment at the beginning of the HTML document. This must\n // come after the DOCTYPE, which is inserted by React.\n //\n // The first chunk sent by React will contain the doctype. After that, we can\n // pass through the rest of the chunks as-is.\n let didTransformFirstChunk = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (isBuildTimePrerendering && !didTransformFirstChunk) {\n didTransformFirstChunk = true;\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n const chunkStr = decoder.decode(chunk, {\n stream: true\n });\n const updatedChunkStr = (0, _outputexportprefetchencoding.insertBuildIdComment)(chunkStr, buildId);\n controller.enqueue(encoder.encode(updatedChunkStr));\n return;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createMetadataTransformStream(insert) {\n let chunkIndex = -1;\n let isMarkRemoved = false;\n return new TransformStream({\n async transform (chunk, controller) {\n let iconMarkIndex = -1;\n let closedHeadIndex = -1;\n chunkIndex++;\n if (isMarkRemoved) {\n controller.enqueue(chunk);\n return;\n }\n let iconMarkLength = 0;\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.META.ICON_MARK);\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk);\n return;\n } else {\n // When we found the `<meta name=\"«nxt-icon»\"` tag prefix, we will remove it from the chunk.\n // Its close tag could either be `/>` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = _encodedtags.ENCODED_TAGS.META.ICON_MARK.length;\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2;\n } else {\n // The last char is `>`\n iconMarkLength++;\n }\n }\n }\n // Check if icon mark is inside <head> tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n if (iconMarkIndex !== -1) {\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength);\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex);\n chunk = replaced;\n } else {\n // The icon mark is after the head tag, replace and insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(encodedInsertion, iconMarkIndex);\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n }\n isMarkRemoved = true;\n }\n // If there's no icon mark located, it will be handled later when if present in the following chunks.\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex);\n // Set the rest of the chunk after the icon mark.\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n isMarkRemoved = true;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = <head><meta charset=\"utf-8\"></head>\n // insertion = <script>...</script>\n // output = <head><meta charset=\"utf-8\"> [ <script>...</script> ] </head>\n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: <head>...</head><body> [ resume content ] </body>\n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n }\n }\n });\n}\n// Suffix after main body content - scripts before </body>,\n// but wait for the major chunks to be enqueued.\nfunction createDeferredSuffixStream(suffix) {\n let flushed = false;\n let pending;\n const flush = (controller)=>{\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n controller.enqueue(encoder.encode(suffix));\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // If we've already flushed, we're done.\n if (flushed) return;\n // Schedule the flush to happen.\n flushed = true;\n flush(controller);\n },\n flush (controller) {\n if (pending) return pending.promise;\n if (flushed) return;\n // Flush now.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\nfunction createFlightDataInjectionTransformStream(stream, delayDataUntilFirstHtmlChunk) {\n let htmlStreamFinished = false;\n let pull = null;\n let donePulling = false;\n function startOrContinuePulling(controller) {\n if (!pull) {\n pull = startPulling(controller);\n }\n return pull;\n }\n async function startPulling(controller) {\n const reader = stream.getReader();\n if (delayDataUntilFirstHtmlChunk) {\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await (0, _scheduler.atLeastOneTask)();\n }\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n // We want to prioritize HTML over RSC data.\n // The SSR render is based on the same RSC stream, so when we get a new RSC chunk,\n // we're likely to produce an HTML chunk as well, so give it a chance to flush first.\n if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) {\n await (0, _scheduler.atLeastOneTask)();\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n start (controller) {\n if (!delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n flush (controller) {\n htmlStreamFinished = true;\n if (donePulling) {\n return;\n }\n return startOrContinuePulling(controller);\n }\n });\n}\nconst CLOSE_TAG = '</body></html>';\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `</body></html><script>...</script>` will be transformed to\n * `<script>...</script></body></html>`.\n */ function createMoveSuffixStream() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n if (index > -1) {\n foundSuffix = true;\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (chunk.length === _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (chunk.length > _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\n }\n } else {\n controller.enqueue(chunk);\n }\n },\n flush (controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY);\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nfunction createRootLayoutValidatorStream() {\n let foundHtml = false;\n let foundBody = false;\n return new TransformStream({\n async transform (chunk, controller) {\n // Peek into the streamed chunk to see if the tags are present.\n if (!foundHtml && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HTML) > -1) {\n foundHtml = true;\n }\n if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(`<html id=\"__next_error__\">\n <template\n data-next-error-message=\"Missing ${missingTags.map((c)=>`<${c}>`).join(missingTags.length > 1 ? ' and ' : '')} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\n data-next-error-digest=\"${_constants1.MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n ></template>\n `));\n }\n });\n}\nfunction chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nasync function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, isBuildTimePrerendering, buildId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n // If we're generating static HTML we need to wait for it to resolve before continuing.\n if (isStaticGeneration) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Add build id comment to start of the HTML document (in export mode)\n createPrefetchCommentStream(isBuildTimePrerendering, buildId),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createFlightDataInjectionTransformStream(inlinedDataStream, true) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId))// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, true))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { delayDataUntilFirstHtmlChunk, inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, delayDataUntilFirstHtmlChunk))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nfunction createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBY0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGdCQUFnQixtQkFBTyxDQUFDLGdGQUFxQjtBQUM3QyxtQkFBbUIsbUJBQU8sQ0FBQyxzRkFBd0I7QUFDbkQseUJBQXlCLG1CQUFPLENBQUMsb0ZBQTRCO0FBQzdELG1CQUFtQixtQkFBTyxDQUFDLHNFQUFxQjtBQUNoRCxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBZ0I7QUFDN0MsMkJBQTJCLG1CQUFPLENBQUMsZ0dBQXNCO0FBQ3pELG9CQUFvQixtQkFBTyxDQUFDLGtHQUFtQztBQUMvRCxzQ0FBc0MsbUJBQU8sQ0FBQyw0SkFBZ0U7QUFDOUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxVQUFVLHdCQUF3QjtBQUNsQztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkJBQTJCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLHFDQUFxQyx3Q0FBd0M7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixjQUFjO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQseUJBQXlCLEVBQUUsaURBQWlEO0FBQzdILHdDQUF3QyxvQ0FBb0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELHVKQUF1SjtBQUN6TTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsa0RBQWtEO0FBQzdHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsdUdBQXVHO0FBQ2pLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQsbUdBQW1HO0FBQzVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNoYWluU3RyZWFtczogbnVsbCxcbiAgICBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lOiBudWxsLFxuICAgIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjogbnVsbCxcbiAgICBjb250aW51ZUZpenpTdHJlYW06IG51bGwsXG4gICAgY29udGludWVTdGF0aWNQcmVyZW5kZXI6IG51bGwsXG4gICAgY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW06IG51bGwsXG4gICAgY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtOiBudWxsLFxuICAgIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW06IG51bGwsXG4gICAgcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbTogbnVsbCxcbiAgICBzdHJlYW1Gcm9tQnVmZmVyOiBudWxsLFxuICAgIHN0cmVhbUZyb21TdHJpbmc6IG51bGwsXG4gICAgc3RyZWFtVG9CdWZmZXI6IG51bGwsXG4gICAgc3RyZWFtVG9TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY2hhaW5TdHJlYW1zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNoYWluU3RyZWFtcztcbiAgICB9LFxuICAgIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVEeW5hbWljSFRNTFJlc3VtZTtcbiAgICB9LFxuICAgIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUR5bmFtaWNQcmVyZW5kZXI7XG4gICAgfSxcbiAgICBjb250aW51ZUZpenpTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVGaXp6U3RyZWFtO1xuICAgIH0sXG4gICAgY29udGludWVTdGF0aWNQcmVyZW5kZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVTdGF0aWNQcmVyZW5kZXI7XG4gICAgfSxcbiAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTtcbiAgICB9LFxuICAgIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW07XG4gICAgfSxcbiAgICBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW07XG4gICAgfSxcbiAgICByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW07XG4gICAgfSxcbiAgICBzdHJlYW1Gcm9tQnVmZmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbUZyb21CdWZmZXI7XG4gICAgfSxcbiAgICBzdHJlYW1Gcm9tU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmc7XG4gICAgfSxcbiAgICBzdHJlYW1Ub0J1ZmZlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW1Ub0J1ZmZlcjtcbiAgICB9LFxuICAgIHN0cmVhbVRvU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbVRvU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvY29uc3RhbnRzXCIpO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF9lbmNvZGVkdGFncyA9IHJlcXVpcmUoXCIuL2VuY29kZWQtdGFnc1wiKTtcbmNvbnN0IF91aW50OGFycmF5aGVscGVycyA9IHJlcXVpcmUoXCIuL3VpbnQ4YXJyYXktaGVscGVyc1wiKTtcbmNvbnN0IF9jb25zdGFudHMxID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9vdXRwdXRleHBvcnRwcmVmZXRjaGVuY29kaW5nID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9vdXRwdXQtZXhwb3J0LXByZWZldGNoLWVuY29kaW5nXCIpO1xuZnVuY3Rpb24gdm9pZENhdGNoKCkge1xuLy8gdGhpcyBjYXRjaGVyIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBwaXBlVG8gd2hlcmUgd2UgZXhwZWN0IHRoZSB1bmRlcmx5aW5nXG4vLyBwaXBlIGltcGxlbWVudGF0aW9uIHRvIGZvcndhcmQgZXJyb3JzIGJ1dCB3ZSBkb24ndCB3YW50IHRoZSBwaXBlVG8gcHJvbWlzZSB0byByZWplY3Rcbi8vIGFuZCBiZSB1bmhhbmRsZWRcbn1cbi8vIFdlIGNhbiBzaGFyZSB0aGUgc2FtZSBlbmNvZGVyIGluc3RhbmNlIGV2ZXJ5d2hlcmVcbi8vIE5vdGFibHkgd2UgY2Fubm90IGRvIHRoZSBzYW1lIGZvciBUZXh0RGVjb2RlciBiZWNhdXNlIGl0IGlzIHN0YXRlZnVsXG4vLyB3aGVuIGhhbmRsaW5nIHN0cmVhbWluZyBkYXRhXG5jb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG5mdW5jdGlvbiBjaGFpblN0cmVhbXMoLi4uc3RyZWFtcykge1xuICAgIC8vIElmIHdlIGhhdmUgbm8gc3RyZWFtcywgcmV0dXJuIGFuIGVtcHR5IHN0cmVhbS4gVGhpcyBiZWhhdmlvciBpc1xuICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgIGlmIChzdHJlYW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gSWYgd2Ugb25seSBoYXZlIDEgc3RyZWFtIHdlIGZhc3QgcGF0aCBpdCBieSByZXR1cm5pbmcganVzdCB0aGlzIHN0cmVhbVxuICAgIGlmIChzdHJlYW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gc3RyZWFtc1swXTtcbiAgICB9XG4gICAgY29uc3QgeyByZWFkYWJsZSwgd3JpdGFibGUgfSA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oKTtcbiAgICAvLyBXZSBhbHdheXMgaW5pdGlhdGUgcGlwZVRvIGltbWVkaWF0ZWx5LiBXZSBrbm93IHdlIGhhdmUgYXQgbGVhc3QgMiBzdHJlYW1zXG4gICAgLy8gc28gd2UgbmVlZCB0byBhdm9pZCBjbG9zaW5nIHRoZSB3cml0YWJsZSB3aGVuIHRoaXMgb25lIGZpbmlzaGVzLlxuICAgIGxldCBwcm9taXNlID0gc3RyZWFtc1swXS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgcHJldmVudENsb3NlOiB0cnVlXG4gICAgfSk7XG4gICAgbGV0IGkgPSAxO1xuICAgIGZvcig7IGkgPCBzdHJlYW1zLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgICAgIGNvbnN0IG5leHRTdHJlYW0gPSBzdHJlYW1zW2ldO1xuICAgICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKCgpPT5uZXh0U3RyZWFtLnBpcGVUbyh3cml0YWJsZSwge1xuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cbiAgICAvLyBXZSBjYW4gb21pdCB0aGUgbGVuZ3RoIGNoZWNrIGJlY2F1c2Ugd2UgaGFsdGVkIGJlZm9yZSB0aGUgbGFzdCBzdHJlYW0gYW5kIHRoZXJlXG4gICAgLy8gaXMgYXQgbGVhc3QgdHdvIHN0cmVhbXMgc28gdGhlIGxhc3RTdHJlYW0gaGVyZSB3aWxsIGFsd2F5cyBiZSBkZWZpbmVkXG4gICAgY29uc3QgbGFzdFN0cmVhbSA9IHN0cmVhbXNbaV07XG4gICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKT0+bGFzdFN0cmVhbS5waXBlVG8od3JpdGFibGUpKTtcbiAgICAvLyBDYXRjaCBhbnkgZXJyb3JzIGZyb20gdGhlIHN0cmVhbXMgYW5kIGlnbm9yZSB0aGVtLCB0aGV5IHdpbGwgYmUgaGFuZGxlZFxuICAgIC8vIGJ5IHdoYXRldmVyIGlzIGNvbnN1bWluZyB0aGUgcmVhZGFibGUgc3RyZWFtLlxuICAgIHByb21pc2UuY2F0Y2godm9pZENhdGNoKTtcbiAgICByZXR1cm4gcmVhZGFibGU7XG59XG5mdW5jdGlvbiBzdHJlYW1Gcm9tU3RyaW5nKHN0cikge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN0cikpO1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBzdHJlYW1Gcm9tQnVmZmVyKGNodW5rKSB7XG4gICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBzdHJlYW1Ub0J1ZmZlcihzdHJlYW0pIHtcbiAgICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjaHVua3MucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KGNodW5rcyk7XG59XG5hc3luYyBmdW5jdGlvbiBzdHJlYW1Ub1N0cmluZyhzdHJlYW0sIHNpZ25hbCkge1xuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jywge1xuICAgICAgICBmYXRhbDogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBzdHJpbmcgPSAnJztcbiAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHN0cmVhbSl7XG4gICAgICAgIGlmIChzaWduYWwgPT0gbnVsbCA/IHZvaWQgMCA6IHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHN0cmluZyArPSBkZWNvZGVyLmRlY29kZShjaHVuaywge1xuICAgICAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdHJpbmcgKz0gZGVjb2Rlci5kZWNvZGUoKTtcbiAgICByZXR1cm4gc3RyaW5nO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSB7XG4gICAgbGV0IGJ1ZmZlcmVkQ2h1bmtzID0gW107XG4gICAgbGV0IGJ1ZmZlckJ5dGVMZW5ndGggPSAwO1xuICAgIGxldCBwZW5kaW5nO1xuICAgIGNvbnN0IGZsdXNoID0gKGNvbnRyb2xsZXIpPT57XG4gICAgICAgIC8vIElmIHdlIGFscmVhZHkgaGF2ZSBhIHBlbmRpbmcgZmx1c2gsIHRoZW4gcmV0dXJuIGVhcmx5LlxuICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuO1xuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgICgwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlckJ5dGVMZW5ndGgpO1xuICAgICAgICAgICAgICAgIGxldCBjb3BpZWRCeXRlcyA9IDA7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGJ1ZmZlcmVkQ2h1bmtzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyZWRDaHVuayA9IGJ1ZmZlcmVkQ2h1bmtzW2ldO1xuICAgICAgICAgICAgICAgICAgICBjaHVuay5zZXQoYnVmZmVyZWRDaHVuaywgY29waWVkQnl0ZXMpO1xuICAgICAgICAgICAgICAgICAgICBjb3BpZWRCeXRlcyArPSBidWZmZXJlZENodW5rLmJ5dGVMZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFdlIGp1c3Qgd3JvdGUgYWxsIHRoZSBidWZmZXJlZCBjaHVua3Mgc28gd2UgbmVlZCB0byByZXNldCB0aGUgYnVmZmVyZWRDaHVua3MgYXJyYXlcbiAgICAgICAgICAgICAgICAvLyBhbmQgb3VyIGJ1ZmZlckJ5dGVMZW5ndGggdG8gcHJlcGFyZSBmb3IgdGhlIG5leHQgcm91bmQgb2YgYnVmZmVyZWQgY2h1bmtzXG4gICAgICAgICAgICAgICAgYnVmZmVyZWRDaHVua3MubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBidWZmZXJCeXRlTGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgLy8gSWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGVucXVldWluZyBpdCBjYW4ndCBiZSBkdWUgdG8gdGhpc1xuICAgICAgICAgICAgLy8gdHJhbnNmb3JtZXJzIGZhdWx0LiBJdCdzIGxpa2VseSBkdWUgdG8gdGhlIGNvbnRyb2xsZXIgYmVpbmdcbiAgICAgICAgICAgIC8vIGVycm9yZWQgZHVlIHRvIHRoZSBzdHJlYW0gYmVpbmcgY2FuY2VsbGVkLlxuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIHBlbmRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWQucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gQ29tYmluZSB0aGUgcHJldmlvdXMgYnVmZmVyIHdpdGggdGhlIG5ldyBjaHVuay5cbiAgICAgICAgICAgIGJ1ZmZlcmVkQ2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgICAgICAgYnVmZmVyQnl0ZUxlbmd0aCArPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgICAgICAgLy8gRmx1c2ggdGhlIGJ1ZmZlciB0byB0aGUgY29udHJvbGxlci5cbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoKSB7XG4gICAgICAgICAgICBpZiAoIXBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgICAgIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZWZldGNoQ29tbWVudFN0cmVhbShpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCkge1xuICAgIC8vIEluc2VydCBhbiBleHRyYSBjb21tZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEhUTUwgZG9jdW1lbnQuIFRoaXMgbXVzdFxuICAgIC8vIGNvbWUgYWZ0ZXIgdGhlIERPQ1RZUEUsIHdoaWNoIGlzIGluc2VydGVkIGJ5IFJlYWN0LlxuICAgIC8vXG4gICAgLy8gVGhlIGZpcnN0IGNodW5rIHNlbnQgYnkgUmVhY3Qgd2lsbCBjb250YWluIHRoZSBkb2N0eXBlLiBBZnRlciB0aGF0LCB3ZSBjYW5cbiAgICAvLyBwYXNzIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIGNodW5rcyBhcy1pcy5cbiAgICBsZXQgZGlkVHJhbnNmb3JtRmlyc3RDaHVuayA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nICYmICFkaWRUcmFuc2Zvcm1GaXJzdENodW5rKSB7XG4gICAgICAgICAgICAgICAgZGlkVHJhbnNmb3JtRmlyc3RDaHVuayA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnLCB7XG4gICAgICAgICAgICAgICAgICAgIGZhdGFsOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2h1bmtTdHIgPSBkZWNvZGVyLmRlY29kZShjaHVuaywge1xuICAgICAgICAgICAgICAgICAgICBzdHJlYW06IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQ2h1bmtTdHIgPSAoMCwgX291dHB1dGV4cG9ydHByZWZldGNoZW5jb2RpbmcuaW5zZXJ0QnVpbGRJZENvbW1lbnQpKGNodW5rU3RyLCBidWlsZElkKTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUodXBkYXRlZENodW5rU3RyKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbSh7IFJlYWN0RE9NU2VydmVyLCBlbGVtZW50LCBzdHJlYW1PcHRpb25zIH0pIHtcbiAgICByZXR1cm4gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuQXBwUmVuZGVyU3Bhbi5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtLCBhc3luYyAoKT0+UmVhY3RET01TZXJ2ZXIucmVuZGVyVG9SZWFkYWJsZVN0cmVhbShlbGVtZW50LCBzdHJlYW1PcHRpb25zKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShpbnNlcnQpIHtcbiAgICBsZXQgY2h1bmtJbmRleCA9IC0xO1xuICAgIGxldCBpc01hcmtSZW1vdmVkID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBsZXQgaWNvbk1hcmtJbmRleCA9IC0xO1xuICAgICAgICAgICAgbGV0IGNsb3NlZEhlYWRJbmRleCA9IC0xO1xuICAgICAgICAgICAgY2h1bmtJbmRleCsrO1xuICAgICAgICAgICAgaWYgKGlzTWFya1JlbW92ZWQpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBpY29uTWFya0xlbmd0aCA9IDA7XG4gICAgICAgICAgICAvLyBPbmx5IHNlYXJjaCBmb3IgdGhlIGNsb3NlZCBoZWFkIHRhZyBvbmNlXG4gICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpY29uTWFya0luZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuTUVUQS5JQ09OX01BUkspO1xuICAgICAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSBmb3VuZCB0aGUgYDxtZXRhIG5hbWU9XCLCq254dC1pY29uwrtcImAgdGFnIHByZWZpeCwgd2Ugd2lsbCByZW1vdmUgaXQgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgIC8vIEl0cyBjbG9zZSB0YWcgY291bGQgZWl0aGVyIGJlIGAvPmAgb3IgYD5gLCBjaGVja2luZyB0aGUgbmV4dCBjaGFyIHRvIGVuc3VyZSB3ZSBjb3ZlciBib3RoIGNhc2VzLlxuICAgICAgICAgICAgICAgICAgICBpY29uTWFya0xlbmd0aCA9IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuTUVUQS5JQ09OX01BUksubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBuZXh0IGNoYXIgaXMgLywgdGhpcyBpcyBmb3IgeG1sIG1vZGUuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaHVua1tpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGhdID09PSA0Nykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGggKz0gMjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBsYXN0IGNoYXIgaXMgYD5gXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uTWFya0xlbmd0aCsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaWNvbiBtYXJrIGlzIGluc2lkZSA8aGVhZD4gdGFnIGluIHRoZSBmaXJzdCBjaHVuay5cbiAgICAgICAgICAgIGlmIChjaHVua0luZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VkSGVhZEluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhFQUQpO1xuICAgICAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbWFyayBpY29uIGlzIGxvY2F0ZWQgaW4gdGhlIDFzdCBjaHVuayBiZWZvcmUgdGhlIGhlYWQgdGFnLlxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBpbnNlcnQgdGhlIHNjcmlwdCB0YWcgaW4gdGhpcyBjYXNlIGJlY2F1c2UgaXQncyBpbiB0aGUgaGVhZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCByZW1vdmUgdGhlIGljb24gbWFyayBmcm9tIHRoZSBjaHVuay5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggPCBjbG9zZWRIZWFkSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBpY29uIG1hcmsgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoMCwgaWNvbk1hcmtJbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KGljb25NYXJrSW5kZXggKyBpY29uTWFya0xlbmd0aCksIGljb25NYXJrSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmsgPSByZXBsYWNlZDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBpY29uIG1hcmsgaXMgYWZ0ZXIgdGhlIGhlYWQgdGFnLCByZXBsYWNlIGFuZCBpbnNlcnQgdGhlIHNjcmlwdCB0YWcgYXQgdGhhdCBwb3NpdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb25MZW5ndGggPSBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KDAsIGljb25NYXJrSW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChlbmNvZGVkSW5zZXJ0aW9uLCBpY29uTWFya0luZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4ICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rID0gcmVwbGFjZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaXNNYXJrUmVtb3ZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBpY29uIG1hcmsgbG9jYXRlZCwgaXQgd2lsbCBiZSBoYW5kbGVkIGxhdGVyIHdoZW4gaWYgcHJlc2VudCBpbiB0aGUgZm9sbG93aW5nIGNodW5rcy5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gV2hlbiBpdCdzIGFwcGVhcmVkIGluIHRoZSBmb2xsb3dpbmcgY2h1bmtzLCB3ZSdsbCBuZWVkIHRvXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBtYXJrIGFuZCB0aGVuIGluc2VydCB0aGUgc2NyaXB0IHRhZyBhdCB0aGF0IHBvc2l0aW9uLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbkxlbmd0aCA9IGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoO1xuICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIGljb24gbWFyayB3aXRoIHRoZSBob2lzdCBzY3JpcHQgb3IgZW1wdHkgc3RyaW5nLlxuICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgZmlyc3QgcGFydCBvZiB0aGUgY2h1bmssIGJlZm9yZSB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheSgwLCBpY29uTWFya0luZGV4KSk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBpbnNlcnRpb24gYWZ0ZXIgdGhlIGljb24gbWFyay5cbiAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaWNvbk1hcmtJbmRleCk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSByZXN0IG9mIHRoZSBjaHVuayBhZnRlciB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4ICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBjaHVuayA9IHJlcGxhY2VkO1xuICAgICAgICAgICAgICAgIGlzTWFya1JlbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShpbnNlcnQpIHtcbiAgICBsZXQgaW5zZXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBXZSBuZWVkIHRvIHRyYWNrIGlmIHRoaXMgdHJhbnNmb3JtIHNhdyBhbnkgYnl0ZXMgYmVjYXVzZSBpZiBpdCBkaWRuJ3RcbiAgICAvLyB3ZSB3b24ndCB3YW50IHRvIGluc2VydCBhbnkgc2VydmVyIEhUTUwgYXQgYWxsXG4gICAgbGV0IGhhc0J5dGVzID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBoYXNCeXRlcyA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgIGlmIChpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVkSW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETyAoQEV0aGFuLUFycm93b29kKTogUmVwbGFjZSB0aGUgZ2VuZXJpYyBgaW5kZXhPZlVpbnQ4QXJyYXlgIG1ldGhvZCB3aXRoIHNvbWV0aGluZyBmaW5lbHkgdHVuZWQgZm9yIHRoZSBzdWJzZXQgb2YgdGhpbmdzIGFjdHVhbGx5IGJlaW5nIGNoZWNrZWQgZm9yLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhFQUQpO1xuICAgICAgICAgICAgICAgIC8vIEluIGZ1bGx5IHN0YXRpYyByZW5kZXJpbmcgb3Igbm9uIFBQUiByZW5kZXJpbmcgY2FzZXM6XG4gICAgICAgICAgICAgICAgLy8gYC9oZWFkPmAgd2lsbCBhbHdheXMgYmUgZm91bmQgaW4gdGhlIGNodW5rIGluIGZpcnN0IGNodW5rIHJlbmRlcmluZy5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSB0b3RhbCBjb3VudCBvZiB0aGUgYnl0ZXMgaW4gdGhlIGNodW5rIGFuZCB0aGUgaW5zZXJ0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlLmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjaHVuayA9IDxoZWFkPjxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiPjwvaGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydGlvbiA9IDxzY3JpcHQ+Li4uPC9zY3JpcHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXRwdXQgPSA8aGVhZD48bWV0YSBjaGFyc2V0PVwidXRmLThcIj4gWyA8c2NyaXB0Pi4uLjwvc2NyaXB0PiBdIDwvaGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGVkSGVhZENvbnRlbnQgPSBuZXcgVWludDhBcnJheShjaHVuay5sZW5ndGggKyBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNodW5rLCBiZWZvcmUgdGhlIGhlYWQgdGFnXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZEhlYWRDb250ZW50LnNldChjaHVuay5zbGljZSgwLCBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzZXJ2ZXIgaW5zZXJ0ZWQgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSByZXN0IG9mIHRoZSBjaHVua1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoY2h1bmsuc2xpY2UoaW5kZXgpLCBpbmRleCArIGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShpbnNlcnRlZEhlYWRDb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBoYXBwZW5zIGluIFBQUiByZW5kZXJpbmcgZHVyaW5nIG5leHQgc3RhcnQsIHdoZW4gdGhlIHBhZ2UgaXMgcGFydGlhbGx5IHJlbmRlcmVkLlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBwYWdlIHJlc3VtZXMsIHRoZSBoZWFkIHRhZyB3aWxsIGJlIGZvdW5kIGluIHRoZSBtaWRkbGUgb2YgdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVyZSB3ZSBqdXN0IG5lZWQgdG8gYXBwZW5kIHRoZSBpbnNlcnRpb24gYW5kIGNodW5rIHRvIHRoZSBjdXJyZW50IHN0cmVhbS5cbiAgICAgICAgICAgICAgICAgICAgLy8gZS5nLlxuICAgICAgICAgICAgICAgICAgICAvLyBQUFItc3RhdGljOiA8aGVhZD4uLi48L2hlYWQ+PGJvZHk+IFsgcmVzdW1lIGNvbnRlbnQgXSA8L2JvZHk+XG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUi1yZXN1bWU6IFsgaW5zZXJ0aW9uIF0gWyByZXN0IGNvbnRlbnQgXVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGJlZm9yZSBjbG9zaW5nIGlmIHRoZXJlJ3MgYW55dGhpbmcgcmVtYWluaW5nIHRvIGluc2VydC5cbiAgICAgICAgICAgIGlmIChoYXNCeXRlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGluc2VydGlvbikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuLy8gU3VmZml4IGFmdGVyIG1haW4gYm9keSBjb250ZW50IC0gc2NyaXB0cyBiZWZvcmUgPC9ib2R5Pixcbi8vIGJ1dCB3YWl0IGZvciB0aGUgbWFqb3IgY2h1bmtzIHRvIGJlIGVucXVldWVkLlxuZnVuY3Rpb24gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4KSB7XG4gICAgbGV0IGZsdXNoZWQgPSBmYWxzZTtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgICgwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoc3VmZml4KSk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZW5xdWV1aW5nIGl0IGNhbid0IGJlIGR1ZSB0byB0aGlzXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm1lcnMgZmF1bHQuIEl0J3MgbGlrZWx5IGR1ZSB0byB0aGUgY29udHJvbGxlciBiZWluZ1xuICAgICAgICAgICAgLy8gZXJyb3JlZCBkdWUgdG8gdGhlIHN0cmVhbSBiZWluZyBjYW5jZWxsZWQuXG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBmbHVzaGVkLCB3ZSdyZSBkb25lLlxuICAgICAgICAgICAgaWYgKGZsdXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBmbHVzaCB0byBoYXBwZW4uXG4gICAgICAgICAgICBmbHVzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgICAgICBpZiAoZmx1c2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgLy8gRmx1c2ggbm93LlxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN1ZmZpeCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVGbGlnaHREYXRhSW5qZWN0aW9uVHJhbnNmb3JtU3RyZWFtKHN0cmVhbSwgZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykge1xuICAgIGxldCBodG1sU3RyZWFtRmluaXNoZWQgPSBmYWxzZTtcbiAgICBsZXQgcHVsbCA9IG51bGw7XG4gICAgbGV0IGRvbmVQdWxsaW5nID0gZmFsc2U7XG4gICAgZnVuY3Rpb24gc3RhcnRPckNvbnRpbnVlUHVsbGluZyhjb250cm9sbGVyKSB7XG4gICAgICAgIGlmICghcHVsbCkge1xuICAgICAgICAgICAgcHVsbCA9IHN0YXJ0UHVsbGluZyhjb250cm9sbGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHVsbDtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICAgICAgICBpZiAoZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykge1xuICAgICAgICAgICAgLy8gTk9URTogc3RyZWFtaW5nIGZsdXNoXG4gICAgICAgICAgICAvLyBXZSBhcmUgYnVmZmVyaW5nIGhlcmUgZm9yIHRoZSBpbmxpbmVkIGRhdGEgc3RyZWFtIGJlY2F1c2UgdGhlXG4gICAgICAgICAgICAvLyBcInNoZWxsXCIgc3RyZWFtIG1pZ2h0IGJlIGNodW5rZW5pemVkIGFnYWluIGJ5IHRoZSB1bmRlcmx5aW5nIHN0cmVhbVxuICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24sIGUuZy4gd2l0aCBhIHNwZWNpZmljIGhpZ2gtd2F0ZXIgbWFyay4gVG8gZW5zdXJlIGl0J3NcbiAgICAgICAgICAgIC8vIHRoZSBzYWZlIHRpbWluZyB0byBwaXBlIHRoZSBkYXRhIHN0cmVhbSwgdGhpcyBleHRyYSB0aWNrIGlzXG4gICAgICAgICAgICAvLyBuZWNlc3NhcnkuXG4gICAgICAgICAgICAvLyBXZSBkb24ndCBzdGFydCByZWFkaW5nIHVudGlsIHdlJ3ZlIGxlZnQgdGhlIGN1cnJlbnQgVGFzayB0byBlbnN1cmVcbiAgICAgICAgICAgIC8vIHRoYXQgaXQncyBpbnNlcnRlZCBhZnRlciBmbHVzaGluZyB0aGUgc2hlbGwuIE5vdGUgdGhhdCB0aGlzIGltcGxlbWVudGF0aW9uXG4gICAgICAgICAgICAvLyBtaWdodCBnZXQgc3RhbGUgaWYgaW1wbCBkZXRhaWxzIG9mIEZpenogY2hhbmdlIGluIHRoZSBmdXR1cmUuXG4gICAgICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci5hdExlYXN0T25lVGFzaykoKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICBkb25lUHVsbGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBwcmlvcml0aXplIEhUTUwgb3ZlciBSU0MgZGF0YS5cbiAgICAgICAgICAgICAgICAvLyBUaGUgU1NSIHJlbmRlciBpcyBiYXNlZCBvbiB0aGUgc2FtZSBSU0Mgc3RyZWFtLCBzbyB3aGVuIHdlIGdldCBhIG5ldyBSU0MgY2h1bmssXG4gICAgICAgICAgICAgICAgLy8gd2UncmUgbGlrZWx5IHRvIHByb2R1Y2UgYW4gSFRNTCBjaHVuayBhcyB3ZWxsLCBzbyBnaXZlIGl0IGEgY2hhbmNlIHRvIGZsdXNoIGZpcnN0LlxuICAgICAgICAgICAgICAgIGlmICghZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuayAmJiAhaHRtbFN0cmVhbUZpbmlzaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0ICgwLCBfc2NoZWR1bGVyLmF0TGVhc3RPbmVUYXNrKSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBpZiAoIWRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspIHtcbiAgICAgICAgICAgICAgICBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gU3RhcnQgdGhlIHN0cmVhbWluZyBpZiBpdCBoYXNuJ3QgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQgeWV0LlxuICAgICAgICAgICAgaWYgKGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspIHtcbiAgICAgICAgICAgICAgICBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaHRtbFN0cmVhbUZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChkb25lUHVsbGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5jb25zdCBDTE9TRV9UQUcgPSAnPC9ib2R5PjwvaHRtbD4nO1xuLyoqXG4gKiBUaGlzIHRyYW5zZm9ybSBzdHJlYW0gbW92ZXMgdGhlIHN1ZmZpeCB0byB0aGUgZW5kIG9mIHRoZSBzdHJlYW0sIHNvIHJlc3VsdHNcbiAqIGxpa2UgYDwvYm9keT48L2h0bWw+PHNjcmlwdD4uLi48L3NjcmlwdD5gIHdpbGwgYmUgdHJhbnNmb3JtZWQgdG9cbiAqIGA8c2NyaXB0Pi4uLjwvc2NyaXB0PjwvYm9keT48L2h0bWw+YC5cbiAqLyBmdW5jdGlvbiBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkge1xuICAgIGxldCBmb3VuZFN1ZmZpeCA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGZvdW5kU3VmZml4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRTdWZmaXggPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3aG9sZSBjaHVuayBpcyB0aGUgc3VmZml4LCB0aGVuIGRvbid0IHdyaXRlIGFueXRoaW5nLCBpdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gYmUgd3JpdHRlbiBpbiB0aGUgZmx1c2guXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA9PT0gX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIHBhcnQgYmVmb3JlIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gY2h1bmsuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShiZWZvcmUpO1xuICAgICAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBzdWZmaXggaXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY2h1bmssIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAvLyB0byBzcGxpdCB0aGUgY2h1bmsgaW50byB0d28gcGFydHMuXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA+IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwubGVuZ3RoICsgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBwYXJ0IGFmdGVyIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyID0gY2h1bmsuc2xpY2UoaW5kZXggKyBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShhZnRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBkaWRuJ3QgZmluZCB0aGUgc3VmZml4LCB0aGUgSFRNTCBpcyBub3QgdmFsaWQgaWYgd2UgZG9uJ3RcbiAgICAgICAgICAgIC8vIGFkZCBpdCwgc28gaW5zZXJ0IGl0IGF0IHRoZSBlbmQuXG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVN0cmlwRG9jdW1lbnRDbG9zaW5nVGFnc1RyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHJlbHkgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBjaHVua3Mgd2lsbCBuZXZlciBicmVhayBhY3Jvc3MgYSBjb2RlIHVuaXQuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIHJlYXNvbmFibGUgYmVjYXVzZSB3ZSBjdXJyZW50bHkgY29uY2F0IGFsbCBvZiBSZWFjdCdzIG91dHB1dCBmcm9tIGEgc2luZ2xlXG4gICAgICAgICAgICAvLyBmbHVzaCBpbnRvIG9uZSBjaHVuayBiZWZvcmUgc3RyZWFtaW5nIGl0IGZvcndhcmQgd2hpY2ggbWVhbnMgdGhlIGNodW5rIHdpbGwgcmVwcmVzZW50XG4gICAgICAgICAgICAvLyBhIHNpbmdsZSBjb2hlcmVudCB1dGYtOCBzdHJpbmcuIFRoaXMgaXMgbm90IHNhZmUgdG8gdXNlIGlmIHdlIGNoYW5nZSBvdXIgc3RyZWFtaW5nIHRvIG5vXG4gICAgICAgICAgICAvLyBsb25nZXIgZG8gdGhpcyBsYXJnZSBidWZmZXJlZCBjaHVua1xuICAgICAgICAgICAgaWYgKCgwLCBfdWludDhhcnJheWhlbHBlcnMuaXNFcXVpdmFsZW50VWludDhBcnJheXMpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKSB8fCAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWSkgfHwgKDAsIF91aW50OGFycmF5aGVscGVycy5pc0VxdWl2YWxlbnRVaW50OEFycmF5cykoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGVudGlyZSBjaHVuayBpcyB0aGUgY2xvc2luZyB0YWdzOyByZXR1cm4gd2l0aG91dCBlbnF1ZXVlaW5nIGFueXRoaW5nLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIGFzc3VtZSB0aGVzZSB0YWdzIHdpbGwgZ28gYXQgdG9nZXRoZXIgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgYW5kIHRoYXRcbiAgICAgICAgICAgIC8vIHRoZXkgd29uJ3QgYXBwZWFyIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LiBUaGlzIGlzIG5vdCByZWFsbHkgYSBzYWZlIGFzc3VtcHRpb25cbiAgICAgICAgICAgIC8vIGJ1dCB1bnRpbCB3ZSByZXZhbXAgb3VyIHN0cmVhbWluZyBpbmZyYSB0aGlzIGlzIGEgcGVyZm9ybWFudCB3YXkgdG8gc3RyaW5nIHRoZSB0YWdzXG4gICAgICAgICAgICBjaHVuayA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMucmVtb3ZlRnJvbVVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZKTtcbiAgICAgICAgICAgIGNodW5rID0gKDAsIF91aW50OGFycmF5aGVscGVycy5yZW1vdmVGcm9tVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbSgpIHtcbiAgICBsZXQgZm91bmRIdG1sID0gZmFsc2U7XG4gICAgbGV0IGZvdW5kQm9keSA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gUGVlayBpbnRvIHRoZSBzdHJlYW1lZCBjaHVuayB0byBzZWUgaWYgdGhlIHRhZ3MgYXJlIHByZXNlbnQuXG4gICAgICAgICAgICBpZiAoIWZvdW5kSHRtbCAmJiAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5PUEVOSU5HLkhUTUwpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmb3VuZEh0bWwgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFmb3VuZEJvZHkgJiYgKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuT1BFTklORy5CT0RZKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRCb2R5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBtaXNzaW5nVGFncyA9IFtdO1xuICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwpIG1pc3NpbmdUYWdzLnB1c2goJ2h0bWwnKTtcbiAgICAgICAgICAgIGlmICghZm91bmRCb2R5KSBtaXNzaW5nVGFncy5wdXNoKCdib2R5Jyk7XG4gICAgICAgICAgICBpZiAoIW1pc3NpbmdUYWdzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGA8aHRtbCBpZD1cIl9fbmV4dF9lcnJvcl9fXCI+XG4gICAgICAgICAgICA8dGVtcGxhdGVcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWVycm9yLW1lc3NhZ2U9XCJNaXNzaW5nICR7bWlzc2luZ1RhZ3MubWFwKChjKT0+YDwke2N9PmApLmpvaW4obWlzc2luZ1RhZ3MubGVuZ3RoID4gMSA/ICcgYW5kICcgOiAnJyl9IHRhZ3MgaW4gdGhlIHJvb3QgbGF5b3V0LlxcblJlYWQgbW9yZSBhdCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taXNzaW5nLXJvb3QtbGF5b3V0LXRhZ3NcIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3ItZGlnZXN0PVwiJHtfY29uc3RhbnRzMS5NSVNTSU5HX1JPT1RfVEFHU19FUlJPUn1cIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3Itc3RhY2s9XCJcIlxuICAgICAgICAgICAgPjwvdGVtcGxhdGU+XG4gICAgICAgICAgYCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjaGFpblRyYW5zZm9ybWVycyhyZWFkYWJsZSwgdHJhbnNmb3JtZXJzKSB7XG4gICAgbGV0IHN0cmVhbSA9IHJlYWRhYmxlO1xuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtZXIgb2YgdHJhbnNmb3JtZXJzKXtcbiAgICAgICAgaWYgKCF0cmFuc2Zvcm1lcikgY29udGludWU7XG4gICAgICAgIHN0cmVhbSA9IHN0cmVhbS5waXBlVGhyb3VnaCh0cmFuc2Zvcm1lcik7XG4gICAgfVxuICAgIHJldHVybiBzdHJlYW07XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZUZpenpTdHJlYW0ocmVuZGVyU3RyZWFtLCB7IHN1ZmZpeCwgaW5saW5lZERhdGFTdHJlYW0sIGlzU3RhdGljR2VuZXJhdGlvbiwgaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQsIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSwgdmFsaWRhdGVSb290TGF5b3V0IH0pIHtcbiAgICAvLyBTdWZmaXggaXRzZWxmIG1pZ2h0IGNvbnRhaW4gY2xvc2UgdGFncyBhdCB0aGUgZW5kLCBzbyB3ZSBuZWVkIHRvIHNwbGl0IGl0LlxuICAgIGNvbnN0IHN1ZmZpeFVuY2xvc2VkID0gc3VmZml4ID8gc3VmZml4LnNwbGl0KENMT1NFX1RBRywgMSlbMF0gOiBudWxsO1xuICAgIC8vIElmIHdlJ3JlIGdlbmVyYXRpbmcgc3RhdGljIEhUTUwgd2UgbmVlZCB0byB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZSBjb250aW51aW5nLlxuICAgIGlmIChpc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgICAgYXdhaXQgcmVuZGVyU3RyZWFtLmFsbFJlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gY2hhaW5UcmFuc2Zvcm1lcnMocmVuZGVyU3RyZWFtLCBbXG4gICAgICAgIC8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCksXG4gICAgICAgIC8vIEFkZCBidWlsZCBpZCBjb21tZW50IHRvIHN0YXJ0IG9mIHRoZSBIVE1MIGRvY3VtZW50IChpbiBleHBvcnQgbW9kZSlcbiAgICAgICAgY3JlYXRlUHJlZmV0Y2hDb21tZW50U3RyZWFtKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkKSxcbiAgICAgICAgLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgICAgIGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpLFxuICAgICAgICAvLyBJbnNlcnQgc3VmZml4IGNvbnRlbnRcbiAgICAgICAgc3VmZml4VW5jbG9zZWQgIT0gbnVsbCAmJiBzdWZmaXhVbmNsb3NlZC5sZW5ndGggPiAwID8gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4VW5jbG9zZWQpIDogbnVsbCxcbiAgICAgICAgLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgICAgICBpbmxpbmVkRGF0YVN0cmVhbSA/IGNyZWF0ZUZsaWdodERhdGFJbmplY3Rpb25UcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0sIHRydWUpIDogbnVsbCxcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIHJvb3QgbGF5b3V0IGZvciBtaXNzaW5nIGh0bWwgb3IgYm9keSB0YWdzXG4gICAgICAgIHZhbGlkYXRlUm9vdExheW91dCA/IGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW0oKSA6IG51bGwsXG4gICAgICAgIC8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgICAgIGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSxcbiAgICAgICAgLy8gU3BlY2lhbCBoZWFkIGluc2VydGlvbnNcbiAgICAgICAgLy8gVE9ETy1BUFA6IEluc2VydCBzZXJ2ZXIgc2lkZSBodG1sIHRvIGVuZCBvZiBoZWFkIGluIGFwcCBsYXlvdXQgcmVuZGVyaW5nLCB0byBhdm9pZFxuICAgICAgICAvLyBoeWRyYXRpb24gZXJyb3JzLiBSZW1vdmUgdGhpcyBvbmNlIGl0J3MgcmVhZHkgdG8gYmUgaGFuZGxlZCBieSByZWFjdCBpdHNlbGYuXG4gICAgICAgIGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKVxuICAgIF0pO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVEeW5hbWljUHJlcmVuZGVyKHByZXJlbmRlclN0cmVhbSwgeyBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEgfSkge1xuICAgIHJldHVybiBwcmVyZW5kZXJTdHJlYW0vLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpKS5waXBlVGhyb3VnaChjcmVhdGVTdHJpcERvY3VtZW50Q2xvc2luZ1RhZ3NUcmFuc2Zvcm0oKSkvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkpLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlU3RhdGljUHJlcmVuZGVyKHByZXJlbmRlclN0cmVhbSwgeyBpbmxpbmVkRGF0YVN0cmVhbSwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhLCBpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCB9KSB7XG4gICAgcmV0dXJuIHByZXJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLy8gQWRkIGJ1aWxkIGlkIGNvbW1lbnQgdG8gc3RhcnQgb2YgdGhlIEhUTUwgZG9jdW1lbnQgKGluIGV4cG9ydCBtb2RlKVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVQcmVmZXRjaENvbW1lbnRTdHJlYW0oaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQpKS8vIEluc2VydCBnZW5lcmF0ZWQgdGFncyB0byBoZWFkXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSkvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSkpLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVGbGlnaHREYXRhSW5qZWN0aW9uVHJhbnNmb3JtU3RyZWFtKGlubGluZWREYXRhU3RyZWFtLCB0cnVlKSkvLyBDbG9zZSB0YWdzIHNob3VsZCBhbHdheXMgYmUgZGVmZXJyZWQgdG8gdGhlIGVuZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVEeW5hbWljSFRNTFJlc3VtZShyZW5kZXJTdHJlYW0sIHsgZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaywgaW5saW5lZERhdGFTdHJlYW0sIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSB9KSB7XG4gICAgcmV0dXJuIHJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKS8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSkvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUZsaWdodERhdGFJbmplY3Rpb25UcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0sIGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspKS8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmcoQ0xPU0VfVEFHKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/stream-utils/uint8array-helpers.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/uint8array-helpers.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Find the starting index of Uint8Array `b` within Uint8Array `a`.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n indexOfUint8Array: function() {\n return indexOfUint8Array;\n },\n isEquivalentUint8Arrays: function() {\n return isEquivalentUint8Arrays;\n },\n removeFromUint8Array: function() {\n return removeFromUint8Array;\n }\n});\nfunction indexOfUint8Array(a, b) {\n if (b.length === 0) return 0;\n if (a.length === 0 || b.length > a.length) return -1;\n // start iterating through `a`\n for(let i = 0; i <= a.length - b.length; i++){\n let completeMatch = true;\n // from index `i`, iterate through `b` and check for mismatch\n for(let j = 0; j < b.length; j++){\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false;\n break;\n }\n }\n if (completeMatch) {\n return i;\n }\n }\n return -1;\n}\nfunction isEquivalentUint8Arrays(a, b) {\n if (a.length !== b.length) return false;\n for(let i = 0; i < a.length; i++){\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\nfunction removeFromUint8Array(a, b) {\n const tagIndex = indexOfUint8Array(a, b);\n if (tagIndex === 0) return a.subarray(b.length);\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length);\n removed.set(a.slice(0, tagIndex));\n removed.set(a.slice(tagIndex + b.length), tagIndex);\n return removed;\n } else {\n return a;\n }\n}\n\n//# sourceMappingURL=uint8array-helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvdWludDhhcnJheS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBLHVCQUF1QixjQUFjO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsY0FBYztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy91aW50OGFycmF5LWhlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaW5kIHRoZSBzdGFydGluZyBpbmRleCBvZiBVaW50OEFycmF5IGBiYCB3aXRoaW4gVWludDhBcnJheSBgYWAuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpbmRleE9mVWludDhBcnJheTogbnVsbCxcbiAgICBpc0VxdWl2YWxlbnRVaW50OEFycmF5czogbnVsbCxcbiAgICByZW1vdmVGcm9tVWludDhBcnJheTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpbmRleE9mVWludDhBcnJheTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbmRleE9mVWludDhBcnJheTtcbiAgICB9LFxuICAgIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzO1xuICAgIH0sXG4gICAgcmVtb3ZlRnJvbVVpbnQ4QXJyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlRnJvbVVpbnQ4QXJyYXk7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpbmRleE9mVWludDhBcnJheShhLCBiKSB7XG4gICAgaWYgKGIubGVuZ3RoID09PSAwKSByZXR1cm4gMDtcbiAgICBpZiAoYS5sZW5ndGggPT09IDAgfHwgYi5sZW5ndGggPiBhLmxlbmd0aCkgcmV0dXJuIC0xO1xuICAgIC8vIHN0YXJ0IGl0ZXJhdGluZyB0aHJvdWdoIGBhYFxuICAgIGZvcihsZXQgaSA9IDA7IGkgPD0gYS5sZW5ndGggLSBiLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgbGV0IGNvbXBsZXRlTWF0Y2ggPSB0cnVlO1xuICAgICAgICAvLyBmcm9tIGluZGV4IGBpYCwgaXRlcmF0ZSB0aHJvdWdoIGBiYCBhbmQgY2hlY2sgZm9yIG1pc21hdGNoXG4gICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCBiLmxlbmd0aDsgaisrKXtcbiAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZXMgZG8gbm90IG1hdGNoLCB0aGVuIHRoaXMgaXNuJ3QgYSBjb21wbGV0ZSBtYXRjaCwgZXhpdCBgYmAgaXRlcmF0aW9uIGVhcmx5IGFuZCBpdGVyYXRlIHRvIG5leHQgaW5kZXggb2YgYGFgLlxuICAgICAgICAgICAgaWYgKGFbaSArIGpdICE9PSBiW2pdKSB7XG4gICAgICAgICAgICAgICAgY29tcGxldGVNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb21wbGV0ZU1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG59XG5mdW5jdGlvbiBpc0VxdWl2YWxlbnRVaW50OEFycmF5cyhhLCBiKSB7XG4gICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgaWYgKGFbaV0gIT09IGJbaV0pIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiByZW1vdmVGcm9tVWludDhBcnJheShhLCBiKSB7XG4gICAgY29uc3QgdGFnSW5kZXggPSBpbmRleE9mVWludDhBcnJheShhLCBiKTtcbiAgICBpZiAodGFnSW5kZXggPT09IDApIHJldHVybiBhLnN1YmFycmF5KGIubGVuZ3RoKTtcbiAgICBpZiAodGFnSW5kZXggPiAtMSkge1xuICAgICAgICBjb25zdCByZW1vdmVkID0gbmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGggLSBiLmxlbmd0aCk7XG4gICAgICAgIHJlbW92ZWQuc2V0KGEuc2xpY2UoMCwgdGFnSW5kZXgpKTtcbiAgICAgICAgcmVtb3ZlZC5zZXQoYS5zbGljZSh0YWdJbmRleCArIGIubGVuZ3RoKSwgdGFnSW5kZXgpO1xuICAgICAgICByZXR1cm4gcmVtb3ZlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVpbnQ4YXJyYXktaGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/utils.js": /*!************************************************!*\ !*** ./node_modules/next/dist/server/utils.js ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cleanAmpPath: function() {\n return cleanAmpPath;\n },\n debounce: function() {\n return debounce;\n },\n isBlockedPage: function() {\n return isBlockedPage;\n }\n});\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"./node_modules/next/dist/shared/lib/constants.js\");\nfunction isBlockedPage(page) {\n return _constants.BLOCKED_PAGES.includes(page);\n}\nfunction cleanAmpPath(pathname) {\n if (pathname.match(/\\?amp=(y|yes|true|1)/)) {\n pathname = pathname.replace(/\\?amp=(y|yes|true|1)&?/, '?');\n }\n if (pathname.match(/&=(y|yes|true|1)/)) {\n pathname = pathname.replace(/&=(y|yes|true|1)/, '');\n }\n pathname = pathname.replace(/\\?$/, '');\n return pathname;\n}\nfunction debounce(fn, ms, maxWait = Infinity) {\n let timeoutId;\n // The time the debouncing function was first called during this debounce queue.\n let startTime = 0;\n // The time the debouncing function was last called.\n let lastCall = 0;\n // The arguments and this context of the last call to the debouncing function.\n let args, context;\n // A helper used to that either invokes the debounced function, or\n // reschedules the timer if a more recent call was made.\n function run() {\n const now = Date.now();\n const diff = lastCall + ms - now;\n // If the diff is non-positive, then we've waited at least `ms`\n // milliseconds since the last call. Or if we've waited for longer than the\n // max wait time, we must call the debounced function.\n if (diff <= 0 || startTime + maxWait >= now) {\n // It's important to clear the timeout id before invoking the debounced\n // function, in case the function calls the debouncing function again.\n timeoutId = undefined;\n fn.apply(context, args);\n } else {\n // Else, a new call was made after the original timer was scheduled. We\n // didn't clear the timeout (doing so is very slow), so now we need to\n // reschedule the timer for the time difference.\n timeoutId = setTimeout(run, diff);\n }\n }\n return function(...passedArgs) {\n // The arguments and this context of the most recent call are saved so the\n // debounced function can be invoked with them later.\n args = passedArgs;\n context = this;\n // Instead of constantly clearing and scheduling a timer, we record the\n // time of the last call. If a second call comes in before the timer fires,\n // then we'll reschedule in the run function. Doing this is considerably\n // faster.\n lastCall = Date.now();\n // Only schedule a new timer if we're not currently waiting.\n if (timeoutId === undefined) {\n startTime = lastCall;\n timeoutId = setTimeout(run, ms);\n }\n };\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG1CQUFtQixtQkFBTyxDQUFDLGlGQUF5QjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY2xlYW5BbXBQYXRoOiBudWxsLFxuICAgIGRlYm91bmNlOiBudWxsLFxuICAgIGlzQmxvY2tlZFBhZ2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY2xlYW5BbXBQYXRoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNsZWFuQW1wUGF0aDtcbiAgICB9LFxuICAgIGRlYm91bmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRlYm91bmNlO1xuICAgIH0sXG4gICAgaXNCbG9ja2VkUGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Jsb2NrZWRQYWdlO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIGlzQmxvY2tlZFBhZ2UocGFnZSkge1xuICAgIHJldHVybiBfY29uc3RhbnRzLkJMT0NLRURfUEFHRVMuaW5jbHVkZXMocGFnZSk7XG59XG5mdW5jdGlvbiBjbGVhbkFtcFBhdGgocGF0aG5hbWUpIHtcbiAgICBpZiAocGF0aG5hbWUubWF0Y2goL1xcP2FtcD0oeXx5ZXN8dHJ1ZXwxKS8pKSB7XG4gICAgICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvXFw/YW1wPSh5fHllc3x0cnVlfDEpJj8vLCAnPycpO1xuICAgIH1cbiAgICBpZiAocGF0aG5hbWUubWF0Y2goLyZhbXA9KHl8eWVzfHRydWV8MSkvKSkge1xuICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoLyZhbXA9KHl8eWVzfHRydWV8MSkvLCAnJyk7XG4gICAgfVxuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvXFw/JC8sICcnKTtcbiAgICByZXR1cm4gcGF0aG5hbWU7XG59XG5mdW5jdGlvbiBkZWJvdW5jZShmbiwgbXMsIG1heFdhaXQgPSBJbmZpbml0eSkge1xuICAgIGxldCB0aW1lb3V0SWQ7XG4gICAgLy8gVGhlIHRpbWUgdGhlIGRlYm91bmNpbmcgZnVuY3Rpb24gd2FzIGZpcnN0IGNhbGxlZCBkdXJpbmcgdGhpcyBkZWJvdW5jZSBxdWV1ZS5cbiAgICBsZXQgc3RhcnRUaW1lID0gMDtcbiAgICAvLyBUaGUgdGltZSB0aGUgZGVib3VuY2luZyBmdW5jdGlvbiB3YXMgbGFzdCBjYWxsZWQuXG4gICAgbGV0IGxhc3RDYWxsID0gMDtcbiAgICAvLyBUaGUgYXJndW1lbnRzIGFuZCB0aGlzIGNvbnRleHQgb2YgdGhlIGxhc3QgY2FsbCB0byB0aGUgZGVib3VuY2luZyBmdW5jdGlvbi5cbiAgICBsZXQgYXJncywgY29udGV4dDtcbiAgICAvLyBBIGhlbHBlciB1c2VkIHRvIHRoYXQgZWl0aGVyIGludm9rZXMgdGhlIGRlYm91bmNlZCBmdW5jdGlvbiwgb3JcbiAgICAvLyByZXNjaGVkdWxlcyB0aGUgdGltZXIgaWYgYSBtb3JlIHJlY2VudCBjYWxsIHdhcyBtYWRlLlxuICAgIGZ1bmN0aW9uIHJ1bigpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgZGlmZiA9IGxhc3RDYWxsICsgbXMgLSBub3c7XG4gICAgICAgIC8vIElmIHRoZSBkaWZmIGlzIG5vbi1wb3NpdGl2ZSwgdGhlbiB3ZSd2ZSB3YWl0ZWQgYXQgbGVhc3QgYG1zYFxuICAgICAgICAvLyBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGxhc3QgY2FsbC4gT3IgaWYgd2UndmUgd2FpdGVkIGZvciBsb25nZXIgdGhhbiB0aGVcbiAgICAgICAgLy8gbWF4IHdhaXQgdGltZSwgd2UgbXVzdCBjYWxsIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gICAgICAgIGlmIChkaWZmIDw9IDAgfHwgc3RhcnRUaW1lICsgbWF4V2FpdCA+PSBub3cpIHtcbiAgICAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGNsZWFyIHRoZSB0aW1lb3V0IGlkIGJlZm9yZSBpbnZva2luZyB0aGUgZGVib3VuY2VkXG4gICAgICAgICAgICAvLyBmdW5jdGlvbiwgaW4gY2FzZSB0aGUgZnVuY3Rpb24gY2FsbHMgdGhlIGRlYm91bmNpbmcgZnVuY3Rpb24gYWdhaW4uXG4gICAgICAgICAgICB0aW1lb3V0SWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBmbi5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEVsc2UsIGEgbmV3IGNhbGwgd2FzIG1hZGUgYWZ0ZXIgdGhlIG9yaWdpbmFsIHRpbWVyIHdhcyBzY2hlZHVsZWQuIFdlXG4gICAgICAgICAgICAvLyBkaWRuJ3QgY2xlYXIgdGhlIHRpbWVvdXQgKGRvaW5nIHNvIGlzIHZlcnkgc2xvdyksIHNvIG5vdyB3ZSBuZWVkIHRvXG4gICAgICAgICAgICAvLyByZXNjaGVkdWxlIHRoZSB0aW1lciBmb3IgdGhlIHRpbWUgZGlmZmVyZW5jZS5cbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQocnVuLCBkaWZmKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24oLi4ucGFzc2VkQXJncykge1xuICAgICAgICAvLyBUaGUgYXJndW1lbnRzIGFuZCB0aGlzIGNvbnRleHQgb2YgdGhlIG1vc3QgcmVjZW50IGNhbGwgYXJlIHNhdmVkIHNvIHRoZVxuICAgICAgICAvLyBkZWJvdW5jZWQgZnVuY3Rpb24gY2FuIGJlIGludm9rZWQgd2l0aCB0aGVtIGxhdGVyLlxuICAgICAgICBhcmdzID0gcGFzc2VkQXJncztcbiAgICAgICAgY29udGV4dCA9IHRoaXM7XG4gICAgICAgIC8vIEluc3RlYWQgb2YgY29uc3RhbnRseSBjbGVhcmluZyBhbmQgc2NoZWR1bGluZyBhIHRpbWVyLCB3ZSByZWNvcmQgdGhlXG4gICAgICAgIC8vIHRpbWUgb2YgdGhlIGxhc3QgY2FsbC4gSWYgYSBzZWNvbmQgY2FsbCBjb21lcyBpbiBiZWZvcmUgdGhlIHRpbWVyIGZpcmVzLFxuICAgICAgICAvLyB0aGVuIHdlJ2xsIHJlc2NoZWR1bGUgaW4gdGhlIHJ1biBmdW5jdGlvbi4gRG9pbmcgdGhpcyBpcyBjb25zaWRlcmFibHlcbiAgICAgICAgLy8gZmFzdGVyLlxuICAgICAgICBsYXN0Q2FsbCA9IERhdGUubm93KCk7XG4gICAgICAgIC8vIE9ubHkgc2NoZWR1bGUgYSBuZXcgdGltZXIgaWYgd2UncmUgbm90IGN1cnJlbnRseSB3YWl0aW5nLlxuICAgICAgICBpZiAodGltZW91dElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN0YXJ0VGltZSA9IGxhc3RDYWxsO1xuICAgICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dChydW4sIG1zKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/utils.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/web/error.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/server/web/error.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLGtCQUFrQixNQUFNO0FBQ3hCLGlDQUFpQyxLQUFLO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL2Vycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUGFnZVNpZ25hdHVyZUVycm9yOiBudWxsLFxuICAgIFJlbW92ZWRQYWdlRXJyb3I6IG51bGwsXG4gICAgUmVtb3ZlZFVBRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUGFnZVNpZ25hdHVyZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBhZ2VTaWduYXR1cmVFcnJvcjtcbiAgICB9LFxuICAgIFJlbW92ZWRQYWdlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVtb3ZlZFBhZ2VFcnJvcjtcbiAgICB9LFxuICAgIFJlbW92ZWRVQUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbW92ZWRVQUVycm9yO1xuICAgIH1cbn0pO1xuY2xhc3MgUGFnZVNpZ25hdHVyZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHsgcGFnZSB9KXtcbiAgICAgICAgc3VwZXIoYFRoZSBtaWRkbGV3YXJlIFwiJHtwYWdlfVwiIGFjY2VwdHMgYW4gYXN5bmMgQVBJIGRpcmVjdGx5IHdpdGggdGhlIGZvcm06XG4gIFxuICBleHBvcnQgZnVuY3Rpb24gbWlkZGxld2FyZShyZXF1ZXN0LCBldmVudCkge1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UucmVkaXJlY3QoJy9uZXctbG9jYXRpb24nKVxuICB9XG4gIFxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtbmV3LXNpZ25hdHVyZVxuICBgKTtcbiAgICB9XG59XG5jbGFzcyBSZW1vdmVkUGFnZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKGBUaGUgcmVxdWVzdC5wYWdlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIFxcYFVSTFBhdHRlcm5cXGAuXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZXF1ZXN0LXBhZ2VcbiAgYCk7XG4gICAgfVxufVxuY2xhc3MgUmVtb3ZlZFVBRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoYFRoZSByZXF1ZXN0LnVhIGhhcyBiZWVuIHJlbW92ZWQgaW4gZmF2b3VyIG9mIFxcYHVzZXJBZ2VudFxcYCBmdW5jdGlvbi5cbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXBhcnNlLXVzZXItYWdlbnRcbiAgYCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/web/error.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/web/next-url.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/web/next-url.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextURL\", ({\n enumerable: true,\n get: function() {\n return NextURL;\n }\n}));\nconst _detectdomainlocale = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _gethostname = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"./node_modules/next/dist/shared/lib/get-hostname.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'));\n}\nconst Internal = Symbol('NextURLInternal');\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: ''\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !undefined,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? '';\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? '';\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale \"${locale}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E597\",\n enumerable: false,\n configurable: true\n });\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvbmV4dC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw0QkFBNEIsbUJBQU8sQ0FBQyxvSEFBNEM7QUFDaEYsZ0NBQWdDLG1CQUFPLENBQUMsOElBQXlEO0FBQ2pHLHFCQUFxQixtQkFBTyxDQUFDLDBGQUErQjtBQUM1RCw2QkFBNkIsbUJBQU8sQ0FBQyx3SUFBc0Q7QUFDM0YscUdBQXFHLEVBQUU7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixTQUE4QztBQUN0RTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1R0FBdUcsT0FBTztBQUM5RztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGNBQWMsSUFBSSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNFQUFzRSxNQUFNO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvbmV4dC11cmwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOZXh0VVJMXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0VVJMO1xuICAgIH1cbn0pO1xuY29uc3QgX2RldGVjdGRvbWFpbmxvY2FsZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGVcIik7XG5jb25zdCBfZm9ybWF0bmV4dHBhdGhuYW1laW5mbyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvXCIpO1xuY29uc3QgX2dldGhvc3RuYW1lID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lXCIpO1xuY29uc3QgX2dldG5leHRwYXRobmFtZWluZm8gPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mb1wiKTtcbmNvbnN0IFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSA9IC8oPyFeaHR0cHM/OlxcL1xcLykoMTI3KD86XFwuKD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KSl7M318XFxbOjoxXFxdfGxvY2FsaG9zdCkvO1xuZnVuY3Rpb24gcGFyc2VVUkwodXJsLCBiYXNlKSB7XG4gICAgcmV0dXJuIG5ldyBVUkwoU3RyaW5nKHVybCkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsICdsb2NhbGhvc3QnKSwgYmFzZSAmJiBTdHJpbmcoYmFzZSkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsICdsb2NhbGhvc3QnKSk7XG59XG5jb25zdCBJbnRlcm5hbCA9IFN5bWJvbCgnTmV4dFVSTEludGVybmFsJyk7XG5jbGFzcyBOZXh0VVJMIHtcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCwgYmFzZU9yT3B0cywgb3B0cyl7XG4gICAgICAgIGxldCBiYXNlO1xuICAgICAgICBsZXQgb3B0aW9ucztcbiAgICAgICAgaWYgKHR5cGVvZiBiYXNlT3JPcHRzID09PSAnb2JqZWN0JyAmJiAncGF0aG5hbWUnIGluIGJhc2VPck9wdHMgfHwgdHlwZW9mIGJhc2VPck9wdHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBiYXNlID0gYmFzZU9yT3B0cztcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRzIHx8IHt9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdHMgfHwgYmFzZU9yT3B0cyB8fCB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW0ludGVybmFsXSA9IHtcbiAgICAgICAgICAgIHVybDogcGFyc2VVUkwoaW5wdXQsIGJhc2UgPz8gb3B0aW9ucy5iYXNlKSxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICBiYXNlUGF0aDogJydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hbmFseXplKCk7XG4gICAgfVxuICAgIGFuYWx5emUoKSB7XG4gICAgICAgIHZhciBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLCBfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUsIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMSwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMTtcbiAgICAgICAgY29uc3QgaW5mbyA9ICgwLCBfZ2V0bmV4dHBhdGhuYW1laW5mby5nZXROZXh0UGF0aG5hbWVJbmZvKSh0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUsIHtcbiAgICAgICAgICAgIG5leHRDb25maWc6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZyxcbiAgICAgICAgICAgIHBhcnNlRGF0YTogIXByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUsXG4gICAgICAgICAgICBpMThuUHJvdmlkZXI6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBob3N0bmFtZSA9ICgwLCBfZ2V0aG9zdG5hbWUuZ2V0SG9zdG5hbWUpKHRoaXNbSW50ZXJuYWxdLnVybCwgdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5oZWFkZXJzKTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXIgPyB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlci5kZXRlY3REb21haW5Mb2NhbGUoaG9zdG5hbWUpIDogKDAsIF9kZXRlY3Rkb21haW5sb2NhbGUuZGV0ZWN0RG9tYWluTG9jYWxlKSgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5kb21haW5zLCBob3N0bmFtZSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSAoKF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZSA9IHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZS5kZWZhdWx0TG9jYWxlKSB8fCAoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzEgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMS5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xLmRlZmF1bHRMb2NhbGUpO1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUgPSBpbmZvLnBhdGhuYW1lO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGggPSBpbmZvLmJhc2VQYXRoID8/ICcnO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5idWlsZElkID0gaW5mby5idWlsZElkO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5sb2NhbGUgPSBpbmZvLmxvY2FsZSA/PyBkZWZhdWx0TG9jYWxlO1xuICAgICAgICB0aGlzW0ludGVybmFsXS50cmFpbGluZ1NsYXNoID0gaW5mby50cmFpbGluZ1NsYXNoO1xuICAgIH1cbiAgICBmb3JtYXRQYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuICgwLCBfZm9ybWF0bmV4dHBhdGhuYW1laW5mby5mb3JtYXROZXh0UGF0aG5hbWVJbmZvKSh7XG4gICAgICAgICAgICBiYXNlUGF0aDogdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGgsXG4gICAgICAgICAgICBidWlsZElkOiB0aGlzW0ludGVybmFsXS5idWlsZElkLFxuICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogIXRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuZm9yY2VMb2NhbGUgPyB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzW0ludGVybmFsXS5sb2NhbGUsXG4gICAgICAgICAgICBwYXRobmFtZTogdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lLFxuICAgICAgICAgICAgdHJhaWxpbmdTbGFzaDogdGhpc1tJbnRlcm5hbF0udHJhaWxpbmdTbGFzaFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZm9ybWF0U2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaDtcbiAgICB9XG4gICAgZ2V0IGJ1aWxkSWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5idWlsZElkO1xuICAgIH1cbiAgICBzZXQgYnVpbGRJZChidWlsZElkKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQgPSBidWlsZElkO1xuICAgIH1cbiAgICBnZXQgbG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0ubG9jYWxlID8/ICcnO1xuICAgIH1cbiAgICBzZXQgbG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB2YXIgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZztcbiAgICAgICAgaWYgKCF0aGlzW0ludGVybmFsXS5sb2NhbGUgfHwgISgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5sb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkpKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IFR5cGVFcnJvcihgVGhlIE5leHRVUkwgY29uZmlndXJhdGlvbiBpbmNsdWRlcyBubyBsb2NhbGUgXCIke2xvY2FsZX1cImApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTk3XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW0ludGVybmFsXS5sb2NhbGUgPSBsb2NhbGU7XG4gICAgfVxuICAgIGdldCBkZWZhdWx0TG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZTtcbiAgICB9XG4gICAgZ2V0IGRvbWFpbkxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZTtcbiAgICB9XG4gICAgZ2V0IHNlYXJjaFBhcmFtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGdldCBob3N0KCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhvc3Q7XG4gICAgfVxuICAgIHNldCBob3N0KHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBob3N0bmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0bmFtZTtcbiAgICB9XG4gICAgc2V0IGhvc3RuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0bmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcG9ydCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wb3J0O1xuICAgIH1cbiAgICBzZXQgcG9ydCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucG9ydCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcHJvdG9jb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucHJvdG9jb2w7XG4gICAgfVxuICAgIHNldCBwcm90b2NvbCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucHJvdG9jb2wgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhyZWYoKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gdGhpcy5mb3JtYXRQYXRobmFtZSgpO1xuICAgICAgICBjb25zdCBzZWFyY2ggPSB0aGlzLmZvcm1hdFNlYXJjaCgpO1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5wcm90b2NvbH0vLyR7dGhpcy5ob3N0fSR7cGF0aG5hbWV9JHtzZWFyY2h9JHt0aGlzLmhhc2h9YDtcbiAgICB9XG4gICAgc2V0IGhyZWYodXJsKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybCA9IHBhcnNlVVJMKHVybCk7XG4gICAgICAgIHRoaXMuYW5hbHl6ZSgpO1xuICAgIH1cbiAgICBnZXQgb3JpZ2luKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLm9yaWdpbjtcbiAgICB9XG4gICAgZ2V0IHBhdGhuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lO1xuICAgIH1cbiAgICBzZXQgcGF0aG5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBoYXNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhhc2g7XG4gICAgfVxuICAgIHNldCBoYXNoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5oYXNoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBzZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoO1xuICAgIH1cbiAgICBzZXQgc2VhcmNoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2ggPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHBhc3N3b3JkKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBhc3N3b3JkO1xuICAgIH1cbiAgICBzZXQgcGFzc3dvcmQodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhc3N3b3JkID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB1c2VybmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC51c2VybmFtZTtcbiAgICB9XG4gICAgc2V0IHVzZXJuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC51c2VybmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgYmFzZVBhdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5iYXNlUGF0aDtcbiAgICB9XG4gICAgc2V0IGJhc2VQYXRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoID0gdmFsdWUuc3RhcnRzV2l0aCgnLycpID8gdmFsdWUgOiBgLyR7dmFsdWV9YDtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhyZWY7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHJlZjtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoJ2VkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbScpXSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHRoaXMuaHJlZixcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5vcmlnaW4sXG4gICAgICAgICAgICBwcm90b2NvbDogdGhpcy5wcm90b2NvbCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiB0aGlzLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXG4gICAgICAgICAgICBob3N0OiB0aGlzLmhvc3QsXG4gICAgICAgICAgICBob3N0bmFtZTogdGhpcy5ob3N0bmFtZSxcbiAgICAgICAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgICAgICAgIHBhdGhuYW1lOiB0aGlzLnBhdGhuYW1lLFxuICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaCxcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtczogdGhpcy5zZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICBoYXNoOiB0aGlzLmhhc2hcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFVSTChTdHJpbmcodGhpcyksIHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC11cmwuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/web/next-url.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js": /*!***********************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NextRequestAdapter: function() {\n return NextRequestAdapter;\n },\n ResponseAborted: function() {\n return ResponseAborted;\n },\n ResponseAbortedName: function() {\n return ResponseAbortedName;\n },\n createAbortController: function() {\n return createAbortController;\n },\n signalFromNodeResponse: function() {\n return signalFromNodeResponse;\n }\n});\nconst _requestmeta = __webpack_require__(/*! ../../../request-meta */ \"./node_modules/next/dist/server/request-meta.js\");\nconst _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/server/web/utils.js\");\nconst _request = __webpack_require__(/*! ../request */ \"./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _helpers = __webpack_require__(/*! ../../../base-http/helpers */ \"./node_modules/next/dist/server/base-http/helpers.js\");\nconst ResponseAbortedName = 'ResponseAborted';\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\nfunction createAbortController(response) {\n const controller = new AbortController();\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once('close', ()=>{\n if (response.writableFinished) return;\n controller.abort(new ResponseAborted());\n });\n return controller;\n}\nfunction signalFromNodeResponse(response) {\n const { errored, destroyed } = response;\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted());\n }\n const { signal } = createAbortController(response);\n return signal;\n}\nclass NextRequestAdapter {\n static fromBaseNextRequest(request, signal) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n false) {} else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextRequest)(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), \"__NEXT_ERROR_CODE\", {\n value: \"E345\",\n enumerable: false,\n configurable: true\n });\n }\n }\n static fromNodeNextRequest(request, signal) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body;\n }\n let url;\n if (request.url.startsWith('http')) {\n url = new URL(request.url);\n } else {\n // Grab the full URL from the request metadata.\n const base = (0, _requestmeta.getRequestMeta)(request, 'initURL');\n if (!base || !base.startsWith('http')) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, 'http://n');\n } else {\n url = new URL(request.url, base);\n }\n }\n return new _request.NextRequest(url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\n });\n }\n static fromWebNextRequest(request) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD') {\n body = request.body;\n }\n return new _request.NextRequest(request.url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLDhFQUF1QjtBQUNwRCxlQUFlLG1CQUFPLENBQUMsaUVBQWE7QUFDcEMsaUJBQWlCLG1CQUFPLENBQUMsaUZBQVk7QUFDckMsaUJBQWlCLG1CQUFPLENBQUMsd0ZBQTRCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBOEUsRUFBRSxFQUUvRSxDQUFDO0FBQ1Y7QUFDQSxRQUFRLEtBQW1DO0FBQzNDO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBOZXh0UmVxdWVzdEFkYXB0ZXI6IG51bGwsXG4gICAgUmVzcG9uc2VBYm9ydGVkOiBudWxsLFxuICAgIFJlc3BvbnNlQWJvcnRlZE5hbWU6IG51bGwsXG4gICAgY3JlYXRlQWJvcnRDb250cm9sbGVyOiBudWxsLFxuICAgIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTmV4dFJlcXVlc3RBZGFwdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlcjtcbiAgICB9LFxuICAgIFJlc3BvbnNlQWJvcnRlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUFib3J0ZWQ7XG4gICAgfSxcbiAgICBSZXNwb25zZUFib3J0ZWROYW1lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc3BvbnNlQWJvcnRlZE5hbWU7XG4gICAgfSxcbiAgICBjcmVhdGVBYm9ydENvbnRyb2xsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQWJvcnRDb250cm9sbGVyO1xuICAgIH0sXG4gICAgc2lnbmFsRnJvbU5vZGVSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzaWduYWxGcm9tTm9kZVJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlcXVlc3RtZXRhID0gcmVxdWlyZShcIi4uLy4uLy4uL3JlcXVlc3QtbWV0YVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi8uLi91dGlsc1wiKTtcbmNvbnN0IF9yZXF1ZXN0ID0gcmVxdWlyZShcIi4uL3JlcXVlc3RcIik7XG5jb25zdCBfaGVscGVycyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9iYXNlLWh0dHAvaGVscGVyc1wiKTtcbmNvbnN0IFJlc3BvbnNlQWJvcnRlZE5hbWUgPSAnUmVzcG9uc2VBYm9ydGVkJztcbmNsYXNzIFJlc3BvbnNlQWJvcnRlZCBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKXtcbiAgICAgICAgc3VwZXIoLi4uYXJncyksIHRoaXMubmFtZSA9IFJlc3BvbnNlQWJvcnRlZE5hbWU7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAvLyBJZiBgZmluaXNoYCBmaXJlcyBmaXJzdCwgdGhlbiBgcmVzLmVuZCgpYCBoYXMgYmVlbiBjYWxsZWQgYW5kIHRoZSBjbG9zZSBpc1xuICAgIC8vIGp1c3QgdXMgZmluaXNoaW5nIHRoZSBzdHJlYW0gb24gb3VyIHNpZGUuIElmIGBjbG9zZWAgZmlyZXMgZmlyc3QsIHRoZW4gd2VcbiAgICAvLyBrbm93IHRoZSBjbGllbnQgZGlzY29ubmVjdGVkIGJlZm9yZSB3ZSBmaW5pc2hlZC5cbiAgICByZXNwb25zZS5vbmNlKCdjbG9zZScsICgpPT57XG4gICAgICAgIGlmIChyZXNwb25zZS53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIGNvbnRyb2xsZXIuYWJvcnQobmV3IFJlc3BvbnNlQWJvcnRlZCgpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29udHJvbGxlcjtcbn1cbmZ1bmN0aW9uIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICBjb25zdCB7IGVycm9yZWQsIGRlc3Ryb3llZCB9ID0gcmVzcG9uc2U7XG4gICAgaWYgKGVycm9yZWQgfHwgZGVzdHJveWVkKSB7XG4gICAgICAgIHJldHVybiBBYm9ydFNpZ25hbC5hYm9ydChlcnJvcmVkID8/IG5ldyBSZXNwb25zZUFib3J0ZWQoKSk7XG4gICAgfVxuICAgIGNvbnN0IHsgc2lnbmFsIH0gPSBjcmVhdGVBYm9ydENvbnRyb2xsZXIocmVzcG9uc2UpO1xuICAgIHJldHVybiBzaWduYWw7XG59XG5jbGFzcyBOZXh0UmVxdWVzdEFkYXB0ZXIge1xuICAgIHN0YXRpYyBmcm9tQmFzZU5leHRSZXF1ZXN0KHJlcXVlc3QsIHNpZ25hbCkge1xuICAgICAgICBpZiAoLy8gVGhlIHR5cGUgY2hlY2sgaGVyZSBlbnN1cmVzIHRoYXQgYHJlcWAgaXMgY29ycmVjdGx5IHR5cGVkLCBhbmQgdGhlXG4gICAgICAgIC8vIGVudmlyb25tZW50IHZhcmlhYmxlIGNoZWNrIHByb3ZpZGVzIGRlYWQgY29kZSBlbGltaW5hdGlvbi5cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzV2ViTmV4dFJlcXVlc3QpKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21XZWJOZXh0UmVxdWVzdChyZXF1ZXN0KTtcbiAgICAgICAgfSBlbHNlIGlmICgvLyBUaGUgdHlwZSBjaGVjayBoZXJlIGVuc3VyZXMgdGhhdCBgcmVxYCBpcyBjb3JyZWN0bHkgdHlwZWQsIGFuZCB0aGVcbiAgICAgICAgLy8gZW52aXJvbm1lbnQgdmFyaWFibGUgY2hlY2sgcHJvdmlkZXMgZGVhZCBjb2RlIGVsaW1pbmF0aW9uLlxuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiAoMCwgX2hlbHBlcnMuaXNOb2RlTmV4dFJlcXVlc3QpKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21Ob2RlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogVW5zdXBwb3J0ZWQgTmV4dFJlcXVlc3QgdHlwZScpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMzQ1XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgZnJvbU5vZGVOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpIHtcbiAgICAgICAgLy8gSEVBRCBhbmQgR0VUIHJlcXVlc3RzIGNhbiBub3QgaGF2ZSBhIGJvZHkuXG4gICAgICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnICYmIHJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIHRoaXMgaXMgaGFuZGxlZCBieSB1bmRpY2ksIHdoZW4gc3RyZWFtcy93ZWIgbGFuZCB1c2UgaXQgaW5zdGVhZFxuICAgICAgICAgICAgYm9keSA9IHJlcXVlc3QuYm9keTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdXJsO1xuICAgICAgICBpZiAocmVxdWVzdC51cmwuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEdyYWIgdGhlIGZ1bGwgVVJMIGZyb20gdGhlIHJlcXVlc3QgbWV0YWRhdGEuXG4gICAgICAgICAgICBjb25zdCBiYXNlID0gKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxdWVzdCwgJ2luaXRVUkwnKTtcbiAgICAgICAgICAgIGlmICghYmFzZSB8fCAhYmFzZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBVUkwgY29uc3RydWN0aW9uIHJlbGllcyBvbiB0aGUgZmFjdCB0aGF0IHRoZSBVUkwgcHJvdmlkZWRcbiAgICAgICAgICAgICAgICAvLyBpcyBhYnNvbHV0ZSwgd2UgbmVlZCB0byBwcm92aWRlIGEgYmFzZSBVUkwuIFdlIGNhbid0IHVzZSB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgICAgIC8vIFVSTCBiZWNhdXNlIGl0J3MgcmVsYXRpdmUsIHNvIHdlIHVzZSBhIGR1bW15IFVSTCBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgIHVybCA9IG5ldyBVUkwocmVxdWVzdC51cmwsICdodHRwOi8vbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCBiYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IF9yZXF1ZXN0Lk5leHRSZXF1ZXN0KHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMuZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShyZXF1ZXN0LmhlYWRlcnMpLFxuICAgICAgICAgICAgZHVwbGV4OiAnaGFsZicsXG4gICAgICAgICAgICBzaWduYWwsXG4gICAgICAgICAgICAvLyBnZW9cbiAgICAgICAgICAgIC8vIGlwXG4gICAgICAgICAgICAvLyBuZXh0Q29uZmlnXG4gICAgICAgICAgICAvLyBib2R5IGNhbiBub3QgYmUgcGFzc2VkIGlmIHJlcXVlc3Qgd2FzIGFib3J0ZWRcbiAgICAgICAgICAgIC8vIG9yIHdlIGdldCBhIFJlcXVlc3QgYm9keSB3YXMgZGlzdHVyYmVkIGVycm9yXG4gICAgICAgICAgICAuLi5zaWduYWwuYWJvcnRlZCA/IHt9IDoge1xuICAgICAgICAgICAgICAgIGJvZHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tV2ViTmV4dFJlcXVlc3QocmVxdWVzdCkge1xuICAgICAgICAvLyBIRUFEIGFuZCBHRVQgcmVxdWVzdHMgY2FuIG5vdCBoYXZlIGEgYm9keS5cbiAgICAgICAgbGV0IGJvZHkgPSBudWxsO1xuICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgIT09ICdHRVQnICYmIHJlcXVlc3QubWV0aG9kICE9PSAnSEVBRCcpIHtcbiAgICAgICAgICAgIGJvZHkgPSByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBfcmVxdWVzdC5OZXh0UmVxdWVzdChyZXF1ZXN0LnVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMuZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShyZXF1ZXN0LmhlYWRlcnMpLFxuICAgICAgICAgICAgZHVwbGV4OiAnaGFsZicsXG4gICAgICAgICAgICBzaWduYWw6IHJlcXVlc3QucmVxdWVzdC5zaWduYWwsXG4gICAgICAgICAgICAvLyBnZW9cbiAgICAgICAgICAgIC8vIGlwXG4gICAgICAgICAgICAvLyBuZXh0Q29uZmlnXG4gICAgICAgICAgICAvLyBib2R5IGNhbiBub3QgYmUgcGFzc2VkIGlmIHJlcXVlc3Qgd2FzIGFib3J0ZWRcbiAgICAgICAgICAgIC8vIG9yIHdlIGdldCBhIFJlcXVlc3QgYm9keSB3YXMgZGlzdHVyYmVkIGVycm9yXG4gICAgICAgICAgICAuLi5yZXF1ZXN0LnJlcXVlc3Quc2lnbmFsLmFib3J0ZWQgPyB7fSA6IHtcbiAgICAgICAgICAgICAgICBib2R5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC1yZXF1ZXN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/web/spec-extension/cookies.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/cookies.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n\n//# sourceMappingURL=cookies.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vY29va2llcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLGtIQUEwQzs7QUFFbkUiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2Nvb2tpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBSZXF1ZXN0Q29va2llczogbnVsbCxcbiAgICBSZXNwb25zZUNvb2tpZXM6IG51bGwsXG4gICAgc3RyaW5naWZ5Q29va2llOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFJlcXVlc3RDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLlJlcXVlc3RDb29raWVzO1xuICAgIH0sXG4gICAgUmVzcG9uc2VDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLlJlc3BvbnNlQ29va2llcztcbiAgICB9LFxuICAgIHN0cmluZ2lmeUNvb2tpZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29va2llcy5zdHJpbmdpZnlDb29raWU7XG4gICAgfVxufSk7XG5jb25zdCBfY29va2llcyA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzXCIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb29raWVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/web/spec-extension/cookies.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/web/spec-extension/request.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/request.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/server/web/utils.js\");\nconst _error = __webpack_require__(/*! ../error */ \"./node_modules/next/dist/server/web/error.js\");\nconst _cookies = __webpack_require__(/*! ./cookies */ \"./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal request');\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== 'string' && 'url' in input ? input.url : String(input);\n (0, _utils.validateURL)(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (true) {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVxdWVzdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQyxvRUFBYTtBQUN0QyxlQUFlLG1CQUFPLENBQUMsOERBQVU7QUFDakMsZUFBZSxtQkFBTyxDQUFDLDhEQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLGdGQUFXO0FBQ3BDO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxJQUFtQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLE1BQThDLEdBQUcsQ0FBRztBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSU5URVJOQUxTOiBudWxsLFxuICAgIE5leHRSZXF1ZXN0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIElOVEVSTkFMUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlRFUk5BTFM7XG4gICAgfSxcbiAgICBOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVxdWVzdDtcbiAgICB9XG59KTtcbmNvbnN0IF9uZXh0dXJsID0gcmVxdWlyZShcIi4uL25leHQtdXJsXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xuY29uc3QgX2Vycm9yID0gcmVxdWlyZShcIi4uL2Vycm9yXCIpO1xuY29uc3QgX2Nvb2tpZXMgPSByZXF1aXJlKFwiLi9jb29raWVzXCIpO1xuY29uc3QgSU5URVJOQUxTID0gU3ltYm9sKCdpbnRlcm5hbCByZXF1ZXN0Jyk7XG5jbGFzcyBOZXh0UmVxdWVzdCBleHRlbmRzIFJlcXVlc3Qge1xuICAgIGNvbnN0cnVjdG9yKGlucHV0LCBpbml0ID0ge30pe1xuICAgICAgICBjb25zdCB1cmwgPSB0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmICd1cmwnIGluIGlucHV0ID8gaW5wdXQudXJsIDogU3RyaW5nKGlucHV0KTtcbiAgICAgICAgKDAsIF91dGlscy52YWxpZGF0ZVVSTCkodXJsKTtcbiAgICAgICAgLy8gbm9kZSBSZXF1ZXN0IGluc3RhbmNlIHJlcXVpcmVzIGR1cGxleCBvcHRpb24gd2hlbiBhIGJvZHlcbiAgICAgICAgLy8gaXMgcHJlc2VudCBvciBpdCBlcnJvcnMsIHdlIGRvbid0IGhhbmRsZSB0aGlzIGZvclxuICAgICAgICAvLyBSZXF1ZXN0IGJlaW5nIHBhc3NlZCBpbiBzaW5jZSBpdCB3b3VsZCBoYXZlIGFscmVhZHlcbiAgICAgICAgLy8gZXJyb3JlZCBpZiB0aGlzIHdhc24ndCBjb25maWd1cmVkXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJykge1xuICAgICAgICAgICAgaWYgKGluaXQuYm9keSAmJiBpbml0LmR1cGxleCAhPT0gJ2hhbGYnKSB7XG4gICAgICAgICAgICAgICAgaW5pdC5kdXBsZXggPSAnaGFsZic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCkgc3VwZXIoaW5wdXQsIGluaXQpO1xuICAgICAgICBlbHNlIHN1cGVyKHVybCwgaW5pdCk7XG4gICAgICAgIGNvbnN0IG5leHRVcmwgPSBuZXcgX25leHR1cmwuTmV4dFVSTCh1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMudG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykodGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIG5leHRDb25maWc6IGluaXQubmV4dENvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpc1tJTlRFUk5BTFNdID0ge1xuICAgICAgICAgICAgY29va2llczogbmV3IF9jb29raWVzLlJlcXVlc3RDb29raWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBuZXh0VXJsLFxuICAgICAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5fX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFID8gdXJsIDogbmV4dFVybC50b1N0cmluZygpXG4gICAgICAgIH07XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICBuZXh0VXJsOiB0aGlzLm5leHRVcmwsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVxdWVzdFxuICAgICAgICAgICAgYm9keVVzZWQ6IHRoaXMuYm9keVVzZWQsXG4gICAgICAgICAgICBjYWNoZTogdGhpcy5jYWNoZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiB0aGlzLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZGVzdGluYXRpb24sXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIGludGVncml0eTogdGhpcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICBrZWVwYWxpdmU6IHRoaXMua2VlcGFsaXZlLFxuICAgICAgICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICAgIHJlZGlyZWN0OiB0aGlzLnJlZGlyZWN0LFxuICAgICAgICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXIsXG4gICAgICAgICAgICByZWZlcnJlclBvbGljeTogdGhpcy5yZWZlcnJlclBvbGljeSxcbiAgICAgICAgICAgIHNpZ25hbDogdGhpcy5zaWduYWxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgZ2V0IG5leHRVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10ubmV4dFVybDtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGBwYWdlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBgVVJMUGF0dGVybmAuXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZXF1ZXN0LXBhZ2VcbiAgICovIGdldCBwYWdlKCkge1xuICAgICAgICB0aHJvdyBuZXcgX2Vycm9yLlJlbW92ZWRQYWdlRXJyb3IoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGB1YWAgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgXFxgdXNlckFnZW50XFxgIGZ1bmN0aW9uLlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcGFyc2UtdXNlci1hZ2VudFxuICAgKi8gZ2V0IHVhKCkge1xuICAgICAgICB0aHJvdyBuZXcgX2Vycm9yLlJlbW92ZWRVQUVycm9yKCk7XG4gICAgfVxuICAgIGdldCB1cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10udXJsO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/web/spec-extension/request.js\n"); /***/ }), /***/ "./node_modules/next/dist/server/web/utils.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/server/web/utils.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"./node_modules/next/dist/lib/constants.js\");\nfunction fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === 'undefined') continue;\n if (typeof v === 'number') {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\nfunction splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== '=' && ch !== ';' && ch !== ',';\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\nfunction toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw Object.defineProperty(new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E61\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction normalizeNextQueryParam(key) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsc0VBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0U7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sbUVBQW1FLFlBQVk7QUFDL0U7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBudWxsLFxuICAgIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtOiBudWxsLFxuICAgIHNwbGl0Q29va2llc1N0cmluZzogbnVsbCxcbiAgICB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBudWxsLFxuICAgIHZhbGlkYXRlVVJMOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcbiAgICBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTtcbiAgICB9LFxuICAgIHNwbGl0Q29va2llc1N0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzcGxpdENvb2tpZXNTdHJpbmc7XG4gICAgfSxcbiAgICB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcbiAgICB2YWxpZGF0ZVVSTDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZVVSTDtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhub2RlSGVhZGVycykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub2RlSGVhZGVycykpe1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChsZXQgdiBvZiB2YWx1ZXMpe1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdiA9IHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKGtleSwgdik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG59XG5mdW5jdGlvbiBzcGxpdENvb2tpZXNTdHJpbmcoY29va2llc1N0cmluZykge1xuICAgIHZhciBjb29raWVzU3RyaW5ncyA9IFtdO1xuICAgIHZhciBwb3MgPSAwO1xuICAgIHZhciBzdGFydDtcbiAgICB2YXIgY2g7XG4gICAgdmFyIGxhc3RDb21tYTtcbiAgICB2YXIgbmV4dFN0YXJ0O1xuICAgIHZhciBjb29raWVzU2VwYXJhdG9yRm91bmQ7XG4gICAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpe1xuICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3RTcGVjaWFsQ2hhcigpIHtcbiAgICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgICByZXR1cm4gY2ggIT09ICc9JyAmJiBjaCAhPT0gJzsnICYmIGNoICE9PSAnLCc7XG4gICAgfVxuICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoKXtcbiAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IGZhbHNlO1xuICAgICAgICB3aGlsZShza2lwV2hpdGVzcGFjZSgpKXtcbiAgICAgICAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJywnKSB7XG4gICAgICAgICAgICAgICAgLy8gJywnIGlzIGEgY29va2llIHNlcGFyYXRvciBpZiB3ZSBoYXZlIGxhdGVyIGZpcnN0ICc9Jywgbm90ICc7JyBvciAnLCdcbiAgICAgICAgICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICAgICAgc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgICAgICAgICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgbm90U3BlY2lhbENoYXIoKSl7XG4gICAgICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50bHkgc3BlY2lhbCBjaGFyYWN0ZXJcbiAgICAgICAgICAgICAgICBpZiAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgY29va2llc1N0cmluZy5jaGFyQXQocG9zKSA9PT0gJz0nKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGZvdW5kIGNvb2tpZXMgc2VwYXJhdG9yXG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIC8vIHBvcyBpcyBpbnNpZGUgdGhlIG5leHQgY29va2llLCBzbyBiYWNrIHVwIGFuZCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IG5leHRTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluIHBhcmFtICcsJyBvciBwYXJhbSBzZXBhcmF0b3IgJzsnLFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb250aW51ZSBmcm9tIHRoYXQgY29tbWFcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29va2llc1N0cmluZ3M7XG59XG5mdW5jdGlvbiB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBjb25zdCBub2RlSGVhZGVycyA9IHt9O1xuICAgIGNvbnN0IGNvb2tpZXMgPSBbXTtcbiAgICBpZiAoaGVhZGVycykge1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBoZWFkZXJzLmVudHJpZXMoKSl7XG4gICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdzZXQtY29va2llJykge1xuICAgICAgICAgICAgICAgIC8vIFdlIG1heSBoYXZlIGdvdHRlbiBhIGNvbW1hIGpvaW5lZCBzdHJpbmcgb2YgY29va2llcywgb3IgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAvLyBzZXQtY29va2llIGhlYWRlcnMuIFdlIG5lZWQgdG8gbWVyZ2UgdGhlbSBpbnRvIG9uZSBoZWFkZXIgYXJyYXlcbiAgICAgICAgICAgICAgICAvLyB0byByZXByZXNlbnQgYWxsIHRoZSBjb29raWVzLlxuICAgICAgICAgICAgICAgIGNvb2tpZXMucHVzaCguLi5zcGxpdENvb2tpZXNTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgICAgICBub2RlSGVhZGVyc1trZXldID0gY29va2llcy5sZW5ndGggPT09IDEgPyBjb29raWVzWzBdIDogY29va2llcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2RlSGVhZGVycztcbn1cbmZ1bmN0aW9uIHZhbGlkYXRlVVJMKHVybCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcobmV3IFVSTChTdHJpbmcodXJsKSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYFVSTCBpcyBtYWxmb3JtZWQgXCIke1N0cmluZyh1cmwpfVwiLiBQbGVhc2UgdXNlIG9ubHkgYWJzb2x1dGUgVVJMcyAtIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVsYXRpdmUtdXJsc2AsIHtcbiAgICAgICAgICAgIGNhdXNlOiBlcnJvclxuICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFNjFcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtKGtleSkge1xuICAgIGNvbnN0IHByZWZpeGVzID0gW1xuICAgICAgICBfY29uc3RhbnRzLk5FWFRfUVVFUllfUEFSQU1fUFJFRklYLFxuICAgICAgICBfY29uc3RhbnRzLk5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVhcbiAgICBdO1xuICAgIGZvciAoY29uc3QgcHJlZml4IG9mIHByZWZpeGVzKXtcbiAgICAgICAgaWYgKGtleSAhPT0gcHJlZml4ICYmIGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgIHJldHVybiBrZXkuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/web/utils.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/amp-mode.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/shared/lib/amp-mode.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLW1vZGUuanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFlBQVk7SUFBQSxNQUMxQkMsV0FBVyxLQUFLLEVBQ2hCQyxTQUFTLEtBQUssRUFDZEMsV0FBVyxLQUFLLEVBQ2pCLEdBSjJCLG1CQUl4QixDQUFDLElBSnVCO0lBSzFCLE9BQU9GLFlBQWFDLFVBQVVDO0FBQ2hDIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9hbXAtbW9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNJbkFtcE1vZGUoe1xuICBhbXBGaXJzdCA9IGZhbHNlLFxuICBoeWJyaWQgPSBmYWxzZSxcbiAgaGFzUXVlcnkgPSBmYWxzZSxcbn0gPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYW1wRmlyc3QgfHwgKGh5YnJpZCAmJiBoYXNRdWVyeSlcbn1cbiJdLCJuYW1lcyI6WyJpc0luQW1wTW9kZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-mode.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/constants.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/constants.js ***! \********************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n AdapterOutputType: function() {\n return AdapterOutputType;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_BUILD_MANIFEST: function() {\n return TURBOPACK_CLIENT_BUILD_MANIFEST;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nvar AdapterOutputType = /*#__PURE__*/ function(AdapterOutputType) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ AdapterOutputType[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ AdapterOutputType[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ AdapterOutputType[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ AdapterOutputType[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `PRERENDER` represents an ISR enabled route that might\n * have a seeded cache entry or fallback generated during build\n */ AdapterOutputType[\"PRERENDER\"] = \"PRERENDER\";\n /**\n * `STATIC_FILE` represents a static file (ie /_next/static)\n */ AdapterOutputType[\"STATIC_FILE\"] = \"STATIC_FILE\";\n /**\n * `MIDDLEWARE` represents the middleware output if present\n */ AdapterOutputType[\"MIDDLEWARE\"] = \"MIDDLEWARE\";\n return AdapterOutputType;\n}({});\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst TURBOPACK_CLIENT_BUILD_MANIFEST = 'client-build-manifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTBFYUEsa0JBQWtCO2VBQWxCQTs7SUFrREFDLG9CQUFvQjtlQUFwQkE7O0lBckRBQyxrQkFBa0I7ZUFBbEJBOztJQUNBQyx3QkFBd0I7ZUFBeEJBOztJQTFEREMsaUJBQWlCO2VBQWpCQTs7SUF5RkNDLDBCQUEwQjtlQUExQkE7O0lBTEFDLGFBQWE7ZUFBYkE7O0lBREFDLGFBQWE7ZUFBYkE7O0lBeEJBQyxjQUFjO2VBQWRBOztJQTBCQUMsd0JBQXdCO2VBQXhCQTs7SUFPQUMseUJBQXlCO2VBQXpCQTs7SUFOQUMsd0JBQXdCO2VBQXhCQTs7SUE0QkFDLCtCQUErQjtlQUEvQkE7O0lBUEFDLGdDQUFnQztlQUFoQ0E7O0lBQ0FDLG9DQUFvQztlQUFwQ0E7O0lBVUFDLHFDQUFxQztlQUFyQ0E7O0lBQ0FDLDRDQUE0QztlQUE1Q0E7O0lBUEFDLHlDQUF5QztlQUF6Q0E7O0lBSUFDLG1DQUFtQztlQUFuQ0E7O0lBN0VBQyxnQkFBZ0I7ZUFBaEJBOztJQS9DQUMsY0FBYztlQUFkQTs7SUFzRkFDLFlBQVk7ZUFBWkE7O0lBNENBQyx1QkFBdUI7ZUFBdkJBOztJQVVBQyx1QkFBdUI7ZUFBdkJBOztJQU5BQyxrQkFBa0I7ZUFBbEJBOztJQW5EQUMsOEJBQThCO2VBQTlCQTs7SUFMQUMseUJBQXlCO2VBQXpCQTs7SUFrQ0FDLG9CQUFvQjtlQUFwQkE7O0lBbUJBQyxvQkFBb0I7ZUFBcEJBOztJQTZCQUMsMEJBQTBCO2VBQTFCQTs7SUF2RkFDLGFBQWE7ZUFBYkE7O0lBREFDLGFBQWE7ZUFBYkE7O0lBSEFDLHlCQUF5QjtlQUF6QkE7O0lBT0FDLGVBQWU7ZUFBZkE7O0lBaUNBQyxtQ0FBbUM7ZUFBbkNBOztJQUxBQyx5QkFBeUI7ZUFBekJBOztJQXpCQUMsbUJBQW1CO2VBQW5CQTs7SUEyQkFDLGtDQUFrQztlQUFsQ0E7O0lBOUdKQywwQkFB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QUFNRSxxQ0FDWDtBQUVLLE1BQU1ILHNDQUNYO0FBRUssTUFBTVAsdUJBQXVCO0FBRzdCLE1BQU1kLG1DQUFvQztBQUMxQyxNQUFNQyx1Q0FBd0MsS0FBRUQsbUNBQWlDO0FBRWpGLE1BQU1aLHVCQUF1QjtBQUU3QixNQUFNZ0IsNENBQTZDO0FBRW5ELE1BQU1MLGtDQUFtQztBQUV6QyxNQUFNTSxzQ0FBdUM7QUFFN0MsTUFBTUgsd0NBQXdDO0FBQzlDLE1BQU1DLCtDQUErQ3VELE9BQzFEeEQ7QUFFSyxNQUFNTywwQkFBMEI7QUFDaEMsTUFBTU0sdUJBQXVCO0FBQzdCLE1BQU00QixrQkFBa0I7QUFDeEIsTUFBTUYsa0JBQWtCO0FBQ3hCLE1BQU05QixxQkFBcUI7SUFDaENnRCxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNcEQsMEJBQTBCO0lBQ3JDaUQsTUFBTTtJQUNOQyxlQUFlO0lBQ2ZDLFlBQVk7SUFDWkMsWUFBWTtBQUNkO0FBQ08sTUFBTWxCLHNCQUFzQjtJQUFDO0NBQU87QUFDcEMsTUFBTUksdUJBQXVCO0FBRTdCLE1BQU1HLG1DQUFtQztBQUV6QyxNQUFNYixtQkFBbUI7SUFDOUJpQixRQUFRO0lBQ1JDLFFBQVE7QUFDVjtBQU1PLE1BQU14Qyw2QkFBNkI7SUFDeEM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVNLE1BQU0rQixxQkFBcUIsSUFBSWdCLElBQVk7SUFDaEQvRDtJQUNBSTtJQUNBTDtJQUNBRTtDQUNEIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIGZyb20gJy4vbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQnXG5cbmV4cG9ydCB7IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIH1cblxuZXhwb3J0IHR5cGUgVmFsdWVPZjxUPiA9IFJlcXVpcmVkPFQ+W2tleW9mIFRdXG5cbmV4cG9ydCBjb25zdCBDT01QSUxFUl9OQU1FUyA9IHtcbiAgY2xpZW50OiAnY2xpZW50JyxcbiAgc2VydmVyOiAnc2VydmVyJyxcbiAgZWRnZVNlcnZlcjogJ2VkZ2Utc2VydmVyJyxcbn0gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgQ29tcGlsZXJOYW1lVmFsdWVzID0gVmFsdWVPZjx0eXBlb2YgQ09NUElMRVJfTkFNRVM+XG5cbmV4cG9ydCBlbnVtIEFkYXB0ZXJPdXRwdXRUeXBlIHtcbiAgLyoqXG4gICAqIGBQQUdFU2AgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBwYWdlcy9gLlxuICAgKi9cbiAgUEFHRVMgPSAnUEFHRVMnLFxuXG4gIC8qKlxuICAgKiBgUEFHRVNfQVBJYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyB1bmRlciBgcGFnZXMvYXBpL2AuXG4gICAqL1xuICBQQUdFU19BUEkgPSAnUEFHRVNfQVBJJyxcbiAgLyoqXG4gICAqIGBBUFBfUEFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcGFnZS57aix0fXN7LHh9YC5cbiAgICovXG4gIEFQUF9QQUdFID0gJ0FQUF9QQUdFJyxcblxuICAvKipcbiAgICogYEFQUF9ST1VURWAgcmVwcmVzZW50cyBhbGwgdGhlIEFQSSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHJvdXRlLntqLHR9c3sseH1gLlxuICAgKi9cbiAgQVBQX1JPVVRFID0gJ0FQUF9ST1VURScsXG5cbiAgLyoqXG4gICAqIGBQUkVSRU5ERVJgIHJlcHJlc2VudHMgYW4gSVNSIGVuYWJsZWQgcm91dGUgdGhhdCBtaWdodFxuICAgKiBoYXZlIGEgc2VlZGVkIGNhY2hlIGVudHJ5IG9yIGZhbGxiYWNrIGdlbmVyYXRlZCBkdXJpbmcgYnVpbGRcbiAgICovXG4gIFBSRVJFTkRFUiA9ICdQUkVSRU5ERVInLFxuXG4gIC8qKlxuICAgKiBgU1RBVElDX0ZJTEVgIHJlcHJlc2VudHMgYSBzdGF0aWMgZmlsZSAoaWUgL19uZXh0L3N0YXRpYylcbiAgICovXG4gIFNUQVRJQ19GSUxFID0gJ1NUQVRJQ19GSUxFJyxcblxuICAvKipcbiAgICogYE1JRERMRVdBUkVgIHJlcHJlc2VudHMgdGhlIG1pZGRsZXdhcmUgb3V0cHV0IGlmIHByZXNlbnRcbiAgICovXG4gIE1JRERMRVdBUkUgPSAnTUlERExFV0FSRScsXG59XG5cbmV4cG9ydCBjb25zdCBDT01QSUxFUl9JTkRFWEVTOiB7XG4gIFtjb21waWxlcktleSBpbiBDb21waWxlck5hbWVWYWx1ZXNdOiBudW1iZXJcbn0gPSB7XG4gIFtDT01QSUxFUl9OQU1FUy5jbGllbnRdOiAwLFxuICBbQ09NUElMRVJfTkFNRVMuc2VydmVyXTogMSxcbiAgW0NPTVBJTEVSX05BTUVTLmVkZ2VTZXJ2ZXJdOiAyLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEUgPSAnL19ub3QtZm91bmQnXG5leHBvcnQgY29uc3QgVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEVfRU5UUlkgPSBgJHtVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURX0vcGFnZWBcbmV4cG9ydCBjb25zdCBQSEFTRV9FWFBPUlQgPSAncGhhc2UtZXhwb3J0J1xuZXhwb3J0IGNvbnN0IFBIQVNFX1BST0RVQ1RJT05fQlVJTEQgPSAncGhhc2UtcHJvZHVjdGlvbi1idWlsZCdcbmV4cG9ydCBjb25zdCBQSEFTRV9QUk9EVUNUSU9OX1NFUlZFUiA9ICdwaGFzZS1wcm9kdWN0aW9uLXNlcnZlcidcbmV4cG9ydCBjb25zdCBQSEFTRV9ERVZFTE9QTUVOVF9TRVJWRVIgPSAncGhhc2UtZGV2ZWxvcG1lbnQtc2VydmVyJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX1RFU1QgPSAncGhhc2UtdGVzdCdcbmV4cG9ydCBjb25zdCBQSEFTRV9JTkZPID0gJ3BoYXNlLWluZm8nXG5leHBvcnQgY29uc3QgUEFHRVNfTUFOSUZFU1QgPSAncGFnZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBXRUJQQUNLX1NUQVRTID0gJ3dlYnBhY2stc3RhdHMuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfUEFUSFNfTUFOSUZFU1QgPSAnYXBwLXBhdGhzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgQVBQX1BBVEhfUk9VVEVTX01BTklGRVNUID0gJ2FwcC1wYXRoLXJvdXRlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEJVSUxEX01BTklGRVNUID0gJ2J1aWxkLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgQVBQX0JVSUxEX01BTklGRVNUID0gJ2FwcC1idWlsZC1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OU19DT05GSUdfTUFOSUZFU1QgPSAnZnVuY3Rpb25zLWNvbmZpZy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFNVQlJFU09VUkNFX0lOVEVHUklUWV9NQU5JRkVTVCA9ICdzdWJyZXNvdXJjZS1pbnRlZ3JpdHktbWFuaWZlc3QnXG5leHBvcnQgY29uc3QgTkVYVF9GT05UX01BTklGRVNUID0gJ25leHQtZm9udC1tYW5pZmVzdCdcbmV4cG9ydCBjb25zdCBFWFBPUlRfTUFSS0VSID0gJ2V4cG9ydC1tYXJrZXIuanNvbidcbmV4cG9ydCBjb25zdCBFWFBPUlRfREVUQUlMID0gJ2V4cG9ydC1kZXRhaWwuanNvbidcbmV4cG9ydCBjb25zdCBQUkVSRU5ERVJfTUFOSUZFU1QgPSAncHJlcmVuZGVyLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgUk9VVEVTX01BTklGRVNUID0gJ3JvdXRlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IElNQUdFU19NQU5JRkVTVCA9ICdpbWFnZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTRVJWRVJfRklMRVNfTUFOSUZFU1QgPSAncmVxdWlyZWQtc2VydmVyLWZpbGVzLmpzb24nXG5leHBvcnQgY29uc3QgREVWX0NMSUVOVF9QQUdFU19NQU5JRkVTVCA9ICdfZGV2UGFnZXNNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfTUFOSUZFU1QgPSAnbWlkZGxld2FyZS1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCA9XG4gICdfY2xpZW50TWlkZGxld2FyZU1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgVFVSQk9QQUNLX0NMSUVOVF9CVUlMRF9NQU5JRkVTVCA9ICdjbGllbnQtYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPSAnX2Rldk1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJFQUNUX0xPQURBQkxFX01BTklGRVNUID0gJ3JlYWN0LWxvYWRhYmxlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0RJUkVDVE9SWSA9ICdzZXJ2ZXInXG5leHBvcnQgY29uc3QgQ09ORklHX0ZJTEVTID0gW1xuICAnbmV4dC5jb25maWcuanMnLFxuICAnbmV4dC5jb25maWcubWpzJyxcbiAgJ25leHQuY29uZmlnLnRzJyxcbl1cbmV4cG9ydCBjb25zdCBCVUlMRF9JRF9GSUxFID0gJ0JVSUxEX0lEJ1xuZXhwb3J0IGNvbnN0IEJMT0NLRURfUEFHRVMgPSBbJy9fZG9jdW1lbnQnLCAnL19hcHAnLCAnL19lcnJvciddXG5leHBvcnQgY29uc3QgQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIID0gJ3B1YmxpYydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEggPSAnc3RhdGljJ1xuZXhwb3J0IGNvbnN0IFNUUklOR19MSVRFUkFMX0RST1BfQlVORExFID0gJ19fTkVYVF9EUk9QX0NMSUVOVF9GSUxFX18nXG5leHBvcnQgY29uc3QgTkVYVF9CVUlMVElOX0RPQ1VNRU5UID0gJ19fTkVYVF9CVUlMVElOX0RPQ1VNRU5UX18nXG5leHBvcnQgY29uc3QgQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVggPSAnX19iYXJyZWxfb3B0aW1pemVfXydcblxuLy8gc2VydmVyL1tlbnRyeV0vcGFnZV9jbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCA9ICdjbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0J1xuLy8gc2VydmVyL3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3RcbmV4cG9ydCBjb25zdCBTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUID0gJ3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QgPSAnbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCA9XG4gICdtaWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0J1xuLy8gc2VydmVyL2ludGVyY2VwdGlvbi1yb3V0ZS1yZXdyaXRlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX1JFV1JJVEVfTUFOSUZFU1QgPVxuICAnaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvZHluYW1pYy1jc3MtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBEWU5BTUlDX0NTU19NQU5JRkVTVCA9ICdkeW5hbWljLWNzcy1tYW5pZmVzdCdcblxuLy8gc3RhdGljL3J1bnRpbWUvbWFpbi5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOID0gYG1haW5gXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQID0gYCR7Q0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU59LWFwcGBcbi8vIG5leHQgaW50ZXJuYWwgY2xpZW50IGNvbXBvbmVudHMgY2h1bmsgZm9yIGxheW91dHNcbmV4cG9ydCBjb25zdCBBUFBfQ0xJRU5UX0lOVEVSTkFMUyA9ICdhcHAtcGFnZXMtaW50ZXJuYWxzJ1xuLy8gc3RhdGljL3J1bnRpbWUvcmVhY3QtcmVmcmVzaC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIID0gYHJlYWN0LXJlZnJlc2hgXG4vLyBzdGF0aWMvcnVudGltZS9hbXAuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QID0gYGFtcGBcbi8vIHN0YXRpYy9ydW50aW1lL3dlYnBhY2suanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfV0VCUEFDSyA9IGB3ZWJwYWNrYFxuLy8gc3RhdGljL3J1bnRpbWUvcG9seWZpbGxzLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMUyA9ICdwb2x5ZmlsbHMnXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wgPSBTeW1ib2woXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFNcbilcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyA9ICd3ZWJwYWNrLXJ1bnRpbWUnXG5leHBvcnQgY29uc3QgRURHRV9SVU5USU1FX1dFQlBBQ0sgPSAnZWRnZS1ydW50aW1lLXdlYnBhY2snXG5leHBvcnQgY29uc3QgU1RBVElDX1BST1BTX0lEID0gJ19fTl9TU0cnXG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0lEID0gJ19fTl9TU1AnXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnVGltZXMgTmV3IFJvbWFuJyxcbiAgeEF2Z0NoYXJXaWR0aDogODIxLFxuICBhekF2Z1dpZHRoOiA4NTQuMzk1MzQ4ODM3MjA5MyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCA9IHtcbiAgbmFtZTogJ0FyaWFsJyxcbiAgeEF2Z0NoYXJXaWR0aDogOTA0LFxuICBhekF2Z1dpZHRoOiA5MzQuNTExNjI3OTA2OTc2NyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VTID0gWycvNTAwJ11cbmV4cG9ydCBjb25zdCBUUkFDRV9PVVRQVVRfVkVSU0lPTiA9IDFcbi8vIGluIGBNQmBcbmV4cG9ydCBjb25zdCBUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCA9IDYwMDBcblxuZXhwb3J0IGNvbnN0IFJTQ19NT0RVTEVfVFlQRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG59IGFzIGNvbnN0XG5cbi8vIGNvbXBhcmluZ1xuLy8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9lZGdlLXJ1bnRpbWVcbi8vIHdpdGhcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvZ2xvYmFscy5odG1sXG5leHBvcnQgY29uc3QgRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMgPSBbXG4gICdjbGVhckltbWVkaWF0ZScsXG4gICdzZXRJbW1lZGlhdGUnLFxuICAnQnJvYWRjYXN0Q2hhbm5lbCcsXG4gICdCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0NvbXByZXNzaW9uU3RyZWFtJyxcbiAgJ0NvdW50UXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0RlY29tcHJlc3Npb25TdHJlYW0nLFxuICAnRG9tRXhjZXB0aW9uJyxcbiAgJ01lc3NhZ2VDaGFubmVsJyxcbiAgJ01lc3NhZ2VFdmVudCcsXG4gICdNZXNzYWdlUG9ydCcsXG4gICdSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyJyxcbiAgJ1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QnLFxuICAnUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdUcmFuc2Zvcm1TdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdXcml0YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbl1cblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9FTlRSWVBPSU5UUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQLFxuXSlcbiJdLCJuYW1lcyI6WyJBUFBfQlVJTERfTUFOSUZFU1QiLCJBUFBfQ0xJRU5UX0lOVEVSTkFMUyIsIkFQUF9QQVRIU19NQU5JRkVTVCIsIkFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCIsIkFkYXB0ZXJPdXRwdXRUeXBlIiwiQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVgiLCJCTE9DS0VEX1BBR0VTIiwiQlVJTERfSURfRklMRSIsIkJVSUxEX01BTklGRVNUIiwiQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIIiwiQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTiIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOX0FQUCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFMiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1dFQlBBQ0siLCJDT01QSUxFUl9JTkRFWEVTIiwiQ09NUElMRVJfTkFNRVMiLCJDT05GSUdfRklMRVMiLCJERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyIsIkRFRkFVTFRfU0FOU19TRVJJRl9GT05UIiwiREVGQVVMVF9TRVJJRl9GT05UIiwiREVWX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUIiwiREVWX0NMSUVOVF9QQUdFU19NQU5JRkVTVCIsIkRZTkFNSUNfQ1NTX01BTklGRVNUIiwiRURHRV9SVU5USU1FX1dFQlBBQ0siLCJFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyIsIkVYUE9SVF9ERVRBSUwiLCJFWFBPUlRfTUFSS0VSIiwiRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCIsIklNQUdFU19NQU5JRkVTVCIsIklOVEVSQ0VQVElPTl9ST1VURV9SRVdSSVRFX01BTklGRVNUIiwiTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCIsIk1JRERMRVdBUkVfTUFOSUZFU1QiLCJNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJORVhUX0JVSUxUSU5fRE9DVU1FTlQiLCJORVhUX0ZPTlRfTUFOSUZFU1QiLCJQQUdFU19NQU5JRkVTVCIsIlBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiIsIlBIQVNFX0VYUE9SVCIsIlBIQVNFX0lORk8iLCJQSEFTRV9QUk9EVUNUSU9OX0JVSUxEIiwiUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIiLCJQSEFTRV9URVNUIiwiUFJFUkVOREVSX01BTklGRVNUIiwiUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJST1VURVNfTUFOSUZFU1QiLCJSU0NfTU9EVUxFX1RZUEVTIiwiU0VSVkVSX0RJUkVDVE9SWSIsIlNFUlZFUl9GSUxFU19NQU5JRkVTVCIsIlNFUlZFUl9QUk9QU19JRCIsIlNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJTVEFUSUNfUFJPUFNfSUQiLCJTVEFUSUNfU1RBVFVTX1BBR0VTIiwiU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUiLCJTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QiLCJTWVNURU1fRU5UUllQT0lOVFMiLCJUUkFDRV9PVVRQVVRfVkVSU0lPTiIsIlRVUkJPUEFDS19DTElFTlRfQlVJTERfTUFOSUZFU1QiLCJUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCIsIlVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEVfRU5UUlkiLCJXRUJQQUNLX1NUQVRTIiwiY2xpZW50Iiwic2VydmVyIiwiZWRnZVNlcnZlciIsIlN5bWJvbCIsIm5hbWUiLCJ4QXZnQ2hhcldpZHRoIiwiYXpBdmdXaWR0aCIsInVuaXRzUGVyRW0iLCJTZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/constants.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/encode-uri-path.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/encode-uri-path.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"encodeURIPath\", ({\n enumerable: true,\n get: function() {\n return encodeURIPath;\n }\n}));\nfunction encodeURIPath(file) {\n return file.split('/').map((p)=>encodeURIComponent(p)).join('/');\n} //# sourceMappingURL=encode-uri-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZW5jb2RlLXVyaS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxjQUFjQyxJQUFZO0lBQ3hDLE9BQU9BLEtBQ0pDLEtBQUssQ0FBQyxLQUNOQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUMsbUJBQW1CRCxJQUM5QkUsSUFBSSxDQUFDO0FBQ1YiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2VuY29kZS11cmktcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlVVJJUGF0aChmaWxlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZpbGVcbiAgICAuc3BsaXQoJy8nKVxuICAgIC5tYXAoKHApID0+IGVuY29kZVVSSUNvbXBvbmVudChwKSlcbiAgICAuam9pbignLycpXG59XG4iXSwibmFtZXMiOlsiZW5jb2RlVVJJUGF0aCIsImZpbGUiLCJzcGxpdCIsIm1hcCIsInAiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/encode-uri-path.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/errors/constants.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/errors/constants.js ***! \***************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OzJEQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwwQkFBMEIiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SID0gJ05FWFRfTUlTU0lOR19ST09UX1RBR1MnXG4iXSwibmFtZXMiOlsiTUlTU0lOR19ST09UX1RBR1NfRVJST1IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/errors/constants.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/get-hostname.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/get-hostname.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHostname\", ({\n enumerable: true,\n get: function() {\n return getHostname;\n }\n}));\nfunction getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n} //# sourceMappingURL=get-hostname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBUWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxZQUNkQyxNQUFvQyxFQUNwQ0MsT0FBNkI7SUFFN0IsMkVBQTJFO0lBQzNFLFlBQVk7SUFDWixJQUFJQztJQUNKLElBQUlELENBQUFBLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNFLElBQUFBLEtBQVEsQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDSixRQUFRRSxJQUFJLEdBQUc7UUFDakRELFdBQVdELFFBQVFFLElBQUksQ0FBQ0csUUFBUSxHQUFHQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUNyRCxPQUFPLElBQUlQLE9BQU9FLFFBQVEsRUFBRTtRQUMxQkEsV0FBV0YsT0FBT0UsUUFBUTtJQUM1QixPQUFPO0lBRVAsT0FBT0EsU0FBU00sV0FBVztBQUM3QiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3V0Z29pbmdIdHRwSGVhZGVycyB9IGZyb20gJ2h0dHAnXG5cbi8qKlxuICogVGFrZXMgYW4gb2JqZWN0IHdpdGggYSBob3N0bmFtZSBwcm9wZXJ0eSAobGlrZSBhIHBhcnNlZCBVUkwpIGFuZCBzb21lXG4gKiBoZWFkZXJzIHRoYXQgbWF5IGNvbnRhaW4gSG9zdCBhbmQgcmV0dXJucyB0aGUgcHJlZmVycmVkIGhvc3RuYW1lLlxuICogQHBhcmFtIHBhcnNlZCBBbiBvYmplY3QgY29udGFpbmluZyBhIGhvc3RuYW1lIHByb3BlcnR5LlxuICogQHBhcmFtIGhlYWRlcnMgQSBkaWN0aW9uYXJ5IHdpdGggaGVhZGVycyBjb250YWluaW5nIGEgYGhvc3RgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9zdG5hbWUoXG4gIHBhcnNlZDogeyBob3N0bmFtZT86IHN0cmluZyB8IG51bGwgfSxcbiAgaGVhZGVycz86IE91dGdvaW5nSHR0cEhlYWRlcnNcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIEdldCB0aGUgaG9zdG5hbWUgZnJvbSB0aGUgaGVhZGVycyBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1c2UgdGhlIHBhcnNlZFxuICAvLyBob3N0bmFtZS5cbiAgbGV0IGhvc3RuYW1lOiBzdHJpbmdcbiAgaWYgKGhlYWRlcnM/Lmhvc3QgJiYgIUFycmF5LmlzQXJyYXkoaGVhZGVycy5ob3N0KSkge1xuICAgIGhvc3RuYW1lID0gaGVhZGVycy5ob3N0LnRvU3RyaW5nKCkuc3BsaXQoJzonLCAxKVswXVxuICB9IGVsc2UgaWYgKHBhcnNlZC5ob3N0bmFtZSkge1xuICAgIGhvc3RuYW1lID0gcGFyc2VkLmhvc3RuYW1lXG4gIH0gZWxzZSByZXR1cm5cblxuICByZXR1cm4gaG9zdG5hbWUudG9Mb3dlckNhc2UoKVxufVxuIl0sIm5hbWVzIjpbImdldEhvc3RuYW1lIiwicGFyc2VkIiwiaGVhZGVycyIsImhvc3RuYW1lIiwiaG9zdCIsIkFycmF5IiwiaXNBcnJheSIsInRvU3RyaW5nIiwic3BsaXQiLCJ0b0xvd2VyQ2FzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/get-hostname.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/head.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/shared/lib/head.js ***! \***************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"react\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFnTEEsT0FBbUI7ZUFBbkI7O0lBbktnQkEsV0FBVztlQUFYQTs7Ozs7OzZFQVg0QjtpRkFDekI7cURBQ2E7NkRBQ0c7cUNBQ1A7c0NBQ0g7QUFNbEIsU0FBU0EsWUFBWUMsU0FBaUI7SUFBakJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQVk7SUFDdEMsTUFBTUMsT0FBTztzQkFBQyxxQkFBQ0MsUUFBQUE7WUFBS0MsU0FBUTtXQUFZO0tBQWE7SUFDckQsSUFBSSxDQUFDSCxXQUFXO1FBQ2RDLEtBQUtHLElBQUksZUFDUCxxQkFBQ0YsUUFBQUE7WUFBS0csTUFBSztZQUFXQyxTQUFRO1dBQXlCO0lBRTNEO0lBQ0EsT0FBT0w7QUFDVDtBQUVBLFNBQVNNLGlCQUNQQyxJQUFvQyxFQUNwQ0MsS0FBMkM7SUFFM0MsOEZBQThGO0lBQzlGLElBQUksT0FBT0EsVUFBVSxZQUFZLE9BQU9BLFVBQVUsVUFBVTtRQUMxRCxPQUFPRDtJQUNUO0lBQ0Esa0NBQWtDO0lBQ2xDLElBQUlDLE1BQU1DLElBQUksS0FBS0MsT0FBQUEsT0FBSyxDQUFDQyxRQUFRLEVBQUU7UUFDakMsT0FBT0osS0FBS0ssTUFBTSxDQUNoQixPQUNBRixPQUFLLENBQUNHLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDTixNQUFNTyxLQUFLLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxDQUNqRCxDQUVFQyxjQUNBQztZQUVBLElBQ0UsT0FBT0Esa0JBQWtCLFlBQ3pCLE9BQU9BLGtCQUFrQixVQUN6QjtnQkFDQSxPQUFPRDtZQUNUO1lBQ0EsT0FBT0EsYUFBYU4sTUFBTSxDQUFDTztRQUM3QixHQUNBLEVBQUU7SUFHUjtJQUNBLE9BQU9aLEtBQUtLLE1BQU0sQ0FBQ0o7QUFDckI7QUFFQSxNQUFNWSxZQUFZO0lBQUM7SUFBUTtJQUFhO0lBQVc7Q0FBVztBQUU5RDs7OztBQUlBLEdBQ0Es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QUFBLEVBQ0csd0ZBQXFGTCxFQUFFaEMsS0FBSyxDQUFDLE9BQU8sR0FBQztZQUUxRztRQUNGO1FBQ0EscUJBQU9MLE9BQUFBLE9BQUssQ0FBQzJDLFlBQVksQ0FBQ04sR0FBRztZQUFFakI7UUFBSTtJQUNyQztBQUNKO0FBRUE7OztDQUdDLEdBQ0QsU0FBU3dCLEtBQUssS0FBMkM7SUFBM0MsTUFBRXRDLFFBQVEsRUFBaUMsR0FBM0M7SUFDWixNQUFNdUMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MseUJBQUFBLGVBQWU7SUFDM0MsTUFBTUMsY0FBY0YsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0csaUNBQUFBLGtCQUFrQjtJQUNqRCxPQUNFLFdBREYsR0FDRSxxQkFBQ0MsWUFBQUEsT0FBTTtRQUNMQyx5QkFBeUJuQjtRQUN6QmdCLGFBQWFBO1FBQ2IzRCxXQUFXK0QsQ0FBQUEsR0FBQUEsU0FBQUEsV0FBQUEsRUFBWVA7a0JBRXRCdkM7O0FBR1A7TUFFQSxXQUFlc0MiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2hlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCBFZmZlY3QgZnJvbSAnLi9zaWRlLWVmZmVjdCdcbmltcG9ydCB7IEFtcFN0YXRlQ29udGV4dCB9IGZyb20gJy4vYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBIZWFkTWFuYWdlckNvbnRleHQgfSBmcm9tICcuL2hlYWQtbWFuYWdlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgaXNJbkFtcE1vZGUgfSBmcm9tICcuL2FtcC1tb2RlJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuL3V0aWxzL3dhcm4tb25jZSdcblxudHlwZSBXaXRoSW5BbXBNb2RlID0ge1xuICBpbkFtcE1vZGU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSk6IEpTWC5FbGVtZW50W10ge1xuICBjb25zdCBoZWFkID0gWzxtZXRhIGNoYXJTZXQ9XCJ1dGYtOFwiIGtleT1cImNoYXJzZXRcIiAvPl1cbiAgaWYgKCFpbkFtcE1vZGUpIHtcbiAgICBoZWFkLnB1c2goXG4gICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoXCIga2V5PVwidmlld3BvcnRcIiAvPlxuICAgIClcbiAgfVxuICByZXR1cm4gaGVhZFxufVxuXG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KFxuICBsaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIGNoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudW1iZXIgfCBzdHJpbmdcbik6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiB7XG4gIC8vIFJlYWN0IGNoaWxkcmVuIGNhbiBiZSBcInN0cmluZ1wiIG9yIFwibnVtYmVyXCIgaW4gdGhpcyBjYXNlIHdlIGlnbm9yZSB0aGVtIGZvciBiYWNrd2FyZHMgY29tcGF0XG4gIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbGlzdFxuICB9XG4gIC8vIEFkZHMgc3VwcG9ydCBmb3IgUmVhY3QuRnJhZ21lbnRcbiAgaWYgKGNoaWxkLnR5cGUgPT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBAdHlwZXMvcmVhY3QgZG9lcyBub3QgcmVtb3ZlIGZyYWdtZW50cyBidXQgdGhpcyBjb3VsZCBhbHNvIHJldHVybiBSZWFjdFBvcnRhbFtdXG4gICAgICBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgICAoXG4gICAgICAgICAgZnJhZ21lbnRMaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgICAgICAgZnJhZ21lbnRDaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4gICAgICAgICk6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICB0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ251bWJlcidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3RcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdC5jb25jYXQoZnJhZ21lbnRDaGlsZClcbiAgICAgICAgfSxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApXG4gIH1cbiAgcmV0dXJuIGxpc3QuY29uY2F0KGNoaWxkKVxufVxuXG5jb25zdCBNRVRBVFlQRVMgPSBbJ25hbWUnLCAnaHR0cEVxdWl2JywgJ2NoYXJTZXQnLCAnaXRlbVByb3AnXVxuXG4vKlxuIHJldHVybnMgYSBmdW5jdGlvbiBmb3IgZmlsdGVyaW5nIGhlYWQgY2hpbGQgZWxlbWVudHNcbiB3aGljaCBzaG91bGRuJ3QgYmUgZHVwbGljYXRlZCwgbGlrZSA8dGl0bGUvPlxuIEFsc28gYWRkcyBzdXBwb3J0IGZvciBkZWR1cGxpY2F0ZWQgYGtleWAgcHJvcGVydGllc1xuKi9cbmZ1bmN0aW9uIHVuaXF1ZSgpIHtcbiAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKVxuICBjb25zdCB0YWdzID0gbmV3IFNldCgpXG4gIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhQ2F0ZWdvcmllczogeyBbbWV0YXR5cGU6IHN0cmluZ106IFNldDxzdHJpbmc+IH0gPSB7fVxuXG4gIHJldHVybiAoaDogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4pID0+IHtcbiAgICBsZXQgaXNVbmlxdWUgPSB0cnVlXG4gICAgbGV0IGhhc0tleSA9IGZhbHNlXG5cbiAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICBoYXNLZXkgPSB0cnVlXG4gICAgICBjb25zdCBrZXkgPSBoLmtleS5zbGljZShoLmtleS5pbmRleE9mKCckJykgKyAxKVxuICAgICAgaWYgKGtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5cy5hZGQoa2V5KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWZhdWx0LWNhc2VcbiAgICBzd2l0Y2ggKGgudHlwZSkge1xuICAgICAgY2FzZSAndGl0bGUnOlxuICAgICAgY2FzZSAnYmFzZSc6XG4gICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhZ3MuYWRkKGgudHlwZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbWV0YSc6XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXVxuICAgICAgICAgIGlmICghaC5wcm9wcy5oYXNPd25Qcm9wZXJ0eShtZXRhdHlwZSkpIGNvbnRpbnVlXG5cbiAgICAgICAgICBpZiAobWV0YXR5cGUgPT09ICdjaGFyU2V0Jykge1xuICAgICAgICAgICAgaWYgKG1ldGFUeXBlcy5oYXMobWV0YXR5cGUpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1ldGFUeXBlcy5hZGQobWV0YXR5cGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV1cbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gfHwgbmV3IFNldCgpXG4gICAgICAgICAgICBpZiAoKG1ldGF0eXBlICE9PSAnbmFtZScgfHwgIWhhc0tleSkgJiYgY2F0ZWdvcmllcy5oYXMoY2F0ZWdvcnkpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNhdGVnb3JpZXMuYWRkKGNhdGVnb3J5KVxuICAgICAgICAgICAgICBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gPSBjYXRlZ29yaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVW5pcXVlXG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGhlYWRDaGlsZHJlbkVsZW1lbnRzIExpc3Qgb2YgY2hpbGRyZW4gb2YgPEhlYWQ+XG4gKi9cbmZ1bmN0aW9uIHJlZHVjZUNvbXBvbmVudHM8VCBleHRlbmRzIHt9ICYgV2l0aEluQW1wTW9kZT4oXG4gIGhlYWRDaGlsZHJlbkVsZW1lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIHByb3BzOiBUXG4pIHtcbiAgY29uc3QgeyBpbkFtcE1vZGUgfSA9IHByb3BzXG4gIHJldHVybiBoZWFkQ2hpbGRyZW5FbGVtZW50c1xuICAgIC5yZWR1Y2Uob25seVJlYWN0RWxlbWVudCwgW10pXG4gICAgLnJldmVyc2UoKVxuICAgIC5jb25jYXQoZGVmYXVsdEhlYWQoaW5BbXBNb2RlKS5yZXZlcnNlKCkpXG4gICAgLmZpbHRlcih1bmlxdWUoKSlcbiAgICAucmV2ZXJzZSgpXG4gICAgLm1hcCgoYzogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4sIGk6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaVxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIG9taXQgSlNPTi1MRCBzdHJ1Y3R1cmVkIGRhdGEgc25pcHBldHMgZnJvbSB0aGUgd2FybmluZ1xuICAgICAgICBpZiAoYy50eXBlID09PSAnc2NyaXB0JyAmJiBjLnByb3BzWyd0eXBlJ10gIT09ICdhcHBsaWNhdGlvbi9sZCtqc29uJykge1xuICAgICAgICAgIGNvbnN0IHNyY01lc3NhZ2UgPSBjLnByb3BzWydzcmMnXVxuICAgICAgICAgICAgPyBgPHNjcmlwdD4gdGFnIHdpdGggc3JjPVwiJHtjLnByb3BzWydzcmMnXX1cImBcbiAgICAgICAgICAgIDogYGlubGluZSA8c2NyaXB0PmBcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIDxzY3JpcHQ+IHRhZ3MgdXNpbmcgbmV4dC9oZWFkIChzZWUgJHtzcmNNZXNzYWdlfSkuIFVzZSBuZXh0L3NjcmlwdCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXNjcmlwdC10YWdzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdsaW5rJyAmJiBjLnByb3BzWydyZWwnXSA9PT0gJ3N0eWxlc2hlZXQnKSB7XG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgRG8gbm90IGFkZCBzdHlsZXNoZWV0cyB1c2luZyBuZXh0L2hlYWQgKHNlZSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCI+IHRhZyB3aXRoIGhyZWY9XCIke2MucHJvcHNbJ2hyZWYnXX1cIikuIFVzZSBEb2N1bWVudCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXN0eWxlc2hlZXRzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjLCB7IGtleSB9KVxuICAgIH0pXG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaW5qZWN0cyBlbGVtZW50cyB0byBgPGhlYWQ+YCBvZiB5b3VyIHBhZ2UuXG4gKiBUbyBhdm9pZCBkdXBsaWNhdGVkIGB0YWdzYCBpbiBgPGhlYWQ+YCB5b3UgY2FuIHVzZSB0aGUgYGtleWAgcHJvcGVydHksIHdoaWNoIHdpbGwgbWFrZSBzdXJlIGV2ZXJ5IHRhZyBpcyBvbmx5IHJlbmRlcmVkIG9uY2UuXG4gKi9cbmZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCBhbXBTdGF0ZSA9IHVzZUNvbnRleHQoQW1wU3RhdGVDb250ZXh0KVxuICBjb25zdCBoZWFkTWFuYWdlciA9IHVzZUNvbnRleHQoSGVhZE1hbmFnZXJDb250ZXh0KVxuICByZXR1cm4gKFxuICAgIDxFZmZlY3RcbiAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlPXtyZWR1Y2VDb21wb25lbnRzfVxuICAgICAgaGVhZE1hbmFnZXI9e2hlYWRNYW5hZ2VyfVxuICAgICAgaW5BbXBNb2RlPXtpc0luQW1wTW9kZShhbXBTdGF0ZSl9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRWZmZWN0PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRcbiJdLCJuYW1lcyI6WyJkZWZhdWx0SGVhZCIsImluQW1wTW9kZSIsImhlYWQiLCJtZXRhIiwiY2hhclNldCIsInB1c2giLCJuYW1lIiwiY29udGVudCIsIm9ubHlSZWFjdEVsZW1lbnQiLCJsaXN0IiwiY2hpbGQiLCJ0eXBlIiwiUmVhY3QiLCJGcmFnbWVudCIsImNvbmNhdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsInByb3BzIiwiY2hpbGRyZW4iLCJyZWR1Y2UiLCJmcmFnbWVudExpc3QiLCJmcmFnbWVudENoaWxkIiwiTUVUQVRZUEVTIiwidW5pcXVlIiwia2V5cyIsIlNldCIsInRhZ3MiLCJtZXRhVHlwZXMiLCJtZXRhQ2F0ZWdvcmllcyIsImgiLCJpc1VuaXF1ZSIsImhhc0tleSIsImtleSIsImluZGV4T2YiLCJzbGljZSIsImhhcyIsImFkZCIsImkiLCJsZW4iLCJsZW5ndGgiLCJtZXRhdHlwZSIsImhhc093blByb3BlcnR5IiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRDaGlsZHJlbkVsZW1lbnRzIiwicmV2ZXJzZSIsImZpbHRlciIsIm1hcCIsImMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJzcmNNZXNzYWdlIiwid2Fybk9uY2UiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJFZmZlY3QiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(':', 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n} //# sourceMappingURL=detect-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3NEQUVnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQ2RDLFdBQXFDLEVBQ3JDQyxRQUFpQixFQUNqQkMsY0FBdUI7SUFFdkIsSUFBSSxDQUFDRixhQUFhO0lBRWxCLElBQUlFLGdCQUFnQjtRQUNsQkEsaUJBQWlCQSxlQUFlQyxXQUFXO0lBQzdDO0lBRUEsS0FBSyxNQUFNQyxRQUFRSixZQUFhO1lBRVBJLGNBSXJCQTtRQUxGLHlCQUF5QjtRQUN6QixNQUFNQyxpQkFBQUEsQ0FBaUJELGVBQUFBLEtBQUtFLE1BQUFBLEtBQU0sZ0JBQVhGLGFBQWFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUNKLFdBQVc7UUFDaEUsSUFDRUYsYUFBYUksa0JBQ2JILG1CQUFtQkUsS0FBS0ksYUFBYSxDQUFDTCxXQUFXLFFBQ2pEQyxnQkFBQUEsS0FBS0ssT0FBQUEsS0FBTyxnQkFBWkwsY0FBY00sSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9SLFdBQVcsT0FBT0QsZUFBQUEsR0FDeEQ7WUFDQSxPQUFPRTtRQUNUO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERvbWFpbkxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9jb25maWctc2hhcmVkJ1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0RG9tYWluTG9jYWxlKFxuICBkb21haW5JdGVtcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdLFxuICBob3N0bmFtZT86IHN0cmluZyxcbiAgZGV0ZWN0ZWRMb2NhbGU/OiBzdHJpbmdcbikge1xuICBpZiAoIWRvbWFpbkl0ZW1zKSByZXR1cm5cblxuICBpZiAoZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICBkZXRlY3RlZExvY2FsZSA9IGRldGVjdGVkTG9jYWxlLnRvTG93ZXJDYXNlKClcbiAgfVxuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBkb21haW5JdGVtcykge1xuICAgIC8vIHJlbW92ZSBwb3J0IGlmIHByZXNlbnRcbiAgICBjb25zdCBkb21haW5Ib3N0bmFtZSA9IGl0ZW0uZG9tYWluPy5zcGxpdCgnOicsIDEpWzBdLnRvTG93ZXJDYXNlKClcbiAgICBpZiAoXG4gICAgICBob3N0bmFtZSA9PT0gZG9tYWluSG9zdG5hbWUgfHxcbiAgICAgIGRldGVjdGVkTG9jYWxlID09PSBpdGVtLmRlZmF1bHRMb2NhbGUudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgaXRlbS5sb2NhbGVzPy5zb21lKChsb2NhbGUpID0+IGxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBkZXRlY3RlZExvY2FsZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBpdGVtXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZGV0ZWN0RG9tYWluTG9jYWxlIiwiZG9tYWluSXRlbXMiLCJob3N0bmFtZSIsImRldGVjdGVkTG9jYWxlIiwidG9Mb3dlckNhc2UiLCJpdGVtIiwiZG9tYWluSG9zdG5hbWUiLCJkb21haW4iLCJzcGxpdCIsImRlZmF1bHRMb2NhbGUiLCJsb2NhbGVzIiwic29tZSIsImxvY2FsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */ const cache = new WeakMap();\nfunction normalizeLocalePath(pathname, locales) {\n // If locales is undefined, return the pathname as is.\n if (!locales) return {\n pathname\n };\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales);\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale)=>locale.toLowerCase());\n cache.set(locales, lowercasedLocales);\n }\n let detectedLocale;\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2);\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return {\n pathname\n };\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase();\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment);\n if (index < 0) return {\n pathname\n };\n // Return the case-sensitive locale.\n detectedLocale = locales[index];\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/';\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFxQmdCQTs7O2VBQUFBOzs7QUFoQmhCOzs7O0NBSUMsR0FDRCxNQUFNQyxRQUFRLElBQUlDO0FBV1gsU0FBU0Ysb0JBQ2RHLFFBQWdCLEVBQ2hCQyxPQUEyQjtJQUUzQixzREFBc0Q7SUFDdEQsSUFBSSxDQUFDQSxTQUFTLE9BQU87UUFBRUQ7SUFBUztJQUVoQyxpRUFBaUU7SUFDakUsSUFBSUUsb0JBQW9CSixNQUFNSyxHQUFHLENBQUNGO0lBQ2xDLElBQUksQ0FBQ0MsbUJBQW1CO1FBQ3RCQSxvQkFBb0JELFFBQVFHLEdBQUcsQ0FBQyxDQUFDQyxTQUFXQSxPQUFPQyxXQUFXO1FBQzlEUixNQUFNUyxHQUFHLENBQUNOLFNBQVNDO0lBQ3JCO0lBRUEsSUFBSU07SUFFSixvRUFBb0U7SUFDcEUseUVBQXlFO0lBQ3pFLE1BQU1DLFdBQVdULFNBQVNVLEtBQUssQ0FBQyxLQUFLO0lBRXJDLDBFQUEwRTtJQUMxRSxVQUFVO0lBQ1YsSUFBSSxDQUFDRCxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU87UUFBRVQ7SUFBUztJQUVwQywwREFBMEQ7SUFDMUQsTUFBTVcsVUFBVUYsUUFBUSxDQUFDLEVBQUUsQ0FBQ0gsV0FBVztJQUV2Qyx5RUFBeUU7SUFDekUsbUNBQW1DO0lBQ25DLE1BQU1NLFFBQVFWLGtCQUFrQlcsT0FBTyxDQUFDRjtJQUN4QyxJQUFJQyxRQUFRLEdBQUcsT0FBTztRQUFFWjtJQUFTO0lBRWpDLG9DQUFvQztJQUNwQ1EsaUJBQWlCUCxPQUFPLENBQUNXLE1BQU07SUFFL0IsZ0RBQWdEO0lBQ2hEWixXQUFXQSxTQUFTYyxLQUFLLENBQUNOLGVBQWVPLE1BQU0sR0FBRyxNQUFNO0lBRXhELE9BQU87UUFBRWY7UUFBVVE7SUFBZTtBQUNwQyIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQYXRoTG9jYWxlIHtcbiAgZGV0ZWN0ZWRMb2NhbGU/OiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIEEgY2FjaGUgb2YgbG93ZXJjYXNlZCBsb2NhbGVzIGZvciBlYWNoIGxpc3Qgb2YgbG9jYWxlcy4gVGhpcyBpcyBzdG9yZWQgYXMgYVxuICogV2Vha01hcCBzbyBpZiB0aGUgbG9jYWxlcyBhcmUgZ2FyYmFnZSBjb2xsZWN0ZWQsIHRoZSBjYWNoZSBlbnRyeSB3aWxsIGJlXG4gKiByZW1vdmVkIGFzIHdlbGwuXG4gKi9cbmNvbnN0IGNhY2hlID0gbmV3IFdlYWtNYXA8cmVhZG9ubHkgc3RyaW5nW10sIHJlYWRvbmx5IHN0cmluZ1tdPigpXG5cbi8qKlxuICogRm9yIGEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZSBmcm9tIGEgbGlzdCBvZiBsb2NhbGVzLCBpdFxuICogcmVtb3ZlcyB0aGUgbG9jYWxlIGZyb20gdGhlIHBhdGhuYW1lIHJldHVybmluZyBpdCBhbG9uZ3NpZGUgd2l0aCB0aGVcbiAqIGRldGVjdGVkIGxvY2FsZS5cbiAqXG4gKiBAcGFyYW0gcGF0aG5hbWUgQSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlLlxuICogQHBhcmFtIGxvY2FsZXMgQSBsaXN0IG9mIGxvY2FsZXMuXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgbG9jYWxlIGFuZCBwYXRobmFtZSB3aXRob3V0IGxvY2FsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4pOiBQYXRoTG9jYWxlIHtcbiAgLy8gSWYgbG9jYWxlcyBpcyB1bmRlZmluZWQsIHJldHVybiB0aGUgcGF0aG5hbWUgYXMgaXMuXG4gIGlmICghbG9jYWxlcykgcmV0dXJuIHsgcGF0aG5hbWUgfVxuXG4gIC8vIEdldCB0aGUgY2FjaGVkIGxvd2VyY2FzZWQgbG9jYWxlcyBvciBjcmVhdGUgYSBuZXcgY2FjaGUgZW50cnkuXG4gIGxldCBsb3dlcmNhc2VkTG9jYWxlcyA9IGNhY2hlLmdldChsb2NhbGVzKVxuICBpZiAoIWxvd2VyY2FzZWRMb2NhbGVzKSB7XG4gICAgbG93ZXJjYXNlZExvY2FsZXMgPSBsb2NhbGVzLm1hcCgobG9jYWxlKSA9PiBsb2NhbGUudG9Mb3dlckNhc2UoKSlcbiAgICBjYWNoZS5zZXQobG9jYWxlcywgbG93ZXJjYXNlZExvY2FsZXMpXG4gIH1cblxuICBsZXQgZGV0ZWN0ZWRMb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIC8vIFRoZSBmaXJzdCBzZWdtZW50IHdpbGwgYmUgZW1wdHksIGJlY2F1c2UgaXQgaGFzIGEgbGVhZGluZyBgL2AuIElmXG4gIC8vIHRoZXJlIGlzIG5vIGZ1cnRoZXIgc2VnbWVudCwgdGhlcmUgaXMgbm8gbG9jYWxlIChvciBpdCdzIHRoZSBkZWZhdWx0KS5cbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRobmFtZS5zcGxpdCgnLycsIDIpXG5cbiAgLy8gSWYgdGhlcmUncyBubyBzZWNvbmQgc2VnbWVudCAoaWUsIHRoZSBwYXRobmFtZSBpcyBqdXN0IGAvYCksIHRoZXJlJ3Mgbm9cbiAgLy8gbG9jYWxlLlxuICBpZiAoIXNlZ21lbnRzWzFdKSByZXR1cm4geyBwYXRobmFtZSB9XG5cbiAgLy8gVGhlIHNlY29uZCBzZWdtZW50IHdpbGwgY29udGFpbiB0aGUgbG9jYWxlIHBhcnQgaWYgYW55LlxuICBjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbMV0udG9Mb3dlckNhc2UoKVxuXG4gIC8vIFNlZSBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIG9uZSBvZiB0aGUgbG9jYWxlcy4gSWYgaXQgZG9lc24ndCwgdGhlcmUgaXNcbiAgLy8gbm8gbG9jYWxlIChvciBpdCdzIHRoZSBkZWZhdWx0KS5cbiAgY29uc3QgaW5kZXggPSBsb3dlcmNhc2VkTG9jYWxlcy5pbmRleE9mKHNlZ21lbnQpXG4gIGlmIChpbmRleCA8IDApIHJldHVybiB7IHBhdGhuYW1lIH1cblxuICAvLyBSZXR1cm4gdGhlIGNhc2Utc2Vuc2l0aXZlIGxvY2FsZS5cbiAgZGV0ZWN0ZWRMb2NhbGUgPSBsb2NhbGVzW2luZGV4XVxuXG4gIC8vIFJlbW92ZSB0aGUgYC8ke2xvY2FsZX1gIHBhcnQgb2YgdGhlIHBhdGhuYW1lLlxuICBwYXRobmFtZSA9IHBhdGhuYW1lLnNsaWNlKGRldGVjdGVkTG9jYWxlLmxlbmd0aCArIDEpIHx8ICcvJ1xuXG4gIHJldHVybiB7IHBhdGhuYW1lLCBkZXRlY3RlZExvY2FsZSB9XG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplTG9jYWxlUGF0aCIsImNhY2hlIiwiV2Vha01hcCIsInBhdGhuYW1lIiwibG9jYWxlcyIsImxvd2VyY2FzZWRMb2NhbGVzIiwiZ2V0IiwibWFwIiwibG9jYWxlIiwidG9Mb3dlckNhc2UiLCJzZXQiLCJkZXRlY3RlZExvY2FsZSIsInNlZ21lbnRzIiwic3BsaXQiLCJzZWdtZW50IiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/invariant-error.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/invariant-error.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFyaWFudEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBFcnJvck9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIGBJbnZhcmlhbnQ6ICR7bWVzc2FnZS5lbmRzV2l0aCgnLicpID8gbWVzc2FnZSA6IG1lc3NhZ2UgKyAnLid9IFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgICB0aGlzLm5hbWUgPSAnSW52YXJpYW50RXJyb3InXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbnZhcmlhbnRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwib3B0aW9ucyIsImVuZHNXaXRoIiwibmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/invariant-error.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/is-plain-object.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/is-plain-object.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/is-thenable.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/is-thenable.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/is-thenable.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/modern-browserslist-target.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***! \*************************************************************************/ /***/ ((module) => { "use strict"; eval("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0ZBQW9GO0FBQ3BGLGtFQUFrRTtBQUNsRTs7Ozs7Q0FLQztBQUNELE1BQU1BLDZCQUE2QjtJQUNqQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFREMsT0FBT0MsT0FBTyxHQUFHRiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTm90ZTogVGhpcyBmaWxlIGlzIEpTIGJlY2F1c2UgaXQncyB1c2VkIGJ5IHRoZSB0YXNrZmlsZS1zd2MuanMgZmlsZSwgd2hpY2ggaXMgSlMuXG4vLyBLZWVwIGZpbGUgY2hhbmdlcyBpbiBzeW5jIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYC5kLnRzYCBmaWxlcy5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBicm93c2VyIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBhbGwgb2YgdGhlIGZvbGxvd2luZzpcbiAqIHN0YXRpYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZVxuICogZHluYW1pYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZS1keW5hbWljLWltcG9ydFxuICogaW1wb3J0Lm1ldGE6IGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWphdmFzY3JpcHRfb3BlcmF0b3JzX2ltcG9ydF9tZXRhXG4gKi9cbmNvbnN0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUID0gW1xuICAnY2hyb21lIDY0JyxcbiAgJ2VkZ2UgNzknLFxuICAnZmlyZWZveCA2NycsXG4gICdvcGVyYSA1MScsXG4gICdzYWZhcmkgMTInLFxuXVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUXG4iXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJtb2R1bGUiLCJleHBvcnRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"denormalizePagePath\", ({\n enumerable: true,\n get: function() {\n return denormalizePagePath;\n }\n}));\nconst _utils = __webpack_require__(/*! ../router/utils */ \"./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _normalizepathsep = __webpack_require__(/*! ./normalize-path-sep */ \"./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nfunction denormalizePagePath(page) {\n let _page = (0, _normalizepathsep.normalizePathSep)(page);\n return _page.startsWith('/index/') && !(0, _utils.isDynamicRoute)(_page) ? _page.slice(6) : _page !== '/index' ? _page : '/';\n} //# sourceMappingURL=denormalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQVdnQkE7OztlQUFBQTs7O21DQVhlOzhDQUNFO0FBVTFCLFNBQVNBLG9CQUFvQkMsSUFBWTtJQUM5QyxJQUFJQyxRQUFRQyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCRjtJQUM3QixPQUFPQyxNQUFNRSxVQUFVLENBQUMsY0FBYyxDQUFDQyxDQUFBQSxHQUFBQSxPQUFBQSxjQUFBQSxFQUFlSCxTQUNsREEsTUFBTUksS0FBSyxDQUFDLEtBQ1pKLFVBQVUsV0FDUkEsUUFDQTtBQUNSIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzJ1xuaW1wb3J0IHsgbm9ybWFsaXplUGF0aFNlcCB9IGZyb20gJy4vbm9ybWFsaXplLXBhdGgtc2VwJ1xuXG4vKipcbiAqIFBlcmZvcm1zIHRoZSBvcHBvc2l0ZSB0cmFuc2Zvcm1hdGlvbiBvZiBgbm9ybWFsaXplUGFnZVBhdGhgLiBOb3RlIHRoYXRcbiAqIHRoaXMgZnVuY3Rpb24gaXMgbm90IGlkZW1wb3RlbnQgZWl0aGVyIGluIGNhc2VzIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZVxuICogbGVhZGluZyBgL2luZGV4YCBmb3IgdGhlIHBhZ2UuIEV4YW1wbGVzOlxuICogIC0gYC9pbmRleGAgLT4gYC9gXG4gKiAgLSBgL2luZGV4L2Zvb2AgLT4gYC9mb29gXG4gKiAgLSBgL2luZGV4L2luZGV4YCAtPiBgL2luZGV4YFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVQYWdlUGF0aChwYWdlOiBzdHJpbmcpIHtcbiAgbGV0IF9wYWdlID0gbm9ybWFsaXplUGF0aFNlcChwYWdlKVxuICByZXR1cm4gX3BhZ2Uuc3RhcnRzV2l0aCgnL2luZGV4LycpICYmICFpc0R5bmFtaWNSb3V0ZShfcGFnZSlcbiAgICA/IF9wYWdlLnNsaWNlKDYpXG4gICAgOiBfcGFnZSAhPT0gJy9pbmRleCdcbiAgICAgID8gX3BhZ2VcbiAgICAgIDogJy8nXG59XG4iXSwibmFtZXMiOlsiZGVub3JtYWxpemVQYWdlUGF0aCIsInBhZ2UiLCJfcGFnZSIsIm5vcm1hbGl6ZVBhdGhTZXAiLCJzdGFydHNXaXRoIiwiaXNEeW5hbWljUm91dGUiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js": /*!*****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgbGVhZGluZyBzbGFzaC5cbiAqIElmIHRoZXJlIGlzIG5vdCBhIGxlYWRpbmcgc2xhc2gsIG9uZSBpcyBhZGRlZCwgb3RoZXJ3aXNlIGl0IGlzIG5vb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGggOiBgLyR7cGF0aH1gXG59XG4iXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeDataPath\", ({\n enumerable: true,\n get: function() {\n return normalizeDataPath;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ../router/utils/path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction normalizeDataPath(pathname) {\n if (!(0, _pathhasprefix.pathHasPrefix)(pathname || '/', '/_next/data')) {\n return pathname;\n }\n pathname = pathname.replace(/\\/_next\\/data\\/[^/]{1,}/, '').replace(/\\.json$/, '');\n if (pathname === '/index') {\n return '/';\n }\n return pathname;\n} //# sourceMappingURL=normalize-data-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1kYXRhLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OztxREFLZ0JBOzs7ZUFBQUE7OzsyQ0FMYztBQUt2QixTQUFTQSxrQkFBa0JDLFFBQWdCO0lBQ2hELElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0QsWUFBWSxLQUFLLGdCQUFnQjtRQUNsRCxPQUFPQTtJQUNUO0lBQ0FBLFdBQVdBLFNBQ1JFLE9BQU8sQ0FBQywyQkFBMkIsSUFDbkNBLE9BQU8sQ0FBQyxXQUFXO0lBRXRCLElBQUlGLGFBQWEsVUFBVTtRQUN6QixPQUFPO0lBQ1Q7SUFDQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLWRhdGEtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBzdHJpcCBfbmV4dC9kYXRhLzxidWlsZC1pZD4vIHByZWZpeCBhbmQgLmpzb24gc3VmZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEYXRhUGF0aChwYXRobmFtZTogc3RyaW5nKSB7XG4gIGlmICghcGF0aEhhc1ByZWZpeChwYXRobmFtZSB8fCAnLycsICcvX25leHQvZGF0YScpKSB7XG4gICAgcmV0dXJuIHBhdGhuYW1lXG4gIH1cbiAgcGF0aG5hbWUgPSBwYXRobmFtZVxuICAgIC5yZXBsYWNlKC9cXC9fbmV4dFxcL2RhdGFcXC9bXi9dezEsfS8sICcnKVxuICAgIC5yZXBsYWNlKC9cXC5qc29uJC8sICcnKVxuXG4gIGlmIChwYXRobmFtZSA9PT0gJy9pbmRleCcpIHtcbiAgICByZXR1cm4gJy8nXG4gIH1cbiAgcmV0dXJuIHBhdGhuYW1lXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplRGF0YVBhdGgiLCJwYXRobmFtZSIsInBhdGhIYXNQcmVmaXgiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePagePath\", ({\n enumerable: true,\n get: function() {\n return normalizePagePath;\n }\n}));\nconst _ensureleadingslash = __webpack_require__(/*! ./ensure-leading-slash */ \"./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _utils = __webpack_require__(/*! ../router/utils */ \"./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _utils1 = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nfunction normalizePagePath(page) {\n const normalized = /^\\/index(\\/|$)/.test(page) && !(0, _utils.isDynamicRoute)(page) ? \"/index\" + page : page === '/' ? '/index' : (0, _ensureleadingslash.ensureLeadingSlash)(page);\n if (true) {\n const { posix } = __webpack_require__(/*! path */ \"path\");\n const resolvedPage = posix.normalize(normalized);\n if (resolvedPage !== normalized) {\n throw new _utils1.NormalizeError(\"Requested and resolved page mismatch: \" + normalized + \" \" + resolvedPage);\n }\n }\n return normalized;\n} //# sourceMappingURL=normalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYWdlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OztxREFhZ0JBOzs7ZUFBQUE7OztnREFibUI7bUNBQ0o7b0NBQ0E7QUFXeEIsU0FBU0Esa0JBQWtCQyxJQUFZO0lBQzVDLE1BQU1DLGFBQ0osaUJBQWlCQyxJQUFJLENBQUNGLFNBQVMsQ0FBQ0csQ0FBQUEsR0FBQUEsT0FBQUEsY0FBQUEsRUFBZUgsUUFDMUMsV0FBUUEsT0FDVEEsU0FBUyxNQUNQLFdBQ0FJLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFBbUJKO0lBRTNCLElBQUlLLElBQW1DLEVBQUU7UUFDdkMsTUFBTSxFQUFFRyxLQUFLLEVBQUUsR0FBR0MsbUJBQU9BLENBQUMsa0JBQU07UUFDaEMsTUFBTUMsZUFBZUYsTUFBTUcsU0FBUyxDQUFDVjtRQUNyQyxJQUFJUyxpQkFBaUJULFlBQVk7WUFDL0IsTUFBTSxJQUFJVyxRQUFBQSxjQUFjLENBQ3JCLDJDQUF3Q1gsYUFBVyxNQUFHUztRQUUzRDtJQUNGO0lBRUEsT0FBT1Q7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYWdlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSAnLi9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzJ1xuaW1wb3J0IHsgTm9ybWFsaXplRXJyb3IgfSBmcm9tICcuLi91dGlscydcblxuLyoqXG4gKiBUYWtlcyBhIHBhZ2UgYW5kIHRyYW5zZm9ybXMgaXQgaW50byBpdHMgZmlsZSBjb3VudGVycGFydCBlbnN1cmluZyB0aGF0IHRoZVxuICogb3V0cHV0IGlzIG5vcm1hbGl6ZWQuIE5vdGUgdGhpcyBmdW5jdGlvbiBpcyBub3QgaWRlbXBvdGVudCBiZWNhdXNlIGEgcGFnZVxuICogYC9pbmRleGAgY2FuIGJlIHJlZmVyZW5jaW5nIGAvaW5kZXgvaW5kZXguanNgIGFuZCBgL2luZGV4L2luZGV4YCBjb3VsZCBiZVxuICogcmVmZXJlbmNpbmcgYC9pbmRleC9pbmRleC9pbmRleC5qc2AuIEV4YW1wbGVzOlxuICogIC0gYC9gIC0+IGAvaW5kZXhgXG4gKiAgLSBgL2luZGV4L2Zvb2AgLT4gYC9pbmRleC9pbmRleC9mb29gXG4gKiAgLSBgL2luZGV4YCAtPiBgL2luZGV4L2luZGV4YFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFnZVBhdGgocGFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9XG4gICAgL15cXC9pbmRleChcXC98JCkvLnRlc3QocGFnZSkgJiYgIWlzRHluYW1pY1JvdXRlKHBhZ2UpXG4gICAgICA/IGAvaW5kZXgke3BhZ2V9YFxuICAgICAgOiBwYWdlID09PSAnLydcbiAgICAgICAgPyAnL2luZGV4J1xuICAgICAgICA6IGVuc3VyZUxlYWRpbmdTbGFzaChwYWdlKVxuXG4gIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJykge1xuICAgIGNvbnN0IHsgcG9zaXggfSA9IHJlcXVpcmUoJ3BhdGgnKSBhcyB0eXBlb2YgaW1wb3J0KCdwYXRoJylcbiAgICBjb25zdCByZXNvbHZlZFBhZ2UgPSBwb3NpeC5ub3JtYWxpemUobm9ybWFsaXplZClcbiAgICBpZiAocmVzb2x2ZWRQYWdlICE9PSBub3JtYWxpemVkKSB7XG4gICAgICB0aHJvdyBuZXcgTm9ybWFsaXplRXJyb3IoXG4gICAgICAgIGBSZXF1ZXN0ZWQgYW5kIHJlc29sdmVkIHBhZ2UgbWlzbWF0Y2g6ICR7bm9ybWFsaXplZH0gJHtyZXNvbHZlZFBhZ2V9YFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub3JtYWxpemVkXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGFnZVBhdGgiLCJwYWdlIiwibm9ybWFsaXplZCIsInRlc3QiLCJpc0R5bmFtaWNSb3V0ZSIsImVuc3VyZUxlYWRpbmdTbGFzaCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJwb3NpeCIsInJlcXVpcmUiLCJyZXNvbHZlZFBhZ2UiLCJub3JtYWxpemUiLCJOb3JtYWxpemVFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n} //# sourceMappingURL=normalize-path-sep.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7O29EQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxpQkFBaUJDLElBQVk7SUFDM0MsT0FBT0EsS0FBS0MsT0FBTyxDQUFDLE9BQU87QUFDN0IiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5vIGJhY2tzbGFzaFxuICogZXNjYXBpbmcgc2xhc2hlcyBpbiB0aGUgcGF0aC4gRXhhbXBsZTpcbiAqICAtIGBmb29cXC9iYXJcXC9iYXpgIC0+IGBmb28vYmFyL2JhemBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGhTZXAocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGF0aFNlcCIsInBhdGgiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/add-locale.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FRZ0JBOzs7ZUFBQUE7OzsyQ0FSYzsyQ0FDQTtBQU92QixTQUFTQSxVQUNkQyxJQUFZLEVBQ1pDLE1BQXVCLEVBQ3ZCQyxhQUFzQixFQUN0QkMsWUFBc0I7SUFFdEIsNEVBQTRFO0lBQzVFLHNCQUFzQjtJQUN0QixJQUFJLENBQUNGLFVBQVVBLFdBQVdDLGVBQWUsT0FBT0Y7SUFFaEQsTUFBTUksUUFBUUosS0FBS0ssV0FBVztJQUU5QiwyRUFBMkU7SUFDM0UsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQ0YsY0FBYztRQUNqQixJQUFJRyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQUNGLE9BQU8sU0FBUyxPQUFPSjtRQUN6QyxJQUFJTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixPQUFRLE1BQUdILE9BQU9JLFdBQVcsS0FBTyxPQUFPTDtJQUMvRDtJQUVBLHFDQUFxQztJQUNyQyxPQUFPTyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjUCxNQUFPLE1BQUdDO0FBQ2pDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4vYWRkLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuXG4vKipcbiAqIEZvciBhIGdpdmVuIHBhdGggYW5kIGEgbG9jYWxlLCBpZiB0aGUgbG9jYWxlIGlzIGdpdmVuLCBpdCB3aWxsIHByZWZpeCB0aGVcbiAqIGxvY2FsZS4gVGhlIHBhdGggc2hvdWxkbid0IGJlIGFuIEFQSSBwYXRoLiBJZiBhIGRlZmF1bHQgbG9jYWxlIGlzIGdpdmVuIHRoZVxuICogcHJlZml4IHdpbGwgYmUgb21pdHRlZCBpZiB0aGUgbG9jYWxlIGlzIGFscmVhZHkgdGhlIGRlZmF1bHQgbG9jYWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTG9jYWxlKFxuICBwYXRoOiBzdHJpbmcsXG4gIGxvY2FsZT86IHN0cmluZyB8IGZhbHNlLFxuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nLFxuICBpZ25vcmVQcmVmaXg/OiBib29sZWFuXG4pIHtcbiAgLy8gSWYgbm8gbG9jYWxlIHdhcyBnaXZlbiBvciB0aGUgbG9jYWxlIGlzIHRoZSBkZWZhdWx0IGxvY2FsZSwgd2UgZG9uJ3QgbmVlZFxuICAvLyB0byBwcmVmaXggdGhlIHBhdGguXG4gIGlmICghbG9jYWxlIHx8IGxvY2FsZSA9PT0gZGVmYXVsdExvY2FsZSkgcmV0dXJuIHBhdGhcblxuICBjb25zdCBsb3dlciA9IHBhdGgudG9Mb3dlckNhc2UoKVxuXG4gIC8vIElmIHRoZSBwYXRoIGlzIGFuIEFQSSBwYXRoIG9yIHRoZSBwYXRoIGFscmVhZHkgaGFzIHRoZSBsb2NhbGUgcHJlZml4LCB3ZVxuICAvLyBkb24ndCBuZWVkIHRvIHByZWZpeCB0aGUgcGF0aC5cbiAgaWYgKCFpZ25vcmVQcmVmaXgpIHtcbiAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgJy9hcGknKSkgcmV0dXJuIHBhdGhcbiAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgYC8ke2xvY2FsZS50b0xvd2VyQ2FzZSgpfWApKSByZXR1cm4gcGF0aFxuICB9XG5cbiAgLy8gQWRkIHRoZSBsb2NhbGUgcHJlZml4IHRvIHRoZSBwYXRoLlxuICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBgLyR7bG9jYWxlfWApXG59XG4iXSwibmFtZXMiOlsiYWRkTG9jYWxlIiwicGF0aCIsImxvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJsb3dlciIsInRvTG93ZXJDYXNlIiwicGF0aEhhc1ByZWZpeCIsImFkZFBhdGhQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQWRkcyB0aGUgcHJvdmlkZWQgcHJlZml4IHRvIHRoZSBnaXZlbiBwYXRoLiBJdCBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHBhdGhcbiAqIGlzIGluZGVlZCBzdGFydGluZyB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXByZWZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwcmVmaXh9JHtwYXRobmFtZX0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU9nQkE7OztlQUFBQTs7O3VDQVBVO0FBT25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVHLFdBQVdGLFNBQVNHLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogU2ltaWxhcmx5IHRvIGBhZGRQYXRoUHJlZml4YCwgdGhpcyBmdW5jdGlvbiBhZGRzIGEgc3VmZml4IGF0IHRoZSBlbmQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXRoLiBJdCBhbHNvIHdvcmtzIG9ubHkgZm9yIHBhdGhzIGVuc3VyaW5nIHRoZSBhcmd1bWVudCBzdGFydHNcbiAqIHdpdGggYSBzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhdGhTdWZmaXgocGF0aDogc3RyaW5nLCBzdWZmaXg/OiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhc3VmZml4KSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIGAke3BhdGhuYW1lfSR7c3VmZml4fSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJhZGRQYXRoU3VmZml4IiwicGF0aCIsInN1ZmZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/app-paths.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZUxlYWRpbmdTbGFzaCB9IGZyb20gJy4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzR3JvdXBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VnbWVudCdcblxuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcHBQYXRoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVuc3VyZUxlYWRpbmdTbGFzaChcbiAgICByb3V0ZS5zcGxpdCgnLycpLnJlZHVjZSgocGF0aG5hbWUsIHNlZ21lbnQsIGluZGV4LCBzZWdtZW50cykgPT4ge1xuICAgICAgLy8gRW1wdHkgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIEdyb3VwcyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gUGFyYWxsZWwgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoc2VnbWVudFswXSA9PT0gJ0AnKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICBpZiAoXG4gICAgICAgIChzZWdtZW50ID09PSAncGFnZScgfHwgc2VnbWVudCA9PT0gJ3JvdXRlJykgJiZcbiAgICAgICAgaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKVxuICApXG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBgLnJzY2AgZXh0ZW5zaW9uIGlmIGl0J3MgaW4gdGhlIHBhdGhuYW1lLlxuICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9uIGZ1bGwgdXJscyBpdCBjaGVja3MgYD9gIGZvciBzZWFyY2hQYXJhbXMgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5yZXBsYWNlKFxuICAgIC9cXC5yc2MoJHxcXD8pLyxcbiAgICAvLyAkMSBlbnN1cmVzIGA/YCBpcyBwcmVzZXJ2ZWRcbiAgICAnJDEnXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwibm9ybWFsaXplUnNjVVJMIiwicm91dGUiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJzcGxpdCIsInJlZHVjZSIsInBhdGhuYW1lIiwic2VnbWVudCIsImluZGV4Iiwic2VnbWVudHMiLCJpc0dyb3VwU2VnbWVudCIsImxlbmd0aCIsInVybCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js": /*!*************************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7OzswREFXZ0JBOzs7ZUFBQUE7OztpREFWb0I7MkNBQ047MkNBQ0E7dUNBQ0o7QUFPbkIsU0FBU0EsdUJBQXVCQyxJQUFrQjtJQUN2RCxJQUFJQyxXQUFXQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUNiRixLQUFLQyxRQUFRLEVBQ2JELEtBQUtHLE1BQU0sRUFDWEgsS0FBS0ksT0FBTyxHQUFHQyxZQUFZTCxLQUFLTSxhQUFhLEVBQzdDTixLQUFLTyxZQUFZO0lBR25CLElBQUlQLEtBQUtJLE9BQU8sSUFBSSxDQUFDSixLQUFLUSxhQUFhLEVBQUU7UUFDdkNQLFdBQVdRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0lBQ2pDO0lBRUEsSUFBSUQsS0FBS0ksT0FBTyxFQUFFO1FBQ2hCSCxXQUFXUyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUNUQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVixVQUFXLGlCQUFjRCxLQUFLSSxPQUFPLEdBQ25ESixLQUFLQyxRQUFRLEtBQUssTUFBTSxlQUFlO0lBRTNDO0lBRUFBLFdBQVdVLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVVELEtBQUtZLFFBQVE7SUFDaEQsT0FBTyxDQUFDWixLQUFLSSxPQUFPLElBQUlKLEtBQUtRLGFBQWEsR0FDdEMsQ0FBQ1AsU0FBU1ksUUFBUSxDQUFDLE9BQ2pCSCxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVCxVQUFVLE9BQ3hCQSxXQUNGUSxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUjtBQUMxQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gJy4vZ2V0LW5leHQtcGF0aG5hbWUtaW5mbydcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcbmltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tICcuL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IGFkZFBhdGhTdWZmaXggfSBmcm9tICcuL2FkZC1wYXRoLXN1ZmZpeCdcbmltcG9ydCB7IGFkZExvY2FsZSB9IGZyb20gJy4vYWRkLWxvY2FsZSdcblxuaW50ZXJmYWNlIEV4dGVuZGVkSW5mbyBleHRlbmRzIE5leHRQYXRobmFtZUluZm8ge1xuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gIGlnbm9yZVByZWZpeD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE5leHRQYXRobmFtZUluZm8oaW5mbzogRXh0ZW5kZWRJbmZvKSB7XG4gIGxldCBwYXRobmFtZSA9IGFkZExvY2FsZShcbiAgICBpbmZvLnBhdGhuYW1lLFxuICAgIGluZm8ubG9jYWxlLFxuICAgIGluZm8uYnVpbGRJZCA/IHVuZGVmaW5lZCA6IGluZm8uZGVmYXVsdExvY2FsZSxcbiAgICBpbmZvLmlnbm9yZVByZWZpeFxuICApXG5cbiAgaWYgKGluZm8uYnVpbGRJZCB8fCAhaW5mby50cmFpbGluZ1NsYXNoKSB7XG4gICAgcGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuICB9XG5cbiAgaWYgKGluZm8uYnVpbGRJZCkge1xuICAgIHBhdGhuYW1lID0gYWRkUGF0aFN1ZmZpeChcbiAgICAgIGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGAvX25leHQvZGF0YS8ke2luZm8uYnVpbGRJZH1gKSxcbiAgICAgIGluZm8ucGF0aG5hbWUgPT09ICcvJyA/ICdpbmRleC5qc29uJyA6ICcuanNvbidcbiAgICApXG4gIH1cblxuICBwYXRobmFtZSA9IGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGluZm8uYmFzZVBhdGgpXG4gIHJldHVybiAhaW5mby5idWlsZElkICYmIGluZm8udHJhaWxpbmdTbGFzaFxuICAgID8gIXBhdGhuYW1lLmVuZHNXaXRoKCcvJylcbiAgICAgID8gYWRkUGF0aFN1ZmZpeChwYXRobmFtZSwgJy8nKVxuICAgICAgOiBwYXRobmFtZVxuICAgIDogcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXROZXh0UGF0aG5hbWVJbmZvIiwiaW5mbyIsInBhdGhuYW1lIiwiYWRkTG9jYWxlIiwibG9jYWxlIiwiYnVpbGRJZCIsInVuZGVmaW5lZCIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJ0cmFpbGluZ1NsYXNoIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImFkZFBhdGhTdWZmaXgiLCJhZGRQYXRoUHJlZml4IiwiYmFzZVBhdGgiLCJlbmRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/format-url.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7Ozs7Ozs7Ozs7Ozs7SUFRekJBLFNBQVM7ZUFBVEE7O0lBNkRBQyxvQkFBb0I7ZUFBcEJBOztJQWZIQyxhQUFhO2VBQWJBOzs7O21GQWxEZ0I7QUFFN0IsTUFBTUMsbUJBQW1CO0FBRWxCLFNBQVNILFVBQVVJLE1BQWlCO0lBQ3pDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0Y7SUFDekIsSUFBSUcsV0FBV0gsT0FBT0csUUFBUSxJQUFJO0lBQ2xDLElBQUlDLFdBQVdKLE9BQU9JLFFBQVEsSUFBSTtJQUNsQyxJQUFJQyxPQUFPTCxPQUFPSyxJQUFJLElBQUk7SUFDMUIsSUFBSUMsUUFBUU4sT0FBT00sS0FBSyxJQUFJO0lBQzVCLElBQUlDLE9BQXVCO0lBRTNCTixPQUFPQSxPQUFPTyxtQkFBbUJQLE1BQU1RLE9BQU8sQ0FBQyxRQUFRLE9BQU8sTUFBTTtJQUVwRSxJQUFJVCxPQUFPTyxJQUFJLEVBQUU7UUFDZkEsT0FBT04sT0FBT0QsT0FBT08sSUFBSTtJQUMzQixPQUFPLElBQUlMLFVBQVU7UUFDbkJLLE9BQU9OLE9BQVEsRUFBQ0MsU0FBU1EsT0FBTyxDQUFDLE9BQVEsTUFBR1IsV0FBUyxNQUFLQSxRQUFBQSxDQUFPO1FBQ2pFLElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVUsTUFBR0EsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ1osRUFBQ2QsWUFBWUosaUJBQWlCbUIsSUFBSSxDQUFDZixTQUFBQSxDQUFRLElBQU1JLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRLEdBQUM7UUFDeEIsSUFBSUgsWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxXQUFXLE1BQU1BO0lBQ3hELE9BQU8sSUFBSSxDQUFDRyxNQUFNO1FBQ2hCQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJRixRQUFRQSxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDMUMsSUFBSVUsVUFBVUEsTUFBTSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxTQUFTLE1BQU1BO0lBRWhEWCxXQUFXQSxTQUFTSyxPQUFPLENBQUMsU0FBU0Q7SUFDckNPLFNBQVNBLE9BQU9OLE9BQU8sQ0FBQyxLQUFLO0lBRTdCLE9BQVEsS0FBRU4sV0FBV0ksT0FBT0gsV0FBV1csU0FBU1Y7QUFDbEQ7QUFFTyxNQUFNUCxnQkFBZ0I7SUFDM0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCxxQkFBcUJzQixHQUFjO0lBQ2pELElBQUlDLElBQW9CLEVBQW9CO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NJLE9BQU9DLElBQUksQ0FBQ0wsS0FBS00sT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUM1QixjQUFjNkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNULHVEQUFvREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzlCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZvcm1hdCBmdW5jdGlvbiBtb2RpZmllZCBmcm9tIG5vZGVqc1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAnLi9xdWVyeXN0cmluZydcblxuY29uc3Qgc2xhc2hlZFByb3RvY29scyA9IC9odHRwcz98ZnRwfGdvcGhlcnxmaWxlL1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iajogVXJsT2JqZWN0KSB7XG4gIGxldCB7IGF1dGgsIGhvc3RuYW1lIH0gPSB1cmxPYmpcbiAgbGV0IHByb3RvY29sID0gdXJsT2JqLnByb3RvY29sIHx8ICcnXG4gIGxldCBwYXRobmFtZSA9IHVybE9iai5wYXRobmFtZSB8fCAnJ1xuICBsZXQgaGFzaCA9IHVybE9iai5oYXNoIHx8ICcnXG4gIGxldCBxdWVyeSA9IHVybE9iai5xdWVyeSB8fCAnJ1xuICBsZXQgaG9zdDogc3RyaW5nIHwgZmFsc2UgPSBmYWxzZVxuXG4gIGF1dGggPSBhdXRoID8gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCAnOicpICsgJ0AnIDogJydcblxuICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHVybE9iai5ob3N0XG4gIH0gZWxzZSBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0ID0gYXV0aCArICh+aG9zdG5hbWUuaW5kZXhPZignOicpID8gYFske2hvc3RuYW1lfV1gIDogaG9zdG5hbWUpXG4gICAgaWYgKHVybE9iai5wb3J0KSB7XG4gICAgICBob3N0ICs9ICc6JyArIHVybE9iai5wb3J0XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1ZXJ5ICYmIHR5cGVvZiBxdWVyeSA9PT0gJ29iamVjdCcpIHtcbiAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5IGFzIFBhcnNlZFVybFF1ZXJ5KSlcbiAgfVxuXG4gIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IChxdWVyeSAmJiBgPyR7cXVlcnl9YCkgfHwgJydcblxuICBpZiAocHJvdG9jb2wgJiYgIXByb3RvY29sLmVuZHNXaXRoKCc6JykpIHByb3RvY29sICs9ICc6J1xuXG4gIGlmIChcbiAgICB1cmxPYmouc2xhc2hlcyB8fFxuICAgICgoIXByb3RvY29sIHx8IHNsYXNoZWRQcm90b2NvbHMudGVzdChwcm90b2NvbCkpICYmIGhvc3QgIT09IGZhbHNlKVxuICApIHtcbiAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKVxuICAgIGlmIChwYXRobmFtZSAmJiBwYXRobmFtZVswXSAhPT0gJy8nKSBwYXRobmFtZSA9ICcvJyArIHBhdGhuYW1lXG4gIH0gZWxzZSBpZiAoIWhvc3QpIHtcbiAgICBob3N0ID0gJydcbiAgfVxuXG4gIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2hcbiAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoXG5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9bPyNdL2csIGVuY29kZVVSSUNvbXBvbmVudClcbiAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoJyMnLCAnJTIzJylcblxuICByZXR1cm4gYCR7cHJvdG9jb2x9JHtob3N0fSR7cGF0aG5hbWV9JHtzZWFyY2h9JHtoYXNofWBcbn1cblxuZXhwb3J0IGNvbnN0IHVybE9iamVjdEtleXMgPSBbXG4gICdhdXRoJyxcbiAgJ2hhc2gnLFxuICAnaG9zdCcsXG4gICdob3N0bmFtZScsXG4gICdocmVmJyxcbiAgJ3BhdGgnLFxuICAncGF0aG5hbWUnLFxuICAncG9ydCcsXG4gICdwcm90b2NvbCcsXG4gICdxdWVyeScsXG4gICdzZWFyY2gnLFxuICAnc2xhc2hlcycsXG5dXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXaXRoVmFsaWRhdGlvbih1cmw6IFVybE9iamVjdCk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGlmICh1cmwgIT09IG51bGwgJiYgdHlwZW9mIHVybCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIE9iamVjdC5rZXlzKHVybCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICghdXJsT2JqZWN0S2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFVua25vd24ga2V5IHBhc3NlZCB2aWEgdXJsT2JqZWN0IGludG8gdXJsLmZvcm1hdDogJHtrZXl9YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybClcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXRVcmwiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybE9iamVjdEtleXMiLCJzbGFzaGVkUHJvdG9jb2xzIiwidXJsT2JqIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImhhc2giLCJxdWVyeSIsImhvc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInBvcnQiLCJTdHJpbmciLCJxdWVyeXN0cmluZyIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJlbmRzV2l0aCIsInNsYXNoZXMiLCJ0ZXN0IiwidXJsIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js": /*!**********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, '').replace(/\\.json$/, '').split('/');\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== 'index' ? \"/\" + paths.slice(1).join('/') : '/';\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n} //# sourceMappingURL=get-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFvRGdCQTs7O2VBQUFBOzs7aURBcERvQjs4Q0FDSDsyQ0FDSDtBQWtEdkIsU0FBU0Esb0JBQ2RDLFFBQWdCLEVBQ2hCQyxPQUFnQjtRQUUwQkE7SUFBMUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsYUFBYSxFQUFFLEdBQUdILENBQUFBLHNCQUFBQSxRQUFRSSxVQUFBQSxLQUFVLE9BQWxCSixzQkFBc0IsQ0FBQztJQUNqRSxNQUFNSyxPQUF5QjtRQUM3Qk47UUFDQUksZUFBZUosYUFBYSxNQUFNQSxTQUFTTyxRQUFRLENBQUMsT0FBT0g7SUFDN0Q7SUFFQSxJQUFJRixZQUFZTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixLQUFLTixRQUFRLEVBQUVFLFdBQVc7UUFDdERJLEtBQUtOLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQkgsS0FBS04sUUFBUSxFQUFFRTtRQUNoREksS0FBS0osUUFBUSxHQUFHQTtJQUNsQjtJQUNBLElBQUlRLHVCQUF1QkosS0FBS04sUUFBUTtJQUV4QyxJQUNFTSxLQUFLTixRQUFRLENBQUNXLFVBQVUsQ0FBQyxtQkFDekJMLEtBQUtOLFFBQVEsQ0FBQ08sUUFBUSxDQUFDLFVBQ3ZCO1FBQ0EsTUFBTUssUUFBUU4sS0FBS04sUUFBUSxDQUN4QmEsT0FBTyxDQUFDLG9CQUFvQixJQUM1QkEsT0FBTyxDQUFDLFdBQVcsSUFDbkJDLEtBQUssQ0FBQztRQUVULE1BQU1DLFVBQVVILEtBQUssQ0FBQyxFQUFFO1FBQ3hCTixLQUFLUyxPQUFPLEdBQUdBO1FBQ2ZMLHVCQUNFRSxLQUFLLENBQUMsRUFBRSxLQUFLLFVBQVcsTUFBR0EsTUFBTUksS0FBSyxDQUFDLEdBQUdDLElBQUksQ0FBQyxPQUFTO1FBRTFELHNEQUFzRDtRQUN0RCxrREFBa0Q7UUFDbEQsSUFBSWhCLFFBQVFpQixTQUFTLEtBQUssTUFBTTtZQUM5QlosS0FBS04sUUFBUSxHQUFHVTtRQUNsQjtJQUNGO0lBRUEsNEVBQTRFO0lBQzVFLHlCQUF5QjtJQUN6QixJQUFJUCxNQUFNO1FBQ1IsSUFBSWdCLFNBQVNsQixRQUFRbUIsWUFBWSxHQUM3Qm5CLFFBQVFtQixZQUFZLENBQUNDLE9BQU8sQ0FBQ2YsS0FBS04sUUFBUSxJQUMxQ3NCLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JoQixLQUFLTixRQUFRLEVBQUVHLEtBQUtvQixPQUFPO1FBRW5EakIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNuQk47UUFBaEJiLEtBQUtOLFFBQVEsR0FBR21CLENBQUFBLG1CQUFBQSxPQUFPbkIsUUFBQUEsS0FBUSxPQUFmbUIsbUJBQW1CYixLQUFLTixRQUFRO1FBRWhELElBQUksQ0FBQ21CLE9BQU9NLGNBQWMsSUFBSW5CLEtBQUtTLE9BQU8sRUFBRTtZQUMxQ0ksU0FBU2xCLFFBQVFtQixZQUFZLEdBQ3pCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDWCx3QkFDN0JZLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JaLHNCQUFzQlAsS0FBS29CLE9BQU87WUFFMUQsSUFBSUosT0FBT00sY0FBYyxFQUFFO2dCQUN6Qm5CLEtBQUtrQixNQUFNLEdBQUdMLE9BQU9NLGNBQWM7WUFDckM7UUFDRjtJQUNGO0lBQ0EsT0FBT25CO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVMb2NhbGVQYXRoIH0gZnJvbSAnLi4vLi4vaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnXG5pbXBvcnQgeyByZW1vdmVQYXRoUHJlZml4IH0gZnJvbSAnLi9yZW1vdmUtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5pbXBvcnQgdHlwZSB7IEkxOE5Qcm92aWRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9saWIvaTE4bi1wcm92aWRlcidcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIHBhdGggaW4gY2FzZSB0aGUgcGF0aG5hbWUgaW5jbHVkZWQgaXQuXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIGJ1aWxkSWQgZm9yIHdoZW4gdGhlIHBhcnNlZCBVUkwgaXMgYSBkYXRhIFVSTC4gUGFyc2luZyBpdCBjYW4gYmVcbiAgICogZGlzYWJsZWQgd2l0aCB0aGUgYHBhcnNlRGF0YWAgb3B0aW9uLlxuICAgKi9cbiAgYnVpbGRJZD86IHN0cmluZ1xuICAvKipcbiAgICogSWYgdGhlcmUgd2FzIGEgbG9jYWxlIGluIHRoZSBwYXRobmFtZSwgdGhpcyB3aWxsIGhvbGQgaXRzIHZhbHVlLlxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgcHJvY2Vzc2VkIHBhdGhuYW1lIHdpdGhvdXQgYSBiYXNlIHBhdGgsIGxvY2FsZSwgb3IgZGF0YSBVUkwgZWxlbWVudHNcbiAgICogd2hlbiBwYXJzaW5nIGl0IGlzIGVuYWJsZWQuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gdGVsbGluZyBpZiB0aGUgcGF0aG5hbWUgaGFkIGEgdHJhaWxpbmdTbGFzaC4gVGhpcyBjYW4gYmUgb25seVxuICAgKiB0cnVlIGlmIHRyYWlsaW5nU2xhc2ggaXMgZW5hYmxlZC5cbiAgICovXG4gIHRyYWlsaW5nU2xhc2g/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZW4gcGFzc2VkIHRvIHRydWUsIHRoaXMgZnVuY3Rpb24gd2lsbCBhbHNvIHBhcnNlIE5leHRqcyBkYXRhIFVSTHMuXG4gICAqL1xuICBwYXJzZURhdGE/OiBib29sZWFuXG4gIC8qKlxuICAgKiBBIHBhcnRpYWwgb2YgdGhlIE5leHQuanMgY29uZmlndXJhdGlvbiB0byBwYXJzZSB0aGUgVVJMLlxuICAgKi9cbiAgbmV4dENvbmZpZz86IHtcbiAgICBiYXNlUGF0aD86IHN0cmluZ1xuICAgIGkxOG4/OiB7IGxvY2FsZXM/OiByZWFkb25seSBzdHJpbmdbXSB9IHwgbnVsbFxuICAgIHRyYWlsaW5nU2xhc2g/OiBib29sZWFuXG4gIH1cblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoaXMgbm9ybWFsaXplciB3aWxsIGJlIHVzZWQgdG8gZGV0ZWN0IHRoZSBsb2NhbGUgaW5zdGVhZCBvZlxuICAgKiB0aGUgZGVmYXVsdCBsb2NhbGUgZGV0ZWN0aW9uLlxuICAgKi9cbiAgaTE4blByb3ZpZGVyPzogSTE4TlByb3ZpZGVyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0UGF0aG5hbWVJbmZvKFxuICBwYXRobmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBPcHRpb25zXG4pOiBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgY29uc3QgeyBiYXNlUGF0aCwgaTE4biwgdHJhaWxpbmdTbGFzaCB9ID0gb3B0aW9ucy5uZXh0Q29uZmlnID8/IHt9XG4gIGNvbnN0IGluZm86IE5leHRQYXRobmFtZUluZm8gPSB7XG4gICAgcGF0aG5hbWUsXG4gICAgdHJhaWxpbmdTbGFzaDogcGF0aG5hbWUgIT09ICcvJyA/IHBhdGhuYW1lLmVuZHNXaXRoKCcvJykgOiB0cmFpbGluZ1NsYXNoLFxuICB9XG5cbiAgaWYgKGJhc2VQYXRoICYmIHBhdGhIYXNQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpKSB7XG4gICAgaW5mby5wYXRobmFtZSA9IHJlbW92ZVBhdGhQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpXG4gICAgaW5mby5iYXNlUGF0aCA9IGJhc2VQYXRoXG4gIH1cbiAgbGV0IHBhdGhuYW1lTm9EYXRhUHJlZml4ID0gaW5mby5wYXRobmFtZVxuXG4gIGlmIChcbiAgICBpbmZvLnBhdGhuYW1lLnN0YXJ0c1dpdGgoJy9fbmV4dC9kYXRhLycpICYmXG4gICAgaW5mby5wYXRobmFtZS5lbmRzV2l0aCgnLmpzb24nKVxuICApIHtcbiAgICBjb25zdCBwYXRocyA9IGluZm8ucGF0aG5hbWVcbiAgICAgIC5yZXBsYWNlKC9eXFwvX25leHRcXC9kYXRhXFwvLywgJycpXG4gICAgICAucmVwbGFjZSgvXFwuanNvbiQvLCAnJylcbiAgICAgIC5zcGxpdCgnLycpXG5cbiAgICBjb25zdCBidWlsZElkID0gcGF0aHNbMF1cbiAgICBpbmZvLmJ1aWxkSWQgPSBidWlsZElkXG4gICAgcGF0aG5hbWVOb0RhdGFQcmVmaXggPVxuICAgICAgcGF0aHNbMV0gIT09ICdpbmRleCcgPyBgLyR7cGF0aHMuc2xpY2UoMSkuam9pbignLycpfWAgOiAnLydcblxuICAgIC8vIHVwZGF0ZSBwYXRobmFtZSB3aXRoIG5vcm1hbGl6ZWQgaWYgZW5hYmxlZCBhbHRob3VnaFxuICAgIC8vIHdlIHVzZSBub3JtYWxpemVkIHRvIHBvcHVsYXRlIGxvY2FsZSBpbmZvIHN0aWxsXG4gICAgaWYgKG9wdGlvbnMucGFyc2VEYXRhID09PSB0cnVlKSB7XG4gICAgICBpbmZvLnBhdGhuYW1lID0gcGF0aG5hbWVOb0RhdGFQcmVmaXhcbiAgICB9XG4gIH1cblxuICAvLyBJZiBwcm92aWRlZCwgdXNlIHRoZSBsb2NhbGUgcm91dGUgbm9ybWFsaXplciB0byBkZXRlY3QgdGhlIGxvY2FsZSBpbnN0ZWFkXG4gIC8vIG9mIHRoZSBmdW5jdGlvbiBiZWxvdy5cbiAgaWYgKGkxOG4pIHtcbiAgICBsZXQgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShpbmZvLnBhdGhuYW1lKVxuICAgICAgOiBub3JtYWxpemVMb2NhbGVQYXRoKGluZm8ucGF0aG5hbWUsIGkxOG4ubG9jYWxlcylcblxuICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgaW5mby5wYXRobmFtZSA9IHJlc3VsdC5wYXRobmFtZSA/PyBpbmZvLnBhdGhuYW1lXG5cbiAgICBpZiAoIXJlc3VsdC5kZXRlY3RlZExvY2FsZSAmJiBpbmZvLmJ1aWxkSWQpIHtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShwYXRobmFtZU5vRGF0YVByZWZpeClcbiAgICAgICAgOiBub3JtYWxpemVMb2NhbGVQYXRoKHBhdGhuYW1lTm9EYXRhUHJlZml4LCBpMThuLmxvY2FsZXMpXG5cbiAgICAgIGlmIChyZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgaW5mby5sb2NhbGUgPSByZXN1bHQuZGV0ZWN0ZWRMb2NhbGVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluZm9cbn1cbiJdLCJuYW1lcyI6WyJnZXROZXh0UGF0aG5hbWVJbmZvIiwicGF0aG5hbWUiLCJvcHRpb25zIiwiYmFzZVBhdGgiLCJpMThuIiwidHJhaWxpbmdTbGFzaCIsIm5leHRDb25maWciLCJpbmZvIiwiZW5kc1dpdGgiLCJwYXRoSGFzUHJlZml4IiwicmVtb3ZlUGF0aFByZWZpeCIsInBhdGhuYW1lTm9EYXRhUHJlZml4Iiwic3RhcnRzV2l0aCIsInBhdGhzIiwicmVwbGFjZSIsInNwbGl0IiwiYnVpbGRJZCIsInNsaWNlIiwiam9pbiIsInBhcnNlRGF0YSIsInJlc3VsdCIsImkxOG5Qcm92aWRlciIsImFuYWx5emUiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwibG9jYWxlcyIsImxvY2FsZSIsImRldGVjdGVkTG9jYWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/html-bots.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n// Note: The pattern [\\w-]+-Google captures all Google crawlers with \"-Google\" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)\n// as well as crawlers starting with \"Google-\" (e.g., Google-PageRenderer, Google-InspectionTool)\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFDN0csc0tBQXNLO0FBQ3RLLGtKQUFrSjtBQUNsSixpR0FBaUc7Ozs7OzBEQUNwRkE7OztlQUFBQTs7O0FBQU4sTUFBTUEseUJBQ1giLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaHRtbC1ib3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggY29udGFpbnMgdGhlIGJvdHMgdGhhdCB3ZSBuZWVkIHRvIGRvIGEgYmxvY2tpbmcgcmVuZGVyIGZvciBhbmQgY2FuJ3Qgc2FmZWx5IHN0cmVhbSB0aGUgcmVzcG9uc2Vcbi8vIGR1ZSB0byBob3cgdGhleSBwYXJzZSB0aGUgRE9NLiBGb3IgZXhhbXBsZSwgdGhleSBtaWdodCBleHBsaWNpdGx5IGNoZWNrIGZvciBtZXRhZGF0YSBpbiB0aGUgYGhlYWRgIHRhZywgc28gd2UgY2FuJ3Qgc3RyZWFtIG1ldGFkYXRhIHRhZ3MgYWZ0ZXIgdGhlIGBoZWFkYCB3YXMgc2VudC5cbi8vIE5vdGU6IFRoZSBwYXR0ZXJuIFtcXHctXSstR29vZ2xlIGNhcHR1cmVzIGFsbCBHb29nbGUgY3Jhd2xlcnMgd2l0aCBcIi1Hb29nbGVcIiBzdWZmaXggKGUuZy4sIE1lZGlhcGFydG5lcnMtR29vZ2xlLCBBZHNCb3QtR29vZ2xlLCBTdG9yZWJvdC1Hb29nbGUpXG4vLyBhcyB3ZWxsIGFzIGNyYXdsZXJzIHN0YXJ0aW5nIHdpdGggXCJHb29nbGUtXCIgKGUuZy4sIEdvb2dsZS1QYWdlUmVuZGVyZXIsIEdvb2dsZS1JbnNwZWN0aW9uVG9vbClcbmV4cG9ydCBjb25zdCBIVE1MX0xJTUlURURfQk9UX1VBX1JFID1cbiAgL1tcXHctXSstR29vZ2xlfEdvb2dsZS1bXFx3LV0rfENocm9tZS1MaWdodGhvdXNlfFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8cmVkZGl0Ym90fGlhX2FyY2hpdmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8YXBwbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxMaW5rZWRJbkJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xZZXRpfGdvb2dsZXdlYmxpZ2h0L2lcbiJdLCJuYW1lcyI6WyJIVE1MX0xJTUlURURfQk9UX1VBX1JFIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/index.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return _sortedroutes.getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUEwQkEscUJBQXFCO2VBQXJCQSxjQUFBQSxxQkFBcUI7O0lBQXRDQyxlQUFlO2VBQWZBLGNBQUFBLGVBQWU7O0lBQ2ZDLGNBQWM7ZUFBZEEsV0FBQUEsY0FBYzs7OzBDQURnQzt1Q0FDeEIiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZ2V0U29ydGVkUm91dGVzLCBnZXRTb3J0ZWRSb3V0ZU9iamVjdHMgfSBmcm9tICcuL3NvcnRlZC1yb3V0ZXMnXG5leHBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4vaXMtZHluYW1pYydcbiJdLCJuYW1lcyI6WyJnZXRTb3J0ZWRSb3V0ZU9iamVjdHMiLCJnZXRTb3J0ZWRSb3V0ZXMiLCJpc0R5bmFtaWNSb3V0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/index.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/interception-routes.js": /*!*******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = \"/\" + interceptedRoute;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2FBLDBCQUEwQjtlQUExQkE7O0lBa0JHQyxtQ0FBbUM7ZUFBbkNBOztJQVhBQywwQkFBMEI7ZUFBMUJBOzs7c0NBVmlCO0FBRzFCLE1BQU1GLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0UsMkJBQTJCQyxJQUFZO0lBQ3JELHdDQUF3QztJQUN4QyxPQUNFQSxLQUNHQyxLQUFLLENBQUMsS0FDTkMsSUFBSSxDQUFDLENBQUNDLFVBQ0xOLDJCQUEyQkssSUFBSSxDQUFDLENBQUNFLElBQU1ELFFBQVFFLFVBQVUsQ0FBQ0QsU0FDdERFO0FBRVo7QUFFTyxTQUFTUixvQ0FBb0NFLElBQVk7SUFDOUQsSUFBSU8sbUJBQ0ZDLFFBQ0FDO0lBRUYsS0FBSyxNQUFNTixXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBTTtRQUNyQ08sU0FBU1gsMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNuRSxJQUFJSSxRQUFROztZQUNULENBQUNELG1CQUFtQkUsaUJBQWlCLEdBQUdULEtBQUtDLEtBQUssQ0FBQ08sUUFBUTtZQUM1RDtRQUNGO0lBQ0Y7SUFFQSxJQUFJLENBQUNELHFCQUFxQixDQUFDQyxVQUFVLENBQUNDLGtCQUFrQjtRQUN0RCxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUCxpQ0FBOEJWLE9BQUssc0ZBRGhDO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUVBTyxvQkFBb0JJLENBQUFBLEdBQUFBLFVBQUFBLGdCQUFBQSxFQUFpQkosbUJBQW1CLGlEQUFpRDs7SUFFekcsT0FBUUM7UUFDTixLQUFLO1lBQ0gsb0lBQW9JO1lBQ3BJLElBQUlELHNCQUFzQixLQUFLO2dCQUM3QkUsbUJBQW9CLE1BQUdBO1lBQ3pCLE9BQU87Z0JBQ0xBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQy9DO1lBQ0E7UUFDRixLQUFLO1lBQ0gsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUM3QixNQUFNLHFCQUVMLENBRkssSUFBSUcsTUFDUCxpQ0FBOEJWLE9BQUssaUVBRGhDOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFDQVMsbUJBQW1CRixrQkFDaEJOLEtBQUssQ0FBQyxLQUNOVyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0YsS0FBSztZQUNILGtJQUFrSTtZQUNsSUwsbUJBQW1CLE1BQU1BO1lBQ3pCO1FBQ0YsS0FBSztZQUNILGlJQUFpSTtZQUVqSSxNQUFNTSx5QkFBeUJSLGtCQUFrQk4sS0FBSyxDQUFDO1lBQ3ZELElBQUljLHVCQUF1QkMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3RDLE1BQU0scUJBRUwsQ0FGSyxJQUFJTixNQUNQLGlDQUE4QlYsT0FBSyxvRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBUyxtQkFBbUJNLHVCQUNoQkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUNWQyxNQUFNLENBQUNKLGtCQUNQSyxJQUFJLENBQUM7WUFDUjtRQUNGO1lBQ0UsTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUosTUFBTSxpQ0FBVjt1QkFBQTs0QkFBQTs4QkFBQTtZQUF3QztJQUNsRDtJQUVBLE9BQU87UUFBRUg7UUFBbUJFO0lBQWlCO0FBQy9DIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4vYXBwLXBhdGhzJ1xuXG4vLyBvcmRlciBtYXR0ZXJzIGhlcmUsIHRoZSBmaXJzdCBtYXRjaCB3aWxsIGJlIHVzZWRcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyA9IFtcbiAgJyguLikoLi4pJyxcbiAgJyguKScsXG4gICcoLi4pJyxcbiAgJyguLi4pJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgICApICE9PSB1bmRlZmluZWRcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocGF0aDogc3RyaW5nKSB7XG4gIGxldCBpbnRlcmNlcHRpbmdSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG1hcmtlcjogKHR5cGVvZiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUylbbnVtYmVyXSB8IHVuZGVmaW5lZCxcbiAgICBpbnRlcmNlcHRlZFJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLycpKSB7XG4gICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgIGlmIChtYXJrZXIpIHtcbiAgICAgIDtbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghaW50ZXJjZXB0aW5nUm91dGUgfHwgIW1hcmtlciB8fCAhaW50ZXJjZXB0ZWRSb3V0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmBcbiAgICApXG4gIH1cblxuICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcblxuICBzd2l0Y2ggKG1hcmtlcikge1xuICAgIGNhc2UgJyguKSc6XG4gICAgICAvLyAoLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIHdpdGggc2libGluZyByb3V0ZXMsIHNvIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlIHRvIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLiknOlxuICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSAoLikgaW5zdGVhZC5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4uKSc6XG4gICAgICAvLyAoLi4uKSB3aWxsIG1hdGNoIHRoZSByb3V0ZSBzZWdtZW50IGluIHRoZSByb290IGRpcmVjdG9yeSwgc28gd2UgbmVlZCB0byB1c2UgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pKC4uKSc6XG4gICAgICAvLyAoLi4pKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgdHdvIGxldmVscyB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3QgdHdvIHNlZ21lbnRzIG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcblxuICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJylcbiAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsIG9yIG9uZSBsZXZlbCB1cC5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNsaWNlKDAsIC0yKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpXG4gIH1cblxuICByZXR1cm4geyBpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZSB9XG59XG4iXSwibmFtZXMiOlsiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwicGF0aCIsInNwbGl0IiwiZmluZCIsInNlZ21lbnQiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwibm9ybWFsaXplQXBwUGF0aCIsInNsaWNlIiwiY29uY2F0Iiwiam9pbiIsInNwbGl0SW50ZXJjZXB0aW5nUm91dGUiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/is-bot.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\n// This regex specifically matches \"Googlebot\" but NOT \"Mediapartners-Google\", \"AdsBot-Google\", etc.\nconst HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFVU0Esc0JBQXNCO2VBQXRCQSxVQUFBQSxzQkFBc0I7O0lBRmxCQyw2QkFBNkI7ZUFBN0JBOztJQWdCR0MsVUFBVTtlQUFWQTs7SUFKQUMsS0FBSztlQUFMQTs7O3NDQXBCdUI7QUFFdkMsbUVBQW1FO0FBQ25FLHlGQUF5RjtBQUN6Riw0RkFBNEY7QUFDNUYsb0dBQW9HO0FBQ3BHLE1BQU1DLDZCQUE2QjtBQUU1QixNQUFNSCxnQ0FBZ0NELFVBQUFBLHNCQUFzQixDQUFDSyxNQUFNO0FBSTFFLFNBQVNDLFdBQVdDLFNBQWlCO0lBQ25DLE9BQU9ILDJCQUEyQkksSUFBSSxDQUFDRDtBQUN6QztBQUVBLFNBQVNFLG1CQUFtQkYsU0FBaUI7SUFDM0MsT0FBT1AsVUFBQUEsc0JBQXNCLENBQUNRLElBQUksQ0FBQ0Q7QUFDckM7QUFFTyxTQUFTSixNQUFNSSxTQUFpQjtJQUNyQyxPQUFPRCxXQUFXQyxjQUFjRSxtQkFBbUJGO0FBQ3JEO0FBRU8sU0FBU0wsV0FBV0ssU0FBaUI7SUFDMUMsSUFBSUQsV0FBV0MsWUFBWTtRQUN6QixPQUFPO0lBQ1Q7SUFDQSxJQUFJRSxtQkFBbUJGLFlBQVk7UUFDakMsT0FBTztJQUNUO0lBQ0EsT0FBT0c7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSB9IGZyb20gJy4vaHRtbC1ib3RzJ1xuXG4vLyBCb3QgY3Jhd2xlciB0aGF0IHdpbGwgc3BpbiB1cCBhIGhlYWRsZXNzIGJyb3dzZXIgYW5kIGV4ZWN1dGUgSlMuXG4vLyBPbmx5IHRoZSBtYWluIEdvb2dsZWJvdCBzZWFyY2ggY3Jhd2xlciBleGVjdXRlcyBKYXZhU2NyaXB0LCBub3Qgb3RoZXIgR29vZ2xlIGNyYXdsZXJzLlxuLy8geC1yZWY6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3NlYXJjaC9kb2NzL2NyYXdsaW5nLWluZGV4aW5nL2dvb2dsZS1jb21tb24tY3Jhd2xlcnNcbi8vIFRoaXMgcmVnZXggc3BlY2lmaWNhbGx5IG1hdGNoZXMgXCJHb29nbGVib3RcIiBidXQgTk9UIFwiTWVkaWFwYXJ0bmVycy1Hb29nbGVcIiwgXCJBZHNCb3QtR29vZ2xlXCIsIGV0Yy5cbmNvbnN0IEhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFID0gL0dvb2dsZWJvdCg/IS0pfEdvb2dsZWJvdCQvaVxuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkcgPSBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnNvdXJjZVxuXG5leHBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH1cblxuZnVuY3Rpb24gaXNEb21Cb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUudGVzdCh1c2VyQWdlbnQpXG59XG5cbmZ1bmN0aW9uIGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm90KHVzZXJBZ2VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0RvbUJvdFVBKHVzZXJBZ2VudCkgfHwgaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdFR5cGUodXNlckFnZW50OiBzdHJpbmcpOiAnZG9tJyB8ICdodG1sJyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc0RvbUJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2RvbSdcbiAgfVxuICBpZiAoaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2h0bWwnXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiLCJIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyIsImdldEJvdFR5cGUiLCJpc0JvdCIsIkhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFIiwic291cmNlIiwiaXNEb21Cb3RVQSIsInVzZXJBZ2VudCIsInRlc3QiLCJpc0h0bWxMaW1pdGVkQm90VUEiLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\n// Identify /.*[param].*/ in route string\nconst TEST_ROUTE = /\\/[^/]*\\[[^/]+\\][^/]*(?=\\/|$)/;\n// Identify /[param]/ in route string\nconst TEST_STRICT_ROUTE = /\\/\\[[^/]+\\](?=\\/|$)/;\nfunction isDynamicRoute(route, strict) {\n if (strict === void 0) strict = true;\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n if (strict) {\n return TEST_STRICT_ROUTE.test(route);\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFrQmdCQTs7O2VBQUFBOzs7Z0RBZlQ7QUFFUCx5Q0FBeUM7QUFDekMsTUFBTUMsYUFBYTtBQUVuQixxQ0FBcUM7QUFDckMsTUFBTUMsb0JBQW9CO0FBU25CLFNBQVNGLGVBQWVHLEtBQWEsRUFBRUMsTUFBc0I7SUFBdEJBLElBQUFBLFdBQUFBLEtBQUFBLEdBQUFBLFNBQWtCO0lBQzlELElBQUlDLENBQUFBLEdBQUFBLG9CQUFBQSwwQkFBQUEsRUFBMkJGLFFBQVE7UUFDckNBLFFBQVFHLENBQUFBLEdBQUFBLG9CQUFBQSxtQ0FBQUEsRUFBb0NILE9BQU9JLGdCQUFnQjtJQUNyRTtJQUVBLElBQUlILFFBQVE7UUFDVixPQUFPRixrQkFBa0JNLElBQUksQ0FBQ0w7SUFDaEM7SUFFQSxPQUFPRixXQUFXTyxJQUFJLENBQUNMO0FBQ3pCIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24sXG4gIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoLFxufSBmcm9tICcuL2ludGVyY2VwdGlvbi1yb3V0ZXMnXG5cbi8vIElkZW50aWZ5IC8uKltwYXJhbV0uKi8gaW4gcm91dGUgc3RyaW5nXG5jb25zdCBURVNUX1JPVVRFID0gL1xcL1teL10qXFxbW14vXStcXF1bXi9dKig/PVxcL3wkKS9cblxuLy8gSWRlbnRpZnkgL1twYXJhbV0vIGluIHJvdXRlIHN0cmluZ1xuY29uc3QgVEVTVF9TVFJJQ1RfUk9VVEUgPSAvXFwvXFxbW14vXStcXF0oPz1cXC98JCkvXG5cbi8qKlxuICogQ2hlY2sgaWYgYSByb3V0ZSBpcyBkeW5hbWljLlxuICpcbiAqIEBwYXJhbSByb3V0ZSAtIFRoZSByb3V0ZSB0byBjaGVjay5cbiAqIEBwYXJhbSBzdHJpY3QgLSBXaGV0aGVyIHRvIHVzZSBzdHJpY3QgbW9kZSB3aGljaCBwcm9oaWJpdHMgc2VnbWVudHMgd2l0aCBwcmVmaXhlcy9zdWZmaXhlcyAoZGVmYXVsdDogdHJ1ZSkuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByb3V0ZSBpcyBkeW5hbWljLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEeW5hbWljUm91dGUocm91dGU6IHN0cmluZywgc3RyaWN0OiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICBpZiAoaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgocm91dGUpKSB7XG4gICAgcm91dGUgPSBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbihyb3V0ZSkuaW50ZXJjZXB0ZWRSb3V0ZVxuICB9XG5cbiAgaWYgKHN0cmljdCkge1xuICAgIHJldHVybiBURVNUX1NUUklDVF9ST1VURS50ZXN0KHJvdXRlKVxuICB9XG5cbiAgcmV0dXJuIFRFU1RfUk9VVEUudGVzdChyb3V0ZSlcbn1cbiJdLCJuYW1lcyI6WyJpc0R5bmFtaWNSb3V0ZSIsIlRFU1RfUk9VVEUiLCJURVNUX1NUUklDVF9ST1VURSIsInJvdXRlIiwic3RyaWN0IiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImludGVyY2VwdGVkUm91dGUiLCJ0ZXN0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/parse-path.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n} //# sourceMappingURL=parse-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGEgcGF0aCB0aGlzIGZ1bmN0aW9uIHdpbGwgZmluZCB0aGUgcGF0aG5hbWUsIHF1ZXJ5IGFuZCBoYXNoIGFuZCByZXR1cm5cbiAqIHRoZW0uIFRoaXMgaXMgdXNlZnVsIHRvIHBhcnNlIGZ1bGwgcGF0aHMgb24gdGhlIGNsaWVudCBzaWRlLlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHBhcnNlIGUuZy4gL2Zvby9iYXI/aWQ9MSNoYXNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpXG4gIGNvbnN0IHF1ZXJ5SW5kZXggPSBwYXRoLmluZGV4T2YoJz8nKVxuICBjb25zdCBoYXNRdWVyeSA9IHF1ZXJ5SW5kZXggPiAtMSAmJiAoaGFzaEluZGV4IDwgMCB8fCBxdWVyeUluZGV4IDwgaGFzaEluZGV4KVxuXG4gIGlmIChoYXNRdWVyeSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXRobmFtZTogcGF0aC5zdWJzdHJpbmcoMCwgaGFzUXVlcnkgPyBxdWVyeUluZGV4IDogaGFzaEluZGV4KSxcbiAgICAgIHF1ZXJ5OiBoYXNRdWVyeVxuICAgICAgICA/IHBhdGguc3Vic3RyaW5nKHF1ZXJ5SW5kZXgsIGhhc2hJbmRleCA+IC0xID8gaGFzaEluZGV4IDogdW5kZWZpbmVkKVxuICAgICAgICA6ICcnLFxuICAgICAgaGFzaDogaGFzaEluZGV4ID4gLTEgPyBwYXRoLnNsaWNlKGhhc2hJbmRleCkgOiAnJyxcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBwYXRobmFtZTogcGF0aCwgcXVlcnk6ICcnLCBoYXNoOiAnJyB9XG59XG4iXSwibmFtZXMiOlsicGFyc2VQYXRoIiwicGF0aCIsImhhc2hJbmRleCIsImluZGV4T2YiLCJxdWVyeUluZGV4IiwiaGFzUXVlcnkiLCJwYXRobmFtZSIsInN1YnN0cmluZyIsInF1ZXJ5IiwidW5kZWZpbmVkIiwiaGFzaCIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n} //# sourceMappingURL=path-has-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQVNnQkE7OztlQUFBQTs7O3VDQVRVO0FBU25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBYztJQUN4RCxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSDtJQUMvQixPQUFPRSxhQUFhRCxVQUFVQyxTQUFTRSxVQUFVLENBQUNILFNBQVM7QUFDN0QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBwYXRoIHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gcHJlZml4LiBJdCBlbnN1cmVzIGl0IG1hdGNoZXNcbiAqIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzLiBlLmcuIHByZWZpeCAvZG9jcyBzaG91bGQgcmVwbGFjZVxuICogZm9yIC9kb2NzLCAvZG9jcy8sIC9kb2NzL2EgYnV0IG5vdCAvZG9jc3NzXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBjaGVjayBhZ2FpbnN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aEhhc1ByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gcGF0aG5hbWUgPT09IHByZWZpeCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHByZWZpeCArICcvJylcbn1cbiJdLCJuYW1lcyI6WyJwYXRoSGFzUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhuYW1lIiwicGFyc2VQYXRoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/querystring.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdEZ0JBLE1BQU07ZUFBTkE7O0lBOUNBQyxzQkFBc0I7ZUFBdEJBOztJQWdDQUMsc0JBQXNCO2VBQXRCQTs7O0FBaENULFNBQVNELHVCQUNkRSxZQUE2QjtJQUU3QixNQUFNQyxRQUF3QixDQUFDO0lBQy9CLEtBQUssTUFBTSxDQUFDQyxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtRQUNqRCxNQUFNQyxXQUFXSixLQUFLLENBQUNDLElBQUk7UUFDM0IsSUFBSSxPQUFPRyxhQUFhLGFBQWE7WUFDbkNKLEtBQUssQ0FBQ0MsSUFBSSxHQUFHQztRQUNmLE9BQU8sSUFBSUcsTUFBTUMsT0FBTyxDQUFDRixXQUFXO1lBQ2xDQSxTQUFTRyxJQUFJLENBQUNMO1FBQ2hCLE9BQU87WUFDTEYsS0FBSyxDQUFDQyxJQUFJLEdBQUc7Z0JBQUNHO2dCQUFVRjthQUFNO1FBQ2hDO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUO0FBRUEsU0FBU1EsdUJBQXVCQyxLQUFjO0lBQzVDLElBQUksT0FBT0EsVUFBVSxVQUFVO1FBQzdCLE9BQU9BO0lBQ1Q7SUFFQSxJQUNHLE9BQU9BLFVBQVUsWUFBWSxDQUFDQyxNQUFNRCxVQUNyQyxPQUFPQSxVQUFVLFdBQ2pCO1FBQ0EsT0FBT0UsT0FBT0Y7SUFDaEIsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBU1gsdUJBQXVCRSxLQUFxQjtJQUMxRCxNQUFNRCxlQUFlLElBQUlhO0lBQ3pCLEtBQUssTUFBTSxDQUFDWCxLQUFLQyxNQUFNLElBQUlXLE9BQU9WLE9BQU8sQ0FBQ0gsT0FBUTtRQUNoRCxJQUFJSyxNQUFNQyxPQUFPLENBQUNKLFFBQVE7WUFDeEIsS0FBSyxNQUFNWSxRQUFRWixNQUFPO2dCQUN4QkgsYUFBYWdCLE1BQU0sQ0FBQ2QsS0FBS08sdUJBQXVCTTtZQUNsRDtRQUNGLE9BQU87WUFDTGYsYUFBYWlCLEdBQUcsQ0FBQ2YsS0FBS08sdUJBQXVCTjtRQUMvQztJQUNGO0lBQ0EsT0FBT0g7QUFDVDtBQUVPLFNBQVNILE9BQ2RxQixNQUF1QjtJQUN2QixpQ0FBR0MsbUJBQUg7UUFBR0EsZ0JBQUFBLENBQUgsMkJBQXNDOztJQUV0QyxLQUFLLE1BQU1uQixnQkFBZ0JtQixpQkFBa0I7UUFDM0MsS0FBSyxNQUFNakIsT0FBT0YsYUFBYW9CLElBQUksR0FBSTtZQUNyQ0YsT0FBT0csTUFBTSxDQUFDbkI7UUFDaEI7UUFFQSxLQUFLLE1BQU0sQ0FBQ0EsS0FBS0MsTUFBTSxJQUFJSCxhQUFhSSxPQUFPLEdBQUk7WUFDakRjLE9BQU9GLE1BQU0sQ0FBQ2QsS0FBS0M7UUFDckI7SUFDRjtJQUVBLE9BQU9lO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShcbiAgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXNcbik6IFBhcnNlZFVybFF1ZXJ5IHtcbiAgY29uc3QgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5ID0ge31cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gcXVlcnlba2V5XVxuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBxdWVyeVtrZXldID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpKSB7XG4gICAgICBleGlzdGluZy5wdXNoKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeVtrZXldID0gW2V4aXN0aW5nLCB2YWx1ZV1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHF1ZXJ5XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0ocGFyYW06IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJhbVxuICB9XG5cbiAgaWYgKFxuICAgICh0eXBlb2YgcGFyYW0gPT09ICdudW1iZXInICYmICFpc05hTihwYXJhbSkpIHx8XG4gICAgdHlwZW9mIHBhcmFtID09PSAnYm9vbGVhbidcbiAgKSB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeTogUGFyc2VkVXJsUXVlcnkpOiBVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocXVlcnkpKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0oaXRlbSkpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlYXJjaFBhcmFtcy5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlYXJjaFBhcmFtc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKFxuICB0YXJnZXQ6IFVSTFNlYXJjaFBhcmFtcyxcbiAgLi4uc2VhcmNoUGFyYW1zTGlzdDogVVJMU2VhcmNoUGFyYW1zW11cbik6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIGZvciAoY29uc3Qgc2VhcmNoUGFyYW1zIG9mIHNlYXJjaFBhcmFtc0xpc3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBzZWFyY2hQYXJhbXMua2V5cygpKSB7XG4gICAgICB0YXJnZXQuZGVsZXRlKGtleSlcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzZWFyY2hQYXJhbXMuZW50cmllcygpKSB7XG4gICAgICB0YXJnZXQuYXBwZW5kKGtleSwgdmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldFxufVxuIl0sIm5hbWVzIjpbImFzc2lnbiIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJrZXkiLCJ2YWx1ZSIsImVudHJpZXMiLCJleGlzdGluZyIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsIlVSTFNlYXJjaFBhcmFtcyIsIk9iamVjdCIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0Iiwia2V5cyIsImRlbGV0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n} //# sourceMappingURL=remove-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQVVnQkE7OztlQUFBQTs7OzJDQVZjO0FBVXZCLFNBQVNBLGlCQUFpQkMsSUFBWSxFQUFFQyxNQUFjO0lBQzNELHlFQUF5RTtJQUN6RSwwRUFBMEU7SUFDMUUsa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0YsTUFBTUMsU0FBUztRQUNoQyxPQUFPRDtJQUNUO0lBRUEsK0NBQStDO0lBQy9DLE1BQU1HLGdCQUFnQkgsS0FBS0ksS0FBSyxDQUFDSCxPQUFPSSxNQUFNO0lBRTlDLDJFQUEyRTtJQUMzRSxJQUFJRixjQUFjRyxVQUFVLENBQUMsTUFBTTtRQUNqQyxPQUFPSDtJQUNUO0lBRUEsNEVBQTRFO0lBQzVFLG1EQUFtRDtJQUNuRCxPQUFRLE1BQUdBO0FBQ2IiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBHaXZlbiBhIHBhdGggYW5kIGEgcHJlZml4IGl0IHdpbGwgcmVtb3ZlIHRoZSBwcmVmaXggd2hlbiBpdCBleGlzdHMgaW4gdGhlXG4gKiBnaXZlbiBwYXRoLiBJdCBlbnN1cmVzIGl0IG1hdGNoZXMgZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnNcbiAqIGFuZCBpZiB0aGUgcHJlZml4IGlzIG5vdCB0aGVyZSBpdCB3aWxsIGJlIG5vb3AuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gcmVtb3ZlIHRoZSBwcmVmaXggZnJvbS5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBiZSByZW1vdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGF0aFByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gSWYgdGhlIHBhdGggZG9lc24ndCBzdGFydCB3aXRoIHRoZSBwcmVmaXggd2UgY2FuIHJldHVybiBpdCBhcyBpcy4gVGhpc1xuICAvLyBwcm90ZWN0cyB1cyBmcm9tIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHByZWZpeCBpcyBhIHN1YnN0cmluZyBvZiB0aGUgcGF0aFxuICAvLyBwcmVmaXggc3VjaCBhczpcbiAgLy9cbiAgLy8gRm9yIHByZWZpeDogL2Jsb2dcbiAgLy9cbiAgLy8gICAvYmxvZyAtPiB0cnVlXG4gIC8vICAgL2Jsb2cvIC0+IHRydWVcbiAgLy8gICAvYmxvZy8xIC0+IHRydWVcbiAgLy8gICAvYmxvZ2dpbmcgLT4gZmFsc2VcbiAgLy8gICAvYmxvZ2dpbmcvIC0+IGZhbHNlXG4gIC8vICAgL2Jsb2dnaW5nLzEgLT4gZmFsc2VcbiAgaWYgKCFwYXRoSGFzUHJlZml4KHBhdGgsIHByZWZpeCkpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBwcmVmaXggZnJvbSB0aGUgcGF0aCB2aWEgc2xpY2luZy5cbiAgY29uc3Qgd2l0aG91dFByZWZpeCA9IHBhdGguc2xpY2UocHJlZml4Lmxlbmd0aClcblxuICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggc3RhcnRzIHdpdGggYSBgL2Agd2UgY2FuIHJldHVybiBpdCBhcyBpcy5cbiAgaWYgKHdpdGhvdXRQcmVmaXguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIHdpdGhvdXRQcmVmaXhcbiAgfVxuXG4gIC8vIElmIHRoZSBwYXRoIHdpdGhvdXQgdGhlIHByZWZpeCBkb2Vzbid0IHN0YXJ0IHdpdGggYSBgL2Agd2UgbmVlZCB0byBhZGQgaXRcbiAgLy8gYmFjayB0byB0aGUgcGF0aCB0byBtYWtlIHN1cmUgaXQncyBhIHZhbGlkIHBhdGguXG4gIHJldHVybiBgLyR7d2l0aG91dFByZWZpeH1gXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJwYXRoSGFzUHJlZml4Iiwid2l0aG91dFByZWZpeCIsInNsaWNlIiwibGVuZ3RoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, '') || '/';\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIGZvciBhIGdpdmVuIHJvdXRlIG9yIHBhZ2UgcGF0aC4gUHJlc2VydmVzIHRoZVxuICogcm9vdCBwYWdlLiBFeGFtcGxlczpcbiAqICAgLSBgL2Zvby9iYXIvYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9mb28vYmFyYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9gIC0+IGAvYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJ1xufVxuIl0sIm5hbWVzIjpbInJlbW92ZVRyYWlsaW5nU2xhc2giLCJyb3V0ZSIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js": /*!*************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return getSortedRoutes;\n }\n});\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split('/').filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = '/';\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[]'), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[...]'), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[[...]]'), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get('[]')._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === '/' ? '/' : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw Object.defineProperty(new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E458\",\n enumerable: false,\n configurable: true\n });\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get('[...]')._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get('[[...]]')._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw Object.defineProperty(new Error(\"Catch-all must be the last part of the URL.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E392\",\n enumerable: false,\n configurable: true\n });\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith('[') && nextSegment.endsWith(']')) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith('[') && segmentName.endsWith(']')) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith('…')) {\n throw Object.defineProperty(new Error(\"Detected a three-dot character ('…') at ('\" + segmentName + \"'). Did you mean ('...')?\"), \"__NEXT_ERROR_CODE\", {\n value: \"E147\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('...')) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith('[') || segmentName.endsWith(']')) {\n throw Object.defineProperty(new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E421\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('.')) {\n throw Object.defineProperty(new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E288\",\n enumerable: false,\n configurable: true\n });\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw Object.defineProperty(new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E337\",\n enumerable: false,\n configurable: true\n });\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw Object.defineProperty(new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E247\",\n enumerable: false,\n configurable: true\n });\n }\n if (slug.replace(/\\W/g, '') === nextSegment.replace(/\\W/g, '')) {\n throw Object.defineProperty(new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E499\",\n enumerable: false,\n configurable: true\n });\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).'), \"__NEXT_ERROR_CODE\", {\n value: \"E299\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = '[[...]]';\n } else {\n if (this.optionalRestSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E300\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = '[...]';\n }\n } else {\n if (isOptional) {\n throw Object.defineProperty(new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E435\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = '[]';\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n}\nfunction getSortedRouteObjects(objects, getter) {\n // We're assuming here that all the pathnames are unique, that way we can\n // sort the list and use the index as the key.\n const indexes = {};\n const pathnames = [];\n for(let i = 0; i < objects.length; i++){\n const pathname = getter(objects[i]);\n indexes[pathname] = i;\n pathnames[i] = pathname;\n }\n // Sort the pathnames.\n const sorted = getSortedRoutes(pathnames);\n // Map the sorted pathnames back to the original objects using the new sorted\n // index.\n return sorted.map((pathname)=>objects[indexes[pathname]]);\n} //# sourceMappingURL=sorted-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3NvcnRlZC1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBdU9nQkEscUJBQXFCO2VBQXJCQTs7SUF6QkFDLGVBQWU7ZUFBZkE7OztBQTlNaEIsTUFBTUM7SUFPSkMsT0FBT0MsT0FBZSxFQUFRO1FBQzVCLElBQUksQ0FBQ0MsT0FBTyxDQUFDRCxRQUFRRSxLQUFLLENBQUMsS0FBS0MsTUFBTSxDQUFDQyxVQUFVLEVBQUUsRUFBRTtJQUN2RDtJQUVBQyxTQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQ0MsT0FBTztJQUNyQjtJQUVRQSxRQUFRQyxNQUFvQixFQUFZO1FBQWhDQSxJQUFBQSxXQUFBQSxLQUFBQSxHQUFBQSxTQUFpQjtRQUMvQixNQUFNQyxnQkFBZ0I7ZUFBSSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSTtTQUFHLENBQUNDLElBQUk7UUFDcEQsSUFBSSxJQUFJLENBQUNDLFFBQVEsS0FBSyxNQUFNO1lBQzFCSixjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxPQUFPO1FBQ3BEO1FBQ0EsSUFBSSxJQUFJLENBQUNDLFlBQVksS0FBSyxNQUFNO1lBQzlCUCxjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxVQUFVO1FBQ3ZEO1FBQ0EsSUFBSSxJQUFJLENBQUNFLG9CQUFvQixLQUFLLE1BQU07WUFDdENSLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFlBQVk7UUFDekQ7UUFFQSxNQUFNRyxTQUFTVCxjQUNaVSxHQUFHLENBQUMsQ0FBQ0MsSUFBTSxJQUFJLENBQUNWLFFBQVEsQ0FBQ1csR0FBRyxDQUFDRCxHQUFJYixPQUFPLENBQUUsS0FBRUMsU0FBU1ksSUFBRSxNQUN2REUsTUFBTSxDQUFDLENBQUNDLE1BQU1DLE9BQVM7bUJBQUlEO21CQUFTQzthQUFLLEVBQUUsRUFBRTtRQUVoRCxJQUFJLElBQUksQ0FB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RTtJQUM5RSx3RUFBd0U7SUFDeEUsZ0hBQWdIO0lBQ2hILDRFQUE0RTtJQUM1RSxNQUFNQyxPQUFPLElBQUlwRDtJQUVqQiw2RkFBNkY7SUFDN0ZtRCxnQkFBZ0JOLE9BQU8sQ0FBQyxDQUFDUSxXQUFhRCxLQUFLbkQsTUFBTSxDQUFDb0Q7SUFDbEQsNEdBQTRHO0lBQzVHLE9BQU9ELEtBQUs3QyxNQUFNO0FBQ3BCO0FBS08sU0FBU1Qsc0JBQ2R3RCxPQUFZLEVBQ1pDLE1BQTBCO0lBRTFCLHlFQUF5RTtJQUN6RSw4Q0FBOEM7SUFDOUMsTUFBTUMsVUFBa0MsQ0FBQztJQUN6QyxNQUFNQyxZQUFzQixFQUFFO0lBQzlCLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJSixRQUFRbkIsTUFBTSxFQUFFdUIsSUFBSztRQUN2QyxNQUFNQyxXQUFXSixPQUFPRCxPQUFPLENBQUNJLEVBQUU7UUFDbENGLE9BQU8sQ0FBQ0csU0FBUyxHQUFHRDtRQUNwQkQsU0FBUyxDQUFDQyxFQUFFLEdBQUdDO0lBQ2pCO0lBRUEsc0JBQXNCO0lBQ3RCLE1BQU1DLFNBQVM3RCxnQkFBZ0IwRDtJQUUvQiw2RUFBNkU7SUFDN0UsU0FBUztJQUNULE9BQU9HLE9BQU94QyxHQUFHLENBQUMsQ0FBQ3VDLFdBQWFMLE9BQU8sQ0FBQ0UsT0FBTyxDQUFDRyxTQUFTLENBQUM7QUFDNUQiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBVcmxOb2RlIHtcbiAgcGxhY2Vob2xkZXI6IGJvb2xlYW4gPSB0cnVlXG4gIGNoaWxkcmVuOiBNYXA8c3RyaW5nLCBVcmxOb2RlPiA9IG5ldyBNYXAoKVxuICBzbHVnTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgcmVzdFNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICBvcHRpb25hbFJlc3RTbHVnTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcblxuICBpbnNlcnQodXJsUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5faW5zZXJ0KHVybFBhdGguc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbiksIFtdLCBmYWxzZSlcbiAgfVxuXG4gIHNtb29zaCgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Ntb29zaCgpXG4gIH1cblxuICBwcml2YXRlIF9zbW9vc2gocHJlZml4OiBzdHJpbmcgPSAnLycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY2hpbGRyZW5QYXRocyA9IFsuLi50aGlzLmNoaWxkcmVuLmtleXMoKV0uc29ydCgpXG4gICAgaWYgKHRoaXMuc2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignW10nKSwgMSlcbiAgICB9XG4gICAgaWYgKHRoaXMucmVzdFNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICBjaGlsZHJlblBhdGhzLnNwbGljZShjaGlsZHJlblBhdGhzLmluZGV4T2YoJ1suLi5dJyksIDEpXG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICBjaGlsZHJlblBhdGhzLnNwbGljZShjaGlsZHJlblBhdGhzLmluZGV4T2YoJ1tbLi4uXV0nKSwgMSlcbiAgICB9XG5cbiAgICBjb25zdCByb3V0ZXMgPSBjaGlsZHJlblBhdGhzXG4gICAgICAubWFwKChjKSA9PiB0aGlzLmNoaWxkcmVuLmdldChjKSEuX3Ntb29zaChgJHtwcmVmaXh9JHtjfS9gKSlcbiAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IFsuLi5wcmV2LCAuLi5jdXJyXSwgW10pXG5cbiAgICBpZiAodGhpcy5zbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgcm91dGVzLnB1c2goXG4gICAgICAgIC4uLnRoaXMuY2hpbGRyZW4uZ2V0KCdbXScpIS5fc21vb3NoKGAke3ByZWZpeH1bJHt0aGlzLnNsdWdOYW1lfV0vYClcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgIGNvbnN0IHIgPSBwcmVmaXggPT09ICcvJyA/ICcvJyA6IHByZWZpeC5zbGljZSgwLCAtMSlcbiAgICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBZb3UgY2Fubm90IGRlZmluZSBhIHJvdXRlIHdpdGggdGhlIHNhbWUgc3BlY2lmaWNpdHkgYXMgYSBvcHRpb25hbCBjYXRjaC1hbGwgcm91dGUgKFwiJHtyfVwiIGFuZCBcIiR7cn1bWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXVwiKS5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgcm91dGVzLnVuc2hpZnQocilcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIHJvdXRlcy5wdXNoKFxuICAgICAgICAuLi50aGlzLmNoaWxkcmVuXG4gICAgICAgICAgLmdldCgnWy4uLl0nKSFcbiAgICAgICAgICAuX3Ntb29zaChgJHtwcmVmaXh9Wy4uLiR7dGhpcy5yZXN0U2x1Z05hbWV9XS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICByb3V0ZXMucHVzaChcbiAgICAgICAgLi4udGhpcy5jaGlsZHJlblxuICAgICAgICAgIC5nZXQoJ1tbLi4uXV0nKSFcbiAgICAgICAgICAuX3Ntb29zaChgJHtwcmVmaXh9W1suLi4ke3RoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWV9XV0vYClcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gcm91dGVzXG4gIH1cblxuICBwcml2YXRlIF9pbnNlcnQoXG4gICAgdXJsUGF0aHM6IHN0cmluZ1tdLFxuICAgIHNsdWdOYW1lczogc3RyaW5nW10sXG4gICAgaXNDYXRjaEFsbDogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZiAodXJsUGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gZmFsc2VcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhdGNoLWFsbCBtdXN0IGJlIHRoZSBsYXN0IHBhcnQgb2YgdGhlIFVSTC5gKVxuICAgIH1cblxuICAgIC8vIFRoZSBuZXh0IHNlZ21lbnQgaW4gdGhlIHVybFBhdGhzIGxpc3RcbiAgICBsZXQgbmV4dFNlZ21lbnQgPSB1cmxQYXRoc1swXVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHNlZ21lbnQgbWF0Y2hlcyBgW3NvbWV0aGluZ11gXG4gICAgaWYgKG5leHRTZWdtZW50LnN0YXJ0c1dpdGgoJ1snKSAmJiBuZXh0U2VnbWVudC5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAvLyBTdHJpcCBgW2AgYW5kIGBdYCwgbGVhdmluZyBvbmx5IGBzb21ldGhpbmdgXG4gICAgICBsZXQgc2VnbWVudE5hbWUgPSBuZXh0U2VnbWVudC5zbGljZSgxLCAtMSlcblxuICAgICAgbGV0IGlzT3B0aW9uYWwgPSBmYWxzZVxuICAgICAgaWYgKHNlZ21lbnROYW1lLnN0YXJ0c1dpdGgoJ1snKSAmJiBzZWdtZW50TmFtZS5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgIC8vIFN0cmlwIG9wdGlvbmFsIGBbYCBhbmQgYF1gLCBsZWF2aW5nIG9ubHkgYHNvbWV0aGluZ2BcbiAgICAgICAgc2VnbWVudE5hbWUgPSBzZWdtZW50TmFtZS5zbGljZSgxLCAtMSlcbiAgICAgICAgaXNPcHRpb25hbCA9IHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKHNlZ21lbnROYW1lLnN0YXJ0c1dpdGgoJ+KApicpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRGV0ZWN0ZWQgYSB0aHJlZS1kb3QgY2hhcmFjdGVyICgn4oCmJykgYXQgKCcke3NlZ21lbnROYW1lfScpLiBEaWQgeW91IG1lYW4gKCcuLi4nKT9gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaWYgKHNlZ21lbnROYW1lLnN0YXJ0c1dpdGgoJy4uLicpKSB7XG4gICAgICAgIC8vIFN0cmlwIGAuLi5gLCBsZWF2aW5nIG9ubHkgYHNvbWV0aGluZ2BcbiAgICAgICAgc2VnbWVudE5hbWUgPSBzZWdtZW50TmFtZS5zdWJzdHJpbmcoMylcbiAgICAgICAgaXNDYXRjaEFsbCA9IHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKHNlZ21lbnROYW1lLnN0YXJ0c1dpdGgoJ1snKSB8fCBzZWdtZW50TmFtZS5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgU2VnbWVudCBuYW1lcyBtYXkgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIGV4dHJhIGJyYWNrZXRzICgnJHtzZWdtZW50TmFtZX0nKS5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaWYgKHNlZ21lbnROYW1lLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFNlZ21lbnQgbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoIGVycm9uZW91cyBwZXJpb2RzICgnJHtzZWdtZW50TmFtZX0nKS5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gaGFuZGxlU2x1ZyhwcmV2aW91c1NsdWc6IHN0cmluZyB8IG51bGwsIG5leHRTbHVnOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHByZXZpb3VzU2x1ZyAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vIElmIHRoZSBzcGVjaWZpYyBzZWdtZW50IGFscmVhZHkgaGFzIGEgc2x1ZyBidXQgdGhlIHNsdWcgaXMgbm90IGBzb21ldGhpbmdgXG4gICAgICAgICAgLy8gVGhpcyBwcmV2ZW50cyBjb2xsaXNpb25zIGxpa2U6XG4gICAgICAgICAgLy8gcGFnZXMvW3Bvc3RdL2luZGV4LmpzXG4gICAgICAgICAgLy8gcGFnZXMvW2lkXS9pbmRleC5qc1xuICAgICAgICAgIC8vIEJlY2F1c2UgY3VycmVudGx5IG11bHRpcGxlIGR5bmFtaWMgcGFyYW1zIG9uIHRoZSBzYW1lIHNlZ21lbnQgbGV2ZWwgYXJlIG5vdCBzdXBwb3J0ZWRcbiAgICAgICAgICBpZiAocHJldmlvdXNTbHVnICE9PSBuZXh0U2x1Zykge1xuICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBzZWVtcyB0byBiZSBjb25mdXNpbmcgZm9yIHVzZXJzLCBuZWVkcyBhbiBlcnJvciBsaW5rLCB0aGUgZGVzY3JpcHRpb24gY2FuIGJlIGJhc2VkIG9uIGFib3ZlIGNvbW1lbnQuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBZb3UgY2Fubm90IHVzZSBkaWZmZXJlbnQgc2x1ZyBuYW1lcyBmb3IgdGhlIHNhbWUgZHluYW1pYyBwYXRoICgnJHtwcmV2aW91c1NsdWd9JyAhPT0gJyR7bmV4dFNsdWd9JykuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNsdWdOYW1lcy5mb3JFYWNoKChzbHVnKSA9PiB7XG4gICAgICAgICAgaWYgKHNsdWcgPT09IG5leHRTbHVnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBZb3UgY2Fubm90IGhhdmUgdGhlIHNhbWUgc2x1ZyBuYW1lIFwiJHtuZXh0U2x1Z31cIiByZXBlYXQgd2l0aGluIGEgc2luZ2xlIGR5bmFtaWMgcGF0aGBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc2x1Zy5yZXBsYWNlKC9cXFcvZywgJycpID09PSBuZXh0U2VnbWVudC5yZXBsYWNlKC9cXFcvZywgJycpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBZb3UgY2Fubm90IGhhdmUgdGhlIHNsdWcgbmFtZXMgXCIke3NsdWd9XCIgYW5kIFwiJHtuZXh0U2x1Z31cIiBkaWZmZXIgb25seSBieSBub24td29yZCBzeW1ib2xzIHdpdGhpbiBhIHNpbmdsZSBkeW5hbWljIHBhdGhgXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHNsdWdOYW1lcy5wdXNoKG5leHRTbHVnKVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNDYXRjaEFsbCkge1xuICAgICAgICBpZiAoaXNPcHRpb25hbCkge1xuICAgICAgICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBZb3UgY2Fubm90IHVzZSBib3RoIGFuIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBjYXRjaC1hbGwgcm91dGUgYXQgdGhlIHNhbWUgbGV2ZWwgKFwiWy4uLiR7dGhpcy5yZXN0U2x1Z05hbWV9XVwiIGFuZCBcIiR7dXJsUGF0aHNbMF19XCIgKS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaGFuZGxlU2x1Zyh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lLCBzZWdtZW50TmFtZSlcbiAgICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgICAgdGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSA9IHNlZ21lbnROYW1lXG4gICAgICAgICAgLy8gbmV4dFNlZ21lbnQgaXMgb3ZlcndyaXR0ZW4gdG8gW1suLi5dXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XG4gICAgICAgICAgbmV4dFNlZ21lbnQgPSAnW1suLi5dXSdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBZb3UgY2Fubm90IHVzZSBib3RoIGFuIG9wdGlvbmFsIGFuZCByZXF1aXJlZCBjYXRjaC1hbGwgcm91dGUgYXQgdGhlIHNhbWUgbGV2ZWwgKFwiW1suLi4ke3RoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWV9XV1cIiBhbmQgXCIke3VybFBhdGhzWzBdfVwiKS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaGFuZGxlU2x1Zyh0aGlzLnJlc3RTbHVnTmFtZSwgc2VnbWVudE5hbWUpXG4gICAgICAgICAgLy8gc2x1Z05hbWUgaXMga2VwdCBhcyBpdCBjYW4gb25seSBiZSBvbmUgcGFydGljdWxhciBzbHVnTmFtZVxuICAgICAgICAgIHRoaXMucmVzdFNsdWdOYW1lID0gc2VnbWVudE5hbWVcbiAgICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbLi4uXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XG4gICAgICAgICAgbmV4dFNlZ21lbnQgPSAnWy4uLl0nXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpc09wdGlvbmFsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYE9wdGlvbmFsIHJvdXRlIHBhcmFtZXRlcnMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIChcIiR7dXJsUGF0aHNbMF19XCIpLmBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaGFuZGxlU2x1Zyh0aGlzLnNsdWdOYW1lLCBzZWdtZW50TmFtZSlcbiAgICAgICAgLy8gc2x1Z05hbWUgaXMga2VwdCBhcyBpdCBjYW4gb25seSBiZSBvbmUgcGFydGljdWxhciBzbHVnTmFtZVxuICAgICAgICB0aGlzLnNsdWdOYW1lID0gc2VnbWVudE5hbWVcbiAgICAgICAgLy8gbmV4dFNlZ21lbnQgaXMgb3ZlcndyaXR0ZW4gdG8gW10gc28gdGhhdCBpdCBjYW4gbGF0ZXIgYmUgc29ydGVkIHNwZWNpZmljYWxseVxuICAgICAgICBuZXh0U2VnbWVudCA9ICdbXSdcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB0aGlzIFVybE5vZGUgZG9lc24ndCBoYXZlIHRoZSBuZXh0U2VnbWVudCB5ZXQgd2UgY3JlYXRlIGEgbmV3IGNoaWxkIFVybE5vZGVcbiAgICBpZiAoIXRoaXMuY2hpbGRyZW4uaGFzKG5leHRTZWdtZW50KSkge1xuICAgICAgdGhpcy5jaGlsZHJlbi5zZXQobmV4dFNlZ21lbnQsIG5ldyBVcmxOb2RlKCkpXG4gICAgfVxuXG4gICAgdGhpcy5jaGlsZHJlblxuICAgICAgLmdldChuZXh0U2VnbWVudCkhXG4gICAgICAuX2luc2VydCh1cmxQYXRocy5zbGljZSgxKSwgc2x1Z05hbWVzLCBpc0NhdGNoQWxsKVxuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBzb3J0U29ydGFibGVSb3V0ZXNgIG9yIGBzb3J0UGFnZXNgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb3J0ZWRSb3V0ZXMoXG4gIG5vcm1hbGl6ZWRQYWdlczogUmVhZG9ubHlBcnJheTxzdHJpbmc+XG4pOiBzdHJpbmdbXSB7XG4gIC8vIEZpcnN0IHRoZSBVcmxOb2RlIGlzIGNyZWF0ZWQsIGFuZCBldmVyeSBVcmxOb2RlIGNhbiBoYXZlIG9ubHkgMSBkeW5hbWljIHNlZ21lbnRcbiAgLy8gRWcgeW91IGNhbid0IGhhdmUgcGFnZXMvW3Bvc3RdL2FiYy5qcyBhbmQgcGFnZXMvW2hlbGxvXS9zb21ldGhpbmctZWxzZS5qc1xuICAvLyBPbmx5IDEgZHluYW1pYyBzZWdtZW50IHBlciBuZXN0aW5nIGxldmVsXG5cbiAgLy8gU28gaW4gdGhlIGNhc2UgdGhhdCBpcyB0ZXN0L2ludGVncmF0aW9uL2R5bmFtaWMtcm91dGluZyBpdCdsbCBiZSB0aGlzOlxuICAvLyBwYWdlcy9bcG9zdF0vY29tbWVudHMuanNcbiAgLy8gcGFnZXMvYmxvZy9bcG9zdF0vY29tbWVudC9baWRdLmpzXG4gIC8vIEJvdGggYXJlIGZpbmUgYmVjYXVzZSBgcGFnZXMvW3Bvc3RdYCBhbmQgYHBhZ2VzL2Jsb2dgIGFyZSBvbiB0aGUgc2FtZSBsZXZlbFxuICAvLyBTbyBpbiB0aGlzIGNhc2UgYFVybE5vZGVgIGNyZWF0ZWQgaGVyZSBoYXMgYHRoaXMuc2x1Z05hbWUgPT09ICdwb3N0J2BcbiAgLy8gQW5kIHNpbmNlIHlvdXIgUFIgcGFzc2VkIHRocm91Z2ggYHNsdWdOYW1lYCBhcyBhbiBhcnJheSBiYXNpY2FsbHkgaXQnZCBpbmNsdWRpbmcgaXQgaW4gdG9vIG1hbnkgcG9zc2liaWxpdGllc1xuICAvLyBJbnN0ZWFkIHdoYXQgaGFzIHRvIGJlIHBhc3NlZCB0aHJvdWdoIGlzIHRoZSB1cHdhcmRzIHBhdGgncyBkeW5hbWljIG5hbWVzXG4gIGNvbnN0IHJvb3QgPSBuZXcgVXJsTm9kZSgpXG5cbiAgLy8gSGVyZSB0aGUgYHJvb3RgIGdldHMgaW5qZWN0ZWQgbXVsdGlwbGUgcGF0aHMsIGFuZCBpbnNlcnQgd2lsbCBicmVhayB0aGVtIHVwIGludG8gc3VibGV2ZWxzXG4gIG5vcm1hbGl6ZWRQYWdlcy5mb3JFYWNoKChwYWdlUGF0aCkgPT4gcm9vdC5pbnNlcnQocGFnZVBhdGgpKVxuICAvLyBTbW9vc2ggd2lsbCB0aGVuIHNvcnQgdGhvc2Ugc3VibGV2ZWxzIHVwIHRvIHRoZSBwb2ludCB3aGVyZSB5b3UgZ2V0IHRoZSBjb3JyZWN0IHJvdXRlIGRlZmluaXRpb24gcHJpb3JpdHlcbiAgcmV0dXJuIHJvb3Quc21vb3NoKClcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYHNvcnRTb3J0YWJsZVJvdXRlT2JqZWN0c2Agb3IgYHNvcnRQYWdlT2JqZWN0c2AgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNvcnRlZFJvdXRlT2JqZWN0czxUPihcbiAgb2JqZWN0czogVFtdLFxuICBnZXR0ZXI6IChvYmo6IFQpID0+IHN0cmluZ1xuKTogVFtdIHtcbiAgLy8gV2UncmUgYXNzdW1pbmcgaGVyZSB0aGF0IGFsbCB0aGUgcGF0aG5hbWVzIGFyZSB1bmlxdWUsIHRoYXQgd2F5IHdlIGNhblxuICAvLyBzb3J0IHRoZSBsaXN0IGFuZCB1c2UgdGhlIGluZGV4IGFzIHRoZSBrZXkuXG4gIGNvbnN0IGluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fVxuICBjb25zdCBwYXRobmFtZXM6IHN0cmluZ1tdID0gW11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgcGF0aG5hbWUgPSBnZXR0ZXIob2JqZWN0c1tpXSlcbiAgICBpbmRleGVzW3BhdGhuYW1lXSA9IGlcbiAgICBwYXRobmFtZXNbaV0gPSBwYXRobmFtZVxuICB9XG5cbiAgLy8gU29ydCB0aGUgcGF0aG5hbWVzLlxuICBjb25zdCBzb3J0ZWQgPSBnZXRTb3J0ZWRSb3V0ZXMocGF0aG5hbWVzKVxuXG4gIC8vIE1hcCB0aGUgc29ydGVkIHBhdGhuYW1lcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBvYmplY3RzIHVzaW5nIHRoZSBuZXcgc29ydGVkXG4gIC8vIGluZGV4LlxuICByZXR1cm4gc29ydGVkLm1hcCgocGF0aG5hbWUpID0+IG9iamVjdHNbaW5kZXhlc1twYXRobmFtZV1dKVxufVxuIl0sIm5hbWVzIjpbImdldFNvcnRlZFJvdXRlT2JqZWN0cyIsImdldFNvcnRlZFJvdXRlcyIsIlVybE5vZGUiLCJpbnNlcnQiLCJ1cmxQYXRoIiwiX2luc2VydCIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsInNtb29zaCIsIl9zbW9vc2giLCJwcmVmaXgiLCJjaGlsZHJlblBhdGhzIiwiY2hpbGRyZW4iLCJrZXlzIiwic29ydCIsInNsdWdOYW1lIiwic3BsaWNlIiwiaW5kZXhPZiIsInJlc3RTbHVnTmFtZSIsIm9wdGlvbmFsUmVzdFNsdWdOYW1lIiwicm91dGVzIiwibWFwIiwiYyIsImdldCIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwicHVzaCIsInBsYWNlaG9sZGVyIiwiciIsInNsaWNlIiwiRXJyb3IiLCJ1bnNoaWZ0IiwidXJsUGF0aHMiLCJzbHVnTmFtZXMiLCJpc0NhdGNoQWxsIiwibGVuZ3RoIiwibmV4dFNlZ21lbnQiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJzZWdtZW50TmFtZSIsImlzT3B0aW9uYWwiLCJzdWJzdHJpbmciLCJoYW5kbGVTbHVnIiwicHJldmlvdXNTbHVnIiwibmV4dFNsdWciLCJmb3JFYWNoIiwic2x1ZyIsInJlcGxhY2UiLCJoYXMiLCJzZXQiLCJNYXAiLCJub3JtYWxpemVkUGFnZXMiLCJyb290IiwicGFnZVBhdGgiLCJvYmplY3RzIiwiZ2V0dGVyIiwiaW5kZXhlcyIsInBhdGhuYW1lcyIsImkiLCJwYXRobmFtZSIsInNvcnRlZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js": /*!********************************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js ***! \********************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("// In output: export mode, the build id is added to the start of the HTML\n// document, directly after the doctype declaration. During a prefetch, the\n// client performs a range request to get the build id, so it can check whether\n// the target page belongs to the same build.\n//\n// The first 64 bytes of the document are requested. The exact number isn't\n// too important; it must be larger than the build id + doctype + closing and\n// ending comment markers, but it doesn't need to match the end of the\n// comment exactly.\n//\n// Build ids are 21 bytes long in the default implementation, though this\n// can be overridden in the Next.js config. For the purposes of this check,\n// it's OK to only match the start of the id, so we'll truncate it if exceeds\n// a certain length.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DOC_PREFETCH_RANGE_HEADER_VALUE: function() {\n return DOC_PREFETCH_RANGE_HEADER_VALUE;\n },\n doesExportedHtmlMatchBuildId: function() {\n return doesExportedHtmlMatchBuildId;\n },\n insertBuildIdComment: function() {\n return insertBuildIdComment;\n }\n});\nconst DOCTYPE_PREFIX = '<!DOCTYPE html>' // 15 bytes\n;\nconst MAX_BUILD_ID_LENGTH = 24;\nconst DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63';\nfunction escapeBuildId(buildId) {\n // If the build id is longer than the given limit, it's OK for our purposes\n // to only match the beginning.\n const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH);\n // Replace hyphens with underscores so it doesn't break the HTML comment.\n // (Unlikely, but if this did happen it would break the whole document.)\n return truncated.replace(/-/g, '_');\n}\nfunction insertBuildIdComment(originalHtml, buildId) {\n if (buildId.includes('-->') || // React always inserts a doctype at the start of the document. Skip if it\n // isn't present. Shouldn't happen; suggests an issue elsewhere.\n !originalHtml.startsWith(DOCTYPE_PREFIX)) {\n // Return the original HTML unchanged. This means the document will not\n // be prefetched.\n // TODO: The build id comment is currently only used during prefetches, but\n // if we eventually use this mechanism for regular navigations, we may need\n // to error during build if we fail to insert it for some reason.\n return originalHtml;\n }\n // The comment must be inserted after the doctype.\n return originalHtml.replace(DOCTYPE_PREFIX, DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n}\nfunction doesExportedHtmlMatchBuildId(partialHtmlDocument, buildId) {\n // Check whether the document starts with the expected buildId.\n return partialHtmlDocument.startsWith(DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n} //# sourceMappingURL=output-export-prefetch-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9vdXRwdXQtZXhwb3J0LXByZWZldGNoLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsK0VBQStFO0FBQy9FLDZDQUE2QztBQUM3QyxFQUFFO0FBQ0YsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxzRUFBc0U7QUFDdEUsbUJBQW1CO0FBQ25CLEVBQUU7QUFDRix5RUFBeUU7QUFDekUsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxvQkFBb0I7Ozs7Ozs7Ozs7Ozs7SUFNUEEsK0JBQStCO2VBQS9CQTs7SUFpQ0dDLDRCQUE0QjtlQUE1QkE7O0lBdEJBQyxvQkFBb0I7ZUFBcEJBOzs7QUFmaEIsTUFBTUMsaUJBQWlCLGtCQUFrQixXQUFXOztBQUNwRCxNQUFNQyxzQkFBc0I7QUFHckIsTUFBTUosa0NBQWtDO0FBRS9DLFNBQVNLLGNBQWNDLE9BQWU7SUFDcEMsMkVBQTJFO0lBQzNFLCtCQUErQjtJQUMvQixNQUFNQyxZQUFZRCxRQUFRRSxLQUFLLENBQUMsR0FBR0o7SUFDbkMseUVBQXlFO0lBQ3pFLHdFQUF3RTtJQUN4RSxPQUFPRyxVQUFVRSxPQUFPLENBQUMsTUFBTTtBQUNqQztBQUVPLFNBQVNQLHFCQUFxQlEsWUFBb0IsRUFBRUosT0FBZTtJQUN4RSxJQUNFLFFBQ1FLLFFBQVEsQ0FBQyxVQUNqQiwrQkFGMEQsMkNBRWdCO0lBQzFFLGdFQUFnRTtJQUNoRSxDQUFDRCxhQUFhRSxVQUFVLENBQUNULGlCQUN6QjtRQUNBLHVFQUF1RTtRQUN2RSxpQkFBaUI7UUFDakIsMkVBQTJFO1FBQzNFLDJFQUEyRTtRQUMzRSxpRUFBaUU7UUFDakUsT0FBT087SUFDVDtJQUNBLGtEQUFrRDtJQUNsRCxPQUFPQSxhQUFhRCxPQUFPLENBQ3pCTixnQkFDQUEsaUJBQWlCLFNBQVNFLGNBQWNDLFdBQVc7QUFFdkQ7QUFFTyxTQUFTTCw2QkFDZFksbUJBQTJCLEVBQzNCUCxPQUFlO0lBRWYsK0RBQStEO0lBQy9ELE9BQU9PLG9CQUFvQkQsVUFBVSxDQUNuQ1QsaUJBQWlCLFNBQVNFLGNBQWNDLFdBQVc7QUFFdkQiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3NlZ21lbnQtY2FjaGUvb3V0cHV0LWV4cG9ydC1wcmVmZXRjaC1lbmNvZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbiBvdXRwdXQ6IGV4cG9ydCBtb2RlLCB0aGUgYnVpbGQgaWQgaXMgYWRkZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBIVE1MXG4vLyBkb2N1bWVudCwgZGlyZWN0bHkgYWZ0ZXIgdGhlIGRvY3R5cGUgZGVjbGFyYXRpb24uIER1cmluZyBhIHByZWZldGNoLCB0aGVcbi8vIGNsaWVudCBwZXJmb3JtcyBhIHJhbmdlIHJlcXVlc3QgdG8gZ2V0IHRoZSBidWlsZCBpZCwgc28gaXQgY2FuIGNoZWNrIHdoZXRoZXJcbi8vIHRoZSB0YXJnZXQgcGFnZSBiZWxvbmdzIHRvIHRoZSBzYW1lIGJ1aWxkLlxuLy9cbi8vIFRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZG9jdW1lbnQgYXJlIHJlcXVlc3RlZC4gVGhlIGV4YWN0IG51bWJlciBpc24ndFxuLy8gdG9vIGltcG9ydGFudDsgaXQgbXVzdCBiZSBsYXJnZXIgdGhhbiB0aGUgYnVpbGQgaWQgKyBkb2N0eXBlICsgY2xvc2luZyBhbmRcbi8vIGVuZGluZyBjb21tZW50IG1hcmtlcnMsIGJ1dCBpdCBkb2Vzbid0IG5lZWQgdG8gbWF0Y2ggdGhlIGVuZCBvZiB0aGVcbi8vIGNvbW1lbnQgZXhhY3RseS5cbi8vXG4vLyBCdWlsZCBpZHMgYXJlIDIxIGJ5dGVzIGxvbmcgaW4gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIHRob3VnaCB0aGlzXG4vLyBjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgTmV4dC5qcyBjb25maWcuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBjaGVjayxcbi8vIGl0J3MgT0sgdG8gb25seSBtYXRjaCB0aGUgc3RhcnQgb2YgdGhlIGlkLCBzbyB3ZSdsbCB0cnVuY2F0ZSBpdCBpZiBleGNlZWRzXG4vLyBhIGNlcnRhaW4gbGVuZ3RoLlxuXG5jb25zdCBET0NUWVBFX1BSRUZJWCA9ICc8IURPQ1RZUEUgaHRtbD4nIC8vIDE1IGJ5dGVzXG5jb25zdCBNQVhfQlVJTERfSURfTEVOR1RIID0gMjRcblxuLy8gUmVxdWVzdCB0aGUgZmlyc3QgNjQgYnl0ZXMuIFRoZSBSYW5nZSBoZWFkZXIgaXMgaW5jbHVzaXZlIG9mIHRoZSBlbmQgdmFsdWUuXG5leHBvcnQgY29uc3QgRE9DX1BSRUZFVENIX1JBTkdFX0hFQURFUl9WQUxVRSA9ICdieXRlcz0wLTYzJ1xuXG5mdW5jdGlvbiBlc2NhcGVCdWlsZElkKGJ1aWxkSWQ6IHN0cmluZykge1xuICAvLyBJZiB0aGUgYnVpbGQgaWQgaXMgbG9uZ2VyIHRoYW4gdGhlIGdpdmVuIGxpbWl0LCBpdCdzIE9LIGZvciBvdXIgcHVycG9zZXNcbiAgLy8gdG8gb25seSBtYXRjaCB0aGUgYmVnaW5uaW5nLlxuICBjb25zdCB0cnVuY2F0ZWQgPSBidWlsZElkLnNsaWNlKDAsIE1BWF9CVUlMRF9JRF9MRU5HVEgpXG4gIC8vIFJlcGxhY2UgaHlwaGVucyB3aXRoIHVuZGVyc2NvcmVzIHNvIGl0IGRvZXNuJ3QgYnJlYWsgdGhlIEhUTUwgY29tbWVudC5cbiAgLy8gKFVubGlrZWx5LCBidXQgaWYgdGhpcyBkaWQgaGFwcGVuIGl0IHdvdWxkIGJyZWFrIHRoZSB3aG9sZSBkb2N1bWVudC4pXG4gIHJldHVybiB0cnVuY2F0ZWQucmVwbGFjZSgvLS9nLCAnXycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRCdWlsZElkQ29tbWVudChvcmlnaW5hbEh0bWw6IHN0cmluZywgYnVpbGRJZDogc3RyaW5nKSB7XG4gIGlmIChcbiAgICAvLyBTa2lwIGlmIHRoZSBidWlsZCBpZCBjb250YWlucyBhIGNsb3NpbmcgY29tbWVudCBtYXJrZXIuXG4gICAgYnVpbGRJZC5pbmNsdWRlcygnLS0+JykgfHxcbiAgICAvLyBSZWFjdCBhbHdheXMgaW5zZXJ0cyBhIGRvY3R5cGUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudC4gU2tpcCBpZiBpdFxuICAgIC8vIGlzbid0IHByZXNlbnQuIFNob3VsZG4ndCBoYXBwZW47IHN1Z2dlc3RzIGFuIGlzc3VlIGVsc2V3aGVyZS5cbiAgICAhb3JpZ2luYWxIdG1sLnN0YXJ0c1dpdGgoRE9DVFlQRV9QUkVGSVgpXG4gICkge1xuICAgIC8vIFJldHVybiB0aGUgb3JpZ2luYWwgSFRNTCB1bmNoYW5nZWQuIFRoaXMgbWVhbnMgdGhlIGRvY3VtZW50IHdpbGwgbm90XG4gICAgLy8gYmUgcHJlZmV0Y2hlZC5cbiAgICAvLyBUT0RPOiBUaGUgYnVpbGQgaWQgY29tbWVudCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGR1cmluZyBwcmVmZXRjaGVzLCBidXRcbiAgICAvLyBpZiB3ZSBldmVudHVhbGx5IHVzZSB0aGlzIG1lY2hhbmlzbSBmb3IgcmVndWxhciBuYXZpZ2F0aW9ucywgd2UgbWF5IG5lZWRcbiAgICAvLyB0byBlcnJvciBkdXJpbmcgYnVpbGQgaWYgd2UgZmFpbCB0byBpbnNlcnQgaXQgZm9yIHNvbWUgcmVhc29uLlxuICAgIHJldHVybiBvcmlnaW5hbEh0bWxcbiAgfVxuICAvLyBUaGUgY29tbWVudCBtdXN0IGJlIGluc2VydGVkIGFmdGVyIHRoZSBkb2N0eXBlLlxuICByZXR1cm4gb3JpZ2luYWxIdG1sLnJlcGxhY2UoXG4gICAgRE9DVFlQRV9QUkVGSVgsXG4gICAgRE9DVFlQRV9QUkVGSVggKyAnPCEtLScgKyBlc2NhcGVCdWlsZElkKGJ1aWxkSWQpICsgJy0tPidcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9lc0V4cG9ydGVkSHRtbE1hdGNoQnVpbGRJZChcbiAgcGFydGlhbEh0bWxEb2N1bWVudDogc3RyaW5nLFxuICBidWlsZElkOiBzdHJpbmdcbikge1xuICAvLyBDaGVjayB3aGV0aGVyIHRoZSBkb2N1bWVudCBzdGFydHMgd2l0aCB0aGUgZXhwZWN0ZWQgYnVpbGRJZC5cbiAgcmV0dXJuIHBhcnRpYWxIdG1sRG9jdW1lbnQuc3RhcnRzV2l0aChcbiAgICBET0NUWVBFX1BSRUZJWCArICc8IS0tJyArIGVzY2FwZUJ1aWxkSWQoYnVpbGRJZCkgKyAnLS0+J1xuICApXG59XG4iXSwibmFtZXMiOlsiRE9DX1BSRUZFVENIX1JBTkdFX0hFQURFUl9WQUxVRSIsImRvZXNFeHBvcnRlZEh0bWxNYXRjaEJ1aWxkSWQiLCJpbnNlcnRCdWlsZElkQ29tbWVudCIsIkRPQ1RZUEVfUFJFRklYIiwiTUFYX0JVSUxEX0lEX0xFTkdUSCIsImVzY2FwZUJ1aWxkSWQiLCJidWlsZElkIiwidHJ1bmNhdGVkIiwic2xpY2UiLCJyZXBsYWNlIiwib3JpZ2luYWxIdG1sIiwiaW5jbHVkZXMiLCJzdGFydHNXaXRoIiwicGFydGlhbEh0bWxEb2N1bWVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/segment.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/shared/lib/segment.js ***! \******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/segment.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/side-effect.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"react\");\nconst isServer = \"undefined\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FvQkE7OztlQUF3QkE7OzttQ0FuQnVDO0FBZS9ELE1BQU1DLFdBQVcsT0FBT0MsU0FBVztBQUNuQyxNQUFNQyw0QkFBNEJGLFdBQVcsS0FBTyxJQUFJRyxPQUFBQSxlQUFlO0FBQ3ZFLE1BQU1DLHNCQUFzQkosV0FBVyxLQUFPLElBQUlLLE9BQUFBLFNBQVM7QUFFNUMsU0FBU04sV0FBV08sS0FBc0I7SUFDdkQsTUFBTSxFQUFFQyxXQUFXLEVBQUVDLHVCQUF1QixFQUFFLEdBQUdGO0lBRWpELFNBQVNHO1FBQ1AsSUFBSUYsZUFBZUEsWUFBWUcsZ0JBQWdCLEVBQUU7WUFDL0MsTUFBTUMsZUFBZUMsT0FBQUEsUUFBUSxDQUFDQyxPQUFPLENBQ25DQyxNQUFNQyxJQUFJLENBQUNSLFlBQVlHLGdCQUFnQixFQUEwQk0sTUFBTSxDQUNyRUM7WUFHSlYsWUFBWVcsVUFBVSxDQUFDVix3QkFBd0JHLGNBQWNMO1FBQy9EO0lBQ0Y7SUFFQSxJQUFJTixVQUFVO1lBQ1pPO1FBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLGlDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JZLEdBQUcsQ0FBQ2IsTUFBTWMsUUFBUTtRQUNqRFg7SUFDRjtJQUVBUDtnREFBMEI7Z0JBQ3hCSztZQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCWSxHQUFHLENBQUNiLE1BQU1jLFFBQVE7WUFDakQ7d0RBQU87d0JBQ0xiO29CQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCYyxNQUFNLENBQUNmLE1BQU1jLFFBQVE7Z0JBQ3REOztRQUNGOztJQUVBLGtGQUFrRjtJQUNsRixvRkFBb0Y7SUFDcEYsZ0VBQWdFO0lBQ2hFLHFGQUFxRjtJQUNyRixtRkFBbUY7SUFDbkZsQjtnREFBMEI7WUFDeEIsSUFBSUssYUFBYTtnQkFDZkEsWUFBWWUsY0FBYyxHQUFHYjtZQUMvQjtZQUNBO3dEQUFPO29CQUNMLElBQUlGLGFBQWE7d0JBQ2ZBLFlBQVllLGNBQWMsR0FBR2I7b0JBQy9CO2dCQUNGOztRQUNGOztJQUVBTDswQ0FBb0I7WUFDbEIsSUFBSUcsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO2dCQUM3Q2YsWUFBWWUsY0FBYztnQkFDMUJmLFlBQVllLGNBQWMsR0FBRztZQUMvQjtZQUNBO2tEQUFPO29CQUNMLElBQUlmLGVBQWVBLFlBQVllLGNBQWMsRUFBRTt3QkFDN0NmLFlBQVllLGNBQWM7d0JBQzFCZixZQUFZZSxjQUFjLEdBQUc7b0JBQy9CO2dCQUNGOztRQUNGOztJQUVBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvc3JjL3NoYXJlZC9saWIvc2lkZS1lZmZlY3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hpbGRyZW4sIHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuXG50eXBlIFN0YXRlID0gSlNYLkVsZW1lbnRbXSB8IHVuZGVmaW5lZFxuXG5leHBvcnQgdHlwZSBTaWRlRWZmZWN0UHJvcHMgPSB7XG4gIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiA8VCBleHRlbmRzIHt9PihcbiAgICBjb21wb25lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgcHJvcHM6IFRcbiAgKSA9PiBTdGF0ZVxuICBoYW5kbGVTdGF0ZUNoYW5nZT86IChzdGF0ZTogU3RhdGUpID0+IHZvaWRcbiAgaGVhZE1hbmFnZXI6IGFueVxuICBpbkFtcE1vZGU/OiBib29sZWFuXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuY29uc3QgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VMYXlvdXRFZmZlY3RcbmNvbnN0IHVzZUNsaWVudE9ubHlFZmZlY3QgPSBpc1NlcnZlciA/ICgpID0+IHt9IDogdXNlRWZmZWN0XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNpZGVFZmZlY3QocHJvcHM6IFNpZGVFZmZlY3RQcm9wcykge1xuICBjb25zdCB7IGhlYWRNYW5hZ2VyLCByZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSB9ID0gcHJvcHNcblxuICBmdW5jdGlvbiBlbWl0Q2hhbmdlKCkge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzKSB7XG4gICAgICBjb25zdCBoZWFkRWxlbWVudHMgPSBDaGlsZHJlbi50b0FycmF5KFxuICAgICAgICBBcnJheS5mcm9tKGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMgYXMgU2V0PFJlYWN0LlJlYWN0Tm9kZT4pLmZpbHRlcihcbiAgICAgICAgICBCb29sZWFuXG4gICAgICAgIClcbiAgICAgICkgYXMgUmVhY3QuUmVhY3RFbGVtZW50W11cbiAgICAgIGhlYWRNYW5hZ2VyLnVwZGF0ZUhlYWQocmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoaGVhZEVsZW1lbnRzLCBwcm9wcykpXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICBlbWl0Q2hhbmdlKClcbiAgfVxuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGhlYWRNYW5hZ2VyPy5tb3VudGVkSW5zdGFuY2VzPy5hZGQocHJvcHMuY2hpbGRyZW4pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGhlYWRNYW5hZ2VyPy5tb3VudGVkSW5zdGFuY2VzPy5kZWxldGUocHJvcHMuY2hpbGRyZW4pXG4gICAgfVxuICB9KVxuXG4gIC8vIFdlIG5lZWQgdG8gY2FsbCBgdXBkYXRlSGVhZGAgbWV0aG9kIHdoZW5ldmVyIHRoZSBgU2lkZUVmZmVjdGAgaXMgdHJpZ2dlciBpbiBhbGxcbiAgLy8gbGlmZS1jeWNsZXM6IG1vdW50LCB1cGRhdGUsIHVubW91bnQuIEhvd2V2ZXIsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBgU2lkZUVmZmVjdGBzXG4gIC8vIGJlaW5nIHJlbmRlcmVkLCB3ZSBvbmx5IHRyaWdnZXIgdGhlIG1ldGhvZCBmcm9tIHRoZSBsYXN0IG9uZS5cbiAgLy8gVGhpcyBpcyBlbnN1cmVkIGJ5IGtlZXBpbmcgdGhlIGxhc3QgdW5mbHVzaGVkIGB1cGRhdGVIZWFkYCBpbiB0aGUgYF9wZW5kaW5nVXBkYXRlYFxuICAvLyBzaW5nbGV0b24gaW4gdGhlIGxheW91dCBlZmZlY3QgcGFzcywgYW5kIGFjdHVhbGx5IHRyaWdnZXIgaXQgaW4gdGhlIGVmZmVjdCBwYXNzLlxuICB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGhlYWRNYW5hZ2VyKSB7XG4gICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICB1c2VDbGllbnRPbmx5RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKClcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKSB7XG4gICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKClcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiU2lkZUVmZmVjdCIsImlzU2VydmVyIiwid2luZG93IiwidXNlQ2xpZW50T25seUxheW91dEVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZUNsaWVudE9ubHlFZmZlY3QiLCJ1c2VFZmZlY3QiLCJwcm9wcyIsImhlYWRNYW5hZ2VyIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJlbWl0Q2hhbmdlIiwibW91bnRlZEluc3RhbmNlcyIsImhlYWRFbGVtZW50cyIsIkNoaWxkcmVuIiwidG9BcnJheSIsIkFycmF5IiwiZnJvbSIsImZpbHRlciIsIkJvb2xlYW4iLCJ1cGRhdGVIZWFkIiwiYWRkIiwiY2hpbGRyZW4iLCJkZWxldGUiLCJfcGVuZGluZ1VwZGF0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/utils.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils.js ***! \****************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFDQUMsaUJBQWlCO2VBQWpCQTs7SUFUQUMsRUFBRTtlQUFGQTs7SUFDQUMsRUFBRTtlQUFGQTs7SUFsWEFDLFVBQVU7ZUFBVkE7O0lBc1FHQyxRQUFRO2VBQVJBOztJQStCQUMsY0FBYztlQUFkQTs7SUFYQUMsaUJBQWlCO2VBQWpCQTs7SUFLQUMsTUFBTTtlQUFOQTs7SUFQSEMsYUFBYTtlQUFiQTs7SUFtQkdDLFNBQVM7ZUFBVEE7O0lBa0JNQyxtQkFBbUI7ZUFBbkJBOztJQWROQyx3QkFBd0I7ZUFBeEJBOztJQStHQUMsY0FBYztlQUFkQTs7O0FBOVpULE1BQU1ULGFBQWE7SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87Q0FBTztBQXNROUQsU0FBU0MsU0FDZFMsRUFBSztJQUVMLElBQUlDLE9BQU87SUFDWCxJQUFJQztJQUVKLE9BQVE7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNWLElBQUksQ0FBQ0YsTUFBTTtZQUNUQSxPQUFPO1lBQ1BDLFNBQVNGLE1BQU1HO1FBQ2pCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsMERBQTBEO0FBQzFELGdFQUFnRTtBQUNoRSxNQUFNRSxxQkFBcUI7QUFDcEIsTUFBTVQsZ0JBQWdCLENBQUNVLE1BQWdCRCxtQkFBbUJFLElBQUksQ0FBQ0Q7QUFFL0QsU0FBU1o7SUFDZCxNQUFNLEVBQUVjLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFBUTtJQUNw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QUc7UUFDWixJQUFJLENBQUNpQixPQUFPLEdBQUksa0NBQStCWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTlELDBCQUEwQm1EO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUksMENBQXVDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNbkQsZ0NBQWdDb0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU3BDLGVBQWVrRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9zcmMvc2hhcmVkL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils.js\n"); /***/ }), /***/ "./node_modules/next/dist/shared/lib/utils/warn-once.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n} //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NENBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFdBQVcsQ0FBQ0MsS0FBZTtBQUMvQixJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxXQUFXLElBQUlDO0lBQ3JCTixXQUFXLENBQUNPO1FBQ1YsSUFBSSxDQUFDRixTQUFTRyxHQUFHLENBQUNELE1BQU07WUFDdEJFLFFBQVFDLElBQUksQ0FBQ0g7UUFDZjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCB3YXJuT25jZSA9IChfOiBzdHJpbmcpID0+IHt9XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YXJuaW5ncyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIHdhcm5PbmNlID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF3YXJuaW5ncy5oYXMobXNnKSkge1xuICAgICAgY29uc29sZS53YXJuKG1zZylcbiAgICB9XG4gICAgd2FybmluZ3MuYWRkKG1zZylcbiAgfVxufVxuXG5leHBvcnQgeyB3YXJuT25jZSB9XG4iXSwibmFtZXMiOlsid2Fybk9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2FybmluZ3MiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwid2FybiIsImFkZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils/warn-once.js\n"); /***/ }) }; ;